/* ============================================================
   定期契約情報 — block_periodic.css
   periodic_mock.css から本番用スタイルを抽出
   ============================================================ */

/* --------------------------------------------------
   一覧画面: .block-periodic-list
   -------------------------------------------------- */
.block-periodic-list {
	margin: 0 auto;
	padding: 20px 0;
}

.block-periodic-list--customer-name {
	margin: 0 0 20px;
	font-size: 16px;
}

.block-periodic-list--groups {
	margin: 0 0 30px;
}

.block-periodic-list--notice {
	margin: 15px 0;
}

/* --------------------------------------------------
   一覧: 種別グループ .block-periodic-group
   -------------------------------------------------- */
.block-periodic-group {
	--periodic-contract-card-width: 300px;
	--periodic-schedule-card-width: 270px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 3px;
	margin: 0 0 20px;
}

.block-periodic-group--header {
	background: #444;
	color: #fff;
	padding: 10px 15px;
	border-radius: 2px 2px 0 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
}

.block-periodic-group--title {
	font-size: 15px;
	font-weight: bold;
	margin: 0;
}

.block-periodic-group--status {
	display: inline-block;
	padding: 2px 12px;
	border-radius: 22px;
	font-size: 12px;
	font-weight: normal;
	text-align: center;
	color: #fff;
}

.block-periodic-group--discount {
	display: inline-block;
	font-size: 15px;
	font-weight: bold;
	line-height: 1.4;
	color: #fff;
}

/* ステータス: 0=契約中, 1=解約済 (C#出力に合わせた数値クラス) */
.block-periodic-group--status__0 {
	background: #50c9b2;
}

.block-periodic-group--status__1 {
	background: #858e95;
}

.block-periodic-group--body {
	padding: 16px;
}

.block-periodic-group--scroll {
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
}

.block-periodic-contract-row {
	display: grid;
	grid-template-columns: var(--periodic-contract-card-width) auto;
	width: max-content;
	gap: 18px;
	align-items: stretch;
	margin: 0 0 16px;
}

.block-periodic-contract-row:last-child {
	margin-bottom: 0;
}

.block-periodic-contract-card {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr);
	width: var(--periodic-contract-card-width);
	gap: 10px;
	min-height: 148px;
	padding: 14px;
	border: 1px solid #222;
	background: #fff;
	box-sizing: border-box;
}

.block-periodic-contract-card--media {
	display: flex;
	align-items: flex-start;
	justify-content: center;
}

.block-periodic-contract-card--image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border: 1px solid #e0e0e0;
	background: #f6f3ed;
	color: #8a7653;
	font-size: 18px;
	font-weight: bold;
	overflow: hidden;
	box-sizing: border-box;
}

.block-periodic-contract-card--media img.block-periodic-contract-card--image {
	display: block;
	object-fit: cover;
}

.block-periodic-contract-card--body {
	min-width: 0;
}

.block-periodic-contract-card--heading {
	position: relative;
	min-height: 48px;
	padding-right: 42px;
}

.block-periodic-contract-card--brand {
	margin: 0 0 3px;
	font-size: 12px;
	font-weight: bold;
	line-height: 1.4;
}

.block-periodic-contract-card--product {
	margin: 0;
	font-size: 14px;
	font-weight: bold;
	line-height: 1.5;
	word-break: break-word;
}

.block-periodic-contract-card--status {
	display: inline-block;
	margin-top: 4px;
	padding: 2px 7px;
	border-radius: 2px;
	font-size: 12px;
	line-height: 1.4;
	color: #fff;
	background: #858e95;
}

.block-periodic-contract-card--spec {
	margin: 8px 0 0;
	font-size: 14px;
	line-height: 1.6;
}

.block-periodic-contract-card--spec div {
	display: flex;
	gap: 4px;
}

.block-periodic-contract-card--spec dt {
	min-width: 58px;
	font-weight: normal;
}

.block-periodic-contract-card--spec dd {
	margin: 0;
}

