/* ==========================================================================
   Kantola Essentials — WooCommerce front-end styles
   Loaded only on WooCommerce pages by Kantola_Essentials_Assets.
   ========================================================================== */

/* === My Account: Orders — modern card layout ============================ */

.kantola-orders {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin: 0 0 32px;
}

.kantola-order {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 20px 22px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}

.kantola-order:hover {
	box-shadow: 0 8px 28px rgba(20, 22, 36, .06);
	border-color: #e0e0e0;
	transform: translateY(-1px);
}

.kantola-order__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.kantola-order__heading {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.kantola-order .kantola-order__number {
	font-size: 18px;
	font-weight: 700;
	color: #111827;
	text-decoration: none;
	letter-spacing: -.01em;
	line-height: 1.2;
}

.kantola-order .kantola-order__number:hover {
	color: #2563eb;
}

.kantola-order__date {
	font-size: 13px;
	color: #6b7280;
}

/* Status pills (shared between Orders list and View Order hero) */
.kantola-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .01em;
	border: 1px solid transparent;
	white-space: nowrap;
}

.kantola-status::before {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

.kantola-status--pending,
.kantola-status--on-hold {
	background: #fff7ed;
	color: #9a3412;
	border-color: #fed7aa;
}

.kantola-status--processing {
	background: #eff6ff;
	color: #1d4ed8;
	border-color: #bfdbfe;
}

.kantola-status--completed {
	background: #ecfdf5;
	color: #047857;
	border-color: #a7f3d0;
}

.kantola-status--cancelled,
.kantola-status--refunded {
	background: #f3f4f6;
	color: #4b5563;
	border-color: #e5e7eb;
}

.kantola-status--failed {
	background: #fef2f2;
	color: #b91c1c;
	border-color: #fecaca;
}

/* Items thumbnails */
.kantola-order__items {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.kantola-order__thumb {
	width: 48px;
	height: 48px;
	border-radius: 10px;
	overflow: hidden;
	background: #f3f4f6;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	border: 1px solid #ececec;
}

.kantola-order__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
}

.kantola-order__thumb--more {
	font-size: 12px;
	font-weight: 600;
	color: #4b5563;
	background: #fafafa;
}

/* Footer */
.kantola-order__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding-top: 16px;
	border-top: 1px solid #f3f4f6;
}

.kantola-order__totals {
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}

.kantola-order__total,
.kantola-order__total bdi {
	font-size: 17px;
	font-weight: 700;
	color: #111827;
}

.kantola-order__items-count {
	font-size: 13px;
	color: #6b7280;
	position: relative;
	padding-left: 14px;
}

.kantola-order__items-count::before {
	content: '';
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: #d1d5db;
	position: absolute;
	left: 4px;
	top: 50%;
	transform: translateY(-50%);
}

.kantola-order__actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.kantola-order a.kantola-order__action,
.kantola-order-details a.kantola-order__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 9px 18px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
	cursor: pointer;
}

.kantola-order a.kantola-order__action--primary,
.kantola-order a.kantola-order__action--primary:visited,
.kantola-order-details a.kantola-order__action--primary,
.kantola-order-details a.kantola-order__action--primary:visited {
	background: #111827;
	color: #ffffff;
	border-color: #111827;
}

.kantola-order a.kantola-order__action--primary:hover,
.kantola-order a.kantola-order__action--primary:focus,
.kantola-order-details a.kantola-order__action--primary:hover,
.kantola-order-details a.kantola-order__action--primary:focus {
	background: #1f2937;
	border-color: #1f2937;
	color: #ffffff;
}

.kantola-order a.kantola-order__action--secondary,
.kantola-order a.kantola-order__action--secondary:visited,
.kantola-order-details a.kantola-order__action--secondary,
.kantola-order-details a.kantola-order__action--secondary:visited {
	background: #ffffff;
	color: #1f2937;
	border-color: #e5e7eb;
}

.kantola-order a.kantola-order__action--secondary:hover,
.kantola-order a.kantola-order__action--secondary:focus,
.kantola-order-details a.kantola-order__action--secondary:hover,
.kantola-order-details a.kantola-order__action--secondary:focus {
	background: #f9fafb;
	border-color: #d1d5db;
	color: #111827;
}

