/* =========================================================================
   NM Bau — WooCommerce styling. Maps WooCommerce's markup onto the theme's
   design tokens so the shop, product, cart, checkout and account pages look
   like the rest of the site. Uses hooks, not template overrides.
   ========================================================================= */

.wc-shell { position: relative; }
.wc-main { padding-block: 40px 72px; }
.woocommerce .container { padding-inline: 0; }

/* ---- Buttons ---------------------------------------------------------- *
 * SZABALY: minden kosar- es urlap-muvelet a CTA (meleg arany) szint kapja,
 * fuggetlenul attol, milyen hatteren all -- kosarba tesz, kosar frissitese,
 * kupon, megrendeles, belepes, regisztracio, cim mentese. A grafit gomb csak
 * masodlagos, nem-tranzakcios linkeknek marad (pl. "vissza a boltba"). */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  background: var(--cta-grad); color: #fff; border: 1px solid transparent;
  padding: 12px 22px; font-size: 14px; font-weight: 600; line-height: 1.2;
  border-radius: var(--radius); cursor: pointer; box-shadow: var(--cta-shadow);
  transition: background .18s, box-shadow .18s, color .18s; text-decoration: none;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: var(--cta-grad-hover); box-shadow: var(--cta-shadow-hover); color: #fff;
}
/* A WooCommerce alap-stiluslapja lila (#a46497) hattert ad az ".alt"
   gomboknak, es a letiltott allapotot is o festi -- ezert kell a !important. */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce div.product .single_add_to_cart_button,
.woocommerce #place_order,
.woocommerce button[name="apply_coupon"],
.woocommerce button[name="update_cart"],
.woocommerce .woocommerce-form-login button,
.woocommerce .woocommerce-form-register button,
.woocommerce #respond input#submit.alt {
  background: var(--cta-grad) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: var(--cta-shadow) !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce div.product .single_add_to_cart_button:hover,
.woocommerce #place_order:hover,
.woocommerce button[name="apply_coupon"]:hover,
.woocommerce button[name="update_cart"]:hover,
.woocommerce .woocommerce-form-login button:hover,
.woocommerce .woocommerce-form-register button:hover,
.woocommerce #respond input#submit.alt:hover {
  background: var(--cta-grad-hover) !important;
  box-shadow: var(--cta-shadow-hover) !important;
  color: #fff !important;
}

/* Masodlagos, nem-tranzakcios gombok maradnak grafitban. */
.woocommerce a.button.wc-backward,
.woocommerce a.button.wc-forward:not(.checkout):not(.checkout-button) {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.woocommerce a.button.wc-backward:hover,
.woocommerce a.button.wc-forward:not(.checkout):not(.checkout-button):hover {
  background: var(--accent-ink) !important;
}

/* Letiltott allapot (pl. variable termek meret valasztas elott):
   ugyanaz a CTA-szin, csak halkabban -- nem lila, nem szurke. */
.woocommerce a.button.disabled,
.woocommerce button.button.disabled,
.woocommerce input.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled,
.woocommerce a.button.alt.disabled,
.woocommerce button.button.alt.disabled,
.woocommerce div.product .single_add_to_cart_button.disabled,
.woocommerce div.product .single_add_to_cart_button:disabled,
.woocommerce div.product .single_add_to_cart_button.wc-variation-selection-needed {
  background: var(--cta-grad) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: none !important;
  opacity: .62 !important;
  cursor: not-allowed;
}
.woocommerce a.button.disabled:hover,
.woocommerce button.button.disabled:hover,
.woocommerce div.product .single_add_to_cart_button.disabled:hover,
.woocommerce div.product .single_add_to_cart_button:disabled:hover,
.woocommerce div.product .single_add_to_cart_button.wc-variation-selection-needed:hover {
  background: var(--cta-grad) !important;
  color: #fff !important;
}
.woocommerce .button.loading { opacity: .6; }

/* ---- Notices ---------------------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews {
  border-top: none; border-radius: var(--radius); padding: 14px 18px 14px 44px;
  background: var(--bg-soft); color: var(--ink-soft); font-size: 14px;
  box-shadow: inset 3px 0 0 var(--accent);
}
.woocommerce-error { box-shadow: inset 3px 0 0 var(--danger); background: #fbf1ee; }
.woocommerce-message .button, .woocommerce-info .button { padding: 8px 14px; }

/* ---- Breadcrumb / titles / ordering ---------------------------------- */
.woocommerce .woocommerce-breadcrumb { font-size: 13px; color: var(--muted); margin-bottom: 22px; }
.woocommerce .woocommerce-breadcrumb a { color: var(--muted); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--ink); }
.woocommerce-products-header__title,
.woocommerce div.product .product_title,
.woocommerce .cart-collaterals h2,
.woocommerce-cart h1,
.woocommerce-checkout h1 { font-size: clamp(26px, 3.4vw, 40px); font-weight: 600; letter-spacing: -.02em; }
.woocommerce .woocommerce-result-count { color: var(--muted); font-size: 14px; }
.woocommerce .woocommerce-ordering select,
.woocommerce select { padding: 10px 34px 10px 14px; border: 1px solid var(--field-line); border-radius: var(--radius); background: var(--field-bg); font-size: 14px; }

