/* ==========================================================================
   Tourastic — WooCommerce skin (cart, checkout, shop, account)
   Only what CSS can reach; markup stays WooCommerce-native.
   ========================================================================== */

.tt-woo { min-width: 0; }
.woocommerce .tt-crumbs { margin-bottom: 20px; }

/* Buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
	background: var(--tt-blue); color: #fff; border-radius: var(--tt-r-pill); font-weight: 700;
	padding: 12px 22px; border: 0; transition: all var(--tt-fast); line-height: 1.2;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #respond input#submit:hover {
	background: var(--tt-blue-600); color: #fff; transform: translateY(-1px); box-shadow: var(--tt-shadow);
}
.woocommerce .checkout button#place_order, .woocommerce #payment #place_order { background: var(--tt-accent); }
.woocommerce .checkout button#place_order:hover { background: var(--tt-accent-600); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
	border-top: 0; border-radius: var(--tt-r); padding: 14px 18px 14px 44px; box-shadow: var(--tt-shadow-sm);
	font-size: var(--tt-fs-sm);
}
.woocommerce-message { border-left: 4px solid var(--tt-success); background: var(--tt-success-050); }
.woocommerce-info { border-left: 4px solid var(--tt-blue); background: var(--tt-blue-050); }
.woocommerce-error { border-left: 4px solid var(--tt-danger); background: #fdecec; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--tt-blue); }
.woocommerce-message::before { color: var(--tt-success); }

/* Shop product grid */
.woocommerce ul.products li.product {
	background: var(--tt-surface); border: 1px solid var(--tt-line-2); border-radius: var(--tt-r);
	padding: 14px; transition: transform var(--tt-fast), box-shadow var(--tt-fast); text-align: left;
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--tt-shadow-md); }
.woocommerce ul.products li.product img { border-radius: var(--tt-r-sm); margin-bottom: 12px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: var(--tt-fs-md); padding: 0; color: var(--tt-ink); }
.woocommerce ul.products li.product .price { color: var(--tt-ink); font-weight: 800; }
.woocommerce ul.products li.product .price del { color: var(--tt-faint); font-weight: 500; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce span.onsale { background: var(--tt-accent); border-radius: var(--tt-r-pill); min-height: 0; min-width: 0; padding: 4px 12px; font-weight: 800; }

/* Price / rating */
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--tt-ink); font-weight: 800; }
.woocommerce .star-rating span::before, .woocommerce p.stars a::before { color: var(--tt-amber); }

/* Tables (cart, order) */
.woocommerce table.shop_table { border-radius: var(--tt-r); border-color: var(--tt-line); overflow: hidden; }
.woocommerce table.shop_table th { background: var(--tt-surface-2); color: var(--tt-ink); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color: var(--tt-line-2); }
.woocommerce-cart table.cart img { border-radius: var(--tt-r-sm); }
.tt-cartitem { display: inline-flex; flex-direction: column; }
.tt-cartitem a { font-weight: 700; color: var(--tt-ink); }
.tt-cartitem a:hover { color: var(--tt-blue); }
.tt-cartitem__type { color: var(--tt-muted); font-size: var(--tt-fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.woocommerce .variation, .woocommerce dl.variation, .woocommerce-cart .cart_item dl { font-size: var(--tt-fs-sm); color: var(--tt-muted); margin: 6px 0 0; }
.woocommerce-cart .cart_item dl dt { font-weight: 700; color: var(--tt-body); }

/* Cart totals / order review */
.woocommerce-cart .cart-collaterals .cart_totals, .woocommerce-checkout #order_review {
	background: var(--tt-surface); border: 1px solid var(--tt-line); border-radius: var(--tt-r); padding: 20px;
}
.woocommerce-checkout #order_review_heading { margin-top: 0; }

/* Forms */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .select2-container--default .select2-selection--single {
	border: 1.5px solid var(--tt-line); border-radius: var(--tt-r-sm); padding: 11px 14px; font-family: inherit; min-height: 46px;
	background: #fff; color: var(--tt-ink);
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus {
	border-color: var(--tt-blue); outline: none; box-shadow: var(--tt-ring);
}
.woocommerce-checkout #payment { background: var(--tt-surface-2); border-radius: var(--tt-r); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--tt-line); }

/* Coupon */
.woocommerce-cart .coupon input { border-radius: var(--tt-r-pill) 0 0 var(--tt-r-pill); }

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation ul { border: 1px solid var(--tt-line); border-radius: var(--tt-r); overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--tt-line-2); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 16px; color: var(--tt-body); font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--tt-blue-050); color: var(--tt-blue);
}