/* Pagination */
.kantola-orders-pagination {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 24px 0 0;
	flex-wrap: wrap;
}

.kantola-orders-pagination__current {
	font-size: 13px;
	color: #6b7280;
}

.kantola-orders-pagination a.kantola-orders-pagination__link,
.kantola-orders-pagination a.kantola-orders-pagination__link:visited {
	padding: 9px 18px;
	border-radius: 8px;
	background: #ffffff;
	color: #1f2937;
	border: 1px solid #e5e7eb;
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	transition: background-color .15s ease, border-color .15s ease;
}

.kantola-orders-pagination a.kantola-orders-pagination__link:hover,
.kantola-orders-pagination a.kantola-orders-pagination__link:focus {
	background: #f9fafb;
	border-color: #d1d5db;
	color: #111827;
}

/* Empty state */
.kantola-orders-empty {
	text-align: center;
	padding: 56px 24px;
	background: #fff;
	border: 1px dashed #e5e7eb;
	border-radius: 14px;
}

.kantola-orders-empty__icon {
	color: #9ca3af;
	margin-bottom: 16px;
	display: inline-flex;
}

.kantola-orders-empty__title {
	font-size: 20px;
	font-weight: 700;
	color: #111827;
	margin: 0 0 8px;
}

.kantola-orders-empty__text {
	font-size: 14px;
	color: #6b7280;
	margin: 0 0 24px;
}

.kantola-orders-empty a.kantola-orders-empty__cta,
.kantola-orders-empty a.kantola-orders-empty__cta:visited {
	display: inline-flex;
	padding: 11px 26px;
	background: #111827;
	color: #ffffff;
	border-radius: 10px;
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	border: 1px solid #111827;
	transition: background-color .15s ease;
}

.kantola-orders-empty a.kantola-orders-empty__cta:hover,
.kantola-orders-empty a.kantola-orders-empty__cta:focus {
	background: #1f2937;
	border-color: #1f2937;
	color: #ffffff;
}

/* Mobile tweaks for Orders list */
@media (max-width: 600px) {
	.kantola-order {
		padding: 16px;
	}

	.kantola-order__header {
		flex-direction: column;
		align-items: stretch;
	}

	.kantola-order .kantola-status {
		align-self: flex-start;
	}

	.kantola-order__footer {
		flex-direction: column;
		align-items: stretch;
	}

	.kantola-order__totals {
		justify-content: space-between;
	}

	.kantola-order__actions {
		width: 100%;
	}

	.kantola-order .kantola-order__action {
		flex: 1;
	}
}

/* === My Account: View Order =========================================== */

.kantola-view-order {
	margin: 0 0 24px;
}

.kantola-view-order__hero {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 24px 26px;
	margin: 0 0 24px;
}

.kantola-view-order__heading {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.kantola-view-order .kantola-view-order__number {
	font-size: 24px;
	font-weight: 700;
	color: #111827;
	margin: 0;
	line-height: 1.2;
	letter-spacing: -.01em;
}

.kantola-view-order__meta {
	font-size: 14px;
	color: #6b7280;
	margin: 0;
}

/* Section title shared across order detail views */
.kantola-section-title {
	font-size: 16px;
	font-weight: 700;
	color: #111827;
	margin: 0 0 16px;
	letter-spacing: -.01em;
}

/* Order updates timeline */
.kantola-order-notes {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 22px 24px;
	margin: 0 0 24px;
}

.kantola-order-notes__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.kantola-order-notes__item {
	padding: 14px 16px;
	background: #f9fafb;
	border-radius: 10px;
	border: 1px solid #eef0f3;
}

.kantola-order-notes__time {
	display: block;
	font-size: 12px;
	color: #6b7280;
	margin-bottom: 6px;
}

.kantola-order-notes__body p {
	margin: 0 0 6px;
	font-size: 14px;
	color: #1f2937;
}

.kantola-order-notes__body p:last-child {
	margin-bottom: 0;
}

/* === Order details card ============================================== */

.kantola-order-details {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 24px 26px;
	margin: 0 0 24px;
}

.kantola-order-details__items {
	display: flex;
	flex-direction: column;
	margin-bottom: 4px;
}

.kantola-order-item {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid #f3f4f6;
	align-items: center;
}

.kantola-order-item:first-child {
	padding-top: 4px;
}

.kantola-order-item:last-child {
	border-bottom: 0;
}

.kantola-order-item__thumb {
	width: 64px;
	height: 64px;
	border-radius: 10px;
	overflow: hidden;
	background: #f3f4f6;
	border: 1px solid #ececec;
	display: flex;
	align-items: center;
	justify-content: center;
}

.kantola-order-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
}