/* ---- Shop archive grid ------------------------------------------------ */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 26px; margin: 0 0 34px; padding: 0;
}
/* A WooCommerce alap-stiluslapja clearfix ::before/::after elemet tesz a
   listara. Float-elrendezeshez keszult; racsban viszont mindketto onallo
   racs-elem lesz, ezert ures cella keletkezik az elso termek elott es az
   utolso utan. Ezert kikapcsoljuk oket. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important;
  display: flex; flex-direction: column; background: var(--bg);
  border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden;
  transition: box-shadow .18s, transform .18s, border-color .18s; padding: 0;
}
.woocommerce ul.products li.product:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); border-color: var(--line-strong); }
.woocommerce ul.products li.product a img { margin: 0; border-radius: 0; aspect-ratio: 1/1; object-fit: cover; width: 100%; }
.woocommerce ul.products li.product .woocommerce-loop-product__link { display: block; padding: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 16px 16px 0; font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--ink); }
.woocommerce ul.products li.product .price { padding: 6px 16px 0; color: var(--ink); font-weight: 600; font-size: 17px; }
.woocommerce ul.products li.product .price del { color: var(--muted); font-weight: 400; font-size: 13px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--danger); }
.woocommerce ul.products li.product .button { margin: 14px 16px 16px; }
.woocommerce ul.products li.product .added_to_cart { margin: 0 16px 16px; font-size: 13px; }

/* Egyenlo magassagu kartyak: a cim/ar blokk nyulik, a gomb mindig alul ul.
   Enelkul a soron beluli kartyak kulonbozo magasak, es "lyukas" lesz a racs. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product { height: 100%; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  min-height: 2.6em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.woocommerce ul.products li.product .price { margin-bottom: auto; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart { margin-top: 14px; }
/* a WooCommerce first/last osztalyai racsban felesleges toresot okoznanak */
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last { clear: none !important; margin: 0 !important; }
.woocommerce ul.products { align-items: stretch; }

.woocommerce span.onsale {
  background: var(--danger); color: #fff; border-radius: 999px; padding: 5px 11px;
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  line-height: 1; min-height: 0; min-width: 0; top: 12px; left: 12px; margin: 0;
}

@media (max-width: 1024px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 16px; } }

