/* ==========================================================================
   Peter Hyderabad — WooCommerce
   Loaded after WooCommerce core + block styles so these win.

   1. Product grid (shop / category / related)
   2. Shop & category headers
   3. Single product
   4. Cart (classic + block)
   5. Checkout (classic + block)
   6. My account
   7. Notices, forms, misc
   ========================================================================== */

/* 1. Product grid --------------------------------------------------------- */

/* The WooCommerce float grid is dequeued; force any stray width/float off so
   the CSS grid fully controls the cards. */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(5, 1fr);
	gap: clamp(16px, 1.6vw, 28px) var(--ph-gap);
	margin: 0 0 8px !important;
	padding: 0 !important;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
}

/* Card media never collapses now */
.ph-card__media { aspect-ratio: 4 / 5; }
.ph-card__media img,
.woocommerce ul.products li.product .ph-card__img {
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	object-fit: cover;
	box-shadow: none !important;
}

/* Badges sit top-left, wishlist top-right — clear of each other */
.woocommerce ul.products li.product .ph-card__badges {
	max-width: calc(100% - 46px);
}
.woocommerce ul.products li.product .ph-card__wish {
	background: rgba(255, 255, 255, .92);
}

/* Keep WooCommerce from injecting its own title/price/button markup styles */
.woocommerce ul.products li.product .ph-card__title a { color: var(--ph-ink); }
.woocommerce ul.products li.product .price { color: inherit; font-size: inherit; }
.woocommerce ul.products li.product .button { margin: 0; }

/* The loop add-to-cart sits in the hover strip */
.woocommerce ul.products li.product .ph-card__quick .button {
	display: block;
	width: 100%;
	font-size: 11px;
	padding: 11px 8px;
}
.woocommerce ul.products li.product .added_to_cart { color: #fff; }

/* Responsive columns (mirror the homepage wall) */
@media (max-width: 1280px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 860px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); }
}

/* 2. Shop & category headers --------------------------------------------- */

.woocommerce-products-header {
	text-align: center;
	margin-bottom: clamp(18px, 2.4vw, 30px);
}
.woocommerce-products-header__title.page-title {
	font-family: var(--ph-display);
	font-size: clamp(24px, 3.4vw, 44px);
	font-weight: 800;
	letter-spacing: -.03em;
	text-transform: uppercase;
	margin: 0;
}
.term-description {
	max-width: 60ch;
	margin: 10px auto 0;
	color: var(--ph-mute);
	font-size: 14px;
}

/* Toolbar row: breadcrumb left is above; ordering right */
.woocommerce .woocommerce-ordering {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 22px;
}
.woocommerce .woocommerce-ordering select {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid var(--ph-line);
	border-radius: var(--ph-radius);
	padding: 10px 38px 10px 14px;
	font-size: 13px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230E0E0E' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
}

.ph-crumbs { text-align: left; margin-bottom: 16px; }

/* 3. Single product ------------------------------------------------------- */

.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 460px) 1fr;
	gap: clamp(28px, 4vw, 64px);
	align-items: start;
	max-width: 1240px;
	margin-inline: auto;
}

/* Cap the gallery so a tall image doesn't dominate the page */
.single-product div.product .woocommerce-product-gallery {
	width: 100% !important;
	max-width: 460px;
	margin: 0 !important;
	float: none !important;
	position: relative;
}
.single-product .woocommerce-product-gallery__wrapper { margin: 0; }
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image a {
	display: block;
}
.single-product .woocommerce-product-gallery__image img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--ph-radius);
	background: var(--ph-cloud);
}
.single-product .woocommerce-product-gallery .flex-viewport { border-radius: var(--ph-radius); }
.single-product .flex-control-thumbs {
	display: flex;
	gap: 8px;
	margin: 10px 0 0;
	padding: 0;
}
.single-product .flex-control-thumbs li { width: 64px; list-style: none; }
.single-product .flex-control-thumbs img { border-radius: var(--ph-radius); opacity: .6; }
.single-product .flex-control-thumbs img.flex-active,
.single-product .flex-control-thumbs img:hover { opacity: 1; }

.single-product .woocommerce-product-gallery__trigger {
	top: 12px; right: 12px;
	background: rgba(255, 255, 255, .92);
	border-radius: 999px;
}

.single-product div.product .summary {
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
}
.single-product .product_title {
	font-size: clamp(20px, 2.4vw, 32px);
	font-weight: 700;
	letter-spacing: -.02em;
	margin-bottom: 8px;
}
.single-product .woocommerce-product-details__short-description {
	color: var(--ph-mute);
	font-size: 14.5px;
	margin-bottom: 18px;
}

.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .upsells { grid-column: 1 / -1; }

.single-product .related, .single-product .upsells { margin-top: clamp(40px, 6vw, 80px); }

@media (max-width: 900px) {
	.single-product div.product { grid-template-columns: 1fr; }
	.single-product div.product .woocommerce-product-gallery { max-width: 460px; margin-inline: auto !important; }
}

/* 4. Cart ----------------------------------------------------------------- */

.woocommerce-cart .ph-wc-content,
.woocommerce-checkout .ph-wc-content { max-width: 1200px; margin-inline: auto; }

.woocommerce-cart table.cart img { width: 64px; border-radius: var(--ph-radius); }
.woocommerce-cart .cart_totals { max-width: 420px; margin-left: auto; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: block; text-align: center; }

/* Block cart / checkout: give the summary room and stop the per-letter wrap */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { max-width: 1200px; margin-inline: auto; }