/* Quantity */
.woocommerce .quantity .qty { border: 1.5px solid var(--tt-line); border-radius: var(--tt-r-sm); min-height: 44px; }

/* Tabs on single product */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--tt-surface); border-bottom-color: var(--tt-surface); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--tt-ink); font-weight: 700; }

@media (max-width: 560px) {
	.woocommerce a.button, .woocommerce button.button { width: 100%; text-align: center; }
}

/* ==========================================================================
   v2 — compact, on-brand WooCommerce to match the theme
   ========================================================================== */
.woocommerce, .woocommerce-page { font-size: var(--tt-fs-base); color: var(--tt-body); }
.tt-woo { max-width: var(--tt-container); margin: 0 auto; }
.woocommerce .button, .woocommerce button.button { font-size: 13px; padding: 12px 20px; box-shadow: none; }
.woocommerce h1, .woocommerce h2, .woocommerce h3 { font-family: var(--tt-font-display); letter-spacing: -.02em; }

/* Cart / checkout as a two-column layout on wide screens */
.woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce { display: block; }
@media (min-width: 981px) {
	.woocommerce-cart form.woocommerce-cart-form { }
	.woocommerce-cart .cart-collaterals { width: 100%; }
	.woocommerce-cart .cart-collaterals .cart_totals { float: right; width: 42%; }
	.woocommerce .checkout.woocommerce-checkout { display: grid; grid-template-columns: 1.3fr .9fr; gap: 30px; align-items: start; }
	.woocommerce .checkout.woocommerce-checkout #customer_details { grid-column: 1; }
	.woocommerce .checkout.woocommerce-checkout #order_review, .woocommerce .checkout.woocommerce-checkout #order_review_heading { grid-column: 2; }
	.woocommerce .checkout.woocommerce-checkout #order_review { position: sticky; top: calc(var(--tt-header-h) + 16px); }
}

/* Cards / tables */
.woocommerce table.shop_table { border-radius: var(--tt-r); font-size: var(--tt-fs-sm); }
.woocommerce table.shop_table th { font-family: var(--tt-font-display); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--tt-muted); }
.woocommerce-cart table.cart td.product-thumbnail img { width: 64px; border-radius: var(--tt-r-sm); }
.woocommerce .cart_totals h2, .woocommerce #order_review_heading { font-size: var(--tt-fs-lg); }
.woocommerce .cart_totals .order-total .amount, .woocommerce-checkout .order-total .amount { color: var(--tt-accent); font-weight: 800; }

/* Empty cart / messages */
.cart-empty.woocommerce-info { text-align: center; }
.woocommerce .return-to-shop .button { background: var(--tt-accent); }

