/* Titip Book Calculator — checkout & thank-you inside the plugin shell.
   Covers the WooCommerce block checkout, the classic (shortcode) checkout and the classic
   thank-you template (which the Checkout block also uses on the order-received endpoint). */

.tbc-shell .tbc-shell-content { font-family: var(--tbc-sans); color: var(--tbc-fg); }


/* ============================================================ Base for WooCommerce's classic templates
   Block themes do not load WooCommerce's own form/table CSS (woocommerce-general / -layout),
   so everything the My account, login, address, order and classic-checkout templates need is here. */
.tbc-shell .woocommerce-notices-wrapper:empty { display: none; }
.tbc-shell .woocommerce-message, .tbc-shell .woocommerce-info, .tbc-shell .woocommerce-error {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--tbc-border);
	border-left: 3px solid var(--tbc-primary);
	background: var(--tbc-bg);
	color: var(--tbc-fg);
	font-size: 0.95rem;
}
.tbc-shell .woocommerce-error { border-left-color: var(--tbc-alert); }
.tbc-shell .woocommerce-error li + li { margin-top: 0.35rem; }
.tbc-shell .woocommerce-message .button, .tbc-shell .woocommerce-info .button { float: none; min-height: 40px; padding: 0.5rem 1rem; font-size: 0.7rem; }
.tbc-shell .wc-block-components-notice-banner { border-radius: 0; margin-bottom: 1.5rem; }

.tbc-shell .woocommerce form::after, .tbc-shell form.woocommerce-form::after, .tbc-shell form.woocommerce-EditAccountForm::after, .tbc-shell form.woocommerce-address-fields::after, .tbc-shell form.checkout::after { content: ""; display: block; clear: both; }
.tbc-shell .form-row { display: block; margin: 0 0 1.1rem; padding: 0; }
.tbc-shell .form-row label {
	display: block;
	margin: 0 0 0.4rem;
	font-family: var(--tbc-display);
	font-weight: 400;
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tbc-muted-fg);
}
.tbc-shell .form-row label .required { color: var(--tbc-alert); text-decoration: none; border: 0; }
.tbc-shell .form-row label .optional { font-family: var(--tbc-serif); font-style: italic; text-transform: none; letter-spacing: 0; color: hsl(30 18% 38% / 0.7); }
.tbc-shell .form-row .woocommerce-input-wrapper, .tbc-shell .form-row .password-input { display: block; position: relative; }
.tbc-shell .form-row .input-text,
.tbc-shell .form-row input[type="text"], .tbc-shell .form-row input[type="email"], .tbc-shell .form-row input[type="tel"], .tbc-shell .form-row input[type="password"], .tbc-shell .form-row input[type="number"], .tbc-shell .form-row input[type="url"],
.tbc-shell .form-row textarea, .tbc-shell .form-row select {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--tbc-border);
	border-radius: 0;
	background: var(--tbc-bg);
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
	color: var(--tbc-fg);
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
}
.tbc-shell .form-row select { padding-right: 2.25rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23574a3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.85rem center; }
.tbc-shell .form-row textarea { min-height: 6rem; resize: vertical; }
.tbc-shell .form-row .input-text:focus, .tbc-shell .form-row input:focus, .tbc-shell .form-row textarea:focus, .tbc-shell .form-row select:focus { outline: none; border-color: var(--tbc-primary); box-shadow: 0 0 0 1px var(--tbc-primary); }
.tbc-shell .form-row.woocommerce-invalid .input-text, .tbc-shell .form-row.woocommerce-invalid select { border-color: var(--tbc-alert); }
.tbc-shell .form-row em, .tbc-shell .form-row .description { display: block; margin-top: 0.4rem; font-family: var(--tbc-serif); font-style: italic; font-size: 0.85rem; line-height: 1.4; color: var(--tbc-muted-fg); }
.tbc-shell .form-row input[type="checkbox"], .tbc-shell .form-row input[type="radio"] { display: inline-block; width: auto; margin: 0; accent-color: var(--tbc-primary); }
.tbc-shell .woocommerce-form__label-for-checkbox, .tbc-shell .form-row label.checkbox {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--tbc-sans);
	font-size: 0.9rem;
	letter-spacing: 0;
	text-transform: none;
	color: var(--tbc-fg);
	cursor: pointer;
}
.tbc-shell .show-password-input { position: absolute; top: 50%; right: 0.75rem; transform: translateY(-50%); width: 1.25rem; height: 1.25rem; cursor: pointer; }
@media (min-width: 640px) {
	.tbc-shell .form-row-first, .tbc-shell .form-row-last { width: calc(50% - 0.5rem); }
	.tbc-shell .form-row-first { float: left; clear: both; }
	.tbc-shell .form-row-last { float: right; }
	.tbc-shell .form-row-wide { clear: both; }
}
.tbc-shell fieldset { margin: 1.5rem 0; padding: 1rem 1.25rem 0.25rem; border: 1px solid var(--tbc-border); min-width: 0; }
.tbc-shell legend { padding: 0 0.5rem; font-family: var(--tbc-display); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tbc-muted-fg); }