.block-periodic-contract-card--remarks {
	margin: 6px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: #666;
	white-space: pre-wrap;
	overflow-wrap: break-word;
	word-break: break-word;
}

.block-periodic-contract-card--actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 8px;
}

.block-periodic-contract-card--change {
	min-width: auto;
	white-space: nowrap;
}

.block-periodic-contract-card--cancel {
	font-size: 11px;
	line-height: 1.2;
	color: #0066b3;
	text-decoration: underline;
}

.block-periodic-schedule-list {
	display: grid;
	grid-template-columns: repeat(3, var(--periodic-schedule-card-width));
	width: max-content;
	gap: 18px;
}

.block-periodic-schedule-card {
	width: var(--periodic-schedule-card-width);
	min-height: 144px;
	border: 1px solid #777;
	background: #fff;
	box-sizing: border-box;
}

.block-periodic-schedule-card--header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 50px;
	padding: 11px 12px;
	border-bottom: 1px solid #222;
}

.block-periodic-schedule-card--ym {
	font-size: 16px;
	font-weight: bold;
	line-height: 1.3;
}

.block-periodic-schedule-card--badge {
	display: inline-block;
	padding: 4px 9px;
	border-radius: 2px;
	font-size: 12px;
	line-height: 1.2;
	color: #fff;
	white-space: nowrap;
}

.block-periodic-schedule-card--badge__preparing,
.block-periodic-schedule-card--badge__current {
	background: #0d7190;
}

.block-periodic-schedule-card--badge__shipped {
	background: #d97a1e;
}

.block-periodic-schedule-card--badge__future {
	background: #777;
}

.block-periodic-schedule-card--badge__no-result {
	background: #E4007F;
}

.block-periodic-schedule-card--badge__skip {
	background: #777;
}

.block-periodic-schedule-card--body {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	padding: 12px;
}

.block-periodic-schedule-card--info {
	min-width: 0;
}

.block-periodic-schedule-card--brand {
	margin: 0 0 2px;
	font-size: 11px;
	line-height: 1.4;
	color: #666;
}

.block-periodic-schedule-card--brand:empty {
	display: none;
}

.block-periodic-schedule-card--product {
	margin: 0 0 5px;
	font-size: 14px;
	line-height: 1.5;
	word-break: break-word;
}

.block-periodic-schedule-card--qty,
.block-periodic-schedule-card--note {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
}

.block-periodic-schedule-card--note {
	color: #666;
}

.block-periodic-schedule-card--note-text {
	color: inherit;
	font-weight: normal;
}

.block-periodic-schedule-card--note:empty {
	display: none;
}

.block-periodic-schedule-card--order-link {
	color: #0066b3;
	text-decoration: underline;
	font-weight: bold;
}

.block-periodic-schedule-card--media {
	display: flex;
	align-items: flex-start;
	flex-shrink: 0;
}

.block-periodic-schedule-card--image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border: 1px solid #e0e0e0;
	background: #f6f3ed;
	color: #8a7653;
	font-size: 18px;
	font-weight: bold;
	overflow: hidden;
	box-sizing: border-box;
}

.block-periodic-schedule-card--media img.block-periodic-schedule-card--image {
	display: block;
	object-fit: cover;
}

.block-periodic-group--detail-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	font-size: 14px;
}

.block-periodic-group--detail-table thead th {
	background: #f5f5f5;
	padding: 8px 10px;
	border-bottom: 1px solid #ddd;
	font-weight: normal;
	font-size: 12px;
	color: #666;
	text-align: left;
}

.block-periodic-group--detail-table tbody td {
	padding: 10px;
	border-bottom: 1px solid #f0f0f0;
	vertical-align: middle;
}

.block-periodic-group--col-brand { width: 16%; }
.block-periodic-group--col-product { width: 32%; }
.block-periodic-group--col-cycle { width: 20%; }
.block-periodic-group--col-qty { width: 10%; text-align: center; }
.block-periodic-group--col-status { width: 16%; text-align: center; }

.block-periodic-group--qty { text-align: center; }
.block-periodic-group--skip { text-align: center; }

