/* ============================================================
   IPS WEB ORDER SYSTEM デザインリニューアル (2026-09)
   対象: body.ips-wo-standalone (WEBオーダー独立表示ページ)
   ============================================================ */

:root {
    --ips-navy: #14265c;
    --ips-navy-dark: #0f1d47;
    --ips-blue: #1a3fa8;
    --ips-blue-light: #eef2fb;
    --ips-line: #e3e7ef;
    --ips-text: #22304a;
    --ips-muted: #6b7590;
    --ips-bg: #f3f5f9;
    --ips-green: #158a3e;
    --ips-orange: #d97706;
    --ips-gray: #8a93a5;
    --ips-red: #e02d2d;
}

body.ips-wo-standalone {
    background: var(--ips-bg);
    color: var(--ips-text);
    /* 利用者の年齢層を考慮して全体的に文字を大きめにする */
    font-size: 15.5px;
    /* 横方向のはみ出しをページ幅に固定(clipはスクロール領域を作らないため縦スクロールバーが二重にならない) */
    overflow-x: clip;
}

/* 既存の位置調整・重複要素の整理 */
html body.ips-wo-standalone #content { margin-top: 0 !important; }
html body.ips-wo-standalone .atsdev-user-info { display: none !important; }
html body.ips-wo-standalone #sidebar,
html body.ips-wo-standalone .sidebar { display: none !important; }
html body.ips-wo-standalone .main { width: 100% !important; }

.ips-ws-wrap {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 16px;
    display: flex;
    align-items: center;
    gap: 16px;
}

