/* ==========================================================================
   MODIVIAM — BOLT, MÁSODIK MENET
   --------------------------------------------------------------------------
   Az első menet a kártyák belsejét rendezte, de a LAPOK SZERKEZETÉT nem — és
   a baj ott volt. Ez a réteg a webshop és a termékoldal elrendezését teszi
   rendbe, úgy, ahogy egy bolt működik.

   MÉRT HIBÁK, amikre válaszol:

   WEBSHOP
     · a „Webshop" címsáv 381 képpont magas volt egyetlen szóért, és alul
       0 térközzel — a két link a sáv aljához tapadt;
     · a kategóriakártya címe `#101318` háttéren `#1C2024` betűvel állt:
       sötét a sötéten, olvashatatlan;
     · a terméklista szekciója `padding: 0` — a rács a képernyő széléig ért,
       miközben minden más szekció 40 képpont margót tart;
     · a kártyák 452 képpont szélesek voltak: egy boltban ez nem választék,
       hanem plakát.

   TERMÉKOLDAL
     · a galéria `y+470`-nél kezdődött, a cím `y+87`-nél — 380 képpontnyi
       üres fehér közöttük;
     · a galéria konténere 575 képpont magas volt, a kép 841 — ezért a
       megnézett képből csak egy csík látszott;
     · az ár `y+1186`-nál állt, a hosszú leírás ALATT;
     · a leírás ömlesztve futott, elválasztás nélkül.

   AZ ELRENDEZÉS, amit egy vásárló ismer: balra a kép, jobbra a döntéshez
   kellő adatok — név, ár, kosár —, és csak alattuk, külön a részletes leírás.
   ========================================================================== */

/* ==========================================================================
   1. WEBSHOP — CÍMSÁV
   ========================================================================== */

body.mv-theme .elementor-element-4b0e9e4 {
  padding-block: clamp(2.75rem, 5vw, 4rem) clamp(2.25rem, 4vw, 3.25rem) !important;
}

body.mv-theme .elementor-element-4b0e9e4 .elementor-heading-title {
  font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.75rem) !important;
  line-height: 1.1 !important;
  margin-bottom: 0 !important;
}

/* A cím és a két útvonal-link közé kell levegő, a sáv aljára is. */
body.mv-theme .elementor-element-4b0e9e4 .elementor-widget-heading {
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem) !important;
}

body.mv-theme .elementor-element-4b0e9e4 .elementor-widget-button {
  margin-bottom: 0 !important;
}

/* ==========================================================================
   2. WEBSHOP — KATEGÓRIÁK
   ========================================================================== */

body.mv-theme .elementor-element-4b1aeea {
  padding-block: clamp(2.5rem, 5vw, 4rem) !important;
}