.kantola-order-item__body {
	min-width: 0;
}

.kantola-order-item__name {
	font-size: 15px;
	font-weight: 600;
	color: #111827;
	line-height: 1.4;
}

.kantola-order-item .kantola-order-item__name a {
	color: inherit;
	text-decoration: none;
}

.kantola-order-item .kantola-order-item__name a:hover {
	color: #2563eb;
}

.kantola-order-item__qty {
	font-size: 13px;
	color: #6b7280;
	margin-top: 4px;
}

.kantola-order-item__meta {
	font-size: 12px;
	color: #6b7280;
	margin-top: 4px;
}

.kantola-order-item__meta p,
.kantola-order-item__meta ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kantola-order-item__total,
.kantola-order-item__total bdi {
	font-size: 15px;
	font-weight: 600;
	color: #111827;
	text-align: right;
	white-space: nowrap;
}

.kantola-order-item__note {
	grid-column: 1 / -1;
	padding: 10px 12px;
	background: #fffbeb;
	border-radius: 8px;
	font-size: 13px;
	color: #92400e;
	margin-top: 8px;
}

.kantola-order-item__note p {
	margin: 0;
}

/* Summary section */
.kantola-order-details__summary {
	border-top: 1px solid #f3f4f6;
	padding-top: 18px;
	margin-top: 8px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.kantola-summary-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	font-size: 14px;
}

.kantola-summary-row__label {
	color: #6b7280;
}

.kantola-summary-row__value,
.kantola-summary-row .kantola-summary-row__value bdi {
	color: #111827;
	font-weight: 500;
	text-align: right;
}

.kantola-summary-row--order_total {
	border-top: 1px solid #f3f4f6;
	padding-top: 12px;
	margin-top: 4px;
}

.kantola-summary-row--order_total .kantola-summary-row__label {
	font-size: 15px;
	color: #111827;
	font-weight: 700;
}

.kantola-summary-row--order_total .kantola-summary-row__value,
.kantola-summary-row--order_total .kantola-summary-row__value bdi {
	font-size: 18px;
	font-weight: 700;
	color: #111827;
}

.kantola-summary-note {
	background: #f9fafb;
	border-radius: 10px;
	padding: 12px 14px;
	margin-top: 8px;
}

.kantola-summary-note__label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: .04em;
	margin-bottom: 4px;
}

.kantola-summary-note p {
	margin: 0;
	font-size: 13px;
	color: #4b5563;
}

/* Actions row inside details card */
.kantola-order-details__actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	padding-top: 18px;
	margin-top: 8px;
	border-top: 1px solid #f3f4f6;
}

/* === Shipment tracking (view-order page) ============================== */

.kantola-tracking {
	margin: 18px 0 0;
	padding: 18px 20px;
	background: #f9fafb;
	border: 1px solid #eef0f3;
	border-radius: 12px;
}

.kantola-tracking .kantola-tracking__title {
	margin: 0 0 14px;
}

.kantola-tracking__rows {
	margin: 0 0 16px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.kantola-tracking__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
	margin: 0;
}

.kantola-tracking__row dt {
	color: #6b7280;
	font-weight: 400;
	margin: 0;
}

.kantola-tracking__row dd {
	color: #111827;
	font-weight: 600;
	margin: 0;
	text-align: right;
	word-break: break-word;
}

.kantola-tracking .kantola-tracking__cta {
	gap: 6px;
}

.kantola-tracking .kantola-tracking__cta-arrow {
	display: inline-block;
	transition: transform .15s ease;
}

.kantola-tracking .kantola-tracking__cta:hover .kantola-tracking__cta-arrow,
.kantola-tracking .kantola-tracking__cta:focus .kantola-tracking__cta-arrow {
	transform: translateX(3px);
}

/* === Customer addresses =============================================== */

.kantola-customer-details {
	margin: 0 0 24px;
}

