/* DIY Welder Connector — フロント表示（テーマ非依存・最小スタイル） */
.dw-machine {
	--dw-border: #e2e5e9;
	--dw-accent: #c2410c;
	--dw-muted: #6b7280;
	max-width: 880px;
	margin: 0 auto;
	line-height: 1.7;
}

.dw-machine__title {
	margin: 0 0 0.4em;
	font-size: 1.6rem;
}

.dw-machine__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	margin: 0 0 1.2em;
}

.dw-badge {
	display: inline-block;
	padding: 0.15em 0.7em;
	border-radius: 999px;
	background: var(--dw-accent);
	color: #fff;
	font-size: 0.8rem;
	font-weight: 600;
}

.dw-badge--muted {
	background: #f3f4f6;
	color: var(--dw-muted);
}

.dw-machine section {
	margin: 1.6em 0;
}

.dw-machine h2 {
	font-size: 1.2rem;
	border-bottom: 2px solid var(--dw-accent);
	padding-bottom: 0.2em;
	margin-bottom: 0.6em;
}

.dw-machine h3 {
	font-size: 1.02rem;
	margin: 0.8em 0 0.4em;
}

.dw-machine__caution {
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 8px;
	padding: 0.8em 1em;
}

.dw-machine__safety {
	color: var(--dw-muted);
	font-size: 0.85rem;
	margin-bottom: 0;
}

.dw-scores {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 0.5em 1em;
	margin: 0;
}

.dw-scores__item {
	display: flex;
	justify-content: space-between;
	gap: 0.5em;
	padding: 0.3em 0;
	border-bottom: 1px dashed var(--dw-border);
}

.dw-scores__item dt {
	color: var(--dw-muted);
	font-size: 0.9rem;
	margin: 0;
}

.dw-scores__item dd {
	margin: 0;
	font-weight: 600;
	white-space: nowrap;
}

.dw-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.92rem;
}

.dw-table th,
.dw-table td {
	border: 1px solid var(--dw-border);
	padding: 0.45em 0.7em;
	text-align: left;
	vertical-align: top;
}

.dw-table thead th {
	background: #f9fafb;
}

.dw-table tbody th {
	background: #f9fafb;
	width: 30%;
	white-space: nowrap;
}

.dw-methods,
.dw-relations,
.dw-offers {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dw-methods li,
.dw-relations li {
	padding: 0.3em 0;
	border-bottom: 1px dashed var(--dw-border);
}

.dw-methods__flag,
.dw-relations__type {
	display: inline-block;
	margin-left: 0.4em;
	font-size: 0.8rem;
	color: var(--dw-accent);
	font-weight: 600;
}

.dw-offer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6em;
	padding: 0.6em 0.2em;
	border-bottom: 1px solid var(--dw-border);
}

.dw-offer__mall {
	font-weight: 700;
	min-width: 7em;
}

.dw-offer__price {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--dw-accent);
}

.dw-offer__point,
.dw-offer__prime {
	font-size: 0.78rem;
	background: #f3f4f6;
	border-radius: 4px;
	padding: 0.1em 0.5em;
	color: var(--dw-muted);
}

.dw-offer__link {
	margin-left: auto;
	display: inline-block;
	padding: 0.4em 1em;
	background: var(--dw-accent);
	color: #fff;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
	white-space: nowrap;
}

.dw-offer__synced {
	flex-basis: 100%;
	color: var(--dw-muted);
	font-size: 0.78rem;
}

.dw-offers__note {
	color: var(--dw-muted);
	font-size: 0.82rem;
}

.dw-machine__cta {
	text-align: center;
	margin: 2em 0 0;
}

.dw-cta {
	display: inline-block;
	padding: 0.8em 2em;
	background: var(--dw-accent);
	color: #fff;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 700;
}

.dw-connector-notice {
	padding: 0.8em 1em;
	background: #f3f4f6;
	border-radius: 6px;
	color: var(--dw-muted);
}

.dw-island {
	--dw-border: #e2e5e9;
	--dw-accent: #c2410c;
	--dw-muted: #6b7280;
	max-width: 960px;
	margin: 0 auto;
	line-height: 1.7;
}

