/* v39: mobile fee card alignment */
    .input-section[data-category="mobile"] .mobile-fields {
      grid-template-columns: minmax(0, 1fr) 190px;
      align-items: start;
    }

    .input-section[data-category="mobile"] .mobile-main-field .input-control {
      margin-top: 19px;
    }

    .input-section[data-category="mobile"] .mobile-fields .input-field:last-child .input-control input {
      max-width: 100%;
    }

    @media (max-width: 720px) {
      .input-section[data-category="mobile"] .mobile-fields {
        grid-template-columns: 1fr;
      }

      .input-section[data-category="mobile"] .mobile-main-field .input-control {
        margin-top: 0;
      }
    }


    /* v40: PC layout polish */
    .form-card-focused h2 {
      font-size: 22px;
      letter-spacing: -0.035em;
      white-space: nowrap;
      flex: 0 0 auto;
    }

    .form-title-row {
      gap: 10px;
      flex-wrap: nowrap;
      align-items: center;
    }

    .form-title-note {
      min-height: 28px;
      padding: 5px 10px;
      font-size: 12px;
      flex: 0 0 auto;
    }

    .chart-result-hero b,
    .chart-result-card b,
    .monthly-total-card b {
      overflow-wrap: anywhere;
      word-break: keep-all;
    }

    .sp500-data-table-wrap {
      max-height: 360px;
      overflow: auto;
    }

    @media (min-width: 1080px) {
      .chart-scroll .asset-svg {
        min-width: 0;
        width: 100%;
      }
    }

    @media (min-width: 1080px) and (max-height: 1180px) {
      #panel-check .sticky {
        position: static;
      }
    }

    @media (max-width: 560px) {
      .form-title-row {
        flex-wrap: wrap;
      }

      .form-card-focused h2 {
        white-space: normal;
      }
    }

    /* v40: keep mobile fee amount field from becoming too narrow */
    .input-section[data-category="mobile"] .mobile-fields {
      grid-template-columns: minmax(0, 1fr) 145px;
    }

    @media (max-width: 720px) {
      .input-section[data-category="mobile"] .mobile-fields {
        grid-template-columns: 1fr;
      }
    }


    /* v41: affiliate review structure */
    .review-disclosure-stack {
      display: grid;
      gap: 10px;
      margin: -8px 0 22px;
    }

    .review-disclosure-box {
      border: 1px solid var(--line);
      border-radius: 16px;
      background: rgba(255, 255, 255, 0.92);
      padding: 13px 15px;
      color: #475569;
      font-size: 12px;
      line-height: 1.65;
    }

    .review-disclosure-box strong {
      color: var(--ink);
      margin-right: 6px;
      font-weight: 950;
    }

    .review-disclosure-box.ad {
      background: #fffdf7;
      border-color: #fde68a;
    }

    .review-disclosure-box.meaning {
      background: #f8fbff;
      border-color: #c8dfff;
    }

    .article-link-grid,
    .policy-link-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-top: 14px;
    }

    .article-link-card,
    .policy-card {
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #fbfdff;
      padding: 15px;
    }

    .article-link-card h4,
    .policy-card h4 {
      margin: 0 0 6px;
      font-size: 16px;
      letter-spacing: -0.02em;
    }

    .article-link-card p,
    .policy-card p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.65;
    }

    .article-link-card .btn,
    .policy-card .btn {
      margin-top: 12px;
    }

    .placeholder-note {
      padding: 14px;
      border: 1px dashed #cbd5e1;
      border-radius: 16px;
      background: #ffffff;
      color: #475569;
      font-size: 13px;
      line-height: 1.7;
      margin: 12px 0 0;
    }

    .policy-list {
      margin: 10px 0 0;
      padding-left: 1.2em;
      color: #475569;
      font-size: 13px;
      line-height: 1.75;
    }

    .official-link-placeholder {
      margin-top: 16px;
      padding: 14px;
      border: 1px dashed #bdd7fb;
      border-radius: 16px;
      background: #f8fbff;
      color: #475569;
      font-size: 13px;
      line-height: 1.65;
    }

    .footer-links {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 14px;
    }

    .footer-links button {
      appearance: none;
      border: 1px solid var(--line);
      background: #ffffff;
      color: #334155;
      border-radius: 999px;
      padding: 7px 11px;
      font: inherit;
      font-size: 12px;
      font-weight: 900;
      cursor: pointer;
    }

    @media (max-width: 680px) {
      .article-link-grid,
      .policy-link-grid {
        grid-template-columns: 1fr;
      }
    }



    /* v60: mobile plan article body */
    .article-body {
      display: grid;
      gap: 18px;
      margin-top: 16px;
    }

    .article-section {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #fbfdff;
      padding: 18px;
    }

    .article-section h3 {
      margin: 0 0 8px;
      font-size: 20px;
      letter-spacing: -0.025em;
    }

    .article-section p {
      margin: 0;
      color: #475569;
      font-size: 13px;
      line-height: 1.75;
    }

    .article-section p + p {
      margin-top: 10px;
    }

    .article-check-list {
      display: grid;
      gap: 9px;
      margin: 12px 0 0;
      padding: 0;
      list-style: none;
    }

    .article-check-list li {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 8px;
      align-items: start;
      color: #475569;
      font-size: 13px;
      line-height: 1.65;
    }

    .article-check-list li::before {
      content: "確認";
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 24px;
      padding: 3px 7px;
      border-radius: 999px;
      background: var(--primary-soft);
      color: #155bb2;
      font-size: 10px;
      font-weight: 950;
      white-space: nowrap;
    }

    .decision-list {
      display: grid;
      gap: 10px;
      margin-top: 12px;
    }

    .decision-row {
      display: grid;
      grid-template-columns: 150px minmax(0, 1fr);
      gap: 12px;
      padding: 12px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #ffffff;
    }

    .decision-row strong {
      color: #172033;
      font-size: 13px;
      line-height: 1.45;
    }

    .decision-row span {
      color: #475569;
      font-size: 12px;
      line-height: 1.65;
    }

    .article-step-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin-top: 14px;
    }

    .article-step-card {
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #ffffff;
      padding: 14px;
    }

    .article-step-card span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 26px;
      height: 26px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: #0f604f;
      font-size: 12px;
      font-weight: 950;
      margin-bottom: 8px;
    }

    .article-step-card b {
      display: block;
      font-size: 14px;
      line-height: 1.4;
      margin-bottom: 5px;
    }

    .article-step-card p {
      font-size: 12px;
      line-height: 1.65;
    }

    @media (max-width: 760px) {
      .article-step-grid,
      .decision-row {
        grid-template-columns: 1fr;
      }
    }

    /* v46: insurance category first layout */
    .insurance-flow {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin: 16px 0 18px;
    }

    .insurance-flow-step {
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #fbfdff;
      padding: 13px 14px;
    }

    .insurance-flow-step span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 26px;
      height: 26px;
      border-radius: 999px;
      background: var(--primary-soft);
      color: #155bb2;
      font-size: 12px;
      font-weight: 950;
      margin-bottom: 8px;
    }

    .insurance-flow-step b {
      display: block;
      font-size: 14px;
      line-height: 1.35;
      margin-bottom: 5px;
    }

    .insurance-flow-step p {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.6;
    }

    .insurance-category-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
      margin-top: 14px;
    }

    .insurance-category-card {
      border: 1px solid #d7e4f5;
      border-radius: 22px;
      background: #fcfdff;
      padding: 18px;
      box-shadow: 0 10px 24px rgba(23, 32, 51, 0.04);
    }

    .insurance-category-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 16px;
      padding: 16px 18px;
      border: 1px solid #bdd7fb;
      border-radius: 18px;
      background: linear-gradient(180deg, #f8fbff 0%, #f2f7ff 100%);
    }

    .insurance-category-head h3 {
      margin: 0;
      font-size: 24px;
      font-weight: 950;
      letter-spacing: -0.03em;
      line-height: 1.15;
      color: #172033;
    }

    .insurance-category-head p {
      margin: 8px 0 0;
      color: #516277;
      font-size: 13px;
      line-height: 1.65;
    }

    .insurance-category-label {
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
      min-height: 30px;
      padding: 6px 11px;
      border-radius: 999px;
      background: #ffffff;
      color: #155bb2;
      border: 1px solid #b8cdf0;
      box-shadow: 0 1px 0 rgba(21, 91, 178, 0.04);
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }

    .insurance-item-list {
      display: grid;
      gap: 10px;
      margin-left: 18px;
      padding-left: 14px;
      border-left: 3px solid #e6eef9;
    }

    .insurance-item {
      border: 1px solid #dfe8f5;
      border-radius: 16px;
      background: #ffffff;
      padding: 13px 14px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 12px;
      align-items: start;
    }

    .insurance-item-name {
      display: block;
      font-weight: 950;
      font-size: 16px;
      line-height: 1.35;
      color: #172033;
    }

    .insurance-item-reason {
      margin: 6px 0 0;
      color: #5b6b80;
      font-size: 12px;
      line-height: 1.65;
    }

    .judgement-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 76px;
      min-height: 30px;
      padding: 5px 9px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
      border: 1px solid transparent;
    }

    .judgement-badge.needed {
      background: #ecfdf5;
      color: #047857;
      border-color: #a7f3d0;
    }

    .judgement-badge.case {
      background: #fff7ed;
      color: #b45309;
      border-color: #fed7aa;
    }

    .judgement-badge.unneeded {
      background: #fef2f2;
      color: #b91c1c;
      border-color: #fecaca;
    }

    .insurance-input-guide {
      margin-top: 16px;
      padding: 16px;
      border: 1px solid #bdf4e2;
      border-radius: 18px;
      background: var(--accent-soft);
      color: #0f604f;
      font-size: 13px;
      line-height: 1.7;
    }

    .insurance-input-guide strong {
      display: block;
      margin-bottom: 5px;
      font-size: 15px;
    }

    .insurance-purpose-box {
      display: grid;
      gap: 10px;
      margin: 14px 0;
      padding: 16px;
      border: 1px solid #c8dfff;
      border-radius: 18px;
      background: #f8fbff;
    }

    .insurance-purpose-box strong {
      display: block;
      color: var(--ink);
      font-size: 17px;
      line-height: 1.35;
    }

    .insurance-purpose-box p {
      margin: 0;
      color: #475569;
      font-size: 13px;
      line-height: 1.65;
    }

    .insurance-action-line {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 2px;
    }

    .insurance-action-line span {
      display: inline-flex;
      align-items: center;
      min-height: 30px;
      padding: 6px 10px;
      border-radius: 999px;
      background: #ffffff;
      border: 1px solid var(--line);
      color: #334155;
      font-size: 12px;
      font-weight: 900;
    }

    .insurance-label-guide {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      margin: 14px 0;
    }

    .insurance-label-card {
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #ffffff;
      padding: 13px;
    }

    .insurance-label-card p {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }

    .insurance-category-nav {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 14px 0 16px;
      padding: 12px;
      border: 1px dashed #cbd5e1;
      border-radius: 16px;
      background: #ffffff;
    }

    .insurance-category-nav strong {
      display: inline-flex;
      align-items: center;
      margin-right: 4px;
      color: var(--ink);
      font-size: 12px;
      font-weight: 950;
    }

    .insurance-category-nav a {
      display: inline-flex;
      align-items: center;
      min-height: 30px;
      padding: 5px 10px;
      border-radius: 999px;
      background: #f8fbff;
      border: 1px solid #bdd7fb;
      color: #155bb2;
      font-size: 12px;
      font-weight: 900;
      text-decoration: none;
    }

    @media (max-width: 900px) {
      .insurance-flow,
      .insurance-label-guide,
      .insurance-category-grid {
        grid-template-columns: 1fr;
      }

      .insurance-item-list {
        margin-left: 0;
        padding-left: 10px;
      }
    }

    @media (max-width: 560px) {
      .insurance-category-head,
      .insurance-item {
        grid-template-columns: 1fr;
      }

      .insurance-category-head {
        display: grid;
      }

      .judgement-badge {
        width: fit-content;
      }
    }


    /* v61: S&P 500データ開閉時のレイアウト崩れ修正 */
    .chart-footer-action {
      display: grid;
      grid-template-columns: 1fr;
      align-items: stretch;
      justify-content: stretch;
    }

    .chart-footer-action p {
      max-width: none;
    }

    .chart-footer-buttons {
      width: 100%;
      min-width: 0;
      flex: 1 1 auto;
      justify-content: flex-start;
      align-items: flex-start;
    }

    .sp500-data-details {
      min-width: 0;
      max-width: 100%;
      margin-top: 0;
    }

    .sp500-data-details[open] {
      flex: 1 1 100%;
      width: 100%;
    }

    .sp500-data-details[open] .sp500-data-panel {
      width: 100%;
      max-width: 100%;
    }

    .sp500-data-table-wrap {
      width: 100%;
      max-width: 100%;
      overflow: auto;
    }

    .sp500-data-panel .simulation-table {
      width: 100%;
    }

    @media (min-width: 681px) {
      .sp500-data-details[open] + .btn,
      .sp500-data-details[open] + .btn + .btn {
        margin-top: 2px;
      }
    }

    @media (max-width: 560px) {
      .sp500-data-details summary {
        width: 100%;
      }
    }

  

    /* v62: mobile SIM comparison expansion */
    .sim-lead-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin: 16px 0;
    }

    .sim-lead-card {
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #fbfdff;
      padding: 15px;
    }

    .sim-lead-card span {
      display: inline-flex;
      align-items: center;
      min-height: 25px;
      padding: 3px 8px;
      border-radius: 999px;
      background: var(--primary-soft);
      color: #155bb2;
      font-size: 11px;
      font-weight: 950;
      margin-bottom: 8px;
    }

    .sim-lead-card b {
      display: block;
      font-size: 16px;
      line-height: 1.35;
      margin-bottom: 5px;
    }

    .sim-lead-card p {
      margin: 0;
      color: #475569;
      font-size: 12px;
      line-height: 1.65;
    }

    .sim-table-section {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #fbfdff;
      padding: 18px;
      overflow: hidden;
    }

    .sim-table-section h3 {
      margin: 0 0 8px;
      font-size: 20px;
      letter-spacing: -0.025em;
    }

    .sim-table-section > p {
      margin: 0 0 12px;
      color: #475569;
      font-size: 13px;
      line-height: 1.75;
    }

    .sim-table-wrap {
      width: 100%;
      overflow-x: auto;
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #ffffff;
    }

    .sim-comparison-table {
      width: 100%;
      min-width: 920px;
      border-collapse: collapse;
    }

    .sim-comparison-table th,
    .sim-comparison-table td {
      padding: 13px 12px;
      border-bottom: 1px solid var(--line);
      text-align: left;
      vertical-align: top;
      font-size: 12px;
      line-height: 1.65;
    }

    .sim-comparison-table th {
      background: #f8fbff;
      color: #334155;
      font-weight: 950;
      white-space: nowrap;
    }

    .sim-comparison-table tr:last-child td {
      border-bottom: none;
    }

    .sim-comparison-table td strong {
      display: block;
      color: #172033;
      font-size: 13px;
      line-height: 1.45;
    }

    .sim-price {
      display: inline-flex;
      align-items: center;
      padding: 3px 8px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: #0f604f;
      font-weight: 950;
      white-space: nowrap;
      margin: 1px 4px 4px 0;
    }

    .sim-price.warn {
      background: #fff7ed;
      color: #b45309;
    }

    .sim-price.neutral {
      background: #eef2f7;
      color: #334155;
    }

    .sim-flow-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 12px;
      margin-top: 14px;
    }

    .sim-flow-card {
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #ffffff;
      padding: 14px;
    }

    .sim-flow-card span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 26px;
      height: 26px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: #0f604f;
      font-size: 12px;
      font-weight: 950;
      margin-bottom: 8px;
    }

    .sim-flow-card b {
      display: block;
      font-size: 14px;
      line-height: 1.4;
      margin-bottom: 5px;
    }

    .sim-flow-card p {
      margin: 0;
      color: #475569;
      font-size: 12px;
      line-height: 1.65;
    }

    .sim-warning-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-top: 12px;
    }

    .sim-warning-card {
      border: 1px solid #fed7aa;
      border-radius: 16px;
      background: #fffdf7;
      padding: 14px;
    }

    .sim-warning-card strong {
      display: block;
      color: #7c2d12;
      font-size: 14px;
      margin-bottom: 5px;
    }

    .sim-warning-card p {
      margin: 0;
      color: #7c2d12;
      font-size: 12px;
      line-height: 1.65;
    }

    .sim-source-note {
      margin-top: 12px;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.6;
    }

    @media (max-width: 900px) {
      .sim-lead-grid,
      .sim-flow-grid,
      .sim-warning-grid {
        grid-template-columns: 1fr;
      }
    }


    /* v63: mobile plan UX + icons */
    .sim-note-banner {
      margin: 16px 0 0;
      padding: 15px 16px;
      border: 1px solid #bdf4e2;
      border-radius: 18px;
      background: linear-gradient(180deg, #f6fdf9 0%, #eefbf5 100%);
      color: #0f604f;
    }

    .sim-note-banner strong {
      display: block;
      margin-bottom: 6px;
      font-size: 15px;
      line-height: 1.4;
    }

    .sim-note-banner p {
      margin: 0;
      font-size: 13px;
      line-height: 1.7;
      color: #3d665d;
    }

    .sim-quick-grid,
    .sim-type-grid,
    .sim-check-grid,
    .sim-anxiety-grid,
    .sim-cta-grid {
      display: grid;
      gap: 12px;
      margin-top: 14px;
    }

    .sim-quick-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sim-type-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .sim-check-grid,
    .sim-anxiety-grid,
    .sim-cta-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sim-quick-card,
    .sim-type-card,
    .sim-check-card,
    .sim-anxiety-card,
    .sim-cta-card {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #ffffff;
      padding: 16px;
    }

    .sim-quick-card {
      background: #fbfdff;
    }

    .sim-card-head {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 10px;
    }

    .sim-card-icon {
      flex: 0 0 auto;
      width: 42px;
      height: 42px;
      border-radius: 14px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: var(--primary-soft);
      color: #155bb2;
    }

    .sim-card-icon.accent {
      background: var(--accent-soft);
      color: #0f604f;
    }

    .sim-card-icon.warn {
      background: #fff7ed;
      color: #b45309;
    }

    .sim-card-icon.neutral {
      background: #eef2f7;
      color: #334155;
    }

    .sim-card-icon svg {
      width: 22px;
      height: 22px;
      stroke: currentColor;
      fill: none;
      stroke-width: 1.9;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .sim-card-title {
      margin: 0;
      font-size: 17px;
      line-height: 1.35;
      letter-spacing: -0.02em;
    }

    .sim-card-subtitle {
      display: block;
      margin-top: 3px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
      font-weight: 700;
    }

    .sim-quick-card p,
    .sim-type-card p,
    .sim-check-card p,
    .sim-anxiety-card p,
    .sim-cta-card p {
      margin: 0;
      color: #475569;
      font-size: 12px;
      line-height: 1.7;
    }

    .sim-service-list,
    .sim-compact-list {
      display: grid;
      gap: 7px;
      margin: 10px 0 0;
      padding: 0;
      list-style: none;
    }

    .sim-service-list li,
    .sim-compact-list li {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 8px;
      align-items: start;
      color: #475569;
      font-size: 12px;
      line-height: 1.65;
    }

    .sim-service-list li::before,
    .sim-compact-list li::before {
      content: "•";
      color: #1d6fd6;
      font-weight: 900;
    }

    .sim-type-chip {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 5px 10px;
      border-radius: 999px;
      background: #f8fbff;
      color: #155bb2;
      border: 1px solid #bdd7fb;
      font-size: 11px;
      font-weight: 950;
      margin-bottom: 10px;
    }

    .sim-service-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin: 10px 0 8px;
    }

    .sim-service-pill {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 5px 10px;
      border-radius: 999px;
      background: #eef6ff;
      color: #155bb2;
      font-size: 11px;
      font-weight: 950;
    }

    .sim-type-note {
      margin-top: 8px;
      padding-top: 8px;
      border-top: 1px dashed #dbe4ef;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.6;
    }

    .sim-details {
      margin-top: 14px;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #fbfdff;
      overflow: hidden;
    }

    .sim-details summary {
      cursor: pointer;
      list-style: none;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      padding: 16px 18px;
      font-weight: 950;
      color: #172033;
      background: #f8fbff;
    }

    .sim-details summary::-webkit-details-marker {
      display: none;
    }

    .sim-details summary::after {
      content: "＋";
      color: #155bb2;
      font-size: 18px;
      line-height: 1;
    }

    .sim-details[open] summary::after {
      content: "－";
    }

    .sim-details-body {
      padding: 0 18px 18px;
    }

    .sim-summary-caption {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.65;
      font-weight: 700;
    }

    @media (max-width: 980px) {
      .sim-type-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 760px) {
      .sim-quick-grid,
      .sim-type-grid,
      .sim-check-grid,
      .sim-anxiety-grid,
      .sim-cta-grid {
        grid-template-columns: 1fr;
      }

      .sim-details summary {
        align-items: flex-start;
        flex-direction: column;
      }
    }





    /* v66: direct-flow mobile plan */
    .sim-direct-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin: 0 0 14px;
      flex-wrap: wrap;
    }

    .sim-direct-head h3 {
      margin: 0;
      font-size: 22px;
      letter-spacing: -0.03em;
    }

    .sim-direct-kicker {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 5px 10px;
      border-radius: 999px;
      background: #f8fbff;
      color: #155bb2;
      border: 1px solid #bdd7fb;
      font-size: 11px;
      font-weight: 950;
    }

    .sim-type-card.primary {
      border: 1.5px solid #bdd7fb;
      background: linear-gradient(180deg, #fbfdff 0%, #f7fbff 100%);
    }


    /* v67: compact disclosure */
    .review-disclosure-stack.compact-disclosure {
      margin: -8px 0 16px;
    }

    .review-disclosure-stack.compact-disclosure .review-disclosure-box {
      padding: 8px 12px;
      border-radius: 12px;
      box-shadow: none;
      background: rgba(255, 255, 255, 0.82);
      border-color: rgba(219, 228, 239, 0.95);
      color: #64748b;
      font-size: 11px;
      line-height: 1.55;
    }

    .review-disclosure-stack.compact-disclosure .review-disclosure-box strong {
      color: #334155;
      margin-right: 8px;
      font-size: 11px;
    }

    @media (max-width: 560px) {
      .review-disclosure-stack.compact-disclosure {
        margin: -6px 0 12px;
      }

      .review-disclosure-stack.compact-disclosure .review-disclosure-box {
        padding: 8px 10px;
        font-size: 10.5px;
      }
    }

  
    /* v70: mobile plan price ladder */
    .sim-price-ladder-section {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #fbfdff;
      padding: 18px;
      overflow: hidden;
    }

    .sim-price-ladder-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 14px;
      flex-wrap: wrap;
    }

    .sim-price-ladder-head h3 {
      margin: 0;
      font-size: 22px;
      letter-spacing: -0.03em;
    }

    .sim-price-ladder-head span {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 5px 10px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: #0f604f;
      font-size: 11px;
      font-weight: 950;
    }

    .sim-price-ladder-grid {
      display: grid;
      gap: 10px;
    }

    .sim-plan-row {
      display: grid;
      grid-template-columns: 150px minmax(180px, 1fr) minmax(180px, 1.2fr) minmax(180px, 1.2fr);
      gap: 12px;
      align-items: stretch;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #ffffff;
    }

    .sim-plan-row.best-low {
      border-color: #bdf4e2;
      background: linear-gradient(180deg, #ffffff 0%, #f5fdf9 100%);
    }

    .sim-plan-price {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 4px;
    }

    .sim-plan-price strong {
      color: #0f604f;
      font-size: clamp(22px, 3vw, 32px);
      line-height: 1;
      letter-spacing: -0.045em;
    }

    .sim-plan-price span {
      color: var(--muted);
      font-size: 11px;
      font-weight: 850;
      line-height: 1.45;
    }

    .sim-plan-main strong,
    .sim-plan-good strong,
    .sim-plan-caution strong {
      display: block;
      margin-bottom: 4px;
      color: #172033;
      font-size: 13px;
      line-height: 1.45;
    }

    .sim-plan-main p,
    .sim-plan-good p,
    .sim-plan-caution p {
      margin: 0;
      color: #475569;
      font-size: 12px;
      line-height: 1.65;
    }

    .sim-plan-tagline {
      display: inline-flex;
      align-items: center;
      min-height: 24px;
      padding: 3px 8px;
      border-radius: 999px;
      background: #eef6ff;
      color: #155bb2;
      font-size: 10px;
      font-weight: 950;
      margin-bottom: 6px;
    }

    .sim-savings-hint {
      margin-top: 12px;
      padding: 12px 14px;
      border-radius: 16px;
      background: #f8fbff;
      border: 1px dashed #bdd7fb;
      color: #475569;
      font-size: 12px;
      line-height: 1.7;
    }

    .sim-savings-hint strong {
      color: #155bb2;
      font-weight: 950;
    }

    .sim-type-card .sim-jump-note {
      display: block;
      margin-top: 10px;
      padding-top: 9px;
      border-top: 1px dashed #dbe4ef;
      color: #155bb2;
      font-size: 11px;
      font-weight: 950;
      line-height: 1.5;
    }

    @media (max-width: 1080px) {
      .sim-plan-row {
        grid-template-columns: 130px minmax(0, 1fr);
      }

      .sim-plan-good,
      .sim-plan-caution {
        grid-column: 2;
      }
    }

    @media (max-width: 680px) {
      .sim-price-ladder-section {
        padding: 14px;
      }

      .sim-plan-row {
        grid-template-columns: 1fr;
        gap: 10px;
      }

      .sim-plan-good,
      .sim-plan-caution {
        grid-column: auto;
      }

      .sim-plan-price strong {
        font-size: 28px;
      }
    }

  
    /* v72: price ladder as first content */
    .sim-ladder-short-note {
      margin: -4px 0 14px;
      color: #475569;
      font-size: 13px;
      line-height: 1.65;
    }

  
    /* v73: FAQ accordion */
    .sim-faq-head {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 12px;
      flex-wrap: wrap;
    }

    .sim-faq-head h3 {
      margin: 0;
    }

    .sim-faq-chip {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 4px 10px;
      border-radius: 999px;
      background: #f7efe7;
      color: #b8601a;
      font-size: 11px;
      font-weight: 950;
    }

    .sim-faq-list {
      display: grid;
      gap: 10px;
    }

    .sim-faq-item {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #ffffff;
      overflow: hidden;
    }

    .sim-faq-item summary {
      list-style: none;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 18px 20px;
    }

    .sim-faq-item summary::-webkit-details-marker {
      display: none;
    }

    .sim-faq-summary-left {
      display: flex;
      align-items: center;
      gap: 14px;
      min-width: 0;
    }

    .sim-faq-title {
      color: #172033;
      font-size: 16px;
      font-weight: 950;
      line-height: 1.4;
    }

    .sim-faq-toggle {
      flex: 0 0 auto;
      width: 28px;
      height: 28px;
      border-radius: 999px;
      background: #eef6ff;
      position: relative;
    }

    .sim-faq-toggle::before,
    .sim-faq-toggle::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      background: #5b93e4;
      border-radius: 999px;
      transform: translate(-50%, -50%);
    }

    .sim-faq-toggle::before {
      width: 12px;
      height: 2px;
    }

    .sim-faq-toggle::after {
      width: 2px;
      height: 12px;
    }

    .sim-faq-item[open] .sim-faq-toggle::after {
      display: none;
    }

    .sim-faq-answer {
      padding: 0 20px 18px 78px;
    }

    .sim-faq-answer p {
      margin: 0;
      color: #475569;
      font-size: 13px;
      line-height: 1.75;
    }

    @media (max-width: 640px) {
      .sim-faq-item summary {
        padding: 16px;
      }

      .sim-faq-summary-left {
        gap: 12px;
      }

      .sim-faq-title {
        font-size: 15px;
      }

      .sim-faq-answer {
        padding: 0 16px 16px 16px;
      }
    }

  
    /* v75: Japan SIM expandable detail */
    .sim-plan-row.japan-sim-featured {
      box-shadow: 0 14px 32px rgba(16, 185, 129, 0.08);
    }

    .sim-plan-detail {
      grid-column: 1 / -1;
      margin-top: 2px;
      border-top: 1px dashed #bdf4e2;
      padding-top: 12px;
    }

    .sim-plan-detail summary {
      cursor: pointer;
      list-style: none;
      width: fit-content;
      display: inline-flex;
      align-items: center;
      min-height: 34px;
      padding: 7px 12px;
      border-radius: 999px;
      background: #0f604f;
      color: #ffffff;
      font-size: 12px;
      font-weight: 950;
      line-height: 1;
    }

    .sim-plan-detail summary::-webkit-details-marker {
      display: none;
    }

    .sim-plan-detail summary::after {
      content: "＋";
      margin-left: 8px;
      font-size: 14px;
      line-height: 1;
    }

    .sim-plan-detail[open] summary::after {
      content: "－";
    }

    .sim-plan-detail-body {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin-top: 12px;
    }

    .sim-detail-block {
      border: 1px solid #d9f7ec;
      border-radius: 14px;
      background: #ffffff;
      padding: 12px;
    }

    .sim-detail-block strong {
      display: block;
      margin-bottom: 6px;
      color: #0f604f;
      font-size: 13px;
      line-height: 1.45;
    }

    .sim-detail-block ul {
      display: grid;
      gap: 5px;
      margin: 0;
      padding-left: 1.05em;
      color: #475569;
      font-size: 11.5px;
      line-height: 1.6;
    }

    @media (max-width: 1080px) {
      .sim-plan-detail-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 680px) {
      .sim-plan-detail-body {
        grid-template-columns: 1fr;
      }

      .sim-plan-detail summary {
        width: 100%;
        justify-content: center;
      }
    }

  
    /* v76: visual-first Japan SIM card */
    .sim-plan-row.japan-sim-featured.visual {
      display: block;
      padding: 0;
      overflow: hidden;
      border-color: #bfe9dc;
      background: #ffffff;
      box-shadow: 0 18px 38px rgba(15, 96, 79, 0.08);
    }

    .japan-sim-top {
      display: grid;
      grid-template-columns: 325px minmax(0, 1fr);
      align-items: stretch;
    }

    .japan-sim-side {
      background: linear-gradient(180deg, #0d264b 0%, #071d38 100%);
      color: #ffffff;
      padding: 26px 26px 22px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .japan-sim-badge {
      display: inline-flex;
      align-items: center;
      align-self: flex-start;
      min-height: 30px;
      padding: 6px 12px;
      border-radius: 999px;
      background: linear-gradient(135deg, #31d39c 0%, #24c6dc 100%);
      color: #ffffff;
      font-size: 12px;
      font-weight: 950;
      letter-spacing: 0.01em;
    }

    .japan-sim-badge::before {
      content: "✦";
      margin-right: 6px;
      font-size: 12px;
    }

    .japan-sim-price-wrap {
      display: flex;
      align-items: flex-end;
      gap: 4px;
      margin-top: 2px;
    }

    .japan-sim-price-main {
      font-size: clamp(54px, 7vw, 82px);
      font-weight: 1000;
      letter-spacing: -0.06em;
      line-height: 0.92;
    }

    .japan-sim-price-sub {
      font-size: 20px;
      font-weight: 900;
      line-height: 1.2;
      margin-bottom: 10px;
      opacity: 0.95;
    }

    .japan-sim-price-note {
      color: rgba(230, 239, 250, 0.9);
      font-size: 13px;
      font-weight: 800;
      line-height: 1.6;
    }

    .japan-sim-name {
      margin: 8px 0 0;
      color: #ffffff;
      font-size: 17px;
      line-height: 1.4;
      letter-spacing: -0.01em;
    }

    .japan-sim-main {
      padding: 22px 26px 18px;
      display: grid;
      gap: 18px;
      background: linear-gradient(180deg, #ffffff 0%, #fbfffd 100%);
    }

    .japan-sim-lead {
      margin: 0;
      padding-left: 16px;
      border-left: 3px solid #2ccf92;
      color: #475569;
      font-size: 14px;
      line-height: 1.75;
    }

    .japan-sim-chart {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 110px;
      gap: 14px;
      align-items: end;
    }

    .japan-sim-bars {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      align-items: end;
    }

    .japan-sim-bar-item {
      display: grid;
      gap: 8px;
      justify-items: stretch;
      align-items: end;
    }

    .japan-sim-bar-price {
      color: #172033;
      font-size: 14px;
      font-weight: 950;
      text-align: center;
    }

    .japan-sim-bar {
      border-radius: 8px 8px 0 0;
      background: linear-gradient(180deg, #30d39b 0%, #1a8d6c 100%);
      box-shadow: inset 0 -1px 0 rgba(255,255,255,0.25);
    }

    .japan-sim-bar.h1 { height: 38px; }
    .japan-sim-bar.h2 { height: 54px; }
    .japan-sim-bar.h3 { height: 76px; }
    .japan-sim-bar.h4 { height: 94px; }

    .japan-sim-bar-label {
      color: #64748b;
      font-size: 12px;
      font-weight: 850;
      text-align: center;
    }

    .japan-sim-chart-note {
      align-self: center;
      padding-left: 14px;
      border-left: 1px solid #dbe4ef;
      display: grid;
      gap: 1px;
      color: #64748b;
      font-size: 12px;
      line-height: 1.5;
    }

    .japan-sim-chart-note strong {
      color: #155bb2;
      font-size: 15px;
      font-weight: 1000;
      letter-spacing: -0.02em;
    }

    .japan-sim-mini-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }

    .japan-sim-mini {
      display: grid;
      gap: 6px;
    }

    .japan-sim-mini strong {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      line-height: 1.5;
    }

    .japan-sim-mini.merit strong {
      color: #12a269;
    }

    .japan-sim-mini.merit strong::before,
    .japan-sim-mini.caution strong::before {
      content: "";
      width: 10px;
      height: 10px;
      border-radius: 999px;
      flex: 0 0 auto;
    }

    .japan-sim-mini.merit strong::before {
      background: #2ccf92;
    }

    .japan-sim-mini.caution strong {
      color: #ef6c3e;
    }

    .japan-sim-mini.caution strong::before {
      background: #ff7b4a;
    }

    .japan-sim-mini p {
      margin: 0;
      color: #334155;
      font-size: 12px;
      line-height: 1.7;
    }

    .japan-sim-inline-detail {
      margin-top: auto;
      border-top: none;
      padding-top: 0;
    }

    .japan-sim-inline-detail summary {
      width: 100%;
      justify-content: space-between;
      min-height: 54px;
      padding: 0 18px;
      border-radius: 14px;
      background: linear-gradient(135deg, #31d39c 0%, #24c6dc 100%);
      color: #ffffff;
      font-size: 16px;
      font-weight: 950;
      box-shadow: 0 12px 26px rgba(31, 211, 156, 0.22);
    }

    .japan-sim-inline-detail summary::after {
      content: "→";
      margin-left: 10px;
      font-size: 22px;
      line-height: 1;
    }

    .japan-sim-inline-detail[open] summary::after {
      content: "－";
      font-size: 18px;
    }

    .japan-sim-inline-detail .sim-plan-detail-body {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0;
      margin-top: 0;
      border-top: 1px solid #dbe4ef;
      background: #fcfffd;
    }

    .japan-sim-inline-detail .sim-detail-block {
      border: none;
      border-right: 1px solid #dbe4ef;
      border-radius: 0;
      padding: 20px 22px 22px;
      background: transparent;
    }

    .japan-sim-inline-detail .sim-detail-block:last-child {
      border-right: none;
    }

    .japan-sim-inline-detail .sim-detail-block strong {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
      color: #172033;
      font-size: 15px;
    }

    .japan-sim-inline-detail .sim-detail-block strong::before {
      width: 40px;
      height: 40px;
      border-radius: 14px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      background: #eef6ff;
      flex: 0 0 auto;
      content: "◫";
      color: #5b93e4;
    }

    .japan-sim-inline-detail .sim-detail-block:nth-child(2) strong::before {
      content: "◔";
      background: #edf8f3;
      color: #1a8d6c;
    }

    .japan-sim-inline-detail .sim-detail-block:nth-child(3) strong::before {
      content: "⚠";
      background: #fdf2eb;
      color: #ef6c3e;
    }

    .japan-sim-inline-detail .sim-detail-block:nth-child(4) strong::before {
      content: "☰";
      background: #f4efff;
      color: #8169d8;
    }

    .japan-sim-inline-detail .sim-detail-block ul {
      gap: 8px;
      font-size: 12px;
      line-height: 1.8;
      list-style: none;
      padding-left: 0;
    }

    .japan-sim-inline-detail .sim-detail-block li {
      position: relative;
      padding-left: 14px;
    }

    .japan-sim-inline-detail .sim-detail-block li::before {
      content: "–";
      position: absolute;
      left: 0;
      top: 0;
      color: #94a3b8;
    }

    @media (max-width: 1180px) {
      .japan-sim-top {
        grid-template-columns: 280px minmax(0, 1fr);
      }

      .japan-sim-inline-detail .sim-plan-detail-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .japan-sim-inline-detail .sim-detail-block:nth-child(2n) {
        border-right: none;
      }

      .japan-sim-inline-detail .sim-detail-block:nth-child(n+3) {
        border-top: 1px solid #dbe4ef;
      }
    }

    @media (max-width: 860px) {
      .japan-sim-top {
        grid-template-columns: 1fr;
      }

      .japan-sim-chart {
        grid-template-columns: 1fr;
      }

      .japan-sim-chart-note {
        border-left: none;
        border-top: 1px solid #dbe4ef;
        padding-left: 0;
        padding-top: 10px;
        grid-auto-flow: column;
        justify-content: start;
        gap: 8px;
        align-items: baseline;
      }
    }

    @media (max-width: 720px) {
      .japan-sim-side,
      .japan-sim-main {
        padding: 20px 18px;
      }

      .japan-sim-mini-grid,
      .japan-sim-inline-detail .sim-plan-detail-body {
        grid-template-columns: 1fr;
      }

      .japan-sim-inline-detail .sim-detail-block {
        border-right: none;
        border-top: 1px solid #dbe4ef;
      }

      .japan-sim-inline-detail .sim-detail-block:first-child {
        border-top: none;
      }

      .japan-sim-bars {
        gap: 8px;
      }

      .japan-sim-price-main {
        font-size: 64px;
      }
    }

  
    /* v77: Japan SIM detail opens below the visual card */
    .japan-sim-detail-full {
      border-top: 1px solid #dbe4ef;
      padding: 16px 22px 0;
      margin: 0;
      background: #fcfffd;
    }

    .japan-sim-detail-full summary {
      width: fit-content;
      min-height: 44px;
      padding: 0 18px;
      border-radius: 999px;
      background: linear-gradient(135deg, #31d39c 0%, #24c6dc 100%);
      color: #ffffff;
      font-size: 14px;
      font-weight: 950;
      box-shadow: 0 12px 26px rgba(31, 211, 156, 0.18);
    }

    .japan-sim-detail-full summary::after {
      content: "→";
      margin-left: 10px;
      font-size: 18px;
      line-height: 1;
    }

    .japan-sim-detail-full[open] summary::after {
      content: "－";
      font-size: 16px;
    }

    .japan-sim-detail-full .sim-plan-detail-body {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0;
      margin: 16px -22px 0;
      border-top: 1px solid #dbe4ef;
      background: #fcfffd;
    }

    .japan-sim-detail-full .sim-detail-block {
      border: none;
      border-right: 1px solid #dbe4ef;
      border-radius: 0;
      padding: 20px 22px 22px;
      background: transparent;
      min-width: 0;
    }

    .japan-sim-detail-full .sim-detail-block:last-child {
      border-right: none;
    }

    .japan-sim-detail-full .sim-detail-block strong {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
      color: #172033;
      font-size: 15px;
      writing-mode: horizontal-tb;
    }

    .japan-sim-detail-full .sim-detail-block strong::before {
      width: 40px;
      height: 40px;
      border-radius: 14px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      background: #eef6ff;
      flex: 0 0 auto;
      content: "◫";
      color: #5b93e4;
    }

    .japan-sim-detail-full .sim-detail-block:nth-child(2) strong::before {
      content: "◔";
      background: #edf8f3;
      color: #1a8d6c;
    }

    .japan-sim-detail-full .sim-detail-block:nth-child(3) strong::before {
      content: "⚠";
      background: #fdf2eb;
      color: #ef6c3e;
    }

    .japan-sim-detail-full .sim-detail-block:nth-child(4) strong::before {
      content: "☰";
      background: #f4efff;
      color: #8169d8;
    }

    .japan-sim-detail-full .sim-detail-block ul {
      gap: 8px;
      font-size: 12px;
      line-height: 1.8;
      list-style: none;
      padding-left: 0;
      writing-mode: horizontal-tb;
    }

    .japan-sim-detail-full .sim-detail-block li {
      position: relative;
      padding-left: 14px;
      writing-mode: horizontal-tb;
    }

    .japan-sim-detail-full .sim-detail-block li::before {
      content: "–";
      position: absolute;
      left: 0;
      top: 0;
      color: #94a3b8;
    }

    @media (max-width: 1180px) {
      .japan-sim-detail-full .sim-plan-detail-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .japan-sim-detail-full .sim-detail-block:nth-child(2n) {
        border-right: none;
      }

      .japan-sim-detail-full .sim-detail-block:nth-child(n+3) {
        border-top: 1px solid #dbe4ef;
      }
    }

    @media (max-width: 720px) {
      .japan-sim-detail-full {
        padding: 14px 16px 0;
      }

      .japan-sim-detail-full summary {
        width: 100%;
        justify-content: center;
      }

      .japan-sim-detail-full .sim-plan-detail-body {
        grid-template-columns: 1fr;
        margin: 14px -16px 0;
      }

      .japan-sim-detail-full .sim-detail-block {
        border-right: none;
        border-top: 1px solid #dbe4ef;
      }

      .japan-sim-detail-full .sim-detail-block:first-child {
        border-top: none;
      }
    }

  
    /* v78: service-level official buttons and IIJmio visual card */
    .service-action-row {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      gap: 10px;
      padding: 16px 22px 0;
      border-top: 1px solid #dbe4ef;
      background: #fcfffd;
    }

    .service-action-row .service-detail {
      display: contents;
    }

    .service-action-row .service-detail > summary {
      flex: 0 0 auto;
      width: auto;
      min-height: 44px;
      margin: 0;
      padding: 0 18px;
      border-radius: 999px;
      background: linear-gradient(135deg, #31d39c 0%, #24c6dc 100%);
      color: #ffffff;
      font-size: 14px;
      font-weight: 950;
      box-shadow: 0 12px 26px rgba(31, 211, 156, 0.18);
    }

    .service-official-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 44px;
      padding: 0 18px;
      border-radius: 999px;
      border: 1px solid #cbd8e6;
      background: #ffffff;
      color: #155bb2;
      text-decoration: none;
      font-size: 13px;
      font-weight: 950;
      box-shadow: 0 10px 22px rgba(23, 32, 51, 0.05);
    }

    .service-official-link::after {
      content: "↗";
      margin-left: 8px;
      font-size: 13px;
    }

    .service-action-row .sim-plan-detail-body {
      flex: 0 0 calc(100% + 44px);
      width: calc(100% + 44px);
      margin: 14px -22px 0;
      order: 10;
    }

    .iijmio-featured.visual {
      display: block;
      padding: 0;
      overflow: hidden;
      border-color: #c9dcff;
      background: #ffffff;
      box-shadow: 0 18px 38px rgba(29, 111, 214, 0.07);
    }

    .iijmio-top {
      display: grid;
      grid-template-columns: 325px minmax(0, 1fr);
      align-items: stretch;
    }

    .iijmio-side {
      background: linear-gradient(180deg, #102a56 0%, #0b1f45 100%);
      color: #ffffff;
      padding: 26px 26px 22px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .iijmio-badge {
      display: inline-flex;
      align-items: center;
      align-self: flex-start;
      min-height: 30px;
      padding: 6px 12px;
      border-radius: 999px;
      background: linear-gradient(135deg, #5b93e4 0%, #24c6dc 100%);
      color: #ffffff;
      font-size: 12px;
      font-weight: 950;
      letter-spacing: 0.01em;
    }

    .iijmio-badge::before {
      content: "◈";
      margin-right: 6px;
      font-size: 12px;
    }

    .iijmio-price-wrap {
      display: flex;
      align-items: flex-end;
      gap: 4px;
      margin-top: 2px;
    }

    .iijmio-price-main {
      font-size: clamp(52px, 7vw, 78px);
      font-weight: 1000;
      letter-spacing: -0.06em;
      line-height: 0.92;
    }

    .iijmio-price-sub {
      font-size: 20px;
      font-weight: 900;
      line-height: 1.2;
      margin-bottom: 10px;
      opacity: 0.95;
    }

    .iijmio-price-note {
      color: rgba(230, 239, 250, 0.9);
      font-size: 13px;
      font-weight: 800;
      line-height: 1.6;
    }

    .iijmio-name {
      margin: 8px 0 0;
      color: #ffffff;
      font-size: 17px;
      line-height: 1.4;
      letter-spacing: -0.01em;
    }

    .iijmio-main {
      padding: 22px 26px 18px;
      display: grid;
      gap: 18px;
      background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    }

    .iijmio-lead {
      margin: 0;
      padding-left: 16px;
      border-left: 3px solid #5b93e4;
      color: #475569;
      font-size: 14px;
      line-height: 1.75;
    }

    .iijmio-chart {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 128px;
      gap: 14px;
      align-items: end;
    }

    .iijmio-bars {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      align-items: end;
    }

    .iijmio-bar-item {
      display: grid;
      gap: 8px;
      justify-items: stretch;
      align-items: end;
    }

    .iijmio-bar-price {
      color: #172033;
      font-size: 14px;
      font-weight: 950;
      text-align: center;
    }

    .iijmio-bar {
      border-radius: 8px 8px 0 0;
      background: linear-gradient(180deg, #5b93e4 0%, #1d6fd6 100%);
      box-shadow: inset 0 -1px 0 rgba(255,255,255,0.25);
    }

    .iijmio-bar.h1 { height: 40px; }
    .iijmio-bar.h2 { height: 56px; }
    .iijmio-bar.h3 { height: 78px; }
    .iijmio-bar.h4 { height: 96px; }

    .iijmio-bar-label {
      color: #64748b;
      font-size: 12px;
      font-weight: 850;
      text-align: center;
    }

    .iijmio-chart-note {
      align-self: center;
      padding-left: 14px;
      border-left: 1px solid #dbe4ef;
      display: grid;
      gap: 1px;
      color: #64748b;
      font-size: 12px;
      line-height: 1.5;
    }

    .iijmio-chart-note strong {
      color: #155bb2;
      font-size: 15px;
      font-weight: 1000;
      letter-spacing: -0.02em;
    }

    .iijmio-mini-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }

    .iijmio-mini {
      display: grid;
      gap: 6px;
    }

    .iijmio-mini strong {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      line-height: 1.5;
    }

    .iijmio-mini.merit strong {
      color: #155bb2;
    }

    .iijmio-mini.caution strong {
      color: #ef6c3e;
    }

    .iijmio-mini.merit strong::before,
    .iijmio-mini.caution strong::before {
      content: "";
      width: 10px;
      height: 10px;
      border-radius: 999px;
      flex: 0 0 auto;
    }

    .iijmio-mini.merit strong::before {
      background: #5b93e4;
    }

    .iijmio-mini.caution strong::before {
      background: #ff7b4a;
    }

    .iijmio-mini p {
      margin: 0;
      color: #334155;
      font-size: 12px;
      line-height: 1.7;
    }

    .iijmio-action-row {
      background: #f8fbff;
    }

    .iijmio-action-row .service-detail > summary {
      background: linear-gradient(135deg, #5b93e4 0%, #24c6dc 100%);
      box-shadow: 0 12px 26px rgba(91, 147, 228, 0.18);
    }

    .iijmio-action-row .sim-plan-detail-body {
      background: #f8fbff;
    }

    .iijmio-detail-full .sim-detail-block strong::before {
      background: #eef6ff;
      color: #5b93e4;
    }

    @media (max-width: 1180px) {
      .iijmio-top {
        grid-template-columns: 280px minmax(0, 1fr);
      }
    }

    @media (max-width: 860px) {
      .iijmio-top {
        grid-template-columns: 1fr;
      }

      .iijmio-chart {
        grid-template-columns: 1fr;
      }

      .iijmio-chart-note {
        border-left: none;
        border-top: 1px solid #dbe4ef;
        padding-left: 0;
        padding-top: 10px;
        grid-auto-flow: column;
        justify-content: start;
        gap: 8px;
        align-items: baseline;
      }
    }

    @media (max-width: 720px) {
      .service-action-row {
        padding: 14px 16px 0;
      }

      .service-action-row .service-detail > summary,
      .service-official-link {
        width: 100%;
        justify-content: center;
      }

      .service-action-row .sim-plan-detail-body {
        flex-basis: calc(100% + 32px);
        width: calc(100% + 32px);
        margin: 14px -16px 0;
      }

      .iijmio-side,
      .iijmio-main {
        padding: 20px 18px;
      }

      .iijmio-mini-grid {
        grid-template-columns: 1fr;
      }

      .iijmio-bars {
        gap: 8px;
      }

      .iijmio-price-main {
        font-size: 62px;
      }
    }

  
    /* v79: keep official link fixed beside detail button */
    .service-action-row-fixed {
      display: block;
      padding: 16px 22px 0;
      border-top: 1px solid #dbe4ef;
      background: #fcfffd;
    }

    .service-action-row-fixed .service-detail-fixed {
      display: block !important;
      margin: 0;
      padding: 0;
      border-top: none;
      background: transparent;
    }

    .service-action-row-fixed .service-detail-fixed > summary {
      display: flex !important;
      align-items: center;
      justify-content: flex-start;
      gap: 10px;
      flex-wrap: wrap;
      list-style: none;
      cursor: default;
      width: fit-content;
      min-height: auto;
      padding: 0 !important;
      margin: 0;
      border-radius: 0;
      background: transparent !important;
      box-shadow: none !important;
      color: inherit;
    }

    .service-action-row-fixed .service-detail-fixed > summary::-webkit-details-marker {
      display: none;
    }

    .service-action-row-fixed .service-detail-fixed > summary::after {
      content: none !important;
    }

    .service-detail-label {
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 44px;
      padding: 0 18px;
      border-radius: 999px;
      background: linear-gradient(135deg, #31d39c 0%, #24c6dc 100%);
      color: #ffffff;
      font-size: 14px;
      font-weight: 950;
      box-shadow: 0 12px 26px rgba(31, 211, 156, 0.18);
    }

    .service-detail-label::after {
      content: "→";
      margin-left: 10px;
      font-size: 18px;
      line-height: 1;
    }

    .service-detail-fixed[open] .service-detail-label::after {
      content: "－";
      font-size: 16px;
    }

    .service-official-link-inline {
      position: static !important;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 44px;
      padding: 0 18px;
      border-radius: 999px;
      border: 1px solid #cbd8e6;
      background: #ffffff;
      color: #155bb2;
      text-decoration: none;
      font-size: 13px;
      font-weight: 950;
      box-shadow: 0 10px 22px rgba(23, 32, 51, 0.05);
      order: 0;
    }

    .service-official-link-inline::after {
      content: "↗";
      margin-left: 8px;
      font-size: 13px;
    }

    .service-action-row-fixed .sim-plan-detail-body {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0;
      width: calc(100% + 44px);
      margin: 14px -22px 0;
      border-top: 1px solid #dbe4ef;
      background: #fcfffd;
    }

    .iijmio-action-row.service-action-row-fixed {
      background: #f8fbff;
    }

    .iijmio-action-row .service-detail-label {
      background: linear-gradient(135deg, #5b93e4 0%, #24c6dc 100%);
      box-shadow: 0 12px 26px rgba(91, 147, 228, 0.18);
    }

    .iijmio-action-row.service-action-row-fixed .sim-plan-detail-body {
      background: #f8fbff;
    }

    @media (max-width: 1180px) {
      .service-action-row-fixed .sim-plan-detail-body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 720px) {
      .service-action-row-fixed {
        padding: 14px 16px 0;
      }

      .service-action-row-fixed .service-detail-fixed > summary {
        width: 100%;
      }

      .service-detail-label,
      .service-official-link-inline {
        flex: 1 1 100%;
        width: 100%;
      }

      .service-action-row-fixed .sim-plan-detail-body {
        grid-template-columns: 1fr;
        width: calc(100% + 32px);
        margin: 14px -16px 0;
      }
    }

  
    /* v81: LINEMO Best Plan visual card */
    .linemo-featured.visual {
      display: block;
      padding: 0;
      overflow: hidden;
      border-color: #b7f1dd;
      background: #ffffff;
      box-shadow: 0 18px 38px rgba(0, 177, 107, 0.07);
    }

    .linemo-top {
      display: grid;
      grid-template-columns: 325px minmax(0, 1fr);
      align-items: stretch;
    }

    .linemo-side {
      background: linear-gradient(180deg, #052f2b 0%, #06233d 100%);
      color: #ffffff;
      padding: 26px 26px 22px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .linemo-badge {
      display: inline-flex;
      align-items: center;
      align-self: flex-start;
      min-height: 30px;
      padding: 6px 12px;
      border-radius: 999px;
      background: linear-gradient(135deg, #12d66b 0%, #24c6dc 100%);
      color: #ffffff;
      font-size: 12px;
      font-weight: 950;
      letter-spacing: 0.01em;
    }

    .linemo-badge::before {
      content: "LINE";
      margin-right: 7px;
      font-size: 10px;
      font-weight: 1000;
      letter-spacing: 0.02em;
    }

    .linemo-price-wrap {
      display: flex;
      align-items: flex-end;
      gap: 4px;
      margin-top: 2px;
    }

    .linemo-price-main {
      font-size: clamp(52px, 7vw, 78px);
      font-weight: 1000;
      letter-spacing: -0.06em;
      line-height: 0.92;
    }

    .linemo-price-sub {
      font-size: 20px;
      font-weight: 900;
      line-height: 1.2;
      margin-bottom: 10px;
      opacity: 0.95;
    }

    .linemo-price-note {
      color: rgba(230, 239, 250, 0.9);
      font-size: 13px;
      font-weight: 800;
      line-height: 1.6;
    }

    .linemo-name {
      margin: 8px 0 0;
      color: #ffffff;
      font-size: 17px;
      line-height: 1.4;
      letter-spacing: -0.01em;
    }

    .linemo-main {
      padding: 22px 26px 18px;
      display: grid;
      gap: 18px;
      background: linear-gradient(180deg, #ffffff 0%, #f7fffb 100%);
    }

    .linemo-lead {
      margin: 0;
      padding-left: 16px;
      border-left: 3px solid #12d66b;
      color: #475569;
      font-size: 14px;
      line-height: 1.75;
    }

    .linemo-chart {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 128px;
      gap: 14px;
      align-items: end;
    }

    .linemo-bars {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
      align-items: end;
      max-width: 560px;
    }

    .linemo-bar-item {
      display: grid;
      gap: 8px;
      justify-items: stretch;
      align-items: end;
    }

    .linemo-bar-price {
      color: #172033;
      font-size: 15px;
      font-weight: 950;
      text-align: center;
    }

    .linemo-bar {
      border-radius: 10px 10px 0 0;
      background: linear-gradient(180deg, #12d66b 0%, #0aa36f 100%);
      box-shadow: inset 0 -1px 0 rgba(255,255,255,0.25);
    }

    .linemo-bar.h1 { height: 54px; }
    .linemo-bar.h2 { height: 96px; }

    .linemo-bar-label {
      color: #64748b;
      font-size: 12px;
      font-weight: 850;
      text-align: center;
    }

    .linemo-chart-note {
      align-self: center;
      padding-left: 14px;
      border-left: 1px solid #dbe4ef;
      display: grid;
      gap: 1px;
      color: #64748b;
      font-size: 12px;
      line-height: 1.5;
    }

    .linemo-chart-note strong {
      color: #0a9f63;
      font-size: 15px;
      font-weight: 1000;
      letter-spacing: -0.02em;
    }

    .linemo-mini-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }

    .linemo-mini {
      display: grid;
      gap: 6px;
    }

    .linemo-mini strong {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      line-height: 1.5;
    }

    .linemo-mini.merit strong {
      color: #0a9f63;
    }

    .linemo-mini.caution strong {
      color: #ef6c3e;
    }

    .linemo-mini.merit strong::before,
    .linemo-mini.caution strong::before {
      content: "";
      width: 10px;
      height: 10px;
      border-radius: 999px;
      flex: 0 0 auto;
    }

    .linemo-mini.merit strong::before {
      background: #12d66b;
    }

    .linemo-mini.caution strong::before {
      background: #ff7b4a;
    }

    .linemo-mini p {
      margin: 0;
      color: #334155;
      font-size: 12px;
      line-height: 1.7;
    }

    .linemo-action-row {
      background: #f7fffb;
    }

    .linemo-action-row .service-detail-label {
      background: linear-gradient(135deg, #12d66b 0%, #24c6dc 100%);
      box-shadow: 0 12px 26px rgba(18, 214, 107, 0.18);
    }

    .linemo-action-row.service-action-row-fixed .sim-plan-detail-body {
      background: #f7fffb;
    }

    .linemo-detail-full .sim-detail-block strong::before {
      background: #edf8f3;
      color: #0a9f63;
    }

    @media (max-width: 1180px) {
      .linemo-top {
        grid-template-columns: 280px minmax(0, 1fr);
      }
    }

    @media (max-width: 860px) {
      .linemo-top {
        grid-template-columns: 1fr;
      }

      .linemo-chart {
        grid-template-columns: 1fr;
      }

      .linemo-chart-note {
        border-left: none;
        border-top: 1px solid #dbe4ef;
        padding-left: 0;
        padding-top: 10px;
        grid-auto-flow: column;
        justify-content: start;
        gap: 8px;
        align-items: baseline;
      }
    }

    @media (max-width: 720px) {
      .linemo-side,
      .linemo-main {
        padding: 20px 18px;
      }

      .linemo-mini-grid {
        grid-template-columns: 1fr;
      }

      .linemo-price-main {
        font-size: 62px;
      }
    }


    /* v84: 料金の性質別レイアウトをスマホ代見直しカードへ移植 */
    .japan-sim-chart {
      grid-template-columns: minmax(0, 1fr) 180px;
      align-items: center;
    }

    .japan-sim-formula-card {
      align-self: center;
      border: 1px solid #bdf4e2;
      border-radius: 18px;
      background: linear-gradient(180deg, #f7fffb 0%, #effdf7 100%);
      padding: 16px;
      color: #0f604f;
      min-width: 0;
    }

    .japan-sim-formula-card span {
      display: block;
      color: #64748b;
      font-size: 12px;
      font-weight: 850;
    }

    .japan-sim-formula-card b {
      display: block;
      margin: 4px 0;
      font-size: 24px;
      line-height: 1.05;
      letter-spacing: -0.04em;
    }

    .japan-sim-formula-card small {
      display: block;
      color: #0f604f;
      font-size: 11px;
      font-weight: 900;
      line-height: 1.45;
    }

    .iijmio-side {
      background: linear-gradient(180deg, #061a3d 0%, #04142f 100%);
    }

    .iijmio-chart {
      grid-template-columns: minmax(0, 1fr) 170px;
      align-items: center;
    }

    .iijmio-bar {
      position: relative;
      overflow: hidden;
      background: linear-gradient(180deg, #7bb2ff 0%, #1d6fd6 100%);
    }

    .iijmio-bar::after {
      content: "選択";
      position: absolute;
      left: 50%;
      bottom: 8px;
      transform: translateX(-50%);
      color: rgba(255, 255, 255, 0.92);
      font-size: 10px;
      font-weight: 1000;
      letter-spacing: 0.06em;
      line-height: 1;
    }

    .iijmio-choice-panel {
      align-self: center;
      display: grid;
      gap: 8px;
      padding: 14px;
      border: 1px solid #bdd7fb;
      border-radius: 18px;
      background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
      min-width: 0;
    }

    .iijmio-choice-panel strong {
      color: #155bb2;
      font-size: 14px;
      line-height: 1.45;
    }

    .iijmio-choice-panel small {
      color: #475569;
      font-size: 11px;
      font-weight: 850;
      line-height: 1.45;
    }

    .iijmio-choice-chip {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: auto;
      padding: 0 0 0 10px;
      border-radius: 0;
      background: transparent;
      border: none;
      border-left: 1px solid #bdd7fb;
      color: #155bb2;
      font-size: 12px;
      font-weight: 950;
      line-height: 1.35;
      box-shadow: none;
      cursor: default;
    }

    .linemo-side {
      background: linear-gradient(180deg, #062b24 0%, #061f3f 100%);
    }

    .linemo-chart {
      grid-template-columns: minmax(0, 1fr) 160px;
      align-items: center;
    }

    .linemo-step-visual {
      min-height: 148px;
      display: grid;
      grid-template-columns: 1fr 32px 1.15fr;
      align-items: end;
      gap: 0;
      position: relative;
    }

    .linemo-step {
      display: grid;
      align-content: end;
      justify-items: center;
      gap: 8px;
    }

    .linemo-step-price {
      font-weight: 1000;
      font-size: 18px;
      letter-spacing: -0.03em;
    }

    .linemo-step-block {
      width: 100%;
      border-radius: 12px 12px 0 0;
      background: linear-gradient(180deg, #06c755 0%, #0aa36f 100%);
      position: relative;
      box-shadow: inset 0 -1px 0 rgba(255,255,255,0.25);
    }

    .linemo-step-block.low { height: 62px; }
    .linemo-step-block.high {
      height: 118px;
      background: linear-gradient(180deg, #1ee577 0%, #079b63 100%);
    }

    .linemo-step-label {
      color: #64748b;
      font-size: 12px;
      font-weight: 950;
    }

    .linemo-cliff {
      height: 118px;
      display: grid;
      place-items: center;
      color: #ef4444;
      font-size: 11px;
      font-weight: 1000;
      writing-mode: vertical-rl;
      position: relative;
    }

    .linemo-cliff::before {
      content: "";
      width: 3px;
      height: 100%;
      border-radius: 999px;
      background: linear-gradient(180deg, transparent 0%, #ef4444 16%, #ef4444 84%, transparent 100%);
      position: absolute;
    }

    .linemo-cliff span {
      position: relative;
      background: #fff5f5;
      border: 1px solid #fecaca;
      border-radius: 999px;
      padding: 8px 3px;
    }

    .linemo-line-card {
      display: grid;
      gap: 8px;
      justify-items: center;
      padding: 16px 12px;
      border: 1px solid #b7f7cf;
      border-radius: 18px;
      background: linear-gradient(180deg, #f7fffb 0%, #eafff2 100%);
      color: #079b63;
      text-align: center;
      min-width: 0;
    }

    .linemo-line-icon {
      width: 48px;
      height: 48px;
      border-radius: 16px;
      background: #06c755;
      color: #ffffff;
      display: grid;
      place-items: center;
      font-weight: 1000;
      font-size: 12px;
      box-shadow: 0 10px 20px rgba(6, 199, 85, 0.22);
    }

    .linemo-line-card strong {
      font-size: 14px;
      line-height: 1.35;
    }

    .linemo-line-card span {
      color: #0f604f;
      font-size: 11px;
      font-weight: 900;
      line-height: 1.45;
    }

    @media (max-width: 860px) {
      .japan-sim-chart,
      .iijmio-chart,
      .linemo-chart {
        grid-template-columns: 1fr;
      }

      .japan-sim-formula-card,
      .iijmio-choice-panel,
      .linemo-line-card {
        justify-self: stretch;
      }
    }

    @media (max-width: 720px) {
      .japan-sim-formula-card b {
        font-size: 20px;
      }

      .linemo-step-visual {
        grid-template-columns: 1fr 24px 1fr;
      }
    }



    /* v85: 補足要素を棒グラフ直前へ寄せ、主役のグラフを読みやすく調整 */
    .japan-sim-chart,
    .iijmio-chart {
      grid-template-columns: 1fr;
      align-items: stretch;
      gap: 12px;
    }

    .japan-sim-formula-card {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 10px 12px;
      padding: 12px 14px;
      border-radius: 16px;
    }

    .japan-sim-formula-card span {
      color: #0f604f;
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }

    .japan-sim-formula-card b {
      margin: 0;
      font-size: clamp(18px, 2.2vw, 22px);
      line-height: 1.15;
    }

    .japan-sim-formula-card small {
      justify-self: end;
      max-width: 240px;
      line-height: 1.45;
    }

    .iijmio-choice-panel {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 10px;
      padding: 10px 12px;
      border-radius: 14px;
      background: #f8fbff;
      border: 1px solid #dbe8fb;
    }

    .iijmio-choice-panel strong {
      margin-right: 4px;
      font-size: 13px;
      white-space: nowrap;
    }

    .iijmio-choice-panel small {
      flex: 1 1 220px;
      min-width: 180px;
      color: #475569;
    }

    .iijmio-choice-chip {
      min-height: auto;
      padding: 0 0 0 10px;
      border: none;
      border-left: 1px solid #bdd7fb;
      border-radius: 0;
      background: transparent;
      color: #155bb2;
      font-size: 12px;
      font-weight: 950;
      line-height: 1.35;
      box-shadow: none;
      cursor: default;
    }

    .iijmio-choice-panel strong + .iijmio-choice-chip {
      border-left: none;
      padding-left: 0;
    }

    .linemo-chart {
      grid-template-columns: minmax(0, 1fr) 128px;
      gap: 14px;
      align-items: center;
    }

    .linemo-line-card {
      padding: 12px 10px;
      border-radius: 16px;
      gap: 6px;
      box-shadow: none;
    }

    .linemo-line-icon {
      width: 42px;
      height: 42px;
      border-radius: 14px;
      font-size: 11px;
    }

    .linemo-line-card strong {
      font-size: 13px;
    }

    @media (max-width: 860px) {
      .linemo-chart {
        grid-template-columns: 1fr;
      }

      .linemo-line-card {
        justify-self: stretch;
      }
    }

    @media (max-width: 720px) {
      .japan-sim-formula-card {
        grid-template-columns: 1fr;
        align-items: start;
      }

      .japan-sim-formula-card small {
        justify-self: start;
        max-width: none;
      }

      .iijmio-choice-panel {
        align-items: stretch;
      }

      .iijmio-choice-panel strong,
      .iijmio-choice-panel small {
        flex: 1 1 100%;
        min-width: 0;
      }
    }

  

    /* v87: 操作ボタンと非リンクラベルの見た目を分離 */
    .service-detail-label {
      min-height: 46px;
      padding: 0 18px;
      border-radius: 14px;
      border: 1px solid transparent;
      line-height: 1;
      white-space: nowrap;
      box-shadow: 0 12px 24px rgba(31, 211, 156, 0.18);
    }

    .service-detail-label::after {
      content: "→";
      margin-left: 10px;
      font-size: 16px;
      line-height: 1;
    }

    .service-detail-fixed[open] .service-detail-label::after {
      content: "－";
      font-size: 16px;
    }

    .service-official-link-inline {
      min-height: 46px;
      padding: 0 18px;
      border-radius: 14px;
      border-color: #cbd8e6;
      line-height: 1;
      white-space: nowrap;
      box-shadow: 0 8px 18px rgba(23, 32, 51, 0.04);
    }

    .service-official-link-inline::after {
      content: "↗";
      margin-left: 8px;
      font-size: 13px;
      line-height: 1;
    }

    .iijmio-choice-panel {
      display: grid;
      gap: 6px;
      padding: 14px 16px;
      border: none;
      border-left: 3px solid #5b93e4;
      border-radius: 0;
      background: #f8fbff;
    }

    .iijmio-choice-line {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 7px;
      color: #334155;
      font-size: 13px;
      line-height: 1.55;
    }

    .iijmio-choice-line strong {
      color: #155bb2;
      font-size: 13px;
      font-weight: 950;
      white-space: nowrap;
    }

    .iijmio-choice-line span {
      color: #334155;
      font-weight: 850;
    }

    .iijmio-choice-divider {
      color: #94a3b8 !important;
      font-weight: 700 !important;
    }

    @media (max-width: 720px) {
      .service-detail-label,
      .service-official-link-inline {
        width: 100%;
        justify-content: center;
      }

      .iijmio-choice-panel {
        padding: 12px 14px;
      }

      .iijmio-choice-line {
        gap: 6px;
      }
    }


    /* v89: povo2.0 3GB topping visual card */
    .povo-featured.visual {
      display: block;
      padding: 0;
      overflow: hidden;
      border-color: #f2d7a5;
      background: #ffffff;
      box-shadow: 0 18px 38px rgba(180, 124, 26, 0.08);
    }

    .povo-top {
      display: grid;
      grid-template-columns: 325px minmax(0, 1fr);
      align-items: stretch;
    }

    .povo-side {
      background: linear-gradient(180deg, #1f3347 0%, #112131 100%);
      color: #ffffff;
      padding: 26px 26px 22px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .povo-badge {
      display: inline-flex;
      align-items: center;
      align-self: flex-start;
      min-height: 30px;
      padding: 6px 12px;
      border-radius: 999px;
      background: linear-gradient(135deg, #ffd36a 0%, #ffb029 100%);
      color: #513400;
      font-size: 12px;
      font-weight: 950;
      letter-spacing: 0.01em;
    }

    .povo-badge::before {
      content: "◌";
      margin-right: 6px;
      font-size: 12px;
      font-weight: 1000;
    }

    .povo-price-wrap {
      display: flex;
      align-items: flex-end;
      gap: 4px;
      margin-top: 2px;
    }

    .povo-price-main {
      font-size: clamp(52px, 7vw, 78px);
      font-weight: 1000;
      letter-spacing: -0.06em;
      line-height: 0.92;
    }

    .povo-price-sub {
      font-size: 20px;
      font-weight: 900;
      line-height: 1.2;
      margin-bottom: 10px;
      opacity: 0.95;
    }

    .povo-price-note {
      color: rgba(236, 243, 250, 0.9);
      font-size: 13px;
      font-weight: 800;
      line-height: 1.6;
    }

    .povo-name {
      margin: 8px 0 0;
      color: #ffffff;
      font-size: 17px;
      line-height: 1.4;
      letter-spacing: -0.01em;
    }

    .povo-main {
      padding: 22px 26px 18px;
      display: grid;
      gap: 18px;
      background: linear-gradient(180deg, #ffffff 0%, #fffbf4 100%);
    }

    .povo-lead {
      margin: 0;
      padding-left: 16px;
      border-left: 3px solid #ffb029;
      color: #475569;
      font-size: 14px;
      line-height: 1.75;
    }

    .povo-usage-visual {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 220px minmax(0, 1fr);
      gap: 14px;
      align-items: stretch;
    }

    .povo-month-card,
    .povo-flow-card {
      border: 1px solid #eadbbd;
      border-radius: 18px;
      background: #ffffff;
      padding: 16px;
      display: grid;
      align-content: center;
      justify-items: center;
      text-align: center;
      min-height: 150px;
    }

    .povo-month-card span,
    .povo-flow-card span,
    .povo-flow-card small,
    .povo-month-card small {
      color: #64748b;
      font-size: 12px;
      font-weight: 800;
      line-height: 1.5;
    }

    .povo-month-card strong,
    .povo-flow-card b {
      display: block;
      margin: 6px 0 4px;
      color: #172033;
      font-size: clamp(28px, 3.5vw, 40px);
      font-weight: 1000;
      line-height: 1.05;
      letter-spacing: -0.045em;
    }

    .povo-flow-card strong {
      display: block;
      margin-top: 6px;
      color: #172033;
      font-size: 19px;
      line-height: 1.25;
      letter-spacing: -0.025em;
    }

    .povo-month-card.zero {
      background: linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
    }

    .povo-month-card.paid {
      background: linear-gradient(180deg, #fffaf0 0%, #fff5e4 100%);
      border-color: #f5d69e;
    }

    .povo-flow-card {
      background: linear-gradient(180deg, #fff9ec 0%, #fff3d6 100%);
      border-color: #f5cf84;
      position: relative;
    }

    .povo-flow-card::before,
    .povo-flow-card::after {
      content: "";
      position: absolute;
      top: 50%;
      width: 12px;
      height: 12px;
      margin-top: -6px;
      border-top: 2px solid #e0b35f;
      border-right: 2px solid #e0b35f;
      transform: rotate(45deg);
    }

    .povo-flow-card::before {
      left: -26px;
    }

    .povo-flow-card::after {
      right: -26px;
    }

    .povo-flow-kicker {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 26px;
      padding: 4px 10px;
      border-radius: 999px;
      background: #fff2cd;
      color: #9a6500 !important;
      font-size: 11px !important;
      font-weight: 950 !important;
    }

    .povo-mini-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }

    .povo-mini {
      display: grid;
      gap: 6px;
    }

    .povo-mini strong {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      line-height: 1.5;
    }

    .povo-mini.merit strong {
      color: #b7791f;
    }

    .povo-mini.caution strong {
      color: #ef6c3e;
    }

    .povo-mini.merit strong::before,
    .povo-mini.caution strong::before {
      content: "";
      width: 10px;
      height: 10px;
      border-radius: 999px;
      flex: 0 0 auto;
    }

    .povo-mini.merit strong::before {
      background: #f0b34a;
    }

    .povo-mini.caution strong::before {
      background: #ff7b4a;
    }

    .povo-mini p {
      margin: 0;
      color: #334155;
      font-size: 12px;
      line-height: 1.7;
    }

    .povo-action-row {
      background: #fffbf4;
    }

    .povo-action-row .service-detail-label {
      background: linear-gradient(135deg, #ffbf47 0%, #ff9f1c 100%);
      color: #4a3100;
      box-shadow: 0 12px 26px rgba(255, 176, 41, 0.22);
    }

    .povo-action-row .service-official-link-inline {
      color: #9a6500;
      border-color: #efcf92;
      background: #ffffff;
    }

    .povo-action-row.service-action-row-fixed .sim-plan-detail-body {
      background: #fffbf4;
    }

    @media (max-width: 1180px) {
      .povo-top {
        grid-template-columns: 280px minmax(0, 1fr);
      }

      .povo-usage-visual {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

    @media (max-width: 860px) {
      .povo-top {
        grid-template-columns: 1fr;
      }

      .povo-usage-visual {
        grid-template-columns: 1fr;
      }

      .povo-flow-card::before,
      .povo-flow-card::after {
        display: none;
      }
    }

    @media (max-width: 720px) {
      .povo-side,
      .povo-main {
        padding: 20px 18px;
      }

      .povo-mini-grid {
        grid-template-columns: 1fr;
      }

      .povo-price-main {
        font-size: 62px;
      }
    }

  

    /* v90: povo2.0 purchase-unit flow clarification */
    .povo-lead strong {
      color: #9a6500;
      font-weight: 950;
    }

    .povo-charge-flow {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1.08fr) 42px minmax(0, 1.08fr);
      gap: 0;
      align-items: stretch;
    }

    .povo-flow-arrow {
      display: grid;
      place-items: center;
      color: #d79a32;
      font-size: 30px;
      font-weight: 800;
      line-height: 1;
    }

    .povo-state-card {
      border: 1px solid #eadbbd;
      border-radius: 18px;
      background: #ffffff;
      padding: 16px;
      display: grid;
      align-content: center;
      justify-items: center;
      text-align: center;
      min-height: 160px;
    }

    .povo-state-card.zero {
      background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    }

    .povo-state-card.buy {
      background: linear-gradient(180deg, #fff9ec 0%, #fff2d6 100%);
      border-color: #f5cf84;
      box-shadow: 0 12px 24px rgba(255, 176, 41, 0.11);
    }

    .povo-state-card.after {
      background: linear-gradient(180deg, #ffffff 0%, #fffaf1 100%);
      border-color: #f1d8a8;
    }

    .povo-state-kicker {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 26px;
      padding: 4px 10px;
      border-radius: 999px;
      background: #eef2f7;
      color: #475569;
      font-size: 11px;
      font-weight: 950;
    }

    .povo-state-card.buy .povo-state-kicker {
      background: #fff2cd;
      color: #9a6500;
    }

    .povo-state-card.after .povo-state-kicker {
      background: #fff7ed;
      color: #b45309;
    }

    .povo-state-card strong {
      display: block;
      margin: 8px 0 4px;
      color: #172033;
      font-size: clamp(26px, 3.2vw, 38px);
      font-weight: 1000;
      line-height: 1.08;
      letter-spacing: -0.045em;
    }

    .povo-state-card.buy strong {
      color: #111827;
    }

    .povo-state-card span,
    .povo-state-card small {
      color: #64748b;
      font-size: 12px;
      font-weight: 850;
      line-height: 1.55;
    }

    .povo-state-card small {
      display: block;
      max-width: 210px;
    }

    @media (max-width: 1040px) {
      .povo-charge-flow {
        grid-template-columns: 1fr;
        gap: 10px;
      }

      .povo-flow-arrow {
        display: none;
      }
    }


/* preview v92: mineo Mypita visual card */
.mineo-featured.visual {
  display: block;
  padding: 0;
  overflow: hidden;
  border-color: #cbe7bd;
  background: #ffffff;
  box-shadow: 0 18px 38px rgba(64, 126, 51, 0.08);
}

.mineo-top {
  display: grid;
  grid-template-columns: 325px minmax(0, 1fr);
  align-items: stretch;
}

.mineo-side {
  background: linear-gradient(180deg, #183d2c 0%, #112a28 100%);
  color: #ffffff;
  padding: 26px 26px 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mineo-badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 30px;
  padding: 6px 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, #9bd85d 0%, #ffd166 100%);
  color: #254000;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.01em;
}

.mineo-badge::before {
  content: "♢";
  margin-right: 6px;
  font-size: 12px;
  font-weight: 1000;
}

.mineo-price-wrap {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  margin-top: 2px;
}

.mineo-price-main {
  font-size: clamp(52px, 7vw, 78px);
  font-weight: 1000;
  letter-spacing: -0.06em;
  line-height: 0.92;
}

.mineo-price-sub {
  font-size: 20px;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 10px;
  opacity: 0.95;
}

.mineo-price-note {
  color: rgba(236, 250, 232, 0.9);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.6;
}

.mineo-name {
  margin: 8px 0 0;
  color: #ffffff;
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: -0.01em;
}

.mineo-main {
  padding: 22px 26px 18px;
  display: grid;
  gap: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfff8 100%);
}

.mineo-lead {
  margin: 0;
  padding-left: 16px;
  border-left: 3px solid #9bd85d;
  color: #475569;
  font-size: 14px;
  line-height: 1.75;
}

.mineo-choice-panel {
  display: grid;
  gap: 6px;
  padding: 14px 16px;
  border: none;
  border-left: 3px solid #88c94b;
  border-radius: 0;
  background: #f8fff4;
}

.mineo-choice-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 7px;
  color: #334155;
  font-size: 13px;
  line-height: 1.55;
}

.mineo-choice-line strong {
  color: #3f7c21;
  font-size: 13px;
  font-weight: 950;
  white-space: nowrap;
}

.mineo-choice-line span {
  color: #334155;
  font-weight: 850;
}

.mineo-choice-divider {
  color: #94a3b8 !important;
  font-weight: 700 !important;
}

.mineo-chart {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: stretch;
}

.mineo-bars {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
}

.mineo-bar-item {
  display: grid;
  gap: 8px;
  justify-items: stretch;
  align-items: end;
}

.mineo-bar-price {
  color: #172033;
  font-size: 13px;
  font-weight: 950;
  text-align: center;
}

.mineo-bar {
  position: relative;
  overflow: hidden;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(180deg, #a8dc63 0%, #4b9b39 100%);
  box-shadow: inset 0 -1px 0 rgba(255,255,255,0.25);
}

.mineo-bar::after {
  content: "選択";
  position: absolute;
  left: 50%;
  bottom: 8px;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.92);
  font-size: 10px;
  font-weight: 1000;
  letter-spacing: 0.06em;
  line-height: 1;
}

.mineo-bar.h1 { height: 42px; }
.mineo-bar.h2 { height: 56px; }
.mineo-bar.h3 { height: 76px; }
.mineo-bar.h4 { height: 96px; }
.mineo-bar.h5 { height: 118px; }

.mineo-bar-label {
  color: #64748b;
  font-size: 12px;
  font-weight: 850;
  text-align: center;
}

.mineo-feature-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.mineo-feature-pill {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 1px solid #dbead2;
  border-radius: 16px;
  background: #ffffff;
  padding: 12px;
}

.mineo-feature-pill strong {
  color: #3f7c21;
  font-size: 13px;
  font-weight: 950;
  line-height: 1.35;
}

.mineo-feature-pill span {
  color: #475569;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.5;
}

.mineo-feature-pill.high {
  background: #f8fff4;
  border-color: #cce7bc;
}

.mineo-feature-pill.share {
  background: #fffdf4;
  border-color: #f2dfa5;
}

.mineo-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.mineo-mini {
  display: grid;
  gap: 6px;
}

.mineo-mini strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  line-height: 1.5;
}

.mineo-mini.merit strong {
  color: #3f7c21;
}

.mineo-mini.caution strong {
  color: #ef6c3e;
}

.mineo-mini.merit strong::before,
.mineo-mini.caution strong::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  flex: 0 0 auto;
}

.mineo-mini.merit strong::before {
  background: #88c94b;
}

.mineo-mini.caution strong::before {
  background: #ff7b4a;
}

.mineo-mini p {
  margin: 0;
  color: #334155;
  font-size: 12px;
  line-height: 1.7;
}

.mineo-action-row {
  background: #fbfff8;
}

.mineo-action-row .service-detail-label {
  background: linear-gradient(135deg, #9bd85d 0%, #ffd166 100%);
  color: #254000;
  box-shadow: 0 12px 26px rgba(136, 201, 75, 0.18);
}

.mineo-action-row .service-official-link-inline {
  color: #3f7c21;
  border-color: #cbe7bd;
  background: #ffffff;
}

.mineo-action-row.service-action-row-fixed .sim-plan-detail-body {
  background: #fbfff8;
}

.mineo-detail-full .sim-detail-block strong::before {
  background: #f0fbe8;
  color: #4b9b39;
}

@media (max-width: 1180px) {
  .mineo-top {
    grid-template-columns: 280px minmax(0, 1fr);
  }

  .mineo-feature-strip {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .mineo-top {
    grid-template-columns: 1fr;
  }

  .mineo-bars {
    grid-template-columns: repeat(5, minmax(66px, 1fr));
    overflow-x: auto;
    padding-bottom: 2px;
  }
}

@media (max-width: 720px) {
  .mineo-side,
  .mineo-main {
    padding: 20px 18px;
  }

  .mineo-price-main {
    font-size: 62px;
  }

  .mineo-mini-grid {
    grid-template-columns: 1fr;
  }

  .mineo-choice-panel {
    padding: 12px 14px;
  }

  .mineo-choice-line {
    gap: 6px;
  }

  .mineo-bar-price {
    font-size: 12px;
  }
}


    /* preview compact: guide article removed, keep official source info small */
    .compact-review-check {
      margin-top: 14px;
      padding: 14px 16px;
      border-radius: 16px;
      box-shadow: none;
      background: rgba(255, 255, 255, 0.74);
    }

    .compact-review-check .tab-page-head {
      margin-bottom: 8px;
      gap: 5px;
    }

    .compact-review-check h2 {
      font-size: 16px;
      letter-spacing: -0.02em;
    }

    .compact-review-check .muted {
      margin: 0;
      color: #64748b;
      font-size: 12px;
      line-height: 1.6;
    }

    .compact-review-check .source-link-box {
      margin-top: 8px;
      padding: 10px 12px;
      border-radius: 14px;
      gap: 6px;
      font-size: 11px;
      line-height: 1.55;
      background: rgba(251, 253, 255, 0.82);
    }

    .compact-review-check .source-link-box strong {
      font-size: 11px;
      margin-right: 2px;
    }

    .compact-review-check .source-link-box a {
      min-height: 28px;
      padding: 4px 9px;
      font-size: 11px;
    }

    .compact-review-check .source-link-box span {
      flex: 1 1 100%;
      color: #64748b;
      font-size: 11px;
    }

    .sim-faq-answer .sim-compact-list {
      margin-top: 10px;
    }

    @media (max-width: 560px) {
      .compact-review-check {
        padding: 12px;
      }

      .compact-review-check .source-link-box {
        align-items: stretch;
      }
    }


    /* v93: current bill savings comparison guide */
    .current-price-guide {
      margin: 0 0 16px;
      padding: 16px;
      border: 1px solid #c8dfff;
      border-radius: 18px;
      background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    }

    .current-price-guide-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 12px;
      align-items: start;
      margin-bottom: 12px;
    }

    .current-price-guide-head h4 {
      margin: 0;
      color: #172033;
      font-size: 18px;
      line-height: 1.35;
      letter-spacing: -0.025em;
    }

    .current-price-guide-head p {
      margin: 4px 0 0;
      color: #475569;
      font-size: 12px;
      line-height: 1.65;
    }

    .current-price-guide-head span {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 5px 10px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: #0f604f;
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }

    .current-savings-wrap {
      overflow-x: auto;
      border: 1px solid #dbe8fb;
      border-radius: 16px;
      background: #ffffff;
    }

    .current-savings-table {
      width: 100%;
      min-width: 760px;
      border-collapse: collapse;
    }

    .current-savings-table th,
    .current-savings-table td {
      padding: 12px 11px;
      border-bottom: 1px solid #e6eef8;
      text-align: left;
      vertical-align: middle;
      font-size: 12px;
      line-height: 1.55;
    }

    .current-savings-table th {
      background: #f8fbff;
      color: #334155;
      font-weight: 950;
      white-space: nowrap;
    }

    .current-savings-table tr:last-child td {
      border-bottom: none;
    }

    .current-savings-table td strong {
      display: block;
      color: #172033;
      font-size: 13px;
      line-height: 1.35;
    }

    .current-savings-table td small {
      display: block;
      margin-top: 2px;
      color: #64748b;
      font-size: 11px;
      line-height: 1.45;
      font-weight: 750;
    }

    .current-savings-price {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 4px 9px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: #0f604f;
      font-weight: 950;
      white-space: nowrap;
    }

    .current-savings-amount {
      color: #0f604f;
      font-weight: 950;
      white-space: nowrap;
    }

    .current-savings-amount.low {
      color: #64748b;
    }

    .current-savings-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 32px;
      padding: 6px 10px;
      border-radius: 999px;
      border: 1px solid #bdd7fb;
      background: #ffffff;
      color: #155bb2;
      font-size: 12px;
      font-weight: 950;
      text-decoration: none;
      white-space: nowrap;
    }

    .current-savings-link::after {
      content: "↓";
      margin-left: 6px;
      font-size: 11px;
    }

    .current-price-guide-note {
      margin: 10px 0 0;
      color: #64748b;
      font-size: 11px;
      line-height: 1.6;
    }

    @media (max-width: 680px) {
      .current-price-guide {
        padding: 12px;
      }

      .current-price-guide-head {
        grid-template-columns: 1fr;
        gap: 8px;
      }

      .current-price-guide-head span {
        width: fit-content;
      }
    }


    /* inserted: savings slider + ranking guide */
    .current-price-guide.slider-ranking-guide {
      margin: 0 0 16px;
      padding: 0;
      border: none;
      border-radius: 0;
      background: transparent;
    }

    .savings-combo {
      display: grid;
      gap: 14px;
      margin: 0 0 16px;
    }

    .slider-panel {
      border-radius: 30px;
      background: linear-gradient(160deg,#0f1e36 0%,#1a3a5c 56%,#0d3347 100%);
      padding: 28px;
      color: #fff;
      position: relative;
      overflow: hidden;
    }

    .slider-panel::before {
      content: "";
      position: absolute;
      right: -80px;
      top: -80px;
      width: 260px;
      height: 260px;
      border-radius: 999px;
      background: radial-gradient(circle,rgba(77,217,190,.23) 0%,transparent 70%);
    }

    .slider-panel > * {
      position: relative;
      z-index: 1;
    }

    .slider-label {
      color: rgba(255,255,255,.58);
      font-size: 12px;
      font-weight: 950;
      letter-spacing: .05em;
      margin-bottom: 6px;
    }

    .slider-current {
      margin: 0 0 22px;
      font-size: clamp(28px,4.7vw,58px);
      line-height: 1.08;
      letter-spacing: -.055em;
      font-weight: 950;
    }

    .slider-current span {
      color: #4dd9be;
    }

    .range {
      width: 100%;
      appearance: none;
      -webkit-appearance: none;
      height: 8px;
      border-radius: 999px;
      background: rgba(255,255,255,.18);
      outline: none;
      cursor: pointer;
    }

    .range::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 34px;
      height: 34px;
      border-radius: 999px;
      background: #fff;
      box-shadow: 0 6px 18px rgba(0,0,0,.32);
      transition: transform .12s;
    }

    .range::-webkit-slider-thumb:active {
      transform: scale(1.12);
    }

    .range::-moz-range-thumb {
      width: 34px;
      height: 34px;
      border: 0;
      border-radius: 999px;
      background: #fff;
      box-shadow: 0 6px 18px rgba(0,0,0,.32);
    }

    .ticks {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      margin: 8px 0 18px;
      color: rgba(255,255,255,.5);
      font-size: 11px;
      font-weight: 900;
    }

    .saving-hero {
      display: grid;
      grid-template-columns: minmax(0,1fr) auto;
      gap: 16px;
      align-items: center;
      border: 1px solid rgba(77,217,190,.38);
      border-radius: 22px;
      background: linear-gradient(135deg,rgba(15,159,134,.25),rgba(15,159,134,.09));
      padding: 20px 22px;
    }

    .saving-label {
      color: rgba(255,255,255,.66);
      font-size: 13px;
      font-weight: 900;
      margin-bottom: 5px;
    }

    .saving-value {
      color: #4dd9be;
      font-size: clamp(34px,6vw,58px);
      line-height: 1;
      letter-spacing: -.06em;
      font-weight: 950;
    }

    .saving-sub {
      color: rgba(255,255,255,.55);
      font-size: 12px;
      font-weight: 800;
      margin-top: 8px;
    }

    .annual-badge {
      width: 96px;
      height: 96px;
      border-radius: 999px;
      display: grid;
      place-items: center;
      text-align: center;
      background: rgba(15,159,134,.24);
      border: 1px solid rgba(77,217,190,.45);
      color: #4dd9be;
      font-size: 18px;
      font-weight: 950;
      line-height: 1.08;
    }

    .annual-badge span {
      display: block;
      color: rgba(255,255,255,.56);
      font-size: 9px;
      line-height: 1.25;
      margin-top: 4px;
    }

    .combo-body {
      display: grid;
      grid-template-columns: minmax(0,1.1fr) 300px;
      gap: 14px;
      align-items: start;
    }

    .rank-list {
      display: grid;
      gap: 10px;
    }

    .rank-card {
      display: grid;
      grid-template-columns: 48px minmax(0,1fr) auto auto;
      gap: 14px;
      align-items: center;
      border: 1px solid #dbe8fb;
      border-radius: 22px;
      background: #fff;
      padding: 14px 16px;
      transition: box-shadow .18s,border-color .18s,transform .18s;
    }

    .rank-card:hover {
      border-color: #bdd7fb;
      box-shadow: 0 10px 24px rgba(29,111,214,.08);
      transform: translateY(-1px);
    }

    .rank-card.best {
      border-color: #bdf4e2;
      background: linear-gradient(180deg,#fff,#f5fdf9);
      box-shadow: 0 14px 30px rgba(15,159,134,.08);
    }

    .rank-no {
      width: 42px;
      height: 42px;
      border-radius: 16px;
      display: grid;
      place-items: center;
      background: #eef6ff;
      color: #155bb2;
      font-size: 13px;
      font-weight: 950;
    }

    .rank-card.best .rank-no {
      background: var(--accent-soft);
      color: #0f604f;
    }

    .rank-main strong {
      display: block;
      color: #172033;
      font-size: 17px;
      line-height: 1.35;
    }

    .rank-main span {
      display: block;
      color: #64748b;
      font-size: 12px;
      font-weight: 850;
      line-height: 1.5;
    }

    .rank-save {
      text-align: right;
      color: #0f604f;
      font-size: clamp(24px,3vw,34px);
      line-height: 1.05;
      font-weight: 950;
      letter-spacing: -.05em;
      white-space: nowrap;
    }

    .rank-save small {
      display: block;
      color: #64748b;
      font-size: 10px;
      font-weight: 850;
      letter-spacing: 0;
      margin-top: 4px;
    }

    .rank-action {
      appearance: none;
      border: 1px solid #bdd7fb;
      background: #fff;
      color: #155bb2;
      border-radius: 999px;
      min-height: 38px;
      padding: 8px 12px;
      font: inherit;
      font-size: 12px;
      font-weight: 950;
      cursor: pointer;
      white-space: nowrap;
    }

    .rank-action::after {
      content: " ↓";
      font-size: 11px;
      opacity: .75;
    }

    .side-panel {
      display: grid;
      gap: 10px;
    }

    .side-box {
      border: 1px solid #dbe8fb;
      border-radius: 22px;
      background: #fff;
      padding: 16px;
    }

    .side-box.emphasis {
      background: linear-gradient(180deg,#fff,#f5fdf9);
      border-color: #bdf4e2;
    }

    .side-box h3 {
      margin: 0 0 8px;
      font-size: 16px;
      line-height: 1.35;
      letter-spacing: -.02em;
    }

    .side-box p {
      margin: 0;
      color: #475569;
      font-size: 12px;
      line-height: 1.65;
    }

    .side-box strong {
      color: #0f604f;
      font-weight: 950;
    }

    .btn-row {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 12px;
    }

    #mobile-plan .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 36px;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid #bdd7fb;
      background: #fff;
      color: #155bb2;
      text-decoration: none;
      font-size: 12px;
      font-weight: 950;
    }

    #mobile-plan .btn::after {
      content: "↓";
      margin-left: 6px;
      font-size: 11px;
      opacity: .7;
    }

    .combo-note {
      border: 1px dashed #dbe4ef;
      border-radius: 18px;
      background: #fbfdff;
      padding: 12px 14px;
      color: #64748b;
      font-size: 11px;
      line-height: 1.6;
      margin-top: 10px;
    }

    .detail-highlight {
      animation: detailPulse 2.2s ease-out 1;
    }

    @keyframes detailPulse {
      0% {
        box-shadow: 0 0 0 0 rgba(15,159,134,.25);
        border-color: #42c8a0;
        transform: translateY(-2px);
      }
      55% {
        box-shadow: 0 0 0 5px rgba(15,159,134,.14), 0 18px 40px rgba(15,159,134,.10);
        border-color: #42c8a0;
      }
      100% {
        box-shadow: inherit;
        transform: none;
      }
    }

    @media (max-width: 980px) {
      .combo-body {
        grid-template-columns: 1fr;
      }

      .side-panel {
        grid-template-columns: 1fr 1fr;
      }
    }

    @media (max-width: 680px) {
      .slider-panel {
        padding: 20px;
        border-radius: 22px;
      }

      .saving-hero {
        grid-template-columns: 1fr;
      }

      .annual-badge {
        display: none;
      }

      .rank-card {
        grid-template-columns: 42px minmax(0,1fr);
      }

      .rank-save {
        grid-column: 2;
        text-align: left;
      }

      .rank-action {
        grid-column: 2;
        justify-self: start;
      }

      .side-panel {
        grid-template-columns: 1fr;
      }

      .ticks {
        font-size: 10px;
      }
    }



    /* revision: remove guide boxes, make whole ranking row clickable */
    .combo-body {
      grid-template-columns: 1fr !important;
    }

    .side-panel {
      display: none !important;
    }

    .rank-card {
      width: 100%;
      appearance: none;
      -webkit-appearance: none;
      text-align: left;
      cursor: pointer;
      grid-template-columns: 48px minmax(0, 1fr) auto 34px !important;
      border: 1px solid #dbe8fb;
      font: inherit;
      color: inherit;
    }

    .rank-card::after {
      content: "↓";
      width: 34px;
      height: 34px;
      border-radius: 999px;
      display: grid;
      place-items: center;
      border: 1px solid #bdd7fb;
      color: #155bb2;
      background: #ffffff;
      font-size: 12px;
      font-weight: 950;
    }

    .rank-card:focus-visible {
      outline: 3px solid rgba(29,111,214,.24);
      outline-offset: 3px;
    }

    .rank-save {
      display: grid;
      gap: 2px;
      justify-items: end;
      text-align: right;
      color: #0f604f;
      white-space: nowrap;
    }

    .rank-save-label {
      color: #64748b;
      font-size: 10px;
      font-weight: 900;
      line-height: 1.1;
      letter-spacing: 0;
    }

    .rank-save-amount {
      color: #0f604f;
      font-size: clamp(24px,3vw,34px);
      line-height: 1.04;
      font-weight: 950;
      letter-spacing: -.05em;
    }

    .rank-save-unit {
      color: #0f604f;
      font-size: 12px;
      font-weight: 950;
      line-height: 1.2;
    }

    .rank-action {
      display: none !important;
    }

    @media (max-width: 680px) {
      .rank-card {
        grid-template-columns: 42px minmax(0,1fr) 34px !important;
      }

      .rank-save {
        grid-column: 2 / 4;
        justify-items: start;
        text-align: left;
      }

      .rank-card::after {
        grid-column: 3;
        grid-row: 1;
      }
    }


    /* revision v3: compact left slider + right difference list */
    .compact-savings-guide {
      margin: 0 0 16px;
      padding: 0;
      border: none;
      background: transparent;
    }

    .compact-savings-layout {
      display: grid;
      grid-template-columns: minmax(280px, 0.9fr) minmax(420px, 1.35fr);
      gap: 14px;
      align-items: stretch;
    }

    .compact-slider-panel,
    .compact-diff-panel {
      border: 1px solid #dbe8fb;
      border-radius: 24px;
      background: #ffffff;
      box-shadow: 0 14px 30px rgba(29,111,214,.05);
    }

    .compact-slider-panel {
      display: grid;
      gap: 14px;
      align-content: start;
      padding: 22px;
      color: #ffffff;
      border-color: rgba(77,217,190,.30);
      background: linear-gradient(160deg,#0f1e36 0%,#1a3a5c 56%,#0d3347 100%);
      position: relative;
      overflow: hidden;
    }

    .compact-slider-panel::after {
      content: "";
      position: absolute;
      right: -70px;
      top: -70px;
      width: 210px;
      height: 210px;
      border-radius: 999px;
      background: radial-gradient(circle,rgba(77,217,190,.22),transparent 70%);
    }

    .compact-slider-panel > * {
      position: relative;
      z-index: 1;
    }

    .compact-slider-label {
      color: rgba(255,255,255,.62);
      font-size: 12px;
      font-weight: 950;
      letter-spacing: .04em;
    }

    .compact-slider-current {
      margin: -4px 0 2px;
      font-size: clamp(42px, 5vw, 68px);
      line-height: 1;
      letter-spacing: -.06em;
      font-weight: 950;
    }

    .compact-slider-current span {
      color: #4dd9be;
    }

    .compact-slider-current small {
      margin-left: 4px;
      color: rgba(255,255,255,.92);
      font-size: 22px;
      letter-spacing: -.02em;
    }

    .compact-range {
      width: 100%;
      appearance: none;
      -webkit-appearance: none;
      height: 8px;
      border-radius: 999px;
      background: rgba(255,255,255,.18);
      outline: none;
      cursor: pointer;
    }

    .compact-range::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 32px;
      height: 32px;
      border-radius: 999px;
      background: #ffffff;
      box-shadow: 0 6px 18px rgba(0,0,0,.32);
    }

    .compact-range::-moz-range-thumb {
      width: 32px;
      height: 32px;
      border: 0;
      border-radius: 999px;
      background: #ffffff;
      box-shadow: 0 6px 18px rgba(0,0,0,.32);
    }

    .compact-ticks {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      color: rgba(255,255,255,.48);
      font-size: 10px;
      font-weight: 900;
    }

    .compact-saving-summary {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .compact-saving-summary > div {
      padding: 12px;
      border: 1px solid rgba(77,217,190,.34);
      border-radius: 16px;
      background: rgba(15,159,134,.15);
    }

    .compact-saving-summary span {
      display: block;
      color: rgba(255,255,255,.62);
      font-size: 10px;
      font-weight: 900;
      line-height: 1.3;
      margin-bottom: 4px;
    }

    .compact-saving-summary strong {
      display: block;
      color: #4dd9be;
      font-size: clamp(18px, 2.3vw, 28px);
      line-height: 1.08;
      letter-spacing: -.04em;
      font-weight: 950;
    }

    .compact-slider-note {
      margin: 0;
      color: rgba(255,255,255,.58);
      font-size: 11px;
      line-height: 1.55;
      font-weight: 800;
    }

    .compact-diff-panel {
      padding: 18px;
      display: grid;
      gap: 12px;
    }

    .compact-diff-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
    }

    .compact-diff-head h3 {
      margin: 0 0 3px;
      color: #172033;
      font-size: 20px;
      line-height: 1.3;
      letter-spacing: -.03em;
    }

    .compact-diff-head p {
      margin: 0;
      color: #64748b;
      font-size: 12px;
      line-height: 1.55;
    }

    .compact-diff-chip {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 5px 10px;
      border-radius: 999px;
      background: #e9fbf6;
      color: #0f604f;
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }

    .compact-rank-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 9px;
    }

    .rank-card {
      appearance: none;
      -webkit-appearance: none;
      width: 100%;
      min-height: 118px;
      display: grid;
      grid-template-columns: 34px minmax(0, 1fr);
      grid-template-rows: auto 1fr auto;
      gap: 7px 10px;
      align-items: start;
      padding: 13px;
      border: 1px solid #dbe8fb;
      border-radius: 18px;
      background: #ffffff;
      color: inherit;
      font: inherit;
      text-align: left;
      cursor: pointer;
      transition: box-shadow .18s, border-color .18s, transform .18s, background .18s;
    }

    .rank-card:hover {
      border-color: #bdd7fb;
      box-shadow: 0 10px 22px rgba(29,111,214,.08);
      transform: translateY(-1px);
    }

    .rank-card.best {
      border-color: #bdf4e2;
      background: linear-gradient(180deg,#ffffff 0%,#f7fffc 100%);
      box-shadow: 0 12px 26px rgba(15,159,134,.08);
    }

    .rank-card::after {
      content: "詳細へ";
      grid-column: 1 / 3;
      justify-self: start;
      align-self: end;
      display: inline-flex;
      align-items: center;
      min-height: 26px;
      padding: 3px 9px;
      border-radius: 999px;
      border: 1px solid #bdd7fb;
      color: #155bb2;
      background: #fff;
      font-size: 10px;
      font-weight: 950;
      line-height: 1;
    }

    .rank-card:focus-visible {
      outline: 3px solid rgba(29,111,214,.24);
      outline-offset: 3px;
    }

    .rank-no {
      width: 32px;
      height: 32px;
      border-radius: 13px;
      display: grid;
      place-items: center;
      background: #eef6ff;
      color: #155bb2;
      font-size: 12px;
      font-weight: 950;
      grid-row: 1 / 3;
    }

    .rank-card.best .rank-no {
      background: #e9fbf6;
      color: #0f604f;
    }

    .rank-main {
      min-width: 0;
      display: grid;
      gap: 2px;
    }

    .rank-main strong {
      display: block;
      color: #172033;
      font-size: 15px;
      line-height: 1.32;
      letter-spacing: -.02em;
    }

    .rank-main span {
      display: block;
      color: #64748b;
      font-size: 11px;
      font-weight: 850;
      line-height: 1.42;
    }

    .rank-mini {
      grid-column: 2;
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      align-items: center;
      min-width: 0;
    }

    .rank-mini-top {
      flex: 1 1 100%;
      color: #334155;
      font-size: 10px;
      line-height: 1.35;
      font-weight: 850;
    }

    .rank-mini-top strong {
      color: #0f604f;
      font-weight: 950;
      margin-right: 4px;
    }

    .rank-mini-bars {
      display: none;
    }

    .rank-mini-points {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
    }

    .rank-mini-point {
      display: inline-flex;
      align-items: center;
      min-height: 22px;
      padding: 3px 7px;
      border-radius: 999px;
      background: #eef6ff;
      color: #155bb2;
      font-size: 10px;
      font-weight: 950;
      white-space: nowrap;
    }

    .rank-mini-point.warn {
      background: #fff7ed;
      color: #b45309;
    }

    .rank-save {
      grid-column: 1 / 3;
      display: flex;
      align-items: baseline;
      justify-content: flex-end;
      gap: 6px;
      color: #0f604f;
      white-space: nowrap;
      text-align: right;
    }

    .rank-save-label {
      order: 2;
      color: #64748b;
      font-size: 10px;
      font-weight: 900;
      line-height: 1.1;
      letter-spacing: 0;
    }

    .rank-save-amount {
      order: 1;
      color: #0f604f;
      font-size: clamp(24px, 3vw, 34px);
      line-height: 1.04;
      font-weight: 950;
      letter-spacing: -.05em;
    }

    .rank-save-unit {
      display: none;
    }

    .rank-action {
      display: none !important;
    }

    .combo-note {
      margin: 0;
      border: 1px dashed #dbe4ef;
      border-radius: 14px;
      background: #fbfdff;
      padding: 9px 11px;
      color: #64748b;
      font-size: 10px;
      line-height: 1.55;
    }

    .side-panel {
      display: none !important;
    }

    .detail-highlight {
      animation: detailPulse 2.2s ease-out 1;
    }

    .sim-plan-row[id],
    .sim-plan-row.visual[id] {
      scroll-margin-top: 96px;
    }

    @keyframes detailPulse {
      0% {
        box-shadow: 0 0 0 0 rgba(15,159,134,.25);
        border-color: #42c8a0;
        transform: translateY(-2px);
      }
      55% {
        box-shadow: 0 0 0 5px rgba(15,159,134,.14), 0 18px 40px rgba(15,159,134,.10);
        border-color: #42c8a0;
      }
      100% {
        box-shadow: inherit;
        transform: none;
      }
    }

    @media (max-width: 1080px) {
      .compact-savings-layout {
        grid-template-columns: 1fr;
      }

      .compact-rank-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 680px) {
      .compact-slider-panel,
      .compact-diff-panel {
        border-radius: 20px;
        padding: 16px;
      }

      .compact-saving-summary {
        grid-template-columns: 1fr;
      }

      .compact-rank-list {
        grid-template-columns: 1fr;
      }

      .rank-card {
        min-height: auto;
      }

      .rank-save {
        justify-content: flex-start;
      }
    }


    /* revision v4: direct current price vs candidate price comparison */
    .direct-compare-guide {
      margin: 0 0 16px;
      padding: 0;
      border: none;
      background: transparent;
    }

    .direct-compare-panel {
      display: grid;
      gap: 14px;
      padding: 18px;
      border: 1px solid #c8dfff;
      border-radius: 24px;
      background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
      box-shadow: 0 14px 30px rgba(29,111,214,.05);
    }

    .direct-compare-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 14px;
      flex-wrap: wrap;
    }

    .direct-compare-head h3 {
      margin: 0 0 4px;
      color: #172033;
      font-size: 22px;
      line-height: 1.3;
      letter-spacing: -.035em;
    }

    .direct-compare-head p {
      margin: 0;
      color: #64748b;
      font-size: 12px;
      line-height: 1.55;
    }

    .direct-chip {
      display: inline-flex;
      align-items: center;
      min-height: 30px;
      padding: 5px 11px;
      border-radius: 999px;
      background: #e9fbf6;
      color: #0f604f;
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }

    .current-control {
      display: grid;
      grid-template-columns: minmax(260px, .72fr) minmax(360px, 1fr);
      gap: 12px;
      align-items: stretch;
    }

    .current-control-main {
      display: grid;
      gap: 7px;
      padding: 16px;
      border-radius: 20px;
      color: #ffffff;
      background: linear-gradient(150deg, #0f1e36 0%, #16385b 62%, #0d3347 100%);
      position: relative;
      overflow: hidden;
    }

    .current-control-main::after {
      content: "";
      position: absolute;
      right: -54px;
      top: -70px;
      width: 170px;
      height: 170px;
      border-radius: 999px;
      background: radial-gradient(circle, rgba(77,217,190,.22), transparent 70%);
    }

    .current-control-main > * {
      position: relative;
      z-index: 1;
    }

    .current-control-label {
      color: rgba(255,255,255,.64);
      font-size: 12px;
      font-weight: 950;
    }

    .current-input-wrap {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: baseline;
      gap: 6px;
    }

    .current-price-input {
      width: 100%;
      min-width: 0;
      border: 0;
      outline: none;
      background: transparent;
      color: #4dd9be;
      font: inherit;
      font-size: clamp(40px, 5vw, 62px);
      font-weight: 950;
      line-height: 1;
      letter-spacing: -.06em;
    }

    .current-input-wrap span {
      color: rgba(255,255,255,.92);
      font-size: 18px;
      font-weight: 950;
      white-space: nowrap;
    }

    .current-preset-row {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      padding: 12px;
      border: 1px solid #dbe8fb;
      border-radius: 20px;
      background: #ffffff;
    }

    .current-preset {
      appearance: none;
      border: 1px solid #bdd7fb;
      background: #ffffff;
      color: #155bb2;
      border-radius: 999px;
      min-height: 44px;
      padding: 8px 10px;
      font: inherit;
      font-size: 13px;
      font-weight: 950;
      cursor: pointer;
    }

    .current-preset.active,
    .current-preset:hover {
      border-color: #4dd9be;
      background: #e9fbf6;
      color: #0f604f;
    }

    .compare-card-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .compare-card {
      appearance: none;
      -webkit-appearance: none;
      width: 100%;
      display: grid;
      grid-template-columns: 42px minmax(0, 1fr);
      gap: 12px;
      align-items: start;
      padding: 14px;
      border: 1px solid #dbe8fb;
      border-radius: 20px;
      background: #ffffff;
      color: inherit;
      font: inherit;
      text-align: left;
      cursor: pointer;
      transition: border-color .18s, box-shadow .18s, transform .18s, background .18s;
    }

    .compare-card.best {
      border-color: #bdf4e2;
      background: linear-gradient(180deg, #ffffff 0%, #f7fffc 100%);
      box-shadow: 0 12px 26px rgba(15,159,134,.08);
    }

    .compare-card:hover {
      border-color: #bdd7fb;
      box-shadow: 0 10px 22px rgba(29,111,214,.08);
      transform: translateY(-1px);
    }

    .compare-card:focus-visible {
      outline: 3px solid rgba(29,111,214,.24);
      outline-offset: 3px;
    }

    .compare-no {
      width: 38px;
      height: 38px;
      border-radius: 15px;
      display: grid;
      place-items: center;
      background: #eef6ff;
      color: #155bb2;
      font-size: 12px;
      font-weight: 950;
    }

    .compare-card.best .compare-no {
      background: #e9fbf6;
      color: #0f604f;
    }

    .compare-body {
      display: grid;
      gap: 10px;
      min-width: 0;
    }

    .compare-title-row {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
    }

    .compare-title strong {
      display: block;
      color: #172033;
      font-size: 16px;
      line-height: 1.35;
      letter-spacing: -.02em;
    }

    .compare-title span {
      display: block;
      color: #64748b;
      font-size: 11px;
      font-weight: 850;
      line-height: 1.45;
    }

    .compare-arrow {
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
      min-height: 26px;
      padding: 4px 8px;
      border-radius: 999px;
      border: 1px solid #bdd7fb;
      color: #155bb2;
      background: #ffffff;
      font-size: 10px;
      font-weight: 950;
      white-space: nowrap;
    }

    .compare-equation {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr);
      align-items: stretch;
      gap: 8px;
    }

    .compare-box {
      display: grid;
      gap: 2px;
      align-content: center;
      min-width: 0;
      padding: 10px;
      border-radius: 14px;
      border: 1px solid #e6eef8;
      background: #fbfdff;
    }

    .compare-box.after {
      border-color: #bfe9db;
      background: #f5fffb;
    }

    .compare-box-label {
      color: #64748b;
      font-size: 10px;
      font-weight: 900;
      line-height: 1.25;
    }

    .compare-box-value {
      color: #172033;
      font-size: clamp(18px, 2.2vw, 27px);
      line-height: 1.08;
      letter-spacing: -.04em;
      font-weight: 950;
      white-space: nowrap;
    }

    .compare-box.after .compare-box-value {
      color: #0f604f;
    }

    .compare-op {
      align-self: center;
      justify-self: center;
      color: #94a3b8;
      font-size: 16px;
      font-weight: 950;
    }

    .compare-saving {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 10px;
      padding: 10px 12px;
      border: 1px solid #bdf4e2;
      border-radius: 16px;
      background: #ecfdf5;
    }

    .compare-saving span {
      color: #0f604f;
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }

    .compare-saving strong {
      color: #0f604f;
      font-size: clamp(26px, 3.5vw, 42px);
      line-height: 1;
      letter-spacing: -.055em;
      font-weight: 950;
      white-space: nowrap;
    }

    .compare-points {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
    }

    .compare-point {
      display: inline-flex;
      align-items: center;
      min-height: 22px;
      padding: 3px 7px;
      border-radius: 999px;
      background: #eef6ff;
      color: #155bb2;
      font-size: 10px;
      font-weight: 950;
      white-space: nowrap;
    }

    .compare-point.warn {
      background: #fff7ed;
      color: #b45309;
    }

    .direct-note {
      margin: 0;
      border: 1px dashed #dbe4ef;
      border-radius: 14px;
      background: #fbfdff;
      padding: 9px 11px;
      color: #64748b;
      font-size: 10px;
      line-height: 1.55;
    }

    .detail-highlight {
      animation: detailPulse 2.2s ease-out 1;
    }

    .sim-plan-row[id],
    .sim-plan-row.visual[id] {
      scroll-margin-top: 96px;
    }

    @keyframes detailPulse {
      0% {
        box-shadow: 0 0 0 0 rgba(15,159,134,.25);
        border-color: #42c8a0;
        transform: translateY(-2px);
      }
      55% {
        box-shadow: 0 0 0 5px rgba(15,159,134,.14), 0 18px 40px rgba(15,159,134,.10);
        border-color: #42c8a0;
      }
      100% {
        box-shadow: inherit;
        transform: none;
      }
    }

    @media (max-width: 1080px) {
      .current-control {
        grid-template-columns: 1fr;
      }

      .compare-card-grid {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 680px) {
      .direct-compare-panel {
        padding: 14px;
        border-radius: 20px;
      }

      .current-preset-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .compare-card {
        grid-template-columns: 38px minmax(0, 1fr);
        padding: 12px;
      }

      .compare-equation {
        grid-template-columns: 1fr;
      }

      .compare-op {
        transform: rotate(90deg);
      }

      .compare-saving {
        align-items: flex-start;
        flex-direction: column;
      }
    }


    /* revision v5: top current price is slider, remove current->after mini boxes */
    .current-slider-control {
      display: block;
    }

    .current-slider-panel {
      display: grid;
      gap: 13px;
      padding: 22px;
      border-radius: 22px;
      color: #ffffff;
      background: linear-gradient(150deg, #0f1e36 0%, #16385b 62%, #0d3347 100%);
      position: relative;
      overflow: hidden;
    }

    .current-slider-panel::after {
      content: "";
      position: absolute;
      right: -70px;
      top: -86px;
      width: 220px;
      height: 220px;
      border-radius: 999px;
      background: radial-gradient(circle, rgba(77,217,190,.22), transparent 70%);
    }

    .current-slider-panel > * {
      position: relative;
      z-index: 1;
    }

    .current-slider-label {
      color: rgba(255,255,255,.64);
      font-size: 12px;
      font-weight: 950;
    }

    .current-slider-value {
      margin: -2px 0 2px;
      font-size: clamp(46px, 6vw, 76px);
      line-height: 1;
      letter-spacing: -.06em;
      font-weight: 950;
    }

    .current-slider-value span {
      color: #4dd9be;
    }

    .current-slider-value small {
      margin-left: 6px;
      color: rgba(255,255,255,.92);
      font-size: 22px;
      letter-spacing: -.02em;
    }

    .current-price-range {
      width: 100%;
      appearance: none;
      -webkit-appearance: none;
      height: 9px;
      border-radius: 999px;
      background: rgba(255,255,255,.18);
      outline: none;
      cursor: pointer;
    }

    .current-price-range::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 34px;
      height: 34px;
      border-radius: 999px;
      background: #ffffff;
      box-shadow: 0 6px 18px rgba(0,0,0,.32);
    }

    .current-price-range::-moz-range-thumb {
      width: 34px;
      height: 34px;
      border: 0;
      border-radius: 999px;
      background: #ffffff;
      box-shadow: 0 6px 18px rgba(0,0,0,.32);
    }

    .current-slider-ticks {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      color: rgba(255,255,255,.48);
      font-size: 11px;
      font-weight: 900;
    }

    .current-control,
    .current-preset-row {
      display: none !important;
    }

    .compare-card {
      min-height: auto;
    }

    .compare-body {
      gap: 9px;
    }

    .compare-title-row {
      align-items: center;
    }

    .compare-equation {
      display: none !important;
    }

    .compare-saving {
      justify-content: space-between;
      padding: 12px 14px;
    }

    .compare-saving span {
      font-size: 12px;
    }

    .compare-saving strong {
      font-size: clamp(28px, 3.8vw, 44px);
    }

    @media (max-width: 680px) {
      .current-slider-panel {
        padding: 18px;
        border-radius: 20px;
      }

      .current-slider-value {
        font-size: 46px;
      }

      .current-slider-value small {
        font-size: 18px;
      }
    }


    /* revision v6: compact comparison area */
    .direct-compare-panel {
      gap: 12px !important;
      padding: 14px !important;
      border-radius: 22px !important;
    }

    .direct-compare-head {
      margin-bottom: 0 !important;
      align-items: center !important;
    }

    .direct-compare-head h3 {
      margin: 0 !important;
      font-size: 20px !important;
    }

    .direct-compare-head p {
      margin: 2px 0 0 !important;
      font-size: 12px !important;
    }

    .direct-chip {
      min-height: 28px !important;
      padding: 4px 10px !important;
      font-size: 11px !important;
    }

    .current-slider-control {
      display: grid !important;
      grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr);
      gap: 12px;
      align-items: stretch;
    }

    .current-slider-panel {
      min-height: auto !important;
      gap: 9px !important;
      padding: 16px !important;
      border-radius: 20px !important;
    }

    .current-slider-label {
      font-size: 11px !important;
    }

    .current-slider-value {
      margin: -2px 0 0 !important;
      font-size: clamp(38px, 4.5vw, 58px) !important;
    }

    .current-slider-value small {
      font-size: 18px !important;
    }

    .current-price-range {
      height: 8px !important;
    }

    .current-price-range::-webkit-slider-thumb {
      width: 30px !important;
      height: 30px !important;
    }

    .current-price-range::-moz-range-thumb {
      width: 30px !important;
      height: 30px !important;
    }

    .current-slider-ticks {
      font-size: 10px !important;
    }

    .compare-card-grid {
      display: grid !important;
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      gap: 8px !important;
    }

    .compare-card {
      min-height: 84px !important;
      display: grid !important;
      grid-template-columns: 34px minmax(0, 1fr) auto !important;
      gap: 10px !important;
      align-items: center !important;
      padding: 11px 12px !important;
      border-radius: 17px !important;
    }

    .compare-no {
      width: 32px !important;
      height: 32px !important;
      border-radius: 13px !important;
      font-size: 11px !important;
      align-self: center !important;
    }

    .compare-body {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) auto !important;
      grid-template-areas:
        "title saving"
        "points saving";
      gap: 5px 10px !important;
      align-items: center !important;
      min-width: 0;
    }

    .compare-title-row {
      grid-area: title;
      display: block !important;
      min-width: 0;
    }

    .compare-title strong {
      font-size: 15px !important;
      line-height: 1.25 !important;
    }

    .compare-title span {
      font-size: 10.5px !important;
      line-height: 1.35 !important;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 100%;
    }

    .compare-arrow {
      display: none !important;
    }

    .compare-saving {
      grid-area: saving;
      display: grid !important;
      gap: 2px !important;
      justify-items: end !important;
      align-content: center !important;
      min-width: 116px !important;
      padding: 0 !important;
      border: none !important;
      background: transparent !important;
      white-space: nowrap;
    }

    .compare-saving span {
      order: 2;
      color: #64748b !important;
      font-size: 10px !important;
      line-height: 1.1 !important;
      font-weight: 900 !important;
    }

    .compare-saving strong {
      order: 1;
      color: #0f604f !important;
      font-size: clamp(24px, 2.8vw, 34px) !important;
      line-height: 1 !important;
      letter-spacing: -.05em !important;
    }

    .compare-points {
      grid-area: points;
      gap: 4px !important;
      min-width: 0;
    }

    .compare-point {
      min-height: 20px !important;
      padding: 2px 7px !important;
      font-size: 9.5px !important;
    }

    .direct-note {
      padding: 8px 10px !important;
      font-size: 10px !important;
      border-radius: 12px !important;
    }

    @media (max-width: 1080px) {
      .current-slider-control {
        grid-template-columns: 1fr !important;
      }

      .compare-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      }
    }

    @media (max-width: 760px) {
      .compare-card-grid {
        grid-template-columns: 1fr !important;
      }
    }

    @media (max-width: 520px) {
      .compare-card {
        grid-template-columns: 32px minmax(0, 1fr) !important;
      }

      .compare-body {
        grid-template-columns: 1fr !important;
        grid-template-areas:
          "title"
          "saving"
          "points";
      }

      .compare-saving {
        justify-items: start !important;
      }
    }


    /* revision v7: remove duplicate headings, 3-column compact cards, negative savings */
    .direct-compare-panel {
      padding: 12px !important;
      gap: 12px !important;
    }

    .section-card > .current-price-guide:first-child,
    .section-card .direct-compare-guide {
      margin-top: 0 !important;
    }

    .compare-card-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      gap: 9px !important;
    }

    .compare-card {
      min-height: 104px !important;
      grid-template-columns: 34px minmax(0, 1fr) !important;
      align-items: start !important;
      padding: 12px !important;
    }

    .compare-body {
      grid-template-columns: 1fr !important;
      grid-template-areas:
        "title"
        "saving"
        "points" !important;
      gap: 7px !important;
    }

    .compare-title strong {
      font-size: 17px !important;
      line-height: 1.22 !important;
      font-weight: 950 !important;
      letter-spacing: -.025em !important;
      color: #071227 !important;
    }

    .compare-title span {
      font-size: 10.5px !important;
      line-height: 1.35 !important;
    }

    .compare-saving {
      justify-content: flex-start !important;
      justify-items: start !important;
      text-align: left !important;
    }

    .compare-saving strong {
      font-size: clamp(28px, 3.3vw, 40px) !important;
      color: #0f604f !important;
    }

    .compare-saving span {
      font-size: 10px !important;
      color: #64748b !important;
    }

    .compare-points {
      align-items: center !important;
    }

    @media (max-width: 1180px) {
      .compare-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      }
    }

    @media (max-width: 760px) {
      .compare-card-grid {
        grid-template-columns: 1fr !important;
      }
    }


    /* revision v8: per-device wording and fixed range fill alignment */
    .current-slider-label::after {
      content: "";
    }

    .current-slider-value small {
      font-size: 17px !important;
      white-space: nowrap;
    }

    .current-range-shell {
      position: relative;
      height: 42px;
      border-radius: 999px;
      background: rgba(255,255,255,.18);
      border: 1px solid rgba(77,217,190,.25);
      box-shadow: inset 0 0 0 1px rgba(29,111,214,.22);
      overflow: visible;
    }

    .current-range-fill {
      position: absolute;
      left: 0;
      top: 0;
      height: 100%;
      width: 17px;
      border-radius: 999px;
      background: linear-gradient(90deg, #4dd9be, #54cfd0);
      pointer-events: none;
    }

    .current-price-range {
      position: absolute !important;
      left: 0;
      top: 0;
      width: 100% !important;
      height: 42px !important;
      margin: 0;
      appearance: none;
      -webkit-appearance: none;
      background: transparent !important;
      border-radius: 999px;
      outline: none;
      cursor: pointer;
      z-index: 2;
    }

    .current-price-range::-webkit-slider-runnable-track {
      height: 42px;
      border-radius: 999px;
      background: transparent;
    }

    .current-price-range::-moz-range-track {
      height: 42px;
      border-radius: 999px;
      background: transparent;
    }

    .current-price-range::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 34px !important;
      height: 34px !important;
      margin-top: 4px;
      border-radius: 999px;
      background: #ffffff;
      box-shadow: 0 6px 18px rgba(0,0,0,.32);
      border: 0;
    }

    .current-price-range::-moz-range-thumb {
      width: 34px !important;
      height: 34px !important;
      border-radius: 999px;
      background: #ffffff;
      box-shadow: 0 6px 18px rgba(0,0,0,.32);
      border: 0;
    }

    .current-slider-ticks {
      padding: 0 2px;
    }

    .compare-saving span::after {
      content: "（1台あたり）";
      margin-left: 2px;
      font-size: 9px;
      font-weight: 800;
      color: #64748b;
    }

    @media (max-width: 680px) {
      .current-slider-value small {
        font-size: 16px !important;
      }
    }


    /* revision v9: fix slider visual overlap */
    .current-range-shell {
      height: 30px !important;
      border-radius: 999px !important;
      background: rgba(255,255,255,.18) !important;
      border: 1px solid rgba(77,217,190,.22) !important;
      box-shadow: inset 0 0 0 1px rgba(29,111,214,.18) !important;
      overflow: visible !important;
    }

    .current-range-fill {
      top: 0 !important;
      left: 0 !important;
      height: 100% !important;
      border-radius: 999px 0 0 999px !important;
      background: linear-gradient(90deg, #4dd9be, #54cfd0) !important;
    }

    .current-price-range {
      height: 30px !important;
    }

    .current-price-range::-webkit-slider-runnable-track {
      height: 30px !important;
      background: transparent !important;
    }

    .current-price-range::-moz-range-track {
      height: 30px !important;
      background: transparent !important;
    }

    .current-price-range::-webkit-slider-thumb {
      width: 34px !important;
      height: 34px !important;
      margin-top: -2px !important;
      border-radius: 999px !important;
      background: #ffffff !important;
      border: 3px solid rgba(15,30,54,.88) !important;
      box-shadow: 0 6px 18px rgba(0,0,0,.32) !important;
    }

    .current-price-range::-moz-range-thumb {
      width: 34px !important;
      height: 34px !important;
      border-radius: 999px !important;
      background: #ffffff !important;
      border: 3px solid rgba(15,30,54,.88) !important;
      box-shadow: 0 6px 18px rgba(0,0,0,.32) !important;
    }

    @media (max-width: 680px) {
      .current-range-shell,
      .current-price-range,
      .current-price-range::-webkit-slider-runnable-track,
      .current-price-range::-moz-range-track {
        height: 28px !important;
      }

      .current-price-range::-webkit-slider-thumb {
        width: 32px !important;
        height: 32px !important;
        margin-top: -2px !important;
      }

      .current-price-range::-moz-range-thumb {
        width: 32px !important;
        height: 32px !important;
      }
    }


    /* revision v10: revert slider to simple native range to avoid visual misalignment */
    .current-range-shell,
    .current-range-fill {
      display: none !important;
    }

    .simple-current-range {
      width: 100%;
      margin: 0;
      padding: 0;
      accent-color: #4dd9be;
      cursor: pointer;
    }

    .current-slider-panel {
      gap: 12px !important;
    }

    .current-slider-ticks {
      margin-top: -2px;
      padding: 0 1px;
    }


    /* revision v11: real progress-like slider + ultra-compact candidate cards */
    .current-slider-panel {
      gap: 14px !important;
    }

    .simple-current-range {
      width: 100%;
      margin: 0;
      padding: 0;
      appearance: none;
      -webkit-appearance: none;
      height: 18px;
      border-radius: 999px;
      background: linear-gradient(to right, #56d6c2 0%, #56d6c2 36%, rgba(255,255,255,.22) 36%, rgba(255,255,255,.22) 100%);
      border: 1px solid rgba(77,217,190,.28);
      box-shadow: inset 0 0 0 1px rgba(29,111,214,.20);
      cursor: pointer;
    }

    .simple-current-range::-webkit-slider-runnable-track {
      height: 18px;
      background: transparent;
      border-radius: 999px;
    }

    .simple-current-range::-moz-range-track {
      height: 18px;
      background: transparent;
      border-radius: 999px;
    }

    .simple-current-range::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 24px;
      height: 24px;
      margin-top: -4px;
      border-radius: 999px;
      background: #ffffff;
      border: 2px solid #0f1e36;
      box-shadow: 0 4px 12px rgba(0,0,0,.25);
    }

    .simple-current-range::-moz-range-thumb {
      width: 24px;
      height: 24px;
      border-radius: 999px;
      background: #ffffff;
      border: 2px solid #0f1e36;
      box-shadow: 0 4px 12px rgba(0,0,0,.25);
    }

    .compare-card-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      gap: 10px !important;
    }

    .compare-card {
      min-height: 88px !important;
      grid-template-columns: 34px minmax(0, 1fr) !important;
      padding: 14px 16px !important;
      border-radius: 18px !important;
      align-items: center !important;
    }

    .compare-body {
      display: block !important;
    }

    .compare-title-row {
      display: none !important;
    }

    .compare-points {
      display: none !important;
    }

    .compare-saving {
      display: block !important;
      padding: 0 !important;
      border: none !important;
      background: transparent !important;
      text-align: left !important;
      white-space: normal !important;
    }

    .compare-saving strong {
      display: inline !important;
      color: #071227 !important;
      font-size: 17px !important;
      line-height: 1.5 !important;
      letter-spacing: -.01em !important;
      font-weight: 950 !important;
    }

    .compare-saving span {
      display: inline !important;
      color: #0f604f !important;
      font-size: 17px !important;
      line-height: 1.5 !important;
      font-weight: 950 !important;
      margin-left: 8px;
    }

    .compare-saving span::after {
      content: "" !important;
    }

    .compare-no {
      width: 30px !important;
      height: 30px !important;
      border-radius: 12px !important;
      font-size: 11px !important;
    }

    .direct-note {
      margin-top: 2px !important;
    }

    @media (max-width: 1180px) {
      .compare-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      }
    }

    @media (max-width: 760px) {
      .compare-card-grid {
        grid-template-columns: 1fr !important;
      }
    }


    /* revision v12: grouped extra cards and strict 2-line card layout */
    .compare-card-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      gap: 10px !important;
    }

    .compare-card {
      min-height: 106px !important;
      padding: 14px 16px !important;
      border-radius: 18px !important;
      align-items: center !important;
    }

    .compare-body {
      display: grid !important;
      gap: 6px !important;
      align-items: center !important;
    }

    .compare-saving {
      display: grid !important;
      gap: 6px !important;
      padding: 0 !important;
      border: none !important;
      background: transparent !important;
      text-align: left !important;
      white-space: normal !important;
    }

    .compare-saving strong {
      display: block !important;
      color: #071227 !important;
      font-size: 18px !important;
      line-height: 1.28 !important;
      letter-spacing: -.02em !important;
      font-weight: 950 !important;
      margin: 0 !important;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .compare-saving span {
      display: block !important;
      color: #0f604f !important;
      font-size: 17px !important;
      line-height: 1.2 !important;
      font-weight: 950 !important;
      margin: 0 !important;
      white-space: nowrap;
    }

    .compare-saving span::after {
      content: "" !important;
    }

    .compare-title-row,
    .compare-points {
      display: none !important;
    }

    @media (max-width: 1180px) {
      .compare-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      }
    }

    @media (max-width: 760px) {
      .compare-card-grid {
        grid-template-columns: 1fr !important;
      }
    }


    /* revision v13: add visible detail button on candidate cards */
    .compare-card {
      grid-template-columns: 34px minmax(0, 1fr) auto !important;
      gap: 12px !important;
      align-items: center !important;
    }

    .compare-body {
      min-width: 0;
    }

    .compare-detail-button {
      justify-self: end;
      align-self: center;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 32px;
      padding: 6px 11px;
      border-radius: 999px;
      border: 1px solid #bdd7fb;
      background: #ffffff;
      color: #155bb2;
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
      line-height: 1;
    }

    .compare-detail-button::after {
      content: "↓";
      margin-left: 5px;
      font-size: 10px;
      opacity: .75;
    }

    .compare-card:hover .compare-detail-button,
    .compare-card.best .compare-detail-button {
      border-color: #4dd9be;
      color: #0f604f;
      background: #f5fffb;
    }

    @media (max-width: 520px) {
      .compare-card {
        grid-template-columns: 30px minmax(0, 1fr) !important;
      }

      .compare-detail-button {
        grid-column: 2;
        justify-self: start;
        margin-top: 2px;
      }
    }


    /* revision v14: remove redundant visible page heading spacing */
    #mobile-plan > .card > .article-body {
      margin-top: 0 !important;
    }


    /* revision v15: horizontal slider panel + button-only detail navigation */
    .current-slider-control {
      display: block !important;
    }

    .current-slider-panel {
      width: 100%;
      padding: 18px 20px !important;
      border-radius: 22px !important;
      display: grid;
      gap: 10px !important;
    }

    .current-slider-main {
      display: grid;
      grid-template-columns: minmax(220px, 340px) minmax(0, 1fr);
      gap: 18px;
      align-items: center;
    }

    .current-slider-value {
      margin: 0 !important;
      display: flex;
      align-items: baseline;
      gap: 6px;
      white-space: nowrap;
    }

    .current-slider-value span {
      font-size: clamp(46px, 6vw, 74px);
      line-height: 1;
    }

    .current-slider-value small {
      font-size: 18px !important;
      line-height: 1.1;
    }

    .current-slider-control-wrap {
      display: grid;
      gap: 8px;
      align-items: center;
      min-width: 0;
    }

    .simple-current-range {
      width: 100%;
      margin: 0;
      padding: 0;
      appearance: none;
      -webkit-appearance: none;
      height: 18px;
      border-radius: 999px;
      background: linear-gradient(to right, #56d6c2 0%, #56d6c2 36%, rgba(255,255,255,.22) 36%, rgba(255,255,255,.22) 100%);
      border: 1px solid rgba(77,217,190,.28);
      box-shadow: inset 0 0 0 1px rgba(29,111,214,.20);
      cursor: pointer;
    }

    .simple-current-range::-webkit-slider-runnable-track {
      height: 18px;
      border-radius: 999px;
      background: transparent;
    }

    .simple-current-range::-moz-range-track {
      height: 18px;
      border-radius: 999px;
      background: transparent;
    }

    .simple-current-range::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 24px;
      height: 24px;
      margin-top: -4px;
      border-radius: 999px;
      background: #ffffff;
      border: 2px solid #0f1e36;
      box-shadow: 0 4px 12px rgba(0,0,0,.25);
    }

    .simple-current-range::-moz-range-thumb {
      width: 24px;
      height: 24px;
      border-radius: 999px;
      background: #ffffff;
      border: 2px solid #0f1e36;
      box-shadow: 0 4px 12px rgba(0,0,0,.25);
    }

    .current-slider-ticks {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      color: rgba(255,255,255,.56);
      font-size: 11px;
      font-weight: 900;
      padding: 0 2px;
      margin-top: 2px;
    }

    .compare-card-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      gap: 10px !important;
    }

    .compare-card {
      display: grid !important;
      grid-template-columns: 30px minmax(0, 1fr) auto !important;
      gap: 12px !important;
      align-items: center !important;
      min-height: 98px !important;
      padding: 14px 16px !important;
      border: 1px solid #dbe8fb;
      border-radius: 18px !important;
      background: #fff;
      box-shadow: none;
    }

    .compare-card.best {
      border-color: #bdf4e2;
      background: linear-gradient(180deg, #ffffff 0%, #f7fffc 100%);
      box-shadow: 0 12px 26px rgba(15,159,134,.08);
    }

    .compare-body {
      min-width: 0;
      display: grid !important;
      gap: 0 !important;
    }

    .compare-saving {
      display: grid !important;
      gap: 6px !important;
      padding: 0 !important;
      border: none !important;
      background: transparent !important;
      text-align: left !important;
      white-space: normal !important;
    }

    .compare-saving strong {
      display: block !important;
      font-size: 18px !important;
      line-height: 1.2 !important;
      color: #071227 !important;
      font-weight: 950 !important;
      letter-spacing: -.02em !important;
      overflow-wrap: anywhere;
    }

    .compare-saving span {
      display: block !important;
      margin: 0 !important;
      color: #0f604f !important;
      font-size: 16px !important;
      line-height: 1.2 !important;
      font-weight: 950 !important;
      white-space: nowrap;
    }

    .compare-saving span::after {
      content: "" !important;
    }

    .compare-no {
      width: 30px !important;
      height: 30px !important;
      border-radius: 12px !important;
      font-size: 11px !important;
      align-self: center;
    }

    .compare-detail-button {
      justify-self: end;
      align-self: center;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 34px;
      padding: 6px 12px;
      border-radius: 999px;
      border: 1px solid #bdd7fb;
      background: #fff;
      color: #155bb2;
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
      line-height: 1;
      cursor: pointer;
    }

    .compare-detail-button::after {
      content: "↓";
      margin-left: 4px;
      font-size: 10px;
      opacity: .75;
    }

    .compare-detail-button:hover {
      border-color: #4dd9be;
      color: #0f604f;
      background: #f5fffb;
    }

    @media (max-width: 1180px) {
      .compare-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      }
      .current-slider-main {
        grid-template-columns: 260px minmax(0, 1fr);
      }
    }

    @media (max-width: 760px) {
      .current-slider-main {
        grid-template-columns: 1fr;
        gap: 12px;
      }
      .compare-card-grid {
        grid-template-columns: 1fr !important;
      }
    }

    @media (max-width: 560px) {
      .compare-card {
        grid-template-columns: 30px minmax(0, 1fr) !important;
        align-items: start !important;
      }
      .compare-detail-button {
        grid-column: 2;
        justify-self: start;
        margin-top: 2px;
      }
      .current-slider-panel {
        padding: 16px !important;
      }
      .current-slider-value span {
        font-size: 52px;
      }
      .current-slider-value small {
        font-size: 16px !important;
      }
    }


    /* revision v16: candidate card text wrap + detail button beside saving line */
    .compare-card {
      grid-template-columns: 30px minmax(0, 1fr) auto !important;
      grid-template-areas:
        "no name name"
        "no save detail" !important;
      grid-template-rows: auto auto !important;
      gap: 7px 12px !important;
      align-items: center !important;
      overflow: hidden;
    }

    .compare-card .compare-no {
      grid-area: no;
    }

    .compare-name {
      grid-area: name;
      display: block;
      min-width: 0;
      color: #071227;
      font-size: 17px;
      line-height: 1.25;
      font-weight: 950;
      letter-spacing: -.02em;
      white-space: normal;
      word-break: keep-all;
      overflow-wrap: anywhere;
    }

    .compare-save {
      grid-area: save;
      display: block;
      min-width: 0;
      color: #0f604f;
      font-size: 16px;
      line-height: 1.2;
      font-weight: 950;
      white-space: nowrap;
    }

    .compare-card .compare-body,
    .compare-card .compare-saving {
      display: contents !important;
    }

    .compare-card .compare-detail-button {
      grid-area: detail;
      align-self: center;
      justify-self: end;
    }

    @media (max-width: 560px) {
      .compare-card {
        grid-template-columns: 26px minmax(0, 1fr) 62px !important;
        grid-template-areas:
          "no name name"
          "no save detail" !important;
        gap: 6px 8px !important;
        min-height: 92px !important;
        padding: 12px !important;
      }

      .compare-no {
        width: 26px !important;
        height: 26px !important;
        border-radius: 10px !important;
        font-size: 10px !important;
      }

      .compare-name {
        font-size: 14px;
        line-height: 1.3;
      }

      .compare-save {
        font-size: 13px;
        line-height: 1.2;
        white-space: normal;
      }

      .compare-detail-button {
        min-height: 30px;
        padding: 5px 8px;
        font-size: 10px;
      }
    }



    /* v18: microcopy and visibility refinements */
    .current-slider-label {
      display: inline-flex !important;
      align-items: center;
      width: fit-content;
      padding: 6px 12px !important;
      border-radius: 999px;
      background: rgba(255,255,255,.14);
      color: #ffffff !important;
      font-size: 14px !important;
      font-weight: 950 !important;
      letter-spacing: .02em;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.10);
    }

    @media (max-width: 680px) {
      .current-slider-label {
        font-size: 13px !important;
        padding: 5px 10px !important;
      }
    }

    .service-official-link::after,
    .service-official-link-inline::after {
      content: none !important;
      display: none !important;
    }

    .japan-sim-detail-full summary::after,
    .japan-sim-inline-detail summary::after {
      content: none !important;
      display: none !important;
    }

    .japan-sim-detail-full .service-detail-label::after,
    .japan-sim-inline-detail .service-detail-label::after {
      content: "＋" !important;
      margin-left: 10px;
      font-size: 16px;
      line-height: 1;
    }

    .japan-sim-detail-full[open] .service-detail-label::after,
    .japan-sim-inline-detail[open] .service-detail-label::after {
      content: "－" !important;
      font-size: 16px;
    }



    /* v19: motion layer only - design/layout unchanged */
    @media (prefers-reduced-motion: no-preference) {
      .sim-price-ladder-section {
        animation: motionPageRise .52s cubic-bezier(.2,.8,.2,1) both;
      }

      .current-slider-panel {
        animation: motionSoftPop .58s cubic-bezier(.2,.8,.2,1) .04s both;
        transition:
          transform .22s cubic-bezier(.2,.8,.2,1),
          box-shadow .22s cubic-bezier(.2,.8,.2,1),
          filter .22s cubic-bezier(.2,.8,.2,1);
      }

      .current-slider-control:focus-within .current-slider-panel,
      .current-slider-panel.motion-active {
        transform: translateY(-2px);
        filter: saturate(1.05);
      }

      .current-slider-value span {
        display: inline-block;
        transition:
          transform .2s cubic-bezier(.2,.8,.2,1),
          text-shadow .2s cubic-bezier(.2,.8,.2,1);
      }

      .current-slider-value span.motion-bump {
        transform: translateY(-2px) scale(1.025);
        text-shadow: 0 0 18px rgba(77,217,190,.38);
      }

      .simple-current-range {
        transition: filter .18s ease, transform .18s ease;
      }

      .simple-current-range:active {
        filter: brightness(1.06);
      }

      .compare-card {
        animation: motionCardIn .44s cubic-bezier(.2,.8,.2,1) both;
        transition:
          transform .18s cubic-bezier(.2,.8,.2,1),
          box-shadow .18s cubic-bezier(.2,.8,.2,1),
          border-color .18s ease,
          background .18s ease;
      }

      .compare-card:nth-child(1) { animation-delay: .06s; }
      .compare-card:nth-child(2) { animation-delay: .10s; }
      .compare-card:nth-child(3) { animation-delay: .14s; }
      .compare-card:nth-child(4) { animation-delay: .18s; }
      .compare-card:nth-child(5) { animation-delay: .22s; }
      .compare-card:nth-child(6) { animation-delay: .26s; }

      .compare-card:hover,
      .compare-card:focus-within {
        transform: translateY(-3px);
        box-shadow: 0 18px 34px rgba(23, 32, 51, 0.10);
      }

      .compare-detail-button,
      .service-official-link-inline,
      .service-detail-label,
      #mobile-plan .btn {
        transition:
          transform .16s cubic-bezier(.2,.8,.2,1),
          box-shadow .16s cubic-bezier(.2,.8,.2,1),
          filter .16s ease;
      }

      .compare-detail-button:hover,
      .service-official-link-inline:hover,
      .service-detail summary:hover .service-detail-label,
      #mobile-plan .btn:hover {
        transform: translateY(-1px);
        filter: brightness(1.02);
      }

      .compare-detail-button:active,
      .service-official-link-inline:active,
      .service-detail summary:active .service-detail-label,
      #mobile-plan .btn:active {
        transform: translateY(0) scale(.98);
      }

      .sim-plan-row.visual,
      .sim-plan-row.best-low,
      .compact-review-check,
      .source-link-box {
        animation: motionBlockIn .48s cubic-bezier(.2,.8,.2,1) both;
        animation-timeline: view();
        animation-range: entry 0% cover 24%;
      }

      .japan-sim-bar,
      .iijmio-capacity-bar,
      .linemo-step-fill,
      .povo-bar,
      .mineo-speed-bar {
        transform-origin: bottom;
        animation: motionBarGrow .62s cubic-bezier(.2,.8,.2,1) both;
        animation-timeline: view();
        animation-range: entry 0% cover 28%;
      }

      .japan-sim-bar-item:nth-child(1) .japan-sim-bar { animation-delay: .02s; }
      .japan-sim-bar-item:nth-child(2) .japan-sim-bar { animation-delay: .08s; }
      .japan-sim-bar-item:nth-child(3) .japan-sim-bar { animation-delay: .14s; }
      .japan-sim-bar-item:nth-child(4) .japan-sim-bar { animation-delay: .20s; }

      .service-detail-fixed .sim-plan-detail-body {
        animation: motionDetailOpen .24s cubic-bezier(.2,.8,.2,1) both;
      }

      .service-detail-fixed:not([open]) .sim-plan-detail-body {
        animation: none;
      }

      .service-detail-label::after {
        display: inline-block;
        transition: transform .18s cubic-bezier(.2,.8,.2,1);
      }

      .service-detail-fixed[open] .service-detail-label::after {
        transform: rotate(180deg);
      }

      .japan-sim-detail-full[open] .service-detail-label::after,
      .japan-sim-inline-detail[open] .service-detail-label::after {
        transform: rotate(180deg);
      }

      .rank-card {
        transition:
          transform .18s cubic-bezier(.2,.8,.2,1),
          box-shadow .18s cubic-bezier(.2,.8,.2,1),
          border-color .18s ease;
      }

      .rank-card:active {
        transform: scale(.99);
      }

      @keyframes motionPageRise {
        from {
          opacity: 0;
          transform: translateY(10px);
        }
        to {
          opacity: 1;
          transform: translateY(0);
        }
      }

      @keyframes motionSoftPop {
        from {
          opacity: 0;
          transform: translateY(8px) scale(.99);
        }
        to {
          opacity: 1;
          transform: translateY(0) scale(1);
        }
      }

      @keyframes motionCardIn {
        from {
          opacity: 0;
          transform: translateY(10px) scale(.985);
        }
        to {
          opacity: 1;
          transform: translateY(0) scale(1);
        }
      }

      @keyframes motionBlockIn {
        from {
          opacity: 0;
          transform: translateY(14px);
        }
        to {
          opacity: 1;
          transform: translateY(0);
        }
      }

      @keyframes motionBarGrow {
        from {
          transform: scaleY(.14);
          opacity: .55;
        }
        to {
          transform: scaleY(1);
          opacity: 1;
        }
      }

      @keyframes motionDetailOpen {
        from {
          opacity: 0;
          transform: translateY(-6px);
        }
        to {
          opacity: 1;
          transform: translateY(0);
        }
      }
    }

    @media (prefers-reduced-motion: reduce) {
      *,
      *::before,
      *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
      }
    }





    /* v22: candidate card with right chevron jump button */
    .compare-card {
      display: grid !important;
      grid-template-columns: 44px minmax(0, 1fr) 44px !important;
      grid-template-areas: "no copy jump" !important;
      gap: 18px !important;
      align-items: center !important;
      min-height: 104px !important;
      padding: 18px 18px 18px 20px !important;
      border-radius: 20px !important;
      border: 1.5px solid #bdf4e2 !important;
      background: #ffffff !important;
      text-decoration: none !important;
      cursor: default !important;
      box-shadow: none !important;
    }

    .compare-card.best {
      border-color: #47d8ad !important;
      background: linear-gradient(180deg, #ffffff 0%, #f8fffc 100%) !important;
      box-shadow: 0 10px 24px rgba(15, 159, 134, 0.06) !important;
    }

    .compare-card:hover {
      transform: none !important;
      border-color: #47d8ad !important;
      box-shadow: 0 12px 26px rgba(15, 159, 134, 0.08) !important;
    }

    .compare-no {
      grid-area: no !important;
      width: 40px !important;
      height: 40px !important;
      border-radius: 999px !important;
      display: grid !important;
      place-items: center !important;
      background: #34c4aa !important;
      color: #ffffff !important;
      font-size: 14px !important;
      font-weight: 950 !important;
      box-shadow: 0 8px 18px rgba(15, 159, 134, 0.18) !important;
    }

    .compare-card:not(.best) .compare-no {
      background: #e9fbf6 !important;
      color: #0f604f !important;
      box-shadow: none !important;
    }

    .compare-card-copy {
      grid-area: copy;
      display: grid;
      gap: 6px;
      min-width: 0;
    }

    .compare-name {
      color: #031525 !important;
      font-size: clamp(17px, 2.1vw, 21px) !important;
      font-weight: 950 !important;
      line-height: 1.25 !important;
      letter-spacing: -0.025em !important;
      overflow-wrap: anywhere;
    }

    .compare-save {
      color: #0f604f !important;
      font-size: clamp(24px, 3.6vw, 34px) !important;
      font-weight: 950 !important;
      line-height: 1.08 !important;
      letter-spacing: -0.045em !important;
      white-space: nowrap;
    }

    .compare-jump-button {
      grid-area: jump;
      justify-self: end;
      align-self: center;
      appearance: none;
      width: 44px;
      height: 44px;
      border-radius: 999px;
      border: 1.5px solid #9de8d9;
      background: #ffffff;
      color: #0f9f86;
      display: grid;
      place-items: center;
      padding: 0;
      cursor: pointer;
      box-shadow: none;
      transition:
        transform .16s ease,
        background .16s ease,
        border-color .16s ease,
        box-shadow .16s ease;
    }

    .compare-jump-button span {
      display: block;
      transform: rotate(90deg) translateX(1px);
      font-size: 28px;
      font-weight: 650;
      line-height: 1;
    }

    .compare-jump-button:hover,
    .compare-jump-button:focus-visible {
      outline: none;
      background: #e9fbf6;
      border-color: #34c4aa;
      box-shadow: 0 8px 18px rgba(15, 159, 134, 0.12);
      transform: translateY(1px);
    }

    .compare-jump-button:active {
      transform: translateY(2px) scale(.96);
    }

    .compare-detail-button,
    .compare-down-icon {
      display: none !important;
    }

    @media (max-width: 560px) {
      .compare-card {
        grid-template-columns: 42px minmax(0, 1fr) 42px !important;
        gap: 14px !important;
        min-height: 96px !important;
        padding: 16px 16px 16px 18px !important;
        border-radius: 18px !important;
      }

      .compare-no {
        width: 38px !important;
        height: 38px !important;
      }

      .compare-jump-button {
        width: 42px;
        height: 42px;
      }

      .compare-jump-button span {
        font-size: 27px;
      }

      .compare-name {
        font-size: 18px !important;
      }

      .compare-save {
        font-size: 28px !important;
      }
    }

    @media (max-width: 380px) {
      .compare-card {
        grid-template-columns: 36px minmax(0, 1fr) 40px !important;
        gap: 12px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
      }

      .compare-no {
        width: 34px !important;
        height: 34px !important;
        font-size: 13px !important;
      }

      .compare-save {
        font-size: 24px !important;
      }
    }



    /* v23: fix compare card text collision from older compare styles */
    .compare-card-grid .compare-card {
      display: grid !important;
      grid-template-columns: 44px minmax(0, 1fr) 44px !important;
      grid-template-rows: auto !important;
      grid-template-areas: "no copy jump" !important;
      column-gap: 18px !important;
      row-gap: 0 !important;
      align-items: center !important;
      min-height: 104px !important;
      padding: 18px 18px 18px 20px !important;
      border-radius: 20px !important;
      border: 1.5px solid #bdf4e2 !important;
      background: #ffffff !important;
      color: inherit !important;
      font: inherit !important;
      text-align: left !important;
      text-decoration: none !important;
      cursor: default !important;
      box-shadow: none !important;
      overflow: hidden !important;
    }

    .compare-card-grid .compare-card.best {
      border-color: #47d8ad !important;
      background: linear-gradient(180deg, #ffffff 0%, #f8fffc 100%) !important;
      box-shadow: 0 10px 24px rgba(15, 159, 134, 0.06) !important;
    }

    .compare-card-grid .compare-card:hover {
      transform: none !important;
      border-color: #47d8ad !important;
      box-shadow: 0 12px 26px rgba(15, 159, 134, 0.08) !important;
    }

    .compare-card-grid .compare-no {
      grid-area: no !important;
      grid-column: auto !important;
      grid-row: auto !important;
      width: 40px !important;
      height: 40px !important;
      min-width: 40px !important;
      border-radius: 999px !important;
      display: grid !important;
      place-items: center !important;
      background: #34c4aa !important;
      color: #ffffff !important;
      font-size: 14px !important;
      font-weight: 950 !important;
      box-shadow: 0 8px 18px rgba(15, 159, 134, 0.18) !important;
    }

    .compare-card-grid .compare-card:not(.best) .compare-no {
      background: #e9fbf6 !important;
      color: #0f604f !important;
      box-shadow: none !important;
    }

    .compare-card-grid .compare-card-copy {
      grid-area: copy !important;
      display: grid !important;
      grid-template-columns: 1fr !important;
      grid-template-rows: auto auto !important;
      gap: 6px !important;
      align-content: center !important;
      min-width: 0 !important;
      width: 100% !important;
    }

    .compare-card-grid .compare-name {
      display: block !important;
      grid-column: auto !important;
      grid-row: auto !important;
      margin: 0 !important;
      padding: 0 !important;
      color: #031525 !important;
      font-size: clamp(17px, 1.55vw, 21px) !important;
      font-weight: 950 !important;
      line-height: 1.25 !important;
      letter-spacing: -0.025em !important;
      white-space: normal !important;
      overflow-wrap: anywhere !important;
      word-break: keep-all !important;
      min-width: 0 !important;
      max-width: 100% !important;
    }

    .compare-card-grid .compare-save {
      display: block !important;
      grid-column: auto !important;
      grid-row: auto !important;
      margin: 0 !important;
      padding: 0 !important;
      color: #0f604f !important;
      font-size: clamp(24px, 2.45vw, 34px) !important;
      font-weight: 950 !important;
      line-height: 1.08 !important;
      letter-spacing: -0.045em !important;
      white-space: nowrap !important;
      min-width: 0 !important;
      max-width: 100% !important;
    }

    .compare-card-grid .compare-jump-button {
      grid-area: jump !important;
      grid-column: auto !important;
      grid-row: auto !important;
      justify-self: end !important;
      align-self: center !important;
      appearance: none !important;
      -webkit-appearance: none !important;
      width: 44px !important;
      height: 44px !important;
      min-width: 44px !important;
      border-radius: 999px !important;
      border: 1.5px solid #9de8d9 !important;
      background: #ffffff !important;
      color: #0f9f86 !important;
      display: grid !important;
      place-items: center !important;
      padding: 0 !important;
      cursor: pointer !important;
      box-shadow: none !important;
      line-height: 1 !important;
    }

    .compare-card-grid .compare-jump-button span {
      display: block !important;
      transform: rotate(90deg) translateX(1px) !important;
      font-size: 28px !important;
      font-weight: 650 !important;
      line-height: 1 !important;
    }

    .compare-card-grid .compare-jump-button:hover,
    .compare-card-grid .compare-jump-button:focus-visible {
      outline: none !important;
      background: #e9fbf6 !important;
      border-color: #34c4aa !important;
      box-shadow: 0 8px 18px rgba(15, 159, 134, 0.12) !important;
      transform: translateY(1px) !important;
    }

    .compare-card-grid .compare-jump-button:active {
      transform: translateY(2px) scale(.96) !important;
    }

    .compare-card-grid .compare-arrow,
    .compare-card-grid .compare-equation,
    .compare-card-grid .compare-points,
    .compare-card-grid .compare-detail-button,
    .compare-card-grid .compare-down-icon {
      display: none !important;
    }

    @media (max-width: 900px) {
      .compare-card-grid .compare-card {
        grid-template-columns: 42px minmax(0, 1fr) 42px !important;
        min-height: 98px !important;
        padding: 16px !important;
        column-gap: 14px !important;
      }

      .compare-card-grid .compare-save {
        font-size: clamp(23px, 6vw, 31px) !important;
      }
    }

    @media (max-width: 380px) {
      .compare-card-grid .compare-card {
        grid-template-columns: 34px minmax(0, 1fr) 40px !important;
        column-gap: 12px !important;
        padding: 14px !important;
      }

      .compare-card-grid .compare-no {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        font-size: 13px !important;
      }

      .compare-card-grid .compare-jump-button {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
      }

      .compare-card-grid .compare-name {
        font-size: 16px !important;
      }

      .compare-card-grid .compare-save {
        font-size: 23px !important;
        white-space: normal !important;
      }
    }



    /* v24: isolated designer-grade candidate cards */
    .compare-card-grid {
      display: grid !important;
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      gap: 12px !important;
      align-items: stretch !important;
    }

    .saving-jump-card {
      display: grid;
      grid-template-columns: 46px minmax(0, 1fr) 46px;
      gap: 16px;
      align-items: center;
      min-width: 0;
      min-height: 112px;
      padding: 18px 18px 18px 22px;
      border: 1.5px solid #bdf4e2;
      border-radius: 22px;
      background: #ffffff;
      box-shadow: 0 8px 22px rgba(15, 159, 134, 0.045);
      overflow: hidden;
    }

    .saving-jump-card.best {
      border-color: #45d8ae;
      box-shadow: 0 12px 28px rgba(15, 159, 134, 0.08);
    }

    .saving-jump-rank {
      width: 42px;
      height: 42px;
      border-radius: 999px;
      display: grid;
      place-items: center;
      background: #e9fbf6;
      color: #0f604f;
      font-size: 14px;
      font-weight: 950;
      line-height: 1;
      flex: 0 0 auto;
    }

    .saving-jump-card.best .saving-jump-rank {
      background: #34c4aa;
      color: #ffffff;
      box-shadow: 0 10px 20px rgba(15, 159, 134, 0.18);
    }

    .saving-jump-copy {
      min-width: 0;
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 5px;
      align-content: center;
    }

    .saving-jump-name {
      display: block;
      min-width: 0;
      max-width: 100%;
      color: #031525;
      font-size: clamp(15px, 1.15vw, 18px);
      font-weight: 950;
      line-height: 1.32;
      letter-spacing: -0.02em;
      white-space: normal;
      word-break: keep-all;
      overflow-wrap: anywhere;
    }

    .saving-jump-save {
      display: block;
      min-width: 0;
      max-width: 100%;
      color: #0f604f;
      font-size: clamp(22px, 2.05vw, 30px);
      font-weight: 950;
      line-height: 1.08;
      letter-spacing: -0.045em;
      white-space: nowrap;
      font-variant-numeric: tabular-nums;
    }

    .saving-jump-button {
      appearance: none;
      -webkit-appearance: none;
      justify-self: end;
      align-self: center;
      width: 46px;
      height: 46px;
      min-width: 46px;
      border-radius: 999px;
      border: 1.5px solid #9de8d9;
      background: #ffffff;
      color: #0f9f86;
      display: grid;
      place-items: center;
      padding: 0;
      cursor: pointer;
      line-height: 1;
      box-shadow: none;
      transition:
        transform .16s ease,
        background .16s ease,
        border-color .16s ease,
        box-shadow .16s ease;
    }

    .saving-jump-button span {
      display: block;
      transform: rotate(90deg) translateX(1px);
      font-size: 28px;
      font-weight: 650;
      line-height: 1;
    }

    .saving-jump-button:hover,
    .saving-jump-button:focus-visible {
      outline: none;
      background: #e9fbf6;
      border-color: #34c4aa;
      box-shadow: 0 8px 18px rgba(15, 159, 134, 0.12);
      transform: translateY(1px);
    }

    .saving-jump-button:active {
      transform: translateY(2px) scale(.96);
    }

    @media (max-width: 1160px) {
      .compare-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      }

      .saving-jump-save {
        font-size: clamp(24px, 3vw, 32px);
      }
    }

    @media (max-width: 760px) {
      .compare-card-grid {
        grid-template-columns: 1fr !important;
      }

      .saving-jump-card {
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        min-height: 104px;
        gap: 14px;
        padding: 17px 17px 17px 20px;
      }

      .saving-jump-name {
        font-size: 18px;
      }

      .saving-jump-save {
        font-size: clamp(27px, 7.2vw, 34px);
      }

      .saving-jump-button {
        width: 44px;
        height: 44px;
        min-width: 44px;
      }
    }

    @media (max-width: 420px) {
      .saving-jump-card {
        grid-template-columns: 38px minmax(0, 1fr) 42px;
        gap: 12px;
        padding: 15px 14px;
        border-radius: 20px;
      }

      .saving-jump-rank {
        width: 36px;
        height: 36px;
        font-size: 13px;
      }

      .saving-jump-name {
        font-size: 16px;
      }

      .saving-jump-save {
        font-size: clamp(24px, 6.4vw, 29px);
        letter-spacing: -0.04em;
      }

      .saving-jump-button {
        width: 42px;
        height: 42px;
        min-width: 42px;
      }
    }

    @media (max-width: 360px) {
      .saving-jump-save {
        white-space: normal;
      }
    }


    /* v26: beta release compliance notes */
    .beta-policy-stack {
      display: grid;
      gap: 8px;
      margin: 0 0 16px;
    }

    .beta-policy-note {
      border: 1px solid #dbe4ef;
      border-radius: 14px;
      background: rgba(255,255,255,.86);
      padding: 10px 12px;
      color: #475569;
      font-size: 11.5px;
      line-height: 1.65;
    }

    .beta-policy-note strong {
      color: #172033;
      font-weight: 950;
      margin-right: 4px;
    }

    .beta-policy-note.ad {
      background: #fffdf7;
      border-color: #fde68a;
    }

    .beta-policy-note.calc {
      background: #f8fbff;
      border-color: #c8dfff;
    }

    .beta-policy-note a {
      color: #155bb2;
      font-weight: 950;
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    @media (max-width: 560px) {
      .beta-policy-note {
        font-size: 11px;
        padding: 9px 10px;
      }
    }
