/* Scope limited to price additions; existing art, animation and navigation stay intact. */
/* First-time terms: key points first, full original wording kept in the disclosure. */
.aio-price-terms {
  box-sizing: border-box;
  max-width: 880px;
  margin: 24px auto 28px;
  padding: 26px 30px 22px;
  border: 1px solid rgba(197, 160, 89, .38);
  border-radius: 16px;
  background: #fdfbf7;
  color: #2b4b65;
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: .02em;
  text-align: left;
  overflow-wrap: anywhere;
}
.aio-price-terms h3 { margin: 0; font-size: 19px; line-height: 1.5; font-weight: 700; letter-spacing: .05em; color: #2b4b65; }
.aio-price-terms h3::after { content: ""; display: block; width: 44px; height: 2px; margin-top: 10px; background: rgba(197, 160, 89, .7); border-radius: 2px; }
.aio-price-terms p { margin: 8px 0 0; }
.aio-price-terms .aio-terms-lead { margin: 14px 0 12px; font-size: 15.5px; line-height: 1.85; }
.aio-price-terms .aio-terms-points { list-style: none; margin: 0; padding: 0; }
.aio-price-terms .aio-terms-points li {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  margin: 0;
  padding: 10px 0;
  border-top: 1px dashed rgba(43, 75, 101, .14);
  font-size: 15px;
  line-height: 1.75;
}
.aio-price-terms .aio-terms-key {
  display: inline-block;
  padding: 1px 0;
  border-radius: 999px;
  background: rgba(197, 160, 89, .15);
  color: #7d5f2a;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}
.aio-price-terms .aio-terms-note {
  margin: 4px 0 0;
  padding: 11px 16px;
  border-radius: 10px;
  background: #fff;
  font-size: 14.5px;
  line-height: 1.75;
}
.aio-price-terms .aio-terms-more { margin-top: 12px; }
.aio-price-terms .aio-terms-more summary {
  display: inline-block;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  color: #2b4b65;
  text-decoration: underline;
  text-decoration-color: rgba(197, 160, 89, .8);
  text-underline-offset: 4px;
}
.aio-price-terms .aio-terms-more summary::-webkit-details-marker { display: none; }
.aio-price-terms .aio-terms-more summary::before { content: "＋"; margin-right: 4px; color: #a5823f; }
.aio-price-terms .aio-terms-more[open] summary::before { content: "−"; }
.aio-price-terms .aio-terms-more p { margin: 10px 0 0; font-size: 14px; line-height: 1.85; color: #3d5568; }
#first-use-terms { scroll-margin-top: 90px; }
.aio-price-caption { display: block; font-size: 12px; line-height: 1.6; font-weight: 600; }
/* Shared first-use label: pale gold chip, dark gold text for contrast. */
.aio-first-label {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  background: rgba(197, 160, 89, .15);
  color: #7d5f2a;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .04em;
  vertical-align: middle;
}
/* Service previews: first-use reads first, regular price stays visible below it. */
.aio-first-preview { display: block; margin-top: 4px; font-size: 13px; line-height: 1.6; font-weight: 600; white-space: nowrap; }
.aio-first-preview .aio-first-label { display: table; margin: 0 0 4px; }
.aio-first-preview strong { padding: 0 2px; background: none; }
.aio-first-preview .aio-first-sub { display: block; margin-top: 2px; font-size: 12.5px; font-weight: 600; white-space: normal; }
#service .aio-first-preview strong { font-weight: 600; }
.aio-regular-preview { display: block; margin-top: 8px; white-space: normal !important; font-size: 12.5px; font-weight: 500; opacity: .85; }
.aio-regular-preview strong { font-size: 16px !important; font-weight: 600 !important; }
/* Expanded accordion: first-use panel above the secondary regular price. */
.aio-first-detail {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  margin: 14px 0 8px;
  padding: 14px 16px 12px;
  border: 1px solid rgba(197, 160, 89, .38);
  border-radius: 12px;
  background: #fdfbf7;
  color: var(--tk-ink, #2b4b65);
  font-size: 14px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.aio-first-detail .aio-first-label { align-self: center; }
.aio-first-detail .aio-first-amount { font-size: 14px; font-weight: 700; }
.aio-first-detail .aio-first-amount strong {
  margin: 0 2px;
  padding: 0 2px;
  font-family: var(--mincho, inherit);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  background: none;
}
#service .aio-first-detail .aio-first-amount strong { font-family: Arial,sans-serif; }
.aio-first-detail .aio-first-tax { font-size: 14px; font-weight: 700; }
.aio-first-detail a { flex-basis: 100%; font-size: 12.5px; text-decoration: underline; text-underline-offset: 3px; }
.aio-regular-display { margin-top: 6px !important; opacity: .88; }
.aio-regular-display .price-main, .aio-regular-display .pr-price-main, .aio-regular-display .tk-price-main { font-size: 21px !important; }
.aio-dual-price .aio-price-caption { margin-top: 8px; }
/* Estimator Pattern C: balanced cards, shared typography and tax-exclusive rows. */
.aio-est-compare { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; max-width: 640px; margin: 0 auto 14px; }
#est-normal .aio-est-compare .est-result-amount-wrap { margin-bottom: 0; }
#est-normal.aio-has-result .aio-est-compare .est-result-amount-wrap,
#est-normal .aio-first-total {
  box-sizing: border-box; min-height: 146px; padding: 18px 12px;
  display: flex; flex-direction: column; justify-content: center;
  background: #fff; border: 1px solid rgba(43,75,101,.2); border-radius: 12px;
  text-align: center; color: #2b4b65;
}
#est-normal .aio-first-total { border: 2px solid #c5a059; box-shadow: 0 3px 12px rgba(197,160,89,.07); padding: 17px 11px; }
#est-normal .aio-first-total[hidden], .aio-first-note[hidden] { display: none; }
.aio-first-total p { margin: 0; }
#est-normal .aio-total-label, .aio-first-total .aio-first-total-label {
  min-height: 24px; margin: 0 0 10px; display: flex; justify-content: center; align-items: center;
  gap: 7px; font-size: 13px; line-height: 24px; font-weight: 600; letter-spacing: .03em; color: #2b4b65;
}
.aio-first-total .aio-first-label { padding: 0; border-radius: 0; background: none; font-size: 13px; font-weight: 600; line-height: 24px; }
.aio-first-total .aio-total-condition { font-size: 10px; font-weight: 400; letter-spacing: 0; color: #7d6840; }
#est-normal .aio-first-total-amount, #est-normal.aio-has-result .est-result-main-row {
  display: flex; align-items: baseline; justify-content: center; gap: 4px;
  height: 43px; margin: 0; font-size: 14px; font-weight: 500; line-height: 1; white-space: nowrap;
}
#est-normal .aio-first-total-amount strong, #est-normal.aio-has-result .est-result-num {
  margin: 0; padding: 0; font-family: Arial,sans-serif; font-size: 38px; font-weight: 500;
  letter-spacing: -.025em; line-height: 1; color: #2b4b65; background: none;
}
#est-normal.aio-has-first .est-result-num { font-size: 36px; }
#est-normal .aio-first-total-amount strong { font-weight: 600; }
#est-normal #est-num-off, #est-normal #est-num-on,
#est-normal #est-first-num-off, #est-normal #est-first-num-on {
  display: inline-block; font-variant-numeric: tabular-nums; text-align: center;
}
#est-normal #est-num-on, #est-normal #est-first-num-on { font-family: Arial,sans-serif; }
#est-normal .est-result-title { font-size: 16px; margin-bottom: 16px; }
#est-normal .aio-amount-prefix, #est-normal .est-result-unit { margin: 0; font-size: 13px; font-weight: 500; color: #3d5568; }
#est-normal .aio-total-tax, #est-normal.aio-has-result .est-result-tax {
  margin: 4px 0 0; font-size: 13px; font-weight: 500; line-height: 20px; color: #806735; white-space: nowrap;
}
@media (min-width: 768px) {
  #est-normal.aio-has-first .aio-est-compare { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
}
.aio-first-note { max-width: 640px; margin: 0 auto 16px; color: #3d5568; text-align: left; }
.aio-first-note .aio-first-note-lead { margin: 0; font-size: 12px; line-height: 1.8; }
.aio-first-more summary {
  display: inline-block; padding: 7px 0 3px; cursor: pointer; list-style: none; border-radius: 3px;
  font-size: 12.5px; font-weight: 500; text-decoration: underline;
  text-decoration-color: rgba(197,160,89,.65); text-underline-offset: 4px;
}
.aio-first-more summary:focus-visible { outline: 2px solid #8a713e; outline-offset: 4px; }
.aio-first-more summary::-webkit-details-marker { display: none; }
.aio-first-more summary::before { content: "＋"; margin-right: 4px; color: #a5823f; }
.aio-first-more[open] summary::before { content: "−"; }
.aio-first-more ul { margin: 8px 0 6px; padding: 12px 14px 12px 30px; list-style: disc; background: #fdfbf7; border: 1px solid rgba(197,160,89,.3); border-radius: 10px; font-size: 13px; line-height: 1.75; }
.aio-first-more li + li { margin-top: 2px; }
.aio-first-more a { display: inline-block; padding: 4px 0; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
#est-normal.aio-has-result .est-breakdown-box, #est-normal.aio-has-result .est-result-note { max-width: 640px; }
#est-normal.aio-has-result .est-breakdown-box { border-width: 1px; border-color: rgba(197,160,89,.5); }
.aio-breakdown-title { margin: 0 0 12px; padding-bottom: 9px; border-bottom: 1px solid rgba(197,160,89,.3); font-size: 13px; font-weight: 600; line-height: 1.7; color: #2b4b65; letter-spacing: .015em; }
.aio-breakdown-title .aio-breakdown-basis { display: inline-block; font-size: 12px; font-weight: 400; }
#est-breakdown .aio-breakdown-row { gap: 8px; align-items: baseline !important; flex-wrap: nowrap; }
#est-breakdown .aio-breakdown-row > span:first-child { min-width: 0; line-height: 1.65; }
#est-breakdown .aio-breakdown-value { flex: 0 0 auto; text-align: right; margin-left: auto; font-size: 13px; white-space: nowrap; }
@media (max-width: 767px) {
  #est-normal.aio-has-result .aio-est-compare .est-result-amount-wrap, #est-normal .aio-first-total { min-height: 132px; padding: 14px 10px; }
  #est-normal .aio-first-total { padding: 13px 9px; }
  #est-normal .aio-first-total-amount strong, #est-normal.aio-has-result .est-result-num { font-size: 35px; }
  #est-normal.aio-has-first .est-result-num { font-size: 33px; }
  #est-normal .aio-first-total-amount, #est-normal.aio-has-result .est-result-main-row { height: 39px; }
  #est-normal .aio-total-label, .aio-first-total .aio-first-total-label { margin-bottom: 8px; }
  #est-breakdown { padding: 14px 12px; }
  #est-breakdown .aio-breakdown-row:last-child > span:first-child { font-size: 12px; white-space: nowrap; }
}
#estimator .est-desc-line, .est-desc-line.est-desc-set { flex-wrap: wrap; white-space: normal; }
.est-saving-pill { white-space: normal; max-width: 100%; }
.service-section .set-saving, #price .pr-set-saving, #price .tk-set-saving { white-space: normal; }
.service-section .annual-saving-badge, #price .pr-annual-saving-badge, #price .tk-annual-saving-badge,
.service-section .badge.outline { white-space: normal; }
.est-card-extra { display: inline-block; }
/* All four compact-table rows share the layout, including older iOS.
   Desktop min-height:142px is a floor; content may grow freely. */
#price .area-price-row {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  height: auto !important;
  max-height: none !important;
}
#price .area-price-row > div { min-width: 0 !important; }
#price .area-price-row .price-amount {
  min-width: 0 !important;
  max-width: 100%;
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
#price .area-price-row .price-amount .main,
#price .area-price-row .price-amount .tax {
  box-sizing: border-box;
  max-width: 100%;
  white-space: normal !important;
}
/* Phones: service name/summary left, prices right (the original mobile split); stacked below 360px. */
@media (max-width: 767px) {
  #price .area-price-row { grid-template-columns: minmax(0, 1fr) auto !important; column-gap: 10px !important; align-items: center !important; }
  #price .area-price-row .price-name { letter-spacing: .02em; }
  #price .area-price-row .price-name, #price .area-price-row .price-desc { word-break: auto-phrase; }
  #price .area-price-row .price-amount { text-align: right !important; }
}
@media (max-width: 359px) {
  #price .area-price-row { grid-template-columns: minmax(0, 1fr) !important; row-gap: 8px !important; }
  #price .area-price-row .price-amount { text-align: left !important; }
}
@media (max-width: 600px) {
  .aio-price-terms { margin: 18px auto 22px; padding: 20px 16px 16px; font-size: 14.5px; }
  .aio-price-terms h3 { font-size: 17px; }
  .aio-price-terms .aio-terms-lead { font-size: 14.5px; }
  .aio-price-terms .aio-terms-points li { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; font-size: 14.5px; }
  .aio-price-terms .aio-terms-note { padding: 10px 12px; font-size: 14px; }
  #price .area-price-row .price-amount .main { font-size: 17px !important; }
  .aio-first-detail { font-size: 13px; }
  .aio-first-detail .aio-first-amount strong { font-size: 26px; }
}

/* At PC widths, let the amount column use its content width. */
@media (min-width: 981px) {
  #price .area-price-row { grid-template-columns: minmax(0, 1fr) minmax(0, max-content) !important; }
}
/* Keep the compact regional price grid inside its track at tablet widths. */
@media (min-width: 768px) and (max-width: 980px) {
  #price .area-price-wrap { grid-template-columns: minmax(0, 1fr) !important; }
  #price .area-price-note {
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
}
/* Reserve the contact rail for all compact-region body content, including terms. */
@media (min-width: 768px) and (max-width: 1279px) {
  .area-page--amagasaki main > section:not(.yui-area-hero),
  .area-page--nishinomiya main > section:not(.yui-area-hero),
  .area-page--toyonaka main > section:not(.yui-area-hero) {
    padding-right: 84px;
  }
}
/* The top page uses a 768px content column; leave room for its rail on tablets. */
@media (min-width: 768px) and (max-width: 939px) {
  #service.section-wrap {
    width: calc(100% - 100px);
    margin-left: 16px;
    margin-right: 84px;
  }
  #est-tool-container {
    width: calc(100% - 84px);
    margin-left: 0;
    margin-right: 84px;
  }
}
@media (min-width: 981px) and (max-width: 1149px) {
  #price .area-price-wrap { grid-template-columns: minmax(0, 1fr) !important; }
}
/* Expanded regional sets need distinct rows for comparisons, totals and notes. */
@media (max-width: 767px) {
  #price .pr-set-card, #price .tk-set-card {
    grid-template-columns: minmax(0, 1fr);
  }
  #price .pr-set-card-name, #price .tk-set-card-name { grid-column: 1; grid-row: 1; }
  #price .pr-set-card-desc-row, #price .tk-set-card-desc-row { grid-column: 1; grid-row: 2; }
  #price .pr-set-card-price, #price .tk-set-card-price {
    grid-column: 1;
    grid-row: 3;
    text-align: left;
  }
  #price .pr-set-card-subtext, #price .tk-set-card-subtext { grid-column: 1; grid-row: 4; }
  #price .pr-set-card-desc, #price .tk-set-card-desc,
  #price .pr-set-tax, #price .tk-set-tax,
  #price .pr-set-part, #price .tk-set-part {
    white-space: normal;
    overflow-wrap: anywhere;
    min-width: 0;
  }
}
@media (max-width: 374px) {
  #price .eyebrow { flex-wrap: wrap; white-space: nowrap; }
  .aio-first-detail strong { word-break: keep-all; overflow-wrap: normal; }
}
/* Persistent live region: announce totals once, keep full conditions readable separately. */
.aio-est-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Final image QA: tablet hero controls. */
@media (min-width:768px) and (max-width:980px){.yui-area-hero .sp-btn-icon{width:19px!important;height:19px!important;flex:0 0 19px!important;display:block!important}.yui-area-hero .sp-btn-icon.line-icon{width:21px!important;height:21px!important;flex-basis:21px!important}.yui-area-hero .sp-actions .sp-btn{gap:8px;white-space:nowrap}.yui-area-hero .sp-horizontal-brand img{filter:none!important}}

