.cartinfo {
	padding: 0 1rem;
	border: solid 1px #EFEFEF;
}

.cartinfo ul {
	margin: 0;
	padding: 0;
	font-size: 0px;
}

.cartinfo ul li {
	margin: 0 2rem;
	padding: 1rem 0;
	border-bottom: solid 1px #EFEFEF;
	font-size: 14px;
	text-align: right;
}

.cartinfo ul li .price {
	font-size: 24px;
}

.cartbox {
	border: 15px solid #EBEBEB;
	background-color: #EBEBEB;
}

.cartbox div.collapsible-header {
	background: #ffffff;
	border-bottom: 1px solid #ddd;
}

.card-stacked {
	display: block !important;
}

.discountbox {
	background-color: #FFF;
}

.orderbox p {
	padding: 0;
	margin: 0;
}

.orderbox.body {
	border: solid 1px #EBEBEB;
}

.msgbox {
	padding: 2rem;
	text-align: center;
	color: #666;
	border: solid 2px #EFEFEF;
}

.msgbox p {
	text-align: left;
	font-size: 1rem;
	margin-top: 30px;
	line-height: 150%;
}

.orderbox>div .body table td {
	line-height: 1.75;
	font-size: 12px;
	background-color: #fff;
	padding: .2rem .5rem;
}

.orderbox>div .body table th {
	background-color: #ebebeb;
	color: #000;
	padding: .1rem .5rem;
	text-align: left;
	font-weight: 300;
	font-size: .9rem;
}

.orderbox>div .body table td ul li span {
	content: "";
	width: 20px;
	height: 20px;
	position: absolute;
	left: 0;
	top: 7px;
	background-color: #000;
	display: block;
}

.orderbox>div .body table td ul li {
	position: relative;
	display: inline-block;
	font-size: 12px;
	height: 40px;
	line-height: 33px;
	padding-left: 30px;
}

@media screen and (max-width: 991px) {
	.orderbox .info>div table tbody td {
		display: block;
		padding: 0 !important;
		text-indent: .5rem;
		background: #fff;
		color: #000;
		line-height: 2rem;
	}
	.orderbox .info>div table tbody tr {
		display: block;
		margin-bottom: 20px;
		font-size: 12px;
	}
}

@media screen and (max-width: 600px) {
	.orderbox>div .body table tbody td, .orderbox>div .body table tbody td:before {
		border-spacing: 0;
		font-size: 11px;
		display: block;
		border-right: 1px solid #ebebeb;
		color: #000;
		line-height: 1.8rem;
	}
}

/* TOPに戻る */
.cmn_pagetop {
	bottom: calc(10px + var(--floating-cta-height, 0px));
	right: 10px;
}

.orderbox .flex {
	margin-top: 0;
	padding: 10px;
}

.orderbox .flex p {
	text-align: right;
}

.orderbox .flex span {
	padding: 0 0 0 .5rem;
	min-width: 6em;
	display: inline-block;
}

/* ADD S 20240917 K.Kitta お届け先遠隔地(北海道、沖縄、離島)の最短納期調整 */
input#deliverydate,
input#usedate,
input#mass_deliverydate,
input#mass_usedate {
	/* MOD 20250529 K.Kobayashi 量産お届け希望日追加 */
	background-image: url(../img/icon_cal.png);
	background-repeat: no-repeat;
	background-position: right 5px center;
}

/*header*/
.cartbox li.valid-err .collapsible-header {
	background: #ffeefe;
}

/*total*/
.cartbox li.valid-err .discountbox {
	background: #ffeefe;
}

/*msg*/
.cartbox li.valid-err .discountbox .min_delivery_msg p {
	text-align: right;
}

.cartbox li.valid-err .discountbox .min_delivery_msg span {
	font-size: 1.2rem;
	color: #F00;
	background: #ffee00;
}

.cartbox li.valid-err .collapsible-body .info p.min_delivery_msg span {
	color: #F00;
	background: #ffee00;
}

.min_delivery_msg span {
	color: #e00000;
}

/*input*/
.cartbox li.valid-err .collapsible-body table td.valid-err {
	background: #ffeefe;
}

.cartbox li .collapsible-body table td.valid-err .input-group.date {
	width: 25%;
}

@media screen and (max-width: 767px) {
	.cartbox li .collapsible-body table td.valid-err .input-group.date {
		width: 50%;
	}
}