/* Buttons in classic templates */
.tbc-shell .woocommerce .button, .tbc-shell .woocommerce-button, .tbc-shell .woocommerce-Button, .tbc-shell button.button, .tbc-shell input.button, .tbc-shell a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0.85rem 1.5rem;
	border: 1px solid var(--tbc-primary);
	border-radius: 0;
	background: var(--tbc-primary);
	color: var(--tbc-primary-fg);
	font-family: var(--tbc-display);
	font-weight: 400;
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1.2;
	cursor: pointer;
	transition: filter 0.15s;
}
.tbc-shell .woocommerce .button:hover, .tbc-shell .woocommerce-button:hover, .tbc-shell button.button:hover, .tbc-shell a.button:hover { background: var(--tbc-primary); color: var(--tbc-primary-fg); filter: brightness(1.1); text-decoration: none; }
.tbc-shell .button:disabled, .tbc-shell .button.disabled { opacity: 0.4; cursor: not-allowed; }

/* Tables */
.tbc-shell table.shop_table { width: 100%; border-collapse: collapse; margin: 0 0 1.5rem; }
.tbc-shell table.shop_table th, .tbc-shell table.shop_table td { text-align: left; vertical-align: top; border-bottom: 1px solid hsl(34 22% 70% / 0.6); }
.tbc-shell table.shop_table tbody tr:last-child td { border-bottom-color: var(--tbc-border); }
.tbc-shell table.shop_table th:last-child, .tbc-shell table.shop_table td:last-child { text-align: right; }
.tbc-shell table.shop_table tfoot th { text-align: left; }
.tbc-shell table.shop_table tbody th { font-family: var(--tbc-sans); font-weight: 600; font-size: 0.85rem; letter-spacing: 0; text-transform: none; color: var(--tbc-fg); }
.tbc-shell mark { background: none; color: inherit; font-weight: 600; }
@media (max-width: 767px) {
	.tbc-shell table.shop_table_responsive thead { display: none; }
	.tbc-shell table.shop_table_responsive tr { display: block; border: 1px solid var(--tbc-border); border-bottom: 0; }
	.tbc-shell table.shop_table_responsive tbody tr:last-child { border-bottom: 1px solid var(--tbc-border); }
	.tbc-shell table.shop_table_responsive td { display: flex; justify-content: space-between; gap: 1rem; border: 0; border-bottom: 1px solid hsl(34 22% 70% / 0.5); text-align: right; }
	.tbc-shell table.shop_table_responsive td { justify-content: flex-start; }
	.tbc-shell table.shop_table_responsive td::before { content: attr(data-title); flex: 0 0 auto; margin-right: auto; font-family: var(--tbc-display); font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tbc-muted-fg); text-align: left; }
	.tbc-shell table.shop_table_responsive td.woocommerce-orders-table__cell-order-actions { justify-content: flex-end; }
	.tbc-shell table.shop_table_responsive td.woocommerce-orders-table__cell-order-actions::before { content: none; }
}

/* Select2 (country / state pickers) */
.tbc-shell .select2-container .select2-selection--single { height: auto; min-height: 46px; border: 1px solid var(--tbc-border); border-radius: 0; background: var(--tbc-bg); }
.tbc-shell .select2-container .select2-selection--single .select2-selection__rendered { padding: 0.7rem 2.25rem 0.7rem 0.85rem; line-height: 1.4; color: var(--tbc-fg); }
.tbc-shell .select2-container .select2-selection--single .select2-selection__arrow { height: 100%; right: 0.5rem; }
.tbc-shell .select2-container--focus .select2-selection--single, .tbc-shell .select2-container--open .select2-selection--single { border-color: var(--tbc-primary); box-shadow: 0 0 0 1px var(--tbc-primary); }
.select2-dropdown { border: 1px solid var(--tbc-border); border-radius: 0; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--tbc-primary); }

/* ============================================================ Block checkout */
.tbc-shell .wc-block-checkout { max-width: none; }
.tbc-shell .wc-block-checkout__form,
.tbc-shell .wc-block-components-sidebar-layout { max-width: none; }