/* Independent audit: keep the top regular tax preview together at narrow widths. */
#service .aio-regular-preview .tax-inline { display: inline-block; white-space: nowrap; }

/* Image QA: keep detailed-region work text clear of the PC contact rail. */
@media (min-width: 960px) and (max-width: 1279px) {
  #work .work__inner { padding-right: 84px; }
}

/* Detailed regional pricing needs the same unobstructed rail space as work. */
@media (min-width: 960px) and (max-width: 1279px) {
  #price.price { padding-right: 84px; }
}

/* Keep detailed price contents comfortably inside their cards on narrow PCs. */
@media (min-width: 960px) and (max-width: 1199px) {
  #price .price__inner { display: block; }
  #price .price__head { position: static; margin-bottom: 32px; }
}

/* Compact regional prices: first-use first (gold caption + underline), regular as a secondary line.
   The small tax label keeps numbers at the original elegant size on every row. */
#price .price-amount .main .aio-tax-label { margin-right: 3px; font-size: .56em; font-weight: 700; letter-spacing: .02em; }
#price .price-amount .main { font-weight: 600; }
#price .aio-dual-price .aio-first-caption {
  display: block;
  width: fit-content;
  margin: 0 0 8px auto;
  padding: 2px 10px;
  border-radius: 999px;
  background: rgba(197, 160, 89, .15);
  color: #7d5f2a;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
}
#price .aio-dual-price .main { border-bottom-color: rgba(197, 160, 89, .6) !important; }
#price .aio-dual-price .tax { font-size: 13px !important; color: #17485f !important; }
#price .aio-regular-line {
  display: block;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed rgba(23, 72, 95, .16);
  color: #5d6f7a;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.6;
}
#price .aio-regular-line span { white-space: nowrap; }
@media (max-width: 767px) {
  #price .aio-dual-price .aio-first-caption { margin-bottom: 6px; padding: 2px 8px; font-size: 11px; }
  #price .aio-regular-line { margin-top: 8px; padding-top: 6px; font-size: 11.5px; }
  #price .aio-regular-line span { display: block; }
}
@media (max-width: 359px) {
  #price .aio-dual-price .aio-first-caption { margin-left: 0; }
  #price .aio-regular-line span { display: inline; }
}