/* pagination */
.woocommerce nav.woocommerce-pagination ul { border: none; }
.woocommerce nav.woocommerce-pagination ul li { border: none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 8px 14px; color: var(--ink-soft);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ---- Single product --------------------------------------------------- */
/* Only the gallery + summary sit side by side. WooCommerce also drops the tabs,
   up-sells and related products in here as direct children — they must span the
   full width, otherwise they land in the second grid column and overlap. */
/* Termekoldal elrendezese FLEX-szel, nem raccsal.
   A racs automatikus elhelyezese a WooCommerce clearfix-elemei miatt
   kiszamithatatlan volt (atfedes). Flex-nel minden also blokk sajat teljes
   szelessegu sorba kerul, atfedes elvileg sem lehetseges. */
.woocommerce div.product,
.woocommerce-page div.product {
  display: flex; flex-wrap: wrap; align-items: flex-start;
  row-gap: 56px;
}
/* minden kozvetlen gyerek teljes sor */
.woocommerce div.product > * { flex: 0 0 100%; max-width: 100%; min-width: 0; }

/* Termekoldal felso resze: bal oszlopban a galeria es a leiras, jobb
   oszlopban a tapado osszefoglalo doboz. A doboz racsterulete atfogja
   mindket sort, ezert gorgetes kozben vegig a kepernyon marad, es mivel
   sajat oszlopa van, sose fedhet le semmit. */
.pdp-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
  grid-template-rows: auto auto;
  column-gap: clamp(36px, 5vw, 80px);
  row-gap: 48px;
  align-items: start;
  width: 100%;
  position: relative;
}
/* alapertelmezes: minden a bal oszlopba */
.pdp-top > * { grid-column: 1; min-width: 0; }
.pdp-top > .woocommerce-product-gallery { grid-row: 1; }
.pdp-top > .woocommerce-tabs { grid-row: 2; margin: 0; }
.pdp-top > .summary {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
  padding: clamp(26px, 2.4vw, 34px);
  position: sticky;
  top: 100px;
  max-height: calc(100vh - 124px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
/* a tapado doboz sajat gorgetosavja legyen diszkret */
.pdp-top > .summary::-webkit-scrollbar { width: 6px; }
.pdp-top > .summary::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 999px; }

/* float-korszakbol maradt elemek kikapcsolasa */
.woocommerce div.product::before,
.woocommerce div.product::after,
.woocommerce-page div.product::before,
.woocommerce-page div.product::after,
.pdp-top::before, .pdp-top::after { content: none !important; display: none !important; }
.woocommerce div.product > .clear,
.pdp-top > .clear { display: none !important; }

@media (max-width: 980px) {
  .pdp-top { grid-template-columns: minmax(0, 1fr); row-gap: 36px; }
  .pdp-top > * { grid-column: 1; }
  .pdp-top > .summary {
    grid-column: 1; grid-row: auto;
    position: static; max-height: none; overflow: visible;
  }
  .pdp-top > .woocommerce-product-gallery { grid-row: auto; }
  .pdp-top > .woocommerce-tabs { grid-row: auto; }
}

.woocommerce div.product .woocommerce-product-gallery { width: 100% !important; float: none; margin: 0; }
.woocommerce div.product .woocommerce-product-gallery__image img { border-radius: var(--radius-lg); }
.woocommerce div.product .summary { width: 100% !important; float: none; margin: 0; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--ink); font-size: 28px; font-weight: 600; }
.woocommerce div.product p.price del { color: var(--muted); font-size: 18px; font-weight: 400; }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--danger); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ink-soft); margin: 18px 0; }
.woocommerce div.product form.cart { margin: 24px 0; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.woocommerce .quantity input.qty {
  width: 68px; height: 50px; text-align: center; border: 1px solid var(--line-strong);
  border-radius: var(--radius); font-weight: 600; background: #fff;
}
.woocommerce div.product .single_add_to_cart_button { height: 50px; padding-inline: 30px; }
.woocommerce div.product .product_meta { font-size: 13px; color: var(--muted); border-top: 1px solid var(--line); padding-top: 18px; margin-top: 8px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: none; border-radius: 0; margin: 0 6px 0 0; padding: 0; }
.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 { padding: 14px 6px; color: var(--muted); font-weight: 600; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); box-shadow: inset 0 -2px 0 var(--ink); }
.woocommerce #reviews .comment-form input, .woocommerce #reviews .comment-form textarea { border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 10px 12px; }

/* ---- Product description ---------------------------------------------- *
 * Imported vendor descriptions ship their own layout (absolute positioning,
 * floats, fixed widths) that overlaps badly without the origin CSS. We reset
 * everything inside the description to a normal, readable document flow, then
 * apply clean typography on top. Scoped to the description only. */