/* ---------- お知らせバー ---------- */
.ips-ws-topbar {
    background: var(--ips-navy-dark);
    color: #dbe3f5;
    font-size: 13px;
    line-height: 1.4;
    padding: 7px 0;
}
.ips-ws-topbar .ips-ws-wrap { justify-content: space-between; }
.ips-ws-notice { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ips-ws-notice a { color: #dbe3f5 !important; text-decoration: none !important; }
.ips-ws-notice a:hover { color: #fff !important; text-decoration: underline !important; }
.ips-ws-toplinks { display: flex; gap: 18px; flex: none; align-items: center; }
.ips-ws-toplinks a { color: #dbe3f5 !important; text-decoration: none; }
.ips-ws-toplinks a:hover { color: #fff !important; text-decoration: underline; }
.ips-ws-tel { font-weight: 600; }

/* ---------- ヘッダー(スクロールしても上部に追従) ---------- */
.ips-ws-header {
    background: #fff; border-bottom: 1px solid var(--ips-line); padding: 12px 0;
    position: sticky; top: 0; z-index: 320;
    box-shadow: 0 1px 8px rgba(20, 38, 92, .07);
}
.ips-ws-logo {
    display: flex; align-items: center; gap: 8px;
    text-decoration: none !important; flex: none;
}
.ips-ws-logo strong { font-size: 30px; letter-spacing: 1px; color: var(--ips-navy); line-height: 1; }
.ips-ws-logo span { font-size: 11.5px; font-weight: 700; color: var(--ips-muted); letter-spacing: .12em; line-height: 1.3; }
.ips-ws-search { flex: 1; max-width: 430px; display: flex; margin: 0; }
.ips-ws-search input[type="search"] {
    flex: 1; height: 44px !important; border: 1.5px solid var(--ips-line);
    border-right: none; border-radius: 8px 0 0 8px; padding: 0 14px; font-size: 14.5px;
    background: #fafbfd;
}
.ips-ws-search input[type="search"]:focus { outline: none; border-color: var(--ips-blue); background: #fff; }
.ips-ws-search button {
    width: 48px; height: 44px; border: none; border-radius: 0 8px 8px 0;
    background: var(--ips-navy); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.ips-ws-user { margin-left: auto; display: flex; align-items: center; gap: 18px; flex: none; }
.ips-ws-me { text-decoration: none !important; line-height: 1.25; text-align: right; }
.ips-ws-me small { display: block; font-size: 11px; color: var(--ips-muted); }
.ips-ws-me b { font-size: 14px; color: var(--ips-text); }
.ips-ws-history {
    display: flex; flex-direction: column; align-items: center; gap: 2px;
    font-size: 11.5px; color: var(--ips-text) !important; text-decoration: none !important;
}
.ips-ws-history svg { color: var(--ips-navy); }
.ips-ws-loginbtn {
    display: inline-block; background: #fff; color: var(--ips-navy) !important;
    border: 1.5px solid var(--ips-navy); border-radius: 8px; font-size: 14px; font-weight: 700;
    padding: 10px 17px; text-decoration: none !important; white-space: nowrap;
}
.ips-ws-loginbtn:hover { background: var(--ips-blue-light); }
.ips-single-login {
    margin: 14px 0; padding: 14px 16px; background: var(--ips-blue-light);
    border: 1px solid #c8d6f5; border-radius: 10px;
}
.ips-single-login p { margin: 0 0 10px; font-size: 14px; }
.ips-ws-cartbtn {
    position: relative; display: flex; align-items: center; justify-content: center;
    background: var(--ips-navy); color: #fff !important; text-decoration: none !important;
    padding: 11px 14px; border-radius: 8px;
}
.ips-ws-cartbtn:hover { background: var(--ips-blue); }
.ips-ws-cart-count {
    position: absolute; top: -8px; right: -8px; min-width: 20px; height: 20px;
    background: var(--ips-red); color: #fff; border-radius: 999px;
    font-size: 12px; line-height: 20px; text-align: center; padding: 0 4px;
}

/* ---------- カテゴリナビ ---------- */
.ips-ws-catnav { background: #fff; border-bottom: 1px solid var(--ips-line); }
.ips-ws-catnav .ips-ws-wrap { gap: 0; overflow-x: auto; scrollbar-width: none; }
.ips-ws-catnav .ips-ws-wrap::-webkit-scrollbar { display: none; }
.ips-ws-catnav a {
    display: flex; align-items: center; gap: 6px; flex: none;
    padding: 12px 12px; font-size: 13.5px; font-weight: 600;
    color: #33415f !important; text-decoration: none !important;
    border-bottom: 2.5px solid transparent; white-space: nowrap;
}
.ips-ws-catnav a svg { width: 19px; height: 19px; }
.ips-ws-catnav a:hover, .ips-ws-catnav a.is-current { color: var(--ips-blue) !important; border-bottom-color: var(--ips-blue); }

/* ---------- フッター ---------- */
.ips-ws-footer { background: var(--ips-navy-dark); color: #b8c2dd; font-size: 13px; padding: 16px 0; margin-top: 48px; }
.ips-ws-footer .ips-ws-wrap { justify-content: space-between; }
.ips-ws-footer a { color: #dbe3f5 !important; }

/* ---------- 一覧レイアウト(絞り込み+商品) ---------- */
body.ips-wo-standalone #content { padding-top: 20px; }
/* 記事ヘッダー(非表示の題名領域)と二重パディングを除去して上部を詰める */
body.ips-wo-standalone .article > .article-header { display: none !important; }
body.ips-wo-standalone main.main { padding-top: 0 !important; }
.ips-shop-layout { display: flex; gap: 20px; align-items: flex-start; }
.ips-filters {
    flex: none; width: 232px; background: #fff; border: 1px solid var(--ips-line);
    border-radius: 10px; padding: 16px;
}
.ips-filters-toggle {
    display: flex; align-items: center; justify-content: space-between; width: 100%;
    background: none; border: none; padding: 0; margin: 0 0 10px; cursor: default;
}
.ips-filters-title {
    display: flex; align-items: center; gap: 6px; margin: 0;
    font-size: 15px; font-weight: 700; color: var(--ips-navy);
}
.ips-filters-chev { display: none; color: var(--ips-navy); transition: transform .2s; }
/* 読み込み中(Ajax絞り込み) */
.ips-shop-layout.is-loading { opacity: .45; pointer-events: none; transition: opacity .15s; }
.ips-filters-clear { margin: 0 0 10px; font-size: 12px; }
.ips-filter-group { border-top: 1px solid var(--ips-line); padding-top: 10px; margin-top: 10px; }
.ips-filter-group:first-of-type { border-top: none; padding-top: 0; margin-top: 0; }
.ips-filter-heading { margin: 0 0 6px; font-size: 13.5px; font-weight: 700; color: var(--ips-text); }
.ips-filter-group ul { list-style: none; margin: 0; padding: 0; }
.ips-filter-group li { margin: 0; padding: 4px 0; font-size: 13.5px; }
.ips-flt-label { display: flex; align-items: center; gap: 7px; cursor: pointer; position: relative; }
.ips-flt { position: absolute; opacity: 0; pointer-events: none; }
.ips-flt-box {
    width: 15px; height: 15px; flex: none;
    border: 1.5px solid #b9c1d2; border-radius: 4px; background: #fff; transition: all .12s;
}
.ips-flt:checked ~ .ips-flt-box {
    background: var(--ips-blue) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="4"><polyline points="4 13 9 18 20 6"/></svg>') center/11px no-repeat;
    border-color: var(--ips-blue);
}
.ips-flt-name { flex: 1; color: var(--ips-text); }
.ips-flt:checked ~ .ips-flt-name { color: var(--ips-blue); font-weight: 700; }
.ips-filter-group .count { color: var(--ips-muted); font-size: 12.5px; margin-left: 4px; }
.ips-products-col { flex: 1; min-width: 0; }
.ips-noitems { background: #fff; border: 1px solid var(--ips-line); border-radius: 10px; padding: 24px; }

/* 件数・並び替え行 */
body.ips-wo-standalone .woocommerce-result-count { float: none; margin: 0; font-size: 13.5px; color: var(--ips-muted); }
body.ips-wo-standalone .woocommerce-ordering { float: none; margin: 0; }
body.ips-wo-standalone .woocommerce-ordering select {
    height: 40px; border: 1px solid var(--ips-line); border-radius: 8px; font-size: 13.5px;
    /* 右paddingは矢印アイコンの分を確保(不足すると文字と矢印が重なる) */
    padding: 0 30px 0 10px !important; background-position: right 10px center;
    background-color: #fff; width: auto !important; min-width: 110px;
}
.ips-products-col .woocommerce-result-count,
.ips-products-col .woocommerce-ordering { display: inline-flex; align-items: center; }
.ips-products-col .woocommerce-ordering { float: right !important; margin-bottom: 10px; }

/* ---------- 商品カード ---------- */
body.ips-wo-standalone ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
    gap: 16px; margin: 12px 0 0 !important; padding: 0 !important; list-style: none;
}
body.ips-wo-standalone ul.products::before,
body.ips-wo-standalone ul.products::after { display: none !important; }
body.ips-wo-standalone ul.products li.product {
    width: auto !important; float: none !important; margin: 0 !important; clear: none !important;
    background: #fff; border: 1px solid var(--ips-line); border-radius: 10px;
    padding: 12px 12px 14px; position: relative; display: flex; flex-direction: column;
    transition: box-shadow .15s;
}
body.ips-wo-standalone ul.products li.product:hover { box-shadow: 0 4px 14px rgba(20, 38, 92, .10); }
/* JS絞り込みで非表示にしたカード(hidden属性はdisplay:flex指定に負けるため明示) */
body.ips-wo-standalone ul.products li.product[hidden] { display: none !important; }
body.ips-wo-standalone ul.products li.product > a img {
    width: 100%; height: 150px; object-fit: contain; margin: 0 0 8px;
}
.ips-card-badges { position: absolute; top: 8px; left: 8px; z-index: 2; display: flex; gap: 4px; }
.ips-card-badges span {
    background: var(--ips-blue-light); color: var(--ips-blue); border: 1px solid #c8d6f5;
    font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px;
}
body.ips-wo-standalone ul.products li.product,
body.ips-wo-standalone ul.products li.product h2 { text-align: left !important; }
.ips-card-model { margin: 0 0 2px; font-size: 15px; color: var(--ips-muted); font-family: Consolas, monospace; letter-spacing: .02em; }
.ips-card-name { margin: 0 0 8px; font-size: 15px !important; font-weight: 600; line-height: 1.45; color: var(--ips-text); min-height: 2.9em; }
.ips-card-stock { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-size: 15px; flex-wrap: nowrap; white-space: nowrap; }
.ips-stock-label { color: var(--ips-muted); flex: none; line-height: 1.6; }
.ips-stock { font-weight: 700; display: inline-flex; align-items: center; gap: 4px; }
.ips-stock::before { content: ''; width: 8px; height: 8px; border-radius: 50%; }
.ips-stock--green { color: var(--ips-green); }
.ips-stock--green::before { background: var(--ips-green); }
.ips-stock--orange { color: var(--ips-orange); }
.ips-stock--orange::before { background: var(--ips-orange); }
.ips-stock--gray { color: var(--ips-gray); }
.ips-stock--gray::before { background: var(--ips-gray); }
.ips-card-price { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 10px; }
.ips-card-price > span { font-size: 12px; color: var(--ips-muted); }
.ips-card-price b, .ips-card-price .amount { font-size: 15px; color: var(--ips-red); font-weight: 700; }
.ips-card-price del .amount { font-size: 13px; color: var(--ips-muted); font-weight: 400; }
.ips-card-price--login { font-size: 13.5px; }
.ips-card-buy { display: flex; gap: 8px; margin-top: auto; align-items: stretch; }
/* 数量ステッパー(− 数字 ＋) */
.ips-card-buy .ips-qty {
    flex: none; display: flex; align-items: stretch;
    border: 1.5px solid var(--ips-line); border-radius: 8px; overflow: hidden; background: #fff;
    height: 42px;
}
.ips-qty-btn {
    width: 30px; border: none; background: #f2f4f9; color: var(--ips-navy);
    font-size: 17px; font-weight: 700; line-height: 1; cursor: pointer; padding: 0;
    display: flex; align-items: center; justify-content: center;
}
.ips-qty-btn:hover { background: var(--ips-blue-light); }
.ips-card-buy .ips-card-qty {
    flex: none; width: 40px !important; min-width: 0; height: 100% !important;
    border: none !important; border-radius: 0; text-align: center; font-size: 15px; font-weight: 600;
    padding: 0; background: #fff;
    appearance: textfield; -moz-appearance: textfield;
}
.ips-card-qty::-webkit-outer-spin-button,
.ips-card-qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ips-card-buy .ips-card-qty:focus { outline: none; background: var(--ips-blue-light); }
.ips-card-buy .add_to_cart_button { flex: 1 1 auto !important; min-width: 0; white-space: nowrap; }
/* 旧デザインCSS(order-system.css)が標準ボタンを非表示にしているため復活させる */
body.ips-wo-standalone .woocommerce ul.products li.product .button.product_type_simple.add_to_cart_button.ajax_add_to_cart,
body.ips-wo-standalone ul.products li.product .add_to_cart_button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}
.ips-card-buy .add_to_cart_button, body.ips-wo-standalone ul.products li.product .button {
    flex: 1; background: var(--ips-navy) !important; color: #fff !important;
    border-radius: 8px !important; font-size: 14.5px; font-weight: 700; text-align: center;
    padding: 11px 8px !important; line-height: 1.4; margin: 0;
}
.ips-card-buy .add_to_cart_button:hover { background: var(--ips-blue) !important; }
/* 売り切れ・未ログイン時の「詳細を見る」単体ボタン: 隣のカードの数量+カート行と下端を揃え、行の高さに引き伸ばさない */
body.ips-wo-standalone ul.products li.product > a.button {
    align-self: end; margin-top: auto; height: auto;
}
/* 売り切れ商品は軽く灰色にして分かるようにする */
body.ips-wo-standalone ul.products li.product.outofstock { background: #f4f5f8; }
body.ips-wo-standalone ul.products li.product.outofstock img { filter: grayscale(1); opacity: .55; }
body.ips-wo-standalone ul.products li.product.outofstock .ips-card-name,
body.ips-wo-standalone ul.products li.product.outofstock .ips-card-price b,
body.ips-wo-standalone ul.products li.product.outofstock .ips-card-price .amount { color: var(--ips-muted) !important; }
body.ips-wo-standalone ul.products li.product.outofstock > a.button { background: var(--ips-gray) !important; }
body.ips-wo-standalone ul.products li.product.outofstock > a.button:hover { background: #6f7889 !important; }
/* Ajax追加後の「商品を見る」リンクはカードの行位置がずれる原因になるため出さない(ボタンに✓表示) */
body.ips-wo-standalone ul.products li.product .added_to_cart { display: none !important; }
body.ips-wo-standalone ul.products li.product .add_to_cart_button.added::after { content: ' ✓'; }
.ips-card-options { margin: 10px 0 0; font-size: 12.5px; display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.ips-card-options > span { color: var(--ips-muted); }
.ips-card-options a {
    background: #f2f4f9; border: 1px solid var(--ips-line); border-radius: 999px;
    padding: 2px 8px; color: var(--ips-text) !important; text-decoration: none !important;
}
.ips-card-options a:hover { border-color: var(--ips-blue); color: var(--ips-blue) !important; }

/* カテゴリカード(WEBオーダートップ): 画像+紺帯タイトルのスタイリッシュなカード */
body.ips-wo-standalone ul.products li.product-category {
    padding: 0 !important; overflow: hidden; border-radius: 12px;
}
body.ips-wo-standalone ul.products li.product-category > a {
    display: flex; flex-direction: column; height: 100%; text-decoration: none !important;
}
body.ips-wo-standalone ul.products li.product-category img {
    width: 100%; height: 180px !important; object-fit: contain;
    padding: 20px; margin: 0 !important; background: #fff;
    transition: transform .25s ease;
}
body.ips-wo-standalone ul.products li.product-category:hover { box-shadow: 0 10px 24px rgba(20, 38, 92, .18); border-color: var(--ips-blue); }
body.ips-wo-standalone ul.products li.product-category:hover img { transform: scale(1.07); }
body.ips-wo-standalone ul.products li.product-category .ips-cat-title {
    margin: auto 0 0 !important; padding: 13px 16px !important;
    background: linear-gradient(90deg, var(--ips-navy), var(--ips-blue));
    color: #fff !important; font-size: 15px !important; font-weight: 700;
    display: flex; align-items: center; flex-wrap: nowrap; gap: 8px; text-align: left !important;
    line-height: 1.45;
    min-height: 70px; /* 題名が2行になるカードと帯の高さを揃える(→は折り返さず右端固定) */
}
body.ips-wo-standalone ul.products li.product-category .ips-cat-title::after {
    content: '→'; margin-left: auto; font-weight: 700; transition: transform .2s;
}
body.ips-wo-standalone ul.products li.product-category:hover .ips-cat-title::after { transform: translateX(4px); }
/* 件数は画像右上のピルで表示 */
.ips-cat-count {
    position: absolute; top: 10px; right: 10px; z-index: 2;
    background: var(--ips-blue-light); color: var(--ips-navy); border: 1px solid #c8d6f5;
    font-size: 12px; font-weight: 700; border-radius: 999px; padding: 3px 11px;
    white-space: nowrap;
}

/* ---------- ログイン/会員登録(マイアカウント未ログイン) ---------- */
/* 2カラムを中央寄せし、横幅を活かす(右側の余白対策) */
body.ips-wo-standalone #customer_login {
    max-width: 1080px; margin: 0 auto;
    display: flex; gap: 48px; align-items: flex-start;
}
body.ips-wo-standalone #customer_login::before,
body.ips-wo-standalone #customer_login::after { display: none; }
body.ips-wo-standalone #customer_login .u-column1,
body.ips-wo-standalone #customer_login .u-column2 {
    flex: 1 1 0; float: none !important; width: auto !important; max-width: none !important;
}
@media screen and (max-width: 860px) {
    body.ips-wo-standalone #customer_login { flex-direction: column; gap: 10px; }
    body.ips-wo-standalone #customer_login .u-column1,
    body.ips-wo-standalone #customer_login .u-column2 { width: 100% !important; }
}

/* ---------- 汎用(ボタン・テーブル・パンくず等) ---------- */
body.ips-wo-standalone .woocommerce .button,
body.ips-wo-standalone .woocommerce button.button,
body.ips-wo-standalone button[type="submit"].button,
body.ips-wo-standalone #place_order {
    background: var(--ips-navy); color: #fff; border-radius: 8px; font-weight: 700; border: none;
}
body.ips-wo-standalone .woocommerce .button:hover, body.ips-wo-standalone #place_order:hover { background: var(--ips-blue); }
body.ips-wo-standalone table.shop_table {
    background: #fff; border: 1px solid var(--ips-line) !important; border-radius: 10px; overflow: hidden;
}
body.ips-wo-standalone .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
body.ips-wo-standalone .woocommerce-MyAccount-navigation li a {
    display: block; background: #fff; border: 1px solid var(--ips-line); border-radius: 8px;
    padding: 11px 15px; margin-bottom: 6px; font-size: 15px;
    color: var(--ips-text) !important; text-decoration: none !important;
}
/* マイページ本文(フォーム・表)の基本文字サイズ */
body.ips-wo-standalone .woocommerce-MyAccount-content { font-size: 15.5px; }
/* Cocoonは table th/td 自体に小さい文字サイズ(スマホ12px)を当てるため、セルに直接指定して上書き */
body.ips-wo-standalone table th,
body.ips-wo-standalone table td { font-size: 15px; }
body.ips-wo-standalone table small { font-size: 13px; }
/* マイページ内の見出し(注文詳細・ご注文情報など)をダッシュボードと同じ紺バーに統一 */
body.ips-wo-standalone .woocommerce-MyAccount-content h2:not(.ips-orders-title),
body.ips-wo-standalone .woocommerce-MyAccount-content h3 {
    background: none !important; border: none !important; box-shadow: none !important; border-radius: 0 !important;
    border-left: 4px solid var(--ips-navy) !important;
    margin: 26px 0 12px !important; padding: 2px 0 2px 12px !important;
    font-size: 18px !important; color: var(--ips-text) !important;
}
body.ips-wo-standalone .woocommerce-MyAccount-content label { font-size: 15px; }
body.ips-wo-standalone .woocommerce-MyAccount-content input[type="text"],
body.ips-wo-standalone .woocommerce-MyAccount-content input[type="email"],
body.ips-wo-standalone .woocommerce-MyAccount-content input[type="tel"],
body.ips-wo-standalone .woocommerce-MyAccount-content input[type="password"],
body.ips-wo-standalone .woocommerce-MyAccount-content select,
body.ips-wo-standalone .woocommerce-MyAccount-content textarea { font-size: 15.5px; }
body.ips-wo-standalone .woocommerce-MyAccount-content table.shop_table { font-size: 15px; }
body.ips-wo-standalone .woocommerce-MyAccount-content .button { font-size: 14.5px; }

/* ---------- ダッシュボード(発注システム独自ページ /my-page-account/) ---------- */
.ips-dash-layout { display: flex; gap: 28px; align-items: flex-start; }
.ips-dash-layout > .woocommerce-MyAccount-navigation { flex: 0 0 260px; float: none !important; width: 260px !important; }
.ips-dash-layout > .ips-dash-content { flex: 1; min-width: 0; float: none !important; width: auto !important; }
body.ips-wo-standalone .atsdev-my-account { margin: 0 !important; font-size: 15.5px; }
body.ips-wo-standalone .atsdev-my-account > p:first-child {
    background: #fff; border: 1px solid var(--ips-line); border-radius: 10px;
    padding: 14px 18px; margin: 0 0 22px; line-height: 1.8;
}
body.ips-wo-standalone .atsdev-my-account h3 {
    background: none !important; border: none !important; box-shadow: none !important; border-radius: 0 !important;
    border-left: 4px solid var(--ips-navy) !important;
    margin: 26px 0 12px !important; padding: 2px 0 2px 12px !important;
    font-size: 17px !important; color: var(--ips-text) !important;
}
body.ips-wo-standalone .atsdev-my-account table {
    width: 100%; background: #fff; border: 1px solid var(--ips-line) !important; border-radius: 10px; overflow: hidden;
    border-collapse: separate !important; border-spacing: 0; font-size: 15px;
}
body.ips-wo-standalone .atsdev-my-account table th,
body.ips-wo-standalone .atsdev-my-account table td {
    border: none !important; border-bottom: 1px solid var(--ips-line) !important;
    padding: 11px 14px !important; text-align: left; vertical-align: middle; background: #fff;
}
body.ips-wo-standalone .atsdev-my-account table th { background: #f7f8fc; color: var(--ips-muted); font-weight: 600; }
body.ips-wo-standalone .atsdev-my-account table tr:last-child th,
body.ips-wo-standalone .atsdev-my-account table tr:last-child td { border-bottom: none !important; }
/* 編集・発送先・パスワードの導線ボタン */
body.ips-wo-standalone .atsdev-my-account p a.button {
    display: inline-block; background: #fff !important; color: var(--ips-navy) !important;
    border: 1.5px solid var(--ips-navy) !important; border-radius: 8px !important;
    padding: 9px 16px !important; margin: 0 8px 8px 0 !important;
    font-size: 14.5px; font-weight: 700; text-decoration: none !important;
}
body.ips-wo-standalone .atsdev-my-account p a.button:hover { background: var(--ips-blue-light) !important; }
/* 「注文履歴をすべて見る」は右寄せのボタンに */
body.ips-wo-standalone .atsdev-my-account > p:last-child { text-align: right; margin: 12px 0 0; }
body.ips-wo-standalone .atsdev-my-account > p:last-child a {
    display: inline-block; background: var(--ips-navy); color: #fff !important; border-radius: 8px;
    padding: 10px 18px; font-size: 14.5px; font-weight: 700; text-decoration: none !important;
}
body.ips-wo-standalone .atsdev-my-account > p:last-child a:hover { background: var(--ips-blue); }
/* Cocoonが本文へ自動挿入する目次は出さない */
body.ips-wo-standalone .entry-content .toc { display: none !important; }
@media screen and (max-width: 860px) {
    .ips-dash-layout { flex-direction: column; gap: 0; }
    .ips-dash-layout > .woocommerce-MyAccount-navigation { flex: none; width: 100% !important; }
    body.ips-wo-standalone .atsdev-my-account table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    body.ips-wo-standalone .atsdev-my-account table th { white-space: nowrap; }
    /* 発送先一覧など列の多い表は、ページを横に広げずに表の中だけ横スクロールさせる */
    body.ips-wo-standalone .woocommerce-MyAccount-content table.shop_table:not(.account-orders-table) {
        display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%;
    }
    body.ips-wo-standalone .woocommerce-MyAccount-content table.shop_table:not(.account-orders-table) th,
    body.ips-wo-standalone .woocommerce-MyAccount-content table.shop_table:not(.account-orders-table) td {
        white-space: nowrap; /* 列を詰めて1文字ずつ折り返すより、横スクロールで読める方が見やすい */
    }
    body.ips-wo-standalone .woocommerce-MyAccount-content table.shop_table:not(.account-orders-table) td form { display: inline-block; }
}
body.ips-wo-standalone .woocommerce-MyAccount-navigation li.is-active a,
body.ips-wo-standalone .woocommerce-MyAccount-navigation li a:hover {
    border-color: var(--ips-blue); color: var(--ips-blue) !important; background: var(--ips-blue-light);
}
/* マイアカウント各フォームの保存ボタン: 上に間隔を空けて右下に配置 */
body.ips-wo-standalone .woocommerce-MyAccount-content button[name="save_account_details"],
body.ips-wo-standalone .woocommerce-MyAccount-content button[name="save_address"] {
    display: block; margin: 28px 0 0 auto; min-width: 180px;
}
/* 発送先の管理(新規・編集)の「保存する/キャンセル」行も右寄せ
   (一覧行の「削除」「既定にする」小ボタンは対象外) */
body.ips-wo-standalone .woocommerce-MyAccount-content form p:has(> button.alt) {
    text-align: right; margin-top: 28px;
}

/* ログアウトだけ色を変えて誤操作しにくくする */
body.ips-wo-standalone .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: #b23a3a !important; border-color: #ecc9c9; background: #fdf7f7;
}
body.ips-wo-standalone .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    color: #fff !important; border-color: #b23a3a; background: #b23a3a;
}
/* スマホ・タブレットはメニューを横スクロールのタブ型にする(縦積みで場所を取らないように) */
@media screen and (max-width: 860px) {
    body.ips-wo-standalone .woocommerce-MyAccount-navigation { float: none !important; width: 100% !important; }
    body.ips-wo-standalone .woocommerce-MyAccount-content { float: none !important; width: 100% !important; }
    body.ips-wo-standalone .woocommerce-MyAccount-navigation ul {
        display: flex; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch;
        scrollbar-width: none; margin: 0 0 16px; padding: 2px;
    }
    body.ips-wo-standalone .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
    body.ips-wo-standalone .woocommerce-MyAccount-navigation li { flex: none; margin: 0; }
    body.ips-wo-standalone .woocommerce-MyAccount-navigation li a {
        margin: 0; padding: 9px 16px; border-radius: 999px; white-space: nowrap; font-size: 14px;
    }
}
/* 注文一覧の再注文ボタンを強調 */
body.ips-wo-standalone .woocommerce-orders-table__cell-order-actions .ips-order-again {
    background: var(--ips-green) !important;
}

/* カートの「買い物を続ける」ボタン */
.ips-cart-continue { margin: 0 0 14px !important; }
.ips-cart-continue a {
    display: inline-block; background: #fff; border: 1.5px solid var(--ips-navy);
    color: var(--ips-navy) !important; border-radius: 8px; padding: 10px 20px;
    font-size: 14px; font-weight: 700; text-decoration: none !important;
}
.ips-cart-continue a:hover { background: var(--ips-blue-light); }

/* ---------- 注文履歴 ---------- */
.ips-orders-title {
    margin: 0 0 14px !important; padding: 0 !important;
    background: none !important; border: none !important; box-shadow: none !important;
    font-size: 20px !important; font-weight: 700; color: var(--ips-text);
}
body.ips-wo-standalone .account-orders-table { font-size: 15px; width: 100%; border-collapse: separate; border-spacing: 0; }
body.ips-wo-standalone .account-orders-table thead th {
    background: #f7f8fc !important; color: var(--ips-muted); font-size: 13px; font-weight: 700;
    padding: 11px 14px !important; border: none !important; border-bottom: 1px solid var(--ips-line) !important; text-align: left;
}
body.ips-wo-standalone .account-orders-table tbody th,
body.ips-wo-standalone .account-orders-table tbody td {
    padding: 13px 14px !important; border: none !important; border-bottom: 1px solid var(--ips-line) !important;
    background: #fff; text-align: left; vertical-align: middle;
}
body.ips-wo-standalone .account-orders-table tbody tr:last-child th,
body.ips-wo-standalone .account-orders-table tbody tr:last-child td { border-bottom: none !important; }
body.ips-wo-standalone .account-orders-table tbody tr:hover th,
body.ips-wo-standalone .account-orders-table tbody tr:hover td { background: #fafbfe; }
body.ips-wo-standalone .woocommerce-orders-table__cell-order-number a {
    font-weight: 700; color: var(--ips-blue) !important; text-decoration: none !important;
}
body.ips-wo-standalone .woocommerce-orders-table__cell-order-number a:hover { text-decoration: underline !important; }
body.ips-wo-standalone .woocommerce-orders-table__cell-order-total { font-weight: 600; }
/* ステータスの色分け(●付き) */
body.ips-wo-standalone .woocommerce-orders-table__cell-order-status { font-weight: 700; white-space: nowrap; }
body.ips-wo-standalone .woocommerce-orders-table__cell-order-status::before {
    content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%;
    margin-right: 7px; background: var(--ips-gray); vertical-align: 1px;
}
body.ips-wo-standalone tr[class*="--status-processing"] .woocommerce-orders-table__cell-order-status { color: var(--ips-blue); }
body.ips-wo-standalone tr[class*="--status-processing"] .woocommerce-orders-table__cell-order-status::before { background: var(--ips-blue); }
body.ips-wo-standalone tr[class*="--status-completed"] .woocommerce-orders-table__cell-order-status { color: var(--ips-green); }
body.ips-wo-standalone tr[class*="--status-completed"] .woocommerce-orders-table__cell-order-status::before { background: var(--ips-green); }
body.ips-wo-standalone tr[class*="--status-on-hold"] .woocommerce-orders-table__cell-order-status,
body.ips-wo-standalone tr[class*="--status-pending"] .woocommerce-orders-table__cell-order-status { color: var(--ips-orange); }
body.ips-wo-standalone tr[class*="--status-on-hold"] .woocommerce-orders-table__cell-order-status::before,
body.ips-wo-standalone tr[class*="--status-pending"] .woocommerce-orders-table__cell-order-status::before { background: var(--ips-orange); }
body.ips-wo-standalone tr[class*="--status-cancelled"] .woocommerce-orders-table__cell-order-status,
body.ips-wo-standalone tr[class*="--status-refunded"] .woocommerce-orders-table__cell-order-status { color: var(--ips-gray); }
body.ips-wo-standalone tr[class*="--status-failed"] .woocommerce-orders-table__cell-order-status { color: var(--ips-red); }
body.ips-wo-standalone tr[class*="--status-failed"] .woocommerce-orders-table__cell-order-status::before { background: var(--ips-red); }
/* 操作ボタン */
body.ips-wo-standalone .woocommerce-orders-table__cell-order-actions .button {
    padding: 8px 15px !important; font-size: 13.5px !important; margin: 2px 6px 2px 0;
}
/* スマホ: 各注文をカード化(注文番号をカードの見出しに) */
@media screen and (max-width: 760px) {
    body.ips-wo-standalone .account-orders-table { border: none !important; background: none; }
    body.ips-wo-standalone .account-orders-table thead { display: none; }
    body.ips-wo-standalone .account-orders-table tbody tr {
        display: block; background: #fff; border: 1px solid var(--ips-line); border-radius: 10px;
        margin: 0 0 12px; overflow: hidden;
    }
    body.ips-wo-standalone .account-orders-table tbody tr:hover th,
    body.ips-wo-standalone .account-orders-table tbody tr:hover td { background: #fff; }
    body.ips-wo-standalone .account-orders-table tbody th,
    body.ips-wo-standalone .account-orders-table tbody td {
        display: flex; justify-content: space-between; align-items: center; gap: 12px;
        padding: 10px 14px !important; border: none !important; text-align: right; font-size: 15px;
    }
    body.ips-wo-standalone .account-orders-table tbody td::before {
        content: attr(data-title); float: none; font-weight: 400; color: var(--ips-muted); font-size: 13.5px; flex: none;
    }
    body.ips-wo-standalone .account-orders-table tbody th.woocommerce-orders-table__cell-order-number {
        background: #f7f8fc; border-bottom: 1px solid var(--ips-line) !important; justify-content: flex-start;
    }
    body.ips-wo-standalone .account-orders-table tbody td.woocommerce-orders-table__cell-order-status::before {
        content: ''; /* ステータスは●のみ(ラベルはバッジ色で判別) */
    }
    body.ips-wo-standalone .account-orders-table tbody td.woocommerce-orders-table__cell-order-status {
        justify-content: flex-start;
    }
    body.ips-wo-standalone .account-orders-table tbody td.woocommerce-orders-table__cell-order-actions { justify-content: flex-end; }
    body.ips-wo-standalone .account-orders-table tbody td.woocommerce-orders-table__cell-order-actions::before { display: none; }
}

/* ---------- トップへ戻るボタン(Cocoon) ----------
   フッターの文字と重ならないようフッターの上に配置し、半透明にして内容を隠しにくくする */
body.ips-wo-standalone .go-to-top-button {
    bottom: 62px !important;
    right: 14px !important;
    background: rgba(20, 38, 92, .5) !important;
    color: #fff !important;
    border-radius: 50% !important;
    transition: background .15s;
}
body.ips-wo-standalone .go-to-top-button:hover { background: rgba(20, 38, 92, .9) !important; }

/* ---------- レスポンシブ ---------- */
@media screen and (max-width: 1023px) {
    /* コンテナ余白(order-system.cssのbody.woocommerce #main padding:29px !importantに勝つため
       IDを含むセレクタで指定)で内容が狭くなるため、タブレット以下はほぼ全幅を使う */
    body.ips-wo-standalone main#main.main { width: 100% !important; margin: 0 !important; padding: 20px 10px !important; }
    body.ips-wo-standalone .article { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
    body.ips-wo-standalone .ips-ws-header .ips-ws-wrap { flex-wrap: wrap; row-gap: 10px; }
    .ips-ws-search { order: 3; max-width: none; flex-basis: 100%; }
    .ips-ws-user { gap: 12px; }
    .ips-ws-topbar .ips-ws-wrap { gap: 8px; }
    .ips-ws-tel { display: none; }
}
@media screen and (max-width: 760px) {
    /* 縦積み時はalign-items:flex-startが幅を縮めるため全幅に伸ばす */
    .ips-shop-layout { flex-direction: column; align-items: stretch; }
    .ips-products-col { width: 100%; }
    .ips-filters { width: 100%; padding: 12px 14px; }
    /* スマホは押したら開く(is-open時のみ展開) */
    .ips-filters-toggle { cursor: pointer; margin-bottom: 0; }
    .ips-filters-chev { display: block; }
    .ips-filters.is-open .ips-filters-chev { transform: rotate(180deg); }
    .ips-filters-body { display: none; margin-top: 10px; }
    .ips-filters.is-open .ips-filters-body { display: block; }
    /* 商品は2列固定 */
    /* minmax(0,1fr): 在庫表示などの長い文字でカードの最小幅が広がり、画面からはみ出すのを防ぐ */
    body.ips-wo-standalone ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px; }
    /* カテゴリ一覧(WEBオーダートップ)はスマホでは横型のリストカードにする */
    body.ips-wo-standalone ul.products:has(> li.product-category) { grid-template-columns: 1fr !important; row-gap: 10px !important; }
    body.ips-wo-standalone ul.products li.product-category > a { flex-direction: row; align-items: center; }
    body.ips-wo-standalone ul.products li.product-category img {
        width: 96px !important; height: 88px !important; flex: none; padding: 8px 6px;
    }
    body.ips-wo-standalone ul.products li.product-category:hover img { transform: none; }
    body.ips-wo-standalone ul.products li.product-category .ips-cat-title {
        background: none !important; color: var(--ips-text) !important;
        font-size: 15px !important; font-weight: 700; padding: 0 6px !important; margin: 0 !important; flex: 1;
    }
    body.ips-wo-standalone ul.products li.product-category .ips-cat-title::after { display: none; }
    body.ips-wo-standalone ul.products li.product-category .ips-cat-count {
        position: static; order: 1; flex: none; margin-right: 12px;
    }
    body.ips-wo-standalone ul.products li.product > a img { height: 110px; }
    .ips-ws-toplinks a { display: none; }
    .ips-ws-me small { display: none; }
    .ips-card-name {
        min-height: 0;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    /* スマホは長い在庫表示(営業にお問い合わせ 等)を折り返し可にする */
    .ips-card-stock { gap: 6px; white-space: normal; flex-wrap: wrap; row-gap: 0; }
    .ips-card-price { flex-wrap: wrap; }
    .ips-card-buy { flex-wrap: wrap; }
}
/* スマホ: ロゴ+ログイン(またはユーザー)+カートを横一列に収める */
@media screen and (max-width: 560px) {
    body.ips-wo-standalone .ips-ws-header .ips-ws-wrap { gap: 8px; }
    .ips-ws-logo strong { font-size: 24px; }
    .ips-ws-logo span { font-size: 9px; }
    .ips-ws-user { gap: 8px; }
    .ips-ws-me b { display: inline-block; max-width: 74px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
    /* 注文履歴はアイコンだけだと分かりにくいため文字も出す */
    .ips-ws-history span { font-size: 9.5px; }
    .ips-ws-history svg { width: 16px; height: 16px; }
    .ips-ws-loginbtn { padding: 8px 11px; font-size: 12px; }
    .ips-ws-cartbtn { padding: 8px 12px; font-size: 12.5px; gap: 5px; }
}
/* 空カート: 見出しの行間崩れ(行が重なる)を防ぐため明示指定 */
body.ips-wo-standalone .wc-block-cart__empty-cart__title {
    font-size: 17px !important;
    line-height: 1.7 !important;
    height: auto !important;
    margin: 28px auto 18px !important;
    padding: 0 16px !important;
    max-width: 640px;
}
body.ips-wo-standalone .wc-block-cart__empty-cart__title span { line-height: inherit !important; }
/* 空カート: 装飾の点線・非表示グリッドの見出し残骸を消し、戻るボタンを整える */
body.ips-wo-standalone .wp-block-woocommerce-empty-cart-block hr.is-style-dots,
body.ips-wo-standalone .wp-block-woocommerce-empty-cart-block h2:not(.wc-block-cart__empty-cart__title),
body.ips-wo-standalone .wp-block-woocommerce-empty-cart-block .wc-block-grid {
    display: none !important;
}
.ips-back-shop {
    display: block; width: fit-content; margin: 4px auto 40px;
    background: var(--ips-navy); color: #fff !important; border-radius: 8px;
    padding: 11px 26px; font-weight: 700; text-decoration: none !important;
}
.ips-back-shop:hover { background: var(--ips-blue); }

/* 商品検索結果ページ */
.ips-search-page { max-width: 1240px; margin: 0 auto; padding: 24px 16px 40px; }
.ips-search-title { font-size: 19px; margin: 0 0 16px; color: var(--ips-text); }
.ips-search-title span { font-size: 14px; color: var(--ips-muted); font-weight: 400; }
.ips-search-pagination { margin-top: 20px; text-align: center; }
.ips-search-pagination .page-numbers {
    display: inline-block; min-width: 34px; padding: 7px 10px; margin: 0 2px;
    background: #fff; border: 1px solid var(--ips-line); border-radius: 8px;
    color: var(--ips-text) !important; text-decoration: none !important; font-size: 13px;
}
.ips-search-pagination .page-numbers.current { background: var(--ips-navy); color: #fff !important; border-color: var(--ips-navy); }

/* ============================================================
   商品カードの行揃え
   画像/型番/製品名/在庫/価格/ボタン/オプションの各行を、
   横に並ぶカード同士で同じ高さに揃える(内容はそのまま)
   ============================================================ */
/* 支援技術向けの不可視テキストが行を消費しないよう確実に浮かせる */
body.ips-wo-standalone ul.products li.product .screen-reader-text {
    position: absolute !important; width: 1px; height: 1px;
    overflow: hidden; clip: rect(0 0 0 0); margin: -1px; padding: 0;
}
/* Cocoon(.entry-content)の見出し・段落マージンが行間を広げないよう明示 */
body.ips-wo-standalone ul.products li.product .ips-card-model { margin: 0 !important; padding: 0 !important; }
body.ips-wo-standalone ul.products li.product h2.ips-card-name {
    margin: 0 !important; padding: 0 !important;
    background: none !important; border: none !important;
}
body.ips-wo-standalone ul.products li.product .ips-card-stock { margin: 0 !important; }
body.ips-wo-standalone ul.products li.product .ips-card-price { margin: 0 !important; }
body.ips-wo-standalone ul.products li.product .ips-card-options { margin: 4px 0 0 !important; }
@supports (grid-template-rows: subgrid) {
    body.ips-wo-standalone ul.products:has(> li.product:not(.product-category)) { row-gap: 6px; }
    body.ips-wo-standalone ul.products li.product:not(.product-category):not([hidden]) {
        display: grid !important;
        grid-template-rows: subgrid;
        grid-row: span 7;
        margin: 0 0 12px !important; /* カード同士の縦間隔(行間は4pxに縮めているため) */
    }
    body.ips-wo-standalone ul.products li.product:not(.product-category) > a.woocommerce-LoopProduct-link {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 3; /* 画像/型番/製品名 */
    }
    body.ips-wo-standalone ul.products li.product:not(.product-category) .ips-card-name { min-height: 0; }
}

/* ============================================================
   商品詳細ページ
   ============================================================ */
body.ips-wo-standalone.single-product .article-footer { display: none !important; }
body.ips-wo-standalone.single-product .entry-content { margin-top: 0 !important; }

/* パンくず */
.ips-single-crumb {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    margin: 2px 0 14px; font-size: 13px; color: var(--ips-muted);
}
.ips-single-crumb a { color: var(--ips-muted) !important; text-decoration: none !important; }
.ips-single-crumb a:hover { color: var(--ips-blue) !important; text-decoration: underline !important; }
.ips-single-crumb b { color: var(--ips-text); font-weight: 600; font-family: Consolas, monospace; }

/* 本体: 左=画像ギャラリー / 右=情報、下段にタブ・関連商品 */
body.ips-wo-standalone.single-product div.product {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 10px 40px;
    background: #fff; border: 1px solid var(--ips-line); border-radius: 12px;
    padding: 28px;
}
body.ips-wo-standalone.single-product div.product > .woocommerce-notices-wrapper { grid-column: 1 / -1; grid-row: 1; }
body.ips-wo-standalone.single-product div.product > .woocommerce-product-gallery {
    grid-column: 1; grid-row: 2; align-self: start;
    width: 100% !important; float: none !important; margin: 0 !important;
    border: 1px solid var(--ips-line); border-radius: 10px; padding: 14px; background: #fff;
}
body.ips-wo-standalone.single-product .woocommerce-product-gallery img { width: 100%; height: auto; }
/* スライダー内部のラッパー(全スライド分の幅)やズーム画像が枠外へ出ないよう確実にクリップ */
body.ips-wo-standalone.single-product .woocommerce-product-gallery,
body.ips-wo-standalone.single-product .woocommerce-product-gallery__image { overflow: hidden; }
/* 短い説明・説明タブ内の画像(仕様アイコン等)は枠内に収める */
body.ips-wo-standalone.single-product .summary img,
body.ips-wo-standalone.single-product .woocommerce-Tabs-panel img { max-width: 100% !important; height: auto; }
body.ips-wo-standalone.single-product div.product > .summary {
    grid-column: 2; grid-row: 2;
    width: 100% !important; float: none !important; margin: 0 !important;
}
body.ips-wo-standalone.single-product div.product > .woocommerce-tabs { grid-column: 1 / -1; grid-row: 3; }
body.ips-wo-standalone.single-product div.product > .upsells { grid-column: 1 / -1; grid-row: 4; }
body.ips-wo-standalone.single-product div.product > .related { grid-column: 1 / -1; grid-row: 5; }

/* 見出し(型番+製品名) */
.ips-single-model { margin: 0 0 4px; font-size: 15px; color: var(--ips-muted); font-family: Consolas, monospace; letter-spacing: .02em; }
.ips-single-name { margin: 0 0 10px !important; padding: 0 !important; background: none !important; border: none !important; font-size: 24px !important; font-weight: 700; line-height: 1.35; color: var(--ips-text); }
body.ips-wo-standalone.single-product .ips-card-stock--single { margin: 0 0 4px; font-size: 13.5px; }

/* 価格(未ログイン時の旧「IPS WEBオーダー」ボタンは出さない=ログイン誘導枠に一本化) */
body.ips-wo-standalone.single-product .summary > .price:has(.ips-weborder-button) { display: none !important; }
body.ips-wo-standalone.single-product .summary > .price {
    display: flex; align-items: baseline; gap: 10px; margin: 10px 0 4px; color: var(--ips-text);
}
body.ips-wo-standalone.single-product .summary > .price::before { content: '卸価格(税別)'; font-size: 12px; color: var(--ips-muted); }
body.ips-wo-standalone.single-product .summary > .price .amount { font-size: 28px; color: var(--ips-red); font-weight: 700; }
body.ips-wo-standalone.single-product .summary > .price del .amount { font-size: 15px; color: var(--ips-muted); font-weight: 400; }

/* 短い説明(Cocoon装飾ボックス)は控えめなリード文として表示 */
body.ips-wo-standalone.single-product .summary .woocommerce-product-details__short-description { margin: 4px 0 2px; }
body.ips-wo-standalone.single-product .summary .woocommerce-product-details__short-description h2,
body.ips-wo-standalone.single-product .summary .woocommerce-product-details__short-description h3,
body.ips-wo-standalone.single-product .summary .woocommerce-product-details__short-description .blank-box {
    background: none !important; border: none !important; box-shadow: none !important;
    margin: 0 !important; padding: 0 !important; border-radius: 0 !important;
    font-size: 14.5px !important; font-weight: 500; color: var(--ips-muted) !important; line-height: 1.7;
}

/* 数量+カートボタン */
body.ips-wo-standalone.single-product form.cart { display: flex; gap: 10px; align-items: stretch; margin: 14px 0 6px !important; }
body.ips-wo-standalone.single-product form.cart .quantity { float: none !important; margin: 0 !important; }
body.ips-wo-standalone.single-product form.cart .quantity .qty {
    width: 76px; height: 48px !important; border: 1.5px solid var(--ips-line);
    border-radius: 8px; text-align: center; font-size: 15px; background: #fff;
}
body.ips-wo-standalone.single-product form.cart .single_add_to_cart_button {
    flex: 1; max-width: 340px; font-size: 15px; border-radius: 8px !important; padding: 0 18px;
}

/* カテゴリー等のメタ情報 */
body.ips-wo-standalone.single-product .product_meta {
    margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--ips-line);
    font-size: 13.5px; color: var(--ips-muted);
}
body.ips-wo-standalone.single-product .product_meta a {
    display: inline-block; background: #f2f4f9; border: 1px solid var(--ips-line); border-radius: 999px;
    padding: 3px 11px; margin-left: 4px; color: var(--ips-text) !important; text-decoration: none !important;
}
body.ips-wo-standalone.single-product .product_meta a:hover { border-color: var(--ips-blue); color: var(--ips-blue) !important; }

/* タブ(説明など) */
body.ips-wo-standalone.single-product .woocommerce-tabs { margin-top: 26px; }
body.ips-wo-standalone.single-product ul.wc-tabs {
    display: flex !important; gap: 2px; margin: 0 !important; padding: 0 !important; list-style: none;
    border-bottom: 2px solid var(--ips-line); background: none !important; overflow: visible !important;
}
body.ips-wo-standalone.single-product ul.wc-tabs::before,
body.ips-wo-standalone.single-product ul.wc-tabs::after { display: none !important; }
body.ips-wo-standalone.single-product ul.wc-tabs li {
    background: none !important; border: none !important; border-radius: 0 !important;
    margin: 0 !important; padding: 0 !important;
}
body.ips-wo-standalone.single-product ul.wc-tabs li a {
    display: block; padding: 10px 18px !important; font-size: 15px; font-weight: 700;
    color: var(--ips-muted) !important; text-decoration: none !important;
    border-bottom: 2.5px solid transparent; margin-bottom: -2px;
}
body.ips-wo-standalone.single-product ul.wc-tabs li.active a,
body.ips-wo-standalone.single-product ul.wc-tabs li a:hover { color: var(--ips-navy) !important; border-bottom-color: var(--ips-navy); }
body.ips-wo-standalone.single-product .woocommerce-Tabs-panel { padding: 20px 2px 4px !important; font-size: 15px; line-height: 1.8; }
/* パネル先頭のタブ名と同じ見出し・自動挿入の目次は出さない */
body.ips-wo-standalone.single-product .woocommerce-Tabs-panel--description > h2:first-of-type { display: none; }
body.ips-wo-standalone.single-product .woocommerce-Tabs-panel .toc { display: none !important; }
/* 説明内のCocoon装飾見出しをフラットな見出しに統一 */
body.ips-wo-standalone.single-product .woocommerce-Tabs-panel h3 {
    background: none !important; border: none !important; box-shadow: none !important; border-radius: 0 !important;
    border-left: 4px solid var(--ips-navy) !important;
    margin: 22px 0 10px !important; padding: 2px 0 2px 12px !important;
    font-size: 16px !important; color: var(--ips-text) !important;
}
body.ips-wo-standalone.single-product .woocommerce-Tabs-panel table { background: #fff; }

/* 関連商品 */
body.ips-wo-standalone.single-product section.related,
body.ips-wo-standalone.single-product section.upsells { margin-top: 30px; border-top: 1px solid var(--ips-line); padding-top: 18px; }
body.ips-wo-standalone.single-product section.related > h2,
body.ips-wo-standalone.single-product section.upsells > h2 {
    margin: 0 0 4px !important; padding: 0 !important; background: none !important; border: none !important;
    font-size: 17px !important; font-weight: 700; color: var(--ips-text);
}

/* 詳細ページ: スマホは縦積み */
@media screen and (max-width: 860px) {
    body.ips-wo-standalone.single-product div.product { grid-template-columns: 1fr; padding: 16px 14px; gap: 0; }
    body.ips-wo-standalone.single-product div.product > .woocommerce-notices-wrapper,
    body.ips-wo-standalone.single-product div.product > .woocommerce-product-gallery,
    body.ips-wo-standalone.single-product div.product > .woocommerce-tabs,
    body.ips-wo-standalone.single-product div.product > .upsells,
    body.ips-wo-standalone.single-product div.product > .related,
    body.ips-wo-standalone.single-product div.product > .summary { grid-column: 1; grid-row: auto; }
    body.ips-wo-standalone.single-product div.product > .woocommerce-product-gallery { margin: 0 0 16px !important; }
    .ips-single-name { font-size: 19px !important; }
    body.ips-wo-standalone.single-product .summary > .price .amount { font-size: 24px; }
    body.ips-wo-standalone.single-product form.cart .single_add_to_cart_button { max-width: none; }
    body.ips-wo-standalone.single-product ul.wc-tabs { overflow-x: auto !important; scrollbar-width: none; }
}

/* ============================================================
   スマホ調整(2026-09-14): 文字の底上げ+商品詳細の横はみ出し防止
   ============================================================ */
@media screen and (max-width: 760px) {
    body.ips-wo-standalone { font-size: 16.5px; }
    /* ヘッダー(検索は16px以上にしてiOSのフォーカス時ズームも防ぐ) */
    .ips-ws-search input[type="search"] { font-size: 16px; }
    .ips-ws-catnav a { font-size: 15px; padding: 13px 12px; }
    .ips-ws-loginbtn { font-size: 14.5px; }
    /* 一覧 */
    .ips-filters-title { font-size: 16px; }
    .ips-filter-group li { font-size: 15px; padding: 5px 0; }
    .ips-filter-heading { font-size: 14.5px; }
    body.ips-wo-standalone .woocommerce-result-count { font-size: 14.5px; }
    body.ips-wo-standalone .woocommerce-ordering select { font-size: 15px; height: 42px; }
    .ips-card-model { font-size: 15px; }
    .ips-card-name { font-size: 15px !important; }
    .ips-card-stock { font-size: 15px; }
    .ips-card-price > span { font-size: 12px; }
    .ips-card-price b, .ips-card-price .amount { font-size: 15px; }
    .ips-card-price--login { font-size: 14.5px; }
    .ips-card-buy .add_to_cart_button, body.ips-wo-standalone ul.products li.product .button { font-size: 16px; }
    .ips-qty-btn { font-size: 19px; width: 34px; }
    .ips-card-buy .ips-card-qty { font-size: 16px; width: 44px !important; }
    .ips-card-badges span { font-size: 12px; }
    /* 商品詳細: 列の最小幅を0にして、中身が大きくてもカードの外へ広がらないようにする */
    body.ips-wo-standalone.single-product div.product { grid-template-columns: minmax(0, 1fr); }
    body.ips-wo-standalone.single-product div.product > .summary,
    body.ips-wo-standalone.single-product div.product > .woocommerce-product-gallery,
    body.ips-wo-standalone.single-product div.product > .woocommerce-tabs,
    body.ips-wo-standalone.single-product div.product > .related { min-width: 0; max-width: 100%; }
    body.ips-wo-standalone.single-product .summary { overflow-wrap: anywhere; }
    body.ips-wo-standalone.single-product .ips-single-login { box-sizing: border-box; max-width: 100%; }
    body.ips-wo-standalone.single-product .product_meta a { white-space: normal; max-width: 100%; box-sizing: border-box; line-height: 1.5; }
    /* 商品詳細の文字 */
    .ips-single-model { font-size: 15.5px; }
    .ips-single-name { font-size: 21px !important; }
    body.ips-wo-standalone.single-product .ips-card-stock--single { font-size: 15px; }
    body.ips-wo-standalone.single-product .summary > .price::before { font-size: 13.5px; }
    body.ips-wo-standalone.single-product .summary .woocommerce-product-details__short-description h2,
    body.ips-wo-standalone.single-product .summary .woocommerce-product-details__short-description h3,
    body.ips-wo-standalone.single-product .summary .woocommerce-product-details__short-description .blank-box { font-size: 16px !important; }
    body.ips-wo-standalone.single-product .summary .woocommerce-product-details__short-description p { font-size: 16px; }
    .ips-single-login p { font-size: 16px; }
    .ips-single-login .button { font-size: 16px; }
    body.ips-wo-standalone.single-product form.cart .quantity .qty { font-size: 16px; }
    body.ips-wo-standalone.single-product form.cart .single_add_to_cart_button { font-size: 16px; }
    body.ips-wo-standalone.single-product .product_meta { font-size: 14.5px; }
    body.ips-wo-standalone.single-product ul.wc-tabs li a { font-size: 16px; }
    body.ips-wo-standalone.single-product .woocommerce-Tabs-panel { font-size: 16.5px; line-height: 1.85; }
    body.ips-wo-standalone.single-product .woocommerce-Tabs-panel h3 { font-size: 17px !important; }
    body.ips-wo-standalone.single-product section.related > h2 { font-size: 18px !important; }
    /* カート・マイアカウント */
    .ips-cart-continue a { font-size: 15.5px; }
    body.ips-wo-standalone .woocommerce-MyAccount-navigation li a { font-size: 14px; }
    body.ips-wo-standalone .account-orders-table tbody th,
    body.ips-wo-standalone .account-orders-table tbody td { font-size: 15px; }
}

/* 売り切れ・お取り寄せ: 営業への問い合わせ導線 */
body.ips-wo-standalone ul.products li.product .button.ips-card-contact {
    background: #fff !important; color: var(--ips-navy) !important; border: 1.5px solid var(--ips-navy);
}
body.ips-wo-standalone ul.products li.product .button.ips-card-contact:hover { background: var(--ips-blue-light) !important; }
.ips-single-contact {
    margin: 14px 0; padding: 14px 16px; background: #fff7ed; border: 1px solid #f5d9b5; border-radius: 10px;
}
.ips-single-contact p { margin: 0 0 10px; font-size: 14.5px; }

/* HDDオプション案内(商品画像の右下) */
.ips-card-hddnote {
    position: absolute; top: 140px; right: 10px; z-index: 2; max-width: calc(100% - 20px);
    background: #fff7ed; color: #b45309; border: 1px solid #f5d9b5; border-radius: 6px;
    font-size: 11px; font-weight: 700; line-height: 1.4; padding: 3px 8px; text-align: right;
}
@media screen and (max-width: 760px) {
    .ips-card-hddnote { top: 92px; font-size: 9.5px; letter-spacing: -.02em; padding: 2px 5px; white-space: nowrap; }
}
/* 絞り込み条件が無いカテゴリの案内 */
.ips-filters-none { margin: 0; font-size: 13px; color: var(--ips-muted); line-height: 1.6; }
/* 商品詳細ギャラリーのHDDオプション案内(右下) */
body.ips-wo-standalone.single-product .woocommerce-product-gallery { position: relative; }
.ips-single-hddnote { top: auto !important; bottom: 14px; right: 14px; font-size: 12.5px; padding: 5px 10px; }
@media screen and (max-width: 760px) { .ips-single-hddnote { top: auto !important; bottom: 12px; right: 12px; font-size: 11.5px; } }