.kantola-address-grid {
	display: grid;
	gap: 16px;
}

.kantola-address-grid--two {
	grid-template-columns: 1fr 1fr;
}

.kantola-address-grid--one {
	grid-template-columns: 1fr;
}

.kantola-address-card {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 22px 24px;
}

.kantola-address-card__body {
	font-style: normal;
	font-size: 14px;
	color: #374151;
	line-height: 1.65;
}

.kantola-address-card__body p {
	margin: 0 0 4px;
}

.kantola-address-card .kantola-address-card__phone,
.kantola-address-card .kantola-address-card__email {
	color: #6b7280;
	font-size: 13px;
	margin-top: 8px;
}

/* Mobile tweaks for View Order */
@media (max-width: 600px) {
	.kantola-view-order__hero {
		padding: 18px 20px;
		flex-direction: column;
		align-items: stretch;
	}

	.kantola-view-order .kantola-status {
		align-self: flex-start;
	}

	.kantola-order-details {
		padding: 18px 20px;
	}

	.kantola-order-item {
		grid-template-columns: 56px 1fr;
		grid-template-areas:
			"thumb body"
			"thumb total";
		row-gap: 4px;
	}

	.kantola-order-item__thumb {
		grid-area: thumb;
		width: 56px;
		height: 56px;
	}

	.kantola-order-item__body {
		grid-area: body;
	}

	.kantola-order-item__total {
		grid-area: total;
		text-align: left;
		font-size: 14px;
	}

	.kantola-address-grid--two {
		grid-template-columns: 1fr;
	}
}

/* === Shared building blocks ============================================ */

.kantola-card {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 24px 26px;
	margin: 0 0 20px;
}

@media (max-width: 600px) {
	.kantola-card {
		padding: 18px 20px;
	}
}

/* === Form styling (targets WC's existing field classes) =============== */

.kantola-form .form-row,
.kantola-form .woocommerce-form-row,
.kantola-form p.form-row {
	margin: 0 0 14px;
	padding: 0;
	display: block;
}

.kantola-form .form-row > label,
.kantola-form .woocommerce-form-row > label,
.kantola-form .form-row label.kantola-form__label {
	display: block;
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 500;
	color: #374151;
}

.kantola-form .required {
	color: #dc2626;
	text-decoration: none;
}

.kantola-form input[type="text"],
.kantola-form input[type="email"],
.kantola-form input[type="password"],
.kantola-form input[type="tel"],
.kantola-form input[type="url"],
.kantola-form input[type="number"],
.kantola-form input[type="search"],
.kantola-form select,
.kantola-form textarea,
.kantola-form .input-text,
.kantola-form .woocommerce-Input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	font-size: 14px;
	color: #111827;
	background: #fff;
	box-sizing: border-box;
	line-height: 1.4;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.kantola-form textarea {
	min-height: 96px;
	resize: vertical;
}

.kantola-form input:focus,
.kantola-form select:focus,
.kantola-form textarea:focus,
.kantola-form .input-text:focus,
.kantola-form .woocommerce-Input:focus {
	border-color: #111827;
	box-shadow: 0 0 0 3px rgba(17, 24, 39, .08);
	outline: none;
}

.kantola-form .form-row.woocommerce-invalid input.input-text,
.kantola-form .form-row.woocommerce-invalid select {
	border-color: #ef4444;
}

.kantola-form .form-row.woocommerce-validated input.input-text,
.kantola-form .form-row.woocommerce-validated select {
	border-color: #10b981;
}

.kantola-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}

@media (min-width: 600px) {
	.kantola-form__grid {
		grid-template-columns: 1fr 1fr;
	}

	.kantola-form__grid > .form-row {
		margin-bottom: 0;
	}
}

.kantola-form__hint,
.kantola-form .description {
	display: block;
	font-size: 12px;
	color: #6b7280;
	margin: 6px 0 0;
	font-style: normal;
}

.kantola-form__fieldset {
	border: 0;
	margin: 22px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid #f3f4f6;
}

.kantola-form__fieldset legend {
	padding: 0;
	margin: 0 0 14px;
	font-size: 14px;
	font-weight: 700;
	color: #111827;
}

.kantola-form__actions {
	margin: 22px 0 0 !important;
	padding: 18px 0 0;
	border-top: 1px solid #f3f4f6;
}

