/* GP Shop: WooCommerce pages (replaces WooCommerce's default front-end stylesheets). */
.woo-main { padding-top: 24px; }
.woo-main h1, .woocommerce-products-header__title { font-size: 28px; font-weight: 800; margin: 0 0 16px; }
.woocommerce-breadcrumb { font-size: 13px; color: #555; margin: 0 0 16px; }
.woocommerce-breadcrumb a { display: inline-block; padding: 4px 0; }
.term-description { color: #555; margin-bottom: 16px; }

/* Archive lists use the same grid as the home page */
.woo-main ul.products { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce-result-count { margin: 0 0 12px; font-size: 13px; color: #555; }
.woocommerce-ordering { margin: 0 0 20px; }
.woocommerce-ordering select { width: 100%; max-width: 100%; min-height: 44px; border: 1px solid #000; background: #fff; font: inherit; padding: 0 8px; border-radius: 0; }
.woocommerce-pagination { margin: 32px 0 0; }
.woocommerce-pagination ul, .nav-links { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; }
.woocommerce-pagination a, .woocommerce-pagination span, .nav-links a, .nav-links span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 10px; border: 1px solid #000; text-decoration: none;
}
.woocommerce-pagination .current, .nav-links .current { background: #000; color: #fff; }
@media (min-width: 769px) {
	.woo-main ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 20px; }
	.woo-main h1, .woocommerce-products-header__title { font-size: 32px; }
	.woocommerce-result-count { float: left; margin: 8px 0 0; }
	.woocommerce-ordering { float: right; margin: 0 0 20px; }
	.woocommerce-ordering select { width: auto; min-height: 36px; }
	.woo-main ul.products { clear: both; }
}
@media (min-width: 1100px) {
	.woo-main ul.products { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 40px 16px; }
	.woo-main .related ul.products, .woo-main .up-sells ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Buttons and form controls */
.button, button.button, a.button, input.button, button.single_add_to_cart_button, .wc-block-components-button:not(.is-link),
.woocommerce-form button[type="submit"], .woocommerce-Button, #place_order {
	display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 20px;
	background: #000; color: #fff; border: 1px solid #000; border-radius: 0; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer;
}
.button:hover, button.button:hover, a.button:hover { background: #333; color: #fff; }
.button.disabled, .button:disabled { opacity: .5; cursor: not-allowed; }
.woocommerce-form input:not([type="checkbox"]):not([type="radio"]), .woocommerce-address-fields input:not([type="checkbox"]), .woocommerce-EditAccountForm input:not([type="checkbox"]),
.woocommerce-form select, .woocommerce-address-fields select, .woocommerce-EditAccountForm select, .woocommerce-address-fields textarea, .quantity input.qty, .woocommerce-form textarea {
	width: 100%; max-width: 100%; min-height: 44px; padding: 8px 10px; border: 1px solid #000; border-radius: 0; background: #fff; font: inherit;
}
.quantity input.qty { width: 80px; }
.form-row { margin: 0 0 14px; }
.form-row label { display: block; margin-bottom: 4px; font-weight: 600; }
.form-row .required { color: #b00020; text-decoration: none; }
.woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.woocommerce-LostPassword a { display: inline-flex; align-items: center; min-height: 44px; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
	list-style: none; margin: 0 0 16px; padding: 12px 16px; border: 1px solid #000; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px;
}
.woocommerce-error { border-color: #b00020; color: #b00020; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; }

/* Single product */
div.product { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }
div.product .woocommerce-product-gallery { position: relative; margin: 0; }
div.product .woocommerce-product-gallery__wrapper { margin: 0; }
div.product .woocommerce-product-gallery img { width: 100%; height: auto; }
.woocommerce-product-gallery__trigger {
	position: absolute; top: 8px; right: 8px; z-index: 5; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;
	background: #fff; border: 1px solid #000; border-radius: 50%; text-decoration: none; font-size: 18px;
}
.flex-control-thumbs { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 0; margin: 8px 0 0; }
.flex-control-thumbs img { cursor: pointer; opacity: .6; }
.flex-control-thumbs img.flex-active { opacity: 1; }
.summary .gp-artist { margin: 0 0 4px; font-weight: 700; font-size: 18px; }
.summary .product_title { font-size: 28px; font-weight: 800; margin: 0 0 12px; }
.summary .price { font-size: 20px; font-weight: 700; margin: 0 0 16px; }
.summary .price del { font-weight: 400; color: #777; }
.summary .price ins { text-decoration: none; }
.summary .stock.out-of-stock { font-weight: 700; color: #777; }
.woocommerce-product-details__short-description { font-family: Georgia, "Times New Roman", serif; color: #444; margin-bottom: 16px; }
form.cart { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.product_meta { font-size: 13px; color: #555; display: grid; gap: 4px; }
.woocommerce-tabs, .related, .up-sells { grid-column: 1 / -1; }
.woocommerce-tabs ul.tabs { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 16px; padding: 0; margin: 0 0 16px; border-bottom: 1px solid #000; }
.woocommerce-tabs ul.tabs a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; font-weight: 600; }
.woocommerce-tabs ul.tabs li.active a { border-bottom: 3px solid #000; }
.woocommerce-tabs h2 { font-size: 20px; }
.related > h2, .up-sells > h2 { font-size: 26px; font-weight: 800; }
@media (min-width: 769px) {
	div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
	.summary .product_title { font-size: 34px; }
}

/* Tables (cart fallback, orders, account) */
table.shop_table, table.woocommerce-table, table.shop_attributes { width: 100%; border-collapse: collapse; }
table.shop_table th, table.shop_table td, table.shop_attributes th, table.shop_attributes td { padding: 10px 8px; border-bottom: 1px solid #ddd; text-align: left; vertical-align: top; }
@media (max-width: 768px) {
	table.shop_table_responsive thead { display: none; }
	table.shop_table_responsive tr { display: block; border-bottom: 1px solid #000; margin-bottom: 8px; }
	table.shop_table_responsive td, table.shop_table_responsive th { display: flex; justify-content: space-between; gap: 12px; border-bottom: 0; }
	table.shop_table_responsive td[data-title]::before { content: attr(data-title); font-weight: 700; }
}

/* My account */
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 24px; border-top: 1px solid #000; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid #ddd; }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 44px; text-decoration: none; font-weight: 600; }
.woocommerce-MyAccount-navigation .is-active a { text-decoration: underline; }
.u-columns { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); }
.u-columns h2 { font-size: 22px; margin-top: 0; }
.woocommerce-form-login, .woocommerce-form-register { border: 1px solid #000; padding: 16px; margin: 0; }
@media (min-width: 769px) {
	.u-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }
}

/* Block cart / checkout (WooCommerce 11 default): keep inside the viewport at 360px */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wc-block-cart, .wc-block-checkout { max-width: 100%; overflow-wrap: anywhere; }
.wc-block-components-sidebar-layout { margin: 0; }
.wc-block-components-text-input input, .wc-block-components-form .wc-block-components-text-input input, .wc-block-components-select .wc-blocks-components-select__select { border-radius: 0; }
.wc-block-cart-items img, .wc-block-components-order-summary img { max-width: 100%; height: auto; }
.wc-block-components-product-name, .wc-block-components-button { overflow-wrap: anywhere; }
.wc-block-components-button:not(.is-link) { min-height: 44px; }
.wc-block-components-quantity-selector { min-height: 44px; }
.wc-block-components-quantity-selector__button { min-width: 44px; min-height: 44px; }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { width: 100%; }
.entry__content { overflow-x: auto; }

/* Password reveal button on login forms */
.password-input { position: relative; display: block; }
.show-password-input {
	position: absolute; right: 0; top: 0; height: 44px; min-width: 44px; padding: 0 10px; background: none; border: 0; cursor: pointer; font: inherit; font-size: 13px; text-decoration: underline;
}
.show-password-input::after { content: "Show"; }
.show-password-input.display-password::after { content: "Hide"; }
.password-input input { padding-right: 64px !important; }

/* Tap targets (>= 44px) and cart table fit on 320px screens */
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { flex: none; width: 44px; min-width: 44px; min-height: 44px; }
.wc-block-cart-item__remove-link.wc-block-cart-item__remove-link { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
.wc-block-components-product-name.wc-block-components-product-name { display: inline-flex; align-items: center; min-height: 44px; }
.wc-block-components-checkbox label, .wc-block-components-checkbox .wc-block-components-checkbox__label { display: flex; align-items: center; min-height: 44px; }
.wc-block-checkout .wc-block-components-button.wp-element-button.wc-block-components-checkout-place-order-button, .wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button.wc-block-components-button:not(.is-link) { min-height: 44px; }
.wc-block-cart-items { table-layout: fixed; width: 100%; }
.wc-block-cart-items td, .wc-block-cart-item__product, .wc-block-components-product-metadata, .wc-block-components-product-metadata__description { min-width: 0; overflow-wrap: anywhere; }
.wc-block-components-product-metadata__description, .wc-block-components-product-metadata__description p { max-width: 100%; }
/* Quantity selector + remove button wrap inside the narrow product column instead of overflowing it (320px) */
.wc-block-cart-item__quantity.wc-block-cart-item__quantity { flex-wrap: wrap; max-width: 100%; }
/* Panel toggles ("Add coupons", "+ Add apartment, suite, etc.") are role=button tap targets too */
.wc-block-components-panel__button.wc-block-components-panel__button { display: flex; align-items: center; min-height: 44px; }
.wc-block-components-address-form__address_2-toggle.wc-block-components-address-form__address_2-toggle { display: inline-flex; align-items: center; min-height: 44px; }
/* WooCommerce's autofill-only hidden address_2 input is parked at left:-19984px; make it a clipped screen-reader-only box instead */
input.wc-block-components-address-form__address_2-hidden-input.wc-block-components-address-form__address_2-hidden-input { position: absolute; left: 0; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); padding: 0; border: 0; margin: 0; min-width: 0; min-height: 0; }

/* Reviews tab: list, star display and the review form */
#reviews { max-width: 720px; }
#reviews .woocommerce-Reviews-title { margin: 0 0 12px; }
#reviews .woocommerce-noreviews { margin: 0 0 24px; color: #555; }
#reviews ol.commentlist { list-style: none; margin: 0 0 32px; padding: 0; }
#reviews ol.commentlist li { padding: 16px 0; border-top: 1px solid #e3e3e3; }
#reviews ol.commentlist li:last-child { border-bottom: 1px solid #e3e3e3; }
#reviews .comment_container { display: flex; gap: 12px; align-items: flex-start; }
#reviews .comment_container img.avatar { width: 40px; height: 40px; border-radius: 50%; flex: none; }
#reviews .comment-text { flex: 1; min-width: 0; }
#reviews .comment-text .meta { margin: 4px 0 6px; font-size: 13px; color: #555; }
#reviews .comment-text .meta strong { color: #000; }
#reviews .comment-text .description p { margin: 0 0 8px; }

/* Read-only rating (WooCommerce prints a span whose width is the score) */
.star-rating { position: relative; display: inline-block; overflow: hidden; height: 1.2em; line-height: 1.2; font-size: 16px; letter-spacing: 2px; white-space: nowrap; color: transparent; vertical-align: middle; }
.star-rating::before { content: "\2605\2605\2605\2605\2605"; color: #d0d0d0; }
.star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; height: 100%; color: transparent; }
.star-rating span::before { content: "\2605\2605\2605\2605\2605"; color: #000; }

#review_form_wrapper { padding: 20px; border: 1px solid #000; }
#review_form .comment-reply-title { display: block; margin: 0 0 16px; font-size: 18px; font-weight: 800; }
#review_form .comment-form { display: grid; gap: 16px; }
#review_form .comment-form > p, #review_form .comment-form-rating { margin: 0; }
#review_form label { display: block; margin: 0 0 6px; font-weight: 600; }
#review_form .required { color: #b00020; }
#review_form .comment-notes, #review_form .logged-in-as { font-size: 13px; color: #555; }
#review_form textarea, #review_form input[type="text"], #review_form input[type="email"], #review_form select {
	display: block; width: 100%; max-width: 100%; min-height: 44px; padding: 10px; border: 1px solid #000; border-radius: 0; background: #fff; font: inherit;
}
#review_form textarea { min-height: 140px; resize: vertical; }
#review_form textarea:focus, #review_form input:focus, #review_form select:focus { outline: 2px solid #000; outline-offset: 2px; }
#review_form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 10px; }
#review_form .comment-form-cookies-consent input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; }
#review_form .comment-form-cookies-consent label { margin: 0; font-weight: 400; }
#review_form .form-submit input[type="submit"], #review_form #submit {
	display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 24px;
	background: #000; color: #fff; border: 1px solid #000; border-radius: 0; font: inherit; font-weight: 700; cursor: pointer; -webkit-appearance: none; appearance: none;
}
#review_form .form-submit input[type="submit"]:hover, #review_form #submit:hover { background: #333; }

/* Rating picker: WooCommerce's script replaces the select with five links */
#review_form p.stars { margin: 0; }
#review_form p.stars > span { display: inline-flex; }
#review_form p.stars a { position: relative; display: block; width: 44px; height: 44px; overflow: hidden; text-indent: -999em; text-decoration: none; }
#review_form p.stars a::before { content: "\2605"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-indent: 0; font-size: 28px; line-height: 1; color: #d0d0d0; }
#review_form p.stars:hover a::before { color: #000; }
#review_form p.stars a:hover ~ a::before { color: #d0d0d0; }
#review_form p.stars.selected a::before { color: #000; }
#review_form p.stars.selected a.active ~ a::before { color: #d0d0d0; }
#review_form p.stars.selected:hover a::before { color: #000; }
#review_form p.stars.selected:hover a:hover ~ a::before { color: #d0d0d0; }
#review_form p.stars a:focus-visible { outline: 2px solid #000; outline-offset: -2px; }