body.mv-theme li.product-category > a {
  display: block;
  overflow: hidden;
  border: 1px solid rgba(28, 32, 36, 0.12) !important;
  border-radius: 16px !important;
  background: #FFFFFF !important;
  transition: transform 480ms cubic-bezier(0.22, 0.61, 0.36, 1),
              border-color 480ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 480ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

body.mv-theme li.product-category > a:hover {
  transform: translateY(-4px);
  border-color: rgba(38, 47, 64, 0.32) !important;
  box-shadow: 0 24px 48px -30px rgba(25, 30, 41, 0.4);
}

body.mv-theme li.product-category img {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  object-fit: cover !important;
  margin: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
}

/* A KATEGÓRIA NEVE. Itt volt a sötét a sötéten: a címsor a sötét rétegtől
   örökölt `#101318` hátteret, a betűje meg grafit maradt. */
body.mv-theme .woocommerce-loop-category__title {
  background: #FFFFFF !important;
  color: var(--mv-graphite, #1C2024) !important;
  padding: 1.1rem 1.35rem !important;
  margin: 0 !important;
  font-family: var(--mv-font-display) !important;
  font-size: 1.15rem !important;
  font-weight: 400 !important;
  text-align: left !important;
}

body.mv-theme .woocommerce-loop-category__title .count {
  color: var(--mv-graphite-mute, #6E767E) !important;
  background: transparent !important;
  font-family: var(--mv-font-ui) !important;
  font-size: 0.8em;
}

/* ==========================================================================
   3. WEBSHOP — TERMÉKLISTA
   --------------------------------------------------------------------------
   Oldalmargó, mint minden más szekción, és BOLTI méretű kártyák: négy egy
   sorban széles képernyőn. A 452 képpontos kártya nem választékot mutat,
   hanem egy terméket reklámoz.
   ========================================================================== */

body.mv-theme .elementor-element-98687bd {
  padding: clamp(2.5rem, 5vw, 4rem) clamp(1.25rem, 2.8vw, 2.5rem) clamp(3.5rem, 7vw, 6rem) !important;
}

body.mv-theme .elementor-element-98687bd > .e-con-inner {
  max-width: 1320px !important;
  margin-inline: auto !important;
}

/* HÁROM hasáb, nem négy: fölötte három kategóriakártya áll, és a
   megrendelő azt kérte, hogy a kettő egy vonalban legyen. */
body.mv-theme .elementor-widget-loop-grid .elementor-loop-container,
body.mv-theme .elementor-widget-loop-grid .elementor-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(1rem, 1.8vw, 1.6rem) !important;
}

@media (max-width: 1200px) {
  body.mv-theme .elementor-widget-loop-grid .elementor-loop-container,
  body.mv-theme .elementor-widget-loop-grid .elementor-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 860px) {
  body.mv-theme .elementor-widget-loop-grid .elementor-loop-container,
  body.mv-theme .elementor-widget-loop-grid .elementor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 520px) {
  body.mv-theme .elementor-widget-loop-grid .elementor-loop-container,
  body.mv-theme .elementor-widget-loop-grid .elementor-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* --- A kártya kompaktabb ------------------------------------------------- */

/* A kártyakép is FEKVŐ: a termékek kiemelt fotói mind fekvők (2560×1706
   körül), az álló keret levágta a palack egy részét. */
body.mv-theme .e-loop-item .elementor-widget-image img {
  aspect-ratio: 3 / 2 !important;
  object-fit: cover !important;
  object-position: center !important;
}

body.mv-theme .e-loop-item .elementor-widget-heading {
  padding: 1rem 1.1rem 0 !important;
}

body.mv-theme .e-loop-item .elementor-heading-title {
  font-size: 1.15rem !important;
}

body.mv-theme .e-loop-item .elementor-widget-text-editor:has(.woocommerce-Price-amount),
body.mv-theme .e-loop-item .elementor-widget-text-editor:has(.price) {
  padding: 0.35rem 1.1rem 0.9rem !important;
}

body.mv-theme .e-loop-item .woocommerce-Price-amount,
body.mv-theme .e-loop-item .price {
  font-size: 1.05rem !important;
}

body.mv-theme .e-loop-item .elementor-widget-button {
  padding-inline: 1.1rem !important;
}

body.mv-theme .e-loop-item .elementor-widget-button:last-of-type {
  padding-bottom: 1.1rem !important;
}

body.mv-theme .e-loop-item .elementor-button,
body.mv-theme .e-loop-item a.button {
  min-height: 2.6rem !important;
  padding: 0.75em 1.1em !important;
  font-size: 0.625rem !important;
  letter-spacing: 0.16em !important;
}

body.mv-theme .e-loop-item .elementor-widget-button + .elementor-widget-button .elementor-button {
  min-height: 2rem !important;
  font-size: 0.625rem !important;
}

/* ==========================================================================
   4. TERMÉKOLDAL
   --------------------------------------------------------------------------
   A lap két Elementor szekcióból áll: egy keskeny sávból a „Vissza a
   termékekhez" gombbal, és a tartalmi szekcióból. Utóbbi két alkonténert
   tart: egy SZÖVEGOSZLOPOT (morzsa, cím, leírás, ár, kosár) és a GALÉRIÁT.

   Ami rossz volt, és amiért:
     · a vissza-gomb egy 124 képpontos üres sáv közepén lebegett, 80 képpont
       felső térközzel — a lap egy céltalan fehér mezővel indult;
     · a morzsa a jobb oszlopban, jobbra igazítva állt, miközben a galéria
       balra kezdődött: a szem nem talált kezdőpontot;
     · a szövegoszlop sorrendje morzsa → cím → HOSSZÚ LEÍRÁS → ár → kosár
       volt, tehát az ár másfél ezer képponttal a név alatt kötött ki;
     · a két oszlop 320, illetve 304 képpont széles maradt egy 639 képpontos
       rácsban, ezért állt szét az egész.

   Amit egy vásárló ismer, és ami itt épül: balra a kép, jobbra a döntés
   (név, ár, kosár), alattuk elválasztva a részletes leírás.
   ========================================================================== */

/* --- A lap indítása: a vissza-gomb sávja -------------------------------- */

body.mv-theme.single-product .elementor-element-62b7e49 {
  padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.25rem, 2.8vw, 2.5rem) 0 !important;
}

body.mv-theme.single-product .elementor-element-62b7e49 > .e-con-inner {
  max-width: 1320px !important;
  margin-inline: auto !important;
  align-items: flex-start !important;
}

/* A gomb nem plakát: visszafogott, szöveges visszaút, balra. */
body.mv-theme.single-product .elementor-element-62b7e49 .elementor-widget-button {
  width: auto !important;
  margin: 0 !important;
  text-align: left !important;
}

body.mv-theme.single-product .elementor-element-62b7e49 .elementor-button {
  min-height: 0 !important;
  padding: 0.5em 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--mv-graphite-mute, #6E767E) !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.16em !important;
}

body.mv-theme.single-product .elementor-element-62b7e49 .elementor-button::before { content: none !important; }

body.mv-theme.single-product .elementor-element-62b7e49 .elementor-button:hover {
  color: var(--mv-dresden-deep, #262F40) !important;
  background: transparent !important;
}

/* --- A tartalmi szekció -------------------------------------------------- */

body.mv-theme.single-product .elementor-element-12f39fb9 {
  padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1.25rem, 2.8vw, 2.5rem) clamp(4rem, 8vw, 7rem) !important;
}

@media (min-width: 900px) {
  body.mv-theme.single-product .elementor-element-12f39fb9 > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr) !important;
    column-gap: clamp(2.5rem, 5vw, 5rem) !important;
    row-gap: 0 !important;
    align-items: start !important;
    max-width: 1320px !important;
    margin-inline: auto !important;
  }

  body.mv-theme.single-product .elementor-element-12f39fb9 > .e-con-inner > .e-con {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    padding: 0 !important;
  }

  /* GALÉRIA balra, a cím vonalában indulva, és követi a görgetést. */
  body.mv-theme.single-product .elementor-element-12f39fb9 > .e-con-inner > .e-con:has(.elementor-widget-woocommerce-product-images) {
    grid-column: 1 !important;
    order: 1 !important;
    position: sticky !important;
    top: 7rem !important;
    align-self: start !important;
  }

  /* ADATOK jobbra. */
  body.mv-theme.single-product .elementor-element-12f39fb9 > .e-con-inner > .e-con:has(.elementor-widget-woocommerce-product-title) {
    grid-column: 2 !important;
    order: 2 !important;
  }
}

/* --- A jobb oszlop sorrendje és ritmusa ---------------------------------- */