.dw-island__title {
	margin: 0 0 0.8em;
	font-size: 1.4rem;
}

.dw-compare__choices,
.dw-form {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0.8em;
	margin: 1em 0;
}

.dw-check,
.dw-form label {
	display: flex;
	gap: 0.5em;
	align-items: flex-start;
}

.dw-check {
	padding: 0.7em;
	border: 1px solid var(--dw-border);
	border-radius: 6px;
}

.dw-check small,
.dw-form label > span {
	display: block;
	color: var(--dw-muted);
	font-size: 0.85rem;
}

.dw-form label:not(.dw-check) {
	display: block;
}

.dw-form input[type="number"],
.dw-form input[type="text"],
.dw-form select {
	width: 100%;
	box-sizing: border-box;
	padding: 0.45em 0.6em;
	border: 1px solid var(--dw-border);
	border-radius: 6px;
	background: #fff;
}

.dw-form .dw-cta {
	border: 0;
	cursor: pointer;
}

.dw-form .dw-cta:disabled {
	cursor: progress;
	opacity: 0.7;
}

.dw-table-wrap {
	overflow-x: auto;
	margin: 1em 0;
}

.dw-compare__table {
	min-width: 720px;
}

.dw-diagnosis__result {
	margin-top: 1.5em;
}

.dw-diagnosis__result section {
	margin: 1.2em 0;
}

.dw-result-list,
.dw-buy-links {
	margin: 0.4em 0 0;
}

.dw-chat__messages {
	display: flex;
	flex-direction: column;
	gap: 0.7em;
	margin: 1em 0;
}

.dw-chat__msg {
	max-width: 78%;
	padding: 0.7em 0.9em;
	border: 1px solid var(--dw-border);
	border-radius: 8px;
	white-space: pre-wrap;
}

.dw-chat__msg--user {
	align-self: flex-end;
	background: var(--dw-accent);
	color: #fff;
}

.dw-chat__msg--assistant {
	align-self: flex-start;
	background: #f9fafb;
}

.dw-chat__form {
	display: flex;
	gap: 0.8em;
	align-items: flex-end;
	margin-top: 1em;
}

.dw-chat__input-label {
	flex: 1;
}

.dw-chat__input-label span {
	display: block;
	margin-bottom: 0.25em;
	color: var(--dw-muted);
	font-size: 0.85rem;
}

.dw-chat__input-label textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6em 0.7em;
	border: 1px solid var(--dw-border);
	border-radius: 6px;
	background: #fff;
	resize: vertical;
}

.dw-chat__submit {
	border: 0;
	cursor: pointer;
}

.dw-chat__submit:disabled,
.dw-chat__input-label textarea:disabled {
	cursor: progress;
	opacity: 0.7;
}

@media (max-width: 640px) {
	.dw-chat__msg {
		max-width: 92%;
	}

	.dw-chat__form {
		display: block;
	}

	.dw-chat__submit {
		margin-top: 0.7em;
		width: 100%;
	}
}

/* AI生成文: 比較文・FAQ */
.dw-machine__comparison {
	background: #f8fafc;
	border: 1px solid var(--dw-border);
	border-radius: 8px;
	padding: 0.8em 1em;
}

.dw-machine__faq {
	margin-top: 1.2em;
}

.dw-machine__ai-note {
	color: var(--dw-muted);
	font-size: 0.82rem;
	margin: 0 0 1em;
}

.dw-faq__item {
	border: 1px solid var(--dw-border);
	border-radius: 8px;
	padding: 0.6em 1em;
	margin-bottom: 0.6em;
}

.dw-faq__q {
	margin: 0 0 0.3em;
	font-size: 1rem;
	font-weight: 600;
}

.dw-faq__q::before {
	content: "Q. ";
	color: var(--dw-accent);
	font-weight: 700;
}

.dw-faq__a {
	color: #374151;
}

.dw-faq__a p {
	margin: 0;
}