/* Compact-page PC logo: style.css sizes the top-page .pc-hero-logo by viewport height (!important),
   which stretched this fixed-height horizontal logo. Keep its natural ratio. */
@media (min-width: 768px) {
  .yui-area-hero .pc-hero-logo { width: auto !important; }
}

/* Detailed regions (宝塚/伊丹/大阪), PC: bring the heading column closer to the prices. */
@media (min-width: 1200px) {
  #price .price__inner { column-gap: 48px; }
  #price .price__inner > .aio-price-terms { margin-top: 0; margin-bottom: 18px; }
}
/* "Open a plan" guide: a thin cream band between the terms box and the first plan card. */
#price .tk-pricing-guide, #price .pr-pricing-guide {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  padding: 7px 14px;
  background: #fff;
  border: 1px solid rgba(197, 160, 89, .28);
  border-radius: 999px;
  font-size: 13px;
  line-height: 1.6;
}
#price .tk-pricing-guide::before, #price .pr-pricing-guide::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c5a059;
}

/* c4: small label and surface refinements requested during the local review. */
#est-normal .aio-first-total .aio-first-label {
  padding: 2px 10px; border-radius: 999px;
  background: rgba(197,160,89,.15); color: #7d5f2a;
  font-size: 12px; font-weight: 600; line-height: 20px;
}
#service .aio-price-terms, #service .tap-guide { background: #fff; }
#service .aio-first-preview .aio-first-label,
#service .aio-regular-preview .aio-regular-label {
  display: table; margin: 0 0 4px; padding: 2px 10px;
  border-radius: 999px; font-size: 12px; font-weight: 600;
  line-height: 1.6; letter-spacing: .04em;
}
#service .aio-regular-preview .aio-regular-label {
  background: rgba(43,75,101,.07); color: #2b4b65;
}
#service .aio-regular-preview { opacity: 1; }
#service .aio-first-preview .aio-first-sub {
  font-size: 11px; font-weight: 400; line-height: 1.6;
  color: var(--text-soft);
}
#service .aio-first-detail .aio-first-tax { font-size: 12px; font-weight: 400; }
@media (max-width: 360px) {
  #service .aio-first-preview .aio-first-sub { font-size: 10px; }
}

