/*
 * Store detail UI refinement
 * v1.8.55
 * Scope: single store detail pricing + price simulator presentation only.
 * Calculation, LINE update, AJAX and ACF behavior are unchanged.
 */

body.single-store {
  --store-ui-navy: #102b46;
  --store-ui-navy-soft: #eef3f7;
  --store-ui-pink: #e82f72;
  --store-ui-pink-deep: #c91759;
  --store-ui-pink-soft: #fff1f6;
  --store-ui-border: #dfe6ec;
  --store-ui-border-soft: #edf1f4;
  --store-ui-text: #162536;
  --store-ui-muted: #667585;
}

/* =========================================================
   Current pricing — match the approved mock's hierarchy
   ========================================================= */
body.single-store .store-pricing-section {
  padding: 24px !important;
  border-radius: 18px !important;
  background: #fff !important;
  border: 1px solid var(--store-ui-border) !important;
  box-shadow: none !important;
}

body.single-store .store-pricing-section .pricing-current-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 14px !important;
  padding: 0 0 12px !important;
  border-bottom: 1px solid var(--store-ui-border-soft);
}

body.single-store .pricing-current-heading__title h2 {
  margin: 0;
  color: var(--store-ui-navy);
}

body.single-store .pricing-current-heading__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  text-align: right;
}

body.single-store .store-pricing-section .pricing-current-card__time,
body.single-store .store-pricing-section .pricing-current-card__public-range {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--store-ui-muted) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
}

body.single-store .pricing-current-live-note {
  margin: 0 0 12px;
  padding: 9px 12px;
  border-radius: 8px;
  background: var(--store-ui-pink-soft);
  color: #6b3850;
  font-size: 12px;
  line-height: 1.55;
}
body.single-store .pricing-current-live-note strong { color: var(--store-ui-pink-deep); }

body.single-store .store-pricing-section .pricing-current-card {
  display: grid !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.single-store .store-pricing-section .pricing-current-row {
  margin: 0 !important;
  padding: 14px 16px !important;
  border: 1px solid var(--store-ui-border) !important;
  border-radius: 10px !important;
  background: #fff !important;
}

body.single-store .pricing-current-row__main {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr) 128px;
  align-items: center;
  gap: 14px;
}

body.single-store .store-pricing-section .pricing-current-row__label {
  margin: 0 !important;
  color: var(--store-ui-navy) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
}

body.single-store .store-pricing-section .pricing-current-row__price-group {
  display: block !important;
  min-width: 0;
}

body.single-store .pricing-current-row__price-label {
  display: block;
  margin-bottom: 2px;
  color: #4d5b69;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}

body.single-store .store-pricing-section .pricing-current-row__custom {
  display: flex !important;
  align-items: baseline !important;
  gap: 7px !important;
  margin: 0 !important;
  color: var(--store-ui-pink) !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.03em;
}

body.single-store .store-pricing-section .pricing-current-row__per-person {
  color: var(--store-ui-muted) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  white-space: nowrap;
}

body.single-store .pricing-current-row__regular-compare {
  margin: 3px 0 0;
  color: var(--store-ui-muted);
  font-size: 11px;
  font-weight: 600;
}

body.single-store .pricing-current-row__set-box {
  display: flex;
  min-height: 58px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--store-ui-navy-soft);
  color: var(--store-ui-navy);
  text-align: center;
}
body.single-store .pricing-current-row__set-box span {
  font-size: 11px;
  font-weight: 700;
}
body.single-store .pricing-current-row__set-box strong {
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}

body.single-store .store-pricing-section .pricing-current-row__note {
  margin: 8px 0 0 !important;
  color: var(--store-ui-muted) !important;
  font-size: 11px !important;
  line-height: 1.55 !important;
}

body.single-store .pricing-current-scope {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--store-ui-border-soft);
}

body.single-store .pricing-current-scope__block {
  min-width: 0;
}
body.single-store .pricing-current-scope__block + .pricing-current-scope__block {
  padding-left: 20px;
  border-left: 1px solid var(--store-ui-border-soft);
}
body.single-store .pricing-current-scope__block h3 {
  margin: 0 0 8px;
  color: var(--store-ui-navy);
  font-size: 13px;
  font-weight: 900;
}
body.single-store .pricing-current-scope__block ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.single-store .pricing-current-scope__block li {
  position: relative;
  padding-left: 18px;
  color: #425264;
  font-size: 11px;
  line-height: 1.45;
}
body.single-store .pricing-current-scope__block--included li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--store-ui-pink);
  font-weight: 900;
}
body.single-store .pricing-current-scope__block--excluded li::before {
  content: '•';
  position: absolute;
  left: 3px;
  top: 0;
  color: #84909b;
  font-weight: 900;
}

body.single-store .store-pricing-simulator-cta {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  margin-top: 16px;
  padding: 11px 16px;
  border: 0;
  border-radius: 8px;
  background: var(--store-ui-pink);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: none;
  transition: background .18s ease, transform .18s ease;
}
body.single-store .store-pricing-simulator-cta:hover {
  background: var(--store-ui-pink-deep);
  transform: translateY(-1px);
}
body.single-store .store-pricing-simulator-cta__icon { font-size: 22px; line-height: 1; }
body.single-store .store-pricing-simulator-cta__arrow { font-size: 24px; line-height: 1; }

/* =========================================================
   Simulator modal — two major panes, no nested card maze
   ========================================================= */
body.single-store .docoiku-simulator-modal {
  padding: 20px;
}

body.single-store .docoiku-simulator-modal__panel {
  position: relative;
  width: min(1100px, 100%);
  max-height: min(90vh, 920px);
  padding: 24px;
  overflow: auto;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .30);
}