.kantola-form button.kantola-form__submit,
.kantola-form a.kantola-form__submit,
.kantola-form input[type="submit"].kantola-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 11px 24px;
	background: #111827;
	color: #ffffff;
	border: 1px solid #111827;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease;
	font-family: inherit;
}

.kantola-form button.kantola-form__submit:hover,
.kantola-form button.kantola-form__submit:focus,
.kantola-form a.kantola-form__submit:hover,
.kantola-form a.kantola-form__submit:focus,
.kantola-form input[type="submit"].kantola-form__submit:hover,
.kantola-form input[type="submit"].kantola-form__submit:focus {
	background: #1f2937;
	border-color: #1f2937;
	color: #ffffff;
}

.kantola-form .kantola-form__submit--secondary {
	background: #ffffff;
	color: #1f2937;
	border-color: #e5e7eb;
}

.kantola-form .kantola-form__submit--secondary:hover,
.kantola-form .kantola-form__submit--secondary:focus {
	background: #f9fafb;
	border-color: #d1d5db;
	color: #111827;
}

/* Checkbox row */
.kantola-form .woocommerce-form__label-for-checkbox,
.kantola-form label.checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
	font-size: 14px;
	color: #374151;
	cursor: pointer;
	margin: 0;
}

.kantola-form input[type="checkbox"],
.kantola-form input[type="radio"] {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: #111827;
}

/* select2 (WC uses it for country/state) — light theming */
.kantola-form .select2-container--default .select2-selection--single,
.kantola-form .select2-container--default .select2-selection--multiple {
	height: auto;
	min-height: 42px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 5px 12px;
	font-size: 14px;
}

.kantola-form .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 30px;
	padding-left: 0;
	color: #111827;
}

.kantola-form .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 40px;
}

/* === My Account: Dashboard ============================================ */

.kantola-dashboard {
	margin: 0 0 24px;
}

.kantola-dashboard__hero {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 24px 26px;
	margin: 0 0 20px;
}

.kantola-dashboard__greeting {
	font-size: 22px;
	font-weight: 700;
	color: #111827;
	margin: 0 0 6px;
	letter-spacing: -.01em;
	line-height: 1.2;
}

.kantola-dashboard__sub {
	margin: 0;
	font-size: 14px;
	color: #6b7280;
}

.kantola-dashboard a.kantola-dashboard__logout {
	margin-left: 8px;
	color: #2563eb;
	text-decoration: none;
	font-weight: 500;
}

.kantola-dashboard a.kantola-dashboard__logout:hover {
	text-decoration: underline;
}

.kantola-dashboard__tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}

.kantola-dashboard a.kantola-dashboard__tile,
.kantola-dashboard a.kantola-dashboard__tile:visited {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 20px 22px;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	text-decoration: none;
	color: inherit;
	transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}

.kantola-dashboard a.kantola-dashboard__tile:hover,
.kantola-dashboard a.kantola-dashboard__tile:focus {
	box-shadow: 0 8px 28px rgba(20, 22, 36, .06);
	border-color: #e0e0e0;
	transform: translateY(-1px);
	color: inherit;
}

.kantola-dashboard__tile-label {
	font-size: 15px;
	font-weight: 700;
	color: #111827;
}

.kantola-dashboard__tile-hint {
	font-size: 13px;
	color: #6b7280;
}

.kantola-dashboard__tile-arrow {
	position: absolute;
	top: 18px;
	right: 20px;
	color: #9ca3af;
	font-size: 16px;
	transition: transform .15s ease, color .15s ease;
}

.kantola-dashboard a.kantola-dashboard__tile:hover .kantola-dashboard__tile-arrow,
.kantola-dashboard a.kantola-dashboard__tile:focus .kantola-dashboard__tile-arrow {
	transform: translateX(3px);
	color: #111827;
}

/* === My Account: Addresses list ======================================= */

.kantola-addresses-intro {
	margin: 0 0 16px;
	font-size: 14px;
	color: #6b7280;
}

.kantola-addresses-list .kantola-address-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 12px;
}

.kantola-addresses-list .kantola-address-card__header .kantola-section-title {
	margin: 0;
}