/* Step titles */
.tbc-shell .wc-block-components-checkout-step__title,
.tbc-shell .wc-block-components-title,
.tbc-shell .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--tbc-display) !important;
	font-weight: 400 !important;
	font-size: 0.8rem !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tbc-fg);
}
.tbc-shell .wc-block-components-checkout-step__description { font-family: var(--tbc-serif); font-style: italic; color: var(--tbc-muted-fg); }
.tbc-shell .wc-block-components-checkout-step::before { display: none; }
.tbc-shell .wc-block-components-checkout-step { padding: 0; margin-top: 2.25rem; }
.tbc-shell .wc-block-components-checkout-step:first-of-type { margin-top: 0; }

/* Inputs */
.tbc-shell .wc-block-components-text-input input,
.tbc-shell .wc-block-components-text-input textarea,
.tbc-shell .wc-block-components-textarea textarea,
.tbc-shell .wc-block-components-country-input .components-combobox-control__input,
.tbc-shell .wc-block-components-state-input .components-combobox-control__input,
.tbc-shell .wc-block-components-select__container,
.tbc-shell .wc-block-components-combobox .components-combobox-control__input,
.tbc-shell .wc-block-components-form .wc-block-components-select .wc-block-components-select__select,
.tbc-shell .wc-block-components-totals-coupon__input input {
	border: 1px solid var(--tbc-border) !important;
	border-radius: 0 !important;
	background: var(--tbc-bg) !important;
	color: var(--tbc-fg) !important;
	font-family: var(--tbc-sans);
	box-shadow: none !important;
}
.tbc-shell .wc-block-components-text-input.is-active input,
.tbc-shell .wc-block-components-text-input input:focus,
.tbc-shell .wc-block-components-textarea textarea:focus,
.tbc-shell .components-combobox-control__input:focus,
.tbc-shell .wc-block-components-select__select:focus {
	border-color: var(--tbc-primary) !important;
	box-shadow: 0 0 0 1px var(--tbc-primary) !important;
	outline: none;
}
.tbc-shell .wc-block-components-text-input label,
.tbc-shell .wc-block-components-select__label,
.tbc-shell .wc-block-components-combobox-control label,
.tbc-shell .wc-block-components-textarea label { color: var(--tbc-muted-fg); }
.tbc-shell .wc-block-components-validation-error p { color: var(--tbc-alert); font-family: var(--tbc-serif); font-style: italic; }
.tbc-shell .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { border-color: var(--tbc-border); border-radius: 0; }
.tbc-shell .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--tbc-primary); border-color: var(--tbc-primary); }
.tbc-shell .wc-block-components-checkbox__mark { color: var(--tbc-primary-fg); }

/* Radio options (shipping / payment) */
.tbc-shell .wc-block-components-radio-control__option { border-color: var(--tbc-border); }
.tbc-shell .wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border-color: var(--tbc-primary); }
.tbc-shell .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { background: var(--tbc-primary); }
.tbc-shell .wc-block-components-radio-control-accordion-option,
.tbc-shell .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted { border-color: var(--tbc-border); border-radius: 0; }
.tbc-shell .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.tbc-shell .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 1px var(--tbc-primary); border-color: var(--tbc-primary); }
.tbc-shell .wc-block-checkout__shipping-method-option { border-radius: 0; border-color: var(--tbc-border); }
.tbc-shell .wc-block-checkout__shipping-method-option--selected { background: var(--tbc-primary); border-color: var(--tbc-primary); }

/* Buttons */
.tbc-shell .wc-block-components-checkout-place-order-button,
.tbc-shell .wc-block-components-button:not(.is-link):not(.wc-block-components-checkout-return-to-cart-button):not(.wc-block-components-address-form__address_2-toggle) {
	background: var(--tbc-primary) !important;
	color: var(--tbc-primary-fg) !important;
	border: 1px solid var(--tbc-primary) !important;
	border-radius: 0 !important;
	font-family: var(--tbc-display) !important;
	font-weight: 400 !important;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	min-height: 48px;
	box-shadow: none !important;
	transition: filter 0.15s;
}
.tbc-shell .wc-block-components-checkout-place-order-button:hover,
.tbc-shell .wc-block-components-button:not(.is-link):hover { filter: brightness(1.1); }
.tbc-shell .wc-block-components-checkout-place-order-button { width: 100%; }
.tbc-shell .wc-block-components-checkout-return-to-cart-button { display: none; }
.tbc-shell .wc-block-components-totals-coupon__button { min-height: 44px; }

