@charset "UTF-8";
.sec-cost {
  position: relative;
  overflow: hidden;
  min-height: 1934px;
  color: var(--c-text);
  font-feature-settings: normal;
  line-break: strict;
  text-spacing-trim: space-all;
}
.cost-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  isolation: isolate;
  background: #fff;
  z-index: 0;
  pointer-events: none;
}
.cost-bg-stage {
  position: absolute;
  left: 50%;
  top: 0;
  width: 1080px;
  height: 100%;
  transform: translateX(-50%);
}
.cost-bg-arch,
.cost-bg-implants {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: .4;
}
.cost-bg-arch  { left: -700px; top: 601px; width: 1091.223px; height: 953.774px; }
.cost-bg-arch img {
  width: 913px; height: 684px; max-width: none;
  transform: rotate(19.89deg) scaleX(-1);
}
.cost-bg-implants { left: 639px; top: 209px; width: 1254.672px; height: 1101.339px; }
.cost-bg-implants img {
  width: 1046px; height: 784px; max-width: none;
  transform: rotate(-20.55deg);
}
.cost-bg-jaw { display: none; }
.cost-bg-tint {
  position: absolute;
  inset: 0;
  background: #f8f8f8;
  mix-blend-mode: multiply;
}
.cost-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(1080px, 100% - 80px);
  margin-inline: auto;
  padding-top: 101.91px;
}
.cost-title {
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: 48px;
  line-height: 76.8px;
  color: var(--c-text);
  text-align: center;
  margin-bottom: 29.99px;
}
.cost-title-l,
.cost-title-s { font-size: inherit; }
.cost-rule {
  align-self: center;
  width: 80px;
  height: 1px;
  background: #666666;
  margin-bottom: 26.79px;
}
.cost-rule--sub { margin-bottom: 61.5px; }
.cost-lead {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 18px;
  line-height: 36px;
  letter-spacing: .04em;
  color: var(--c-text);
  text-align: center;
  margin-bottom: 48.51px;
}
.cost-subtitle {
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: 36px;
  line-height: 57.6px;
  color: var(--c-text);
  text-align: center;
  margin-bottom: 34.12px;
}
.cost-tablewrap { overflow-x: auto; }
.cost-tablewrap--plan   { margin-bottom: 56.78px; }
.cost-tablewrap--allon4 { margin-bottom: 26px; }
.cost-table {
  width: 100%;
  min-width: 880px;
  table-layout: fixed;
  border-collapse: collapse;
  font-family: var(--font-heading);
}
.cost-table th,
.cost-table td {
  text-align: center;
  vertical-align: middle;
  padding: 0;
}
.cost-table thead th {
  font-weight: 500;
  font-size: 20px;
  line-height: 1;
  color: #373d42;
}
.cost-table thead th + th { border-left: 1px solid #ffffff; }
.cost-table tbody tr:nth-child(odd)  { background: #ffffff; }
.cost-table tbody tr:nth-child(even) { background: #f2f4f9; }
.cost-table tbody tr > * + * { border-left: 1px solid #e2e6ef; }
.cost-table tbody th.cost-plan {
  font-weight: 500;
  font-size: 18px;
  line-height: 1;
  color: #1e2939;
}
.cost-table tbody td {
  font-weight: 400;
  font-size: 18px;
  line-height: 1.4;
  color: #4a5565;
}
.cost-table--plan thead th { height: 70px; background: #e2e6ef; }
.cost-table--plan tbody th,
.cost-table--plan tbody td { height: 84px; }
.cost-c1, .cost-c2, .cost-c3, .cost-c4 { width: 25%; }
.cost-table--allon4 thead th {
  height: 72px;
  background: linear-gradient(to bottom, #e2e6ef 0 70px, transparent 70px);
}
.cost-table--allon4 tbody th,
.cost-table--allon4 tbody td { height: 76px; }
.cost-a1, .cost-a2, .cost-a3, .cost-a4 { width: 25%; }
.cost-crown-1,
.cost-crown-2 { display: block; }
.cost-paren-sp { display: none; }
.cost-scroll-hint { display: none; }
.cost-note {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 16px;
  line-height: 32px;
  color: var(--c-text);
  text-align: center;
  margin-bottom: 26px;
}
.cost-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 70px;
  align-items: flex-start;
  margin-bottom: 80px;
}
.cost-card {
  position: relative;
  flex: 1 1 0;
  min-width: 475px;
  max-width: 505px;
  min-height: 248px;
  border-radius: 8px;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, .25);
}
.cost-card--included   { background: #fbfcfc; }
.cost-card--additional { background: #fcf9f6; }
.cost-badge,
.cost-badge-icon { position: absolute; max-width: none; }
.cost-badge--included    { left: 76px; top: 13px; width: 90px; height: 90px; }
.cost-badge--additional  { left: 26px; top: 13px; width: 90px; height: 90px; }
.cost-badge-icon--included   { left: 109.09px; top: 40.48px; width: 32.153px; height: 34.957px; }
.cost-badge-icon--additional { left: 50.06px;  top: 35.94px; width: 40.89px;  height: 38.06px; }
.cost-card-title {
  position: absolute;
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: 22px;
  line-height: 44px;
  color: #1e2939;
  white-space: nowrap;
}
.cost-card-title--included   { left: 186px; top: 35px; }
.cost-card-title--additional { left: 122px; top: 20px; }
.cost-card-sub {
  position: absolute;
  left: 125px;
  top: 57px;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 16px;
  line-height: 32px;
  color: var(--c-text);
  white-space: nowrap;
}
.cost-incl {
  position: absolute;
  left: 81px;
  top: 116px;
  width: 318px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.cost-incl-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 47px;
  background: #fff;
  border: 1px solid #ddd;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 16px;
  line-height: 32px;
  color: var(--c-text);
  white-space: nowrap;
}
.cost-incl-item--wide { grid-column: 2 / span 2; }
.cost-opt-box {
  position: absolute;
  left: 33px;
  right: 26px;
  top: 108px;
  height: 115px;
  background: #fff;
  border-radius: 4px;
}
.cost-opt-list {
  position: absolute;
  left: 51px;
  top: 123px;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 14px;
  line-height: 28px;
  color: var(--c-text);
  white-space: nowrap;
}
.cost-btn {
  position: relative;
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 420px;
  height: 89px;
  background: #f0831e;
  color: #fff;
}
.cost-btn-label {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 20px;
  line-height: 40px;
  letter-spacing: .04em;
  color: #fff;
}
.cost-btn-arrow {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 24.42px;
  height: 22.688px;
  max-width: none;
}
.cost-brsp { display: none; }
.cost-brpc { display: inline; }
@media (max-width: 767px) {
  .sec-cost { min-height: 2070px; }
  .cost-bg-stage { width: 390px; }
  .cost-bg-arch { left: -6px; top: 1066px; width: 596.423px; height: 521.562px; }
  .cost-bg-arch img {
    width: 498.896px; height: 374.172px;
    transform: rotate(-19.89deg);
  }
  .cost-bg-implants { display: none; }
  .cost-bg-jaw {
    display: block;
    position: absolute;
    left: 0;
    top: 210px;
    width: 379px;
    height: 469px;
    max-width: none;
  }
  .cost-bg-tint { display: none; }
  .cost-inner {
    width: min(342px, 100% - 48px);
    padding-top: 53.83px;
  }
  .cost-title {
    font-size: 28px;
    line-height: 44.8px;
    margin-bottom: 21.07px;
  }
  .cost-title-s { font-size: 24px; line-height: 1; }
  .cost-rule { width: 64px; margin-bottom: 28.2px; }
  .cost-rule--sub { margin-bottom: 26.5px; }
  .cost-lead {
    font-size: 16px;
    line-height: 32px;
    text-align: justify;
    margin-bottom: 41.3px;
  }
  .cost-subtitle {
    font-size: 24px;
    line-height: 38.4px;
    margin-bottom: 22.24px;
  }
  .cost-tablewrap--plan   { margin-bottom: 68.86px; }
  .cost-tablewrap--allon4 { margin-bottom: 27px; }
  .cost-table { min-width: 342px; }
  .cost-table thead th      { font-size: 15px; line-height: 1.6; }
  .cost-table tbody th.cost-plan { font-size: 13px; line-height: 1.6; }
  .cost-table tbody td      { font-size: 13px; line-height: 1.6; }
  .cost-c1 { width: 25.117%; }
  .cost-c2 { width: 31.579%; }
  .cost-c3 { width: 16.988%; }
  .cost-c4 { width: 26.316%; }
  .cost-a1 { width: 25.146%; }
  .cost-a2 { width: 25.439%; }
  .cost-a3 { width: 25.439%; }
  .cost-a4 { width: 23.977%; }
  .cost-table--allon4 thead th {
    height: 70px;
    background: #e2e6ef;
  }
  .cost-table tbody td.cost-c-price--wide { line-height: 1.4; }
  .cost-table tbody td.cost-c-sup1,
  .cost-table tbody td.cost-c-sup2 { line-height: 1.4; }
  .cost-table tbody td.cost-c-sup3 { line-height: 1; }
  .cost-table tbody td.cost-c-crown { padding-bottom: 4px; }
  .cost-c-crown .cost-crown-2 {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: -5.6px;
  }
  .cost-paren-pc { display: none; }
  .cost-paren-sp {
    display: inline-block;
    font-weight: 200;
    font-size: 25px;
    line-height: 1.6;
  }
  .cost-crown-2-in { display: inline-block; line-height: 1.2; }
  /* 2026-10-16 プラン表：列幅不足で括弧崩れ・単語途中改行が起きていたため、
     表幅を広げて横スクロールにし、スクロール案内を表示 */
  .cost-scroll-hint {
    display: block;
    margin: 0 0 8px;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1;
    color: #666;
    text-align: right;
  }
  .cost-scroll-hint-arrow {
    display: inline-block;
    margin-left: 4px;
    animation: cost-hint-nudge 1.4s ease-in-out infinite;
  }
  @keyframes cost-hint-nudge {
    0%, 100% { transform: translateX(0); }
    50%      { transform: translateX(4px); }
  }
  @media (prefers-reduced-motion: reduce) {
    .cost-scroll-hint-arrow { animation: none; }
  }
  .cost-table--plan { min-width: 440px; }
  .cost-table--plan .cost-c1 { width: 19%; }
  .cost-table--plan .cost-c2 { width: 30%; }
  .cost-table--plan .cost-c3 { width: 15%; }
  .cost-table--plan .cost-c4 { width: 36%; }
  .cost-table--plan tbody td.cost-c-crown { padding-bottom: 0; line-height: 1.4; }
  .cost-table--plan .cost-c-crown .cost-crown-2 { display: block; margin-top: 0; }
  .cost-note {
    font-size: 14px;
    line-height: 28px;
    text-align: left;
    margin-bottom: 17px;
  }
  .cost-cards {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 30px;
    margin-bottom: 39px;
  }
  .cost-card { min-width: 0; width: 100%; }
  .cost-card--included   { min-height: 201px; }
  .cost-card--additional { min-height: 305px; }
  .cost-badge--included    { left: 31.75px; top: 7.75px;  width: 67.5px; height: 67.5px; }
  .cost-badge--additional  { left: 5.75px;  top: 17.75px; width: 67.5px; height: 67.5px; }
  .cost-badge-icon--included   { left: 56.57px; top: 28.37px; width: 24.115px; height: 26.218px; }
  .cost-badge-icon--additional { left: 24.52px; top: 35px;    width: 30.73px;  height: 28.54px; }
  .cost-card-title { font-size: 16px; line-height: 32px; white-space: normal; }
  .cost-card-title--included   { left: 101px; right: 4px; top: 24px; }
  .cost-card-title--additional { left: 75px;  right: 4px; top: 24px; }
  .cost-card-sub {
    left: 75px; right: 4px; top: 47px;
    font-size: 14px; line-height: 28px; white-space: normal;
  }
  .cost-incl { left: 21px; right: 19px; top: 94px; width: auto; }
  .cost-incl-item { height: 38px; font-size: 15px; } /* 2026-10-16 「仮歯費用」追加で3列×2行になったため、局所麻酔費用が収まるよう15px */
  .cost-opt-box { left: 17px; right: 18px; top: 98px; height: 184px; }
  .cost-opt-list { left: 44px; right: 4px; top: 106px; white-space: normal; }
  .cost-opt-gap { display: none; }
  .cost-opt-list .cost-br-tax { display: none; }
  .cost-opt-tax { display: block; font-size: 13px; line-height: 26px; }
  .cost-btn { width: 315px; height: 66.75px; }
  .cost-btn-label { font-size: 16px; line-height: 32px; letter-spacing: 0; }
  .cost-btn-arrow { width: 18.315px; height: 17.016px; }
  .cost-brsp { display: inline; }
  .cost-brpc { display: none; }
}
@media (max-width: 389px) {
  .cost-card--additional {
    flex: 0 0 auto;
    min-height: 0;
    padding-bottom: 22px;
  }
  .cost-card-title--additional {
    position: static;
    margin: 24px 4px 0 75px;
  }
  .cost-card-sub {
    position: static;
    margin: 0 4px 0 75px;
  }
  .cost-opt-box { display: none; }
  .cost-opt-list {
    position: static;
    margin: 15px 18px 0 17px;
    padding: 8px 8px 8px 27px;
    background: #fff;
    border-radius: 4px;
  }
}