#tab-description, .woocommerce-Tabs-panel--description,
.woocommerce div.product .woocommerce-product-details__short-description {
  max-width: 820px; color: var(--ink-soft); font-size: 15.5px; line-height: 1.7;
}
#tab-description *, .woocommerce-Tabs-panel--description * {
  position: static !important; float: none !important; transform: none !important;
  inset: auto !important; max-width: 100% !important; height: auto !important;
  margin-left: 0 !important; margin-right: 0 !important;
  top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
}
#tab-description h1, #tab-description h2, #tab-description h3, #tab-description h4,
.woocommerce-Tabs-panel--description h1, .woocommerce-Tabs-panel--description h2,
.woocommerce-Tabs-panel--description h3, .woocommerce-Tabs-panel--description h4 {
  color: var(--ink); font-weight: 600; line-height: 1.25; margin: 1.6em 0 .45em;
}
#tab-description h2 { font-size: clamp(21px, 2.4vw, 27px); }
#tab-description h3 { font-size: clamp(17px, 2vw, 20px); }
#tab-description h4 { font-size: 16px; }
#tab-description h2:first-child, #tab-description h3:first-child { margin-top: 0; }
#tab-description p { margin: 0 0 1.05em; }
#tab-description ul, #tab-description ol { margin: 0 0 1.05em; padding-left: 1.3em; }
#tab-description li { margin-bottom: .4em; }
#tab-description img {
  display: block; width: auto !important; height: auto !important; max-width: 100% !important;
  border-radius: var(--radius-lg); margin: 18px 0; box-shadow: var(--shadow-sm);
}
#tab-description a { color: var(--accent); text-decoration: underline; }
#tab-description table { width: 100% !important; border-collapse: collapse; margin: 0 0 1.2em; }
#tab-description td, #tab-description th { border: 1px solid var(--line); padding: 8px 12px; text-align: left; }

/* ---- Related & up-sell products (never overlap) ----------------------- *
 * Force a clean grid whether WooCommerce outputs the classic `ul.products`
 * or the newer block grid, and stop any float/absolute layout from stacking
 * the cards on top of each other. */
.woocommerce div.product section.related,
.woocommerce div.product section.up-sells,
.woocommerce div.product .upsells { clear: both; width: 100%; margin-top: 20px; }
.woocommerce div.product .related > ul.products,
.woocommerce div.product .up-sells > ul.products,
.woocommerce div.product .upsells > ul.products,
.woocommerce div.product .wc-block-grid__products,
.woocommerce div.product ul.wc-block-grid__products,
.woocommerce div.product .products.columns-1,
.woocommerce div.product .products.columns-2,
.woocommerce div.product .products.columns-3,
.woocommerce div.product .products.columns-4,
.woocommerce div.product .products.columns-5,
.woocommerce div.product .products.columns-6 {
  display: grid !important; grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important; margin: 0 !important; padding: 0 !important; list-style: none !important;
  width: 100% !important; float: none !important;
}
.woocommerce div.product .related li.product,
.woocommerce div.product .up-sells li.product,
.woocommerce div.product .upsells li.product,
.woocommerce div.product li.wc-block-grid__product {
  width: auto !important; max-width: none !important; margin: 0 !important;
  float: none !important; clear: none !important; position: static !important;
  top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
  transform: none !important;
}
.woocommerce div.product .related h2,
.woocommerce div.product .up-sells h2,
.woocommerce div.product .upsells h2 { clear: both; margin-bottom: 20px; }
@media (max-width: 980px) {
  .woocommerce div.product .related > ul.products,
  .woocommerce div.product .up-sells > ul.products,
  .woocommerce div.product .upsells > ul.products,
  .woocommerce div.product .products[class*="columns-"] { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
  .woocommerce div.product .related > ul.products,
  .woocommerce div.product .up-sells > ul.products,
  .woocommerce div.product .upsells > ul.products,
  .woocommerce div.product .products[class*="columns-"] { grid-template-columns: 1fr !important; }
}

@media (max-width: 860px) { .woocommerce div.product { grid-template-columns: 1fr; gap: 28px; } }

/* ---- Cart ------------------------------------------------------------- */
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: var(--radius-lg); border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th { background: var(--bg-soft); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); padding: 14px; }
.woocommerce table.shop_table td { padding: 16px 14px; border-top: 1px solid var(--line); }
.woocommerce table.cart img { width: 64px; border-radius: var(--radius); }
.woocommerce a.remove { color: var(--danger) !important; border: 1px solid var(--line); }
.woocommerce a.remove:hover { background: var(--danger) !important; color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals table { width: 100%; }
.woocommerce .cart_totals, .woocommerce-cart .cart-collaterals .cart_totals { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 22px; background: var(--bg-soft); }
.woocommerce #coupon_code { height: 46px; border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 0 12px; }

/* ---- Checkout --------------------------------------------------------- */
.woocommerce form .form-row label { font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row .select2-container,
.woocommerce-checkout #order_review .input-text {
  border: 1px solid var(--field-line); border-radius: var(--radius); padding: 12px 14px; font-size: 15px; background: var(--field-bg);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { outline: none; background: var(--field-bg-lit); border-color: var(--cta); box-shadow: 0 0 0 3px rgba(201,133,42,.20); }
.woocommerce-checkout #payment { background: var(--bg-soft); border-radius: var(--radius-lg); border: 1px solid var(--line); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--line); }
.woocommerce-checkout #payment div.payment_box { background: var(--field-bg); border-radius: var(--radius); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--field-bg); }
.woocommerce-checkout #order_review { border: 1px solid var(--field-line); border-radius: var(--radius-lg); overflow: hidden; background: var(--form-card); }
#add_payment_method #payment div.place-order, .woocommerce-checkout #payment div.place-order { padding: 18px; }

/* ---- My account ------------------------------------------------------- */
/* Two-column dashboard (nav + content) once logged in. */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
  display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; max-width: 1040px; margin-inline: auto;
}
.woocommerce-account .woocommerce-MyAccount-navigation { flex: 0 0 250px; width: 250px; float: none; }
.woocommerce-account .woocommerce-MyAccount-content { flex: 1; min-width: 0; float: none; width: auto; color: var(--ink-soft); }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--bg); box-shadow: var(--shadow-sm); }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 13px 18px; color: var(--ink-soft); font-weight: 500; transition: background .2s ease, color .2s ease; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--bg-soft); color: var(--ink); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ink); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { font-size: 16px; }
.woocommerce-account .woocommerce-MyAccount-content a { color: var(--accent); }