/* Sidebar / order summary */
.tbc-shell .wc-block-checkout__sidebar {
	border: 1px solid var(--tbc-border);
	background: var(--tbc-bg);
	padding: 1.25rem 1.5rem;
	box-shadow: var(--tbc-offset) var(--tbc-offset) 0 hsl(355 55% 38% / 0.14);
}
.tbc-shell .wc-block-checkout__sidebar .wc-block-components-panel__button { font-family: var(--tbc-display); font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; }
.tbc-shell .wc-block-components-order-summary-item { padding: 1rem 0; border-color: var(--tbc-border); }
.tbc-shell .wc-block-components-order-summary-item .wc-block-components-order-summary-item__image { display: none; }
.tbc-shell .wc-block-components-order-summary-item .wc-block-components-order-summary-item__description { padding-left: 0; }
.tbc-shell .wc-block-components-order-summary-item .wc-block-cart-item__prices { display: none; }
.tbc-shell .wc-block-components-product-details > span { display: block; }
.tbc-shell .wc-block-components-product-details > span > [aria-hidden="true"] { display: none; }
.tbc-shell .wc-block-components-product-name { font-family: var(--tbc-display); font-size: 0.9rem; color: var(--tbc-fg); }
.tbc-shell .wc-block-components-product-details { margin: 0.35rem 0 0; }
.tbc-shell .wc-block-components-product-details__name { color: var(--tbc-muted-fg); }
.tbc-shell .wc-block-components-product-details__value { color: var(--tbc-fg); word-break: break-all; }
.tbc-shell .wc-block-components-product-metadata__description { display: none; }
.tbc-shell .wc-block-components-order-summary-item__total-price,
.tbc-shell .wc-block-components-totals-item__value,
.tbc-shell .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--tbc-display); font-weight: 400; color: var(--tbc-primary); }
.tbc-shell .wc-block-components-totals-item { font-size: 0.9rem; color: var(--tbc-muted-fg); }
.tbc-shell .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-family: var(--tbc-display); font-size: 0.85rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tbc-fg); }
.tbc-shell .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 1.35rem; text-shadow: 0.04em 0.04em 0 hsl(355 55% 38% / 0.25); }
.tbc-shell .wc-block-components-totals-wrapper { border-color: var(--tbc-border); }
.tbc-shell .wc-block-components-order-summary-item__quantity { display: none; }

/* Create-account option — make it prominent (customers were missing it) */
.tbc-shell .wc-block-checkout__create-account {
	margin-top: 0.75rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--tbc-border);
	border-left: 3px solid var(--tbc-primary);
	background: var(--tbc-paper);
}
.tbc-shell .wc-block-checkout__create-account .wc-block-components-checkbox__label {
	font-family: var(--tbc-display);
	font-size: 1rem;
	line-height: 1.35;
	letter-spacing: 0.01em;
	color: var(--tbc-fg);
}
.tbc-shell .wc-block-checkout__create-account .wc-block-components-checkbox__input[type="checkbox"] { width: 1.35rem; height: 1.35rem; }
.tbc-shell .wc-block-checkout__guest-checkout-notice { font-family: var(--tbc-serif); font-style: italic; font-size: 0.95rem; color: var(--tbc-muted-fg); }
.tbc-shell .wc-block-checkout__login-prompt { font-family: var(--tbc-display); font-size: 0.8rem; letter-spacing: 0.05em; }
/* Classic checkout: the "create an account?" checkbox row */
.tbc-shell .woocommerce-account-fields .create-account label,
.tbc-shell .woocommerce-account-fields > label.checkbox {
	font-family: var(--tbc-display);
	font-size: 1rem;
	letter-spacing: 0.01em;
	color: var(--tbc-fg);
}
.tbc-shell .woocommerce-account-fields .create-account { margin-top: 0.75rem; padding: 1rem 1.15rem; border: 1px solid var(--tbc-border); border-left: 3px solid var(--tbc-primary); background: var(--tbc-paper); }
.tbc-shell .woocommerce-account-fields .create-account input[type="checkbox"] { width: 1.2rem; height: 1.2rem; }

/* Notices */
.tbc-shell .wc-block-components-notice-banner { border-radius: 0; border-color: var(--tbc-border); }
.tbc-shell .wc-block-components-notice-banner.is-error { border-color: var(--tbc-alert); }

/* Links */
.tbc-shell .wc-block-checkout a { color: var(--tbc-primary); text-decoration: underline; text-underline-offset: 3px; }

