/**
 * Functional site-page skeleton (ported structure from wp-mediken).
 * Colors use MONONS tokens — not mediken blue brand palette.
 */

.mns-sp {
  --mns-sp-accent: var(--mns-accent, #9EA7A2);
  --mns-sp-primary: var(--mns-primary, #2E2F2F);
  --mns-sp-ink: var(--mns-ink, #2E2F2F);
  --mns-sp-muted: var(--mns-muted, #878887);
  --mns-sp-line: var(--mns-line, #E8E8E8);
  --mns-sp-soft: var(--mns-soft, #F4F4F2);
  /*
   * 同底无描边：兄弟间距只留一份（父级 gap）。
   * 有底/有线的盒子才用 padding。
   */
  --mns-sp-section-y: clamp(40px, 6vw, 80px);
  --mns-sp-intro-gap: var(--mns-sp-section-y);
  color: var(--mns-text, #2E2F2F);
  background: #fff;
}

/*
 * 功能页竖栈（公司 / 支持 / 联系 / 隐私 / 说明书 / FAQ / 搜索 / 表单）。
 * 不含品牌页、产品详情：那些有底线或色带，padding 是盒子内部气口。
 */
.mns-sp--company > article > section,
.mns-sp--support > article > section,
.mns-sp--contact > article > section,
.mns-sp--privacy > article > section,
.mns-sp--tokusho > article > section,
.mns-sp--saitemap > article > section,
.mns-sp--manual > article > section,
.mns-sp--support-faq > article > section,
.mns-sp--search > article > section {
  display: flex;
  flex-direction: column;
  gap: var(--mns-sp-section-y);
}

.mns-sp--company,
.mns-sp--support,
.mns-sp--contact,
.mns-sp--privacy,
.mns-sp--tokusho,
.mns-sp--saitemap,
.mns-sp--manual,
.mns-sp--support-faq,
.mns-sp--search {
  padding-bottom: var(--mns-sp-section-y);
}

.mns-sp--company .mns-sp-kv,
.mns-sp--support .mns-sp-kv,
.mns-sp--contact .mns-sp-kv,
.mns-sp--privacy .mns-sp-kv,
.mns-sp--tokusho .mns-sp-kv,
.mns-sp--saitemap .mns-sp-kv,
.mns-sp--manual .mns-sp-kv,
.mns-sp--support-faq .mns-sp-kv,
.mns-sp--search .mns-sp-kv {
  padding-bottom: 0;
}

/* ---- KV ---- */
.mns-sp-kv {
  position: relative;
  overflow: visible;
  width: 100%;
  padding: clamp(56px, 7vw, 96px) 0 clamp(16px, 2vw, 28px);
  background: #fff;
  color: var(--mns-sp-ink, #2e2f2f);
}

.mns-sp-kv__inner {
  position: relative;
  isolation: isolate;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--mns-gutter, clamp(20px, 5vw, 40px));
  text-align: center;
}

/* Local soft fog behind title — pinned to H1 so crumbs do not pull it down.
 * z-index:-1 keeps the wash behind glyphs (z-index:0 would paint over the text). */
.mns-sp-ttl01::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 50%;
  width: min(100%, 36rem);
  height: clamp(7.5rem, 22vw, 12rem);
  transform: translate(-50%, -50%);
  background: radial-gradient(
    ellipse 68% 62% at 50% 50%,
    color-mix(in srgb, #fff 94%, transparent) 0%,
    color-mix(in srgb, #fff 62%, transparent) 42%,
    color-mix(in srgb, #fff 22%, transparent) 68%,
    transparent 100%
  );
  filter: blur(18px);
  pointer-events: none;
}

.mns-sp-ttl01 {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, sans-serif;
  font-size: var(--mns-fs-h1, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  color: var(--mns-sp-ink, #2e2f2f);
}

.mns-sp-ttl01__en {
  display: block;
  margin-top: 0.55em;
  color: var(--mns-sp-accent, #9ea7a2);
  font-family: "Archivo", "Noto Sans JP", sans-serif;
  font-size: var(--mns-fs-small, 0.875rem);
  font-weight: 600;
  letter-spacing: 0.08em;
}

/* Title underline removed — keep markup for a11y/aria-hidden, hide visually. */
.mns-sp-kv__line {
  display: none;
}

/* ---- 404 / not-found (real is_404 + /404-not-found/ utility page) ---- */
.mns-not-found-page {
  padding-bottom: clamp(48px, 8vw, 96px);
}

.mns-not-found {
  box-sizing: border-box;
  width: min(
    100% - (var(--mns-page-gutter, var(--mns-gutter, clamp(24px, 5vw, 72px))) * 2),
    var(--mns-container, 1280px)
  );
  max-width: none;
  margin-inline: auto;
  padding: clamp(8px, 2vw, 16px) 0 0;
}

.mns-not-found__inner {
  max-width: 640px;
  margin-inline: auto;
  text-align: center;
}

.mns-not-found__lead {
  margin: 0;
  color: var(--mns-text, #2E2F2F);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  font-weight: 600;
  line-height: 1.7;
}

.mns-not-found__hint {
  margin: 0.75rem 0 0;
  color: var(--mns-muted, #878887);
  font-size: 0.9375rem;
  line-height: 1.7;
}

.mns-not-found__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.mns-not-found__actions .mns-button--outline {
  background: transparent;
  color: var(--mns-primary, #2E2F2F);
  box-shadow: inset 0 0 0 1px var(--mns-line, #E8E8E8);
}

.mns-not-found__actions .mns-button--outline:hover {
  box-shadow: inset 0 0 0 1px var(--mns-primary, #2E2F2F);
}

/* ---- Breadcrumb ----
 * Default (standalone): same rail as header logo.
 * Inside a titled KV, fill .mns-sp-kv__inner — do not re-apply the 1280 rail.
 * 产品页等不在 .mns-sp 内时，颜色用 --mns-* 回退，避免连接线 background 失效。
 */
.mns-sp-breadcrumb {
  box-sizing: border-box;
  width: min(
    100% - (var(--mns-page-gutter, var(--mns-gutter, clamp(24px, 5vw, 72px))) * 2),
    var(--mns-container, 1280px)
  );
  max-width: none;
  margin-inline: auto;
  padding: 0.5rem 0 0;
}

.mns-sp-kv__inner .mns-sp-breadcrumb {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding: 0.75em 0 0;
}

.mns-sp-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

/* Mobile: single-line breadcrumb with horizontal scroll (no wrap) */
@media (max-width: 767px) {
  .mns-sp-breadcrumb {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .mns-sp-crumbs {
    flex-wrap: nowrap;
    width: max-content;
    min-width: 100%;
  }

  .mns-sp-crumbs li {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

.mns-sp-crumbs li {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 8px 0;
  font-size: 13px;
  color: var(--mns-sp-muted, var(--mns-muted, #878887));
}

/* 项间连接线（短横） */
.mns-sp-crumbs li + li::before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 0.7em;
  height: 1px;
  margin: 0 0.85em;
  background: var(--mns-sp-ink, var(--mns-ink, var(--mns-primary, #2e2f2f)));
  opacity: 0.45;
}

.mns-sp-crumbs a {
  color: inherit;
  text-decoration: none;
  font-weight: 400;
}

.mns-sp-crumbs a:hover {
  color: var(--mns-sp-primary, var(--mns-primary, #2e2f2f));
}

.mns-sp-crumbs [aria-current="page"] {
  color: var(--mns-sp-primary, var(--mns-primary, #2e2f2f));
  font-weight: 700;
}

/* ---- Containers / section titles ----
 * Full rail = header logo + breadcrumb:
 *   min(100% - 2×page-gutter, 1280), no extra side padding.
 * --mini keeps a narrower max for forms/prose (centered reading column).
 */
.mns-sp-container {
  box-sizing: border-box;
  width: min(
    100% - (var(--mns-page-gutter, var(--mns-gutter, clamp(24px, 5vw, 72px))) * 2),
    var(--mns-container, 1280px)
  );
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}

.mns-sp-container--mini {
  width: min(
    100% - (var(--mns-page-gutter, var(--mns-gutter, clamp(24px, 5vw, 72px))) * 2),
    960px
  );
  max-width: none;
}

/* 同底模块：间距交给父级 gap，自身不再上下 padding */
.mns-sp-section {
  padding-block: 0;
}

.mns-sp-ttl-en {
  margin: 0;
  color: var(--mns-sp-ink, #2e2f2f);
  font-family: "Archivo", "Noto Sans JP", sans-serif;
  font-size: var(--mns-fs-h2, 1.25rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
}

.mns-sp-ttl-jp {
  margin: 0.45rem 0 0;
  color: var(--mns-sp-ink, #2e2f2f);
  font-size: var(--mns-fs-small, 0.875rem);
  font-weight: 650;
  letter-spacing: 0.12em;
}

/* ---- Company outline table (mediken .table-outline structure) ---- */
.mns-sp-table {
  width: 100%;
  margin: clamp(40px, 7vw, 88px) 0 0;
  border-collapse: collapse;
}

.mns-sp-table th,
.mns-sp-table td {
  padding: clamp(1.25rem, 3vw, 2.25rem) 0;
  text-align: left;
  vertical-align: top;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.mns-sp-table th {
  width: 28%;
  padding-right: 1rem;
  border-top: 2px solid var(--mns-sp-primary);
  color: var(--mns-sp-ink);
  font-size: clamp(0.95rem, 1.4vw, 1.15rem);
  font-weight: 700;
}

.mns-sp-table td {
  width: 72%;
  padding-left: 1.25rem;
  border-top: 2px solid var(--mns-sp-line);
  border-left: 10px solid #fff;
  font-size: clamp(0.9rem, 1.3vw, 1.05rem);
  color: var(--mns-text, #2E2F2F);
}

.mns-sp-table tr:last-child th {
  border-bottom: 2px solid var(--mns-sp-primary);
}

.mns-sp-table tr:last-child td {
  border-bottom: 2px solid var(--mns-sp-line);
}

/* ---- Access ---- */

.mns-sp-access__flex {
  display: grid;
  gap: clamp(28px, 5vw, 48px);
}

.mns-sp-access__detail {
  margin: 2rem 0 0;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

.mns-sp-map {
  position: relative;
  height: 0;
  overflow: hidden;
  padding-bottom: 75%;
  background: var(--mns-sp-soft);
  border-radius: var(--mns-radius, 4px);
}

.mns-sp-map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.mns-sp-map__placeholder {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--mns-sp-muted);
  font-family: "Archivo", sans-serif;
  font-size: 0.9rem;
  font-weight: 650;
  letter-spacing: 0.12em;
}

/* 有顶线：padding 是线内侧气口，不是模块间距 */
.mns-sp-extra {
  padding-block: var(--mns-sp-section-y);
  border-top: 1px solid var(--mns-sp-line);
}

@media (min-width: 900px) {
  .mns-sp-access__flex {
    grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
    align-items: start;
    gap: 4%;
  }

  .mns-sp-map {
    padding-bottom: 100%;
  }
}

@media (max-width: 768px) {
  .mns-sp-table,
  .mns-sp-table tbody,
  .mns-sp-table tr,
  .mns-sp-table th,
  .mns-sp-table td {
    display: block;
    width: 100%;
  }

  .mns-sp-table th {
    padding-bottom: 0.35rem;
    border-bottom: 0;
  }

  .mns-sp-table td {
    padding-top: 0.35rem;
    padding-left: 0;
    border-left: 0;
  }

  .mns-sp-table tr:last-child th {
    border-bottom: 0;
  }
}

/* ---- Support hub ---- */

/* KV 下首段介绍：间距由父级 gap 出，自身不再双边 margin/padding */
.mns-sp-page-intro,
.mns-sp-section.mns-sp-support-intro,
.mns-manual-intro {
  padding-block: 0;
  margin-block: 0;
  text-align: center;
}

.mns-sp-support-intro {
  text-align: center;
}

.mns-sp-support-intro__text {
  margin: 0;
  font-size: var(--mns-fs-lead, clamp(1rem, 1.3vw, 1.125rem));
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--mns-sp-ink);
}

.mns-sp-support-card-grid {
  display: grid;
  gap: clamp(16px, 2.5vw, 24px);
  margin: clamp(28px, 4vw, 40px) 0 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 768px) {
  .mns-sp-support-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.mns-sp-support-card {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  height: 100%;
  padding: clamp(20px, 3vw, 28px);
  color: inherit;
  text-decoration: none;
  background: var(--mns-sp-soft);
  border-radius: var(--mns-radius, 4px);
  border: 1px solid transparent;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.mns-sp-support-card:hover,
.mns-sp-support-card:focus-visible {
  border-color: var(--mns-sp-line);
  background: #fff;
}

.mns-sp-support-card:focus-visible {
  outline: 2px solid var(--mns-sp-primary);
  outline-offset: 2px;
}

.mns-sp-support-card__badge {
  font-family: "Archivo", "Noto Sans JP", sans-serif;
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  color: var(--mns-sp-accent);
}

.mns-sp-support-card__en {
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  color: var(--mns-sp-accent);
}

.mns-sp-support-card__title {
  font-size: var(--mns-fs-h3, 1.0625rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

.mns-sp-support-card__text {
  flex: 1;
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--mns-sp-muted);
}

.mns-sp-support-card__cta {
  margin-top: 0.35rem;
  font-size: 0.9rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  color: var(--mns-sp-primary);
}

/* Contact block reuses Guides card grid (.mns-sp-support-cards). */
.mns-sp-support-contact__note {
  margin: clamp(16px, 2.5vw, 22px) 0 0;
  font-size: 0.85rem;
  line-height: 1.7;
  color: var(--mns-sp-muted);
}

.mns-sp-contact-lead {
  margin: 0 0 clamp(28px, 4vw, 40px);
  text-align: center;
  font-size: var(--mns-fs-lead, 1rem);
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--mns-sp-ink);
}

.mns-sp-contact-forms {
  display: grid;
  gap: clamp(20px, 3vw, 28px);
  margin-top: clamp(28px, 4vw, 40px);
}

.mns-sp-contact-type-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(16px, 2.5vw, 24px);
  margin-top: clamp(28px, 4vw, 40px);
}

.mns-sp-contact-forms .mns-sp-contact-type-list {
  margin-top: 0;
}

.mns-sp-contact-type-card {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--mns-sp-line);
  border-radius: var(--mns-radius, 4px);
  background: #fff;
  text-align: left;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.mns-sp-contact-type-card:hover,
.mns-sp-contact-type-card:focus-visible {
  border-color: var(--mns-sp-primary);
  background: var(--mns-sp-soft);
}

.mns-sp-contact-type-card:focus-visible {
  outline: 2px solid var(--mns-sp-primary);
  outline-offset: 2px;
}

.mns-sp-contact-type-card.is-active {
  border-color: var(--mns-sp-primary);
  background: var(--mns-sp-soft);
}

.mns-sp-contact-type-card__en {
  display: block;
  font-family: "Archivo", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.4;
  color: var(--mns-sp-accent);
}

.mns-sp-contact-type-card__label {
  display: block;
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, sans-serif;
  font-size: var(--mns-fs-h2, clamp(1.25rem, 2vw, 1.625rem));
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.35;
  color: var(--mns-sp-ink);
}

.mns-sp-contact-type-card__text {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  font-size: 0.98rem;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: var(--mns-sp-ink);
  overflow-wrap: anywhere;
  word-break: break-word;
}

.mns-sp-contact-panel {
  scroll-margin-top: calc(var(--mns-header-total-height, 72px) + 16px);
}

.mns-sp-contact-form-intro {
  margin: 0 0 1.25rem;
  text-align: center;
}

.mns-sp-contact-form-intro h3 {
  margin: 0 0 0.75rem;
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, sans-serif;
  font-size: var(--mns-fs-h3, clamp(1.0625rem, 1.35vw, 1.2rem));
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: var(--mns-sp-ink);
}

.mns-sp-contact-form-intro p,
.mns-sp-contact-unavailable {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: var(--mns-sp-ink);
}

.mns-sp-contact-form__frame {
  overflow: hidden;
  padding: clamp(16px, 2.5vw, 24px);
  background: #fff;
  border: 1px solid var(--mns-sp-line);
  border-radius: var(--mns-radius, 4px);
  scroll-margin-top: calc(var(--mns-header-total-height, 72px) + 16px);
}

.mns-sp-contact-forms .wpforms-container,
.mns-sp-contact-forms .wpforms-container-full {
  margin: 0;
  max-width: none;
}

@media (min-width: 768px) {
  .mns-sp-contact-forms .wpforms-form .wpforms-field-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 24px;
    align-items: stretch;
  }

  .mns-sp-contact-forms .wpforms-form .wpforms-field {
    display: flex;
    flex-direction: column;
    min-width: 0;
    max-width: none;
    width: auto;
  }

  .mns-sp-contact-forms .wpforms-form .wpforms-field-label,
  .mns-sp-contact-forms .wpforms-form legend.wpforms-field-label {
    display: flex;
    align-items: center;
    min-height: 1.8em;
    line-height: 1.4;
    white-space: nowrap;
  }

  .mns-sp-contact-forms .wpforms-form .wpforms-required-label {
    display: inline;
    flex: none;
    margin: 0 0 0 0.2em;
    line-height: 1;
  }

  .mns-sp-contact-forms .wpforms-form .wpforms-field > input,
  .mns-sp-contact-forms .wpforms-form .wpforms-field > select {
    margin-top: auto;
  }

  .mns-sp-contact-forms .wpforms-form .wpforms-field-textarea,
  .mns-sp-contact-forms .wpforms-form .wpforms-field-checkbox {
    grid-column: 1 / -1;
  }
}

.mns-sp-contact-forms .wpforms-form .wpforms-field {
  padding: 0 0 1.15rem;
}

.mns-sp-contact-forms .wpforms-form .wpforms-field-label,
.mns-sp-contact-forms .wpforms-form legend.wpforms-field-label {
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--mns-sp-ink);
}

.mns-sp-contact-forms .wpforms-form .wpforms-required-label {
  color: var(--mns-sp-primary);
}

.mns-sp-contact-forms .wpforms-form .wpforms-field-description {
  margin-top: 0.45rem;
  font-size: 0.9rem;
  line-height: 1.8;
}

.mns-sp-contact-forms .wpforms-form .wpforms-field-description a {
  color: var(--mns-sp-primary);
  font-weight: 700;
  text-decoration: underline;
}

.mns-sp-contact-forms .wpforms-form input[type=text],
.mns-sp-contact-forms .wpforms-form input[type=email],
.mns-sp-contact-forms .wpforms-form input[type=tel],
.mns-sp-contact-forms .wpforms-form select,
.mns-sp-contact-forms .wpforms-form textarea {
  width: 100%;
  max-width: 100%;
  color: var(--mns-sp-ink);
  background: #fff;
  border: 1px solid var(--mns-sp-line);
  border-radius: var(--mns-radius, 4px);
  box-shadow: none;
}

.mns-sp-contact-forms .wpforms-form select,
.mns-sp-contact-forms .wpforms-container-full select,
.mns-sp-contact-forms .wpforms-container-full select:disabled {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  padding-right: 2.5rem !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none'%3E%3Cpath d='M1 2.2L7 6.4L13 2.2' stroke='%232E2F2F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.9rem center !important;
  background-size: 0.875rem 0.5rem !important;
  cursor: pointer;
}

.mns-sp-contact-forms .wpforms-form select::-ms-expand {
  display: none;
}

.mns-sp-contact-forms .wpforms-form textarea {
  min-height: 10rem;
}

.mns-sp-contact-forms .wpforms-form .wpforms-submit-container {
  padding-top: 0.5rem;
  text-align: center;
}

.mns-sp-contact-forms .wpforms-form button[type=submit],
.mns-sp-contact-forms .wpforms-form .wpforms-submit {
  min-height: 44px;
  padding: 10px 20px;
  border: 0;
  border-radius: var(--mns-radius, 4px);
  background: var(--mns-primary, #2e2f2f) !important;
  color: #fff !important;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow: none;
}

.mns-sp-contact-forms .wpforms-form button[type=submit]:hover,
.mns-sp-contact-forms .wpforms-form .wpforms-submit:hover {
  opacity: 0.9;
}

.mns-sp-contact-forms .wpforms-confirmation-container-full,
.mns-sp-contact-forms div.wpforms-confirmation-container-full {
  margin: 0;
  padding: 0.5rem 0 0;
  border: 0;
  background: transparent;
  text-align: center;
}

.mns-sp-contact-forms .wpforms-confirmation-container-full p {
  margin: 0;
  text-align: center;
}

.mns-sp-contact-mail {
  padding-top: clamp(1.75rem, 3vw, 2.5rem);
  border-top: 1px solid var(--mns-sp-line);
}

.mns-sp-contact-mail + .mns-sp-contact-mail {
  margin-top: clamp(1.25rem, 2vw, 1.75rem);
}

.mns-sp-contact-mail__title {
  margin: 0 0 0.75rem;
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, sans-serif;
  font-size: var(--mns-fs-h3, clamp(1.0625rem, 1.35vw, 1.2rem));
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: var(--mns-sp-ink);
}

.mns-sp-contact-mail__text,
.mns-sp-contact-mail__address {
  margin: 0 0 0.55rem;
  font-size: 0.98rem;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: var(--mns-sp-ink);
}

.mns-sp-contact-mail__address {
  margin-bottom: 0;
}

.mns-sp-contact-mail__address a {
  font-weight: 700;
  color: var(--mns-sp-primary);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

@media (min-width: 768px) {
  .mns-sp-contact-alt .mns-sp-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(24px, 4vw, 48px);
    align-items: start;
  }

  .mns-sp-contact-alt .mns-sp-contact-mail + .mns-sp-contact-mail {
    margin-top: 0;
  }
}

@media (max-width: 767px) {
  .mns-sp-contact-type-list {
    grid-template-columns: 1fr;
  }

  /*
   * /support/contact/form/ mobile: 14px body scale, left-aligned copy.
   * KV stays on the site-wide ttl01 scale. Hub /support/contact/ is unchanged.
   */
  .mns-sp--form .mns-sp-support-contact,
  .mns-sp--form .mns-sp-contact-alt {
    font-size: 14px;
    text-align: left;
  }

  .mns-sp--form .mns-sp-contact-lead br {
    display: none;
  }

  .mns-sp--form .mns-sp-contact-lead,
  .mns-sp--form .mns-sp-contact-form-intro,
  .mns-sp--form .mns-sp-contact-forms .wpforms-form .wpforms-submit-container,
  .mns-sp--form .mns-sp-contact-forms .wpforms-confirmation-container-full,
  .mns-sp--form .mns-sp-contact-forms .wpforms-confirmation-container-full p {
    text-align: left;
  }

  .mns-sp--form .mns-sp-contact-lead,
  .mns-sp--form .mns-sp-contact-type-card__en,
  .mns-sp--form .mns-sp-contact-type-card__label,
  .mns-sp--form .mns-sp-contact-type-card__text,
  .mns-sp--form .mns-sp-contact-form-intro h3,
  .mns-sp--form .mns-sp-contact-form-intro p,
  .mns-sp--form .mns-sp-contact-unavailable,
  .mns-sp--form .mns-sp-contact-mail__title,
  .mns-sp--form .mns-sp-contact-mail__text,
  .mns-sp--form .mns-sp-contact-mail__address {
    font-size: 14px;
  }

  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form .wpforms-field-label,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form legend.wpforms-field-label,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form .wpforms-field-sublabel,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form .wpforms-field-label-inline,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form .wpforms-field-description,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form label,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form li,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form p,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form button[type=submit],
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form .wpforms-submit,
  .mns-sp--form .mns-sp-contact-forms .wpforms-form .wpforms-field-label,
  .mns-sp--form .mns-sp-contact-forms .wpforms-form legend.wpforms-field-label,
  .mns-sp--form .mns-sp-contact-forms .wpforms-form .wpforms-field-description,
  .mns-sp--form .mns-sp-contact-forms .wpforms-form button[type=submit],
  .mns-sp--form .mns-sp-contact-forms .wpforms-form .wpforms-submit {
    font-size: 14px;
  }

  /* Inputs stay 16px so iOS Safari does not zoom on focus. */
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form input[type=text],
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form input[type=email],
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form input[type=tel],
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form select,
  .mns-sp--form .mns-sp-contact-forms div.wpforms-container-full .wpforms-form textarea,
  .mns-sp--form .mns-sp-contact-forms .wpforms-form input[type=text],
  .mns-sp--form .mns-sp-contact-forms .wpforms-form input[type=email],
  .mns-sp--form .mns-sp-contact-forms .wpforms-form input[type=tel],
  .mns-sp--form .mns-sp-contact-forms .wpforms-form select,
  .mns-sp--form .mns-sp-contact-forms .wpforms-form textarea {
    font-size: 16px;
  }
}

.mns-sp-support-faq__list {
  display: grid;
  gap: 0;
  margin-top: clamp(20px, 3vw, 28px);
  border-top: 1px solid var(--mns-sp-line);
}

.mns-sp-support-faq__item {
  border-bottom: 1px solid var(--mns-sp-line);
}

.mns-sp-support-faq__item summary {
  cursor: pointer;
  list-style: none;
  padding: 1.15rem 0;
  font-weight: 650;
  letter-spacing: 0.03em;
  line-height: 1.6;
}

.mns-sp-support-faq__item summary::-webkit-details-marker {
  display: none;
}

.mns-sp-support-faq__item summary::after {
  content: "+";
  float: right;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  color: var(--mns-sp-ink);
}

.mns-sp-support-faq__item[open] summary::after {
  content: "−";
}

.mns-sp-support-faq__item p {
  margin: 0 0 1.25rem;
  padding-right: 1.5rem;
  font-size: 0.95rem;
  line-height: 1.85;
  color: var(--mns-sp-muted);
}

.mns-sp--support .mns-sp-support-faq {
  padding-bottom: 0;
}

/*
 * Support / Contact IA: content + KV align to site --mns-container (1280px).
 * Company / privacy keep the narrower KV; manual single body stays on --mini via markup.
 */
.mns-sp--support .mns-sp-kv__inner,
.mns-sp--support-faq .mns-sp-kv__inner,
.mns-sp--manual .mns-sp-kv__inner,
.mns-sp--contact .mns-sp-kv__inner {
  max-width: var(--mns-container, 1280px);
}

.mns-sp--support .mns-sp-kv__line,
.mns-sp--support-faq .mns-sp-kv__line,
.mns-sp--manual .mns-sp-kv__line,
.mns-sp--contact .mns-sp-kv__line {
  width: min(100% - 2 * var(--mns-gutter, 20px), var(--mns-container, 1280px));
}

/* ---- Privacy policy (legal long-form; copy ranks aligned to site skeleton) ---- */
.mns-sp--privacy .mns-sp-privacy {
  padding-bottom: 0;
}

/* Lead — 导语职级（对齐 support intro，margin 与下方条款重叠同一份） */
.mns-sp-privacy__lead {
  margin: 0 0 var(--mns-sp-intro-gap);
  font-size: var(--mns-fs-lead, clamp(1rem, 1.3vw, 1.125rem));
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--mns-sp-ink);
}

.mns-sp-privacy__body {
  color: var(--mns-sp-ink);
}

.mns-sp-privacy__block + .mns-sp-privacy__block {
  margin-top: clamp(2rem, 3.5vw, 2.75rem);
}

/* Section H2 — 条标题职级（对齐 ttl02） */
.mns-sp-privacy__heading {
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--mns-sp-line);
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, sans-serif;
  font-size: var(--mns-fs-h2, clamp(1.25rem, 2vw, 1.625rem));
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.35;
  color: var(--mns-sp-ink);
}

/* Operator defs — 标签/值职级 */
.mns-sp-privacy__defs {
  margin: 0;
}

.mns-sp-privacy__def {
  display: grid;
  grid-template-columns: minmax(5.5rem, 7.5rem) minmax(0, 1fr);
  gap: 0.5rem 1.25rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--mns-sp-line);
}

.mns-sp-privacy__def:first-child {
  border-top: 1px solid var(--mns-sp-line);
}

.mns-sp-privacy__def dt {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.7;
  color: var(--mns-sp-muted);
}

.mns-sp-privacy__def dd {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.75;
  letter-spacing: 0.02em;
  color: var(--mns-sp-ink);
}

.mns-sp-privacy__def a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* Rich body — 款标题 / 正文 / 列表 */
.mns-sp-privacy__rich > *:first-child {
  margin-top: 0;
}

.mns-sp-privacy__rich h3 {
  margin: 1.75rem 0 0.65rem;
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, sans-serif;
  font-size: var(--mns-fs-h3, clamp(1.0625rem, 1.35vw, 1.2rem));
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: var(--mns-sp-ink);
}

.mns-sp-privacy__rich p,
.mns-sp-privacy__rich ul,
.mns-sp-privacy__rich ol {
  margin: 0 0 1.1rem;
  font-size: 0.98rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: var(--mns-sp-ink);
}

.mns-sp-privacy__rich ul,
.mns-sp-privacy__rich ol {
  padding-left: 1.35rem;
}

.mns-sp-privacy__rich li + li {
  margin-top: 0.45rem;
}

.mns-sp-privacy__rich a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.mns-sp-privacy__rich strong {
  font-weight: 700;
  color: var(--mns-sp-ink);
}

.mns-sp-privacy__table-wrap {
  margin: 0 0 1.1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.mns-sp-privacy__table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  font-size: 0.92rem;
  line-height: 1.7;
  letter-spacing: 0.02em;
  color: var(--mns-sp-ink);
}

.mns-sp-privacy__table th,
.mns-sp-privacy__table td {
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid var(--mns-sp-line);
  text-align: left;
  vertical-align: top;
}

.mns-sp-privacy__table thead th {
  border-top: 1px solid var(--mns-sp-line);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--mns-sp-muted);
  white-space: nowrap;
}

.mns-sp-privacy__table tbody tr:last-child td {
  border-bottom: 1px solid var(--mns-sp-line);
}

/* Meta — 更新日职级 */
.mns-sp-privacy__updated {
  margin: clamp(2.5rem, 5vw, 3.5rem) 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--mns-sp-line);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.7;
  color: var(--mns-sp-muted);
}

@media (max-width: 640px) {
  .mns-sp-privacy__def {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}

/* ---- HTML sitemap (/saitemap/) ---- */
.mns-sp-saitemap-intro,
.mns-sp-saitemap-jump {
  padding-block: 0;
}

.mns-sp-saitemap__lead {
  margin: 0;
  text-align: center;
  font-size: var(--mns-fs-lead, clamp(1rem, 1.3vw, 1.125rem));
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--mns-sp-ink);
}

.mns-sp-saitemap__jump {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.mns-sp-saitemap__jump a {
  color: var(--mns-sp-ink);
  font-size: var(--mns-fs-small, 0.875rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.7;
  text-decoration: none;
}

.mns-sp-saitemap__jump a:hover,
.mns-sp-saitemap__jump a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.mns-sp-saitemap__jump a:focus-visible {
  outline: 2px solid var(--mns-sp-primary, #2e2f2f);
  outline-offset: 2px;
}

/* Section H2 — same rank as privacy / site-page headings */
.mns-sp-saitemap__heading {
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--mns-sp-line, #e8e8e8);
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, sans-serif;
  font-size: var(--mns-fs-h2, clamp(1.25rem, 2vw, 1.625rem));
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.35;
  color: var(--mns-sp-ink);
}

.mns-sp-saitemap__group + .mns-sp-saitemap__group {
  margin-top: clamp(2.5rem, 4.5vw, 3.5rem);
  padding-top: clamp(2rem, 3.5vw, 2.75rem);
  border-top: 1px solid var(--mns-sp-line, #e8e8e8);
}

.mns-sp-saitemap__hubs,
.mns-sp-saitemap__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.mns-sp-saitemap__hubs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1.25rem;
  margin-top: clamp(1.25rem, 2.2vw, 1.75rem);
}

.mns-sp-saitemap__link {
  color: var(--mns-sp-ink);
  font-size: 0.98rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.02em;
  text-decoration: none;
}

.mns-sp-saitemap__link:hover,
.mns-sp-saitemap__link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.mns-sp-saitemap__link:focus-visible {
  outline: 2px solid var(--mns-sp-primary, #2e2f2f);
  outline-offset: 2px;
}

.mns-sp-saitemap__link[aria-current="page"] {
  color: var(--mns-sp-muted, #878887);
  pointer-events: none;
  text-decoration: none;
}

.mns-sp-saitemap__children {
  display: grid;
  gap: clamp(1.35rem, 2.4vw, 1.85rem);
  margin-top: clamp(1.5rem, 2.8vw, 2.25rem);
}

.mns-sp-saitemap__child {
  padding: 1rem 0 0;
  border-top: 1px solid var(--mns-sp-line, #e8e8e8);
}

.mns-sp-saitemap__child-title {
  margin: 0 0 0.65rem;
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, sans-serif;
  font-size: var(--mns-fs-h3, clamp(1.0625rem, 1.35vw, 1.2rem));
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: var(--mns-sp-ink);
}

.mns-sp-saitemap__child-title a {
  color: inherit;
  text-decoration: none;
}

.mns-sp-saitemap__child-title a:hover,
.mns-sp-saitemap__child-title a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.mns-sp-saitemap__list {
  display: grid;
  gap: 0.35rem 1.5rem;
}

@media (min-width: 640px) {
  .mns-sp-saitemap__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .mns-sp-saitemap__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .mns-sp--saitemap .mns-sp-saitemap__group[id="sitemap-company"] .mns-sp-saitemap__children {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 4%;
  }

  .mns-sp--saitemap .mns-sp-saitemap__group[id="sitemap-company"] .mns-sp-saitemap__child {
    padding-top: 0;
    border-top: 0;
  }
}

.mns-sp-saitemap__list--articles {
  grid-template-columns: 1fr;
  gap: 0;
}

.mns-sp-saitemap__list--articles li + li {
  border-top: 1px solid var(--mns-sp-line, #e8e8e8);
}

.mns-sp-saitemap__link--article {
  display: block;
  padding: 0.7rem 0;
}

.mns-sp-saitemap__link--article .mns-sp-saitemap__label {
  display: block;
  line-height: 1.7;
}

/* Tokusho disclosure labels are longer than privacy operator labels. */
.mns-sp--tokusho .mns-sp-privacy__def {
  grid-template-columns: minmax(9rem, 13rem) minmax(0, 1fr);
}

@media (max-width: 760px) {
  .mns-sp--tokusho .mns-sp-privacy__def {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}