/* Forms compact */
.woocommerce form .form-row label { font-size: 13px; font-weight: 600; color: var(--tt-ink); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select { min-height: 44px; font-size: 14px; }

/* Shop toolbar */
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering select { font-size: 13px; }
.woocommerce ul.products li.product .button { width: 100%; margin-top: 8px; }

/* Account dashboard — works for BOTH the classic account and the block account */
body.woocommerce-account .tt-prose { max-width: 1120px; }
.woocommerce-account .woocommerce,
.wp-block-woocommerce-my-account { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 30px; align-items: start; }
/* Kill WooCommerce's clearfix pseudo-elements so they don't become grid cells. */
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after,
.wp-block-woocommerce-my-account::before, .wp-block-woocommerce-my-account::after { content: none !important; display: none !important; }
/* Undo WooCommerce's default float widths so the nav fills its grid column. */
.woocommerce-MyAccount-navigation { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce-MyAccount-content { width: auto !important; float: none !important; min-width: 0; margin: 0 !important; }
.woocommerce-MyAccount-navigation ul { list-style: none !important; margin: 0 !important; padding: 0 !important;
	border: 1px solid var(--tt-line); border-radius: var(--tt-r); background: var(--tt-surface); width: 100%; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--tt-line-2); margin: 0 !important; width: 100%; float: none !important; }
.woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 12px 16px; color: var(--tt-body); font-weight: 600; white-space: nowrap; }
.woocommerce-MyAccount-navigation li:first-child a { border-radius: var(--tt-r) var(--tt-r) 0 0; }
.woocommerce-MyAccount-navigation li:last-child a { border-radius: 0 0 var(--tt-r) var(--tt-r); }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { background: var(--tt-blue-050); color: var(--tt-blue); }
@media (max-width: 780px) {
	.woocommerce-account .woocommerce, .wp-block-woocommerce-my-account { grid-template-columns: 1fr; }
}

/* ==========================================================================
   WooCommerce BLOCK cart & checkout (Store API) — on-brand
   ========================================================================== */
.wp-block-woocommerce-checkout, .wp-block-woocommerce-cart { font-size: var(--tt-fs-base); color: var(--tt-body); }
.wc-block-components-title, .wc-block-components-checkout-step__title {
	font-family: var(--tt-font-display) !important; color: var(--tt-ink) !important; letter-spacing: -.02em; }

/* Inputs */
.wc-block-components-text-input input.input-text,
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-select .wc-blocks-components-select__container,
.wc-block-components-combobox .components-form-token-field__input-container,
.wc-block-components-address-form input, .wc-block-components-address-form select {
	border-radius: var(--tt-r-sm) !important; border-color: var(--tt-line) !important; min-height: 46px; }
.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:focus {
	border-color: var(--tt-blue) !important; box-shadow: var(--tt-ring) !important; }
.wc-block-components-text-input label, .wc-block-components-checkbox__label { color: var(--tt-muted); }

/* Primary buttons: coral pill */
.wc-block-components-button.contained,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--tt-accent) !important; color: #fff !important; border-radius: var(--tt-r-pill) !important;
	font-weight: 700 !important; font-size: 14px !important; padding: 14px 24px !important; box-shadow: none !important; }
.wc-block-components-button.contained:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--tt-accent-600) !important; }
.wc-block-components-button:not(.contained) { color: var(--tt-blue) !important; }

/* Order summary card */
.wc-block-components-sidebar, .wc-block-checkout__sidebar, .wp-block-woocommerce-cart-order-summary-block {
	background: var(--tt-surface); border: 1px solid var(--tt-line); border-radius: var(--tt-r); padding: 20px; box-shadow: var(--tt-shadow-sm); }
.wc-block-components-order-summary-item__image img { border-radius: var(--tt-r-sm); }
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata__description { display: none; } /* hide any stray product description */
.wc-block-components-totals-item__value { font-weight: 700; color: var(--tt-ink); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--tt-accent); font-weight: 800; }
.wc-block-components-product-name { font-weight: 700; color: var(--tt-ink); }
.wc-block-components-product-price__value { color: var(--tt-ink); }

/* Panels / coupon */
.wc-block-components-panel { border-radius: var(--tt-r-sm); border-color: var(--tt-line); }
.wc-block-components-notice-banner { border-radius: var(--tt-r-sm); }

/* Radio payment options */
.wc-block-components-radio-control__option { border-radius: var(--tt-r-sm); }

/* Order-summary item: compact image + roomy text so names don't wrap per word.
   (We deliberately DON'T touch the block's column flex — WooCommerce already
   lays the checkout out as a responsive two-column, and overriding it breaks it.) */