/* ============================================================ Classic (shortcode) checkout */
.tbc-shell .woocommerce-checkout h3,
.tbc-shell .woocommerce h2, .tbc-shell .woocommerce h3 {
	font-family: var(--tbc-display);
	font-weight: 400;
	font-size: 0.85rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0 0 1rem;
}
.tbc-shell .woocommerce table.shop_table {
	border: 1px solid var(--tbc-border);
	border-radius: 0;
	border-collapse: collapse;
	background: var(--tbc-bg);
}
.tbc-shell .woocommerce table.shop_table th,
.tbc-shell .woocommerce table.shop_table td { border-color: var(--tbc-border); padding: 0.85rem 1rem; }
.tbc-shell .woocommerce table.shop_table th { font-family: var(--tbc-display); font-weight: 400; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tbc-muted-fg); }
.tbc-shell .woocommerce table.shop_table .product-name { font-family: var(--tbc-display); font-size: 0.9rem; }
.tbc-shell .woocommerce .variation dt, .tbc-shell .woocommerce .variation dd { font-family: var(--tbc-sans); font-size: 0.8rem; margin: 0 0.35rem 0 0; }
.tbc-shell .woocommerce .variation dt { color: var(--tbc-muted-fg); font-weight: 400; }
.tbc-shell .woocommerce .variation dd p { margin: 0; }
.tbc-shell .woocommerce .woocommerce-Price-amount { font-family: var(--tbc-display); color: var(--tbc-primary); }
.tbc-shell .woocommerce-checkout #payment { background: var(--tbc-paper); border: 1px solid var(--tbc-border); border-radius: 0; }
.tbc-shell .woocommerce-checkout #payment div.payment_box { background: var(--tbc-bg); border-radius: 0; }
.tbc-shell .woocommerce-checkout #payment div.payment_box::before { display: none; }
.tbc-shell .woocommerce-checkout #payment ul.payment_methods { border-color: var(--tbc-border); }
.tbc-shell .woocommerce #payment #place_order,
.tbc-shell .woocommerce button.button.alt,
.tbc-shell .woocommerce a.button.alt,
.tbc-shell .woocommerce input.button.alt,
.tbc-shell .woocommerce button.button {
	display: block;
	width: 100%;
	min-height: 48px;
	background: var(--tbc-primary);
	color: var(--tbc-primary-fg);
	border: 1px solid var(--tbc-primary);
	border-radius: 0;
	font-family: var(--tbc-display);
	font-weight: 400;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 1rem 1.5rem;
}
.tbc-shell .woocommerce #payment #place_order:hover,
.tbc-shell .woocommerce button.button.alt:hover { background: var(--tbc-primary); filter: brightness(1.1); color: var(--tbc-primary-fg); }
.tbc-shell .woocommerce-message, .tbc-shell .woocommerce-info, .tbc-shell .woocommerce-error { border-radius: 0; background: var(--tbc-bg); border: 1px solid var(--tbc-border); border-top-width: 3px; color: var(--tbc-fg); }
.tbc-shell .woocommerce-error { border-color: var(--tbc-alert); }
.tbc-shell .woocommerce-info { border-top-color: var(--tbc-primary); }
.tbc-shell .woocommerce-message::before, .tbc-shell .woocommerce-info::before { color: var(--tbc-primary); }
.tbc-shell .woocommerce-error::before { color: var(--tbc-alert); }
.tbc-shell .woocommerce-checkout .col2-set .col-1, .tbc-shell .woocommerce-checkout .col2-set .col-2 { float: none; width: auto; }
@media (min-width: 900px) {
	.tbc-shell .woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 3rem; align-items: start; }
	.tbc-shell .woocommerce-checkout form.checkout > .col2-set { grid-column: 1; }
	.tbc-shell .woocommerce-checkout form.checkout > #order_review_heading,
	.tbc-shell .woocommerce-checkout form.checkout > #order_review { grid-column: 2; }
	.tbc-shell .woocommerce-checkout form.checkout > #order_review { position: sticky; top: 5rem; }
}