.block-periodic-group--footer {
	padding: 10px 15px;
	text-align: right;
	border-top: 1px solid #f0f0f0;
}

.block-periodic-group--detail-link {
	min-width: 120px;
}

/* --------------------------------------------------
   一覧: ご登録情報 .block-periodic-customer-info
   -------------------------------------------------- */
.block-periodic-customer-info {
	margin: 0 0 20px;
	padding: 0 0 16px;
	border: 1px solid #ddd;
	border-radius: 3px;
	background: #fff;
	overflow: hidden;
}

.block-periodic-customer-info--title {
	margin: 0 0 12px;
	padding: 10px 15px;
	background: #444;
	color: #fff;
	font-size: 15px;
	font-weight: bold;
}

.block-periodic-customer-info--table {
	width: 100%;
	max-width: 600px;
	margin: 0 16px;
	min-width: 0;
	border-collapse: collapse;
	font-size: 14px;
}

.block-periodic-customer-info--table th {
	width: 132px;
	background: #f5f5f5;
	padding: 6px 8px;
	border: 1px solid #777;
	font-weight: normal;
	white-space: nowrap;
}

.block-periodic-customer-info--table td {
	padding: 6px 8px;
	border: 1px solid #777;
	vertical-align: top;
}

.block-periodic-customer-info--address {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
}

.block-periodic-customer-info--address-text {
	min-width: 0;
	word-break: break-word;
}

.block-periodic-customer-info--edit {
	align-self: flex-end;
}

.block-periodic-customer-info--edit .block-action-btn {
	white-space: nowrap;
}

/* --------------------------------------------------
   一覧: データなし
   -------------------------------------------------- */
.block-periodic-nodata {
	padding: 40px 0;
	text-align: center;
}

.block-periodic-nodata--message {
	font-size: 14px;
	color: #666;
}

/* ==================================================
   詳細画面: .block-periodic-detail
   ================================================== */
.block-periodic-detail {
	margin: 0 auto;
	padding: 20px 0;
}

.block-periodic-detail--header {
	margin: 0 0 20px;
	padding: 0 0 10px;
	border-bottom: 2px solid #444;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 15px;
}

.block-periodic-detail--title {
	font-size: 20px;
	font-weight: bold;
	margin: 0;
}

.block-periodic-detail--start-ym {
	font-size: 13px;
	color: #666;
}

.block-periodic-detail--notice {
	margin: 15px 0;
}

.block-periodic-detail--notice-info {
	margin: 20px 0;
	padding: 12px 15px;
	background: #ffeaea;
	border-radius: 3px;
	font-size: 13px;
	color: #a94442;
}

/* --------------------------------------------------
   詳細: タイムライン .block-periodic-timeline
   -------------------------------------------------- */
.block-periodic-timeline {
	margin: 0 0 30px;
}

.block-periodic-timeline--title {
	font-size: 16px;
	font-weight: bold;
	padding: 10px 0;
	margin: 0 0 15px;
	border-bottom: 1px solid #ddd;
}

.block-periodic-timeline--items {
	display: flex;
	gap: 15px;
	overflow-x: auto;
	padding: 0 0 10px;
	-webkit-overflow-scrolling: touch;
}

/* --------------------------------------------------
   詳細: タイムラインアイテム .block-periodic-timeline-item
   -------------------------------------------------- */
.block-periodic-timeline-item {
	min-width: 320px;
	max-width: 380px;
	flex-shrink: 0;
	border: 1px solid #ddd;
	border-radius: 3px;
	background: #fff;
}

.block-periodic-timeline-item--header {
	padding: 10px 15px;
	border-radius: 2px 2px 0 0;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

/* 状態別ヘッダー色 */
.block-periodic-timeline-item__status-completed .block-periodic-timeline-item--header {
	background: #f2f2f2;
	color: #858e95;
}

.block-periodic-timeline-item__status-changeable .block-periodic-timeline-item--header {
	background: #ffeaea;
	color: #444;
}

.block-periodic-timeline-item__status-future .block-periodic-timeline-item--header {
	background: #e7f5f4;
	color: #444;
}

.block-periodic-timeline-item--ym {
	font-size: 15px;
	font-weight: bold;
}

.block-periodic-timeline-item--status {
	font-size: 12px;
}

.block-periodic-timeline-item--badge {
	font-size: 11px;
	padding: 2px 8px;
	border-radius: 3px;
}

.block-periodic-timeline-item--body {
	padding: 0;
}

.block-periodic-timeline-item--product-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	font-size: 12px;
}