body.single-store .docoiku-simulator-modal__close {
  position: sticky !important;
  top: 0 !important;
  right: auto !important;
  left: auto !important;
  z-index: 30 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  margin: 0 0 -44px auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: var(--store-ui-navy) !important;
  font-size: 30px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: 0 2px 10px rgba(16, 43, 70, .10);
  touch-action: manipulation;
}
body.single-store .docoiku-simulator-modal__close:hover,
body.single-store .docoiku-simulator-modal__close:active {
  background: #f3f6f8 !important;
}

body.single-store .docoiku-simulator-modal .store-simulator-section {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.single-store .docoiku-simulator-modal .store-simulator-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 16px !important;
  padding: 0 58px 0 0 !important;
}
body.single-store .store-simulator-heading__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 9px;
  background: var(--store-ui-navy-soft);
  color: var(--store-ui-navy);
  font-size: 23px;
  font-weight: 900;
}
body.single-store .store-simulator-heading__copy { min-width: 0; }
body.single-store .docoiku-simulator-modal .store-simulator-title {
  margin: 0 !important;
  color: var(--store-ui-navy);
  font-size: 22px !important;
  line-height: 1.3 !important;
}
body.single-store .docoiku-simulator-modal .store-simulator-section__lead {
  margin: 5px 0 0 !important;
  color: var(--store-ui-muted);
  font-size: 12px;
  line-height: 1.55;
}

body.single-store .docoiku-simulator-modal .simulator-wrapper {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.single-store .simulator-layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 16px;
  align-items: start;
}

body.single-store .simulator-input-pane,
body.single-store .simulator-result-pane {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--store-ui-border);
  border-radius: 10px;
  background: #fff;
}
body.single-store .simulator-result-pane { background: #fffafd; }

body.single-store .simulator-pane-heading {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--store-ui-border-soft);
}
body.single-store .simulator-pane-heading h3 {
  margin: 0;
  color: var(--store-ui-navy);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.35;
}
body.single-store .simulator-pane-heading p {
  margin: 3px 0 0;
  color: var(--store-ui-muted);
  font-size: 11px;
  line-height: 1.5;
}

body.single-store #store-simulator {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

body.single-store #store-simulator > .form-group {
  display: grid !important;
  grid-template-columns: 116px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 6px 12px !important;
  padding: 11px 0 !important;
  border-bottom: 1px solid var(--store-ui-border-soft);
}
body.single-store #store-simulator > .form-group > label:first-child {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  margin: 0;
  color: var(--store-ui-navy);
  font-size: 12px;
  font-weight: 900;
}
body.single-store #store-simulator > .form-group > select,
body.single-store #store-simulator > .form-group > input,
body.single-store #store-simulator > .form-group > .simulator-check {
  grid-column: 2;
  min-width: 0;
}
body.single-store #store-simulator > .form-group > .help-text,
body.single-store #store-simulator > .form-group > .simulator-vip-notice,
body.single-store #store-simulator > .form-group > .simulator-other-extra-grid {
  grid-column: 2;
}

body.single-store #store-simulator .form-group input,
body.single-store #store-simulator .form-group select {
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #d5dfe7;
  border-radius: 7px;
  background: #fff;
  color: var(--store-ui-text);
  font-size: 14px;
  box-shadow: none;
}
body.single-store #store-simulator .form-group input:focus,
body.single-store #store-simulator .form-group select:focus {
  border-color: rgba(232, 47, 114, .58);
  box-shadow: 0 0 0 3px rgba(232, 47, 114, .10);
}
body.single-store #store-simulator .help-text {
  margin: 0;
  color: #7a8794;
  font-size: 10px;
  line-height: 1.45;
}

body.single-store #store-simulator .simulator-vip-notice {
  margin-top: 4px;
  padding: 8px 9px;
  border: 0;
  border-radius: 7px;
  background: #f4f1fb;
  color: #5c4382;
  font-size: 10px;
}

body.single-store #store-simulator .simulator-check {
  min-height: 42px;
  padding: 8px 10px;
  border: 0;
  border-radius: 7px;
  background: #f4f7f9;
}
body.single-store #store-simulator .simulator-check input {
  width: 18px;
  height: 18px;
  min-height: 0;
  padding: 0;
}

body.single-store #store-simulator .form-group--other-extra {
  align-items: start !important;
}
body.single-store #store-simulator .simulator-other-extra-grid {
  display: grid;
  grid-template-columns: 1fr !important;
  gap: 8px;
}
body.single-store #store-simulator .simulator-other-extra-item {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}
body.single-store #store-simulator .simulator-other-extra-item span {
  color: var(--store-ui-muted);
  font-size: 10px;
  font-weight: 700;
}

body.single-store #store-simulator .btn-calculate {
  width: 100%;
  min-height: 48px;
  margin-top: 14px;
  padding: 11px 16px;
  border: 0;
  border-radius: 7px;
  background: var(--store-ui-pink);
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  box-shadow: none;
}
body.single-store #store-simulator .btn-calculate:hover {
  transform: none;
  background: var(--store-ui-pink-deep);
  box-shadow: none;
}

body.single-store .simulator-result {
  margin: 0 !important;
}
body.single-store .simulator-result-card {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.single-store .simulator-result-summary {
  padding: 12px 0;
  border-bottom: 1px solid var(--store-ui-border-soft);
}
body.single-store .simulator-result-summary:first-child { padding-top: 2px; }
body.single-store .simulator-result-summary__heading {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-bottom: 10px;
}
body.single-store .simulator-result-summary__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--store-ui-pink);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}
body.single-store .simulator-result-summary__heading h4 {
  margin: 0;
  color: var(--store-ui-navy);
  font-size: 14px;
  line-height: 1.35;
}
body.single-store .simulator-result-summary__heading p {
  margin: 2px 0 0;
  color: var(--store-ui-muted);
  font-size: 10px;
  line-height: 1.4;
}