.kantola-addresses-list a.kantola-address-card__edit,
.kantola-addresses-list a.kantola-address-card__edit:visited {
	font-size: 13px;
	font-weight: 500;
	color: #2563eb;
	text-decoration: none;
}

.kantola-addresses-list a.kantola-address-card__edit:hover {
	text-decoration: underline;
}

.kantola-address-card__empty {
	color: #9ca3af;
	font-style: italic;
	margin: 0;
}

/* === Cart ============================================================== */

.kantola-cart {
	margin: 0 0 24px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media (min-width: 900px) {
	.kantola-cart {
		grid-template-columns: minmax(0, 1fr) 360px;
		align-items: start;
	}

	.kantola-cart__collaterals {
		position: sticky;
		top: 24px;
	}
}

.kantola-cart__form {
	min-width: 0;
}

.kantola-cart__items {
	padding: 22px 24px;
}

.kantola-cart-table {
	width: 100%;
	border-collapse: collapse;
	margin: 8px 0 0;
}

.kantola-cart-table thead th {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: #6b7280;
	padding: 8px 10px;
	border-bottom: 1px solid #f3f4f6;
	text-align: left;
}

.kantola-cart-table thead .product-price,
.kantola-cart-table thead .product-quantity,
.kantola-cart-table thead .product-subtotal {
	text-align: right;
}

.kantola-cart-table tbody td {
	padding: 16px 10px;
	border-bottom: 1px solid #f3f4f6;
	vertical-align: middle;
	font-size: 14px;
	color: #111827;
}

.kantola-cart-table tbody tr:last-child td {
	border-bottom: 0;
}

.kantola-cart-table .product-remove {
	width: 32px;
	text-align: center;
}

.kantola-cart-table .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 6px;
	background: #f3f4f6;
	color: #6b7280;
	text-decoration: none;
	font-size: 16px;
	line-height: 1;
	transition: background-color .15s ease, color .15s ease;
}

.kantola-cart-table .product-remove a.remove:hover {
	background: #fee2e2;
	color: #b91c1c;
}

.kantola-cart-table .product-thumbnail {
	width: 80px;
}

.kantola-cart-table .product-thumbnail img {
	width: 64px;
	height: 64px;
	border-radius: 10px;
	border: 1px solid #ececec;
	object-fit: cover;
	display: block;
}

.kantola-cart-table .product-name a,
.kantola-cart-table .product-name a:visited {
	color: #111827;
	font-weight: 600;
	text-decoration: none;
}

.kantola-cart-table .product-name a:hover {
	color: #2563eb;
}

.kantola-cart-table .product-price,
.kantola-cart-table .product-subtotal {
	text-align: right;
	color: #111827;
	font-weight: 500;
	white-space: nowrap;
}

.kantola-cart-table .product-quantity {
	text-align: right;
}

.kantola-cart-table .product-quantity .quantity {
	display: inline-flex;
	align-items: center;
}

.kantola-cart-table .product-quantity input.qty {
	width: 64px;
	padding: 7px 8px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	font-size: 14px;
	text-align: center;
	color: #111827;
	background: #fff;
}

.kantola-cart-table .product-quantity input.qty:focus {
	border-color: #111827;
	box-shadow: 0 0 0 3px rgba(17, 24, 39, .08);
	outline: none;
}

/* Cart actions row (coupon + update cart) */
.kantola-cart-table .kantola-cart__actions {
	padding: 16px 10px 0;
	border-top: 1px solid #f3f4f6;
	border-bottom: 0 !important;
}

.kantola-cart__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
}

.kantola-cart__coupon {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	flex: 1;
	min-width: 0;
}

.kantola-cart__coupon-input {
	flex: 1;
	min-width: 160px;
	padding: 10px 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	font-size: 14px;
	color: #111827;
	background: #fff;
}

.kantola-cart__coupon-input:focus {
	border-color: #111827;
	box-shadow: 0 0 0 3px rgba(17, 24, 39, .08);
	outline: none;
}

.kantola-cart__actions button.kantola-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 11px 22px;
	background: #ffffff;
	color: #1f2937;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	line-height: 1.2;
	transition: background-color .15s ease, border-color .15s ease;
	font-family: inherit;
}

.kantola-cart__actions button.kantola-form__submit:hover {
	background: #f9fafb;
	border-color: #d1d5db;
	color: #111827;
}