/* Login / register cards. */
/* Belepes / regisztracio: meleg kartya arany akcentussal, nem sima feher lap. */
.woocommerce form.login, .woocommerce form.register {
  position: relative; overflow: hidden;
  border: 1px solid var(--field-line); border-radius: var(--radius-lg);
  padding: 28px; background: var(--form-card);
  box-shadow: 0 18px 40px -30px rgba(27,28,30,.35);
}
.woocommerce form.login::before, .woocommerce form.register::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--cta-grad);
}
.woocommerce-account:not(.logged-in) .woocommerce > .u-columns { max-width: 920px; margin-inline: auto; }
.woocommerce form .form-row label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--ink); }
.woocommerce form .input-text, .woocommerce form input[type="text"], .woocommerce form input[type="email"], .woocommerce form input[type="password"], .woocommerce form input[type="tel"] {
  width: 100%; padding: 12px 14px; border: 1px solid var(--field-line); border-radius: var(--radius); font: inherit; font-size: 15px; background: var(--field-bg); color: var(--ink); box-sizing: border-box;
}
.woocommerce form .input-text:focus, .woocommerce form input:focus { outline: none; background: var(--field-bg-lit); border-color: var(--cta); box-shadow: 0 0 0 3px rgba(201,133,42,.20); }

/* ---- Generic page/post content (entry-content prose) ------------------ */
.entry-content { color: var(--ink-soft); font-size: 16px; }
.entry-content > * + * { margin-top: 1.1rem; }
.entry-content h2 { font-size: 26px; margin-top: 2rem; color: var(--ink); }
.entry-content h3 { font-size: 20px; margin-top: 1.6rem; color: var(--ink); }
.entry-content a { color: var(--accent); text-decoration: underline; }
.entry-content ul, .entry-content ol { padding-left: 1.4em; }
.entry-content ul { list-style: disc; }
.entry-content ol { list-style: decimal; }
.entry-content li + li { margin-top: .4rem; }
.entry-content img { border-radius: var(--radius); height: auto; }
.entry-content blockquote { border-left: 3px solid var(--accent); padding-left: 18px; color: var(--muted); font-style: italic; }

/* ---- CTA & trust reinforcement --------------------------------------- */
/* Full-width, higher-tap add-to-cart on shop cards. */
.woocommerce ul.products li.product .button { display: flex; width: auto; }
.woocommerce ul.products li.product .added_to_cart { display: block; text-align: center; }