/* c5: underline follows the heading text, with half the previous top gap. */
#service .aio-price-terms h3 { width: fit-content; max-width: 100%; }
#service .aio-price-terms h3::after { width: 100%; margin-top: 5px; }

/* c6: center the terms heading and give both expanded prices a clear home. */
#service .aio-price-terms h3 { margin-inline: auto; text-align: center; }
#service .aio-first-detail,
#service .aio-regular-display {
  display: grid; grid-template-columns: max-content minmax(0,1fr);
  align-items: baseline; gap: 4px 8px; box-sizing: border-box;
}
#service .aio-first-detail .aio-first-label,
#service .aio-regular-display .aio-price-caption { grid-column: 1 / -1; justify-self: start; }
#service .aio-first-detail .aio-first-amount,
#service .aio-regular-display .aio-regular-amount { white-space: nowrap; }
#service .aio-first-detail .aio-first-tax,
#service .aio-regular-display .tax-inline-price { white-space: nowrap; justify-self: start; margin-left: 0; }
#service .aio-first-detail a { grid-column: 1 / -1; }
#service .aio-regular-display {
  margin: 8px 0 0 !important; padding: 14px 16px 12px;
  border: 1px solid rgba(43,75,101,.27); border-radius: 12px;
  background: #fff; opacity: 1; color: #2b4b65; line-height: 1.6;
}
#service .aio-regular-display .aio-regular-amount { display: inline-flex; align-items: baseline; gap: 2px; }
#service .aio-regular-display .aio-price-caption,
#service .aio-regular-display .price-main,
#service .aio-regular-display .yen,
#service .aio-regular-display .tax-inline-price { color: #2b4b65; opacity: 1; }
#service .aio-regular-display .tax-inline-price { font-size: 12px; font-weight: 400; }
@media (max-width: 400px) {
  #service .aio-first-detail .aio-first-amount { font-size: 12px; }
  #service .aio-first-detail .aio-first-tax,
  #service .aio-regular-display .tax-inline-price { font-size: 11px; }
  #service .aio-first-detail, #service .aio-regular-display { column-gap: 6px; }
}