.block-periodic-timeline-item--product-table thead th {
	background: #f5f5f5;
	padding: 5px 8px;
	border-bottom: 1px solid #ddd;
	font-weight: normal;
	font-size: 11px;
	color: #666;
	text-align: left;
	white-space: nowrap;
}

.block-periodic-timeline-item--product-table tbody td {
	padding: 8px;
	border-bottom: 1px solid #f0f0f0;
	vertical-align: middle;
}

.block-periodic-timeline-item--col-image { width: 50px; }
.block-periodic-timeline-item--col-name { min-width: 100px; }
.block-periodic-timeline-item--col-type { width: 50px; text-align: center; }
.block-periodic-timeline-item--col-ratio { width: 55px; text-align: right; }
.block-periodic-timeline-item--col-price { width: 80px; text-align: right; }
.block-periodic-timeline-item--col-qty { width: 40px; text-align: center; }
.block-periodic-timeline-item--col-amt { width: 80px; text-align: right; }

.block-periodic-timeline-item--product-image {
	width: 50px;
	height: 50px;
	object-fit: cover;
	border-radius: 2px;
}

.block-periodic-timeline-item--product-name {
	display: block;
	font-weight: bold;
	font-size: 12px;
}

.block-periodic-timeline-item--goods-name {
	display: block;
	font-size: 11px;
	color: #666;
	margin-top: 2px;
}

.block-periodic-timeline-item--type { text-align: center; }
.block-periodic-timeline-item--ratio { text-align: right; }
.block-periodic-timeline-item--price { text-align: right; font-weight: bold; }
.block-periodic-timeline-item--qty { text-align: center; }
.block-periodic-timeline-item--amt { text-align: right; font-weight: bold; }

.block-periodic-timeline-item--total {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 20px;
	padding: 10px 15px;
	background: #f5f5f5;
	font-size: 13px;
}

.block-periodic-timeline-item--total-price {
	font-weight: bold;
	font-size: 15px;
	color: #ff6063;
}

.block-periodic-timeline-item--course {
	font-size: 12px;
	color: #666;
}

/* スキップ行 */
.block-periodic-timeline-item--product-row__no-delivery td {
	color: #c8c8c8;
	text-decoration: line-through;
}

.block-periodic-timeline-item--product-row__no-delivery .label {
	text-decoration: none;
}

/* --------------------------------------------------
   詳細: ご登録情報 .block-periodic-detail-customer-info
   -------------------------------------------------- */
.block-periodic-detail-customer-info {
	margin: 0 0 20px;
}

.block-periodic-detail-customer-info--title {
	font-size: 15px;
	font-weight: bold;
	padding: 10px 0;
	border-bottom: 1px solid #ddd;
	margin: 0 0 10px;
}

.block-periodic-detail-customer-info--table {
	width: 100%;
	font-size: 13px;
}

.block-periodic-detail-customer-info--table th {
	width: 180px;
	background: #f5f5f5;
	padding: 8px 10px;
	border: 1px solid #ddd;
	font-weight: normal;
}

.block-periodic-detail-customer-info--table td {
	padding: 8px 10px;
	border: 1px solid #ddd;
}