body.mv-theme.single-product .elementor-element-4bd58beb {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > * {
  width: 100% !important;
  max-width: 100% !important;
  text-align: left !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-breadcrumb {
  order: 1 !important;
  margin: 0 0 clamp(0.75rem, 1.5vw, 1.25rem) !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-title {
  order: 2 !important;
  margin: 0 0 clamp(0.75rem, 1.5vw, 1.1rem) !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-price {
  order: 3 !important;
  margin: 0 0 clamp(1.5rem, 3vw, 2.25rem) !important;
  padding: 0 !important;
  border: 0 !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-notices {
  order: 4 !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-add-to-cart {
  order: 5 !important;
  margin: 0 !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-content {
  order: 9 !important;
  max-width: 62ch !important;
  margin: clamp(2.5rem, 5vw, 3.5rem) 0 0 !important;
  padding-top: clamp(1.75rem, 3.5vw, 2.5rem) !important;
  border-top: 1px solid rgba(28, 32, 36, 0.14) !important;
}

/* --- A jobb oszlop elemei ------------------------------------------------ */

body.mv-theme.single-product .woocommerce-breadcrumb,
body.mv-theme.single-product .elementor-widget-woocommerce-breadcrumb {
  text-align: left !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.14em !important;
}

body.mv-theme.single-product .elementor-widget-woocommerce-product-title .elementor-heading-title,
body.mv-theme.single-product .product_title {
  font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.75rem) !important;
  line-height: 1.08 !important;
  margin: 0 !important;
  text-align: left !important;
}

body.mv-theme.single-product .elementor-widget-woocommerce-product-price .price,
body.mv-theme.single-product .elementor-widget-woocommerce-product-price .woocommerce-Price-amount {
  font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.1rem) !important;
  color: var(--mv-dresden-deep, #262F40) !important;
}

/* A kosár sávja: egy lap, ami összefogja a mennyiséget és a gombot, hogy a
   vásárló egy helyen lássa a döntést. */
body.mv-theme.single-product .elementor-widget-woocommerce-product-add-to-cart {
  padding: clamp(1.25rem, 2.5vw, 1.75rem) !important;
  border: 1px solid rgba(28, 32, 36, 0.14) !important;
  border-radius: 16px !important;
  background: var(--mv-silver-hi, #F4F6F7) !important;
}

body.mv-theme.single-product .elementor-widget-woocommerce-product-add-to-cart .stock {
  margin: 0 !important;
}

/* --- Galéria ------------------------------------------------------------- */

body.mv-theme.single-product .elementor-widget-woocommerce-product-images,
body.mv-theme.single-product .woocommerce-product-gallery {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  margin: 0 !important;
}

/* A slider SÁVJÁHOZ (`__wrapper`) nem nyúlunk: a FlexSlider azt tolja
   oldalra képváltáskor, és ha `display: flex`-re állítjuk, a képek
   kétszeres méretben ugranak szét (mérve 1278 képpont egy 639-es dobozban).
   Csak magára a képre szabunk méretet. */
body.mv-theme.single-product .woocommerce-product-gallery__image > img,
body.mv-theme.single-product .woocommerce-product-gallery__image > a > img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  border-radius: 0 !important;
}

/* ==========================================================================
   5. LÁBLÉC — egyetlen kék, nem kettő
   A külső elem a régi éjkéken maradt (`#070B14`), a belső sávja már a mély
   kéken — a kettő határa látszott elütő csíkként.
   ========================================================================== */

/* A lábléc a bolti oldalakon UGYANAZ, mint a főoldalon: a hátteret a paletta
   réteg festi, egyetlen, a lábléc teljes magasságán végigfutó átmenettel. Itt
   csak a benne ülő szekciók saját hátterét vesszük el — ez rajzolta ki a
   csíkokat. (Korábban ez a blokk lapos színt kényszerített, és ezért NEM
   nézett ki úgy, mint a főoldalon.) */
body.mv-theme .elementor-location-footer > .e-con,
body.mv-theme .elementor-location-footer > .e-con.e-parent {
  background-color: transparent !important;
  background-image: none !important;
}

/* ==========================================================================
   6. MOBIL
   ========================================================================== */

@media (max-width: 899px) {
  body.mv-theme.single-product .elementor-element-12f39fb9 > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
  }

  body.mv-theme.single-product .elementor-widget-woocommerce-breadcrumb { order: 1 !important; }
  body.mv-theme.single-product .elementor-widget-woocommerce-product-images { order: 2 !important; }
  body.mv-theme.single-product .elementor-widget-woocommerce-product-title { order: 3 !important; }
  body.mv-theme.single-product .elementor-widget-woocommerce-product-price { order: 4 !important; }
  body.mv-theme.single-product .elementor-widget-woocommerce-product-add-to-cart { order: 5 !important; }
  body.mv-theme.single-product .elementor-widget-woocommerce-product-content,
  body.mv-theme.single-product .elementor-widget-theme-post-content { order: 9 !important; }
}

/* ==========================================================================
   7. GALÉRIA BÉLYEGSOR
   --------------------------------------------------------------------------
   A WooCommerce a bélyegeket FlexSlider-navigációként rakja ki, ami alapból
   ABSZOLÚT pozicionált a fő képre. Miután a galéria dobozát auto magasságúra
   engedtük, ez a navigáció 2×2 képpontra omlott össze, és rácsúszott a képre.
   Itt visszatesszük a normál folyamba, a kép alá, egyenlő méretű bélyegekkel.
   ========================================================================== */

body.mv-theme.single-product .flex-control-nav,
body.mv-theme.single-product .flex-control-thumbs {
  position: static !important;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0.6rem !important;
  width: 100% !important;
  height: auto !important;
  margin: 0.75rem 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
  overflow: visible !important;
}

body.mv-theme.single-product .flex-control-thumbs li {
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  list-style: none !important;
}

body.mv-theme.single-product .flex-control-thumbs li img {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  border: 1px solid rgba(28, 32, 36, 0.12) !important;
  opacity: 0.6 !important;
  cursor: pointer;
  transition: opacity 380ms cubic-bezier(0.22, 0.61, 0.36, 1),
              border-color 380ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

body.mv-theme.single-product .flex-control-thumbs li img:hover,
body.mv-theme.single-product .flex-control-thumbs li img.flex-active {
  opacity: 1 !important;
  border-color: var(--mv-dresden-deep, #262F40) !important;
}

/* A fő kép sávja. A FlexSlider a viewport magasságát INLINE, helyesen írja
   ki (mérve 799 képpont a 799 képpontos képhez) — az én `height: auto`
   felülírásom rontotta 400-ra, és emiatt csúszott a bélyegsor a képre.
   A magasságot tehát a sliderre bízzuk, csak a sarkot kerekítjük. */
body.mv-theme.single-product .flex-viewport {
  overflow: hidden !important;
  border-radius: 18px !important;
}

/* A slider SÁVJÁHOZ (`__wrapper`) nem nyúlunk: a FlexSlider azt tolja
   oldalra képváltáskor, és ha `display: flex`-re állítjuk, a képek
   kétszeres méretben ugranak szét (mérve 1278 képpont egy 639-es dobozban).
   Csak magára a képre szabunk méretet. */
body.mv-theme.single-product .woocommerce-product-gallery__image > img,
body.mv-theme.single-product .woocommerce-product-gallery__image > a > img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
}

/* A nagyító ikon a sarokban maradjon, ne nőjön bele a képbe. */
body.mv-theme.single-product .woocommerce-product-gallery__trigger {
  top: 1rem !important;
  right: 1rem !important;
  z-index: 5 !important;
}

/* ==========================================================================
   8. FINOMÍTÁS — halk körvonalak, kis elemek
   --------------------------------------------------------------------------
   A bolt eddig hangosabb volt a főoldalnál: a kártyák 18 képpontos sarkot,
   látható keretet és mély vetett árnyékot kaptak, a képek pedig ráadásul a
   sötét réteg saját, nagyon erős képárnyékát is örökölték (mérve
   `0 30px 60px -25px rgba(0,0,0,0.8)`) — kártyán belül ez kétszeres doboz.

   Innentől egyetlen dolog rajzolja körbe a dolgokat: egy hajszálvékony, alig
   látható vonal. Mozgás alig van. A prémium érzés a nyugalomból jön.
   ========================================================================== */

body.mv-theme {
  --mv-hairline: rgba(28, 32, 36, 0.09);
  --mv-hairline-strong: rgba(28, 32, 36, 0.14);
}

/* --- Kártyán belüli képek: se árnyék, se sarok, se hover ----------------- */

body.mv-theme .e-loop-item img,
body.mv-theme li.product-category img,
body.mv-theme.single-product .woocommerce-product-gallery img {
  box-shadow: none !important;
  border-radius: 0 !important;
  filter: none !important;
  transform: none !important;
  transition: none !important;
}

body.mv-theme .e-loop-item:hover img,
body.mv-theme li.product-category:hover img,
body.mv-theme li.product-category > a:hover img {
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
}

/* --- Kategóriakártya: keret nélkül, egyetlen halk vonallal a név fölött -- */

body.mv-theme li.product-category > a {
  border: 0 !important;
  border-radius: 12px !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: opacity 420ms cubic-bezier(0.22, 0.61, 0.36, 1) !important;
}

body.mv-theme li.product-category > a:hover {
  transform: none !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 0.82;
}

body.mv-theme li.product-category img {
  border-radius: 12px !important;
  aspect-ratio: 5 / 4 !important;
}

/* A név nem sávban ül, hanem a kép alatt, csendben. */
body.mv-theme .woocommerce-loop-category__title {
  background: transparent !important;
  padding: 0.85rem 0.15rem 0 !important;
  font-size: 1rem !important;
  letter-spacing: 0.01em !important;
}

/* --- Termékkártya: hajszálvonal, alig érzékelhető emelés ----------------- */

body.mv-theme .e-loop-item {
  border: 1px solid var(--mv-hairline) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  transition: border-color 420ms cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 420ms cubic-bezier(0.22, 0.61, 0.36, 1) !important;
}

body.mv-theme .e-loop-item:hover {
  transform: none !important;
  border-color: rgba(38, 47, 64, 0.22) !important;
  box-shadow: 0 10px 24px -20px rgba(25, 30, 41, 0.35) !important;
}

/* ==========================================================================
   9. TERMÉKOLDAL — GALÉRIA ÉS MÉRETEK
   --------------------------------------------------------------------------
   A galériából eddig egy CSÍK látszott: az oldal saját szabálya
   (`#my-products .flex-viewport { height: 400px !important }`) egy 400
   képpontos ablakot vágott a 813 képpont magas kép elé. Az ablakot azonos
   erővel (ugyanazzal az azonosítóval) írjuk felül, és a keretet arányra
   állítjuk, hogy a kép EGÉSZBEN, mindig ugyanakkorán jelenjen meg.

   A galéria egyben kisebb is lesz: egy 460 képpont széles hasáb elég egy
   parfümös üveghez, és így a név, az ár és a kosár egy képernyőn marad vele.
   ========================================================================== */

body.mv-theme.single-product {
  /* FEKVŐ galéria. A fehér hátterű stúdiófotók kivétele után minden
     megmaradt kép fekvő (mérve 1,44–1,53 közötti arány, a többség pontosan
     3:2), az álló keret tehát pont a lényeget vágta le a széleken. */
  --mv-gal: 3 / 2;
}

@media (min-width: 900px) {
  body.mv-theme.single-product .elementor-element-12f39fb9 > .e-con-inner > .e-con:has(.elementor-widget-woocommerce-product-images) {
    max-width: 580px !important;
  }
}

body.mv-theme.single-product #my-products .flex-viewport,
body.mv-theme.single-product .woocommerce-product-gallery .flex-viewport {
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: var(--mv-gal) !important;
  border-radius: 12px !important;
  border: 1px solid var(--mv-hairline) !important;
  background: #FFFFFF !important;
}

/* A slider sávjához nem nyúlunk (oldalra tolja a lapokat), de a LAPOK
   arányát megszabjuk — így nem a kép natív magassága dönt. */
body.mv-theme.single-product .woocommerce-product-gallery__image {
  aspect-ratio: var(--mv-gal) !important;
  height: auto !important;
}

body.mv-theme.single-product .woocommerce-product-gallery__image > a {
  display: block !important;
  height: 100% !important;
}

body.mv-theme.single-product .woocommerce-product-gallery__image img,
body.mv-theme.single-product .woocommerce-product-gallery__image > a > img,
body.mv-theme.single-product img.zoomImg {
  width: 100% !important;
  height: 100% !important;
  /* `contain`, nem `cover`: a keretbe ILLESZTJÜK a fotót, nem kitöltjük vele.
     Így egyetlen képből sem vágódik le semmi — a galériában maradt egy álló
     felvétel is (a 21.jpg), az így szintén egészben látszik. */
  object-fit: contain !important;
  object-position: center !important;
}

/* Bélyegek: apró, négyzetes sor a kép alatt. */
body.mv-theme.single-product .flex-control-thumbs {
  gap: 0.5rem !important;
  margin-top: 0.65rem !important;
}

body.mv-theme.single-product .flex-control-thumbs li img {
  border-radius: 8px !important;
  border: 1px solid var(--mv-hairline) !important;
  aspect-ratio: 3 / 2 !important;
  object-fit: cover !important;
}

/* A nagyító apró jel a sarokban, nem gomb. */
body.mv-theme.single-product .woocommerce-product-gallery__trigger {
  top: 0.75rem !important;
  right: 0.75rem !important;
  width: 2rem !important;
  height: 2rem !important;
  opacity: 0.55;
}

body.mv-theme.single-product .woocommerce-product-gallery__trigger:hover {
  opacity: 1;
}

/* --- Az adatoszlop: kisebb betűk, szűkebb dobozok ------------------------ */

body.mv-theme.single-product .elementor-widget-woocommerce-product-title .elementor-heading-title,
body.mv-theme.single-product .product_title {
  font-size: clamp(1.55rem, 1.2rem + 1.1vw, 2.1rem) !important;
}

body.mv-theme.single-product .elementor-widget-woocommerce-product-price .price,
body.mv-theme.single-product .elementor-widget-woocommerce-product-price .woocommerce-Price-amount {
  font-size: clamp(1.25rem, 1rem + 0.8vw, 1.55rem) !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-price {
  margin-bottom: clamp(1.1rem, 2vw, 1.6rem) !important;
}

/* A kosár nem plakát: egy halk keretű lap, szűk térközzel. */
body.mv-theme.single-product .elementor-widget-woocommerce-product-add-to-cart {
  padding: clamp(0.9rem, 1.6vw, 1.15rem) !important;
  border: 1px solid var(--mv-hairline) !important;
  border-radius: 12px !important;
  background: #FFFFFF !important;
}

body.mv-theme.single-product .elementor-widget-woocommerce-product-add-to-cart .button,
body.mv-theme.single-product .elementor-widget-woocommerce-product-add-to-cart button {
  min-height: 2.75rem !important;
  padding: 0.8em 1.4em !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.16em !important;
  border-radius: 8px !important;
}

body.mv-theme.single-product .elementor-widget-woocommerce-product-content {
  font-size: 0.95rem !important;
  line-height: 1.75 !important;
}

/* A leírás elválasztója is hajszálvékony. */
body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-content {
  border-top-color: var(--mv-hairline) !important;
}

/* ==========================================================================
   10. TERMÉKOLDAL — a maradék üres terek és túlméretezett részletek
   --------------------------------------------------------------------------
   Mérve maradt három baj:
     · a rács a galériának 650 képpontos oszlopot adott, a galéria viszont
       460 — 190 képpont üresség állt a kép és a szöveg között;
     · az ár 147 képpont magas volt: 24 margó + 24 térköz + 40 képpontos
       betű. A méretszabályom a widgetre szólt, az `p.price` fölé nem ért;
     · a morzsa alatt 44 képpontos üres sáv nyílt.
   ========================================================================== */

@media (min-width: 900px) {
  body.mv-theme.single-product .elementor-element-12f39fb9 > .e-con-inner {
    grid-template-columns: minmax(0, 580px) minmax(0, 1fr) !important;
    column-gap: clamp(2rem, 4vw, 3.75rem) !important;
    max-width: 1180px !important;
  }
}

/* Az ár: a lapon a második legfontosabb jel, de nem plakát. */
body.mv-theme.single-product .elementor-element-4bd58beb .price,
body.mv-theme.single-product p.price {
  font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.7rem) !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  color: var(--mv-dresden-deep, #262F40) !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb .woocommerce-Price-amount,
body.mv-theme.single-product .elementor-element-4bd58beb .woocommerce-Price-currencySymbol {
  font-size: inherit !important;
}

/* A morzsa egy sor, nem sáv. */
body.mv-theme.single-product .woocommerce-breadcrumb {
  margin: 0 !important;
}

/* Készlethiánynál a „Elfogyott" felirat marad az egyetlen tartalom; ilyenkor
   a kosárlap ne üres dobozként ásítson. */
body.mv-theme.single-product .elementor-widget-woocommerce-product-add-to-cart:has(.out-of-stock) {
  padding: 0.75rem 1rem !important;
  background: var(--mv-silver-hi, #F4F6F7) !important;
}

body.mv-theme.single-product .stock.out-of-stock {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--mv-graphite-mute, #6E767E) !important;
}

/* Az adatoszlop térközeit egyedül a widgetek margói adják. Az Elementor
   konténer saját sorköze (mérve 20 képpont) minden réshez hozzáadódott, így
   a név és az ár közé 38, a kosár elé 66 képpont került. */
body.mv-theme.single-product .elementor-element-4bd58beb {
  gap: 0 !important;
  row-gap: 0 !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget {
  margin-bottom: 0 !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-breadcrumb { margin-bottom: 1.25rem !important; }
body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-title { margin-bottom: 0.9rem !important; }
body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-price { margin-bottom: 1.5rem !important; }

body.mv-theme.single-product .elementor-element-4bd58beb p.price {
  margin-bottom: 0 !important;
}

/* ==========================================================================
   11. AMIT A SÖTÉT RÉTEG ERŐSEBBEN MOND
   --------------------------------------------------------------------------
   A főoldal képszabálya (`… .elementor:not(header):not(footer) img`) négy
   osztályt visz, ezért a kártyaképek 18 képpontos sarka túlélte a
   `border-radius: 0`-t. Itt azonos súllyal írjuk felül.
   ========================================================================== */

body.mv-theme .elementor:not(.elementor-location-header):not(.elementor-location-footer) .e-loop-item img,
body.mv-theme .elementor:not(.elementor-location-header):not(.elementor-location-footer) li.product-category img,
body.mv-theme .elementor:not(.elementor-location-header):not(.elementor-location-footer) .woocommerce-product-gallery img {
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
}

body.mv-theme .elementor:not(.elementor-location-header):not(.elementor-location-footer) li.product-category img {
  border-radius: 12px !important;
}

/* ==========================================================================
   12. WEBSHOP — CÍMSÁV ÉS KÁRTYAMAGASSÁG
   --------------------------------------------------------------------------
   A címsáv 340 képpont magas volt egyetlen szó miatt: a szekció 64 képpontos
   térközére a belső konténer további 80-at rakott. A kártyákon a gombsor 44
   képpontos üres réssel indult.
   ========================================================================== */

body.mv-theme .elementor-element-4b0e9e4 {
  padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 2.8vw, 2.5rem) clamp(2rem, 4vw, 3rem) !important;
}

body.mv-theme .elementor-element-4b0e9e4 > .e-con-inner {
  padding: 0 !important;
  max-width: 1320px !important;
  margin-inline: auto !important;
  row-gap: 1.25rem !important;
}

body.mv-theme .elementor-element-4b0e9e4 .elementor-heading-title {
  font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem) !important;
  margin-bottom: 0 !important;
}

body.mv-theme .elementor-element-4b0e9e4 .elementor-widget-heading {
  margin-bottom: 0 !important;
}

/* A kártya alsó gombsora a szöveghez tapad, nem lebeg. */
body.mv-theme .e-loop-item > .e-con > .e-con:last-child {
  margin-top: 0.75rem !important;
}

/* A sötét réteg képszabálya hat `:not()` osztályt visz (dark.css:981), ezért
   a bolti kártyaképeken azonos mintával kell felülírni. A boltban a kép a
   kártya része: a sarkot a KÁRTYA adja, a kép maga szögletes és sík. */
body.mv-theme .elementor:not(.elementor-location-header):not(.elementor-location-footer) .e-loop-item .elementor-widget-image:not(.elementor-widget-theme-site-logo) img,
body.mv-theme .elementor:not(.elementor-location-header):not(.elementor-location-footer) .e-loop-item .elementor-widget-image:not(.elementor-widget-theme-site-logo):hover img {
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
}

/* A lábléc kerete majdnem fekete volt (mérve #070B14), a benne ülő szekció
   viszont már a márka legmélyebb kékje — így egy sötét csík rajzolódott ki
   a lábléc szélén. A hátteret magán a láblécen a PALETTA réteg festi (egyetlen
   átmenet, ahogy a főoldalon); itt csak a benne ülő dobozokat töröljük.
   Korábban ez a blokk a láblécre is lapos színt kényszerített, és épp ezért
   nem nézett ki úgy, mint a főoldalon. */
body.mv-theme .elementor-location-footer > .e-con,
body.mv-theme .elementor-location-footer > .e-con > .e-con-inner {
  background-color: transparent !important;
  background-image: none !important;
}

/* ==========================================================================
   13. AMI A KÉPEKRŐL LÁTSZIK
   --------------------------------------------------------------------------
   Három baj, mindhárom öröklés a sötét rétegből:
     · a kategórianév sötét betűvel ül egy sötét sávon — a sávot a `li` és a
       lista háttere adja, nem a címsor, ezért a címsor átlátszóvá tétele
       önmagában nem segített;
     · hover volt a dobozon ÉS a képen is, kettő egymás hegyén;
     · a lábléc szekcióin belüli konténerek megtartották a saját, feketébe
       hajló hátterüket, ezért csíkozódott.
   ========================================================================== */

/* --- Kategóriakártya: fehér lap, levegővel --------------------------------- */

body.mv-theme .woocommerce ul.products,
body.mv-theme .woocommerce ul.products li.product-category,
body.mv-theme .woocommerce ul.products li.product-category > a,
body.mv-theme li.product-category,
body.mv-theme li.product-category > a {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

body.mv-theme .woocommerce ul.products li.product-category {
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem) !important;
  padding: 0 !important;
}

body.mv-theme .woocommerce ul.products li.product-category h2,
body.mv-theme .woocommerce ul.products li.product-category .woocommerce-loop-category__title {
  background: transparent !important;
  color: var(--mv-graphite, #1C2024) !important;
  padding: 0.9rem 0.2rem 0 !important;
  transition: color 380ms cubic-bezier(0.22, 0.61, 0.36, 1) !important;
}

body.mv-theme .woocommerce ul.products li.product-category .count {
  color: var(--mv-graphite-mute, #6E767E) !important;
}

/* EGY hover, és az is csak a néven: a kép meg sem rezdül. */
body.mv-theme li.product-category > a,
body.mv-theme li.product-category > a:hover,
body.mv-theme .woocommerce ul.products li.product-category:hover > a {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

body.mv-theme li.product-category > a:hover .woocommerce-loop-category__title,
body.mv-theme .woocommerce ul.products li.product-category:hover .woocommerce-loop-category__title,
body.mv-theme .woocommerce ul.products li.product-category:hover h2 {
  color: var(--mv-dresden-deep, #262F40) !important;
  background: transparent !important;
}

body.mv-theme li.product-category:hover img,
body.mv-theme li.product-category > a:hover img,
body.mv-theme .woocommerce ul.products li.product-category:hover img {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
}

/* --- Termékoldal: a készlet állapota ---------------------------------------
   Az „Elfogyott" egy pirulába zárt, színtelen felirat volt egy majdnem
   láthatatlan doboz közepén. Egy állapotjelzés nem gomb: ezüst lapon ül,
   a márka kékjének halkabb árnyalatában. */

body.mv-theme.single-product .elementor-widget-woocommerce-product-add-to-cart:has(.out-of-stock) {
  padding: 1rem 1.15rem !important;
  margin: 0.25rem 0 0 !important;
  background: var(--mv-silver, #E6E9EC) !important;
  border: 0 !important;
  border-radius: 10px !important;
}

body.mv-theme.single-product .stock.out-of-stock,
body.mv-theme.single-product p.stock {
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--mv-dresden-deep, #262F40) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  text-align: left !important;
}

/* Az ár és a készletjelzés közé levegő kell, alá is. */
body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-add-to-cart {
  margin-bottom: 0.5rem !important;
}

/* --- Lábléc: egyetlen szín, csíkok nélkül --------------------------------- */

/* A lábléc SAJÁT hátterét a paletta réteg festi (egyetlen, végigfutó
   átmenet); itt csak a benne ülő dobozokat töröljük, hogy ne rajzolódjanak
   ki csíkként. Magát a láblécet szándékosan nem érintjük. */
body.mv-theme .elementor-location-footer .e-con,
body.mv-theme .elementor-location-footer .e-con-inner,
body.mv-theme .elementor-location-footer .elementor-widget-wrap,
body.mv-theme .elementor-location-footer section,
body.mv-theme .elementor-location-footer .elementor-column {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* A lábléc tetején egy hajszálvékony világos vonal futott (mérve
   `rgba(214,205,190,0.07)`) — a sötét lapon nem tűnt fel, a márkakéken igen. */
body.mv-theme .elementor-location-footer {
  border-top: 0 !important;
}

/* A mélyebben ülő láblécszekciók is átlátszók: a sötét réteg leszármazott
   szelektorral (`… .elementor-location-footer .e-con`) mindegyiket befestette. */
body.mv-theme .elementor-location-footer .e-con,
body.mv-theme .elementor-location-footer .e-con .e-con,
body.mv-theme .elementor-location-footer .e-con-inner {
  background-color: transparent !important;
  background-image: none !important;
  border-top: 0 !important;
}

/* A készletlap ezüstje nem fogott: a bolti rétegek „minden konténer
   átlátszó" szabálya erősebb szelektorral ült rajta. Az oszlop azonosítóján
   keresztül célozzuk, így már nyer. */
body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-add-to-cart {
  background-color: var(--mv-silver-hi, #F4F6F7) !important;
  background-image: none !important;
  border: 1px solid rgba(28, 32, 36, 0.09) !important;
  border-radius: 10px !important;
}

body.mv-theme.single-product .elementor-element-4bd58beb > .elementor-widget-woocommerce-product-add-to-cart:has(.out-of-stock) {
  background-color: var(--mv-silver, #E6E9EC) !important;
  border-color: transparent !important;
}

/* ==========================================================================
   A KÉP KAPJA A SAROKÁT, NEM A DOBOZ
   --------------------------------------------------------------------------
   A galéria `contain`-nel illeszti a fotót: a kép kisebb lehet a keretnél,
   ezért a KERETRE tett lekerekítés nem is látszik rajta. Mérve a doboz 12,
   a kép 0 képpontos sarkot viselt — pont fordítva. Innentől minden
   megjelenített felvétel (fekvő és álló egyaránt) ugyanazt a sarkot kapja,
   a keret pedig kerettelen marad.
   ========================================================================== */

body.mv-theme.single-product .woocommerce-product-gallery__image img,
body.mv-theme.single-product .woocommerce-product-gallery__image > a > img,
body.mv-theme.single-product .woocommerce-product-gallery__wrapper img {
  border-radius: 12px !important;
}

body.mv-theme.single-product .flex-viewport,
body.mv-theme.single-product #my-products .flex-viewport,
body.mv-theme.single-product .woocommerce-product-gallery {
  border-radius: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* A NAGYÍTÁS elmarad: sem gomb, sem lupe. */
body.mv-theme.single-product .woocommerce-product-gallery__trigger,
body.mv-theme.single-product img.zoomImg {
  display: none !important;
}

/* A képsarok a sötét réteg mintájával, azonos súllyal — az a szabály hat
   `:not()` osztályt visz, ezért a rövidebb szelektorom alatta maradt. */
body.mv-theme.single-product .elementor:not(.elementor-location-header):not(.elementor-location-footer) .woocommerce-product-gallery__image img,
body.mv-theme.single-product .elementor:not(.elementor-location-header):not(.elementor-location-footer) .woocommerce-product-gallery__wrapper img,
body.mv-theme.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
body.mv-theme.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > a > img {
  border-radius: 12px !important;
}

/* A kis képek sora is kerek sarkot kap, a nagy kép mintájára. */
body.mv-theme.single-product .elementor:not(.elementor-location-header):not(.elementor-location-footer) .flex-control-thumbs img,
body.mv-theme.single-product .woocommerce-product-gallery .flex-control-thumbs li img,
body.mv-theme.single-product .flex-control-thumbs li img {
  border-radius: 8px !important;
}

/* ==========================================================================
   A KÉP SARKA VALÓBAN LÁTSZIK
   --------------------------------------------------------------------------
   Az előző javításom hibás volt: `object-fit: contain` mellett a kép KISEBB,
   mint a doboza, a `border-radius` viszont a dobozra vonatkozik — a sarok
   tehát ott kerekedett, ahol nincs képtartalom, a fotó maga élesen maradt.

   Megoldás: a doboz igazodjon a képhez, ne fordítva. A kép a saját méretében
   áll (arányosan a kerethez illesztve), a doboza így pontosan akkora, mint ő
   — a lekerekítés ezért a fotó sarkán jelenik meg. Levágás továbbra sincs.
   ========================================================================== */

body.mv-theme.single-product .woocommerce-product-gallery__image {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
}

body.mv-theme.single-product .woocommerce-product-gallery__image > a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}

body.mv-theme.single-product .elementor:not(.elementor-location-header):not(.elementor-location-footer) .woocommerce-product-gallery__image img,
body.mv-theme.single-product .woocommerce-product-gallery__image img,
body.mv-theme.single-product .woocommerce-product-gallery__image > a > img {
  /* A MAGASSÁG a kereté, a SZÉLESSÉGET az arány adja — így a kép doboza
     pontosan akkora, mint a fotó, tehát a lekerekítés a fotó sarkán
     jelenik meg, és semmi nem torzul.
     (`width: auto` + `height: auto` mellett a böngésző 309×387-re nyomta
     össze a 1,45 arányú felvételt; ez a fordított kötés a helyes.) */
  height: 100% !important;
  width: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  border-radius: 12px !important;
  display: block !important;
}

/* A kép flex-gyerekként összement: alapból `flex-shrink: 1`, ezért a
   580 képpontos keretben 309-re nyomódott, és a 1,45 arányú felvétel
   0,80-ra torzult. Nem zsugorodhat. */
body.mv-theme.single-product .woocommerce-product-gallery__image img,
body.mv-theme.single-product .woocommerce-product-gallery__image > a > img,
body.mv-theme.single-product .woocommerce-product-gallery__image > a {
  flex: 0 0 auto !important;
  min-width: 0 !important;
}

body.mv-theme.single-product .woocommerce-product-gallery__image > a {
  width: auto !important;
}

/* ==========================================================================
   A GALÉRIA: A FOTÓ SARKA KEREK, NEM A DOBOZÉ
   --------------------------------------------------------------------------
   Eddig hiába tettem lekerekítést a képre: a `modiviam-boutique.css` régi
   szabálya (`… div.product .woocommerce-product-gallery__image img`) erősebb
   volt az enyémnél, és 4:5-re nyújtotta minden felvételt — a mért arány
   0,80 volt az eredeti 1,45 helyett. A :not() láncok itt csak arra valók,
   hogy a szabály súlya biztosan meghaladja azt a régit; a képen nem
   változtatnak semmit.

   Az eredmény: a fotó a saját arányában, torzítás és vágás nélkül áll a
   keretben, függőlegesen középen, és a lekerekítés a FOTÓ sarkán látszik.
   A keret maga láthatatlan — se fehér lap, se körvonal —, hogy ne legyen
   doboz a képen kívül.
   ========================================================================== */

/* A keret: megtartja a helyet (nem ugrál a lapozó), de nem látszik. */
body.mv-theme.single-product #my-products .flex-viewport,
body.mv-theme.single-product .woocommerce-product-gallery .flex-viewport {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

/* A lap: blokk-kontextus, a kép középre igazítva. */
body.mv-theme.single-product .woocommerce-product-gallery__image:not(.mv-a):not(.mv-b):not(.mv-c) {
  display: block !important;
  text-align: center !important;
  font-size: 0 !important;
  line-height: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

body.mv-theme.single-product .woocommerce-product-gallery__image:not(.mv-a):not(.mv-b):not(.mv-c)::before {
  content: "";
  display: inline-block;
  width: 0;
  height: 100%;
  vertical-align: middle;
}

body.mv-theme.single-product .woocommerce-product-gallery__image > a:not(.mv-a):not(.mv-b):not(.mv-c) {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  vertical-align: middle !important;
  background: transparent !important;
  border: 0 !important;
  line-height: 0 !important;
}

/* A FOTÓ maga: saját arány, saját méret, kerek sarok. */
body.mv-theme.single-product .woocommerce-product-gallery__image img:not(.mv-a):not(.mv-b):not(.mv-c),
body.mv-theme.single-product .woocommerce-product-gallery__image > a > img:not(.mv-a):not(.mv-b):not(.mv-c) {
  display: inline-block !important;
  aspect-ratio: auto !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  vertical-align: middle !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  clip-path: none !important;
  border-radius: 14px !important;
}

/* A bélyegsor apró képein ugyanaz a lekerekítés, arányosan kisebb. */
body.mv-theme.single-product .flex-control-thumbs img:not(.mv-a):not(.mv-b):not(.mv-c) {
  border-radius: 8px !important;
}

/* ==========================================================================
   A GALÉRIA — ÁLLANDÓ MAGASSÁGÚ KERET, ARÁNYTARTÓ FOTÓK
   --------------------------------------------------------------------------
   Rossz irányba indultam: hagytam, hogy a keret magassága a képekhez nőjön,
   aztán utólag próbáltam visszahúzni. Mivel a fotók közt van álló (0,67) és
   fekvő (1,45–1,50) is, a keret mindig a legmagasabbhoz állt, és a fekvő
   képek alatt tenyérnyi üres hely maradt a bélyegsorig.

   Itt a keret magassága állandó (3:2), és minden fotó EHHEZ igazodik a saját
   arányát tartva: `height: 100%`, `width: auto`. A fekvő fotó így széles, az
   álló keskeny — de mindkettő pontosan kitölti a magasságot. Ezért soha nincs
   üres sáv a kép alatt, és közben semmi nem nyúlik, nem vágódik: az álló
   felvétel egészben látszik, csak keskenyebben.

   Ez az egész CSS-ből megvan — se JS, se osztálynévre épülő trükk.
   ========================================================================== */

body.mv-theme.single-product #my-products .flex-viewport,
body.mv-theme.single-product .woocommerce-product-gallery .flex-viewport {
  aspect-ratio: 3 / 2 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}

body.mv-theme.single-product .woocommerce-product-gallery__wrapper:not(.mv-a):not(.mv-b):not(.mv-c) {
  height: 100% !important;
}

/* A lap: blokk-kontextus, középre igazított tartalommal. Flexben a kép
   zsugorodna (`flex-shrink` alapból 1), és pont ez torzította korábban
   309×387-re a 1,45-ös felvételt. */
body.mv-theme.single-product .woocommerce-product-gallery__image:not(.mv-a):not(.mv-b):not(.mv-c) {
  display: block !important;
  aspect-ratio: auto !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  text-align: center !important;
  font-size: 0 !important;
  line-height: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

body.mv-theme.single-product .woocommerce-product-gallery__image > a:not(.mv-a):not(.mv-b):not(.mv-c) {
  display: inline-block !important;
  height: 100% !important;
  width: auto !important;
  max-width: 100% !important;
  background: transparent !important;
  border: 0 !important;
  line-height: 0 !important;
}

/* A FOTÓ: teljes magasság, arányos szélesség, kerek sarok mind a négy
   oldalon. A :not() láncok csak súlyt adnak — a `modiviam-boutique.css`
   régi `width: 100%` + `object-fit: cover` szabálya különben visszavenné. */
body.mv-theme.single-product .woocommerce-product-gallery__image img:not(.mv-a):not(.mv-b):not(.mv-c),
body.mv-theme.single-product .woocommerce-product-gallery__image > a > img:not(.mv-a):not(.mv-b):not(.mv-c),
body.mv-theme.single-product .woocommerce-product-gallery__wrapper img:not(.mv-a):not(.mv-b):not(.mv-c) {
  display: inline-block !important;
  aspect-ratio: auto !important;
  height: 100% !important;
  width: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  border-radius: 14px !important;
  border: 0 !important;
  box-shadow: none !important;
  clip-path: none !important;
  background: transparent !important;
  vertical-align: top !important;
}

body.mv-theme.single-product .flex-control-thumbs img:not(.mv-a):not(.mv-b):not(.mv-c) {
  border-radius: 8px !important;
}

/* ==========================================================================
   A NAGYÍTÓ GOMB ELTŰNIK A KÉPNÉZEGETŐBŐL
   --------------------------------------------------------------------------
   A rávitt lupét és a kép fölötti nagyító gombot már korábban levettük, de a
   kattintásra nyíló nézegető saját eszköztárában maradt még egy nagyító —
   azon át továbbra is teljes méretben meg lehetett nyitni a felvételt.

   Kétféle nézegető jöhet szóba (az Elementoré és a WooCommerce PhotoSwipe-ja),
   ezért mindkettő gombját lefedjük. A többi vezérlő — lapozás, bezárás —
   érintetlen marad.
   ========================================================================== */

/* Elementor képnézegető */
body.mv-theme .elementor-slideshow__zoom-in,
body.mv-theme .elementor-lightbox .elementor-slideshow__zoom-in,
body.mv-theme .elementor-slideshow__header .eicon-zoom-in-bold,
body.mv-theme .elementor-slideshow__header .eicon-zoom-out-bold,
/* WooCommerce PhotoSwipe */
body.mv-theme .pswp__button--zoom,
body.mv-theme .pswp .pswp__button--zoom,
body.mv-theme .pswp__top-bar .pswp__button--zoom {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  width: 0 !important;
  opacity: 0 !important;
}

/* A nézegetőben a kép se legyen görgetéssel/csippentéssel nagyítható. */
body.mv-theme .pswp__img,
body.mv-theme .elementor-lightbox .elementor-lightbox-image {
  cursor: default !important;
}