/* Product-page reassurance list (rendered by nmbau_single_assurances). */
.wc-assurances { display: grid; gap: 11px; margin: 24px 0 4px; padding-top: 22px; border-top: 1px solid var(--line); }
.wc-assurances li { display: flex; align-items: center; gap: 11px; font-size: 14px; color: var(--ink-soft); }
.wc-assurances svg { width: 20px; height: 20px; color: var(--accent); flex-shrink: 0; }

/* Cart / checkout trust lines (rendered by nmbau_cart_trust / nmbau_checkout_trust). */
.wc-trustline { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 16px; font-size: 13px; color: var(--muted); text-align: center; }
.wc-trustline svg { width: 16px; height: 16px; color: var(--accent); flex-shrink: 0; }
.wc-trustline--checkout { margin-top: 14px; }

/* ---- Kartyak egy vonalban (archivum + kiegeszito blokk) ---------------- *
 * A WooCommerce a cimet es az arat a kep linkjebe (a.woocommerce-loop-
 * product__link) teszi, nem a li kozvetlen gyerekekent. Ezert a li-n levo
 * "margin-bottom:auto" nem tolta le a gombot, es a hosszabb cimu kartyak
 * mindent 1 sorral lejjebb toltak. Megoldas: a link maga is nyulo
 * flex-oszlop, a cim fix ket sor magas, az ar a link aljara tapad. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
.woocommerce ul.products li.product > a.woocommerce-loop-product__link,
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  padding: 0 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product > a > h2,
.woocommerce ul.products li.product > a > h3 {
  min-height: 2.6em !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 16px 16px 0 !important;
}
.woocommerce ul.products li.product .price {
  margin: 0 !important;
  margin-top: auto !important;
  padding: 8px 16px 0 !important;
  min-height: 1.6em;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
  margin: 14px 16px 16px !important;
  flex: 0 0 auto !important;
  align-self: stretch;
  text-align: center;
}

/* ---- Blokk-alapu kosar es penztar ------------------------------------- *
 * A WooCommerce uj Cart/Checkout blokkjai sajat elrendezest hoznak, ami a
 * temank konteneren tullogott (a jobb oldali osszesito lelogott a kepernyorol).
 * Itt sajat, biztonsagos ket-oszlopos elrendezest adunk nekik, es a mezoket
 * a tema design-tokenjeire kotjuk. */
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart,
.wc-block-checkout,
.wc-block-cart { max-width: 100%; }

.wc-block-components-sidebar-layout {
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(28px, 4vw, 64px);
  max-width: 100%;
}
.wc-block-components-main {
  flex: 1 1 420px;
  min-width: 0;
  max-width: 100%;
  width: auto !important;
  padding-right: 0 !important;
  float: none !important;
}
.wc-block-components-sidebar {
  flex: 0 1 380px;
  min-width: 0;
  max-width: 100%;
  width: auto !important;
  padding-left: 0 !important;
  float: none !important;
  position: sticky;
  top: 100px;
}
@media (max-width: 900px) {
  .wc-block-components-sidebar-layout { display: block !important; }
  .wc-block-components-sidebar { position: static; margin-top: 32px; }
}

/* Osszesito doboz a tema stilusaban */
.wc-block-components-sidebar .wc-block-components-totals-wrapper:first-child,
.wc-block-checkout__sidebar .wc-block-components-panel,
.wc-block-components-order-summary {
  background: transparent;
}
/* Belso margo MINDEN osszesito sorra (nem csak a kozvetlen gyerekekre) --
   e nelkul a vegosszeg hozzatapadt a doboz jobb szelehez. */
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.wc-block-cart__sidebar .wc-block-components-totals-coupon,
.wc-block-cart__sidebar .wc-block-components-panel__button,
.wc-block-cart__submit-container { padding-inline: 20px; }
.wc-block-cart__submit-container { padding-bottom: 18px; }
.wc-block-checkout__sidebar,
.wc-block-cart__sidebar {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--bg-soft);
  padding: 6px 0;
}

/* Cimsorok */
.wc-block-components-title,
.wc-block-components-checkout-step__title {
  font-weight: 600 !important;
  color: var(--ink) !important;
  letter-spacing: -.01em;
}