.block-periodic-detail-customer-info--actions {
	margin: 15px 0;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.block-periodic-detail-customer-info--withdrawal-link {
	margin-left: auto;
}

.block-periodic-detail-customer-info--back {
	margin: 15px 0;
}

/* データなし */
.block-periodic-detail-nodata {
	padding: 40px 0;
	text-align: center;
}

.block-periodic-detail-nodata--message {
	font-size: 14px;
	color: #666;
	margin-bottom: 20px;
}

/* --------------------------------------------------
   変更画面: .block-periodic-detail-change
   -------------------------------------------------- */
.block-periodic-detail-change {
	margin: 0 auto;
	padding: 20px 0;
}

.block-periodic-detail-change--header {
	margin: 0 0 18px;
	padding-bottom: 0;
	border-bottom: none;
}

.block-periodic-detail-change--header .block-container-heading,
.block-periodic-detail-change--page-title {
	margin: 0 0 1.42rem;
}

.block-periodic-detail-change--description {
	margin-top: 8px;
	font-size: 13px;
	color: #555;
}

.block-periodic-detail-change--description p {
	margin: 0;
}

.block-periodic-detail-change--error {
	margin: 0 0 18px;
}

.block-periodic-detail-change--product-info {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	margin: 0 0 20px;
	padding: 16px;
	border: 1px solid #ddd;
	background: #fff;
}

.block-periodic-detail-change--product-image {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px;
	border: 1px solid #eee;
	background: #faf8f3;
}

.block-periodic-detail-change--product-image img {
	max-width: 100%;
	height: auto;
	display: block;
}

.block-periodic-detail-change--info-table {
	font-size: 13px;
	margin: 0;
}

.block-periodic-detail-change--info-table th {
	width: 180px;
	padding: 8px 10px;
	border: 1px solid #ddd;
	background: #f5f5f5;
	font-weight: normal;
}

.block-periodic-detail-change--info-table td {
	padding: 8px 10px;
	border: 1px solid #ddd;
}

.block-periodic-detail-change--section-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-bottom: 20px;
}

.block-periodic-detail-change--panel {
	padding: 18px;
	border: 1px solid #ddd;
	background: #fff;
}


.block-periodic-detail-change--cycle-label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: bold;
}

.block-periodic-detail-change--cycle-control {
	max-width: 360px;
	margin-bottom: 0;
	line-height: normal;
}

.block-periodic-detail-change--cycle-input {
	width: 100%;
	max-width: 360px;
}

.block-periodic-detail-change--notice {
	margin-top: 10px;
}

.block-periodic-detail-change--notice p {
	margin: 0;
	font-size: 12px;
	line-height: 1.6;
}

.block-periodic-detail-change--check-label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 13px;
	line-height: 1.6;
	cursor: pointer;
}

.block-periodic-detail-change--check-label input {
	margin-top: 3px;
	flex-shrink: 0;
}

.block-periodic-detail-change--warning {
	padding: 12px 14px;
	border: 1px solid #f0d3b0;
	background: #fdf6eb;
	color: #8a6d3b;
	font-size: 13px;
	line-height: 1.7;
}

.block-periodic-detail-change--warning p {
	margin: 0;
}

.block-periodic-detail-change--info-notice,
.block-periodic-detail-change--cancel-guide {
	padding: 16px 18px;
	border: 1px solid #ddd;
	background: #fff;
	margin-bottom: 20px;
}


.block-periodic-detail-change--info-text {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
}

.block-periodic-detail-change--cancel-link-wrap {
	margin: 0;
}

.block-periodic-detail-change--cancel-link {
	display: inline-block;
	font-size: 13px;
	line-height: 1.6;
	color: #666;
	text-decoration: underline;
}

.block-periodic-detail-change--cancel-link:hover {
	color: #555;
}

.block-periodic-detail-change--actions {
	padding-top: 8px;
}

/* --------------------------------------------------
   解約画面: .block-periodic-detail-cancel
   -------------------------------------------------- */
.block-periodic-detail-cancel {
	margin: 0 auto;
	padding: 20px 0;
}

.block-periodic-detail-cancel--header {
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 2px solid #444;
}

.block-periodic-detail-cancel--header .block-container-heading,
.block-periodic-detail-cancel--page-title {
	margin: 0 0 1.42rem;
}

.block-periodic-detail-cancel--description {
	margin-top: 8px;
	font-size: 13px;
	color: #555;
}

.block-periodic-detail-cancel--description p {
	margin: 0;
}