/* === Cart totals (right column) ====================================== */

.kantola-cart-totals {
	padding: 22px 24px;
}

.kantola-cart-totals__table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 16px;
}

.kantola-cart-totals__table tr {
	border: 0;
}

.kantola-cart-totals__table th,
.kantola-cart-totals__table td {
	padding: 10px 0;
	font-size: 14px;
	border: 0;
	border-bottom: 1px solid #f3f4f6;
	text-align: left;
	vertical-align: top;
}

.kantola-cart-totals__table th {
	color: #6b7280;
	font-weight: 400;
}

.kantola-cart-totals__table td {
	color: #111827;
	font-weight: 500;
	text-align: right;
}

.kantola-cart-totals__table tr:last-child th,
.kantola-cart-totals__table tr:last-child td {
	border-bottom: 0;
}

.kantola-cart-totals__table tr.order-total th,
.kantola-cart-totals__table tr.order-total td {
	font-size: 17px;
	font-weight: 700;
	color: #111827;
	padding-top: 16px;
	border-top: 1px solid #e5e7eb;
}

.kantola-cart-totals__table .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

.kantola-cart-totals__table .woocommerce-shipping-methods li {
	margin: 0 0 6px;
}

.kantola-cart-totals__table .woocommerce-shipping-destination {
	font-size: 12px;
	color: #6b7280;
	margin-top: 6px;
}

.kantola-cart-totals__cta {
	margin-top: 16px;
}

.kantola-cart-totals__cta a.checkout-button,
.kantola-cart-totals__cta button.checkout-button,
.kantola-cart-totals__cta .wc-proceed-to-checkout a.button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 12px 22px;
	background: #111827;
	color: #ffffff;
	border: 1px solid #111827;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease;
}

.kantola-cart-totals__cta a.checkout-button:hover,
.kantola-cart-totals__cta a.checkout-button:focus,
.kantola-cart-totals__cta .wc-proceed-to-checkout a.button:hover,
.kantola-cart-totals__cta .wc-proceed-to-checkout a.button:focus {
	background: #1f2937;
	border-color: #1f2937;
	color: #ffffff;
}

/* === Checkout ========================================================= */

.kantola-checkout {
	margin: 0 0 24px;
}

.kantola-checkout__customer {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	margin: 0 0 20px;
}

@media (min-width: 900px) {
	.kantola-checkout__customer {
		grid-template-columns: 1fr 1fr;
	}
}

.kantola-checkout__col h3 {
	font-size: 16px;
	font-weight: 700;
	color: #111827;
	margin: 0 0 16px;
	letter-spacing: -.01em;
}

.kantola-checkout__review {
	padding: 22px 24px;
}

.kantola-checkout__review-body {
	margin-top: 8px;
}

/* WC review-order table inside checkout */
.kantola-checkout__review-body table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	margin: 0 0 16px;
}

.kantola-checkout__review-body table.shop_table th,
.kantola-checkout__review-body table.shop_table td {
	padding: 12px 0;
	border-bottom: 1px solid #f3f4f6;
	font-size: 14px;
	text-align: left;
	color: #111827;
}

.kantola-checkout__review-body table.shop_table td:last-child,
.kantola-checkout__review-body table.shop_table th:last-child {
	text-align: right;
}

.kantola-checkout__review-body table.shop_table tfoot tr.order-total th,
.kantola-checkout__review-body table.shop_table tfoot tr.order-total td {
	font-size: 17px;
	font-weight: 700;
	border-top: 1px solid #e5e7eb;
	padding-top: 16px;
}

/* Payment box */
.kantola-checkout__review-body #payment {
	background: #f9fafb;
	border: 1px solid #eef0f3;
	border-radius: 12px;
	padding: 16px 18px;
	margin: 0 0 12px;
}

.kantola-checkout__review-body #payment ul.payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.kantola-checkout__review-body #payment ul.payment_methods li {
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	margin: 0;
}

.kantola-checkout__review-body #payment ul.payment_methods li label {
	font-weight: 500;
	color: #111827;
	margin: 0;
	cursor: pointer;
	font-size: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.kantola-checkout__review-body #payment .payment_box {
	margin: 10px 0 0;
	padding: 12px 14px;
	background: #fff;
	border-radius: 8px;
	font-size: 13px;
	color: #4b5563;
}