.wc-block-components-order-summary-item__image { width: 48px !important; height: 48px !important; }
.wc-block-components-order-summary-item__image img { width: 48px; height: 48px; object-fit: cover; }
.wc-block-components-order-summary-item__description { min-width: 0; }
.wc-block-components-product-name { overflow-wrap: anywhere; line-height: 1.35; }
.wc-block-components-product-metadata, .wc-block-components-product-metadata__description { font-size: 12px; color: var(--tt-muted); }

/* Widen the container on WooCommerce block pages (they render inside .tt-prose,
   which is capped at 760px for reading — too narrow for a two-column checkout). */
body.woocommerce-checkout .tt-prose,
body.woocommerce-cart .tt-prose { max-width: 960px; }

/* Column ratio 55 / 45 (only when the block is in its two-column "is-large" mode).
   Using flex-grow ratios with a 0 basis keeps the gap intact and never wraps. */
.wc-block-components-sidebar-layout.is-large .wc-block-components-main { flex: 55 1 0% !important; }
.wc-block-components-sidebar-layout.is-large .wc-block-components-sidebar { flex: 45 1 0% !important; }

/* ==========================================================================
   Partner dashboards (Affiliate + Vendor) in My Account
   ========================================================================== */
.tt-partner h3 { font-family: var(--tt-font-display); font-size: var(--tt-fs-lg); margin: 0 0 6px; }
.tt-partner > p { color: var(--tt-muted); }
.tt-partner__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.tt-partner__actions { display: flex; gap: 8px; }
.tt-partner__form { display: grid; gap: 14px; max-width: 560px; margin-top: 12px; }
.tt-partner__linkbox { background: var(--tt-surface-2); border: 1px solid var(--tt-line); border-radius: var(--tt-r); padding: 16px; margin: 14px 0; }
.tt-partner__linkbox label { display: block; font-size: 12px; font-weight: 700; color: var(--tt-ink); margin-bottom: 6px; }
.tt-partner__copy { display: flex; gap: 8px; }
.tt-partner__copy input { flex: 1; border: 1.5px solid var(--tt-line); border-radius: var(--tt-r-sm); padding: 10px 12px; font-size: 13px; background: #fff; color: var(--tt-ink); }
.tt-partner__hint { margin: 8px 0 0; font-size: 12.5px; color: var(--tt-muted); }
.tt-partner__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 16px 0; }
.tt-partner--vendor .tt-partner__stats { grid-template-columns: repeat(3, 1fr); }
.tt-partner__stat { background: var(--tt-surface); border: 1px solid var(--tt-line); border-radius: var(--tt-r); padding: 14px 16px; }
.tt-partner__stat b { display: block; font-family: var(--tt-font-display); font-size: var(--tt-fs-lg); color: var(--tt-ink); }
.tt-partner__stat span { font-size: 12px; color: var(--tt-muted); }
.tt-partner__subhead { font-size: var(--tt-fs-md); margin: 22px 0 10px; }
.tt-partner__table { width: 100%; border-collapse: collapse; font-size: 13px; }
.tt-partner__table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--tt-muted); padding: 8px 10px; border-bottom: 1px solid var(--tt-line); }
.tt-partner__table td { padding: 10px; border-bottom: 1px solid var(--tt-line-2); }
.tt-partner__vendor { }

/* Status pills (shared front + admin) */
.tt-pill { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; text-transform: capitalize;
	background: var(--tt-surface-2); color: var(--tt-muted); border: 1px solid var(--tt-line); }
.tt-pill--approved, .tt-pill--publish, .tt-pill--paid { background: var(--tt-accent-050); color: var(--tt-accent-600); border-color: transparent; }
.tt-pill--pending, .tt-pill--draft { background: #fff7e6; color: #b7791f; border-color: transparent; }
.tt-pill--rejected { background: #fdecec; color: var(--tt-danger); border-color: transparent; }

.tt-book__vendor { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--tt-muted); margin: -6px 0 12px; }
.tt-book__vendor .tt-icon { color: var(--tt-accent); }

@media (max-width: 560px) {
	.tt-partner__stats, .tt-partner--vendor .tt-partner__stats { grid-template-columns: 1fr 1fr; }
}