.block-periodic-detail-cancel--warning {
	margin: 0 0 20px;
	padding: 12px 14px;
	border: 1px solid #f0d3b0;
	background: #fdf6eb;
	color: #8a6d3b;
	font-size: 13px;
	line-height: 1.7;
}

.block-periodic-detail-cancel--warning p {
	margin: 0;
	font-weight: bold;
}

.block-periodic-detail-cancel--error {
	margin: 0 0 18px;
}

.block-periodic-detail-cancel--product-info {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	margin: 0 0 20px;
	padding: 16px;
	border: 1px solid #ddd;
	background: #fff;
}

.block-periodic-detail-cancel--product-image {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px;
	border: 1px solid #eee;
	background: #faf8f3;
}

.block-periodic-detail-cancel--product-image img {
	max-width: 100%;
	height: auto;
	display: block;
}

.block-periodic-detail-cancel--info-table {
	font-size: 13px;
	margin: 0;
}

.block-periodic-detail-cancel--info-table th {
	width: 180px;
	padding: 8px 10px;
	border: 1px solid #ddd;
	background: #f5f5f5;
	font-weight: normal;
}

.block-periodic-detail-cancel--info-table td {
	padding: 8px 10px;
	border: 1px solid #ddd;
}

.block-periodic-detail-cancel--user-template {
	margin-bottom: 20px;
	padding: 16px 18px;
	border: 1px solid #ddd;
	background: #fff;
}

.block-periodic-detail-cancel--user-template:empty {
	display: none;
}

.block-periodic-detail-cancel--actions {
	padding-top: 8px;
}

.block-periodic-action-btn__cancel {
	background: #fff4f3;
	border: 1px solid #d9534f;
	color: #c9302c;
}

.block-periodic-action-btn__cancel:hover {
	background: #f9dedd;
	border-color: #c9302c;
	color: #a12622;
}

/* --------------------------------------------------
   サイクル変更: .block-periodic-cycle
   -------------------------------------------------- */
.block-periodic-cycle {
	margin: 0 auto;
	padding: 20px 0;
}

.block-periodic-cycle--title {
	font-size: 20px;
	font-weight: bold;
	padding: 0 0 10px;
	margin: 0 0 15px;
	border-bottom: 2px solid #444;
}

.block-periodic-cycle--description {
	margin: 0 0 15px;
	font-size: 13px;
}

.block-periodic-cycle--info-table {
	width: 100%;
	font-size: 13px;
	margin: 0 0 20px;
}

.block-periodic-cycle--info-table th {
	width: 180px;
	background: #f5f5f5;
	padding: 8px 10px;
	border: 1px solid #ddd;
	font-weight: normal;
}

.block-periodic-cycle--info-table td {
	padding: 8px 10px;
	border: 1px solid #ddd;
}

.block-periodic-cycle--select {
	margin: 0 0 15px;
}

.block-periodic-cycle--select-label {
	display: block;
	font-size: 13px;
	font-weight: bold;
	margin: 0 0 5px;
}

.block-periodic-cycle--select-input {
	width: 100%;
	max-width: 400px;
}

.block-periodic-cycle--notice {
	margin: 15px 0;
	font-size: 13px;
	color: #a94442;
}

.block-periodic-cycle--actions {
	margin: 20px 0;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

/* --------------------------------------------------
   解約: .block-periodic-withdrawal
   -------------------------------------------------- */
.block-periodic-withdrawal {
	margin: 0 auto;
	padding: 20px 0;
}

.block-periodic-withdrawal--title {
	font-size: 20px;
	font-weight: bold;
	padding: 0 0 10px;
	margin: 0 0 15px;
	border-bottom: 2px solid #444;
}

.block-periodic-withdrawal--warning {
	margin: 0 0 15px;
}

.block-periodic-withdrawal--description {
	margin: 0 0 15px;
	font-size: 13px;
}

.block-periodic-withdrawal--info-table {
	width: 100%;
	font-size: 13px;
	margin: 0 0 20px;
}

.block-periodic-withdrawal--info-table th {
	width: 180px;
	background: #f5f5f5;
	padding: 8px 10px;
	border: 1px solid #ddd;
	font-weight: normal;
}

.block-periodic-withdrawal--info-table td {
	padding: 8px 10px;
	border: 1px solid #ddd;
}

.block-periodic-withdrawal--detail-title {
	font-size: 15px;
	font-weight: bold;
	padding: 10px 0;
	border-bottom: 1px solid #ddd;
	margin: 0 0 10px;
}

.block-periodic-withdrawal--detail-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	margin: 0 0 20px;
}