/* Mezok: ugyanaz a keret/radius, mint a tema tobbi urlapjan */
.wc-block-components-text-input input.components-form-token-field__input,
.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-text-input input[type="number"],
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__select {
  border: 1px solid var(--field-line) !important;
  border-radius: var(--radius) !important;
  background: var(--field-bg) !important;
  box-shadow: none !important;
  min-height: 52px;
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
  border-color: var(--cta) !important;
  background: var(--field-bg-lit) !important;
  box-shadow: 0 0 0 2px rgba(201, 133, 42, .22) !important;
  outline: none !important;
}

/* Blokk-alapu kosar/penztar: ugyanaz a CTA-arany, mint mindenhol maskor */
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-button:not(.is-link) {
  background: var(--cta-grad) !important;
  border-color: transparent !important;
  color: #fff !important;
  border-radius: var(--radius) !important;
  font-weight: 600 !important;
  box-shadow: var(--cta-shadow) !important;
}
/* A pénztár gomb <a> elem, ezert orokolte a link-alahuzast. */
.wc-block-cart__submit-button,
.wc-block-cart__submit-container a,
.wc-block-components-button,
.wc-block-components-button:hover,
.wc-block-components-button:focus { text-decoration: none !important; }
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-button:not(.is-link):hover {
  background: var(--cta-grad-hover) !important;
  box-shadow: var(--cta-shadow-hover) !important;
}
.wc-block-components-button.is-link { color: var(--cta-ink) !important; }

/* Vegosszeg kiemelese */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-weight: 600 !important;
  color: var(--ink) !important;
}

/* -----------------------------------------------------------------------
   Mobil tapado kosar sav (termekoldal). Csak mobilon, es csak akkor csusszan
   be, ha a fo Kosarba gomb mar kigorgult a kepbol (JS teszi ra az .is-visible-t).
   ----------------------------------------------------------------------- */