/* ============================================================ Thank-you (classic template) */
.tbc-shell-thankyou .woocommerce-order { max-width: 52rem; margin: 0 auto; }
.tbc-thanks-head { text-align: center; margin-bottom: 1.5rem; }
.tbc-stamp {
	display: inline-block;
	margin-bottom: 1.5rem;
	padding: 0.5rem 1.25rem;
	border: 2px solid var(--tbc-primary);
	color: var(--tbc-primary);
	font-family: var(--tbc-display);
	font-size: 0.8rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	transform: rotate(-6deg);
	background: hsl(0 0% 100% / 0.6);
}
.tbc-thanks-title { font-family: var(--tbc-display); font-weight: 400; font-size: 2rem; line-height: 1.1; text-shadow: 0.04em 0.04em 0 hsl(355 55% 38% / 0.18); }
.tbc-thanks-brand { color: var(--tbc-primary); }
@media (min-width: 768px) { .tbc-thanks-title { font-size: 2.75rem; } }
.tbc-shell .woocommerce-thankyou-order-received {
	max-width: 36rem;
	margin: 0 auto 2rem;
	text-align: center;
	font-family: var(--tbc-serif);
	font-style: italic;
	font-weight: 500;
	font-size: 1.15rem;
	color: var(--tbc-fg);
}
.tbc-shell .woocommerce-thankyou-order-failed { text-align: center; color: var(--tbc-alert); font-family: var(--tbc-serif); font-style: italic; }
.tbc-shell ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	gap: 0.75rem;
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
}
.tbc-shell ul.woocommerce-order-overview li {
	float: none;
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid var(--tbc-border);
	border-right: 1px solid var(--tbc-border);
	background: var(--tbc-bg);
	font-family: var(--tbc-display);
	font-size: 0.65rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tbc-muted-fg);
}
.tbc-shell ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 0.35rem;
	font-family: var(--tbc-sans);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--tbc-fg);
	word-break: break-word;
}
.tbc-shell ul.woocommerce-order-overview li.total strong .woocommerce-Price-amount { font-family: var(--tbc-display); font-weight: 400; }
.tbc-shell .woocommerce-bacs-bank-details,
.tbc-shell .woocommerce-order-details,
.tbc-shell .woocommerce-customer-details { margin-top: 2rem; }
.tbc-shell .woocommerce-bacs-bank-details .wc-bacs-bank-details-heading,
.tbc-shell .woocommerce-bacs-bank-details .wc-bacs-bank-details-account-name,
.tbc-shell .woocommerce-order-details__title,
.tbc-shell .woocommerce-column__title { font-family: var(--tbc-display); font-weight: 400; font-size: 0.85rem; letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 1rem; }
.tbc-shell .woocommerce-bacs-bank-details .wc-bacs-bank-details { list-style: none; margin: 0; padding: 1rem 1.25rem; border: 1px solid var(--tbc-border); background: var(--tbc-bg); }
.tbc-shell .woocommerce-bacs-bank-details .wc-bacs-bank-details li { float: none; margin: 0 0 0.5rem; border: 0; padding: 0; font-size: 0.95rem; }
.tbc-shell .woocommerce-bacs-bank-details .wc-bacs-bank-details li strong { font-family: var(--tbc-display); font-weight: 400; }
.tbc-shell .woocommerce-customer-details address { border: 1px solid var(--tbc-border); border-radius: 0; background: var(--tbc-bg); padding: 1rem 1.25rem; font-style: normal; line-height: 1.6; }
.tbc-shell .woocommerce-customer-details .woocommerce-column { float: none; width: auto; }
.tbc-shell .woocommerce-customer-details .woocommerce-columns { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .tbc-shell .woocommerce-customer-details .woocommerce-columns--2 { grid-template-columns: 1fr 1fr; } }
.tbc-shell .woocommerce-customer-details .woocommerce-customer-details--phone::before,
.tbc-shell .woocommerce-customer-details .woocommerce-customer-details--email::before { color: var(--tbc-primary); }
.tbc-shell .woocommerce-order p:not([class]) { margin: 0.5rem 0 1rem; font-family: var(--tbc-serif); font-style: italic; color: var(--tbc-muted-fg); }
.tbc-thanks-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; margin-top: 2.5rem; }
.tbc-thanks-actions .tbc-btn-inline { min-width: 14rem; }

/* Fix-ups against WooCommerce's own layout rules */
.tbc-shell .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
.tbc-shell .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary { border: 0 !important; padding: 0 !important; }
.tbc-shell .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title { padding: 0 0 0.75rem; }
.tbc-shell .woocommerce-customer-details .col2-set::before,
.tbc-shell .woocommerce-customer-details .col2-set::after { display: none; content: none; }
.tbc-shell ul.woocommerce-order-overview li:last-of-type { border: 1px solid var(--tbc-border); }
.tbc-shell table.order_details .product-quantity { display: none; }
.tbc-shell table.order_details .wc-item-meta { margin: 0.5rem 0 0; padding-left: 0; list-style: none; font-size: 0.85rem; }
.tbc-shell table.order_details .wc-item-meta li { margin: 0 0 0.2rem; }
.tbc-shell table.order_details .wc-item-meta li strong { font-weight: 400; color: var(--tbc-muted-fg); }
.tbc-shell table.order_details .wc-item-meta li p { display: inline; margin: 0; font-style: normal; color: var(--tbc-fg); }