.block-periodic-withdrawal--detail-table thead th {
	background: #f5f5f5;
	padding: 8px 10px;
	border-bottom: 1px solid #ddd;
	font-weight: normal;
	font-size: 12px;
	color: #666;
	text-align: left;
}

.block-periodic-withdrawal--detail-table tbody td {
	padding: 10px;
	border-bottom: 1px solid #f0f0f0;
	vertical-align: middle;
}

.block-periodic-withdrawal--agree {
	margin: 15px 0;
	padding: 12px 15px;
	background: #f8f8f8;
	border: 1px solid #ddd;
	border-radius: 3px;
}

.block-periodic-withdrawal--agree-label {
	font-size: 13px;
	cursor: pointer;
}

.block-periodic-withdrawal--agree-checkbox {
	margin-right: 5px;
}

.block-periodic-withdrawal--notice {
	margin: 15px 0;
	font-size: 13px;
	color: #a94442;
}

/* --------------------------------------------------
   操作不可/エラー
   -------------------------------------------------- */
.block-periodic-bantime,
.block-periodic-error {
	margin: 0 auto;
	padding: 40px 0;
	text-align: center;
}

.block-periodic-bantime--message,
.block-periodic-error--message {
	font-size: 14px;
	color: #666;
	margin-bottom: 20px;
}

/* ==================================================
   レスポンシブ: SP対応（768px以下）
   ================================================== */
