/* ==========================================================================
   La Pizza – WooCommerce megjelenés.
   A woocommerce-layout és -smallscreen stílus ki van kapcsolva; a woocommerce-general
   (értesítések, űrlapok, csillagok) megmarad, ezt írjuk felül a téma tokenjeivel.
   ========================================================================== */

.wc-main { padding-bottom: var(--sp-8); }

/* ---------- Gombok ---------- */
.woocommerce :is(a, button, input).button,
.woocommerce #respond input#submit,
.woocommerce-page :is(a, button, input).button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2);
  min-height: 48px; padding: .75rem 1.5rem; border: 1.5px solid var(--color-primary); border-radius: var(--radius-pill);
  background: var(--color-primary); color: var(--c-white); font-family: var(--font-body); font-weight: 600; font-size: var(--fs-sm); line-height: 1.2;
  text-decoration: none; transition: background var(--transition), border-color var(--transition);
}
.woocommerce :is(a, button, input).button:hover,
.woocommerce-page :is(a, button, input).button:hover { background: var(--color-primary-hover); border-color: var(--color-primary-hover); color: var(--c-white); }
.woocommerce :is(a, button, input).button.alt { background: var(--color-primary); border-color: var(--color-primary); }
.woocommerce :is(a, button, input).button.alt:hover { background: var(--color-primary-hover); }
.woocommerce :is(a, button, input).button:disabled,
.woocommerce :is(a, button, input).button.disabled { opacity: .55; padding: .75rem 1.5rem; }
.woocommerce a.button.loading { opacity: .7; }
.woocommerce a.button.loading::after { position: static; margin-left: 6px; }
.woocommerce a.button.added::after { margin-left: 6px; }
.woocommerce a.added_to_cart { font-size: var(--fs-xs); font-weight: 600; padding-top: 6px; display: inline-block; }

/* ---------- Termékrács (ul.products) ---------- */
.woocommerce ul.products, ul.products.product-grid {
  display: grid; gap: var(--sp-5); grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  list-style: none; margin: 0 0 var(--sp-6); padding: 0;
}
.woocommerce ul.products::before, .woocommerce ul.products::after,
ul.products.product-grid::before, ul.products.product-grid::after { display: none; }
.woocommerce ul.products li.product.product-card,
ul.products li.product.product-card { width: auto; float: none; margin: 0; padding: 0; text-align: left; }
.product-card .product-card__media img { width: 100%; height: 100%; object-fit: cover; margin: 0; aspect-ratio: 1; }
.product-card .stock { margin: 0; font-size: var(--fs-xs); }
.product-card .stock.in-stock { color: var(--c-success); }
.product-card .stock.out-of-stock { color: var(--c-error); }
.product-card .stock.available-on-backorder { color: var(--c-warning); }
.product-card .stock::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: inline-block; margin-right: 6px; vertical-align: 1px; }
.product-card__foot { flex-wrap: wrap; }
.product-card__foot .button { position: relative; z-index: 1; min-height: 42px; padding: .5rem 1rem; }
.product-card__foot .added_to_cart { position: relative; z-index: 1; flex-basis: 100%; text-align: right; }
.product-card .price { color: var(--c-graphite-900); }
.woocommerce .price del, .woocommerce .price del .amount { color: var(--color-text-muted); font-weight: 400; opacity: 1; }
.woocommerce .price ins { text-decoration: none; color: var(--color-primary); font-weight: 700; }
.bundle__body h3 a, .bundle h3 a { color: inherit; text-decoration: none; }
.bundle h3 a:hover { text-decoration: underline; }
.bundle--feature .price { color: var(--c-cream-50); }
.bundle--feature .button { background: var(--c-cream-50) !important; color: var(--c-burgundy-700) !important; border-color: var(--c-cream-50) !important; }
.bundle img { width: 100%; height: auto; }