/* --- 汎用ブロック（Phase B） --- */
.dw-spec-table,
.dw-material-thickness {
    margin: 1.5em 0;
}
.dw-spec-table table,
.dw-material-thickness table {
    width: 100%;
    border-collapse: collapse;
}
.dw-material-thickness {
    overflow-x: auto;
}
.dw-spec-table th {
    width: 40%;
    text-align: left;
    white-space: nowrap;
}
.dw-spec-table th,
.dw-spec-table td,
.dw-material-thickness th,
.dw-material-thickness td {
    border: 1px solid #ddd;
    padding: 0.5em 0.75em;
    word-break: break-word;
}
/* 購入カード（offer-card）はPochipp風の余白・ボタン配置に寄せる */
.dw-offers {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dw-offer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5em;
    padding: 0.75em 0;
    border-bottom: 1px solid #eee;
}
.dw-offer__link {
    margin-left: auto;
}
@media (max-width: 600px) {
    .dw-offer {
        justify-content: center;
    }
    .dw-offer__link {
        margin-left: 0;
        width: 100%;
        text-align: center;
    }
}

/* 比較表（comparison-table） */
.dw-comparison-table {
    overflow-x: auto;
    margin: 1.5em 0;
}
.dw-comparison-table table {
    width: 100%;
    border-collapse: collapse;
}
.dw-comparison-table th,
.dw-comparison-table td {
    border: 1px solid #ddd;
    padding: 0.5em 0.75em;
    text-align: left;
    word-break: break-word;
}
.dw-comparison-table thead th {
    white-space: nowrap;
}

/* 溶接設定値表（welding-setting-table） */
.dw-welding-setting {
    overflow-x: auto;
    margin: 1.5em 0;
}
.dw-welding-setting table {
    width: 100%;
    border-collapse: collapse;
}
.dw-welding-setting th,
.dw-welding-setting td {
    border: 1px solid #ddd;
    padding: 0.5em 0.75em;
    word-break: break-word;
}

/* テーブル見出しの可読性: テーマ(SWELL等)の配色に依存せず明示指定する。
   列見出し=濃色地+白文字 / 行見出し=淡色地+濃文字 で統一 */
.dw-spec-table thead th,
.dw-comparison-table thead th,
.dw-material-thickness thead th,
.dw-welding-setting thead th {
    background: #4b5563;
    color: #fff;
}
.dw-spec-table tbody th,
.dw-comparison-table tbody th {
    background: #f3f4f6;
    color: #1f2937;
}

.dw-generated-faq {
    margin: 1.2em 0;
}

.dw-generated-faq__note {
    color: var(--dw-muted);
    font-size: 0.82rem;
    margin: 0 0 1em;
}

/* 購入カード（Pochipp風）: PCは画像+本文の2カラム、SPは縦積み中央寄せ */
.dw-buybox {
    display: flex;
    gap: 1em;
    align-items: flex-start;
    border: 1px solid var(--dw-border);
    border-radius: 8px;
    padding: 1em;
    margin: 1.4em 0;
    background: #fff;
}
.dw-buybox__image {
    flex: 0 0 100px;
}
.dw-buybox__image img {
    width: 100px;
    height: 100px;
    object-fit: contain;
    display: block;
}
.dw-buybox__body {
    flex: 1 1 auto;
    min-width: 0;
}
.dw-buybox__title {
    font-weight: 700;
    margin: 0 0 0.3em;
    line-height: 1.4;
}
.dw-buybox__price {
    color: var(--dw-accent);
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 0 0.6em;
}
.dw-buybox__btns {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em;
}
.dw-buybox__btnwrap {
    flex: 1 1 auto;
    min-width: 8em;
}
.dw-buybox__btn {
    display: block;
    text-align: center;
    padding: 0.55em 1em;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 700;
    color: #fff;
    background: var(--dw-accent);
}
.dw-buybox__btnwrap.-amazon .dw-buybox__btn {
    background: #ff9900;
}
.dw-buybox__btnwrap.-rakuten .dw-buybox__btn {
    background: #bf0000;
}
.dw-buybox__btnwrap.-yahoo .dw-buybox__btn {
    background: #ff0033;
}
.dw-buybox__note {
    color: var(--dw-muted);
    font-size: 0.78rem;
    margin: 0.6em 0 0;
}
@media (max-width: 600px) {
    .dw-buybox {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .dw-buybox__image {
        flex: 0 0 auto;
    }
    .dw-buybox__btnwrap {
        flex-basis: 100%;
    }
}