@media screen and (max-width: 768px) {

	.block-periodic-list,
	.block-periodic-detail-change,
	.block-periodic-detail-cancel,
	.block-periodic-bantime,
	.block-periodic-error {
		padding-left: 5vw;
		padding-right: 5vw;
	}

	.block-periodic-list,
	.block-periodic-list--groups,
	.block-periodic-group,
	.block-periodic-group--body {
		max-width: 100%;
		min-width: 0;
		overflow-x: hidden;
	}

	.block-periodic-group--body {
		padding: 10px;
	}

	.block-periodic-group--scroll {
		max-width: 100%;
		padding-bottom: 6px;
	}

	.block-periodic-group--scroll .block-periodic-contract-row {
		min-width: auto;
	}

	.block-periodic-contract-card--actions {
		justify-content: flex-end;
	}

	.block-periodic-schedule-card {
		min-height: 0;
	}

	.block-periodic-customer-info {
		padding: 0 0 12px;
	}

	.block-periodic-customer-info--title {
		position: static;
		margin-top: 0;
		padding: 9px 12px;
	}

	.block-periodic-customer-info--table {
		width: calc(100% - 20px);
		margin: 0 10px;
		min-width: 0;
	}

	.block-periodic-customer-info--address {
		gap: 8px;
	}

	.block-periodic-customer-info--edit {
		align-self: flex-end;
	}

	.block-periodic-customer-info--table td {
		word-break: break-word;
	}

	.block-periodic-customer-info--address {
		gap: 6px 10px;
	}

	/* 一覧: テーブルをカード表示に変更 */
	.block-periodic-group--detail-table thead {
		display: none;
	}

	.block-periodic-group--detail-table tbody tr {
		display: block;
		border-bottom: 1px solid #f0f0f0;
		padding: 10px 0;
	}

	.block-periodic-group--detail-table tbody td {
		display: flex;
		justify-content: space-between;
		padding: 3px 10px;
		border: none;
	}

	.block-periodic-group--detail-table tbody td::before {
		content: attr(data-label);
		font-size: 11px;
		color: #666;
		font-weight: normal;
		flex-shrink: 0;
		width: 80px;
	}

	.block-periodic-group--col-brand,
	.block-periodic-group--col-product,
	.block-periodic-group--col-cycle,
	.block-periodic-group--col-qty,
	.block-periodic-group--col-status {
		width: 100%;
		text-align: left;
	}

	.block-periodic-group--qty,
	.block-periodic-group--skip {
		text-align: left;
	}

	/* 詳細: タイムラインを縦並びに */
	.block-periodic-timeline--items {
		flex-direction: column;
		overflow-x: visible;
	}

	.block-periodic-timeline-item {
		min-width: 100%;
		max-width: 100%;
	}

	/* 詳細: タイムラインテーブルをカード表示に */
	.block-periodic-timeline-item--product-table thead {
		display: none;
	}

	.block-periodic-timeline-item--product-table tbody tr {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		padding: 8px;
		border-bottom: 1px solid #f0f0f0;
		gap: 5px;
	}

	.block-periodic-timeline-item--product-table tbody td {
		border: none;
		padding: 2px 4px;
	}

	.block-periodic-timeline-item--image {
		width: 50px;
		flex-shrink: 0;
	}

	.block-periodic-timeline-item--name {
		flex: 1;
		min-width: 120px;
	}

	.block-periodic-timeline-item--col-type,
	.block-periodic-timeline-item--col-ratio,
	.block-periodic-timeline-item--col-price,
	.block-periodic-timeline-item--col-qty,
	.block-periodic-timeline-item--col-amt {
		width: auto;
	}

	/* ご登録情報: ラベルレイアウト調整 */
	.block-periodic-customer-info--table th,
	.block-periodic-detail-customer-info--table th {
		width: 132px;
		font-size: 14px;
	}

	.block-periodic-detail-customer-info--actions {
		flex-direction: column;
	}

	.block-periodic-detail-customer-info--withdrawal-link {
		margin-left: 0;
	}

	.block-periodic-detail-change--product-info {
		grid-template-columns: 1fr;
		margin-bottom: 14px;
		padding: 14px;
	}

	.block-periodic-detail-change--product-image {
		max-width: 180px;
	}

	.block-periodic-detail-change--section-grid {
		grid-template-columns: 1fr;
		gap: 14px;
		margin-bottom: 14px;
	}

	.block-periodic-detail-change {
		padding: 12px 5vw 0;
	}

	.block-periodic-detail-change--header {
		margin-bottom: 14px;
	}

	.block-periodic-detail-change--error,
	.block-periodic-detail-change--product-info,
	.block-periodic-detail-change--section-grid,
	.block-periodic-detail-change--info-notice,
	.block-periodic-detail-change--cancel-guide,
	.block-periodic-detail-change--actions {
		margin-left: 0;
		margin-right: 0;
	}

	.block-periodic-detail-change--panel,
	.block-periodic-detail-change--info-notice,
	.block-periodic-detail-change--cancel-guide {
		margin-bottom: 14px;
		padding: 14px;
	}

	.block-periodic-detail-change--info-table th,
	.block-periodic-detail-change--info-table td {
		display: block;
		width: 100%;
	}

	.block-periodic-detail-change--info-table th {
		border-bottom: none;
	}

	.block-periodic-detail-cancel--product-info {
		grid-template-columns: 1fr;
	}

	.block-periodic-detail-cancel--product-image {
		max-width: 180px;
	}

	.block-periodic-detail-cancel--info-table th,
	.block-periodic-detail-cancel--info-table td {
		display: block;
		width: 100%;
	}

	.block-periodic-detail-cancel--info-table th {
		border-bottom: none;
	}

	.block-periodic-detail-cancel--user-template {
		padding: 14px;
	}

	/* ヘッダー */
	.block-periodic-detail--header {
		flex-direction: column;
		gap: 5px;
	}

	/* 解約: テーブル */
	.block-periodic-withdrawal--info-table th,
	.block-periodic-cycle--info-table th {
		width: 120px;
		font-size: 12px;
	}
}