body.single-store .simulator-result-base-amount {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border-radius: 8px;
  background: var(--store-ui-pink-soft);
}
body.single-store .simulator-result-base-amount span {
  color: #6b4a58;
  font-size: 11px;
  font-weight: 700;
}
body.single-store .simulator-result-base-amount strong {
  color: var(--store-ui-pink);
  font-size: 26px;
  font-weight: 900;
  letter-spacing: -0.03em;
}

body.single-store .simulator-result-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: left;
}
body.single-store .simulator-result-main__per-person,
body.single-store .simulator-result-main__total {
  min-width: 0;
  padding: 11px 12px;
  border-radius: 8px;
  background: #fff;
}
body.single-store .result-label {
  margin: 0 0 4px;
  color: var(--store-ui-muted);
  font-size: 10px;
  font-weight: 800;
}
body.single-store .result-amount,
body.single-store .result-total {
  margin: 0;
  color: var(--store-ui-pink);
  font-size: 24px;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -0.03em;
}

body.single-store .result-breakdown {
  margin: 12px 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body.single-store .result-breakdown h4 {
  margin: 0 0 6px;
  color: var(--store-ui-navy);
  font-size: 13px;
  font-weight: 900;
}
body.single-store .result-breakdown li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--store-ui-border-soft);
  color: #425264;
  font-size: 10px;
  line-height: 1.35;
}
body.single-store .result-breakdown li:last-child { border-bottom: 0; }
body.single-store .result-breakdown strong { color: var(--store-ui-text); }
body.single-store .result-breakdown li.is-meta,
body.single-store .result-breakdown li.is-meta strong { color: #5d4e72; }

body.single-store .simulator-disclaimer {
  margin-top: 12px;
  padding: 10px 11px;
  border: 0;
  border-radius: 7px;
  background: #fff2f6;
}
body.single-store .simulator-disclaimer p {
  margin: 0 0 4px;
  color: #6b4b58;
  font-size: 9px;
  line-height: 1.5;
}
body.single-store .simulator-disclaimer p:last-child { margin-bottom: 0; }

body.single-store .simulator-result-placeholder {
  display: flex;
  min-height: 310px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 24px;
  color: #82909d;
  text-align: center;
}
body.single-store .simulator-result-placeholder__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #f7e8ef;
  color: var(--store-ui-pink);
  font-size: 25px;
  font-weight: 900;
}
body.single-store .simulator-result-placeholder p {
  max-width: 300px;
  margin: 0;
  font-size: 11px;
  line-height: 1.6;
}
body.single-store .simulator-result[style*="display: block"] + .simulator-result-placeholder,
body.single-store .simulator-result[style*="display:block"] + .simulator-result-placeholder {
  display: none;
}

body.single-store #simulator-loading {
  padding: 18px 0 0;
  color: var(--store-ui-muted);
}

/* keep the non-member gate functional but visually consistent */
body.single-store .simulator-login-gate {
  padding: 18px;
  border: 0;
  border-radius: 8px;
  background: var(--store-ui-pink-soft);
  box-shadow: none;
}

@media (max-width: 767px) {
  body.single-store .store-pricing-section {
    padding: 18px 14px !important;
    border-radius: 14px !important;
  }
  body.single-store .store-pricing-section .pricing-current-heading {
    display: block;
    margin-bottom: 12px !important;
  }
  body.single-store .pricing-current-heading__meta {
    align-items: flex-start;
    margin-top: 7px;
    text-align: left;
  }
  body.single-store .pricing-current-row__main {
    grid-template-columns: minmax(0, 1fr) 108px;
    gap: 10px;
  }
  body.single-store .store-pricing-section .pricing-current-row__label {
    grid-column: 1 / -1;
    font-size: 13px !important;
  }
  body.single-store .store-pricing-section .pricing-current-row__custom {
    font-size: 24px !important;
  }
  body.single-store .pricing-current-row__set-box {
    min-height: 54px;
    padding: 7px 8px;
  }
  body.single-store .pricing-current-scope {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  body.single-store .pricing-current-scope__block + .pricing-current-scope__block {
    padding: 12px 0 0;
    border-top: 1px solid var(--store-ui-border-soft);
    border-left: 0;
  }
  body.single-store .pricing-current-scope__block ul {
    grid-template-columns: 1fr;
  }

  body.single-store .docoiku-simulator-modal {
    align-items: flex-end;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 100svh;
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom));
    overflow: hidden;
  }
  body.single-store .docoiku-simulator-modal__panel {
    width: 100%;
    max-height: calc(100vh - 16px);
    max-height: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding: 18px 14px calc(18px + env(safe-area-inset-bottom));
    border-radius: 16px 16px 0 0;
    overscroll-behavior: contain;
  }
  body.single-store .docoiku-simulator-modal__close {
    top: 0 !important;
    width: 44px !important;
    height: 44px !important;
  }
  body.single-store .docoiku-simulator-modal .store-simulator-heading {
    gap: 9px;
    padding: 0 48px 0 0 !important;
    margin-bottom: 12px !important;
  }
  body.single-store .store-simulator-heading__icon {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
    font-size: 20px;
  }
  body.single-store .docoiku-simulator-modal .store-simulator-title {
    font-size: 18px !important;
  }
  body.single-store .docoiku-simulator-modal .store-simulator-section__lead {
    font-size: 10px;
  }
  body.single-store .simulator-layout {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  body.single-store .simulator-input-pane,
  body.single-store .simulator-result-pane {
    padding: 14px;
    border-radius: 9px;
  }
  body.single-store #store-simulator > .form-group {
    grid-template-columns: 92px minmax(0, 1fr) !important;
    gap: 5px 9px !important;
    padding: 10px 0 !important;
  }
  body.single-store #store-simulator .simulator-other-extra-item {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  body.single-store .simulator-result-placeholder {
    min-height: 180px;
  }
  body.single-store .result-amount,
  body.single-store .result-total {
    font-size: 21px;
  }
  body.single-store .simulator-result-base-amount strong {
    font-size: 23px;
  }
}