.wc-block-components-sidebar-layout {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(24px, 4vw, 56px);
	align-items: flex-start;
}
.wc-block-components-sidebar-layout .wc-block-components-main {
	flex: 1 1 440px;
	min-width: 0;
}
.wc-block-components-sidebar-layout .wc-block-components-sidebar {
	flex: 0 1 400px;
	min-width: 320px;
	max-width: 440px;
}

/* Order summary: image | name | total, name reads normally */
.wc-block-components-order-summary-item {
	display: grid;
	grid-template-columns: 56px 1fr auto;
	gap: 12px;
	align-items: start;
}
.wc-block-components-order-summary-item__image { width: 56px; }
.wc-block-components-order-summary-item__image img { border-radius: var(--ph-radius); }
.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary-item__description *,
.wc-block-components-product-name,
.wc-block-components-product-metadata {
	word-break: normal !important;
	overflow-wrap: anywhere !important;
	hyphens: none !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.wc-block-components-product-name { font-size: 13.5px; line-height: 1.35; }

.wc-block-components-order-summary,
.wc-block-components-totals-wrapper {
	border: 1px solid var(--ph-line);
	border-radius: var(--ph-radius);
	background: var(--ph-cloud);
}
.wc-block-components-order-summary { padding: 16px; }

/* 5. Checkout ------------------------------------------------------------- */

.woocommerce-checkout .ph-pagehead--wc { text-align: left; margin-bottom: 24px; }

/* Classic (shortcode) checkout */
.woocommerce-checkout form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: 1fr minmax(320px, 420px);
	gap: clamp(24px, 4vw, 56px);
	align-items: start;
}
.woocommerce-checkout #customer_details { grid-column: 1; }
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading { grid-column: 2; }
.woocommerce-checkout #order_review {
	border: 1px solid var(--ph-line);
	border-radius: var(--ph-radius);
	background: var(--ph-cloud);
	padding: 18px;
	position: sticky;
	top: calc(var(--ph-header-h) + 16px);
}
.woocommerce-checkout #order_review_heading {
	font-family: var(--ph-display);
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	margin: 0 0 10px;
}
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td { padding: 10px 6px; font-size: 13.5px; }

@media (max-width: 860px) {
	.woocommerce-checkout form.checkout.woocommerce-checkout { grid-template-columns: 1fr; }
	.woocommerce-checkout #order_review,
	.woocommerce-checkout #order_review_heading { grid-column: 1; }
	.woocommerce-checkout #order_review { position: static; }
	.wc-block-components-sidebar-layout .wc-block-components-sidebar { flex-basis: 100%; max-width: none; }
}

/* Payment box */
.woocommerce-checkout #payment,
.wc-block-checkout__payment-method {
	background: #fff;
	border: 1px solid var(--ph-line);
	border-radius: var(--ph-radius);
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--ph-line); }
.woocommerce #payment #place_order,
.wc-block-components-checkout-place-order-button {
	width: 100%;
	justify-content: center;
}

/* 6. My account ----------------------------------------------------------- */

.woocommerce-account .ph-pagehead--wc { text-align: left; }

/* Logged-in dashboard: nav sidebar + content (float-based for reliability) */
.woocommerce-account .woocommerce-MyAccount-navigation {
	float: left;
	width: 220px;
	margin: 0 40px 0 0;
}
.woocommerce-account .woocommerce-MyAccount-content {
	float: right;
	width: calc(100% - 260px);
	border: 1px solid var(--ph-line);
	border-radius: var(--ph-radius);
	padding: clamp(18px, 2.4vw, 32px);
	font-size: 14.5px;
}
.woocommerce-account .woocommerce::after {
	content: "";
	display: table;
	clear: both;
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li {
	margin: 0 0 6px;
}
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 11px 14px;
	font-family: var(--ph-display);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ph-mute);
	border: 1px solid var(--ph-line);
	border-radius: var(--ph-radius);
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
	color: #fff;
	background: var(--ph-ink);
	border-color: var(--ph-ink);
}
.woocommerce-MyAccount-content a { border-bottom: 1px solid var(--ph-line); }

@media (max-width: 782px) {
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content {
		float: none;
		width: 100%;
		margin: 0 0 18px;
	}
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 6px; }
	.woocommerce-MyAccount-navigation li { margin: 0; }
}

/* Login / register cards */
.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
.woocommerce .col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(20px, 3vw, 40px);
	max-width: 860px;
	margin-inline: auto;
}
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2 { width: 100% !important; float: none !important; }
.woocommerce-account form.login,
.woocommerce-account form.register {
	border: 1px solid var(--ph-line);
	border-radius: var(--ph-radius);
	padding: clamp(20px, 3vw, 32px);
}
@media (max-width: 640px) {
	.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
	.woocommerce .col2-set { grid-template-columns: 1fr; }
}

/* 7. Notices, forms, misc ------------------------------------------------- */

.woocommerce form .form-row {
	margin-bottom: 14px;
}
.woocommerce form .form-row label {
	font-size: 12.5px;
	color: var(--ph-mute);
	margin-bottom: 4px;
}
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.wc-block-components-notice-banner {
	border-radius: var(--ph-radius);
	font-size: 13.5px;
}

/* Quantity stepper */
.woocommerce .quantity input.qty {
	border: 1px solid var(--ph-line);
	border-radius: var(--ph-radius);
	height: 48px;
}

/* Coupon accordion (block) */
.wc-block-components-panel { border-radius: var(--ph-radius); }

/* Empty states */
.cart-empty, .wc-block-cart__empty-cart__title { text-align: center; }