#service .aio-first-detail .aio-first-heading {
  grid-column: 1 / -1; display: flex; align-items: center; gap: 7px;
}
#service .aio-first-detail .aio-detail-prefix { font-size: 11px; font-weight: 400; color: #3d5568; }
@media (max-width: 359px) {
  #service .aio-first-detail, #service .aio-regular-display { padding-inline: 10px; column-gap: 4px; }
}

/* c8: compact disclosure, matched badges, and shorter price-reading distance. */
#service .aio-regular-display .aio-regular-label {
  display: table; margin: 0 0 4px; padding: 2px 10px;
  border-radius: 999px; background: rgba(43,75,101,.07);
  color: #2b4b65; font-size: 12px; font-weight: 600;
  line-height: 1.6; letter-spacing: .04em;
}
#service .aio-price-terms { padding: 22px 28px 18px; }
#service .aio-terms-lead { margin-bottom: 8px; }
#service .aio-terms-more { margin-top: 0; }
#service .aio-terms-more .aio-terms-points { margin-top: 16px; }
#service .aio-terms-more .aio-terms-note { padding: 0; background: transparent; }
#service .aio-travel-price {
  display: inline-flex; align-items: baseline; white-space: nowrap;
  color: #2b4b65; font-size: 14px; font-weight: 700; letter-spacing: 0;
}
#service .aio-travel-tax { margin-left: 6px; font-size: 11px; font-weight: 400; color: #526b7e; }
#estimator .est-desc-set { display: block; }
#estimator .est-set-price-row { display: flex; align-items: baseline; gap: 7px; }
#estimator .est-set-price-row > span:first-child { flex: 0 0 auto; }
#estimator .est-set-price { min-width: 0; }
#estimator .est-set-price strong, #estimator .est-set-tax { display: inline-block; white-space: nowrap; }
#estimator .est-set-tax { font-size: 11px; font-weight: 400; }
#estimator .est-desc-set .est-saving-pill { display: table; margin-top: 4px; padding-left: 0; }
#est-normal.aio-has-result .aio-est-compare,
#est-normal.aio-has-result .aio-first-note,
#est-normal.aio-has-result .est-breakdown-box,
#est-normal.aio-has-result .est-result-note { max-width: 560px; }
/* Stone-only: restore the original open, centered total, retaining accessible count-up. */
#est-normal.aio-stone-result .aio-est-compare .est-result-amount-wrap {
  min-height: 0; padding: 4px 0 6px; border: 0; background: transparent; border-radius: 0;
}
#est-normal.aio-stone-result .est-result-main-row { height: 68px; gap: 2px; }
#est-normal.aio-stone-result .est-result-num { font-size: 64px; font-weight: 700; letter-spacing: -.02em; }
#est-normal.aio-stone-result .est-result-unit { font-size: 20px; font-weight: 700; }
#est-normal.aio-stone-result .est-result-tax { font-size: 14px; color: #98743a; font-weight: 600; }
@media (max-width: 767px) {
  #service .aio-price-terms { padding: 20px 18px 16px; }
  #est-normal.aio-stone-result .est-result-main-row { height: 56px; }
  #est-normal.aio-stone-result .est-result-num { font-size: 52px; }
}

/* Expanded plans: pair prices only when their actual card has room. */
#service #card-visit .price-card:first-child,
#service #card-clean .price-card:first-child { container: aio-detail-card / inline-size; }
#service .aio-detail-price-pair { display: grid; gap: 10px; margin: 14px 0 18px; }
#service .aio-detail-price-pair .aio-first-detail,
#service .aio-detail-price-pair .aio-regular-display { margin: 0 !important; }
#service .aio-detail-condition { margin: 0; font-size: 12.5px; line-height: 1.7; }
#service .aio-detail-condition a { text-decoration: underline; text-underline-offset: 3px; }
@container aio-detail-card (min-width: 560px) {
  #service .aio-detail-price-pair { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px 12px; }
  #service .aio-detail-condition { grid-column: 1 / -1; }
  #service .aio-detail-price-pair .aio-first-detail,
  #service .aio-detail-price-pair .aio-regular-display {
    grid-template-rows: 24px 36px; align-content: center; min-height: 100px;
    padding: 14px 16px 12px;
  }
  #service .aio-detail-price-pair .aio-first-heading,
  #service .aio-detail-price-pair .aio-regular-label { align-self: start; }
  #service .aio-detail-price-pair .aio-regular-amount { line-height: 36px; }
}