/* v1.8.48 mock-alignment corrections */
body.single-store .pricing-current-scope {
  grid-template-columns: 1fr;
  gap: 0;
}
body.single-store .pricing-current-scope__block + .pricing-current-scope__block {
  margin-top: 10px;
  padding: 10px 12px;
  border: 0;
  border-radius: 7px;
  background: #f1f4f7;
}
body.single-store .pricing-current-scope__block--excluded h3 {
  margin-bottom: 5px;
}
body.single-store .pricing-current-scope__block--excluded ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
}
body.single-store .pricing-current-scope__block--excluded li {
  padding-left: 14px;
}

/* The result follows the mock: A = basic guide, B = breakdown, total at the bottom. */
body.single-store .simulator-result-summary--trial {
  padding-bottom: 0;
  border-bottom: 0;
}
body.single-store .simulator-result-summary--trial .result-breakdown {
  margin-top: 0;
}
body.single-store .simulator-result-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 10px;
  padding: 12px 13px;
  border-radius: 7px;
  background: var(--store-ui-pink-soft);
}
body.single-store .simulator-result-total-row > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
body.single-store .simulator-result-total-row span {
  color: var(--store-ui-pink-deep);
  font-size: 12px;
  font-weight: 900;
}
body.single-store .simulator-result-total-row small {
  color: #765868;
  font-size: 9px;
  font-weight: 700;
}
body.single-store .simulator-result-total-row strong {
  color: var(--store-ui-pink);
  font-size: 27px;
  font-weight: 900;
  letter-spacing: -.03em;
  white-space: nowrap;
}

@media (max-width: 767px) {
  body.single-store .pricing-current-scope__block--excluded ul {
    display: grid;
    grid-template-columns: 1fr;
  }
  body.single-store .simulator-result-total-row strong {
    font-size: 23px;
  }
}


/* =========================================================
   v1.8.49 — pricing tabs / first-visit total / button controls
   ========================================================= */

/* Current price and normal system can be compared in-place. */
body.single-store .store-pricing-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 0 0 20px;
  border-bottom: 1px solid var(--store-ui-border);
}
body.single-store .store-pricing-tab {
  min-height: 48px;
  padding: 10px 14px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: #667585;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.35;
  cursor: pointer;
}
body.single-store .store-pricing-tab:hover {
  background: #fafbfd;
  color: var(--store-ui-navy);
}
body.single-store .store-pricing-tab.is-active,
body.single-store .store-pricing-tab[aria-selected="true"] {
  border-bottom-color: var(--store-ui-pink);
  color: var(--store-ui-pink-deep);
  background: #fff;
}
body.single-store .store-pricing-tab:focus-visible {
  outline: 3px solid rgba(232, 47, 114, .18);
  outline-offset: -3px;
}
body.single-store .store-pricing-tab-panel[hidden] {
  display: none !important;
}
body.single-store #store-normal-pricing .pricing-current-heading {
  margin-bottom: 16px !important;
}
body.single-store #store-normal-pricing .pricing-system-list {
  margin-top: 0;
}
body.single-store #store-normal-pricing .pricing-table--fees {
  margin-top: 16px;
}

/* Included items now sit directly below the "本日の料金目安" notice. */
body.single-store .pricing-current-scope--included-only {
  display: block;
  margin: 0 0 12px;
  padding: 0;
  border-top: 0;
}
body.single-store .pricing-current-scope--included-only .pricing-current-scope__block {
  padding: 0;
  border: 0;
  background: transparent;
}
body.single-store .pricing-current-scope--included-only .pricing-current-scope__block ul {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Most prominent price cue: source is the existing first-visit one-person total. */
body.single-store .pricing-first-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 12px;
  padding: 16px 18px;
  border-radius: 10px;
  background: var(--store-ui-pink-soft);
  color: #6b3850;
}
body.single-store .pricing-first-total__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}
body.single-store .pricing-first-total__copy span {
  color: var(--store-ui-pink-deep);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.35;
}
body.single-store .pricing-first-total__copy small {
  color: #7c5c6b;
  font-size: 10px;
  font-weight: 700;
}
body.single-store .pricing-first-total > strong {
  flex: 0 0 auto;
  color: var(--store-ui-pink);
  font-size: 34px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.035em;
  white-space: nowrap;
}

/* Excluded items stay below the person-based current-price rows. */
body.single-store .pricing-current-scope--excluded-only {
  display: block;
  margin: 12px 0 0;
  padding: 0;
  border: 0;
}
body.single-store .pricing-current-scope--excluded-only .pricing-current-scope__block {
  margin: 0 !important;
  padding: 11px 13px !important;
  border: 0 !important;
  border-radius: 7px;
  background: #f1f4f7;
}
body.single-store .pricing-current-scope--excluded-only .pricing-current-scope__block ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
}

/* JavaScript upgrades the existing selects to buttons/steppers.
   The selects remain in the form as the AJAX source of truth. */
body.single-store #store-simulator.is-button-ui .simulator-native-select {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
body.single-store #store-simulator .simulator-choice-buttons,
body.single-store #store-simulator .simulator-stepper-wrap {
  grid-column: 2;
  min-width: 0;
}
body.single-store #store-simulator .simulator-choice-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
body.single-store #store-simulator .simulator-choice-button {
  min-height: 40px;
  min-width: 64px;
  padding: 8px 12px;
  border: 1px solid #d5dfe7;
  border-radius: 7px;
  background: #fff;
  color: var(--store-ui-navy);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  touch-action: manipulation;
}
body.single-store #store-simulator .simulator-choice-button:hover:not(:disabled),
body.single-store #store-simulator .simulator-choice-button:active:not(:disabled),
body.single-store #store-simulator .simulator-choice-button.is-active,
body.single-store #store-simulator .simulator-choice-button[aria-pressed="true"] {
  border-color: var(--store-ui-pink-deep);
  background: var(--store-ui-pink-deep);
  color: #fff;
}
body.single-store #store-simulator .simulator-choice-button:disabled {
  opacity: .4;
  cursor: not-allowed;
}
body.single-store #store-simulator .simulator-choice-button:focus-visible,
body.single-store #store-simulator .simulator-stepper-button:focus-visible,
body.single-store #store-simulator .simulator-special-option-button:focus-visible {
  outline: 3px solid rgba(232, 47, 114, .16);
  outline-offset: 2px;
}

