﻿/* _ec_page_styles.ascx から外部化（2026-09-28・優先25） */
    /* パンくず（案A：白地＋下線） */
    .site-bc {
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        margin: 0 0 10px 0;
        padding: 8px 0;
        border-bottom: 1px solid var(--color-border, #c5d0e0);
        background: #fff;
        font-size: 13px;
        line-height: 1.45;
        color: #666;
        text-align: left;
    }
    .site-bc-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: block;
    }
    .site-bc-item {
        display: inline;
        margin: 0;
        padding: 0;
    }
    .site-bc a {
        color: var(--color-navy, #1f4f9a) !important;
        text-decoration: none !important;
    }
    .site-bc a:hover {
        color: var(--color-navy-hover, #173d7a) !important;
        text-decoration: underline !important;
    }
    .site-bc-sep {
        display: inline-block;
        margin: 0 6px;
        color: #99a8bc;
        font-weight: 400;
    }
    .site-bc-here {
        color: #333;
        font-weight: 400;
    }
    body.m-shell .site-bc {
        margin: 0 0 8px 0;
        padding: 8px 0;
        font-size: 12px;
    }
    body.m-shell .site-bc-sep {
        margin: 0 4px;
    }

    /* リンク・強調 */
    .main a { color: var(--color-navy); }
    .main a:hover { color: var(--color-navy-hover); }
    .main .list_price_noTAX,
    .main .shousai_kensaku_shousai_price_noTAX,
    .main .shousai_kensaku_shousai_zaiko,
    .main .nogoods,
    .main .red,
    .main .RED { color: var(--color-amber); }

    /* 一覧区切り（下線が価格に被らないよう 1px＋余白。ホバーは背景のみ）
       行高は写真に合わせるが、旧スペック複数行向けの過剰な min-height は外す */
    .main .shousai_kensaku_list {
        height: auto;
        min-height: 0;
        border: none;
        border-bottom: 1px solid var(--color-border);
        padding-bottom: 8px;
        box-sizing: border-box;
        overflow: hidden;
        transition: background-color var(--transition-ui);
    }
    .main .shousai_kensaku_list:hover {
        background-color: var(--surface-card-hover);
    }
    .main .list_page_price_Box {
        position: relative;
        z-index: 1;
    }
    .main .clear hr {
        display: none !important;
    }

    /* Windows色箱と直上スペック文言の間隔 */
    .main .list_data {
        height: auto;
        min-height: 0;
    }
    .main .list_spec {
        height: auto;
        min-height: 0;
        margin-bottom: 8px;
        line-height: 1.5;
    }
    .main .list_spec.list_spec--oneline {
        min-height: 0;
        margin-bottom: 8px;
        font-size: 14px;
        line-height: 1.5;
        color: #333;
    }
    /* H4: 状態1行＋同型差分バッジ（案1） */
    .main .list_cond {
        margin: 4px 0 0;
        font-size: 12px;
        line-height: 1.4;
        color: #444;
    }
    .main .list_cond strong {
        color: #1f4f9a;
        font-weight: 700;
        margin-right: 4px;
    }
    .main .list_diff_wrap {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin-top: 6px;
    }
    .main .list_diff {
        display: inline-flex;
        align-items: center;
        padding: 2px 8px;
        border-radius: 4px;
        font-size: 11px;
        font-weight: 700;
        line-height: 1.4;
        border: 1px solid #c5d0e0;
        background: #f7f9fc;
        color: #1f4f9a;
    }
    .main .list_diff--key {
        background: #eef3fa;
        border-color: #5b8fd4;
        color: #173d7a;
    }
    .main .list_diff--cond {
        background: #fff;
        border-color: #c5d0e0;
        color: #444;
        font-weight: 600;
    }
    .main .list_toolbar {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
        gap: 8px;
        margin: 0 0 8px 0;
        font-size: 14px;
    }
    .main .list_count {
        color: #1f4f9a;
        font-weight: 700;
    }
    .main .list_form_factor {
        display: inline-block;
        margin-left: 8px;
        padding: 2px 8px;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.4;
        color: #1f4f9a;
        background: #eef3fa;
        border: 1px solid #c5d0e0;
        border-radius: 4px;
        vertical-align: middle;
    }
    .main .order_price a.is-active {
        background-color: #dcdcdc;
        padding: 2px 4px;
    }

    /* N2: いまの条件帯 */
    .main .list_conditions {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        width: 810px;
        max-width: 100%;
        box-sizing: border-box;
        margin: 0 0 12px 0;
        padding: 8px 12px;
        border: 1px solid var(--color-border, #c5d0e0);
        border-radius: 8px;
        background: #fff;
    }
    .main .list_conditions_label {
        color: #555;
        font-size: 12px;
        font-weight: 700;
        line-height: 1;
    }
    .main .list_cond_chip {
        display: inline-flex;
        align-items: center;
        min-height: 24px;
        padding: 0 10px;
        border: 1px solid #c5d0e0;
        border-radius: 4px;
        background: #eef3fa;
        color: #1f4f9a;
        font-size: 12px;
        font-weight: 700;
        line-height: 1;
    }

    /* N3 / DZ-6: OSグループは h3 左線型（16px・左3px紺）。メーカーは一段下 */
    .main h3.list_group_heading_os,
    .main .list_group_heading_os {
        width: 810px;
        max-width: 100%;
        box-sizing: border-box;
        margin: 16px 0 8px;
        padding: 4px 0 4px 10px;
        border-left: 3px solid #1f4f9a;
        border-bottom: 0;
        font-size: 16px;
        font-weight: 700;
        color: #1f4f9a;
        line-height: 1.4;
        font-family: inherit;
    }
    .main h3.list_group_heading_os:first-child,
    .main .list_group_heading_os:first-child {
        margin-top: 0;
    }
    .main h3.list_group_heading_maker,
    .main .list_group_heading_maker {
        width: 810px;
        max-width: 100%;
        box-sizing: border-box;
        margin: 12px 0 6px;
        padding: 2px 0 2px 8px;
        border-left: 3px solid #c5d0e0;
        font-size: 14px;
        font-weight: 700;
        color: #333;
        line-height: 1.4;
        font-family: inherit;
    }
    /* A-3: 一覧ページの見える h1（パンくず直下） */
    .main h1.list-page-h1 {
        width: 810px;
        max-width: 100%;
        box-sizing: border-box;
        margin: 0 0 12px;
        padding: 0;
        border: 0;
        font-size: 18px;
        font-weight: 700;
        color: #1f4f9a;
        line-height: 1.4;
        font-family: inherit;
    }

    /* N2: 行 左写真／中情報／右価格 */
    .main .shousai_kensaku_list.list_row--n2 {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        gap: 12px;
        width: 810px;
        max-width: 100%;
        height: auto;
        min-height: 0;
        margin-top: 6px;
        padding: 8px 0;
        overflow: visible;
    }
    .main .list_row--n2 .list_picture {
        float: none;
        flex: 0 0 160px;
        width: 160px;
        position: relative;
    }
    .main .list_row--n2 .list_picture img {
        max-width: 160px;
        width: 160px;
        height: auto;
        vertical-align: top;
    }
    .main .list_row--n2 .list_picture_pile_CPU {
        top: 100px;
        left: 2px;
    }
    .main .list_row--n2 .list_picture_pile_RAM {
        top: 100px;
        left: 54px;
    }
    .main .list_row--n2 .list_picture_pile_DRIVE {
        top: 100px;
        left: 106px;
    }
    .main .list_row--n2 .list_picture_pile_CPU img,
    .main .list_row--n2 .list_picture_pile_RAM img,
    .main .list_row--n2 .list_picture_pile_DRIVE img {
        max-width: 50px;
        height: auto;
    }
    .main .list_row--n2 .list_Office_img {
        width: 160px;
        margin-left: 0;
    }
    .main .list_row--n2 .list_Office_img img {
        max-width: 160px;
        height: auto;
    }
    .main .list_row--n2 .list_mid {
        flex: 1 1 auto;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }
    .main .list_row--n2 .maker_ID_BOX {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px 8px;
        margin: 0;
    }
    .main .list_row--n2 .list_maker {
        float: none;
        font-size: 14px;
        font-weight: 700;
    }
    .main .list_row--n2 .list_form_factor {
        margin-left: 0;
    }
    .main .list_row--n2 .list_ID {
        float: none;
        margin-left: 0;
        font-size: 12px;
        color: #555;
    }
    .main .list_row--n2 .list_name {
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
    }
    .main .list_row--n2 .list_spec.list_spec--oneline {
        margin-bottom: 4px;
    }
    .main .list_row--n2 .list_state {
        margin-top: 2px;
    }
    .main .list_row--n2 .list_WindowsBox {
        float: none;
        display: inline-flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-start;
        gap: 6px;
        width: auto;
        max-width: 100%;
        height: auto;
        min-height: 28px;
        padding: 4px 10px;
        box-sizing: border-box;
    }
    .main .list_row--n2 .list_windowsname,
    .main .list_row--n2 .list_editionname {
        display: inline;
        margin: 0;
        padding: 0;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.2;
        white-space: nowrap;
    }
    .main .list_row--n2 .list_right {
        flex: 0 0 148px;
        width: 148px;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        justify-content: center;
        gap: 6px;
        text-align: right;
    }
    .main .list_row--n2 .list_price_primary {
        color: #c85a10;
        font-size: 18px;
        font-weight: 700;
        line-height: 1.2;
    }
    .main .list_row--n2 .list_price_secondary {
        color: #666;
        font-size: 12px;
        line-height: 1.2;
    }
    .main .list_detail_cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 32px;
        padding: 0 10px;
        border: 1px solid #1f4f9a;
        border-radius: 8px;
        background: #fff;
        color: #1f4f9a !important;
        font-size: 13px;
        font-weight: 700;
        white-space: nowrap;
        text-decoration: none !important;
        transition: background-color 0.15s, color 0.15s;
    }
    .main .list_detail_cta:hover {
        background: #1f4f9a;
        color: #fff !important;
    }
    .main .list_cta_stack {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
        width: 132px;
        max-width: 100%;
    }
    .main .list_cta_inline {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px;
    }
    .main .list_cta_stack .list_detail_cta,
    .main .list_cta_stack .list_cart_cta {
        width: 100%;
        box-sizing: border-box;
    }
    .main .list_cart_cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 32px;
        padding: 0 12px;
        border: 1px solid #f07812;
        border-radius: 8px;
        background: #f07812;
        color: #fff !important;
        font-size: 13px;
        font-weight: 700;
        white-space: nowrap;
        text-decoration: none !important;
        transition: background-color 0.15s, border-color 0.15s;
    }
    .main .list_cart_cta:hover {
        background: #c85a10;
        border-color: #c85a10;
        color: #fff !important;
    }
    .main .list_dup_badge {
        display: inline-flex;
        align-items: center;
        margin-left: 8px;
        padding: 0 8px;
        min-height: 20px;
        border: 1px solid #1f4f9a;
        border-radius: 8px;
        background: #eef3fa;
        color: #1f4f9a;
        font-size: 12px;
        font-weight: 700;
        line-height: 1;
        vertical-align: middle;
    }
    .main .list_dup {
        margin: -4px 0 12px;
        padding: 8px 12px;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        background: #f7f9fc;
    }
    .main .list_dup summary {
        cursor: pointer;
        color: #1f4f9a;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.4;
    }
    .main .list_dup_list {
        margin: 8px 0 0;
        padding: 0;
        list-style: none;
    }
    .main .list_dup_item {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        margin: 0;
        padding: 8px 0 4px;
    }
    .list-item-block.is-list-more-hidden {
        display: none;
    }
    .main .list-more {
        display: flex;
        justify-content: center;
        margin: 16px 0 24px;
    }
    .main .list-more-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        min-height: 40px;
        padding: 0 24px;
        border: 1px solid #1f4f9a;
        border-radius: 8px;
        background: #1f4f9a;
        color: #fff;
        font-size: 14px;
        font-weight: 700;
        font-family: inherit;
        text-decoration: none;
        cursor: pointer;
        transition: background-color 0.15s, border-color 0.15s;
    }
    .main .list-more-btn:hover,
    .main a.list-more-btn:hover {
        background: #173d7a;
        border-color: #173d7a;
        color: #fff;
        text-decoration: none;
    }
    .main .list_dup_main {
        display: flex;
        align-items: center;
        gap: 8px;
        flex: 1 1 220px;
        min-width: 0;
        color: #333;
        font-size: 13px;
        line-height: 1.4;
    }
    .main .list_dup_item img {
        width: 56px;
        height: 42px;
        object-fit: cover;
        border: 1px solid #c5d0e0;
        border-radius: 4px;
        background: #fff;
        flex: 0 0 auto;
    }

    .main .win_price_BOX {
        margin-top: 4px;
        clear: both;
    }
    .main .list_WindowsBox {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        box-sizing: border-box;
        height: 50px;
        padding: 4px 6px;
        margin: 0;
        line-height: 1.2;
        text-align: center;
    }
    .main .list_windowsname,
    .main .list_editionname {
        margin: 0;
        padding: 0;
        line-height: 1.2;
    }
    .main .list_windowsname {
        font-size: 1.45em;
        font-weight: 700;
    }
    .main .list_editionname {
        font-size: 1.05em;
        font-weight: 700;
    }
    /* DZ-1/H5: OS表示をトップのチップに統一（淡紺／旧は淡灰。色分け禁止） */
    .main .list_WindowsBox,
    .main .shousai_kensaku_shousai_widows_box {
        border: 1px solid #c5d0e0 !important;
        border-radius: 4px !important;
        box-sizing: border-box;
    }
    .main .list_windowsname,
    .main .list_editionname,
    .main .shousai_kensaku_shousai_widows_box .windows,
    .main .shousai_kensaku_shousai_widows_box .edition,
    .main .shousai_kensaku_shousai_widows_box .windows-genuine {
        color: #1f4f9a !important;
    }
    .main .list_WindowsBox[style*="eceff1"] .list_windowsname,
    .main .list_WindowsBox[style*="eceff1"] .list_editionname,
    .main .shousai_kensaku_shousai_widows_box[style*="eceff1"] .windows,
    .main .shousai_kensaku_shousai_widows_box[style*="eceff1"] .edition,
    .main .shousai_kensaku_shousai_widows_box[style*="eceff1"] .windows-genuine {
        color: #666 !important;
    }

    /* 検索フォーム見出し */
    .main .kensaku_box_note,
    .main .kensaku_box_desktop {
        border-radius: var(--radius-md);
        border-color: var(--color-border);
        background-color: var(--color-bg-soft);
    }
    .main .kensaku_box_note .kensaku_title,
    .main .kensaku_box_desktop .kensaku_title {
        color: var(--color-navy);
        border-bottom-color: var(--color-navy);
    }

    /* 絞込（PC／ノート共通・指針寄せ） */
    .main .narrowing_pc_box {
        box-sizing: border-box;
        width: 810px; /* 一覧・見出し行と右端揃え */
        margin: 8px 0 12px 0;
        padding: 12px 16px;
        border: 2px solid var(--color-border);
        border-radius: var(--radius-md);
        background-color: var(--color-bg-soft);
    }
    .main .narrowing_pc_head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 12px;
        margin: 0 0 12px 0;
    }
    .main .narrowing_pc_caption {
        display: inline-block;
        width: auto;
        margin: 0;
        padding: 0 0 4px 4px;
        color: var(--color-navy);
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
        border-bottom: 2px solid var(--color-navy);
    }
    .main .narrowing_pc_link {
        flex: 0 0 auto;
        margin: 0 0 2px 0;
        padding: 0;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.35;
        white-space: nowrap;
        text-align: right;
    }
    .main .narrowing_pc_fields {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 24px;
        align-items: center;
    }
    .main .narrowing_pc_field {
        display: flex;
        align-items: center;
        gap: 8px;
        box-sizing: border-box;
        flex: 0 0 calc(50% - 12px);
        min-width: 300px;
    }
    .main .narrowing_pc_field--wide {
        flex: 0 0 100%;
        min-width: 0;
    }
    .main .narrowing_pc_range {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }
    .main .narrowing_pc_range-sep {
        color: #333;
        font-size: 14px;
        line-height: 1.35;
    }
    .main .narrowing_pc_input--size,
    .main .narrowing_pc_range .narrowing_pc_input,
    .main .narrowing_pc_range select {
        width: auto;
        max-width: 140px;
        min-width: 110px;
    }
    .main .narrowing_pc_label {
        flex: 0 0 7.5em;
        width: auto;
        margin: 0;
        padding: 0;
        color: var(--color-navy);
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
        text-align: right;
        white-space: nowrap;
    }
    .main .narrowing_pc_label label {
        margin: 0;
        font-size: inherit;
        font-weight: inherit;
        color: inherit;
        white-space: nowrap;
    }
    .main .narrowing_pc_control {
        flex: 1 1 auto;
        min-width: 0;
    }
    .main .narrowing_pc_input,
    .main .narrowing_pc_control select,
    .main .narrowing_pc_control input[type="text"] {
        box-sizing: border-box;
        width: 100%;
        max-width: 220px;
        height: 32px;
        margin: 0;
        padding: 4px 8px;
        font-size: 14px;
        line-height: 1.35;
        color: #222;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-sm);
        background: #fff;
        vertical-align: middle;
    }
    .main .narrowing_pc_input:focus,
    .main .narrowing_pc_control select:focus,
    .main .narrowing_pc_control input[type="text"]:focus {
        outline: none;
        border-color: var(--color-navy);
        box-shadow: 0 0 0 2px rgba(31, 79, 154, 0.12);
    }
    .main .narrowing_pc_actions,
    .main .narrowing_pc_buttom {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 12px;
        width: auto;
        margin-top: 12px;
        padding: 0;
    }
    .main .narrowing_pc_box > table {
        width: 100%;
        border-collapse: collapse;
    }
    .main .narrowing_pc_box > table td {
        vertical-align: middle;
        padding: 4px 8px;
    }
    .main .narrowing_pc_box > table .narrowing_pc_label {
        width: 7.5em;
        padding-left: 0;
        padding-right: 8px;
    }
    .main .BTN_narrow {
        box-sizing: border-box;
        width: auto;
        min-width: 100px;
        height: auto;
        min-height: 32px;
        margin: 0;
        padding: 6px 16px;
        border: none;
        border-radius: var(--radius-md);
        background-color: var(--color-navy);
        color: #fff;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
        cursor: pointer;
        transition: background-color var(--transition-ui);
    }
    .main .BTN_narrow:hover { background-color: var(--color-navy-hover); }

    /* 詳細スペック表（DZ-13: 淡紺地・左寄せ・太字#333） */
    .main .shousai_kensaku_shousai_table th {
        background-color: #f7f9fc;
        color: #333;
        font-weight: 700;
        text-align: left;
        border-color: #c5d0e0;
    }
    .main .shousai_kensaku_shousai_table td {
        border-color: #c5d0e0;
        text-align: left;
    }

    /* カート */
    .main .cart_table {
        border-color: var(--color-navy);
    }
    .main .cart_box th {
        background: var(--color-navy);
        color: #fff;
    }

    /* 注文ステップ */
    .main .order_title_box {
        box-sizing: border-box;
        width: 800px;
        height: auto;
        min-height: 0;
        margin: 24px 0;
        padding: 10px 12px;
        text-align: center;
        line-height: 1.4;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);
        -webkit-border-radius: var(--radius-md);
        -moz-border-radius: var(--radius-md);
        overflow: visible;
    }
    .main .order_title {
        display: inline-block;
        vertical-align: middle;
        font-size: 14px;
        line-height: 1.4;
        color: #333;
    }
    .main .order_title_current {
        display: inline-block;
        vertical-align: middle;
        box-sizing: border-box;
        margin: 0 2px;
        padding: 4px 8px;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
        color: var(--color-navy);
        background-color: var(--color-bg-soft-2);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-sm);
    }

    /* 注文チェックアウト進捗（カート〜完了）2026-09-25 */
    .main .order-checkout-stepper {
        display: flex;
        gap: 4px;
        list-style: none;
        margin: 0 0 16px;
        padding: 10px 8px;
        background: var(--color-bg-soft, #f7f9fc);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);
    }
    .main .order-checkout-step {
        flex: 1;
        text-align: center;
        font-size: 12px;
        color: #666;
        line-height: 1.35;
    }
    .main .order-checkout-step-num {
        display: block;
        width: 22px;
        height: 22px;
        margin: 0 auto 4px;
        line-height: 22px;
        border-radius: 50%;
        background: #dce4ef;
        color: #556;
        font-weight: 700;
        font-size: 12px;
    }
    .main .order-checkout-step.is-now {
        color: var(--color-navy);
        font-weight: 700;
    }
    .main .order-checkout-step.is-now .order-checkout-step-num {
        background: var(--color-navy);
        color: #fff;
    }
    .main .order-checkout-step.is-done .order-checkout-step-num {
        background: #5b8fd4;
        color: #fff;
    }
    .main .order-checkout-step.is-link .order-checkout-step-link {
        display: block;
        color: inherit;
        text-decoration: none;
        cursor: pointer;
    }
    .main .order-checkout-step.is-link .order-checkout-step-link:hover {
        color: var(--color-navy);
        text-decoration: underline;
    }
    .main .order-checkout-step.is-link .order-checkout-step-link:hover .order-checkout-step-num {
        background: var(--color-navy);
        color: #fff;
    }

    /* 注文集中：レフト非表示時はメインをレイアウト幅いっぱい使う */
    body.checkout-focus .content-wrapper {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    body.checkout-focus .main {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
        padding-left: 8px;
        padding-right: 8px;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    body.checkout-focus .main .cart_box,
    body.checkout-focus .main .cart_table,
    body.checkout-focus .main .order_box,
    body.checkout-focus .main .order_title_box,
    body.checkout-focus .main .order_input_box,
    body.checkout-focus .main .order_chuii,
    body.checkout-focus .main .cart_confirm_box,
    body.checkout-focus .main .order-confirm-legal,
    body.checkout-focus .main .order-checkout-stepper,
    body.checkout-focus .main .order-input-error,
    body.checkout-focus .main .warranty-note,
    body.checkout-focus .main .list-page-h1,
    body.checkout-focus .main .order_confirm_confirm_explain,
    body.checkout-focus .main .order_finish_explain,
    body.checkout-focus .main .order-finish-fail-summary,
    body.checkout-focus .main .order-finish-fail-cart,
    body.checkout-focus .main .order-finish-fail-input,
    body.checkout-focus .main .pd-flow-note,
    body.checkout-focus .main .pd-flow-note--cart,
    body.checkout-focus .main .pd-cart-reassure,
    body.checkout-focus .main .order-check-yoten,
    body.checkout-focus .main .goriyou_annai_box {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    body.checkout-focus .main .cart_confirm_box {
        text-align: center;
    }

    .main .BTN_order.BTN_order--secondary,
    .main span.BTN_order.BTN_order--secondary {
        background-color: #fff;
        color: var(--color-navy);
        border: 2px solid var(--color-navy);
        box-sizing: border-box;
    }
    .main .BTN_order.BTN_order--secondary:hover,
    .main span.BTN_order.BTN_order--secondary:hover {
        background-color: #f8fbff;
        color: #173d7a;
        border-color: #173d7a;
    }
    .main .cart_confirm_box .BTN_order.BTN_order--primary {
        font-size: 1.1em;
        padding: 10px 22px;
        min-height: 40px;
    }

    /* 注文完了ページ */
    .main .order_finish_explain {
        box-sizing: border-box;
        width: 810px;
        max-width: 100%;
        margin: 0 auto;
        padding: 0 0 24px 0;
        text-align: left;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.6;
        color: #222;
    }
    .main .order_finish_explain p {
        margin: 0 0 12px 0;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.6;
    }
    .main .order_finish_explain .RED {
        color: var(--color-amber);
        font-weight: 700;
    }
    .main .order-finish-error {
        box-sizing: border-box;
        width: 100%;
        margin: 0 0 16px 0;
        padding: 14px 16px;
        border: 2px solid #c62828;
        border-radius: var(--radius-md);
        background: #fff5f5;
        text-align: left;
    }
    .main .order-finish-error-title {
        margin: 0 0 6px 0;
        padding: 0;
        color: #b71c1c;
        font-size: 16px;
        font-weight: 700;
        line-height: 1.4;
    }
    .main .order-finish-error-msg {
        margin: 0;
        padding: 0;
        color: #333;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.6;
    }
    .main .order-finish-fail-summary {
        margin: 0 0 24px 0;
        text-align: left;
    }
    .main .order-finish-fail-hint {
        margin: 0 0 12px 0;
        padding: 10px 14px;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
        color: #222;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.5;
    }
    .main .order-finish-fail-cart {
        width: 100%;
        box-sizing: border-box;
        margin: 0 0 12px 0;
        border-collapse: separate;
        border-spacing: 0;
        table-layout: fixed;
        background: #fff;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        overflow: hidden;
        text-align: left;
    }
    .main .order-finish-fail-cart th,
    .main .order-finish-fail-cart td {
        box-sizing: border-box;
        padding: 12px 14px;
        border: none;
        border-bottom: 1px solid #c5d0e0;
        vertical-align: top;
        line-height: 1.5;
    }
    .main .order-finish-fail-cart thead th {
        background: #f7f9fc;
        color: #333;
        font-size: 13px;
        font-weight: 700;
        text-align: left;
    }
    .main .order-finish-fail-cart-th-price {
        width: 140px;
        text-align: right !important;
    }
    .main .order-finish-fail-cart-info {
        text-align: left;
        color: #222;
        font-size: 14px;
    }
    .main .order-finish-fail-cart-name {
        margin: 0 0 4px 0;
        font-weight: 700;
        color: #222;
        line-height: 1.4;
    }
    .main .order-finish-fail-cart-meta {
        margin: 0;
        color: #555;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.5;
    }
    .main .order-finish-fail-cart-price {
        width: 140px;
        text-align: right;
        white-space: nowrap;
    }
    .main .order-finish-fail-cart-price-main {
        font-size: 16px;
        font-weight: 700;
        color: #c85a10;
        line-height: 1.3;
    }
    .main .order-finish-fail-cart-price-sub {
        margin-top: 2px;
        font-size: 12px;
        font-weight: 400;
        color: #666;
        line-height: 1.3;
    }
    .main .order-finish-fail-cart tfoot th,
    .main .order-finish-fail-cart tfoot td {
        background: #f7f9fc;
        font-size: 14px;
        vertical-align: middle;
    }
    .main .order-finish-fail-cart tfoot th {
        text-align: right;
        font-weight: 700;
        color: #333;
    }
    .main .order-finish-fail-cart tfoot td {
        text-align: right;
        font-weight: 700;
        color: #222;
        white-space: nowrap;
    }
    .main .order-finish-fail-cart-total th,
    .main .order-finish-fail-cart-total td {
        border-bottom: none;
        color: #1f4f9a;
    }
    .main .order-finish-fail-cart tbody tr:last-child td {
        border-bottom: 1px solid #c5d0e0;
    }
    .main .order-finish-fail-cart tr.is-warranty td {
        background: #f7f9fc;
    }
    .main .order-finish-fail-input {
        width: 100%;
        max-width: 100%;
    }
    .main .order-finish-fail-input .order_input_input_box_left {
        background: #f7f9fc;
        color: #333;
    }
    .main .order-finish-orderid {
        margin: 0 0 16px 0;
        font-size: 16px;
        font-weight: 700;
        color: var(--color-navy);
        line-height: 1.4;
    }
    .main .order-finish-thanks {
        box-sizing: border-box;
        width: 100%;
        margin: 0 0 16px 0;
        padding: 20px 16px;
        text-align: center;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
    }
    .main .order-finish-thanks .order-finish-orderid {
        margin: 12px 0 0 0;
        font-size: 14px;
    }
    /* E2: 取り置き・連絡約束 */
    .main .order-finish-hold {
        box-sizing: border-box;
        width: 100%;
        margin: 0 0 16px 0;
        padding: 12px 14px;
        text-align: left;
        background: #eef3fa;
        border: 1px solid #c5d0e0;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
    }
    .main .order-finish-hold-text {
        margin: 0 !important;
        color: #1f4f9a;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.55;
    }
    .main .order-finish-thanks-main {
        margin: 0 0 6px 0 !important;
        padding: 0;
        color: #1f4f9a;
        font-size: 18px !important;
        font-weight: 700 !important;
        line-height: 1.4 !important;
    }
    .main .order-finish-thanks-sub {
        margin: 0 !important;
        padding: 0;
        color: #222;
        font-size: 14px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
    }
    .main .order-finish-lead,
    .main .order-finish-closing {
        margin: 0 0 16px 0;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.6;
        color: #222;
    }
    .main .order-finish-lead strong,
    .main .order-finish-section strong {
        color: #222;
        font-weight: 700;
    }
    .main .order-finish-section {
        margin: 0 0 16px 0;
        padding: 0;
        border: none;
        border-radius: 0;
        background: transparent;
    }
    .main .order-finish-section--summary,
    .main .order-finish-section--guide {
        margin: 0 0 24px 0;
    }
    .main .order-finish-section .order-finish-h {
        margin: 0 0 12px 0;
        padding: 0 0 4px 0;
        font-size: 18px;
        font-weight: 700;
        color: #1f4f9a;
        line-height: 1.4;
        border-bottom: 2px solid #1f4f9a;
    }
    .main .order-finish-section p {
        margin: 0;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.6;
        color: #222;
    }
    .main .order-finish-section p + p {
        margin-top: 8px;
    }
    .main .order_finish_explain .soudann_box {
        width: 100%;
        margin-top: 16px;
    }
    /* 注文確認：案内目次（cart_box の text-align:center を打ち消し） */
    .main .order_annai_toc {
        width: 810px;
        box-sizing: border-box;
        margin: 12px 0;
        padding: 0;
        text-align: left;
        background: #fff;
        border: 1px solid var(--color-border);
        border-left: 4px solid var(--color-navy);
        border-radius: var(--radius-md);
        overflow: hidden;
    }
    .main .order_annai_toc-lead {
        margin: 0;
        padding: 14px 16px 12px;
        font-size: 14px;
        font-weight: 700;
        color: var(--color-navy);
        line-height: 1.5;
        background: var(--color-bg-soft);
        border-bottom: 1px solid var(--color-border-soft);
    }
    .main .order_annai_toc-nav {
        display: block;
        margin: 0;
        padding: 8px;
    }
    .main .order_annai_toc-item {
        display: flex;
        align-items: center;
        gap: 12px;
        margin: 0 0 6px 0;
        padding: 12px 14px;
        box-sizing: border-box;
        color: #222 !important;
        text-decoration: none !important;
        text-align: left;
        background: #fff;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);
        transition: background-color var(--transition-ui), border-color var(--transition-ui);
    }
    .main .order_annai_toc-item:last-child {
        margin-bottom: 0;
    }
    .main .order_annai_toc-item:hover {
        background: var(--surface-card-hover);
        border-color: var(--color-navy);
        color: var(--color-navy) !important;
    }
    .main .order_annai_toc-num {
        flex: 0 0 28px;
        width: 28px;
        height: 28px;
        line-height: 28px;
        text-align: center;
        font-size: 13px;
        font-weight: 700;
        color: #fff;
        background: var(--color-navy);
        border-radius: var(--radius-sm);
    }
    .main .order_annai_toc-label {
        flex: 1 1 auto;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.4;
        color: inherit;
    }
    .main .order_annai_toc-go {
        flex: 0 0 auto;
        font-size: 11px;
        color: var(--color-sky);
        line-height: 1;
    }
    .main .order_annai_toc-item:hover .order_annai_toc-go {
        color: var(--color-navy);
    }
    .main .order_annai_section {
        width: 810px;
        margin: 0 0 16px 0;
        padding-top: 4px;
        scroll-margin-top: 16px;
        text-align: left;
    }
    .main .order_annai_section + .order_annai_section {
        border-top: 2px solid var(--color-navy);
        padding-top: 16px;
        margin-top: 4px;
    }
    /* 案内本文：読みやすさは保ちつつ余白を詰めすぎない程度に調整 */
    .main .order_annai_section .svc-page {
        width: 810px;
        max-width: 100%;
        box-sizing: border-box;
        margin: 0;
        padding: 4px 0 8px;
        text-align: left;
        font-size: 14px;
        line-height: 1.75;
        color: #333;
    }
    .main .order_annai_section .svc-page .sp-title {
        margin: 0 0 8px 0;
        font-size: 20px;
        line-height: 1.35;
    }
    .main .order_annai_section .svc-page .sp-intro {
        margin: 0 0 16px 0;
        padding: 10px 12px;
        background: var(--color-bg-soft);
        border-radius: var(--radius-md);
        line-height: 1.75;
        color: #333;
    }
    .main .order_annai_section .svc-page .sp-section {
        margin: 0 0 20px 0;
    }
    .main .order_annai_section .svc-page .sp-section:last-child {
        margin-bottom: 0;
    }
    .main .order_annai_section .svc-page .sp-h2 {
        margin: 0 0 8px 0;
        padding: 0 0 6px 0;
        font-size: 16px;
        line-height: 1.4;
    }
    .main .order_annai_section .svc-page p,
    .main .order_annai_section .svc-page .sp-lead {
        margin: 0 0 8px 0;
        text-align: left;
        line-height: 1.75;
        color: #333;
    }
    .main .order_annai_section .svc-page .sp-sub {
        margin: 0 0 12px 0;
    }
    .main .order_annai_section .svc-page .sp-sub p,
    .main .order_annai_section .svc-page .sp-method p {
        margin: 0 0 4px 0;
        text-align: left;
        line-height: 1.75;
        color: #333;
    }
    .main .order_annai_section .svc-page .sp-list,
    .main .order_annai_section .svc-page .sp-steps {
        margin: 0 0 8px 0;
        padding: 0 0 0 1.4em;
        text-align: left;
    }
    .main .order_annai_section .svc-page .sp-list li,
    .main .order_annai_section .svc-page .sp-steps li {
        margin: 0 0 6px 0;
        padding-left: 2px;
        line-height: 1.75;
        color: #333;
    }
    .main .order_annai_section .svc-page .sp-method {
        margin: 0 0 12px 0;
        padding: 0 0 12px 0;
    }
    .main .order_annai_section .svc-page .sp-method:last-child {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
    }
    .main .order_annai_section .svc-page .sp-method-head,
    .main .order_annai_section .svc-page .sp-sub-title {
        margin: 0 0 4px 0;
        font-weight: 700;
        color: var(--color-navy);
        line-height: 1.5;
    }
    .main .order_annai_section .svc-page .sp-em {
        font-weight: 700;
        color: var(--color-amber);
    }
    /* 次へボタン周り・注意文の余白も詰める（箱の内側余白は維持して「浮き」を防ぐ） */
    .main .cart_box > .order_chuii {
        margin: 12px 0 8px;
        line-height: 1.6;
    }
    .main .cart_box > .cart_confirm_box {
        margin: 8px 0 12px;
    }
    .main .order_annai_box {
        border-color: var(--color-navy);
        border-radius: var(--radius-md);
    }

    /* 注文入力：バリデーションエラー（真のエラー＝赤例外） */
    .main .order-input-error {
        width: 810px;
        box-sizing: border-box;
        margin: 16px 0 12px;
        padding: 14px 16px;
        text-align: left;
        background: #fff5f5;
        border: 2px solid #c62828;
        border-radius: var(--radius-md);
    }
    .main .order-input-error-title {
        margin: 0 0 6px 0;
        font-size: 15px;
        font-weight: 700;
        color: #b71c1c;
        line-height: 1.4;
    }
    .main .order-input-error-msg {
        margin: 0;
        font-size: 16px;
        font-weight: 700;
        color: #c62828;
        line-height: 1.6;
    }
    .main .order-input-required {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        width: 1.15em;
        height: 1.15em;
        margin-left: 4px;
        padding: 0.12em 0 0 0; /* * 字形の上寄りを光学補正 */
        color: #fff;
        font-size: 12px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0;
        vertical-align: middle;
        background: #c62828;
        border-radius: var(--radius-sm);
    }
    .main .order_chuii .order-input-required {
        margin-left: 0;
        margin-right: 2px;
    }
    /* 注記文中の強調（バッジではなく文字色） */
    .main .order_chuii .order-input-required-text {
        display: inline;
        margin: 0;
        padding: 0;
        color: #c62828;
        font-size: inherit;
        font-weight: 700;
        letter-spacing: normal;
        background: transparent;
        border-radius: 0;
        vertical-align: baseline;
    }

    /* 注文入力：注記・フォーム表（指針寄せ） */
    .main .order_chuii {
        box-sizing: border-box;
        width: 810px;
        max-width: 100%;
        height: auto;
        margin: 16px 0 12px;
        padding: 12px 14px;
        text-align: left;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.6;
        color: #222;
        background: #eef3fa;
        border: 2px solid #1f4f9a;
        border-radius: var(--radius-md);
    }
    .main .order_input_box {
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        margin: 12px 0 0;
        padding: 0;
        font-size: 14px;
        border: none;
    }
    .main .order_input_input_box_table {
        width: 100%;
        border-collapse: separate;
        border-spacing: 0;
        table-layout: fixed;
        background: #fff;
        border: 2px solid #1f4f9a;
        border-radius: var(--radius-md);
        overflow: hidden;
    }
    .main .order_input_input_box_left {
        width: 160px;
        box-sizing: border-box;
        padding: 14px 12px;
        border: none;
        border-right: 1px solid #c5d0e0;
        border-bottom: 1px solid #c5d0e0;
        background: #eef3fa;
        color: #1f4f9a;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.5;
        text-align: left;
        vertical-align: top;
    }
    .main .order_input_input_box_right {
        width: auto;
        box-sizing: border-box;
        padding: 14px 16px;
        margin: 0;
        border: none;
        border-bottom: 1px solid #c5d0e0;
        color: #222;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.6;
        text-align: left;
        vertical-align: top;
    }
    .main .order_input_input_box_table tr:last-child .order_input_input_box_left,
    .main .order_input_input_box_table tr:last-child .order_input_input_box_right {
        border-bottom: none;
    }
    .main .order_input_input_box_right input[type="text"],
    .main .order_input_input_box_right input[type="password"],
    .main .order_input_input_box_right select,
    .main .order_input_input_box_right textarea {
        box-sizing: border-box;
        margin: 2px 4px 2px 0;
        padding: 6px 8px;
        font-size: 14px;
        line-height: 1.4;
        color: #222;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-sm);
        background: #fff;
        vertical-align: middle;
    }
    .main .order_input_input_box_right input[type="text"]:focus,
    .main .order_input_input_box_right input[type="password"]:focus,
    .main .order_input_input_box_right select:focus,
    .main .order_input_input_box_right textarea:focus {
        outline: none;
        border-color: var(--color-navy);
        box-shadow: 0 0 0 2px rgba(31, 79, 154, 0.12);
    }
    .main .order_input_input_box_Request {
        width: 100%;
        max-width: 520px;
        height: 100px;
        resize: vertical;
    }
    .main .order-input-pay {
        display: block;
        margin: 0 0 10px 0;
        padding: 0;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.5;
        cursor: pointer;
    }
    .main .order-input-pay:last-child {
        margin-bottom: 0;
    }
    .main .order-input-pay input[type="radio"] {
        margin: 0 6px 0 0;
        vertical-align: middle;
    }
    .main .order-input-pay-note {
        margin-left: 4px;
        color: #555;
        font-size: 12px;
        font-weight: 400;
    }
    .main .order-input-pickup-hint {
        margin: -4px 0 0 22px;
        padding: 0;
        font-size: 12px;
        line-height: 1.45;
        color: #555;
    }
    .main .order-input-pickup-hint a {
        color: #1f4f9a;
        text-decoration: underline;
    }
    .main .order-input-pickup-hint a:hover,
    .main .order-input-pickup-hint a:focus {
        color: #173d7a;
    }
    .main .order-input-row {
        margin: 0 0 8px 0;
        line-height: 1.5;
    }
    .main .order-input-row:last-child {
        margin-bottom: 0;
    }
    .main .order-input-label {
        display: inline-block;
        min-width: 5.5em;
        margin-right: 4px;
        color: #333;
        font-size: 13px;
        font-weight: 700;
        vertical-align: middle;
    }
    .main .order-input-label .order-input-required {
        margin-left: 2px;
        font-size: 11px;
    }
    .main .order-input-hint,
    .main .order-input-hint-inline {
        margin: 4px 0 0 0;
        color: #555;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.5;
    }
    .main .order-input-hint-inline {
        display: inline;
        margin-left: 6px;
    }
    .main .order-input-notes {
        margin: 10px 0 0 0;
        padding: 0 0 0 1.2em;
        color: #555;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.55;
    }
    .main .order-input-notes li {
        margin: 0 0 4px 0;
    }
    .main .cart_box .cart_confirm_box {
        margin-top: 16px;
        margin-bottom: 8px;
        text-align: center;
    }
    .main .cart_confirm_box--bottom {
        margin-top: 24px;
        margin-bottom: 16px;
        padding-top: 16px;
        border-top: 1px solid var(--color-border);
    }

    /* 商品詳細：価格・注記の揃え */
    .main .shousai_kensaku_shousai_support_price_box {
        margin-top: 8px;
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
        gap: 8px 12px;
        box-sizing: border-box;
        width: 400px;
        max-width: 100%;
    }
    .main .shousai_kensaku_shousai_price_box {
        text-align: right;
    }
    .main .shousai_kensaku_shousai_zaiko {
        text-align: right;
        margin-top: 2px;
        margin-bottom: 2px;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
    }
    .main .shousai_kensaku_shousai_zaiko img {
        vertical-align: middle;
        margin-left: 4px;
    }
    .main .shousai_kensaku_shousai_price_noTAX {
        text-align: right;
        margin-top: 2px;
        font-size: 28px;
        font-weight: 700;
        line-height: 1.2;
        letter-spacing: 0.02em;
    }
    .main .shousai_kensaku_shousai_price {
        text-align: right;
        margin-top: 2px;
        font-size: 12px;
        font-weight: 400;
        color: #555;
        line-height: 1.4;
    }
    .main .shousai_kensaku_shousai_explain_box {
        width: 100%;
        clear: both;
        padding-top: 8px;
        margin-bottom: 16px;
    }
    .main .shousai_kensaku_shousai_explain {
        width: 100%;
        float: none;
        text-align: left;
        margin-top: 0;
        margin-bottom: 0;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.55;
        color: #555;
    }
    .main .shousai_kensaku_shousai_maker {
        font-size: 16px;
        line-height: 1.3;
    }
    .main .shousai_kensaku_shousai_name {
        font-size: 20px;
        line-height: 1.35;
        margin-top: 2px;
        color: #222;
        font-weight: 700;
    }
    .main h1.shousai_kensaku_shousai_name {
        font-size: 20px;
        font-weight: 700;
        color: #222;
    }
    /* DZ-6: 詳細セクション h2＝下線型18px紺（inheritリセットをやめる） */
    .main h2.pd-key-spec-title,
    .main h2.pd-spec-detail-title,
    .main h2.pd-opt-title-text {
        display: block;
        margin: 0 0 8px 0;
        padding: 0 0 4px 0;
        border: 0;
        border-bottom: 2px solid #1f4f9a;
        background: transparent;
        font-size: 18px;
        font-weight: 700;
        line-height: 1.35;
        color: #1f4f9a;
    }
    .main .pd-opt-title h2.pd-opt-title-text {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    .main .shousai_kensaku_shousai_id {
        font-size: 12px;
        color: #666;
        font-weight: 400;
    }

    /* 商品詳細：写真ブロック密着（B）＋左下要点スペック（A） */
    .main .shousai_kensaku_shousai_picture {
        line-height: 0;
        margin: 0;
        padding: 0;
    }
    .main .shousai_kensaku_shousai_picture img {
        display: block;
        vertical-align: top;
    }
    .main .shousai_kensaku_shousai_widows_box {
        float: none;
        clear: both;
        box-sizing: border-box;
        width: 400px;
        height: auto;
        min-height: 0;
        margin: 4px 0;
        padding: 4px 8px;
        line-height: 1.3;
    }
    .main .shousai_kensaku_shousai_widows_box .windows {
        font-size: 22px;
        line-height: 1.25;
    }
    .main .shousai_kensaku_shousai_widows_box .edition {
        font-size: 13px;
    }
    .main .pd-thumbs {
        clear: both;
        width: 400px;
        margin: 0;
        padding: 0;
        line-height: 0;
        font-size: 0;
    }
    .main .pd-thumbs a {
        display: inline-block;
        margin: 0 4px 4px 0;
        vertical-align: top;
        line-height: 0;
    }
    .main .pd-thumbs img {
        display: block;
        width: 70px;
        height: auto;
        border: 1px solid var(--color-border);
        box-sizing: border-box;
    }
    .main .shousai_kensaku_shousai_youtube_box {
        margin-top: 8px;
        margin-left: 0;
        clear: both;
    }
    .main .shousai_kensaku_shousai_kitoffice_box {
        margin-top: 8px;
        clear: both;
    }
    .main .pd-key-spec {
        clear: both;
        box-sizing: border-box;
        width: 400px;
        margin-top: 12px;
        padding: 0;
        text-align: left;
    }
    .main .pd-key-spec-title {
        margin: 0 0 8px 0;
        padding: 0 0 4px 0;
        border-left: 0;
        border-bottom: 2px solid #1f4f9a;
        color: #1f4f9a;
        font-size: 18px;
        font-weight: 700;
        line-height: 1.35;
    }
    .main .pd-key-spec-table {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        font-size: 12px;
        line-height: 1.45;
        color: #222;
    }
    .main .pd-key-spec-table th,
    .main .pd-key-spec-table td {
        border: 1px solid var(--color-border);
        padding: 6px 8px;
        text-align: left;
        vertical-align: top;
        word-wrap: break-word;
    }
    .main .pd-key-spec-table th {
        width: 88px;
        background: #f7f9fc;
        font-weight: 700;
        color: #333;
        text-align: left;
        border-color: #c5d0e0;
    }
    .main .pd-battery-note td {
        font-size: 12px;
        line-height: 1.45;
        color: #333;
    }
    .main .pd-key-spec-more {
        display: inline-block;
        margin-top: 8px;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.4;
        color: var(--color-navy);
        text-decoration: none;
    }
    .main .pd-key-spec-more:hover {
        color: var(--color-navy-hover);
        text-decoration: underline;
    }
    #pd-spec-detail {
        scroll-margin-top: 16px;
    }

    /* 商品詳細：右サイド宣伝（相談案内） */
    .main .shousai_kensaku_shousai_senden.pd-aside {
        box-sizing: border-box;
        width: 300px;
        margin: 0;
        padding: 12px;
        text-align: left;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);
        background: #fff;
    }
    .main .pd-aside-lead {
        margin: 0 0 12px 0;
        padding: 0 0 0 8px;
        border-left: 3px solid var(--color-navy);
        color: var(--color-navy);
        font-size: 13px;
        font-weight: 700;
        line-height: 1.4;
    }
    .main .pd-aside-card {
        margin: 0 0 10px 0;
        padding: 10px 10px;
        border: 1px solid var(--color-border);
        border-left: 3px solid var(--color-navy);
        border-radius: var(--radius-sm);
        background: var(--color-bg-soft);
    }
    .main .pd-aside-card:last-child {
        margin-bottom: 0;
    }
    .main .pd-aside-h {
        margin: 0 0 6px 0;
        padding: 0;
        color: var(--color-navy);
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
    }
    .main .pd-aside-card p {
        margin: 0;
        padding: 0;
        color: #333;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.55;
    }
    .main .pd-aside-link {
        display: inline-block;
        margin-top: 8px;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.4;
        color: var(--color-navy);
        text-decoration: none;
    }
    .main .pd-aside-link:hover {
        color: var(--color-navy-hover);
        text-decoration: underline;
    }
    .main .pd-aside-tel {
        margin-top: 6px !important;
        color: #555 !important;
        font-size: 12px !important;
        font-weight: 700 !important;
    }

    /* 商品詳細：選べるオプション（階層・余白）
       ※注記は float 内のため margin-top だけでは隙間が出ない → padding-top で確保 */
    .main .shousai_kensaku_shousai_option.pd-opt {
        width: 400px;
        box-sizing: border-box;
        margin-top: 0;
        padding-top: 8px;
        clear: both;
        text-align: left;
    }
    .main .pd-opt-title {
        display: block;
        box-sizing: border-box;
        width: 100%;
        margin: 0 0 8px 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: #1f4f9a;
        font-size: 18px;
        font-weight: 700;
        line-height: 1.35;
    }
    .main .pd-opt-title-sub {
        margin-left: 4px;
        font-size: 12px;
        font-weight: 400;
        color: #555;
    }
    .main .pd-opt-intro,
    .main .pd-opt-note {
        margin: 0 0 8px 0;
        padding: 0;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.5;
        color: #555;
    }
    .main .pd-opt-note {
        margin: 0 0 6px 0;
        padding-left: 0;
    }
    .main .pd-opt-group {
        margin: 0 0 14px 0;
        padding: 0 0 12px 0;
        border-bottom: 1px solid var(--color-border);
    }
    .main .pd-opt-heading {
        margin: 0 0 6px 0;
        padding: 0;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.4;
        color: #222;
    }
    .main .pd-opt-group.pd-opt-warranty {
        padding: 10px 12px 12px;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-left: 3px solid #1f4f9a;
        border-radius: 8px;
        border-bottom: 1px solid #c5d0e0;
    }
    .main .pd-opt-group.pd-opt-warranty .pd-opt-heading {
        color: #1f4f9a;
    }
    .main .badge-1y {
        display: inline-flex;
        align-items: center;
        margin-left: 8px;
        padding: 3px 8px;
        border: 1px solid #1f4f9a;
        border-radius: 4px;
        background: #fff;
        color: #1f4f9a;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.2;
        vertical-align: middle;
        white-space: nowrap;
    }
    .main tr.cart_detail.warranty-row > td {
        background: #f7f9fc;
    }
    .main tr.cart_detail.warranty-row > td.cart_picid {
        border-left: 3px solid #1f4f9a;
    }
    .main tr.cart_detail.warranty-row .cart_info_name {
        color: #1f4f9a;
        font-weight: 700;
    }
    .main .warranty-note {
        margin: 16px 0 0;
        padding: 14px 16px;
        background: #eef3fa;
        border: 2px solid #1f4f9a;
        border-left: 6px solid #1f4f9a;
        border-radius: 8px;
        color: #1f4f9a;
        font-weight: 700;
        font-size: 16px;
        line-height: 1.5;
        text-align: center;
        letter-spacing: 0.02em;
        box-sizing: border-box;
    }
    .main .warranty-note .badge-1y {
        margin-left: 0;
        margin-right: 8px;
        vertical-align: baseline;
        background: #1f4f9a;
        color: #fff;
        border-color: #1f4f9a;
    }
    /* E3 案C: カート本体行直下の増設提案（目立たせ） */
    .main .cart-opt-suggest {
        display: block;
        margin: 10px 0 0 0;
        padding: 12px 12px 12px 14px;
        border: 1px solid #1f4f9a;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
        background: #eef3fa;
        text-align: left;
        box-sizing: border-box;
    }
    .main .cart-opt-suggest-label {
        display: inline-block;
        margin: 0 0 6px 0;
        padding: 2px 8px;
        border-radius: 4px;
        background: #1f4f9a;
        color: #fff;
        font-size: 11px;
        font-weight: 700;
        line-height: 1.3;
        vertical-align: middle;
    }
    .main .cart-opt-suggest-line {
        margin: 0;
        padding: 0;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.5;
        color: #1f4f9a;
    }
    .main .cart-opt-suggest-line + .cart-opt-suggest-line {
        margin-top: 8px;
    }
    .main .cart-opt-suggest-link {
        display: inline-block;
        margin-left: 8px;
        padding: 4px 12px;
        border-radius: 8px;
        background: #f07812;
        color: #fff !important;
        font-size: 13px;
        font-weight: 700;
        text-decoration: none !important;
        white-space: nowrap;
        vertical-align: middle;
        transition: background 0.15s;
    }
    .main .cart-opt-suggest-link:hover,
    .main .cart-opt-suggest-link:focus {
        background: #c85a10;
        color: #fff !important;
    }
    body.m-shell .main.ec-page .cart-opt-suggest {
        margin-top: 12px;
    }
    .main article.m-cart-item.warranty-row {
        background: #f7f9fc;
        border-left: 3px solid #1f4f9a;
    }
    .main article.m-cart-item.warranty-row .m-cart-item-name {
        color: #1f4f9a;
    }
    .main .pd-opt-row {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        box-sizing: border-box;
        width: 100%;
        margin: 0;
        padding: 5px 0 5px 2px;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.45;
        color: #222;
        cursor: pointer;
    }
    .main label.pd-opt-row {
        cursor: pointer;
    }
    .main .pd-opt-row input[type="checkbox"],
    .main .pd-opt-row input[type="radio"] {
        flex: 0 0 auto;
        margin: 3px 0 0 0;
        padding: 0;
    }
    .main .pd-opt-row label {
        flex: 1 1 auto;
        margin: 0;
        padding: 0;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.45;
        cursor: pointer;
    }
    .main .pd-opt-office-row {
        display: flex;
        align-items: center;
        gap: 12px;
        flex-wrap: wrap;
        margin-top: 4px;
    }
    .main .pd-opt-office-logo {
        float: none !important;
        display: block;
        margin: 0 !important;
        width: auto;
        max-width: 160px;
        height: 36px;
        object-fit: contain;
        object-position: left center;
    }
    .main .pd-opt .shousai_kensaku_shousai_option_list_office {
        float: none !important;
        width: auto;
        min-width: 200px;
        flex: 1 1 200px;
        margin: 0 !important;
    }
    .main .pd-opt .shousai_kensaku_shousai_option_list_office select {
        box-sizing: border-box;
        width: 100%;
        max-width: 260px;
        padding: 6px 8px;
        font-size: 13px;
        line-height: 1.4;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-sm);
        background: #fff;
    }

    /* 商品詳細：状態バッジ＋用途チップ（横並び） */
    .main .shousai_kensaku_shousai_support_box {
        width: auto;
        float: none;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px;
        text-align: left;
        margin-top: 4px;
        flex: 1 1 auto;
        min-width: 0;
    }
    .main .shousai_kensaku_shousai_price_box {
        width: auto;
        float: none;
        flex: 0 0 auto;
        margin-left: auto;
    }
    .main .pd-badge,
    .main a.pd-badge {
        display: inline-block;
        box-sizing: border-box;
        width: auto;
        max-width: 100%;
        margin: 0;
        padding: 5px 10px;
        text-align: left;
        text-decoration: none !important;
        color: #222 !important;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.3;
        white-space: nowrap;
        border: 1px solid var(--color-border);
        border-left: 3px solid var(--color-navy);
        border-radius: var(--radius-sm);
        background: var(--color-bg-soft);
        transition: background-color var(--transition-ui), border-color var(--transition-ui);
    }
    .main a.pd-badge:hover,
    .main a.pd-badge:focus {
        background: var(--surface-card-hover) !important;
        border-color: var(--color-navy);
        border-left-color: var(--color-navy);
        color: #222 !important;
    }
    .main .pd-badge--junk {
        border-left-color: #8b93a1;
        color: #555 !important;
        cursor: default;
    }
    /* D-3: 用途チップ（中古正常品の右）— 1行固定 */
    .main .shousai_kensaku_shousai_support_box .pd-badge--fit,
    .main .m-pd-summary-badges .pd-badge--fit {
        display: inline-block;
        margin-top: 0;
        border-left-color: #f07812;
        background: #fffaf5;
        white-space: nowrap;
        max-width: none;
        font-size: 12px;
        line-height: 1.35;
        cursor: default;
    }
    .main .m-pd-summary-badges {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px;
    }

    /* 商品詳細：Win10注意／Win11非対応（目安）— OS色帯の直下 */
    .main .pd-os-notice {
        margin: 8px 0 10px 0;
        padding: 8px 10px;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
    }
    .main .pd-os-notice-line {
        margin: 0;
        padding: 0;
        font-size: 13px;
        line-height: 1.55;
        color: #222;
    }
    .main .pd-os-notice-line + .pd-os-notice-line {
        margin-top: 4px;
    }
    .main .pd-os-notice-line a {
        color: #1f4f9a;
        text-decoration: underline;
    }
    .main .pd-os-notice-line a:hover {
        color: #173d7a;
    }
    body.m-shell .main.ec-page .pd-os-notice {
        margin: 8px 0;
        padding: 8px 10px;
    }

    /* 商品詳細FV：価格直下の事実バッジ（在庫／保証／送料） */
    .main .pd-fv-facts {
        margin: 8px 0 0 0;
        padding: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
        gap: 6px;
        clear: both;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .main .pd-fv-facts-line {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 6px;
        max-width: 100%;
        box-sizing: border-box;
    }
    .main .pd-fv-fact,
    .main a.pd-fv-fact {
        display: inline-flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        box-sizing: border-box;
        margin: 0;
        padding: 4px 8px;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        color: #222 !important;
        text-decoration: none !important;
        white-space: nowrap;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        background: #f7f9fc;
        vertical-align: middle;
    }
    .main a.pd-fv-fact--link:hover,
    .main a.pd-fv-fact--link:focus {
        border-color: #1f4f9a;
        background: #f8fbff;
        color: #222 !important;
    }
    .main .pd-fv-fact--muted {
        font-weight: 400;
        color: #555 !important;
        background: #f5f7fb;
    }
    /* Mobile：上段＝在庫＋保証／下段＝送料（2行） */
    body.m-shell .main.ec-page .pd-fv-facts {
        margin-top: 6px;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
        gap: 4px;
    }
    body.m-shell .main.ec-page .pd-fv-facts-line {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 4px;
        max-width: 100%;
    }
    body.m-shell .main.ec-page .pd-fv-fact,
    body.m-shell .main.ec-page a.pd-fv-fact {
        font-size: 11px;
        padding: 3px 6px;
    }

    /* 商品詳細：カートに入れる（旧 cartin.gif 置換） */
    .main .housai_kensaku_shousai_option_cartin {
        text-align: center;
        margin-top: 16px;
        padding-top: 4px;
        clear: both;
    }
    /* 精査C-3: 詳細スペック下の再訴求カート */
    .main .pd-cart-after-spec {
        clear: both;
        box-sizing: border-box;
        width: 100%;
        margin: 16px 0 8px 0;
        padding: 12px 0 0 0;
        text-align: center;
        border-top: 1px solid var(--color-border, #c5d0e0);
    }
    .main .pd-cart-after-spec .pd-purchase-reassure {
        margin: 0 auto 12px auto;
    }
    .main .pd-cart-after-spec-note {
        margin: 8px 0 0 0;
        padding: 0;
        font-size: 12px;
        line-height: 1.4;
        color: #666;
    }
    /* 精査C-3: 写真なしは NOW PRINTING 枠を小さく */
    .main .shousai_kensaku_shousai_pic_box.pd-no-photo .shousai_kensaku_shousai_picture {
        max-width: 160px;
        margin: 0 0 8px 0;
    }
    .main .shousai_kensaku_shousai_pic_box.pd-no-photo .shousai_kensaku_shousai_picture img {
        width: 160px !important;
        height: auto !important;
        max-height: 120px;
        object-fit: contain;
    }
    .main .pd-cart-under-price {
        clear: both;
        box-sizing: border-box;
        width: 100%;
        margin: 12px 0 4px 0;
        padding: 12px 0 0 0;
        text-align: center;
        border-top: 1px solid var(--color-border);
    }
    .main .pd-cart-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        box-sizing: border-box;
        min-width: 220px;
        min-height: 44px;
        padding: 10px 20px;
        border: none;
        border-radius: var(--radius-md);
        background: var(--color-orange);
        color: #fff;
        font-family: var(--font-sans, "Yu Gothic", "游ゴシック", YuGothic, Meiryo, "メイリオ", sans-serif);
        font-size: 16px;
        font-weight: 700;
        line-height: 1.3;
        cursor: pointer;
        transition: background-color var(--transition-ui), box-shadow var(--transition-ui);
        box-shadow: 0 2px 6px rgba(240, 120, 18, 0.28);
    }
    .main .pd-cart-btn--under-price {
        width: 100%;
        max-width: 360px;
        min-width: 220px;
        min-height: 48px;
        font-size: 17px;
    }
    .main .pd-cart-under-price-note {
        margin: 8px 0 0 0;
        padding: 0;
        color: #555;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.4;
        text-align: center;
    }
    /* E1: 購入ボタン直前の総額目安（送料税込・1行）＋＜内訳＞クリックで展開 */
    .main .pd-purchase-reassure {
        position: relative;
        box-sizing: border-box;
        max-width: 360px;
        margin: 0 auto 12px auto;
        padding: 10px 12px;
        text-align: left;
        background: #eef3fa;
        border: 1px solid #1f4f9a;
        border-radius: 8px;
        color: #333;
        font-size: 13px;
        line-height: 1.5;
        cursor: default;
    }
    .main .pd-purchase-reassure-row {
        margin: 0;
        padding: 0;
    }
    .main .pd-purchase-reassure-ship {
        margin: 0 0 4px 0;
        padding: 0;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.4;
        color: #333;
    }
    .main .pd-purchase-reassure-row + .pd-purchase-reassure-row {
        margin-top: 8px;
    }
    .main .pd-purchase-reassure-k {
        display: inline;
        margin-right: 0;
        color: #1f4f9a;
        font-size: 13px;
        font-weight: 700;
    }
    .main .pd-purchase-reassure-amt {
        color: #c85a10;
        font-size: 15px;
        font-weight: 700;
    }
    .main .pd-purchase-reassure-toggle {
        display: inline;
        margin-left: 8px;
        padding: 0;
        border: none;
        background: transparent;
        color: #1f4f9a;
        font-size: 12px;
        font-weight: 700;
        font-family: inherit;
        line-height: inherit;
        text-decoration: underline;
        cursor: pointer;
        vertical-align: baseline;
    }
    .main .pd-purchase-reassure-toggle:hover,
    .main .pd-purchase-reassure-toggle:focus {
        color: #173d7a;
    }
    .main .pd-purchase-reassure-toggle[aria-expanded="true"] {
        text-decoration: none;
    }
    .main .pd-purchase-reassure-detail {
        margin: 8px 0 0 0;
        padding: 8px 10px;
        background: #fff;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
    }
    .main .pd-purchase-reassure-detail[hidden] {
        display: none !important;
    }
    .main .pd-purchase-reassure-formula {
        margin: 0;
        padding: 0;
        color: #222;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.45;
        word-break: break-all;
    }
    .main .pd-purchase-reassure-result {
        margin: 6px 0 0 0;
        padding: 0;
        color: #c85a10;
        font-size: 13px;
        font-weight: 700;
    }
    .main .pd-purchase-reassure-sub {
        color: #555;
        font-size: 12px;
        font-weight: 400;
    }
    .main .pd-purchase-reassure-link {
        color: #1f4f9a;
        font-weight: 700;
        text-decoration: underline;
    }
    .main .pd-purchase-reassure-link:hover,
    .main .pd-purchase-reassure-link:focus {
        color: #173d7a;
    }
    body.m-shell .main.ec-page .pd-purchase-reassure {
        max-width: none;
        width: 100%;
    }
    .main .pd-erabikata-hint {
        box-sizing: border-box;
        max-width: 360px;
        margin: 0 auto 12px auto;
        padding: 0;
        text-align: left;
        color: #555;
        font-size: 13px;
        line-height: 1.5;
    }
    .main .shousai_kensaku_shousai_table_similar_midashi + .pd-erabikata-hint,
    .main .m-similar-title + .pd-erabikata-hint {
        max-width: none;
        margin: 8px 0 12px 0;
    }
    .main .pd-erabikata-link {
        color: #1f4f9a;
        font-weight: 700;
        text-decoration: underline;
    }
    .main .pd-erabikata-link:hover,
    .main .pd-erabikata-link:focus {
        color: #173d7a;
    }
    body.m-shell .main.ec-page .pd-erabikata-hint {
        max-width: none;
        width: 100%;
    }
    .main .pd-flow-note {
        box-sizing: border-box;
        max-width: 360px;
        margin: 10px auto 0 auto;
        padding: 10px 12px;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        color: #333;
    }
    /* 価格付近整理: 閉じたときは1行だけ（縦を伸ばさない） */
    .main .pd-flow-note--fold {
        margin: 8px auto 0 auto;
        padding: 0;
        background: transparent;
        border: 0;
        text-align: left;
    }
    .main .pd-flow-note--fold .pd-flow-details[open] {
        padding: 10px 12px;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        text-align: center;
    }
    .main .pd-flow-note--fold .pd-flow-details[open] .pd-flow-steps-line {
        margin-top: 8px;
    }
    .main .pd-flow-note--fold .pd-flow-details[open] .pd-flow-desc {
        text-align: left;
    }
    .main .pd-support-after-cart {
        margin-top: 12px;
        text-align: left;
    }
    body.m-shell .main.ec-page .pd-support-after-cart {
        margin-top: 10px;
    }
    .main .pd-flow-note .pd-flow-steps-line {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
        justify-content: center;
        gap: 2px 8px;
        margin: 2px 0 0 0;
        padding: 0;
    }
    .main .pd-flow-note .pd-flow-details {
        margin: 6px 0 0 0;
        padding: 0;
        text-align: left;
    }
    .main .pd-flow-note .pd-flow-summary {
        display: inline-block;
        cursor: pointer;
        color: #1f4f9a;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.4;
        list-style: none;
    }
    .main .pd-flow-note .pd-flow-summary::-webkit-details-marker {
        display: none;
    }
    .main .pd-flow-note .pd-flow-summary::before {
        content: "▸ ";
        font-weight: 700;
    }
    .main .pd-flow-note .pd-flow-details[open] > .pd-flow-summary::before {
        content: "▾ ";
    }
    .main .pd-flow-note .pd-flow-details[open] > .pd-flow-summary {
        margin-bottom: 6px;
    }
    .main .pd-flow-note .pd-flow-details .pd-flow-desc {
        margin-top: 0;
    }
    .main .pd-flow-note .pd-flow-step {
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        line-height: 1.35;
    }
    .main .pd-flow-note .pd-flow-who {
        display: block;
        margin: 0 0 1px 0;
        color: #7a8699;
        font-size: 10px;
        font-weight: 500;
        line-height: 1.4;
        white-space: nowrap;
    }
    .main .pd-flow-note .pd-flow-act {
        font-size: 13px;
        font-weight: 700;
        color: #1f4f9a;
        white-space: nowrap;
    }
    .main .pd-flow-note .pd-flow-sep {
        padding-bottom: 2px;
        color: #9aa7bd;
        font-weight: 400;
        font-size: 13px;
        line-height: 1;
    }
    .main .pd-flow-note .pd-flow-desc {
        margin: 0;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.55;
        color: #333;
        text-align: left;
    }
    .main .pd-flow-note .pd-flow-em {
        color: #c85a10;
        font-weight: 700;
    }
    .main .pd-flow-note--cart {
        max-width: 560px;
        margin: 16px auto;
    }
    .main .pd-cart-reassure {
        box-sizing: border-box;
        max-width: 560px;
        margin: 0 auto 12px auto;
        padding: 10px 14px;
        text-align: center;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.5;
        color: #1f4f9a;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
    }
    .main .order-check-yoten {
        box-sizing: border-box;
        width: 810px;
        max-width: 100%;
        margin: 0 0 12px 0;
        padding: 12px 14px;
        text-align: left;
        font-size: 14px;
        line-height: 1.6;
        color: #222;
        background: #fff;
        border: 1px solid #c5d0e0;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
    }
    .main .order-check-yoten-lead {
        margin: 0 0 8px 0;
        font-size: 14px;
        font-weight: 700;
        color: #1f4f9a;
        line-height: 1.4;
    }
    .main .order-check-yoten-list {
        margin: 0;
        padding: 0 0 0 1.4em;
    }
    .main .order-check-yoten-list li {
        margin: 0 0 6px 0;
        line-height: 1.6;
    }
    .main .order-check-yoten-list li:last-child {
        margin-bottom: 0;
    }
    .main .order-check-yoten-list a {
        font-weight: 700;
        color: #1f4f9a;
    }
    .main .order-confirm-legal {
        box-sizing: border-box;
        width: 810px;
        max-width: 100%;
        margin: 16px 0 12px 0;
        padding: 12px 14px;
        text-align: left;
        font-size: 14px;
        line-height: 1.6;
        color: #222;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
    }
    .main .order-confirm-legal-lead {
        margin: 0 0 8px 0;
        font-size: 14px;
        font-weight: 700;
        color: #1f4f9a;
        line-height: 1.4;
    }
    .main .order-confirm-legal-list {
        margin: 0 0 8px 0;
        padding: 0 0 0 1.4em;
    }
    .main .order-confirm-legal-list li {
        margin: 0 0 6px 0;
        line-height: 1.6;
    }
    .main .order-confirm-legal-list li:last-child {
        margin-bottom: 0;
    }
    .main .order-confirm-legal-links {
        margin: 0;
        font-size: 14px;
        line-height: 1.5;
    }
    .main .order-confirm-legal-links a {
        font-weight: 700;
        color: #1f4f9a;
    }
    .main .order-confirm-legal-sep {
        margin: 0 4px;
        color: #666;
    }
    .main .pd-flow-note .pd-flow-more {
        display: inline-block;
        margin-left: 4px;
        font-weight: 700;
        white-space: nowrap;
    }
    .main .pd-cart-btn:hover {
        background: #d9680f;
        box-shadow: 0 3px 10px rgba(217, 104, 15, 0.35);
    }
    .main .pd-cart-btn-icon {
        width: 22px;
        height: 22px;
        flex: 0 0 22px;
        display: block;
    }

    /* CTA（ヒーロー以外は radius-md／オレンジ） */
    .main .BTN_order,
    .main .BTN_next,
    .main .BTN_order_annai {
        border-radius: var(--radius-md);
        background-color: var(--color-orange);
        color: #fff;
        cursor: pointer;
        transition: background-color var(--transition-ui);
    }
    .main .BTN_next {
        width: auto;
        min-width: 160px;
        height: auto;
        min-height: 35px;
        padding: 8px 20px;
        white-space: nowrap;
        font-size: 1.15em;
        line-height: 1.3;
    }
    .main .BTN_order:hover,
    .main .BTN_next:hover,
    .main .BTN_order_annai:hover {
        background-color: #d9680f;
    }
    .main .BTN_next.BTN_next--secondary {
        background-color: #fff;
        color: var(--color-navy);
        border: 2px solid var(--color-navy);
    }
    .main .BTN_next.BTN_next--secondary:hover {
        background-color: #f8fbff;
        color: #173d7a;
        border-color: #173d7a;
    }
    .main .order-input-opt {
        color: #666;
        font-weight: 400;
        font-size: 12px;
    }
    .main .order-input-rest {
        display: none;
    }
    .main .order-input-rest.is-open {
        display: block;
    }
    .main .order-input-rest-actions {
        display: none;
    }
    .main .order-input-rest-actions.is-open {
        display: block;
    }
    .main .order-input-pay-next-hint {
        margin: 10px 0 0;
        color: #555;
    }

    .main .order_confirm_confirm_explain {
        margin: 0 0 12px 0;
        padding: 12px 14px;
        text-align: left;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.7;
        color: var(--color-navy);
        background: var(--color-bg-soft);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);
    }
    .main .order_confirm_confirm_explain--short {
        padding: 8px 12px;
        margin-bottom: 8px;
        font-weight: 400;
        line-height: 1.5;
    }
    .main .cart_confirm_box--top {
        margin: 0 0 16px 0;
        padding-bottom: 12px;
        border-bottom: 1px solid var(--color-border);
    }

    /* ご利用案内タイトル（カート／詳細末尾） */
    .main .goriyou_annai_title {
        background: transparent;
        color: #1f4f9a;
        text-align: left;
        border-bottom: 2px solid #1f4f9a;
        font-size: 18px;
        font-weight: 700;
        padding: 0 0 4px 0;
    }
    .main .goriyou_annai_contens_contens .red,
    .main .goriyou_annai_contens_contens .red_strike {
        color: var(--color-amber);
    }
    /* 左右枠の固定高900pxをやめ、本文の左右余白を確保 */
    .main .goriyou_annai_box {
        overflow: hidden; /* float 内包 */
    }
    .main .goriyou_annai_contens_box_left,
    .main .goriyou_annai_contens_box_right {
        height: auto;
        min-height: 0;
        box-sizing: border-box;
        padding: 12px 16px;
        overflow: visible;
    }
    .main .goriyou_annai_contens_title {
        box-sizing: border-box;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
    .main .goriyou_annai_contens_contens {
        margin-left: 4px;
        margin-right: 0;
        padding-right: 0;
        line-height: 1.55;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    .main .goriyou_annai_contens_link {
        margin-right: 0;
        margin-left: 0;
    }
    .main .goriyou_annai_contens_link img {
        max-width: 100%;
        height: auto;
        vertical-align: top;
    }

    /* 一覧ヘッダ行 */
    .main .kensaku_title_square {
        border-color: var(--color-border);
        background-color: var(--color-bg-soft);
        border-radius: var(--radius-sm);
    }

    /* ===== Mobile EC 一覧・詳細（body.m-shell .main.ec-page）2026-07-20 ===== */
    body.m-shell .main.ec-page {
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        padding: 8px 0 12px 0;
        font-size: 14px;
        line-height: 1.6;
        color: #222;
    }
    body.m-shell .main.ec-page .kensaku_title_square {
        display: none !important;
    }
    body.m-shell .main.ec-page .order_price {
        text-align: right;
        margin: 0;
        font-size: 13px;
    }
    body.m-shell .main.ec-page .list_toolbar {
        margin: 0 0 10px 0;
    }
    body.m-shell .main .list-more-btn {
        min-width: 80%;
        max-width: 360px;
    }
    body.m-shell .main .list_cta_stack,
    body.m-shell .main .list_cta_inline {
        flex-direction: row;
        flex-wrap: nowrap;
        width: 100%;
        max-width: none;
        margin-top: 8px;
    }
    body.m-shell .main .list_cta_stack .list_detail_cta,
    body.m-shell .main .list_cta_stack .list_cart_cta,
    body.m-shell .main .list_cta_inline .list_detail_cta,
    body.m-shell .main .list_cta_inline .list_cart_cta {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
    }
    body.m-shell .main.ec-page .clear hr {
        display: none !important;
    }
    /* 一覧カード：Site.Mobile.css の左中右＋下リンク構成に委ねる（ここは打ち消しのみ） */
    body.m-shell .main.ec-page .shousai_kensaku_list .picture_box,
    body.m-shell .main.ec-page .shousai_kensaku_list .explain_box {
        float: none !important;
        width: auto !important;
        margin: 0 !important;
    }
    body.m-shell .main.ec-page .list_picture_pile_CPU,
    body.m-shell .main.ec-page .list_picture_pile_RAM,
    body.m-shell .main.ec-page .list_picture_pile_DRIVE,
    body.m-shell .main.ec-page .list_Office_img {
        display: none !important;
    }
    /* 商品詳細：1カラム */
    body.m-shell .main.ec-page .shousai_kensaku_shousai_1st_BOX {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        overflow: hidden;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_pic_box,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_shoukai_box {
        float: none !important;
        display: block;
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 16px 0 !important;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_picture,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_picture img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_pic_box.pd-no-photo .shousai_kensaku_shousai_picture {
        max-width: 140px !important;
        width: 140px !important;
        margin: 0 auto 8px auto !important;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_pic_box.pd-no-photo .shousai_kensaku_shousai_picture img {
        width: 140px !important;
        max-width: 140px !important;
        max-height: 105px !important;
        object-fit: contain;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_widows_box {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -ms-flex-line-pack: center;
        align-content: center;
        gap: 4px 6px;
        float: none !important;
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 40px;
        margin: 8px 0 !important;
        padding: 8px;
        line-height: 1.3;
        text-align: center;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_widows_box .windows {
        font-size: 16px !important;
        line-height: 1.3;
        font-weight: 700;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_widows_box .edition {
        font-size: 13px !important;
        line-height: 1.3;
        font-weight: 600;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_widows_box .windows-genuine {
        font-size: 14px !important;
        line-height: 1.3;
        font-weight: 700;
        color: #000;
    }
    body.m-shell .main.ec-page .pd-thumbs {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        gap: 8px;
        width: 100% !important;
        max-width: 100% !important;
        margin: 8px 0;
    }
    body.m-shell .main.ec-page .pd-thumbs img {
        width: 56px;
        height: auto;
    }
    body.m-shell .main.ec-page .pd-key-spec {
        width: 100% !important;
        max-width: 100% !important;
        margin: 12px 0;
    }
    body.m-shell .main.ec-page .pd-key-spec-table {
        width: 100%;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_maker_box,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_id_box,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_support_box,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_price_box,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_support_price_box {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        text-align: left;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_maker {
        font-size: 16px;
        color: #1f4f9a !important;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_name {
        display: block;
        font-size: 20px;
        font-weight: 700;
        color: #222;
        line-height: 1.4;
        margin: 6px 0 10px 0;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_price_noTAX {
        font-size: 26px;
        text-align: right;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_price {
        text-align: right;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_option.pd-opt {
        float: none !important;
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        clear: both;
    }
    body.m-shell .main.ec-page .pd-cart-btn {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    body.m-shell .main.ec-page .pd-opt-office-row {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 8px;
        margin-top: 0;
        width: 100%;
    }
    body.m-shell .main.ec-page .pd-opt-group.pd-opt-office {
        margin-bottom: 8px;
    }
    body.m-shell .main.ec-page .pd-opt-office-logo {
        float: none !important;
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto !important;
        max-width: 120px !important;
        height: 32px !important;
        margin: 0 !important;
        object-fit: contain;
        object-position: left center;
    }
    body.m-shell .main.ec-page .pd-opt .shousai_kensaku_shousai_option_list_office {
        float: none !important;
        -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_option_list_office select,
    body.m-shell .main.ec-page .pd-opt .shousai_kensaku_shousai_option_list_office select {
        width: 100%;
        max-width: 100%;
        margin: 0;
    }
    body.m-shell .main.ec-page .housai_kensaku_shousai_option_cartin {
        margin-top: 8px;
        padding-top: 0;
        min-height: 0;
        clear: both;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_youtube_box iframe {
        width: 100% !important;
        max-width: 100%;
        height: auto;
        min-height: 200px;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_2nd_BOX,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_table,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_table table,
    body.m-shell .main.ec-page .shousai_kensaku_shousai_2nd_BOX table {
        width: 100% !important;
        max-width: 100% !important;
    }
    body.m-shell .main.ec-page .shousai_kensaku_shousai_senden.pd-aside {
        width: 100% !important;
        max-width: 100% !important;
    }
    body.m-shell .main.ec-page a {
        color: #1f4f9a;
    }

    /* ===== Mobile EC カート・注文（1/4〜4/4）2026-07-20 ===== */
    body.m-shell .main.ec-page .order_box,
    body.m-shell .main.ec-page .cart_box {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0;
        padding: 0;
        overflow: hidden;
    }
    body.m-shell .main.ec-page .order_title_box {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 8px 0 16px 0;
        padding: 10px 8px;
        text-align: left;
        line-height: 1.55;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        background: #f7f9fc;
    }
    body.m-shell .main.ec-page .order_title {
        display: inline;
        font-size: 12px;
        color: #555;
        line-height: 1.55;
    }
    body.m-shell .main.ec-page .order_title_current {
        display: inline-block;
        margin: 2px 0;
        padding: 2px 8px;
        font-size: 12px;
        font-weight: 700;
        color: #1f4f9a;
        background: #eef3fa;
        border: 1px solid #c5d0e0;
        border-radius: 4px;
        line-height: 1.4;
    }
    /* カート表 → 縦積みカード */
    body.m-shell .main.ec-page .cart_table {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        border: 2px solid #1f4f9a !important;
        border-radius: 8px;
        overflow: hidden;
        margin: 0 0 16px 0;
    }
    body.m-shell .main.ec-page .cart_table tbody {
        display: block;
        width: 100%;
    }
    body.m-shell .main.ec-page .cart_table tr {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    body.m-shell .main.ec-page .cart_table th {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
        padding: 10px 12px;
        font-size: 14px;
        text-align: center;
        background: #1f4f9a !important;
        color: #fff !important;
    }
    body.m-shell .main.ec-page .cart_table tr.cart_title {
        display: none !important;
    }
    body.m-shell .main.ec-page .cart_table tr.cart_detail {
        display: -webkit-box !important;
        display: -ms-flexbox !important;
        display: flex !important;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        box-sizing: border-box;
        padding: 12px;
        border-bottom: 1px solid #c5d0e0;
        background: #fff;
    }
    body.m-shell .main.ec-page .cart_table tr.cart_detail > td {
        display: block !important;
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        box-sizing: border-box;
        border: none !important;
        padding: 4px 0;
        text-align: left;
        vertical-align: top;
    }
    body.m-shell .main.ec-page .cart_picid {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        text-align: center !important;
        margin: 0 0 4px 0;
        padding-bottom: 0 !important;
    }
    body.m-shell .main.ec-page .cart_info_picture {
        width: 120px !important;
        max-width: 40%;
        height: auto !important;
    }
    body.m-shell .main.ec-page .cart_namespec {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        margin: 0;
        padding: 0 !important;
    }
    body.m-shell .main.ec-page .cart_info {
        width: 100% !important;
        height: auto !important;
        margin: 0;
    }
    body.m-shell .main.ec-page .cart_info tr,
    body.m-shell .main.ec-page .cart_info td {
        height: auto !important;
    }
    body.m-shell .main.ec-page .cart_info_name {
        padding-left: 0 !important;
        font-size: 15px !important;
        line-height: 1.35;
    }
    body.m-shell .main.ec-page .cart_info_title {
        width: auto !important;
        white-space: nowrap;
        vertical-align: top;
        color: #1f4f9a;
        font-weight: 700;
        font-size: 12px;
        padding-right: 8px;
    }
    /* 価格＋削除を1行にまとめ、セル引き伸ばしによる空白／縦長ボタンを解消 */
    body.m-shell .main.ec-page .cart_info_price {
        -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
        display: block !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0;
        padding: 8px 12px 0 0 !important;
        text-align: right !important;
        font-size: 16px !important;
        font-weight: 700;
        color: #c85a10 !important;
        border: none !important;
        line-height: 1.3;
    }
    body.m-shell .main.ec-page .cart_price_main {
        line-height: 1.3;
    }
    body.m-shell .main.ec-page .cart_price_sub {
        margin-top: 2px;
        font-size: 11px !important;
        font-weight: 400;
        color: #666 !important;
        line-height: 1.3;
    }
    body.m-shell .main.ec-page .cart_buttom {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        display: block !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0;
        padding: 8px 0 0 0 !important;
        text-align: right !important;
    }
    body.m-shell .main.ec-page .cart_buttom a {
        display: inline-block !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
        line-height: 1.2 !important;
        text-decoration: none !important;
        vertical-align: middle;
    }
    body.m-shell .main.ec-page .cart_endline {
        display: block;
        height: 2px !important;
        background: #1f4f9a !important;
        margin: 0;
        padding: 0;
        border: none;
    }
    body.m-shell .main.ec-page .cart_table tr:not(.cart_detail):not(.cart_title) > td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
        border: none !important;
        border-top: 1px solid #c5d0e0 !important;
        padding: 8px 12px;
        text-align: left !important;
    }
    body.m-shell .main.ec-page .cart_info_footer,
    body.m-shell .main.ec-page .cart_info_footer_LittleSum {
        width: 100% !important;
        text-align: left !important;
        padding: 8px 12px 0 12px !important;
        border: none !important;
        font-size: 13px !important;
    }
    body.m-shell .main.ec-page .cart_info_footer_price,
    body.m-shell .main.ec-page .cart_info_footer_price_LittleSum {
        width: 100% !important;
        text-align: right !important;
        padding: 0 12px 8px 12px !important;
        border: none !important;
        font-size: 15px !important;
        font-weight: 700;
        color: #c85a10;
    }
    body.m-shell .main.ec-page .cart_confirm_box {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 8px;
        margin: 12px 0 16px 0;
        width: 100%;
    }
    body.m-shell .main.ec-page .cart_confirm_left {
        display: block;
        width: 100%;
    }
    body.m-shell .main .pd-cart-reassure {
        max-width: none;
        width: 100%;
        margin: 0 0 12px 0;
        box-sizing: border-box;
    }
    body.m-shell .main .order-check-yoten {
        width: 100%;
        box-sizing: border-box;
    }
    body.m-shell .main .order-confirm-legal {
        width: 100%;
        box-sizing: border-box;
    }
    body.m-shell .main.ec-page .BTN_order,
    body.m-shell .main.ec-page span.BTN_order,
    body.m-shell .main.ec-page a .BTN_order,
    body.m-shell .main.ec-page .BTN_next {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        box-sizing: border-box;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 44px;
        margin: 0;
        padding: 12px 16px;
        border: none;
        border-radius: 8px;
        background: #f07812;
        color: #fff !important;
        font-size: 14px;
        font-weight: 700;
        text-align: center;
        text-decoration: none !important;
        line-height: 1.4;
        cursor: pointer;
    }
    body.m-shell .main.ec-page button.BTN_next[value="modify"],
    body.m-shell .main.ec-page .BTN_sakujyo {
        background: #fff;
        color: #1f4f9a !important;
        border: 2px solid #1f4f9a;
    }
    body.m-shell .main.ec-page .BTN_sakujyo,
    body.m-shell .main.ec-page a .BTN_sakujyo {
        display: -webkit-inline-box !important;
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        box-sizing: border-box !important;
        width: auto !important;
        height: auto !important;
        min-height: 36px !important;
        max-height: 40px !important;
        margin: 0 !important;
        padding: 6px 14px !important;
        border-radius: 8px;
        font-size: 13px !important;
        font-weight: 700;
        line-height: 1.2 !important;
        vertical-align: middle;
        text-align: center;
    }
    /* 注文入力フォーム */
    body.m-shell .main.ec-page .order_input_box {
        width: 100% !important;
        max-width: 100% !important;
        margin: 12px 0;
    }
    body.m-shell .main.ec-page .order_input_input_box_table {
        display: block;
        width: 100% !important;
        table-layout: auto !important;
        border: 2px solid #1f4f9a;
        border-radius: 8px;
        overflow: hidden;
    }
    body.m-shell .main.ec-page .order_input_input_box_table tbody {
        display: block;
        width: 100%;
    }
    body.m-shell .main.ec-page .order_input_input_box_table tr {
        display: block;
        width: 100%;
        border-bottom: 1px solid #c5d0e0;
    }
    body.m-shell .main.ec-page .order_input_input_box_table tr:last-child {
        border-bottom: none;
    }
    body.m-shell .main.ec-page .order_input_input_box_left,
    body.m-shell .main.ec-page .order_input_input_box_right {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
        border: none !important;
    }
    body.m-shell .main.ec-page .order_input_input_box_left {
        padding: 10px 12px 4px 12px;
        background: #f7f9fc;
        color: #1f4f9a;
        font-size: 13px;
        font-weight: 700;
    }
    body.m-shell .main.ec-page .order_input_input_box_right {
        padding: 4px 12px 12px 12px;
        background: #fff;
    }
    body.m-shell .main.ec-page .order_input_input_box_right input[type="text"],
    body.m-shell .main.ec-page .order_input_input_box_right input[type="password"],
    body.m-shell .main.ec-page .order_input_input_box_right input[type="tel"],
    body.m-shell .main.ec-page .order_input_input_box_right input[type="email"],
    body.m-shell .main.ec-page .order_input_input_box_right select,
    body.m-shell .main.ec-page .order_input_input_box_right textarea,
    body.m-shell .main.ec-page .order_input_input_box_Name,
    body.m-shell .main.ec-page .order_input_input_box_Company,
    body.m-shell .main.ec-page .order_input_input_box_TEL,
    body.m-shell .main.ec-page .order_input_input_box_PostalCode,
    body.m-shell .main.ec-page .order_input_input_box_Prefectal,
    body.m-shell .main.ec-page .order_input_input_box_Address,
    body.m-shell .main.ec-page .order_input_input_box_Haitatsu,
    body.m-shell .main.ec-page .order_input_input_box_Request {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        margin: 4px 0 !important;
        padding: 10px 8px !important;
        font-size: 16px !important; /* iOS zoom 防止 */
    }
    body.m-shell .main.ec-page .order-input-row {
        display: block;
        margin: 0 0 8px 0;
    }
    body.m-shell .main.ec-page .order-input-label {
        display: block;
        margin: 0 0 4px 0;
        font-size: 12px;
        font-weight: 700;
        color: #555;
    }
    body.m-shell .main.ec-page .order-input-pay {
        display: block;
        margin: 0 0 8px 0;
        padding: 8px;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        background: #fff;
        line-height: 1.45;
    }
    body.m-shell .main.ec-page .order-input-pay-note {
        display: block;
        margin-top: 2px;
        margin-left: 1.4em;
        font-size: 12px;
        color: #666;
        font-weight: 400;
    }
    body.m-shell .main.ec-page .order-input-notes {
        margin: 8px 0 0 0;
        padding-left: 1.2em;
        font-size: 12px;
        color: #555;
        line-height: 1.5;
    }
    body.m-shell .main.ec-page .order_chuii {
        box-sizing: border-box;
        width: 100%;
        margin: 12px 0;
        padding: 12px 14px;
        border: 2px solid #1f4f9a;
        border-radius: 8px;
        background: #eef3fa;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.55;
        color: #222;
        text-align: left;
    }
    body.m-shell .main.ec-page .order_finish_explain,
    body.m-shell .main.ec-page .order-finish-error,
    body.m-shell .main.ec-page .order-finish-section,
    body.m-shell .main.ec-page .order-finish-thanks {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
    body.m-shell .main.ec-page .order_confirm_confirm_explain {
        width: 100%;
        box-sizing: border-box;
        margin: 0 0 8px 0;
    }
    body.m-shell .main.ec-page .goriyou_annai_box,
    body.m-shell .main.ec-page .goriyou_annai_contens_box_left,
    body.m-shell .main.ec-page .goriyou_annai_contens_box_right {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
    body.m-shell .main.ec-page .order_annai_box,
    body.m-shell .main.ec-page .order_annai_toc {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    /* 詳細検索（ノート/デスクトップ統一フォーム） */
    .main .dtl-kensaku {
        width: 810px;
        max-width: 100%;
        box-sizing: border-box;
        margin: 0 auto;
        padding: 20px;
        border: 1px solid var(--color-border, #c5d0e0);
        border-radius: 8px;
        background: #fff;
    }
    .main h1.dtl-kensaku-title,
    .main .dtl-kensaku-title {
        margin: 0 0 16px 0;
        font-size: 18px;
        font-weight: 700;
        color: #1f4f9a;
        border-bottom: 2px solid #1f4f9a;
        padding-bottom: 8px;
        line-height: 1.4;
        font-family: inherit;
    }
    .main .dtl-type-toggle {
        display: flex;
        gap: 8px;
        margin: 0 0 20px 0;
    }
    .main .dtl-type-toggle input[type="radio"] {
        position: absolute;
        opacity: 0;
        width: 0;
        height: 0;
    }
    .main .dtl-type-toggle label {
        flex: 1 1 0;
        box-sizing: border-box;
        text-align: center;
        padding: 10px 12px;
        border: 1px solid var(--color-border, #c5d0e0);
        border-radius: 8px;
        background: #f7f9fc;
        color: #333;
        font-size: 15px;
        font-weight: 700;
        line-height: 1.3;
        cursor: pointer;
    }
    .main .dtl-type-toggle input[type="radio"]:checked + label {
        border-color: #1f4f9a;
        background: #1f4f9a;
        color: #fff;
    }
    .main .dtl-field {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 4px 12px;
        padding: 10px 0;
        border-bottom: 1px solid #e0e5ef;
    }
    .main .dtl-field-label {
        flex: 0 0 140px;
        font-size: 13px;
        font-weight: 700;
        color: #333;
    }
    .main .dtl-field-control {
        flex: 1 1 200px;
        min-width: 0;
    }
    .main .dtl-select {
        width: 100%;
        max-width: 280px;
        box-sizing: border-box;
        padding: 7px 10px;
        border: 1px solid var(--color-border, #c5d0e0);
        border-radius: 8px;
        background: #fff;
        font-size: 14px;
        color: #222;
    }
    .main .dtl-freeword {
        width: 100%;
        max-width: 320px;
        box-sizing: border-box;
        padding: 7px 10px;
        border: 1px solid var(--color-border, #c5d0e0);
        border-radius: 8px;
        font-size: 14px;
    }
    .main .dtl-freeword-hint {
        flex: 0 0 100%;
        margin: 4px 0 0 152px;
        font-size: 11px;
        color: #7a8699;
    }
    .main .dtl-btn-group {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }
    .main .dtl-btn-group input[type="radio"] {
        position: absolute;
        opacity: 0;
        width: 0;
        height: 0;
    }
    .main .dtl-btn-group label {
        display: inline-flex;
        align-items: center;
        padding: 6px 14px;
        border: 1px solid var(--color-border, #c5d0e0);
        border-radius: 999px;
        background: #f7f9fc;
        color: #333;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.3;
        cursor: pointer;
    }
    .main .dtl-btn-group input[type="radio"]:checked + label {
        border-color: #1f4f9a;
        background: #eef3fa;
        color: #1f4f9a;
        font-weight: 700;
    }
    .main .dtl-type-toggle input[type="radio"]:focus-visible + label,
    .main .dtl-btn-group input[type="radio"]:focus-visible + label {
        outline: 2px solid #1f4f9a;
        outline-offset: 2px;
    }
    .main .dtl-checks {
        display: flex;
        flex-wrap: wrap;
        gap: 10px 24px;
        margin: 16px 0 0 0;
        padding-top: 14px;
        border-top: 1px solid #e0e5ef;
    }
    .main .dtl-check-row {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 16px;
        font-weight: 400;
        color: #222;
        cursor: pointer;
    }
    .main .dtl-check-row input {
        margin: 0;
        width: 18px;
        height: 18px;
    }
    .dtl-note-only.is-hidden {
        display: none;
    }
    .main .dtl-submit-row {
        margin: 20px 0 0 0;
        text-align: center;
    }
    .main .dtl-submit-btn {
        display: inline-block;
        padding: 12px 36px;
        border: none;
        border-radius: 999px;
        background: #c85a10;
        color: #fff;
        font-size: 15px;
        font-weight: 700;
        cursor: pointer;
    }
    .main .dtl-submit-btn:hover {
        background: #a84808;
    }

    /* モバイル調整 */
    body.m-shell .main.ec-page .dtl-kensaku {
        padding: 14px;
    }
    body.m-shell .main.ec-page .dtl-field {
        align-items: flex-start;
    }
    body.m-shell .main.ec-page .dtl-field-label {
        flex: 0 0 100%;
        margin-bottom: 6px;
    }
    body.m-shell .main.ec-page .dtl-field-control {
        flex: 1 1 100%;
    }
    body.m-shell .main.ec-page .dtl-select,
    body.m-shell .main.ec-page .dtl-freeword {
        max-width: 100%;
    }
    body.m-shell .main.ec-page .dtl-freeword-hint {
        margin-left: 0;
    }

    /* 検索結果0件時の代替導線（H3: 拡大時も右端切れしない） */
    .main .nores-box {
        width: 810px;
        max-width: 100%;
        box-sizing: border-box;
        margin: 24px auto;
        padding: 24px 20px;
        border: 1px solid var(--color-border, #c5d0e0);
        border-radius: 8px;
        background: #fff;
        text-align: center;
        overflow-wrap: break-word;
        word-wrap: break-word;
    }
    .main .nores-title {
        margin: 0 0 8px 0;
        font-size: 16px;
        font-weight: 700;
        color: #1f4f9a;
        overflow-wrap: break-word;
    }
    .main .nores-hint {
        margin: 0 0 20px 0;
        font-size: 13px;
        color: #555;
        line-height: 1.6;
        overflow-wrap: break-word;
    }
    .main .nores-links {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px;
        max-width: 100%;
    }
    .main .nores-link {
        display: inline-block;
        box-sizing: border-box;
        max-width: 100%;
        padding: 10px 20px;
        border: 1px solid #1f4f9a;
        border-radius: 8px;
        background: #eef3fa;
        color: #1f4f9a !important;
        font-size: 14px;
        font-weight: 700;
        text-decoration: none !important;
        white-space: normal;
    }
    .main .nores-link:hover {
        background: #1f4f9a;
        color: #fff !important;
    }
    .main.h3-overflow-safe {
        max-width: 100%;
        box-sizing: border-box;
        min-width: 0;
    }
    @media (max-width: 480px) {
        .main .nores-box { padding: 18px 14px; }
        .main .nores-links { flex-direction: column; }
        .main .nores-link { width: 100%; text-align: center; }
    }

    /* 商品詳細・着地の次アクション（完売レスキュー） */
    .main .pd-next {
        clear: both;
        box-sizing: border-box;
        width: 100%;
        margin: 12px 0 0 0;
        padding: 12px 14px;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        background: #f7f9fc;
        text-align: left;
    }
    .main .pd-next--soldout {
        border-color: #c5d0e0;
        background: #f7f9fc;
    }
    .main .pd-next-lead {
        margin: 0 0 8px 0;
        font-size: 14px;
        line-height: 1.5;
        color: #333;
    }
    .main .pd-next-similar {
        display: flex;
        flex-direction: column;
        gap: 6px;
        margin: 0 0 10px 0;
    }
    .main .pd-next-similar-item {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 10px;
        width: 100%;
        box-sizing: border-box;
        padding: 6px 8px;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        background: #fff;
        text-decoration: none !important;
        color: #333;
        transition: border-color 0.15s, background 0.15s;
    }
    .main .pd-next-similar-item:hover {
        border-color: #1f4f9a;
        background: #f8fbff;
    }
    .main .pd-next-similar-pic {
        display: block;
        flex: 0 0 64px;
        width: 64px;
        height: 48px;
        object-fit: contain;
        background: #fff;
    }
    .main .pd-next-similar-body {
        flex: 1 1 auto;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 2px;
    }
    .main .pd-next-similar-name {
        font-size: 13px;
        line-height: 1.35;
        color: #333;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .main .pd-next-similar-price {
        font-size: 13px;
        font-weight: 700;
        color: #c85a10;
        line-height: 1.3;
    }
    .main .pd-next-links {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 12px;
        align-items: center;
    }
    .main .pd-next-link {
        display: inline-block;
        padding: 6px 12px;
        border: 1px solid #1f4f9a;
        border-radius: 8px;
        background: #fff;
        color: #1f4f9a !important;
        font-size: 13px;
        line-height: 1.4;
        text-decoration: none !important;
        transition: border-color 0.15s, background 0.15s;
    }
    .main .pd-next-link:hover {
        border-color: #173d7a;
        background: #f8fbff;
        color: #173d7a !important;
    }
    .main .pd-wish {
        margin: 14px 0 0 0;
        padding: 10px 12px;
        background: #f7f9fc;
        border: 1px solid #c5d0e0;
        border-radius: 8px;
        text-align: left;
    }
    .main .pd-wish-note {
        margin: 0 0 8px 0;
        font-size: 13px;
        line-height: 1.55;
        color: #555;
    }
    .main .pd-wish-btn {
        font-weight: 700;
    }
    /* 在庫あり：似た在庫セクション下の一覧へ（購入付近には置かない） */
    .main .pd-similar-footer {
        clear: both;
        margin: 12px 0 0 0;
        text-align: left;
    }
    .main .pd-similar-footer-link {
        display: inline-block;
        font-size: 13px;
        line-height: 1.4;
        color: #1f4f9a !important;
        text-decoration: underline !important;
    }
    .main .pd-similar-footer-link:hover {
        color: #173d7a !important;
    }

    /* 予算帯一覧「一段上のおすすめ」バナー */
    .main .tier-upgrade-banner {
        margin: 0 0 16px 0;
        padding: 14px 18px;
        border: 1px solid #e0c060;
        border-radius: 8px;
        background: #fffaf0;
    }
    .main .tier-upgrade-banner .tub-text {
        margin: 0 0 10px 0;
        font-size: 14px;
        color: #333;
        line-height: 1.6;
    }
    .main .tier-upgrade-banner .tub-text strong {
        color: #1f4f9a;
    }
    .main .tier-upgrade-banner .tub-ctas {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }
    .main .tier-upgrade-banner .tub-link,
    .main .tier-upgrade-banner .tub-link-secondary {
        display: inline-block;
        box-sizing: border-box;
        padding: 8px 16px;
        border-radius: 999px;
        font-size: 13px;
        font-weight: 700;
        text-decoration: none !important;
    }
    .main .tier-upgrade-banner .tub-link {
        background: #1f4f9a;
        color: #fff !important;
    }
    .main .tier-upgrade-banner .tub-link:hover {
        background: #173d7a;
    }
    .main .tier-upgrade-banner .tub-link-secondary {
        background: #fff;
        border: 1px solid #1f4f9a;
        color: #1f4f9a !important;
    }
    .main .tier-upgrade-banner .tub-link-secondary:hover {
        background: #f0f4fc;
    }
    @media (max-width: 480px) {
        .main .tier-upgrade-banner .tub-ctas { flex-direction: column; }
        .main .tier-upgrade-banner .tub-link,
        .main .tier-upgrade-banner .tub-link-secondary { width: 100%; text-align: center; }
    }

    /* KW/詳細検索結果の検索語見出し（案A） */
    .main .kw-term-heading {
        margin: 0 0 12px 0;
        padding: 10px 12px;
        background: #eef3fa;
        border: 1px solid #c5d0e0;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
        font-size: 15px;
        font-weight: 700;
        line-height: 1.4;
        color: #1f4f9a;
    }

    /* Win7/XP・大量導入案内帯 */
    .main .bulk-intro {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        box-sizing: border-box;
        width: 100%;
        margin: 0 0 12px 0;
        padding: 12px 14px;
        border: 1px solid #1f4f9a;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
        background: #eef3fa;
        color: #333;
    }
    .main .bulk-intro-text {
        flex: 1 1 auto;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.45;
        color: #1f4f9a;
    }
    .main .bulk-intro-cta {
        flex: 0 0 auto;
        font-size: 13px;
        font-weight: 700;
        color: #1f4f9a;
        white-space: nowrap;
        text-decoration: underline;
    }
    .main .bulk-intro-cta:hover,
    .main .bulk-intro-cta:focus {
        color: #173d7a;
    }

    /* KW検索→サービス誘導帯（案A・帯全体クリック） */
    .main .kw-svc {
        display: block;
        box-sizing: border-box;
        width: 100%;
        margin: 0 0 12px 0;
        padding: 14px 14px 14px 16px;
        border: 1px solid #1f4f9a;
        border-left: 4px solid #1f4f9a;
        border-radius: 8px;
        background: #eef3fa;
        color: #333;
        text-align: left;
    }
    .main .kw-svc-label {
        display: inline-block;
        margin: 0 0 6px 0;
        padding: 2px 8px;
        border-radius: 4px;
        background: #1f4f9a;
        color: #fff;
        font-size: 11px;
        font-weight: 700;
        line-height: 1.3;
        vertical-align: middle;
    }
    .main .kw-svc-title {
        margin: 0 0 4px 0;
        padding: 0;
        font-size: 16px;
        font-weight: 700;
        line-height: 1.35;
        color: #1f4f9a;
    }
    .main .kw-svc-blurb {
        margin: 0 0 8px 0;
        padding: 0;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.5;
        color: #444;
    }
    .main .kw-svc-cta {
        display: inline-block;
        font-size: 13px;
        font-weight: 700;
        color: #1f4f9a;
        line-height: 1.4;
        text-decoration: underline;
    }
    .main .kw-svc-cta:hover,
    .main .kw-svc-cta:focus {
        color: #173d7a;
    }
    /* 旧クラス互換（未使用でも害なし） */
    .main .kw-svc-lead {
        margin: 0;
        font-size: 14px;
        line-height: 1.5;
        color: #333;
    }
    .main .kw-svc-lead strong {
        color: #1f4f9a;
        font-weight: 700;
    }
    .main .kw-svc-arrow {
        flex: 0 0 auto;
        font-size: 13px;
        font-weight: 700;
        color: #1f4f9a;
        white-space: nowrap;
    }