.kantola-checkout__review-body #payment .form-row.place-order {
	margin: 16px 0 0;
	padding: 0;
}

.kantola-checkout__review-body #payment button.button,
.kantola-checkout__review-body #payment #place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 13px 22px;
	background: #111827;
	color: #ffffff;
	border: 1px solid #111827;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	transition: background-color .15s ease, border-color .15s ease;
}

.kantola-checkout__review-body #payment button.button:hover,
.kantola-checkout__review-body #payment #place_order:hover,
.kantola-checkout__review-body #payment #place_order:focus {
	background: #1f2937;
	border-color: #1f2937;
	color: #ffffff;
}

.kantola-checkout__review-body .woocommerce-terms-and-conditions-wrapper {
	margin: 16px 0 0;
}

/* === Confirmation card (e.g. lost-password sent) ===================== */

.kantola-confirmation {
	text-align: center;
	padding: 40px 28px;
}

.kantola-confirmation__icon {
	color: #10b981;
	margin-bottom: 14px;
	display: inline-flex;
}

.kantola-confirmation__title {
	font-size: 18px;
	font-weight: 700;
	color: #111827;
	margin: 0 0 8px;
}

.kantola-confirmation__text {
	font-size: 14px;
	color: #6b7280;
	margin: 0;
	line-height: 1.6;
}

/* === Auth pages (centered card layout) =============================== */

.kantola-auth {
	margin: 0 auto 24px;
}

.kantola-auth--single {
	max-width: 480px;
}

.kantola-auth--split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	max-width: 960px;
}

@media (min-width: 760px) {
	.kantola-auth--split {
		grid-template-columns: 1fr 1fr;
	}
}

.kantola-auth__panel {
	margin-bottom: 0;
}

.kantola-auth__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin: 6px 0 18px;
}

.kantola-auth a.kantola-auth__link {
	font-size: 13px;
	color: #2563eb;
	text-decoration: none;
	font-weight: 500;
}

.kantola-auth a.kantola-auth__link:hover {
	text-decoration: underline;
}

/* === Mobile tweaks (overrides + new sections) ========================= */

@media (max-width: 600px) {
	.kantola-cart {
		grid-template-columns: 1fr;
	}

	.kantola-cart__items,
	.kantola-cart-totals {
		padding: 16px 16px;
	}

	.kantola-cart-table thead {
		display: none;
	}

	.kantola-cart-table,
	.kantola-cart-table tbody,
	.kantola-cart-table tr,
	.kantola-cart-table td {
		display: block;
		width: 100%;
	}

	.kantola-cart-table tbody tr.woocommerce-cart-form__cart-item {
		display: grid;
		grid-template-columns: 72px 1fr;
		grid-template-areas:
			"remove   remove"
			"thumb    name"
			"thumb    price"
			"qty      subtotal";
		gap: 6px 12px;
		padding: 16px 0;
		border-bottom: 1px solid #f3f4f6;
	}

	.kantola-cart-table tbody td {
		padding: 0;
		border: 0;
		font-size: 13px;
	}

	.kantola-cart-table tbody .product-remove {
		grid-area: remove;
		text-align: right;
		width: auto;
	}

	.kantola-cart-table tbody .product-thumbnail {
		grid-area: thumb;
		width: auto;
	}

	.kantola-cart-table tbody .product-thumbnail img {
		width: 64px;
		height: 64px;
	}

	.kantola-cart-table tbody .product-name {
		grid-area: name;
	}

	.kantola-cart-table tbody .product-price {
		grid-area: price;
		text-align: left;
		color: #6b7280;
	}

	.kantola-cart-table tbody .product-price::before,
	.kantola-cart-table tbody .product-subtotal::before {
		content: attr(data-title) ': ';
		color: #6b7280;
		font-weight: 400;
		font-size: 12px;
	}

	.kantola-cart-table tbody .product-quantity {
		grid-area: qty;
		text-align: left;
	}

	.kantola-cart-table tbody .product-subtotal {
		grid-area: subtotal;
		text-align: right;
	}

	.kantola-cart-table tbody tr td.actions {
		display: block;
		padding: 16px 0 0;
	}

	.kantola-cart__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.kantola-cart__coupon {
		flex-direction: column;
	}
}