body.single-store #store-simulator .simulator-stepper-wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
body.single-store #store-simulator .simulator-stepper-ui {
  display: inline-grid;
  grid-template-columns: 40px minmax(62px, auto) 40px;
  align-items: stretch;
  min-height: 40px;
  overflow: hidden;
  border: 1px solid #d5dfe7;
  border-radius: 7px;
  background: #fff;
}
body.single-store #store-simulator .simulator-stepper-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 0;
  border: 0;
  background: #f7f9fb;
  color: var(--store-ui-navy);
  font: inherit;
  font-size: 20px;
  font-weight: 700;
  cursor: pointer;
  touch-action: manipulation;
}
body.single-store #store-simulator .simulator-stepper-button:first-child {
  border-right: 1px solid #e1e7ec;
}
body.single-store #store-simulator .simulator-stepper-button:last-child {
  border-left: 1px solid #e1e7ec;
}
body.single-store #store-simulator .simulator-stepper-button:disabled {
  color: #b7c0c8;
  cursor: default;
}
body.single-store #store-simulator .simulator-stepper-value {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 3px;
  min-width: 62px;
  padding: 7px 9px;
  color: var(--store-ui-text);
  line-height: 1;
}
body.single-store #store-simulator .simulator-stepper-value strong {
  font-size: 18px;
  font-weight: 900;
}
body.single-store #store-simulator .simulator-stepper-value span {
  font-size: 11px;
  font-weight: 700;
  color: var(--store-ui-muted);
}
body.single-store #store-simulator .simulator-special-option-button {
  min-height: 40px;
  padding: 8px 11px;
  border: 1px solid #e7bdcd;
  border-radius: 7px;
  background: #fff;
  color: var(--store-ui-pink-deep);
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
  touch-action: manipulation;
}
body.single-store #store-simulator .simulator-special-option-button:hover:not(:disabled),
body.single-store #store-simulator .simulator-special-option-button:active:not(:disabled),
body.single-store #store-simulator .simulator-special-option-button.is-active,
body.single-store #store-simulator .simulator-special-option-button[aria-pressed="true"] {
  border-color: var(--store-ui-pink-deep);
  background: var(--store-ui-pink-deep);
  color: #fff;
}
body.single-store #store-simulator .simulator-special-option-button:disabled {
  opacity: .4;
  cursor: not-allowed;
}

/* Unified pressed / hover feedback for simulator controls. */
body.single-store #store-simulator .simulator-stepper-button:hover:not(:disabled),
body.single-store #store-simulator .simulator-stepper-button:active:not(:disabled) {
  background: var(--store-ui-pink-deep);
  color: #fff;
}

/* Checkbox groups use one column: checkbox row first, explanation below. */
body.single-store #store-simulator > .form-group.form-group--checkbox {
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 6px !important;
}
body.single-store #store-simulator > .form-group.form-group--checkbox > .simulator-check {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100%;
}
body.single-store #store-simulator > .form-group.form-group--checkbox > .help-text {
  grid-column: 1 !important;
  grid-row: 2 !important;
  margin-top: 0;
}

@media (max-width: 767px) {
  body.single-store .store-pricing-tabs {
    margin-bottom: 16px;
  }
  body.single-store .store-pricing-tab {
    min-height: 46px;
    padding: 9px 8px;
    font-size: 12px;
  }
  body.single-store .pricing-current-scope--included-only .pricing-current-scope__block ul {
    grid-template-columns: 1fr;
  }
  body.single-store .pricing-first-total {
    gap: 10px;
    padding: 14px;
  }
  body.single-store .pricing-first-total__copy span {
    font-size: 13px;
  }
  body.single-store .pricing-first-total > strong {
    font-size: 28px;
  }
  body.single-store .pricing-current-scope--excluded-only .pricing-current-scope__block ul {
    display: grid;
    grid-template-columns: 1fr;
  }
  body.single-store #store-simulator .simulator-choice-buttons,
  body.single-store #store-simulator .simulator-stepper-wrap {
    grid-column: 2;
  }
  body.single-store #store-simulator .simulator-choice-button {
    min-width: 58px;
    padding-inline: 10px;
  }
  body.single-store #store-simulator .simulator-stepper-ui {
    grid-template-columns: 38px minmax(54px, auto) 38px;
  }
  body.single-store #store-simulator .simulator-stepper-button {
    min-width: 38px;
    min-height: 40px;
  }
}

/* =========================================================
   v1.8.51 — current price emphasis / coupon relocation / tabs
   ========================================================= */

/* "本日の料金目安" is informational, not promotional. */
body.single-store .pricing-current-live-note {
  background: #ccc !important;
  color: #3f4348 !important;
}
body.single-store .pricing-current-live-note strong {
  color: #2f3337 !important;
}

/* First-visit total remains the strongest visual cue. */
body.single-store .pricing-first-total {
  align-items: flex-start;
}
body.single-store .pricing-first-total__content {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 10px;
}
body.single-store .pricing-first-total__included {
  min-width: 0;
}
body.single-store .pricing-first-total__included h3 {
  margin: 0 0 7px;
  color: #664253;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.35;
}
body.single-store .pricing-first-total__included ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.single-store .pricing-first-total__included li {
  position: relative;
  padding-left: 17px;
  color: #5d4a53;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.45;
}
body.single-store .pricing-first-total__included li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--store-ui-pink);
  font-weight: 900;
}
body.single-store .pricing-first-total__coupon {
  margin: -2px 0 14px;
}
body.single-store .pricing-first-total__coupon .store-coupon-cta {
  width: 100%;
  justify-content: center;
  margin-top: 0 !important;
}