/* Lista eszközsáv */
.woocommerce .woocommerce-result-count { margin: 0 0 var(--sp-5); font-size: var(--fs-sm); color: var(--color-text-muted); }
.woocommerce .woocommerce-ordering { margin: 0 0 var(--sp-5); }
.woocommerce .woocommerce-ordering select { min-height: 44px; padding: .5rem 2.4rem .5rem .9rem; border: 1.5px solid #cbbda8; border-radius: var(--radius-pill); background: var(--c-white); }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: var(--sp-2); justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li .page-numbers { min-width: 44px; height: 44px; padding: 0 var(--sp-3); border-radius: var(--radius-pill); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--c-graphite-900); color: var(--c-cream-50); }
.woocommerce-info.woocommerce-no-products-found { margin-top: var(--sp-5); }

/* Morzsamenü */
.woocommerce .woocommerce-breadcrumb { margin: 0; padding-block: var(--sp-4); font-size: var(--fs-xs); color: var(--color-text-muted); }
.woocommerce .woocommerce-breadcrumb a { color: var(--color-text-muted); }
.breadcrumb__sep { margin-inline: 6px; color: var(--c-graphite-300); }

/* ---------- Értesítések ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
  border-top: 0; border-left: 4px solid var(--color-primary); border-radius: var(--radius); background: var(--color-surface);
  box-shadow: var(--shadow-sm); font-size: var(--fs-sm); padding: var(--sp-4) var(--sp-5) var(--sp-4) 3.2em; margin-bottom: var(--sp-5);
}
.woocommerce .woocommerce-message::before { color: var(--c-success); }
.woocommerce .woocommerce-message { border-left-color: var(--c-success); }
.woocommerce .woocommerce-info::before { color: var(--color-primary); }
.woocommerce .woocommerce-error { border-left-color: var(--c-error); }
.woocommerce .woocommerce-error::before { color: var(--c-error); }
.woocommerce :is(.woocommerce-message, .woocommerce-info) .button { float: right; min-height: 36px; padding: .4rem 1rem; }

/* ---------- Termékoldal ---------- */
.woocommerce div.product {
  display: grid; gap: var(--sp-6); grid-template-columns: minmax(0, 1fr); position: relative; margin-bottom: 0;
}
@media (min-width: 960px) {
  .woocommerce div.product { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: var(--sp-8); align-items: start; }
  .woocommerce div.product .woocommerce-product-gallery { position: sticky; top: calc(var(--header-h) + var(--sp-5)); }
}
.woocommerce div.product > :not(.woocommerce-product-gallery):not(.summary):not(.onsale) { grid-column: 1 / -1; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images { opacity: 1 !important; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce div.product div.images .woocommerce-product-gallery__image,
.woocommerce div.product div.images .flex-viewport { border-radius: var(--radius-lg); overflow: hidden; background: var(--c-sand-200); border: 1px solid var(--color-line); }
.woocommerce div.product div.images img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); margin: var(--sp-3) 0 0; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs li img { border-radius: var(--radius); border: 2px solid transparent; opacity: .75; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--color-primary); }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { top: var(--sp-4); right: var(--sp-4); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.woocommerce span.onsale { min-height: 0; min-width: 0; line-height: 1; padding: 6px 12px; border-radius: var(--radius-pill); background: var(--color-primary); font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; top: var(--sp-4); left: var(--sp-4); right: auto; margin: 0; z-index: 3; }

.woocommerce div.product .summary { display: flex; flex-direction: column; gap: var(--sp-4); }
.woocommerce div.product .summary > * { margin: 0; }
.woocommerce div.product .product_title { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-family: var(--font-display); font-size: 1.75rem; font-weight: 600; color: var(--c-graphite-900); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--color-text-muted); }
.woocommerce div.product .woocommerce-product-details__short-description ul { list-style: none; padding: 0; display: grid; gap: var(--sp-2); }
.woocommerce div.product .woocommerce-product-details__short-description li::before { content: "✓"; color: var(--color-primary); font-weight: 700; margin-right: var(--sp-2); }
.woocommerce div.product .stock { font-weight: 600; font-size: var(--fs-sm); }
.woocommerce div.product .stock.in-stock { color: var(--c-success); }
.woocommerce div.product .stock.out-of-stock { color: var(--c-error); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin: 0; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 220px; min-height: 56px; font-size: var(--fs-base); }
.woocommerce div.product form.cart table.variations { width: 100%; margin: 0; }
.woocommerce div.product form.cart .variations select { min-height: 48px; border: 1.5px solid #cbbda8; border-radius: var(--radius); padding: .6rem .9rem; background: var(--c-white); min-width: 220px; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0 0 var(--sp-2); text-align: left; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: var(--sp-3); width: 100%; }

/* Mennyiség léptetővel */
.woocommerce .quantity { display: inline-flex; align-items: stretch; border: 1.5px solid #cbbda8; border-radius: var(--radius-pill); background: var(--c-white); height: 56px; }
.woocommerce .quantity .qty { width: 52px; border: 0; text-align: center; font-weight: 600; background: transparent; -moz-appearance: textfield; }
.woocommerce .quantity .qty::-webkit-inner-spin-button, .woocommerce .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce .quantity .qty-step { width: 46px; border: 0; background: transparent; font-size: 1.3rem; color: var(--c-graphite-900); border-radius: var(--radius-pill); }
.woocommerce .quantity .qty-step:hover { background: var(--color-surface-alt); }
.woocommerce div.product .quantity:not(.has-stepper) .qty { width: 72px; }

.woocommerce div.product .product_meta { font-size: var(--fs-xs); color: var(--color-text-muted); display: flex; flex-direction: column; gap: 4px; padding-top: var(--sp-3); border-top: 1px solid var(--color-line); }
.woocommerce div.product .product_meta a { color: var(--color-text-muted); }

/* Fülek */
.woocommerce div.product .woocommerce-tabs { border-top: 1px solid var(--color-line); padding-top: var(--sp-5); margin-top: var(--sp-6); }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: var(--sp-1); margin: 0; padding: 0; border-bottom: 1px solid var(--color-line); overflow-x: auto; scrollbar-width: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { flex: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: var(--sp-4); font-weight: 600; color: var(--color-text-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--color-primary); border-bottom-color: var(--color-primary); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--c-graphite-900); }
.woocommerce div.product .woocommerce-tabs .panel { padding-block: var(--sp-6); margin: 0; max-width: 820px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { font-size: var(--fs-xl); }
.woocommerce table.shop_attributes { border: 0; font-size: var(--fs-sm); margin: 0; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border: 0; border-bottom: 1px solid var(--color-line); padding: var(--sp-3) var(--sp-4); font-style: normal; text-align: left; }
.woocommerce table.shop_attributes th { width: 42%; font-weight: 600; color: var(--c-graphite-900); background: rgba(236, 226, 211, .45); }
.woocommerce table.shop_attributes td p { margin: 0; padding: 0; }
.woocommerce table.shop_attributes tr:nth-child(even) :is(th, td) { background: transparent; }
.woocommerce table.shop_attributes tr:nth-child(even) th { background: rgba(236, 226, 211, .45); }

/* Kapcsolódó / cross-sell */
.woocommerce div.product .related, .woocommerce div.product .upsells, .cross-sells-section { padding-top: var(--sp-6); }
.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 { font-size: var(--fs-2xl); margin-bottom: var(--sp-5); }

/* Értékelések */
.woocommerce #reviews #comments ol.commentlist li .comment-text { border-color: var(--color-line); border-radius: var(--radius); }
.woocommerce .star-rating span, .woocommerce p.stars a { color: var(--color-primary); }

/* ---------- Űrlapok (fiók, klasszikus pénztár) ---------- */
.woocommerce form .form-row :is(input.input-text, textarea, select),
.woocommerce-page form .form-row :is(input.input-text, textarea, select) {
  min-height: 48px; padding: .7rem .9rem; border: 1.5px solid #cbbda8; border-radius: var(--radius); background: var(--c-white); line-height: 1.4;
}
.woocommerce form .form-row label { font-weight: 600; font-size: var(--fs-sm); }
.woocommerce form .form-row .required { color: var(--c-error); text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid :is(input.input-text, select) { border-color: var(--c-error); }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: grid; gap: 2px; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: var(--sp-3) var(--sp-4); border-radius: var(--radius); text-decoration: none; color: var(--color-text); }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--color-surface-alt); color: var(--color-primary); font-weight: 600; }
.woocommerce table.shop_table { border-color: var(--color-line); border-radius: var(--radius); background: var(--color-surface); }
.woocommerce table.shop_table :is(th, td) { border-color: var(--color-line); }

/* ---------- Kosár és Pénztár blokkok ---------- */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  border-radius: var(--radius-pill) !important; background: var(--color-primary) !important; color: var(--c-white) !important;
  min-height: 52px; font-weight: 600 !important; font-family: var(--font-body);
}
.wc-block-components-button:not(.is-link):hover { background: var(--color-primary-hover) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea {
  border-radius: var(--radius) !important; border-color: #cbbda8 !important; background: var(--c-white) !important;
}
.wc-block-components-text-input.is-active input:focus, .wc-block-components-text-input input:focus { border-color: var(--color-primary) !important; box-shadow: 0 0 0 3px rgba(110, 30, 43, .18) !important; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar { background: var(--color-surface); border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--sp-5) !important; }
.wc-block-components-title.wc-block-components-title { font-family: var(--font-display); font-weight: 500; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--color-primary) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--color-primary); border-color: var(--color-primary); }
.wc-block-components-notice-banner { border-radius: var(--radius); }
.wp-block-woocommerce-cart.alignwide, .wp-block-woocommerce-checkout.alignwide { margin-inline: 0; max-width: none; }
