/* =========================================================
   購入手続き（配送・支払方法）
   ========================================================= */
.wcab-select { max-width: 100%; }
.wcab-manage { margin-left: .8em; font-size: .9em; white-space: nowrap; }
.wcab-preview { margin-top: .4em; font-size: .9em; color: #666; }
.wcab-save-row .wcab-label { margin-top: .5em; }
.wcab-save-row .wcab-label input { width: 100%; max-width: 20em; }
.wcab-note { display: block; margin-top: .4em; font-size: .85em; color: #666; }

/* =========================================================
   配送先の管理（マイページ）
   色はテーマのボタン色・アクセント色に合わせる（なければプリスタの茶色）
   ========================================================= */
.wcab-book {
	--wcab-main: var(--wcc-btn-bg, #4f3620);
	--wcab-main-text: var(--wcc-btn-text, #ffffff);
	--wcab-accent: var(--wcc-accent, #89663f);
	--wcab-cream: #f7f3ee;
	--wcab-beige: #c9bfb1;
	--wcab-line: #e5e0d8;
	--wcab-text: #333333;
	--wcab-muted: #777777;
	--wcab-danger: #b3261e;
	color: var(--wcab-text);
	line-height: 1.7;
	letter-spacing: .03em;
}
.wcab-book *, .wcab-book *::before, .wcab-book *::after { box-sizing: border-box; }
.wcab-book p { margin: 0; }
.wcab-book .wcab-ico { flex: none; vertical-align: middle; }

/* ボタン */
.wcab-book .wcab-btn,
.wcab-book .wcab-btn-sub,
.wcab-book .wcab-btn-del {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	font: inherit; font-weight: bold; line-height: 1.4; letter-spacing: .05em;
	text-decoration: none; border-radius: 6px; cursor: pointer;
	transition: opacity .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
	-webkit-appearance: none; appearance: none;
}
.wcab-book .wcab-btn {
	min-width: 180px; padding: 12px 24px;
	color: var(--wcab-main-text); background: var(--wcab-main); border: 1px solid var(--wcab-main);
}
.wcab-book .wcab-btn:hover, .wcab-book .wcab-btn:focus { opacity: .85; color: var(--wcab-main-text); text-decoration: none; }
.wcab-book .wcab-btn-sub {
	padding: 8px 16px; font-size: .9em;
	color: var(--wcab-main); background: #fff; border: 1px solid var(--wcab-beige);
}
.wcab-book .wcab-btn-sub:hover, .wcab-book .wcab-btn-sub:focus { border-color: var(--wcab-main); background: var(--wcab-cream); color: var(--wcab-main); text-decoration: none; }
.wcab-book .wcab-btn-del {
	padding: 8px 12px; font-size: .9em;
	color: var(--wcab-danger); background: transparent; border: 1px solid transparent;
}
.wcab-book .wcab-btn-del:hover, .wcab-book .wcab-btn-del:focus { border-color: #f0c9c6; background: #fff4f4; }

/* メッセージ */
.wcab-book .wcab-msg {
	display: flex; align-items: center; gap: .6em;
	margin: 0 0 1.5em; padding: .9em 1.1em; border-radius: 6px;
	background: #eef7ee; border: 1px solid #cfe6cf; color: #1e5c28; font-weight: bold;
}
.wcab-book .wcab-msg.err { background: #fff4f4; border-color: #f0c9c6; color: var(--wcab-danger); }

/* 説明 */
.wcab-book .wcab-lead {
	display: flex; align-items: flex-start; gap: .8em;
	margin: 0 0 1.8em; padding: 1em 1.2em; border-radius: 8px;
	background: var(--wcab-cream); color: #5a4a3a; font-size: .95em;
}
.wcab-book .wcab-lead .wcab-ico { width: 26px; height: 26px; margin-top: 1px; color: var(--wcab-accent); }

/* 一覧の見出し */
.wcab-book .wcab-head {
	display: flex; align-items: center; justify-content: space-between; gap: 1em; flex-wrap: wrap;
	margin: 0 0 1em; padding-bottom: .8em; border-bottom: 2px solid var(--wcab-main);
}
.wcab-book .wcab-count { font-size: 1.1em; font-weight: bold; }
.wcab-book .wcab-count span { margin-left: .8em; font-size: .8em; font-weight: normal; color: var(--wcab-muted); }

/* 配送先カード */
.wcab-book .wcab-list {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 16px;
	list-style: none; margin: 0 0 2em; padding: 0;
}
.wcab-book .wcab-item {
	display: flex; flex-direction: column;
	margin: 0; padding: 0; border: 1px solid var(--wcab-line); border-radius: 8px; background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .04); overflow: hidden;
	transition: box-shadow .2s ease, border-color .2s ease;
}
.wcab-book .wcab-item:hover { border-color: var(--wcab-beige); box-shadow: 0 4px 12px rgba(0, 0, 0, .07); }
.wcab-book .wcab-item-head {
	display: flex; align-items: center; gap: .5em;
	padding: .75em 1.1em; background: var(--wcab-cream); border-bottom: 1px solid var(--wcab-line); color: var(--wcab-accent);
}
.wcab-book .wcab-label { font-weight: bold; font-size: 1.05em; color: var(--wcab-text); }
.wcab-book .wcab-label.none { font-weight: normal; color: var(--wcab-muted); }
.wcab-book .wcab-item-body { flex: 1; padding: 1em 1.1em .6em; font-size: .95em; }
.wcab-book .wcab-item-body p { margin: 0 0 .55em; }
.wcab-book .wcab-name { display: flex; align-items: flex-start; gap: .5em; font-weight: bold; }
.wcab-book .wcab-name small { display: block; font-weight: normal; font-size: .8em; color: var(--wcab-muted); }
.wcab-book .wcab-name .wcab-ico, .wcab-book .wcab-tel .wcab-ico { margin-top: 3px; color: var(--wcab-muted); }
.wcab-book .wcab-addr { padding-left: calc(18px + .5em); }
.wcab-book .wcab-zip { display: block; color: var(--wcab-muted); font-size: .9em; }
.wcab-book .wcab-tel { display: flex; align-items: flex-start; gap: .5em; }
.wcab-book .wcab-fax { margin-left: 1em; color: var(--wcab-muted); }
.wcab-book .wcab-actions {
	display: flex; align-items: center; justify-content: flex-end; gap: .4em;
	padding: .6em .8em; border-top: 1px solid var(--wcab-line);
}
.wcab-book .wcab-actions form { margin: 0; }

/* 未登録・未ログイン */
.wcab-book .wcab-empty {
	margin: 0 0 2em; padding: 2.5em 1.5em; text-align: center;
	border: 2px dashed var(--wcab-beige); border-radius: 10px; background: #fff;
}
.wcab-book .wcab-empty > .wcab-ico { width: 44px; height: 44px; margin: 0 auto .6em; display: block; color: var(--wcab-beige); }
.wcab-book .wcab-empty p { color: var(--wcab-muted); font-size: .95em; }
.wcab-book .wcab-empty .wcab-empty-title { margin-bottom: .3em; color: var(--wcab-text); font-size: 1.1em; font-weight: bold; }
.wcab-book .wcab-empty .wcab-btn { margin-top: 1.4em; }

/* 入力フォーム */
.wcab-book .wcab-form { margin: 0 0 2em; }
.wcab-book .wcab-form-title {
	display: flex; align-items: center; gap: .5em;
	margin: 0 0 1.2em; padding: .5em .8em; font-size: 1.15em;
	border-left: 5px solid var(--wcab-main); background: var(--wcab-cream);
}
.wcab-book .wcab-form-title .wcab-ico { color: var(--wcab-accent); }
.wcab-book .wcab-form fieldset { margin: 0 0 1.4em; padding: 0; border: 0; }
.wcab-book .wcab-form legend {
	width: 100%; margin: 0 0 .4em; padding: 0 0 .4em;
	font-weight: bold; color: var(--wcab-accent); border-bottom: 1px solid var(--wcab-line);
}
.wcab-book .wcab-field {
	display: grid; grid-template-columns: 13em 1fr; gap: .4em 1.2em; align-items: start;
	padding: .8em 0; border-bottom: 1px dashed var(--wcab-line);
}
.wcab-book .wcab-field:last-child { border-bottom: 0; }
.wcab-book .wcab-field-label {
	display: flex; align-items: center; justify-content: space-between; gap: .5em;
	padding-top: .55em; font-weight: bold; font-size: .95em;
}
.wcab-book .wcab-badge {
	flex: none; padding: .1em .55em; border-radius: 3px; font-size: .75em; font-weight: bold; line-height: 1.6;
	color: #fff; background: #9a9a9a;
}
.wcab-book .wcab-badge.req { background: var(--wcab-danger); }
.wcab-book .wcab-form input[type="text"],
.wcab-book .wcab-form select {
	width: 100%; max-width: 100%; height: 44px; padding: 0 12px;
	font: inherit; font-size: 16px; color: var(--wcab-text);
	background: #fff; border: 1px solid #ccc; border-radius: 6px;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.wcab-book .wcab-form input[type="text"]::placeholder { color: #aaa; }
.wcab-book .wcab-form input[type="text"]:focus,
.wcab-book .wcab-form select:focus {
	outline: none; border-color: var(--wcab-accent); box-shadow: 0 0 0 3px rgba(137, 102, 63, .18);
}
.wcab-book .wcab-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; max-width: 30em; }
.wcab-book .wcab-short { max-width: 16em; }
.wcab-book .wcab-hint { margin-top: .4em !important; font-size: .85em; color: var(--wcab-muted); }
.wcab-book .wcab-buttons {
	display: flex; align-items: center; justify-content: center; gap: 1em; flex-wrap: wrap;
	margin-top: 1.8em; padding-top: 1.4em; border-top: 1px solid var(--wcab-line);
}
.wcab-book .wcab-buttons .wcab-btn { min-width: 220px; padding: 14px 28px; }
.wcab-book .wcab-buttons .wcab-btn-sub { padding: 13px 24px; font-size: 1em; }

/* マイページへ戻る */
.wcab-book .wcab-back { margin-top: 1em; }
.wcab-book .wcab-back a { display: inline-flex; align-items: center; gap: .2em; color: var(--wcab-muted); text-decoration: none; font-size: .95em; }
.wcab-book .wcab-back a:hover { color: var(--wcab-main); }

@media (max-width: 600px) {
	.wcab-book .wcab-head { flex-direction: column; align-items: stretch; }
	.wcab-book .wcab-head .wcab-btn { width: 100%; }
	.wcab-book .wcab-list { grid-template-columns: 1fr; }
	.wcab-book .wcab-field { grid-template-columns: 1fr; gap: .4em; }
	.wcab-book .wcab-field-label { justify-content: flex-start; padding-top: 0; }
	.wcab-book .wcab-buttons { flex-direction: column-reverse; align-items: stretch; }
	.wcab-book .wcab-buttons .wcab-btn, .wcab-book .wcab-buttons .wcab-btn-sub { width: 100%; }
}