/* Active tab connects visually to the pale-pink price area. */
body.single-store .store-pricing-tab {
  font-size: 16px;
}
body.single-store .store-pricing-tab.is-active,
body.single-store .store-pricing-tab[aria-selected="true"] {
  border-radius: 10px 10px 0 0;
  background: var(--store-ui-pink-soft);
}

@media (max-width: 767px) {
  body.single-store .store-pricing-tab {
    font-size: 14px;
  }
  body.single-store .pricing-first-total {
    flex-direction: column;
  }
  body.single-store .pricing-first-total > strong {
    align-self: flex-start;
  }
  body.single-store .pricing-first-total__included ul {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   v1.8.52 — detail price hierarchy / CTA icons / float CTA
   ========================================================= */

/* Match the "本日の料金目安" notice to the SET price badge background. */
body.single-store .pricing-current-live-note {
  background: var(--store-ui-navy-soft) !important;
  color: var(--store-ui-navy) !important;
}
body.single-store .pricing-current-live-note strong {
  color: var(--store-ui-navy) !important;
}

/* Initial one-person total: heading above, included items left, total price right. */
body.single-store .pricing-first-total {
  display: block;
  padding: 16px 18px;
}
body.single-store .pricing-first-total__copy {
  margin: 0 0 10px;
}
body.single-store .pricing-first-total__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
}
body.single-store .pricing-first-total__included ul {
  grid-template-columns: 1fr;
  gap: 4px;
}
body.single-store .pricing-first-total__price {
  align-self: center;
  color: var(--store-ui-pink);
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.04em;
  white-space: nowrap;
}

/* Coupon CTA: keep the icon visually attached to the label. */
body.single-store .pricing-first-total__coupon .store-coupon-cta {
  gap: 8px;
}
body.single-store .store-coupon-cta__icon {
  display: inline-flex;
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  align-items: center;
  justify-content: center;
}
body.single-store .store-coupon-cta__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* AI CTA: explicit AI icon at the start of the label. */
body.single-store .store-ai-guide-link__icon {
  display: inline-flex;
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  align-items: center;
  justify-content: center;
}
body.single-store .store-ai-guide-link__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Fixed calculator CTA: same pink as the main simulator CTA, one size larger. */
body.single-store .store-simulator-float {
  width: 84px !important;
  height: 84px !important;
  min-width: 84px !important;
  min-height: 84px !important;
  border: 2px solid #eef0f2 !important;
  background: var(--store-ui-pink) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .20) !important;
}
body.single-store .store-simulator-float:hover,
body.single-store .store-simulator-float:focus-visible,
body.single-store .store-simulator-float:active {
  background: var(--store-ui-pink-deep) !important;
  color: #fff !important;
}
body.single-store .store-simulator-float__icon {
  width: 28px;
  height: 28px;
}
body.single-store .store-simulator-float__label {
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}

@media (max-width: 767px) {
  body.single-store .pricing-first-total {
    padding: 14px;
  }
  body.single-store .pricing-first-total__body {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
  }
  body.single-store .pricing-first-total__included h3 {
    margin-bottom: 6px;
  }
  body.single-store .pricing-first-total__included li {
    font-size: 10px;
  }
  body.single-store .pricing-first-total__price {
    font-size: clamp(27px, 8vw, 34px);
  }
  body.single-store .store-simulator-float {
    width: 80px !important;
    height: 80px !important;
    min-width: 80px !important;
    min-height: 80px !important;
  }
  body.single-store .store-simulator-float__icon {
    width: 26px;
    height: 26px;
  }
}

/* =========================================================
   v1.8.53 — requested detail/simulator refinements
   ========================================================= */

/* Coupon icon: optical vertical alignment with its label. */
body.single-store .pricing-first-total__coupon .store-coupon-cta {
  align-items: center;
}
body.single-store .pricing-first-total__coupon .store-coupon-cta__icon {
  position: relative;
  top: 1px;
  align-self: center;
}
body.single-store .pricing-first-total__coupon .store-coupon-cta__label {
  display: inline-flex;
  align-items: center;
  line-height: 1.2;
}

/* Calculate button: exactly the same dark pink as the fixed price-calculation CTA. */
body.single-store #store-simulator .btn-calculate,
body.single-store #store-simulator .btn-calculate:hover,
body.single-store #store-simulator .btn-calculate:focus-visible,
body.single-store #store-simulator .btn-calculate:active {
  background: var(--store-ui-pink) !important;
  color: #fff !important;
}

/* Result no longer shows the former A/B comparison hierarchy. */
body.single-store .simulator-result-summary--trial {
  padding-top: 2px;
}
body.single-store .simulator-result-summary--trial .simulator-result-summary__heading {
  margin-bottom: 8px;
}
body.single-store .simulator-result-summary--trial .simulator-result-summary__heading h4 {
  font-size: 16px;
}

/* After a result is shown, replace the initial yen guidance with a single close/return action. */
body.single-store .simulator-result-close {
  width: 100%;
  min-height: 46px;
  margin-top: 14px;
  padding: 10px 16px;
  border: 1px solid #dfe6ec;
  border-radius: 7px;
  background: #fff;
  color: var(--store-ui-navy);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
body.single-store .simulator-result-close:hover,
body.single-store .simulator-result-close:focus-visible,
body.single-store .simulator-result-close:active {
  background: #f5f7f9;
  color: var(--store-ui-navy);
}
body.single-store .simulator-result-close[hidden] {
  display: none !important;
}



/* =========================================================
   v1.8.55 — normal pricing system card refinement
   ========================================================= */
/* Separate each pricing category with the same gray tone used by
   the "本日の料金目安" notice, instead of an outline card. */
body.single-store #store-normal-pricing .pricing-system-card {
  border: 0 !important;
  border-radius: 8px !important;
  background: var(--store-ui-navy-soft) !important;
  box-shadow: none !important;
}