/* c10: regional first-use disclosures; each city's typography and art stay local. */
#price .aio-regional-terms { padding: 22px 28px 18px; }
#price .aio-regional-terms h3 { width: fit-content; max-width: 100%; }
#price .aio-regional-terms h3::after { width: 100%; margin-top: 5px; }
#price .aio-terms-centered h3 { margin-inline: auto; text-align: center; }
#price .aio-terms-left h3 { margin-inline: 0; text-align: left; }
#price .aio-regional-terms .aio-terms-lead { margin-bottom: 10px; }
#price .aio-regional-terms .aio-terms-more { margin-top: 0; }
#price .aio-regional-terms .aio-terms-more summary {
  display: inline-flex; align-items: center; justify-content: space-between;
  gap: 14px; min-height: 44px; box-sizing: border-box; max-width: 100%;
  padding: 7px 14px; border: 1px solid rgba(197,160,89,.45); border-radius: 999px;
  background: rgba(197,160,89,.08); font-size: 15.5px; font-weight: 500;
  line-height: 1.6; text-decoration: none; list-style: none;
}
#price .aio-regional-terms .aio-terms-more summary::before { content: none; }
#price .aio-regional-terms .aio-terms-more summary::after {
  content: ''; flex: 0 0 auto; width: 7px; height: 7px;
  margin: -4px 2px 0 0; border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor; transform: rotate(45deg);
}
#price .aio-regional-terms .aio-terms-more[open] summary::after { transform: rotate(225deg); margin-top: 3px; }
#price .aio-regional-terms .aio-terms-more summary:hover { background: rgba(197,160,89,.14); }
#price .aio-regional-terms .aio-terms-more summary:focus-visible { outline: 2px solid #a5823f; outline-offset: 3px; }
#price .aio-regional-terms .aio-terms-points { margin-top: 16px; }
#price .aio-regional-terms .aio-terms-note { padding: 0; background: transparent; }
#price .aio-dual-price .aio-compact-condition { display: block; margin-top: 3px; font-size: 11px; font-weight: 400; line-height: 1.6; }
@media (max-width: 600px) {
  #price .aio-regional-terms .aio-terms-more summary { font-size: 14.5px; }
}

/* Regional expanded prices: use the available card width, keeping existing number styles. */
#price .tk-price-card:has(> .aio-region-price-pair),
#price .pr-price-card:has(> .aio-region-price-pair) { container: aio-regional-card / inline-size; }
#price .aio-region-price-pair { display: grid; gap: 10px; margin: 14px 0 18px; }
#price .aio-region-price-pair .aio-first-detail,
#price .aio-region-price-pair .aio-regular-display {
  display: grid; grid-template-columns: max-content minmax(0,1fr); align-items: baseline;
  column-gap: 8px; row-gap: 6px; margin: 0 !important; box-sizing: border-box;
}
#price .aio-region-price-pair .aio-first-label,
#price .aio-region-price-pair .aio-price-caption { grid-column: 1 / -1; justify-self: start; }
#price .aio-region-price-pair .aio-regular-display {
  padding: 14px 16px 12px; border: 1px solid rgba(23,72,95,.27); border-radius: 12px;
  background: #fff; opacity: 1;
}
#price .aio-region-price-pair .aio-region-regular-label {
  display: inline-block; padding: 2px 10px; border-radius: 999px;
  background: rgba(23,72,95,.07); line-height: 1.6;
}
#price .aio-region-price-pair .aio-region-regular-amount { display: inline-flex; align-items: baseline; gap: 2px; white-space: nowrap; }
#price .aio-region-price-pair .aio-first-amount,
#price .aio-region-price-pair .aio-first-tax,
#price .aio-region-price-pair .tk-tax-inline-price,
#price .aio-region-price-pair .pr-tax-inline-price { white-space: nowrap; }
#price .aio-region-condition { margin: 0; font-size: 12.5px; line-height: 1.7; }
#price .aio-region-condition a { text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 981px) {
  @container aio-regional-card (min-width: 560px) {
    #price .aio-region-price-pair { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px 12px; }
    #price .aio-region-price-pair .aio-first-detail,
    #price .aio-region-price-pair .aio-regular-display { grid-template-rows: 24px 40px; align-content: center; min-height: 108px; }
    #price .aio-region-condition { grid-column: 1 / -1; }
  }
}
@media (max-width: 767px) {
  #price .aio-regional-terms { padding: 20px 18px 16px; }
  #price .aio-region-price-pair .aio-first-detail,
  #price .aio-region-price-pair .aio-regular-display { column-gap: 5px; padding-inline: 10px; }
}