/* ============================================================ QRIS payment block (thank-you) */
.tbc-qris {
	display: grid;
	gap: 1.5rem;
	align-items: center;
	margin: 2rem 0;
	padding: 1.5rem;
	border: 1px solid var(--tbc-border);
	background: var(--tbc-bg);
	box-shadow: var(--tbc-offset) var(--tbc-offset) 0 hsl(355 55% 38% / 0.14);
}
@media (min-width: 700px) { .tbc-qris { grid-template-columns: 1.1fr 0.9fr; padding: 2rem; } }
.tbc-qris-heading { font-family: var(--tbc-display); font-weight: 400; font-size: 1.1rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--tbc-primary); margin: 0 0 0.75rem; }
.tbc-qris-text > p { margin: 0 0 0.75rem; font-family: var(--tbc-serif); font-size: 1.05rem; color: var(--tbc-fg); }
.tbc-qris-amount { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.85rem 1rem; border-left: 3px solid var(--tbc-primary); background: var(--tbc-paper); font-family: var(--tbc-sans) !important; }
.tbc-qris-amount > span { font-family: var(--tbc-display); font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tbc-muted-fg); }
.tbc-qris-amount strong, .tbc-qris-amount .woocommerce-Price-amount { font-family: var(--tbc-display); font-weight: 400; font-size: 1.6rem; color: var(--tbc-primary); }
.tbc-qris-ref { font-size: 0.85rem !important; font-style: italic; color: var(--tbc-muted-fg) !important; }
.tbc-qris-figure { margin: 0; text-align: center; }
.tbc-qris-figure img { display: inline-block; width: 100%; max-width: 300px; height: auto; border: 1px solid var(--tbc-border); background: #fff; }

/* ============================================================ My account */
.tbc-shell-account .woocommerce { display: block; }
.tbc-shell .woocommerce-form-login__rememberme { display: flex !important; align-items: center; gap: 0.5rem; }
.tbc-shell .woocommerce-form-register p, .tbc-shell .woocommerce-form-login p { font-size: 0.9rem; }
.tbc-shell #customer_login h2 { margin-bottom: 0.75rem; }
.tbc-shell .woocommerce-MyAccount-navigation { float: none; width: auto; margin-bottom: 1.5rem; }
.tbc-shell .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.tbc-shell .woocommerce-MyAccount-navigation li { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.tbc-shell .woocommerce-MyAccount-navigation a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 1rem;
	border: 1px solid var(--tbc-border);
	border-radius: 999px;
	background: var(--tbc-bg);
	font-family: var(--tbc-display);
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tbc-fg);
	text-decoration: none !important;
}
.tbc-shell .woocommerce-MyAccount-navigation li.is-active a,
.tbc-shell .woocommerce-MyAccount-navigation a:hover { background: var(--tbc-primary); border-color: var(--tbc-primary); color: var(--tbc-primary-fg); }
.tbc-shell .woocommerce-MyAccount-content { float: none; width: auto; }
.tbc-shell .woocommerce-MyAccount-content > p:first-child { font-family: var(--tbc-serif); font-size: 1.05rem; }
.tbc-shell .woocommerce-MyAccount-content a:not(.button) { color: var(--tbc-primary); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 900px) {
	body.logged-in .tbc-shell-account .woocommerce { display: grid; grid-template-columns: 14rem 1fr; gap: 2.5rem; align-items: start; }
	body.logged-in .tbc-shell-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	body.logged-in .tbc-shell-account .woocommerce::before, body.logged-in .tbc-shell-account .woocommerce::after { display: none; content: none; }
	.tbc-shell .woocommerce-MyAccount-navigation ul { flex-direction: column; }
	.tbc-shell .woocommerce-MyAccount-navigation a { width: 100%; }
}
/* Login / register */
.tbc-shell #customer_login { display: grid; gap: 2rem; }
.tbc-shell #customer_login::before, .tbc-shell #customer_login::after { display: none; content: none; }
.tbc-shell #customer_login .col-1, .tbc-shell #customer_login .col-2 { float: none; width: auto; }
@media (min-width: 800px) { .tbc-shell #customer_login { grid-template-columns: 1fr 1fr; gap: 3rem; } }
.tbc-shell form.woocommerce-form-login, .tbc-shell form.woocommerce-form-register, .tbc-shell form.woocommerce-ResetPassword, .tbc-shell form.woocommerce-EditAccountForm, .tbc-shell form.woocommerce-address-fields {
	margin: 0;
	padding: 1.5rem;
	border: 1px solid var(--tbc-border);
	border-radius: 0;
	background: var(--tbc-bg);
	box-shadow: var(--tbc-offset) var(--tbc-offset) 0 hsl(355 55% 38% / 0.14);
}
.tbc-shell .woocommerce-form-login__rememberme { display: block; margin: 0.5rem 0 1rem; font-family: var(--tbc-sans); font-size: 0.9rem; text-transform: none; letter-spacing: 0; }
.tbc-shell .woocommerce-privacy-policy-text { font-size: 0.85rem; color: var(--tbc-muted-fg); }
.tbc-shell .woocommerce-LostPassword { margin-top: 0.75rem; font-size: 0.9rem; }
.tbc-shell .woocommerce-LostPassword a { color: var(--tbc-primary); }
.tbc-shell .woocommerce-form-login .button, .tbc-shell .woocommerce-form-register .button, .tbc-shell .woocommerce-ResetPassword .button, .tbc-shell .woocommerce-EditAccountForm .button, .tbc-shell .woocommerce-address-fields .button { width: 100%; margin-top: 0.5rem; }
.tbc-shell .show-password-input { top: 50%; transform: translateY(-50%); }
/* Orders table */
.tbc-shell table.woocommerce-orders-table td, .tbc-shell table.woocommerce-orders-table th { vertical-align: middle; }
.tbc-shell table.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a { font-family: var(--tbc-display); color: var(--tbc-primary); text-decoration: none; }
.tbc-shell .woocommerce-orders-table__cell-order-actions .button {
	display: inline-flex;
	width: auto;
	min-height: 36px;
	padding: 0.4rem 0.9rem;
	background: transparent;
	color: var(--tbc-primary);
	border: 1px solid var(--tbc-primary);
	font-size: 0.7rem;
}
.tbc-shell .woocommerce-orders-table__cell-order-actions .button:hover { background: var(--tbc-primary); color: var(--tbc-primary-fg); }
.tbc-shell mark.order-status { background: none; color: var(--tbc-primary); font-weight: 600; }
.tbc-shell .woocommerce-pagination .button, .tbc-shell .woocommerce-MyAccount-content .button:not(.woocommerce-orders-table__cell-order-actions .button) { display: inline-flex; width: auto; }
.tbc-shell .woocommerce-Addresses .woocommerce-Address { padding: 1rem 1.25rem; border: 1px solid var(--tbc-border); background: var(--tbc-bg); }
.tbc-shell .woocommerce-Address-title h2, .tbc-shell .woocommerce-Address-title h3 { display: inline-block; }
.tbc-shell .woocommerce-Address-title .edit { float: right; font-size: 0.8rem; color: var(--tbc-primary); }

/* My account — content details */
.tbc-shell .woocommerce-MyAccount-content > h2, .tbc-shell .woocommerce-MyAccount-content > h3 { margin-top: 1.5rem; }
.tbc-shell .woocommerce-MyAccount-content > .woocommerce-notices-wrapper + h2 { margin-top: 0; }
.tbc-shell .woocommerce-MyAccount-content .woocommerce-Addresses { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .tbc-shell .woocommerce-MyAccount-content .woocommerce-Addresses.col2-set { grid-template-columns: 1fr 1fr; } }
.tbc-shell .woocommerce-Addresses::before, .tbc-shell .woocommerce-Addresses::after { display: none; content: none; }
.tbc-shell .woocommerce-Addresses .col-1, .tbc-shell .woocommerce-Addresses .col-2 { float: none; width: auto; }
.tbc-shell .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 0.75rem; }
.tbc-shell .woocommerce-Address-title h2, .tbc-shell .woocommerce-Address-title h3 { margin: 0; }
.tbc-shell .woocommerce-Address address { min-height: 5rem; }
.tbc-shell .woocommerce-EditAccountForm .button, .tbc-shell .woocommerce-address-fields .button { width: auto; min-width: 14rem; }
.tbc-shell .woocommerce-view-order .woocommerce-MyAccount-content > p { font-family: var(--tbc-serif); font-size: 1.05rem; margin: 0 0 1.5rem; }
.tbc-shell .woocommerce-order-details__title { margin-top: 0; }
.tbc-shell .woocommerce-orders-table__cell-order-actions .button { min-height: 36px; padding: 0.4rem 0.9rem; font-size: 0.7rem; background: transparent; color: var(--tbc-primary); }
.tbc-shell .woocommerce-orders-table__cell-order-actions .button:hover { background: var(--tbc-primary); color: var(--tbc-primary-fg); }
.tbc-shell .woocommerce-pagination { display: flex; gap: 0.5rem; margin-top: 1rem; }