/* ADD E 20240917 K.Kitta お届け先遠隔地(北海道、沖縄、離島)の最短納期調整 */

/* ===== New Cart Contents ===== */
.cart-contents {
	all: initial;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	width: 100%;
	font-family: 'Noto Sans', sans-serif;
	padding-top: 32px;
}

.cart-contents>h2 {
	all: initial;
	font-size: 22px;
	font-weight: 700;
	color: #000;
	text-align: center;
}

.cart-contents .checkout-main {
	display: flex;
	align-items: flex-start;
	gap: 32px;
	width: 100%;
}

.cart-contents .checkout-details {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

/* 商品カード */
.cart-contents .order-item {
	padding: 16px;
	border: 1px solid #ccc;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-sizing: border-box;
}

/* お客様情報セクション */
.cart-contents .customer-info {
	width: 100%;
}

.cart-contents .customer-info>h3 {
	all: initial;
	font-size: 24px;
	font-weight: 700;
	font-family: 'Noto Sans', sans-serif;
	margin-bottom: 16px;
	color: #000;
}

.cart-contents .customer-info .info-section-title {
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 8px;
	color: #000;
}

.cart-contents .customer-info .info-box {
	border: 1px solid #cccccc;
	background-color: #F2F2F2;
	padding: 8px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.cart-contents .customer-info .info-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-bottom: 16px;
	border-bottom: 1px solid #cccccc;
}

.cart-contents .customer-info .info-group.info-group-last {
	padding-bottom: 0;
	border-bottom: none;
}

.cart-contents .customer-info .info-row {
	display: flex;
	justify-content: space-between;
	/* gap: 16px; */
	flex-direction: column;
	padding: 8px;
	background-color: #ffffff;
	border-radius: 5px;
}

.cart-contents .customer-info .info-label {
	font-size: 16px;
	color: #000000;
	flex-shrink: 0;
	padding: 8px;
	display: inline-block;
	border-bottom: 1px solid #eeeeee;
}

.cart-contents .customer-info .info-value {
	font-size: 16px;
	color: #000000;
	text-align: right;
	word-break: break-word;
	padding: 8px;
}

/* Section wrappers */
.cart-contents .customer-info .customer-info-wrap,
.cart-contents .customer-info .delivery-address-wrap,
.cart-contents .customer-info .consignor-wrap,
.cart-contents .customer-info .payment-wrap,
.cart-contents .customer-info .receipt-wrap,
.cart-contents .customer-info .estimate-wrap,
.cart-contents .customer-info .other-wrap {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 16px;
}

/* レスポンシブ対応 */

.cart-contents .item-header {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.cart-contents .item-name {
	font-size: 16px;
	font-weight: 700;
	color: #000;
}

.cart-contents .item-code {
	font-size: 16px;
	color: #808080;
}

.cart-contents .item-body {
	display: flex;
	gap: 16px;
}

.cart-contents .item-image {
	width: 120px;
	height: auto;
	object-fit: contain;
	border: 1px solid #ccc;
	align-self: flex-start;
}

.cart-contents .item-detail {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.cart-contents .order-overview {
	display: flex;
	flex-direction: column;
}

.cart-contents .detail-line {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-bottom: 8px;
	border-bottom: 1px solid #e5e5e5;
}

.cart-contents .detail-label {
	font-size: 16px;
	color: #000;
}

.cart-contents .detail-value {
	font-size: 16px;
	color: #000;
	text-align: right;
}

/* ボタン群 */
.cart-contents .order-item-actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cart-contents .samedesign-applied-msg {
	color: #F00;
	font-size: 14px;
	font-weight: 700;
}

.cart-contents .samedesign-alert-msg {
	padding: 8px 12px;
	font-size: 13px;
	line-height: 1.6;
}

.cart-contents .samedesign-alert-msg p {
	margin: 0;
	color: #333;
}

.cart-contents .samedesign-alert-msg p:first-child {
	color: #c00;
}

.cart-contents .samedesign-alert-msg p:first-child > strong {
	color: #f00;
}

.cart-contents .samedesign-alert-msg a {
	color: #24bbb7;
	font-weight: 700;
}

.cart-contents .view-details-button {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 8px;
	background-color: #24bbb7;
	color: #fff;
	font-size: 16px;
	font-weight: normal;
	border-radius: 5px;
	border: none;
	cursor: pointer;
}

.cart-contents .order-item-change {
	display: flex;
	gap: 8px;
}

.cart-contents .edit-button {
	flex: 1 1 0;
	min-width: 0;
	width: 100%;
	padding: 8px;
	background-color: #fff;
	color: #24bbb7;
	font-size: 16px;
	font-weight: normal;
	border: 1px solid #24bbb7;
	border-radius: 5px;
	cursor: pointer;
}

.cart-contents .delete-button {
	flex: 1 1 0;
	min-width: 0;
	width: 100%;
	padding: 8px;
	background-color: #fff;
	color: #808080;
	font-size: 16px;
	font-weight: normal;
	border: 1px solid #808080;
	border-radius: 5px;
	cursor: pointer;
}

/* 右側サマリー */
.cart-contents .order-summary {
	width: 320px;
	padding: 16px;
	background-color: #fafafa;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-sizing: border-box;
}

.cart-contents .summary-header {
	display: flex;
	justify-content: space-between;
	padding-bottom: 8px;
	border-bottom: 1px solid #ccc;
}

.cart-contents .summary-header .summary-title {
	font-weight: 600;
}

.cart-contents .summary-header .summary-count {
	font-weight: 600;
}

.cart-contents .charge-lines {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-bottom: 8px;
	border-bottom: 1px solid #ccc;
}

.cart-contents .charge-line {
	display: flex;
	justify-content: space-between;
	gap: 32px;
}

.cart-contents .charge-line.charge-line--total {
	flex-direction: column;
	gap: 4px;
}

.cart-contents .charge-line.charge-line--total .charge-line-amount {
	text-align: right;
	font-weight: 600;
}

.cart-contents .total-section {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cart-contents .charge-line--total > span:not(.charge-line-amount) {
	font-weight: 600;
}

/* レスポンシブ */
@media (max-width: 767px) {
	.cart-contents .checkout-main {
		flex-direction: column;
	}

	.cart-contents .checkout-details {
		display: contents;
	}

	.cart-contents .order-item {
		order: 1;
		width: 100%;
	}

	.cart-contents .order-summary {
		order: 2;
		width: 100%;
		/* padding: 0; */
	}

	.cart-contents .customer-info {
		order: 3;
	}

	.cart-contents .item-image {
		width: 80px;
	}

	.cart-contents .item-detail {
		gap: 8px;
	}

	.cart-contents .item-name {
		font-size: 14px;
		font-weight: 600;
	}

	.cart-contents .item-code {
		font-size: 14px;
	}

	.cart-contents .detail-label,
	.cart-contents .detail-value {
		font-size: 14px;
	}

	.cart-contents .view-details-button,
	.cart-contents .edit-button,
	.cart-contents .delete-button {
		font-size: 14px;
	}

	.cart-contents .samedesign-applied-msg {
		font-size: 12px;
	}

	.cart-contents .samedesign-alert-msg {
		font-size: 12px;
	}
}

/* Dialog本体 */
.cart-detail-dialog {
	border: none;
	border-radius: 8px;
	padding: 0;
	width: calc(98% - 16px);
	max-width: 680px;
	max-height: 85vh;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
	/* .cart-contents の `font-family: 'Noto Sans'` 継承を打ち消し、ボディ標準スタックを使う */
	font-family: Noto Sans JP, Avenir, Open Sans, Helvetica Neue, Helvetica, Arial, Verdana, Roboto, "Hiragino Kaku Gothic Pro", Meiryo UI, Meiryo, "MS PGothic", sans-serif;
}

.cart-detail-dialog::backdrop {
	background-color: rgba(0, 0, 0, 0.5);
}

/* Dialogヘッダー（固定） */
.cart-detail-dialog .dialog-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 1.5rem;
	background-color: #fff;
	color: #000;
	position: sticky;
	top: 0;
	z-index: 1;
}

.cart-detail-dialog .dialog-header h3 {
	all: initial;
	margin: 0;
	font-size: 1.2rem;
	font-weight: 500;
	overflow: hidden;
	text-overflow: ellipsis;
	flex: 1;
	padding-right: 1rem;
}

/* 閉じるボタン */
.cart-detail-dialog .dialog-close-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: rgba(0, 0, 0, 0.1);
	border: none;
	border-radius: 50%;
	color: #333;
	cursor: pointer;
}

.cart-detail-dialog .dialog-close-btn:hover {
	background: rgba(0, 0, 0, 0.2);
}

/* Dialogボディ（スクロール可能） */
.cart-detail-dialog .dialog-body {
	padding: 1rem;
	overflow-y: auto;
	max-height: calc(85vh - 70px);
}

/* Dialogフッター */
.cart-detail-dialog .dialog-footer {
	display: flex;
	justify-content: center;
	padding: 15px;
	border-top: 1px solid #eceeef;
}

.cart-detail-dialog .dialog-footer-close-btn {
	width: 300px;
	max-width: 100%;
	padding: 1em 0;
	color: #fff;
	display: inline-block;
	text-align: center;
	font-weight: 500;
	font-size: 1.1rem;
	background-color: #afafaf;
	border: none;
	border-radius: 4px;
	cursor: pointer;
}

/* レスポンシブ：モバイル（ほぼ全画面） */
@media screen and (max-width: 767px) {
	.cart-detail-dialog {
		width: calc(98% - 16px);
		max-width: 680px;
		height: calc(100vh - 110px);
		height: calc(100dvh - 110px);
		max-height: calc(100vh - 110px);
		max-height: calc(100dvh - 110px);
		margin: 30px auto;
		border-radius: 8px;
	}

	.cart-detail-dialog .dialog-body {
		max-height: calc(100vh - 110px - 70px);
		max-height: calc(100dvh - 110px - 70px);
	}

	.cart-detail-btn .detail-btn-text {
		display: none;
	}

	.cart-detail-btn {
		padding: 0.5rem;
	}
}

/* ダイアログ内テーブル：背景は td 側の linear-gradient で左40%を灰色に固定し、
   セル高さに関係なくラベル領域を塗りつぶす。
   li はデスクトップと同様に inline-block + line-height 揃えにし、
   absolute 配置の span（アイコン）と text の縦位置を一致させる */
@media screen and (max-width: 600px) {
	.cart-detail-dialog .dialog-body .orderbox > div .body table tbody td {
		overflow: hidden;
		background-image: linear-gradient(to right, #f8f8f8 0, #f8f8f8 calc(40% - 1px), #ebebeb calc(40% - 1px), #ebebeb 40%, transparent 40%);
	}
	.cart-detail-dialog .dialog-body .orderbox > div .body table tbody td > ul {
		text-indent: 0;
		text-align: left;
	}
	.cart-detail-dialog .dialog-body .orderbox > div .body table tbody td > ul li {
		display: inline-block;
		line-height: 33px;
		font-size: 12px;
	}
}

/* デスクトップの詳細モーダル：プリントカラー一覧の行間を詰める */
@media screen and (min-width: 768px) {
	.cart-detail-dialog .dialog-body .orderbox > div .body table td ul li {
		height: 28px;
		line-height: 24px;
	}
}

/* Important Notes Section */
.important-notes {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	width: 100%;
	margin-top: 24px;
}

.important-notes .important-notes-title {
	all: initial;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
	margin: 0;
}

.important-notes .important-notes-box {
	border: 2px solid #24bbb7;
	padding: 16px;
	background-color: #fff;
}

.important-notes .important-notes-inner {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.important-notes .important-notes-item {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	padding-bottom: 16px;
	border-bottom: 1px solid #ccc;
}

.important-notes .important-notes-item:last-child {
	padding-bottom: 0;
	border-bottom: none;
}

.important-notes .important-notes-icon {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	object-fit: contain;
}

.important-notes .important-notes-text {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.important-notes .important-notes-label {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}

.important-notes .important-notes-value {
	font-size: 14px;
	font-weight: normal;
	line-height: 1.6;
	color: #333;
}

/* Order Actions Section */
.order-actions {
	display: flex;
	gap: 32px;
	width: 100%;
	margin-top: 24px;
}

.order-actions .order-action-btn,
.order-actions-form .order-action-btn {
	flex: 1;
	padding: 16px;
	border-radius: 5px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
	cursor: pointer;
}

.order-actions .order-action-btn.back-button {
	background-color: transparent;
	border: 2px solid #24bbb7;
	color: #24bbb7;
}

.order-actions .order-action-btn.submit-button,
.order-actions-form .order-action-btn.submit-button {
	background-color: #24bbb7;
	border: 2px solid #24bbb7;
	color: #ffffff;
}

.order-actions .order-action-btn.submit-button.incomplete,
.order-actions-form .order-action-btn.submit-button.incomplete {
	background-color: #E5E5E5;
	border-color: #E5E5E5;
	color: #ffffff;
}

.order-actions .order-action-btn.submit-button.complete,
.order-actions-form .order-action-btn.submit-button.complete {
	background-color: #24bbb7;
	color: #ffffff;
}

/* Order Actions - Mobile */
@media (max-width: 767px) {
	.order-actions {
		flex-direction: column-reverse;
	}
}

/* jQuery UI Dialog カスタマイズ */
.ui-dialog.ui-widget.ui-widget-content {
	border: 2px solid #24BBB7;
	border-radius: 10px;
	padding: 0;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	width: auto !important;
	max-width: 768px;
	min-width: fit-content;
	overflow: hidden;
}

/* タイトルバー（デフォルト非表示、.show-titlebarで表示） */
.ui-dialog-titlebar {
	display: none;
	background: #40C4C4;
	color: #fff;
	border: none;
	border-radius: 6px 6px 0 0;
	padding: 12px 16px;
	font-weight: 700;
}

.ui-dialog.show-titlebar .ui-dialog-titlebar {
	display: block;
}

/* タイトルバー表示時の閉じるボタン */
.ui-dialog-titlebar-close {
	background: transparent;
	border: none;
	color: #fff;
	opacity: 0.8;
}

.ui-dialog-titlebar-close:hover {
	opacity: 1;
}

/* コンテンツエリア */
.ui-dialog .ui-dialog-content {
	padding: 32px;
	text-align: center;
	font-size: 16px;
	line-height: 1.6;
	font-weight: 700;
}

/* ボタンエリア */
.ui-dialog .ui-dialog-buttonpane {
	border-top: none;
	padding: 0;
	text-align: center;
}

.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
	display: flex;
	justify-content: center;
	gap: 15px;
	padding: 0 32px 32px;
	float: none;
}

/* ダイアログボタン共通 */
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
	flex: 1;
	box-sizing: border-box;
	max-width: 150px;
	margin: 0;
	font-weight: 700;
}

/* キャンセルボタン */
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button:first-child {
	background: #fff;
	color: #24bbb7;
	border: 2px solid #24bbb7;
	border-radius: 4px;
	padding: 10px 30px;
	min-width: 120px;
	white-space: nowrap;
}

/* OKボタン */
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button:last-child {
	background: #40C4C4;
	color: #fff;
	border: 1px solid #40C4C4;
	border-radius: 4px;
	padding: 10px 30px;
	min-width: 120px;
	white-space: nowrap;
}

/* ホバー効果 */
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button:first-child:hover {
	background: #f5f5f5;
}

.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button:last-child:hover {
	background: #35a8a8;
}

/* jQuery UI Dialog モバイル対応 */
@media (max-width: 767px) {
	.ui-dialog.ui-widget.ui-widget-content {
		max-width: 90vw !important;
		min-width: auto;
	}
	.ui-dialog .ui-dialog-content {
		padding: 16px;
	}
	.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
		padding: 0 16px 16px;
	}
}

/* ADD 新UI: 配送日再入力フォーム */
.cart-contents .order-item.valid-err {
	border-color: #e00000;
}

.delivery-reinput {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 8px;
	background: #ffee00;
	border-bottom: 1px solid #e5e5e5;
}

.delivery-reinput-msg {
	color: #e00000;
	font-size: 16px;
}

.delivery-reinput-note {
	color: #e00000;
	font-size: 16px;
}

.reinput-field {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.reinput-field label {
	font-size: 16px;
	color: #000;
}

.reinput-input-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.reinput-input-wrap .formError {
	text-align: right;
}

.reinput-input-wrap input {
	width: 200px;
	height: 40px;
	padding: 10px 12px;
	background-color: #f2f2f2;
	background-image: url(../img/icon_cal.png);
	background-repeat: no-repeat;
	background-position: right 5px center;
	border: 1px solid #ddd;
	border-radius: 5px;
	font-size: 16px;
}

@media (max-width: 767px) {
	.reinput-input-wrap input {
		width: 100%;
	}
}

/* サイドバーコンテナ（cart index用） */
.cart-contents .checkout-sidebar {
	width: 320px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-sizing: border-box;
}

/* sidebar内の order-summary は親に幅を委ねる */
.cart-contents .checkout-sidebar .order-summary {
	width: 100%;
}

/* sidebar内の order-actions は縦並び */
.cart-contents .checkout-sidebar .order-actions {
	flex-direction: column;
	gap: 16px;
	margin-top: 0;
}

/* sidebar直下のsubmit formを縦並び全幅で表示 */
.cart-contents .checkout-sidebar > .order-actions-form {
	display: flex;
	flex-direction: column;
}

.cart-contents .checkout-sidebar > .order-actions-form .order-action-btn {
	width: 100%;
}

/* 注意書き */
.cart-contents .instructions-box {
	font-size: 14px;
	line-height: 1.6;
}

.cart-contents .instructions-box p {
	margin: 0;
}

.cart-contents .instructions-box a {
	font-weight: 700;
}

/* サービスボックス */
.cart-contents .service-box {
	display: grid;
	grid-template-columns: 40px 1fr;
	align-items: center;
	column-gap: 16px;
	row-gap: 4px;
	padding: 16px;
	background-color: #ffffff;
	border: 2px solid #f2f2f2;
	border-radius: 5px;
}

.cart-contents .service-box .service-icon {
	grid-column: 1;
	grid-row: 1;
	width: 40px;
	height: 40px;
}

.cart-contents .service-box .service-title {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	font-size: 16px;
	font-weight: 700;
}

.cart-contents .service-box .service-desc {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
	font-size: 14px;
}

@media (max-width: 767px) {
	.cart-contents .checkout-sidebar {
		display: contents;
	}

	.cart-contents .checkout-sidebar .order-summary {
		order: 2;
		width: 100%;
	}

	.cart-contents .checkout-sidebar > .order-actions-form {
		order: 3;
		width: 100%;
	}

	.cart-contents .checkout-sidebar .instructions-box {
		order: 4;
	}

	.cart-contents .checkout-sidebar .order-actions {
		order: 5;
		width: 100%;
		gap: 16px;
	}

	.cart-contents .checkout-sidebar .service-box {
		order: 6;
		width: 100%;
	}

	.cart-contents>h2 {
		font-size: 18px;
	}
}

/* Cross-sell Categories */
.cross-sell {
	margin-top: 30px;
}

.cross-sell + .order-actions {
	width: 320px;
	margin-left: auto;
	margin-right: auto;
}
.cross-sell .cross-sell-title {
	all: initial;
	display: block;
	font-size: 22px;
	font-weight: 700;
	margin-bottom: 16px;
}
.cross-sell-list {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.cross-sell-item {
	width: calc(25% - 12px);
	text-align: center;
	text-decoration: none;
	color: #333;
	padding: 10px;
	border: 10px solid transparent;
	box-sizing: border-box;
}
.cross-sell-item:hover {
	border-color: #ffcf99;
	text-decoration: none;
}
.cross-sell-item img {
	width: 100%;
	height: auto;
	display: block;
}
.cross-sell-label {
	display: block;
	margin-top: 8px;
	font-size: 1.08rem;
	font-weight: 700;
}
@media (max-width: 767px) {
	.cross-sell-list {
		justify-content: center;
	}
	.cross-sell-item {
		width: calc(50% - 8px);
		padding: 5px;
		border-width: 5px;
	}
	.cross-sell-label {
		font-size: 1rem;
	}
	.cross-sell .cross-sell-title {
		font-size: 18px;
	}
}

/* 最近チェックした商品 */
.recent {
	margin-top: 30px;
	margin-bottom: 50px;
}

.recent__size,
.recent__color,
.recent__copy,
.recent__name,
.recent__number,
.recent__plain-price,
.recent__plain-price-label,
.recent__plain-price-value,
.recent__print-price,
.recent__print-price-label,
.recent__print-price-value,
.recent__print-price-suffix,
.recent__icon-normal,
.recent__link {
	all: initial;
	box-sizing: border-box;
	font-family: Noto Sans JP, Avenir, Open Sans, Helvetica Neue, Helvetica, Arial, Verdana, Roboto, "Hiragino Kaku Gothic Pro", Meiryo UI, Meiryo, "MS PGothic", sans-serif;
}

.recent > h2.recent__title {
	all: initial;
	display: block;
	box-sizing: border-box;
	font-family: Noto Sans JP, Avenir, Open Sans, Helvetica Neue, Helvetica, Arial, Verdana, Roboto, "Hiragino Kaku Gothic Pro", Meiryo UI, Meiryo, "MS PGothic", sans-serif;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
	font-size: 22px;
	font-weight: 700;
	color: #000;
	line-height: 1.4;
}

.recent__list {
	all: initial;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.recent__item {
	all: initial;
	display: block;
	position: relative;
	width: calc(25% - 12px);
	box-sizing: border-box;
	font-family: Noto Sans JP, Avenir, Open Sans, Helvetica Neue, Helvetica, Arial, Verdana, Roboto, "Hiragino Kaku Gothic Pro", Meiryo UI, Meiryo, "MS PGothic", sans-serif;
}

.recent__card {
	all: initial;
	display: flex;
	flex-direction: column;
	position: relative;
	width: 100%;
	height: 100%;
	padding: 10px;
	border: 10px solid transparent;
	background-color: #fff;
	box-sizing: border-box;
}

.recent__item:hover .recent__card,
.recent__item:focus-within .recent__card {
	border-color: #ffcf99;
}

.recent__image {
	all: initial;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 180px;
	margin: 0;
	box-sizing: border-box;
}

.recent__image-img {
	all: initial;
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
}

.recent__icon-normal {
	display: block;
	position: absolute;
	top: 3.5rem;
	right: 1rem;
	width: 50px;
	height: 50px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-image: url(../../common/img/icon_normal.png);
	background-repeat: no-repeat;
	background-size: 100%;
	color: transparent;
	line-height: 0;
	z-index: 2;
}

.recent__size,
.recent__color {
	display: block;
	width: 100%;
	margin: 0;
	padding: .2rem;
	border: 0;
	border-radius: 4px;
	background-color: #24bbb7;
	color: #fff;
	font-size: 1rem;
	font-weight: 500;
	line-height: 140%;
	text-align: center;
}

.recent__size {
	margin-top: 1rem;
}

.recent__color {
	margin-top: .2rem;
	margin-bottom: .5rem;
}

.recent__copy {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	color: #666;
	font-size: .95rem;
	font-weight: 400;
	line-height: 1.45;
}

.recent__name {
	display: block;
	margin: .45rem 0 0;
	padding: 0;
	border: 0;
	color: #000;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.4;
}

.recent__number {
	display: block;
	margin: .2rem 0 0;
	padding: 0;
	border: 0;
	color: #898989;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
}

.recent__plain-price {
	display: block;
	margin: .35rem 0 0;
	padding: 0;
	border: 0;
	font-size: 0;
	line-height: 1.35;
}

.recent__print-price {
	display: block;
	margin: 0.1rem 0 0;
	padding: 0;
	border: 0;
	font-size: 0.9rem;
	line-height: 1.5;
}

.recent__plain-price-label,
.recent__print-price-label,
.recent__print-price-suffix {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	font-weight: 500;
}

.recent__plain-price-label {
	color: #e64552;
	font-size: 1rem;
	line-height: 1.3;
}

.recent__print-price-label,
.recent__print-price-suffix {
	color: #333;
	font-size: 0.9rem;
	line-height: 1.5;
}

.recent__plain-price-value,
.recent__print-price-value {
	display: inline-block;
	margin: 0 0 0 .3em;
	padding: 0;
	border: 0;
	font-weight: 700;
	line-height: 1;
}

.recent__plain-price-value {
	color: #e64552;
	font-size: 16px;
	line-height: 1.3;
}

.recent__print-price-value {
	color: #24bbb7;
	font-size: 1.3rem;
	line-height: 1.5;
}

.recent__link {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	color: transparent;
	font-size: 0;
	line-height: 0;
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	cursor: pointer;
	z-index: 3;
}

@media (max-width: 767px) {
	.recent > h2.recent__title {
		font-size: 18px;
	}

	.recent__item {
		width: calc(50% - 8px);
	}

	.recent__card {
		padding: 5px;
		border-width: 5px;
	}

	.recent__image {
		height: auto;
	}

	.recent__image-img {
		width: 100%;
		height: auto;
	}

	.recent__icon-normal {
		top: 3rem;
		width: 35px;
		height: 35px;
	}

	.recent__size,
	.recent__color {
		font-size: .8rem;
	}

	.recent__copy {
		font-size: .82rem;
	}

	.recent__number {
		font-size: 10px;
	}

	.recent__plain-price-label {
		font-size: 12px;
	}

	.recent__plain-price-value {
		font-size: 16px;
	}
}

.empty-cart-message {
	box-sizing: border-box;
	width: 100%;
	padding: 20px;
	border: 1px solid rgba(0, 0, 0, 0.125);
	border-radius: 3.5px;
	background: #fff;
	box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
	margin: 7px 0 14px;
}

.empty-cart-message p {
	margin: 0;
	font-size: 14px;
	color: #666;
}

/* サイズ数量表：2段組（10サイズ以上）の段間スペーシング */
.cart-detail-dialog .dialog-body .orderbox > div .body table.size-row-1 {
	margin-bottom: 4px;
}

/* モバイル（縦積み）時は2段を1本の連続表のように見せる */
@media screen and (max-width: 600px) {
	.cart-detail-dialog .dialog-body .orderbox > div .body table.size-row-1 {
		margin-bottom: 0;
		border-bottom: none;
	}
	.cart-detail-dialog .dialog-body .orderbox > div .body table.size-row-2 {
		border-top: none;
	}
}

/* ===== Floating checkout CTA (cart index) ===== */
.floating-checkout-cta {
	display: flex;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 50;
	padding: 16px;
	background: #fff;
	border-top: 2px solid #dddddd;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	gap: 40px;
	transition: transform 180ms ease, opacity 180ms ease, visibility 180ms;
}
.floating-checkout-cta.is-hidden {
	transform: translateY(100%);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.floating-checkout-cta__total {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.floating-checkout-cta__total-label {
	font-size: 18px;
	color: #000;
}
.floating-checkout-cta__total-value {
	font-size: 18px;
	font-weight: 700;
	color: #000;
}
.floating-checkout-cta__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.floating-checkout-cta__actions .order-actions-form {
	margin: 0;
}
.floating-checkout-cta__actions .order-action-btn {
	width: 345px;
	height: 60px;
	font-size: 20px;
	font-weight: 700;
}
.floating-checkout-cta__note {
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
	color: #000000;
}
@media (max-width: 767px) {
	.floating-checkout-cta {
		flex-direction: column;
		justify-content: flex-end;
		gap: 8px;
		padding: 12px;
	}
	.floating-checkout-cta__total {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		gap: 16px;
	}
	.floating-checkout-cta__total-label,
	.floating-checkout-cta__total-value {
		font-size: 14px;
		font-weight: normal;
	}
	.floating-checkout-cta__total-value {
		font-weight: 700;
	}
	.floating-checkout-cta__actions {
		width: 100%;
		gap: 4px;
	}
	.floating-checkout-cta__actions .order-actions-form {
		width: 100%;
	}
	.floating-checkout-cta__actions .order-action-btn {
		width: 100%;
		height: auto;
		font-size: inherit;
	}
	.floating-checkout-cta__note {
		margin-top: -4px;
	}
	.cmn_pagetop {
		right: 20px;
	}
}

/* 同じデザイン割 確認ダイアログ */
.samedesign-confirm {
	display: flex;
	flex-direction: column;
	gap: 24px;
	width: 700px;
	max-width: 100%;
	box-sizing: border-box;
}
.samedesign-confirm__title {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	margin: 0;
}
.samedesign-confirm__desc {
	font-size: 14px;
	font-weight: 400;
	color: #666;
	line-height: 1.6;
	text-align: center;
	margin: 0;
}
.samedesign-confirm__info {
	border: solid 1px #DDDDDD;
	border-radius: 5px;
	padding: 16px;
	box-sizing: border-box;
}
.samedesign-confirm__info-heading {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 16px;
	font-weight: 600;
	margin: 0 0 12px;
	padding-bottom: 12px;
	border-bottom: solid 1px #DDDDDD;
}
.samedesign-confirm__info-heading .material-symbols-outlined {
	font-size: 22px;
	color: #24bbb7;
}
.samedesign-confirm__info-body {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	text-align: left;
	margin: 0;
}
.samedesign-confirm__link {
	font-size: 16px;
	text-align: center;
	margin: 0;
}
.samedesign-confirm__link a {
	color: #24bbb7;
}

@media (max-width: 767px) {
	.samedesign-confirm {
		gap: 16px;
	}
	.samedesign-confirm__info {
		padding: 12px;
	}
	.samedesign-confirm__title {
		font-size: 16px;
		text-align: center;
	}
	.samedesign-confirm__desc {
		text-align: left;
	}
	.samedesign-confirm__info-body {
		font-size: 14px;
	}
	.samedesign-confirm__link {
		font-size: 14px;
		text-align: center;
	}
	.ui-dialog .ui-dialog-content:has(> .samedesign-confirm) {
		padding: 24px;
	}
}