/* c11: phone refinements for official previews and the three compact regions. */
#service .aio-preview-price-row { display: contents; }
:is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) .aio-compact-first { display: contents; }
:is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) .aio-initial-short { display: none; }
@media (max-width: 767px) {
  #service .aio-price-terms .aio-terms-more summary { display: inline-flex; align-items: center; gap: 10px; }
  #service .aio-price-terms .aio-terms-more summary::before { content: none; }
  #service .aio-price-terms .aio-terms-more summary::after {
    content: ''; width: 7px; height: 7px; margin-top: -4px;
    border-right: 1.5px solid #a5823f; border-bottom: 1.5px solid #a5823f; transform: rotate(45deg);
  }
  #service .aio-price-terms .aio-terms-more[open] summary::after { transform: rotate(225deg); margin-top: 3px; }
  #service .aio-preview-price-row { display: flex; align-items: baseline; gap: 4px; white-space: nowrap; }
  #service .aio-preview-amount { flex: 0 0 auto; }
  #service .aio-first-preview .aio-first-sub { display: inline-block; margin: 0; font-size: 10.5px; white-space: nowrap; }
  #service .aio-preview-condition { display: none; }
  #service .aio-regular-preview .aio-regular-label { font-size: 11px; }
  #service .aio-regular-preview strong { font-size: 15px !important; }

  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-regional-terms .aio-terms-more summary {
    position: relative; display: flex; justify-content: center;
    width: min(100%,234px); margin-inline: auto; padding-inline: 34px;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-regional-terms .aio-terms-more summary::after {
    position: absolute; right: 16px; top: calc(50% - 5px); margin: 0;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-regional-terms .aio-terms-more[open] summary::after { top: calc(50% - 1px); margin: 0; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row {
    grid-template-columns: minmax(0,1fr) !important; align-items: center !important;
    row-gap: 10px !important; padding: 14px 12px !important; text-align: center;
    border-left: 1px solid rgba(23,72,95,.11) !important;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row::before { display: none !important; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row > div:first-child { text-align: center; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .price-name { text-align: center; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .price-desc { margin: 4px auto 0; font-size: 12px !important; line-height: 1.6 !important; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:has(.aio-dual-price) { min-height: 188px !important; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row .price-amount { width: 100%; text-align: center !important; min-width: 0 !important; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-dual-price { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; align-items: start; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-compact-first { display: block; text-align: center; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-initial-full,
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-compact-condition { display: none; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-initial-short { display: inline; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-first-caption,
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-compact-regular-label {
    display: table; margin: 0 auto 5px; padding: 2px 10px; border-radius: 999px;
    font-size: 11px; font-weight: 600; line-height: 1.6; letter-spacing: .03em;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-compact-regular-label { color: #17485f; background: rgba(23,72,95,.06); }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-regular-line {
    display: block; margin: 0; padding: 0 0 0 12px; border-top: 0; border-left: 1px solid rgba(23,72,95,.12);
    color: #17485f; font-size: 12px;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .price-amount .main,
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-compact-regular-amount {
    display: block; width: fit-content; max-width: 100%; margin-inline: auto;
    padding: 0 !important; font-family: Arial,sans-serif; font-size: 20px !important;
    font-weight: 600; line-height: 1.3 !important; letter-spacing: -.015em !important; white-space: nowrap !important;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-dual-price .main { border-bottom: 0 !important; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-compact-regular-amount { font-size: 18px !important; font-weight: 500; line-height: 26px !important; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .price-amount .tax,
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .aio-compact-regular-tax {
    display: block; margin-top: 4px; font-size: 11px !important; font-weight: 400;
    line-height: 1.5 !important; color: #526b7e !important; white-space: nowrap !important;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .price-amount:not(.aio-dual-price) .main { margin-inline: auto; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:not(:has(.aio-dual-price)) {
    min-height: 102px !important; padding-block: 12px !important; row-gap: 8px !important;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:not(:has(.aio-dual-price)) .price-desc { display: none; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:not(:has(.aio-dual-price)) .price-name { line-height: 1.4; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:not(:has(.aio-dual-price)) .main { line-height: 1.2 !important; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:not(:has(.aio-dual-price)) .tax { margin-top: 3px; line-height: 1.4 !important; }
}
@media (max-width: 359px) {
  #service #card-visit .service-card-header,
  #service #card-clean .service-card-header { grid-template-columns: 50px minmax(0,1fr) 24px; gap: 4px; }
  #service #card-visit .service-icon, #service #card-clean .service-icon { width: 44px; height: 44px; }
  #service #card-visit .toggle-btn, #service #card-clean .toggle-btn { width: 24px; height: 24px; }
  #service .aio-first-preview .aio-first-sub { font-size: 10px; }
}

/* c12: decorative service glyphs for the three compact regions on phones. */
@media (max-width: 767px) {
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price { --aio-service-glyph-size: 28px; }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row .price-name {
    display: flex; align-items: center; justify-content: center; gap: 8px;
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row .price-name::before {
    content: ''; display: block; width: var(--aio-service-glyph-size); height: var(--aio-service-glyph-size);
    flex: 0 0 var(--aio-service-glyph-size); background-position: center; background-size: contain; background-repeat: no-repeat;
    filter: brightness(0) saturate(100%) invert(58%) sepia(45%) saturate(900%) hue-rotate(5deg) brightness(88%) contrast(95%);
  }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:nth-child(1) .price-name::before { background-image: url('../images/tab-clean.webp'); }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:nth-child(2) .price-name::before { background-image: url('../images/tab-visit.webp'); }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:nth-child(3) .price-name::before { background-image: url('../images/tab-polish.webp'); }
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:nth-child(4) .price-name::before { background-image: url('../images/tab-set.webp'); }
  /* Accommodate the glyph inside the existing compact single-price card. */
  :is(.area-page--amagasaki,.area-page--nishinomiya,.area-page--toyonaka) #price .area-price-row:not(:has(.aio-dual-price)) { padding-block: 11px !important; row-gap: 4px !important; }
}

/* c13: mobile refinements for detailed regions; compact PC condition links. */
#price .aio-guide-phone { display: none; }
@media (min-width: 768px) {
  #price .aio-terms-centered .aio-terms-more summary {
    display: inline-flex; justify-content: flex-start; align-items: center; gap: 10px;
    width: auto; margin: 0; padding: 0; border: 0; border-radius: 0;
    background: transparent; text-decoration: underline;
    text-decoration-color: rgba(197,160,89,.8); text-underline-offset: 4px;
  }
  #price .aio-terms-centered .aio-terms-more summary:hover { background: transparent; }
}
@media (max-width: 767px) {
  #price .aio-terms-left { font-family: var(--sans, sans-serif); }
  #price .aio-terms-left h3 { font-family: var(--mincho, serif); font-weight: 600; }
  #price .aio-terms-left .aio-terms-more summary {
    position: relative; display: flex; justify-content: center;
    width: min(100%,234px); margin-inline: auto; padding-inline: 34px;
  }
  #price .aio-terms-left .aio-terms-more summary::after {
    position: absolute; right: 16px; top: calc(50% - 5px); margin: 0;
  }
  #price .aio-terms-left .aio-terms-more[open] summary::after { top: calc(50% - 1px); margin: 0; }
  #price :is(.tk-pricing-guide,.pr-pricing-guide) {
    display: block; margin: 0 0 12px; padding: 0; border: 0; border-radius: 0;
    background: transparent; box-shadow: none; text-align: center;
    font-family: var(--sans, sans-serif); font-size: 11px; line-height: 1.6;
    letter-spacing: .02em; white-space: nowrap;
  }
  #price :is(.tk-pricing-guide,.pr-pricing-guide)::before { display: none; }
  #price .aio-guide-desktop { display: none; }
  #price .aio-guide-phone { display: inline; }
  #price :is(#tk-card-visit,#tk-card-polish,#tk-card-clean,#pr-card-visit,#pr-card-polish,#pr-card-clean) :is(.tk-label-row,.pr-label-row) {
    display: grid; grid-template-columns: max-content minmax(0,1fr);
    column-gap: 6px; row-gap: 6px; align-items: center;
  }
  #price :is(#tk-card-visit,#tk-card-polish,#tk-card-clean,#pr-card-visit,#pr-card-polish,#pr-card-clean) :is(.tk-label-en,.pr-label-en) { grid-column: 1 / -1; }
  #price :is(#tk-card-visit,#tk-card-polish,#tk-card-clean,#pr-card-visit,#pr-card-polish,#pr-card-clean) :is(.tk-badge-sub-row,.pr-badge-sub-row) {
    display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-start;
    gap: 6px; min-width: 0;
  }
  #price :is(#tk-card-clean,#pr-card-clean) :is(.tk-badge-sub-row,.pr-badge-sub-row) { grid-column: 1 / -1; }
}
@media (max-width: 374px) {
  #price :is(.tk-pricing-guide,.pr-pricing-guide) { font-size: 10px; }
}

/* c14: keep the mobile set saving in two complete lines with footer breathing room. */
@media (max-width: 767px) {
  #price :is(#tk-card-set,#pr-card-set) :is(.tk-compact-benefit,.pr-compact-benefit) {
    margin-bottom: 12px;
  }
  #price :is(#tk-card-set,#pr-card-set) :is(.aio-set-saving-main,.aio-set-saving-tax) {
    display: block; white-space: nowrap;
  }
}

/* c15: a softly rounded rectangle for the mobile set-saving panel. */
@media (max-width: 767px) {
  #price :is(#tk-card-set,#pr-card-set) :is(.tk-compact-benefit,.pr-compact-benefit) { border-radius: 6px; }
}

/* c16: shared detailed-region fee rows and centered phone introduction. */
#price .price__fee .aio-fee-line { display: block; }
#price .price__fee .aio-fee-charge { white-space: nowrap; }
#price .price__fee .aio-fee-tax { font-size: 12px; }
@media (max-width: 767px) {
  #price .price__fee:has(.aio-fee-line) dt { flex-basis: 100%; }
  #price .aio-terms-left h3 { margin-inline: auto; text-align: center; }
  #price .aio-terms-left .aio-terms-lead { text-align: center; }
}

/* c17: keep meaningful price/area words together, at the approved type sizes. */
.aio-keep-phrase { display: inline-block; white-space: nowrap; }
#service .service-card-header h2 { text-wrap: balance; }
.fee__row:has(.aio-fee-charge) dt { flex-shrink: 0; white-space: nowrap; }
.fee__row dd:has(.aio-fee-charge) {
  display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: baseline;
  gap: 2px 6px; min-width: 0;
}
.fee__row .aio-fee-charge, .fee__row dd small { white-space: nowrap; }

/* c18: set savings as a soft marker under the words, using each region's badge tint. */
#price :is(#tk-card-set,#pr-card-set) :is(.tk-compact-benefit,.pr-compact-benefit) {
  background: none; border: 0; border-radius: 0; box-shadow: none; padding: 2px 0;
  --aio-saving-marker: hsl(calc(var(--th, 349) - 7) 42% 94%);
}
#price :is(#tk-card-set,#pr-card-set) :is(.aio-set-saving-main,.aio-set-saving-tax) {
  background: linear-gradient(transparent 64%, var(--aio-saving-marker) 64%, var(--aio-saving-marker) 92%, transparent 92%);
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
@media (max-width: 767px) {
  #price :is(#tk-card-set,#pr-card-set) :is(.aio-set-saving-main,.aio-set-saving-tax) {
    width: fit-content; max-width: 100%;
  }
}