/* Inside each category card, keep only horizontal row separators. */
body.single-store #store-normal-pricing .pricing-system-card .pricing-table--system {
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.single-store #store-normal-pricing .pricing-system-card .pricing-table--system td {
  border: 0 !important;
  border-bottom: 1px solid #cfd8e1 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body.single-store #store-normal-pricing .pricing-system-card .pricing-table--system tr:last-child td {
  border-bottom: 0 !important;
}

@media (max-width: 767px) {
  body.single-store #store-normal-pricing .pricing-system-card .pricing-table--system tr {
    border: 0 !important;
    border-radius: 0 !important;
  }
  body.single-store #store-normal-pricing .pricing-system-card .pricing-table--system td {
    border: 0 !important;
    border-radius: 0 !important;
  }
  body.single-store #store-normal-pricing .pricing-system-card .pricing-table--system tr:not(:last-child) td:last-child {
    padding-bottom: 8px !important;
    border-bottom: 1px solid #cfd8e1 !important;
  }
}

/* =========================================================
   v1.8.56 — store detail structure / SNS merge / simple tables
   ========================================================= */

/* 店舗詳細全体は大きなカードで囲わず、各情報ブロックをシンプルに分ける。 */
body.single-store .store-info-panel--simple {
  padding: 32px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.single-store .store-info-panel--simple .detail-section__heading {
  padding: 0 4px;
}

body.single-store .store-detail-simple {
  display: grid;
  gap: 16px;
}

/* 指定されたカード表示：お客様へ / 特徴・サービス / 支払い方法 */
body.single-store .store-detail-soft-card {
  padding: 18px 20px;
  border: 0;
  border-radius: 8px;
  background: var(--store-ui-navy-soft);
  box-shadow: none;
}

body.single-store .store-detail-soft-card h3,
body.single-store .store-detail-table-group h3 {
  margin: 0 0 12px;
  color: var(--store-ui-navy);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.45;
}

body.single-store .store-detail-message-card p {
  margin: 0;
  color: #3e4650;
  font-size: 14px;
  line-height: 1.85;
}

body.single-store .store-detail-features-card .store-feature-tags {
  margin: 0;
}

/* SNSと基本情報は表形式。外枠は付けず、行の下罫線だけで区切る。 */
body.single-store .store-detail-table-group {
  margin: 0;
}

body.single-store .store-detail-table {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  table-layout: fixed;
}

body.single-store .store-detail-table th,
body.single-store .store-detail-table td {
  padding: 14px 12px;
  border: 0;
  border-bottom: 1px solid #cfd8e1;
  border-radius: 0;
  background: transparent;
  text-align: left;
  vertical-align: top;
  line-height: 1.65;
}

body.single-store .store-detail-table tr:first-child th,
body.single-store .store-detail-table tr:first-child td {
  border-top: 1px solid #cfd8e1;
}

body.single-store .store-detail-table th {
  width: 160px;
  color: #59636d;
  font-size: 13px;
  font-weight: 800;
}

body.single-store .store-detail-table td {
  color: #232a31;
  font-size: 14px;
  font-weight: 600;
}

/* 店舗SNS：説明とリンクを一つのカテゴリ内に統合。リンクはアイコンのみ。 */
body.single-store .store-official-sns-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

body.single-store .store-official-sns-icon {
  display: inline-flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-decoration: none;
}

body.single-store .store-official-sns-icon img {
  display: block;
  width: 32px;
  height: 32px;
  object-fit: contain;
}

body.single-store .store-official-sns-icon:hover,
body.single-store .store-official-sns-icon:focus-visible {
  opacity: .78;
}

body.single-store .store-detail-payment-card__body {
  min-width: 0;
}

body.single-store .store-detail-payment-card .store-payment-note {
  margin: 12px 0 0;
}

/* MAP / 来店前チェックをキャストInstagram直下の独立セクションとして表示。 */
body.single-store .store-map-section .store-map-panel,
body.single-store .store-visit-check-section .store-visit-check-panel {
  margin: 0;
}

body.single-store .store-map-section .store-map-panel iframe {
  width: 100%;
  height: 560px !important;
  min-height: 560px !important;
}

body.single-store .store-visit-check-section .store-visit-check-panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@media (max-width: 767px) {
  body.single-store .store-info-panel--simple {
    padding: 22px 0 !important;
  }

  body.single-store .store-detail-simple {
    gap: 12px;
  }

  body.single-store .store-detail-soft-card {
    padding: 15px 14px;
  }

  body.single-store .store-detail-soft-card h3,
  body.single-store .store-detail-table-group h3 {
    font-size: 15px;
  }

  body.single-store .store-detail-table th,
  body.single-store .store-detail-table td {
    padding: 12px 8px;
  }

  body.single-store .store-detail-table th {
    width: 106px;
    font-size: 12px;
  }

  body.single-store .store-detail-table td {
    font-size: 13px;
  }

  body.single-store .store-official-sns-icon {
    width: 36px;
    height: 36px;
  }

  body.single-store .store-official-sns-icon img {
    width: 30px;
    height: 30px;
  }

  body.single-store .store-map-section .store-map-panel iframe {
    height: 360px !important;
    min-height: 360px !important;
  }
}


/* =========================================================
   v1.8.57 — restore MAP/check PC layout + detail spacing
   ========================================================= */
/* MAP / 来店前チェックは従来どおりPCで左右、タブレット以下は縦並び。 */
body.single-store .store-map-check-section {
  margin-top: 24px;
}
body.single-store .store-map-check-section .store-embed-grid--map-info {
  margin-top: 0;
}
body.single-store .store-map-check-section .store-embed-grid--map-info.has-map {
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  align-items: stretch;
}
body.single-store .store-map-check-section .store-embed-grid--map-info:not(.has-map) {
  grid-template-columns: 1fr;
}
body.single-store .store-map-check-section .store-embed-card--map iframe {
  height: 360px !important;
  min-height: 360px !important;
}

/* v1.8.56で外枠カードを外す際に左右paddingまで0にしていたため、
   店舗詳細の情報ブロック自体に必要な余白を戻す。 */
body.single-store .store-info-panel--simple {
  padding: 32px !important;
}

@media (max-width: 1023px) {
  body.single-store .store-map-check-section .store-embed-grid--map-info.has-map {
    grid-template-columns: 1fr;
  }
  body.single-store .store-map-check-section .store-embed-card--map iframe {
    height: 320px !important;
    min-height: 320px !important;
  }
}

@media (max-width: 767px) {
  body.single-store .store-info-panel--simple {
    padding: 22px !important;
  }
}


/* =========================================================
   v1.8.58 — first-view spacing / set-price hierarchy / SNS cleanup
   ========================================================= */

/* サムネイル直下の特徴チップが詰まらないよう、メタ情報の上に余白を確保。 */
body.single-store .store-firstview-media--full + .store-firstview-meta {
  padding-top: 12px !important;
}

/* 初回1名様総額目安：通常SET → 下向き矢印 → 総額目安 の順で視線誘導。 */
body.single-store .pricing-first-total__price-stack {
  display: flex;
  min-width: 150px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

body.single-store .pricing-first-total__set-box {
  display: flex;
  min-width: 138px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 12px;
  border: 1px solid #cfd8e1;
  border-radius: 7px;
  background: var(--store-ui-navy-soft);
  color: var(--store-ui-navy);
  text-align: center;
}

body.single-store .pricing-first-total__set-box span {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
}

body.single-store .pricing-first-total__set-box strong {
  font-size: 13px;
  font-weight: 900;
  line-height: 1.25;
  white-space: nowrap;
}

body.single-store .pricing-first-total__arrow {
  display: block;
  color: #84909b;
  font-size: 16px;
  line-height: 1;
}

/* 1名 / 2名 / 3名以上もSET表記を同じ文言へ統一。レイアウトは従来どおり。 */
body.single-store .pricing-current-row__set-box span,
body.single-store .pricing-current-row__set-box strong {
  line-height: 1.25;
}

/* 店舗SNSは「リンク」「説明」の見出しを置かず、内容だけを縦に表示。 */
body.single-store .store-detail-table--sns .store-detail-sns-row td {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}
body.single-store .store-detail-table--sns .store-detail-sns-row--icons td {
  padding-top: 10px;
  padding-bottom: 10px;
}
body.single-store .store-detail-table--sns .store-detail-sns-row--description td {
  padding-top: 12px;
  padding-bottom: 12px;
}

@media (max-width: 767px) {
  body.single-store .store-firstview-media--full + .store-firstview-meta {
    padding-top: 30px !important;
  }
  body.single-store .pricing-first-total__body {
    grid-template-columns: minmax(0, 1fr) minmax(122px, auto);
    gap: 10px;
  }
  body.single-store .pricing-first-total__price-stack {
    min-width: 122px;
    gap: 5px;
    margin-top: -20px;
  }
  body.single-store .pricing-first-total__set-box {
    min-width: 118px;
    padding: 7px 8px;
  }
  body.single-store .pricing-first-total__set-box span {
    font-size: 10px;
  }
  body.single-store .pricing-first-total__set-box strong {
    font-size: 12px;
  }
  body.single-store .pricing-first-total__arrow {
    font-size: 14px;
  }
}


/* =========================================================
   v1.8.59 — MAP PC height restore / SET time notation cleanup
   ========================================================= */
/* PCでは従来のMAP高さへ戻し、右側の来店前チェックとの寸足らず感を解消。 */
@media (min-width: 1024px) {
  body.single-store .store-map-check-section .store-embed-card--map iframe {
    height: 560px !important;
    min-height: 560px !important;
  }
}


/* =========================================================
   v1.8.61 — store detail section surface / basic info heading
   ========================================================= */

/* 店舗詳細も他の詳細セクションと同じ白背景・角丸ボーダーへ統一。
   内部のカード／テーブル構成はv1.8.60までの仕様を維持する。 */
body.single-store .store-info-panel--simple {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  background: var(--color-surface) !important;
  box-shadow: var(--shadow-soft) !important;
}

body.single-store .store-detail-basic-group {
  margin: 0;
}

/* =========================================================
   v1.8.70 — visible provenance / AI-search readable pricing facts
   ========================================================= */
body.single-store .pricing-data-summary {
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid var(--store-ui-border-soft);
  border-radius: 9px;
  background: #fafbfd;
  color: var(--store-ui-text);
}
body.single-store .pricing-data-summary__lead,
body.single-store .pricing-data-summary__note {
  margin: 0;
  font-size: 12px;
  line-height: 1.65;
}
body.single-store .pricing-data-summary__lead strong {
  color: var(--store-ui-navy);
}
body.single-store .pricing-data-summary__facts {
  display: grid;
  gap: 5px;
  margin: 8px 0;
}
body.single-store .pricing-data-summary__facts > div {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}
body.single-store .pricing-data-summary__facts dt,
body.single-store .pricing-data-summary__facts dd {
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
}
body.single-store .pricing-data-summary__facts dt {
  color: var(--store-ui-muted);
  font-weight: 800;
}
body.single-store .pricing-data-summary__facts dd {
  color: var(--store-ui-text);
  font-weight: 600;
}
body.single-store .pricing-data-summary__note {
  color: var(--store-ui-muted);
}

@media (max-width: 640px) {
  body.single-store .pricing-data-summary__facts > div {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 8px;
  }
}