.atc-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  background: rgba(255,255,255,.98); border-top: 1px solid var(--line);
  box-shadow: 0 -8px 24px -12px rgba(0,0,0,.28);
  transform: translateY(115%); transition: transform .28s ease;
}
.atc-sticky.is-visible { transform: none; }
.atc-sticky__info { display: flex; flex-direction: column; min-width: 0; flex: 1; overflow: hidden; }
.atc-sticky__name { display: block; max-width: 100%; font-size: 12.5px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.atc-sticky__price { font-size: 14px; font-weight: 700; color: var(--ink); line-height: 1.2; }
.atc-sticky__price del { color: var(--muted); font-weight: 500; font-size: 12px; margin-right: 5px; }
.atc-sticky__price ins { text-decoration: none; }
.atc-sticky__btn { flex-shrink: 0; padding: 13px 24px; }
/* Asztali gepen nincs ra szukseg: ott vegig latszik a fo gomb. */
@media (min-width: 861px) { .atc-sticky { display: none; } }

/* ---- Szett: választható kiegészítők a Kosárba gomb felett (inc/szett.php) ---- */
.woocommerce div.product form.cart .nm-szett { flex: 1 1 100%; display: grid; gap: 12px; margin: 0 0 6px; }
/* One block per size on a variable product; only the chosen size is shown. */
.nm-szett__variant { display: grid; gap: 12px; }
/* A display:grid felulirna a hidden attributumot, es minden meret blokkja latszana. */
.nm-szett__variant[hidden] { display: none; }
.nm-szett__title { margin: 0; font-weight: 600; color: var(--ink); }
.nm-szett__row { display: grid; gap: 6px; min-width: 0; }
.nm-szett__row label { font-size: 13.5px; font-weight: 600; color: var(--ink-soft); }
.nm-szett__row .required { color: var(--danger); margin-left: 2px; }
.woocommerce div.product form.cart .nm-szett select { width: 100%; max-width: 100%; }
.nm-szett__note { margin: 0; font-size: 13.5px; color: var(--ink-soft); }
.nm-szett__total { margin: 0; font-size: 15px; color: var(--ink); }

/* ---- Webshop / kategoriaoldal: kategoriak es termekek kulon ---------- */
.shop-block-title { font-size: clamp(20px, 2.2vw, 26px); font-weight: 600; letter-spacing: -.01em; margin: 0 0 18px; }
.shop-cats { margin: 28px 0 48px; }
.shop-block-title--products { margin-top: 0; padding-top: 32px; border-top: 1px solid var(--line); }
.cat-grid--archive { grid-template-columns: repeat(4, 1fr); gap: 18px; }
.cat-grid--archive .cat-card { aspect-ratio: 4 / 3; }
.cat-grid--archive .cat-card__label { padding: 36px 16px 14px; }
.cat-grid--archive .cat-card__label b { font-size: 16px; }
.cat-grid--archive .cat-card__label svg { width: 18px; height: 18px; }
@media (max-width: 960px) { .cat-grid--archive { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .cat-grid--archive { grid-template-columns: repeat(2, 1fr); gap: 12px; } }

/* ---- Termékleírás: a beszállítói (extrafurdoszoba) blokk-HTML rendbetétele ----
   A leírások a beszállító oldaláról jönnek, fekete hátterű, fehér szövegű
   oszlopblokkokkal. A WordPress oszlop-CSS-e itt nem töltődik be (a leírásban
   nincs blokk-jelölés), ezért szétesett, és a fekete doboz idegen volt az oldalon.
   Itt saját színeinkre állítjuk, és az oszlopokat mi rendezzük el. */
.woocommerce-Tabs-panel--description .has-background { background: none !important; padding: 0 !important; }
.woocommerce-Tabs-panel--description .has-text-color,
.woocommerce-Tabs-panel--description .has-link-color a { color: inherit !important; }
.woocommerce-Tabs-panel--description .wp-block-columns { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px; margin: 0 0 28px; }
.woocommerce-Tabs-panel--description .wp-block-columns.are-vertically-aligned-center { align-items: center; }
.woocommerce-Tabs-panel--description .wp-block-column { flex: 1 1 0; min-width: 0; }
.woocommerce-Tabs-panel--description .wp-block-column[style*="flex-basis"] { flex-grow: 0; }
.woocommerce-Tabs-panel--description figure { margin: 0 0 16px; }
.woocommerce-Tabs-panel--description img { max-width: 100%; height: auto; }
.woocommerce-Tabs-panel--description .aligncenter { text-align: center; margin-left: auto; margin-right: auto; }
.woocommerce-Tabs-panel--description .has-text-align-center { text-align: center; }
.woocommerce-Tabs-panel--description .wp-block-spacer { max-height: 32px; }
@media (max-width: 781px) {
  .woocommerce-Tabs-panel--description .wp-block-column,
  .woocommerce-Tabs-panel--description .wp-block-column[style*="flex-basis"] { flex-basis: 100% !important; }
}

/* ---- Meretvalaszto (variacios termek) ----
   A "Méret" felirat es a legordulo kozott nem volt hely: a cimke cellaja nem
   kapott belso margot, igy a doboz (fokuszkerettel) raert a feliratra. */
.woocommerce div.product form.cart .variations { flex: 1 1 100%; width: 100%; margin: 0 0 8px; border: 0; border-collapse: separate; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { padding: 6px 0; border: 0; vertical-align: middle; }
.woocommerce div.product form.cart .variations th.label { width: 1%; padding-right: 20px; white-space: nowrap; text-align: left; }
.woocommerce div.product form.cart .variations th.label label { margin: 0; font-weight: 700; color: var(--ink); }
.woocommerce div.product form.cart .variations select { display: inline-block; min-width: 200px; max-width: 100%; margin: 0 14px 0 0; vertical-align: middle; }
.woocommerce div.product form.cart .variations .reset_variations { font-size: 13px; color: var(--muted); }

/* ---- PVC falpanelek: meretszuro gombsor (inc/pvc-panels.php) ---------- */
.size-filter { clear: both; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 22px; }
.size-filter__label { font-size: 14px; font-weight: 600; color: var(--ink-soft); margin-right: 4px; }
.size-filter__chip { display: inline-flex; align-items: center; gap: 4px; padding: 8px 14px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--bg); color: var(--ink); font-size: 14px; text-decoration: none; transition: border-color .15s, background .15s; }
.size-filter__chip:hover { border-color: var(--ink); }
.size-filter__chip.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.size-filter__count { color: var(--muted); font-size: 12.5px; }
.size-filter__chip.is-active .size-filter__count { color: rgba(255,255,255,.7); }
