/* ═══════════════════════════════════════════════
   GREENCEREMONY — UNIFIED CSS (FINAL)
   Mini Cart + Elementor Cart Widget + Checkout
   + Posts widget + Single Post

   MOBILE-FIX REVISION 2
   Changed in this revision (marked with "FIX (v2)"):
   • on phones the mini cart popup is pinned to the VIEWPORT instead
     of the bag icon — it was hanging off the left edge of the screen
     (thumbnail + "ÖSSZEG" label cut off)
   • new knobs: --gc-header-h (sticky header height) and
     --gc-cart-top (where the popup starts), admin-bar aware
   • the old commented-out "escape hatch" block is gone — it is now
     the live fix inside the mini cart mobile media query

   Earlier revision (still marked with "FIX:"):
   • mini cart popup can no longer render wider or taller
     than the viewport
   • long product names can no longer stretch the popup
   • cart / checkout tables get an overflow guard
   • the two duplicate :root blocks were merged into one
═══════════════════════════════════════════════ */

:root {
  --gc-deep:    #334931;
  --gc-mid:     #5A7C4D;
  --gc-accent:  #AFC094;
  --gc-pale:    #E6ECDD;
  --gc-off:     #F7F5EF;
  --gc-cream:   #F7F5EF;   /* alias used by the Single Post section */
  --gc-white:   #FFFFFF;
  --gc-text:    #232723;
  --gc-muted:   #7A8C78;
  --gc-border:  #D8DED0;
  --gc-border2: #C8D4C0;
  --gc-radius:  10px;

  /* FIX: single knob for the mini cart's distance from the screen edge.
     Used BOTH for the popup's offset and for its width calculation, so
     the two can never disagree. Overridden on small screens below. */
  --gc-cart-gutter: 20px;

  /* FIX (v2): height of the sticky header on phones. The mobile mini
     cart popup is pinned to the viewport and drops just below this.
     Measure your header (without the WP admin bar) and set it here. */
  --gc-header-h: 64px;
  --gc-cart-top: var(--gc-header-h);
}

/* FIX (v2): logged-in view — the WP admin bar adds 46px on mobile,
   so the popup has to start that much lower. Visitors never see this. */
body.admin-bar {
  --gc-cart-top: calc(var(--gc-header-h) + 46px);
}

/* ═══════════════════════════════════════════════
   PART 1 — MINI CART (popup from bag icon)
═══════════════════════════════════════════════ */

/* FIX — this rule is where the "pops out of screen" bug lived.
   Three separate causes, all addressed here:

   1) box-sizing was never forced. If the theme doesn't set
      border-box, the 20px padding is added ON TOP of the width,
      so a box capped at 92vw actually rendered at 92vw + 40px
      and spilled off the edge.

   2) The width was capped in vw but the horizontal offset was a
      fixed 20px — two independent numbers that don't know about
      each other. They're now both derived from --gc-cart-gutter.

   3) There was no height cap. On a short screen (or landscape
      phone) the footer buttons ended up below the fold with no
      way to reach them. The box now scrolls internally. */
body .elementor-menu-cart__container .elementor-menu-cart__main {
  box-sizing: border-box !important;
  background: var(--gc-white) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 32px rgba(35,39,35,0.08) !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  color: var(--gc-text) !important;
  padding: 20px !important;

  width: 380px !important;                                              /* fallback */
  width: min(380px, calc(100vw - (var(--gc-cart-gutter) * 2))) !important;
  max-width: calc(100vw - (var(--gc-cart-gutter) * 2)) !important;

  max-height: calc(100vh - 96px) !important;                            /* fallback */
  max-height: calc(100dvh - 96px) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}

/* FIX: force border-box on every descendant too — WooCommerce markup
   is full of elements that pick up padding from the theme. */
body .elementor-menu-cart__container .elementor-menu-cart__main,
body .elementor-menu-cart__container .elementor-menu-cart__main * {
  box-sizing: border-box !important;
}

/* Align popup to the right edge with safe margin.
   NOTE: on desktop this offset is measured from the bag icon's wrapper
   (that's how Elementor anchors the popup), which is fine there because
   the icon sits close to the screen edge. On phones it is NOT fine —
   see the FIX (v2) block in the mobile media query below. */
body .elementor-menu-cart__container {
  right: var(--gc-cart-gutter) !important;
  left: auto !important;
  max-width: 100vw !important;   /* FIX: container itself can't exceed the screen */
}

body .elementor-menu-cart__close-button {
  color: var(--gc-muted) !important;
  font-size: 14px !important;
}

body .elementor-menu-cart__toggle .elementor-button-icon-qty {
  background: var(--gc-mid) !important;
  color: var(--gc-white) !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  border-radius: 50% !important;
  min-width: 18px !important;
  height: 18px !important;
  line-height: 18px !important;
  padding: 0 5px !important;
  top: -4px !important;
  right: -6px !important;
}

body .elementor-menu-cart__toggle .elementor-button-text {
  display: none !important;
}

/* FIX: the product list had a flat 380px cap. On a landscape phone
   that alone is taller than the screen. Now it yields to the viewport. */
body .elementor-menu-cart__products {
  max-height: 380px !important;                    /* fallback */
  max-height: min(380px, 45vh) !important;
  max-height: min(380px, 45dvh) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  background: transparent !important;
}

/* FIX: `1fr` has an automatic minimum of min-content, so a long
   unbroken product name could push the whole popup wider than its
   own max-width. `minmax(0, 1fr)` removes that floor. */
body .elementor-menu-cart__product.cart_item {
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr) !important;
  grid-template-areas:
    "img name"
    "img price" !important;
  column-gap: 14px !important;
  row-gap: 4px !important;
  align-items: center !important;
  padding: 16px 32px 16px 0 !important;
  margin: 0 !important;
  border-bottom: 0.5px solid var(--gc-border) !important;
  background: transparent !important;
  position: relative !important;
  min-width: 0 !important;
}
body .elementor-menu-cart__product.cart_item:last-child {
  border-bottom: none !important;
}

body .elementor-menu-cart__product-image.product-thumbnail {
  grid-area: img !important;
  width: 72px !important;
  height: 72px !important;
  margin: 0 !important;
  padding: 0 !important;
}
body .elementor-menu-cart__product-image.product-thumbnail a,
body .elementor-menu-cart__product-image.product-thumbnail img {
  display: block !important;
  width: 72px !important;
  height: 72px !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  border: 0.5px solid var(--gc-border) !important;
  background: var(--gc-pale) !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0 !important;
}

body .elementor-menu-cart__product-name.product-name {
  grid-area: name !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;   /* FIX: lets the name wrap instead of stretching */
}
body .elementor-menu-cart__product-name.product-name a {
  display: block !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  color: var(--gc-deep) !important;
  text-decoration: none !important;
  text-transform: none !important;
  overflow-wrap: break-word !important;   /* FIX */
  word-break: break-word !important;      /* FIX */
}
body .elementor-menu-cart__product-name.product-name a:hover {
  color: var(--gc-mid) !important;
}

body .elementor-menu-cart__product-price.product-price {
  grid-area: price !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
}
body .elementor-menu-cart__product-price.product-price .quantity {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  flex-wrap: wrap !important;   /* FIX: "2 × 9 990 Ft" can wrap on narrow screens */
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--gc-muted) !important;
  background: transparent !important;
  border: none !important;
  text-transform: none !important;
}
body .elementor-menu-cart__product-price.product-price .product-quantity {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  color: var(--gc-muted) !important;
}
body .elementor-menu-cart__product-price.product-price .woocommerce-Price-amount,
body .elementor-menu-cart__product-price.product-price .woocommerce-Price-currencySymbol {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--gc-deep) !important;
}

body .elementor-menu-cart__product-remove.product-remove {
  position: absolute !important;
  top: 16px !important;
  right: 0 !important;
  width: 24px !important;
  height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
}
body .elementor-menu-cart__product-remove.product-remove a + a {
  display: none !important;
}
body .elementor-menu-cart__product-remove.product-remove a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  text-decoration: none !important;
  font-size: 0 !important;
  color: var(--gc-muted) !important;
}
body .elementor-menu-cart__product-remove.product-remove a:hover {
  background: var(--gc-pale) !important;
}
body .elementor-menu-cart__product-remove.product-remove a::before {
  content: '×' !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  color: var(--gc-muted) !important;
  display: block !important;
}
body .elementor-menu-cart__product-remove.product-remove a:hover::before {
  color: var(--gc-deep) !important;
}

body .elementor-menu-cart__subtotal {
  padding: 16px 0 !important;
  margin: 8px 0 16px 0 !important;
  border-top: 0.5px solid var(--gc-border) !important;
  border-bottom: 0.5px solid var(--gc-border) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 12px !important;
  flex-wrap: wrap !important;   /* FIX: long totals wrap instead of overflowing */
  background: transparent !important;
}
body .elementor-menu-cart__subtotal strong {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--gc-muted) !important;
}
body .elementor-menu-cart__subtotal .woocommerce-Price-amount {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  color: var(--gc-deep) !important;
  letter-spacing: -0.01em !important;
  white-space: nowrap !important;
}

body .elementor-menu-cart__footer-buttons {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

body .elementor-menu-cart__footer-buttons .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;   /* FIX */
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 13px 20px !important;
  border-radius: var(--gc-radius) !important;
  border: 1px solid transparent !important;
  line-height: 1.4 !important;
  height: auto !important;
  min-height: 44px !important;   /* FIX: comfortable tap target */
  text-shadow: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
body .elementor-menu-cart__footer-buttons .elementor-button .elementor-button-text {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  display: inline !important;
}
body .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
  background: transparent !important;
  color: var(--gc-deep) !important;
  border-color: var(--gc-border2) !important;
}
body .elementor-menu-cart__footer-buttons .elementor-button--view-cart .elementor-button-text {
  color: var(--gc-deep) !important;
}
body .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
  background: rgba(51,73,49,0.04) !important;
}
body .elementor-menu-cart__footer-buttons .elementor-button--checkout {
  background: var(--gc-mid) !important;
  color: var(--gc-white) !important;
  border-color: var(--gc-mid) !important;
}
body .elementor-menu-cart__footer-buttons .elementor-button--checkout .elementor-button-text {
  color: var(--gc-white) !important;
}
body .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
  background: var(--gc-deep) !important;
  border-color: var(--gc-deep) !important;
}

/* ── MINI CART — MOBILE ──────────────────────────────────────
   Smaller gutter, tighter padding, smaller thumbnails.

   FIX (v2) — the real cause of the "popup hangs off the screen" bug:
   Elementor anchors the popup to the bag icon's wrapper, not to the
   viewport. On a phone the icon sits LEFT of the hamburger menu, so a
   376px-wide box anchored 12px from the icon's right edge ran off the
   LEFT side of the screen (thumbnail and "ÖSSZEG" label cut off).
   Size caps can't fix an anchoring problem, so on small screens the
   container is pinned to the viewport instead: left + right gutters
   define its width, --gc-cart-top drops it just below the header.

   If the popup STILL sticks to the icon after this, some ancestor of
   the header has `transform`, `filter` or `will-change` (typically a
   hide-on-scroll motion effect) — that traps position:fixed inside it.
   Turn that effect off on the header; it can't be worked around in CSS. */
@media (max-width: 600px) {
  :root { --gc-cart-gutter: 12px; }

  body .elementor-menu-cart__container {
    position: fixed !important;          /* FIX (v2) */
    top: var(--gc-cart-top) !important;
    right: var(--gc-cart-gutter) !important;
    bottom: auto !important;
    left: var(--gc-cart-gutter) !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    z-index: 9999 !important;
  }

  body .elementor-menu-cart__container .elementor-menu-cart__main {
    width: 100% !important;              /* FIX (v2): fills the container */
    max-width: 100% !important;
    padding: 16px !important;
    max-height: calc(100vh - var(--gc-cart-top) - 16px) !important;   /* fallback */
    max-height: calc(100dvh - var(--gc-cart-top) - 16px) !important;
  }

  body .elementor-menu-cart__product.cart_item {
    grid-template-columns: 56px minmax(0, 1fr) !important;
    column-gap: 12px !important;
    padding: 14px 28px 14px 0 !important;
  }
  body .elementor-menu-cart__product-image.product-thumbnail,
  body .elementor-menu-cart__product-image.product-thumbnail a,
  body .elementor-menu-cart__product-image.product-thumbnail img {
    width: 56px !important;
    height: 56px !important;
  }

  body .elementor-menu-cart__subtotal .woocommerce-Price-amount {
    font-size: 20px !important;
  }
}

/* ═══════════════════════════════════════════════
   PART 2 — ELEMENTOR CART WIDGET (/cart/)
   Lets Elementor handle layout, we only style
═══════════════════════════════════════════════ */

body.woocommerce-cart .elementor-widget-woocommerce-cart {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  color: var(--gc-text) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}

/* FIX: overflow guard. If Elementor's own responsive rules already
   stack the table this does nothing; if they don't, the table
   scrolls inside its own box instead of widening the whole page. */
body.woocommerce-cart .e-shop-table {
  max-width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

/* Cart shop table */
body.woocommerce-cart .e-shop-table table.shop_table {
  border: 0.5px solid var(--gc-border) !important;
  border-radius: 12px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden !important;
  background: var(--gc-white) !important;
  box-shadow: 0 1px 2px rgba(35,39,35,0.03) !important;
}
body.woocommerce-cart .e-shop-table table.shop_table thead {
  background: var(--gc-off) !important;
}
body.woocommerce-cart .e-shop-table table.shop_table thead th {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--gc-muted) !important;
  padding: 16px !important;
  border: none !important;
  border-bottom: 0.5px solid var(--gc-border) !important;
}
body.woocommerce-cart .e-shop-table table.shop_table tbody td {
  padding: 20px 16px !important;
  border: none !important;
  border-bottom: 0.5px solid var(--gc-border) !important;
  vertical-align: middle !important;
  background: var(--gc-white) !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 14px !important;
  color: var(--gc-text) !important;
}

/* Product remove (×) in cart table */
body.woocommerce-cart .e-shop-table td.product-remove a.remove {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: var(--gc-muted) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}
body.woocommerce-cart .e-shop-table td.product-remove a.remove:hover {
  background: var(--gc-pale) !important;
  color: var(--gc-deep) !important;
}

/* Product thumbnail */
body.woocommerce-cart .e-shop-table td.product-thumbnail img {
  width: 72px !important;
  height: 72px !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  border: 0.5px solid var(--gc-border) !important;
  background: var(--gc-pale) !important;
}

/* Product name */
body.woocommerce-cart .e-shop-table td.product-name a {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  color: var(--gc-deep) !important;
  text-decoration: none !important;
  overflow-wrap: break-word !important;   /* FIX */
}
body.woocommerce-cart .e-shop-table td.product-name a:hover {
  color: var(--gc-mid) !important;
}

/* Prices in cart table */
body.woocommerce-cart .e-shop-table td.product-price,
body.woocommerce-cart .e-shop-table td.product-subtotal {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  color: var(--gc-deep) !important;
  white-space: nowrap !important;
}

/* Quantity input */
body.woocommerce-cart .e-shop-table .quantity input.qty {
  width: 60px !important;
  height: 40px !important;
  padding: 0 8px !important;
  background: var(--gc-off) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: var(--gc-radius) !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px !important;   /* FIX: below 16px iOS zooms the page on focus */
  color: var(--gc-deep) !important;
  text-align: center !important;
}
body.woocommerce-cart .e-shop-table .quantity input.qty:focus {
  outline: none !important;
  border-color: var(--gc-mid) !important;
  background: var(--gc-white) !important;
}

/* Actions row (Update Cart button) */
body.woocommerce-cart .e-shop-table td.actions {
  background: var(--gc-off) !important;
  padding: 18px 16px !important;
  text-align: right !important;
}

/* Coupon section (separate from table) */
body.woocommerce-cart .coupon.e-cart-section {
  margin-top: 24px !important;
  padding: 20px !important;
  background: var(--gc-off) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: 12px !important;
}
body.woocommerce-cart .coupon .coupon-col {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  flex-wrap: wrap !important;   /* FIX: input + button stack instead of overflowing */
}
body.woocommerce-cart .coupon input#coupon_code {
  height: 42px !important;
  padding: 0 14px !important;
  background: var(--gc-white) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: var(--gc-radius) !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px !important;   /* FIX: iOS zoom */
  color: var(--gc-text) !important;
  flex: 1 1 180px !important;   /* FIX: was flex:1 with no basis */
  min-width: 0 !important;
}
body.woocommerce-cart .coupon input#coupon_code::placeholder {
  color: var(--gc-muted) !important;
}

/* All buttons in cart widget (Update Cart, Apply Coupon) — secondary */
body.woocommerce-cart .elementor-widget-woocommerce-cart .button,
body.woocommerce-cart .elementor-widget-woocommerce-cart button.button,
body.woocommerce-cart .elementor-widget-woocommerce-cart input.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 12px 22px !important;
  border-radius: var(--gc-radius) !important;
  border: 1px solid var(--gc-border2) !important;
  background: transparent !important;
  color: var(--gc-deep) !important;
  cursor: pointer !important;
  text-shadow: none !important;
  box-shadow: none !important;
  line-height: 1.4 !important;
  height: auto !important;
  min-height: 44px !important;
  max-width: 100% !important;   /* FIX */
  white-space: nowrap !important;
}
body.woocommerce-cart .elementor-widget-woocommerce-cart .button:hover {
  background: rgba(51,73,49,0.04) !important;
}
body.woocommerce-cart .elementor-widget-woocommerce-cart .button:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
}

/* Cart Totals box (right column) */
body.woocommerce-cart .e-cart-totals .cart_totals {
  background: var(--gc-off) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: 12px !important;
  padding: 28px !important;
}
body.woocommerce-cart .e-cart-totals .cart_totals h2 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 300 !important;
  color: var(--gc-deep) !important;
  margin: 0 0 20px 0 !important;
  padding: 0 0 16px 0 !important;
  border-bottom: 0.5px solid var(--gc-border) !important;
}

/* Cart Totals table */
body.woocommerce-cart .e-cart-totals table.shop_table {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  width: 100% !important;
  table-layout: fixed !important;   /* FIX: keeps the two columns from being pushed apart */
}
body.woocommerce-cart .e-cart-totals table.shop_table th,
body.woocommerce-cart .e-cart-totals table.shop_table td {
  padding: 12px 0 !important;
  border: none !important;
  border-bottom: 0.5px solid var(--gc-border) !important;
  background: transparent !important;
  vertical-align: middle !important;
}
body.woocommerce-cart .e-cart-totals table.shop_table th {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--gc-muted) !important;
  text-align: left !important;
}
body.woocommerce-cart .e-cart-totals table.shop_table td {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 16px !important;
  color: var(--gc-text) !important;
  text-align: right !important;
}

/* Shipping rows inside totals */
body.woocommerce-cart .e-cart-totals .woocommerce-shipping-methods {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.woocommerce-cart .e-cart-totals .woocommerce-shipping-methods li {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  color: var(--gc-text) !important;
  padding: 4px 0 !important;
}
body.woocommerce-cart .e-cart-totals .woocommerce-shipping-methods label {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  color: var(--gc-text) !important;
}
body.woocommerce-cart .woocommerce-shipping-estimate-html,
body.woocommerce-cart .e-checkout-message {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 12px !important;
  color: var(--gc-muted) !important;
  display: block !important;
  margin-top: 8px !important;
}

/* Shipping calculator link + form */
body.woocommerce-cart .shipping-calculator-button {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 12px !important;
  color: var(--gc-mid) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  margin-top: 8px !important;
  display: inline-block !important;
}
body.woocommerce-cart .shipping-calculator-button:hover {
  color: var(--gc-deep) !important;
}
body.woocommerce-cart .shipping-calculator-form {
  margin-top: 12px !important;
  padding-top: 12px !important;
}
body.woocommerce-cart .shipping-calculator-form .form-row input,
body.woocommerce-cart .shipping-calculator-form .form-row select {
  width: 100% !important;
  max-width: 100% !important;
  height: 40px !important;
  padding: 0 12px !important;
  background: var(--gc-white) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: var(--gc-radius) !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px !important;   /* FIX: iOS zoom */
  color: var(--gc-text) !important;
}
body.woocommerce-cart .shipping-calculator-form .form-row label {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--gc-muted) !important;
  margin-bottom: 4px !important;
  display: block !important;
}

/* Order total — bigger and bolder */
body.woocommerce-cart .e-cart-totals tr.order-total th,
body.woocommerce-cart .e-cart-totals tr.order-total td {
  border-bottom: none !important;
  padding-top: 16px !important;
}
body.woocommerce-cart .e-cart-totals tr.order-total th {
  font-size: 12px !important;
  color: var(--gc-deep) !important;
  letter-spacing: 0.14em !important;
}
body.woocommerce-cart .e-cart-totals tr.order-total td,
body.woocommerce-cart .e-cart-totals tr.order-total td strong,
body.woocommerce-cart .e-cart-totals tr.order-total .amount {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  color: var(--gc-deep) !important;
  white-space: nowrap !important;
}

/* Proceed to checkout button — primary */
body.woocommerce-cart .wc-proceed-to-checkout {
  margin-top: 20px !important;
  padding: 0 !important;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 16px 24px !important;
  border-radius: var(--gc-radius) !important;
  border: 1px solid var(--gc-mid) !important;
  background: var(--gc-mid) !important;
  color: var(--gc-white) !important;
  text-shadow: none !important;
  box-shadow: none !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--gc-deep) !important;
  border-color: var(--gc-deep) !important;
  color: var(--gc-white) !important;
}

/* Empty cart */
body.woocommerce-cart .cart-empty {
  background: var(--gc-off) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: 12px !important;
  padding: 48px 24px !important;
  text-align: center !important;
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 300 !important;
  color: var(--gc-deep) !important;
}

/* ── CART PAGE — MOBILE ── */
@media (max-width: 600px) {
  body.woocommerce-cart .e-cart-totals .cart_totals { padding: 20px !important; }
  body.woocommerce-cart .coupon.e-cart-section { padding: 16px !important; }
  body.woocommerce-cart .e-shop-table table.shop_table tbody td { padding: 14px 12px !important; }
  body.woocommerce-cart .e-shop-table td.product-thumbnail img { width: 56px !important; height: 56px !important; }
  body.woocommerce-cart .e-shop-table td.product-name a { font-size: 16px !important; }
  body.woocommerce-cart .elementor-widget-woocommerce-cart .button { width: 100% !important; }
  body.woocommerce-cart .e-shop-table td.actions { text-align: center !important; }
}

/* ═══════════════════════════════════════════════
   PART 3 — CHECKOUT PAGE (/checkout/) — visual only
═══════════════════════════════════════════════ */

body.woocommerce-checkout .woocommerce {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  color: var(--gc-text) !important;
  font-size: 15px !important;
}

body.woocommerce-checkout h3,
body.woocommerce-checkout #order_review_heading {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 26px !important;
  font-weight: 300 !important;
  letter-spacing: -0.01em !important;
  color: var(--gc-deep) !important;
  margin: 0 0 20px 0 !important;
  padding: 0 0 16px 0 !important;
  border-bottom: 0.5px solid var(--gc-border) !important;
}

body.woocommerce-checkout .form-row label {
  display: block !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--gc-muted) !important;
  margin: 0 0 6px 0 !important;
}
body.woocommerce-checkout .form-row label .required,
body.woocommerce-checkout .form-row label abbr.required {
  color: var(--gc-mid) !important;
  text-decoration: none !important;
  border: none !important;
}

body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select {
  box-sizing: border-box !important;   /* FIX */
  width: 100% !important;
  max-width: 100% !important;          /* FIX */
  height: 44px !important;
  padding: 0 14px !important;
  background: var(--gc-off) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: var(--gc-radius) !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px !important;   /* FIX: was 14px — iOS zoomed the page on focus */
  color: var(--gc-text) !important;
  box-shadow: none !important;
}
body.woocommerce-checkout .form-row textarea {
  height: auto !important;
  min-height: 90px !important;
  padding: 12px 14px !important;
  line-height: 1.5 !important;
}
body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row textarea:focus,
body.woocommerce-checkout .form-row select:focus {
  outline: none !important;
  border-color: var(--gc-mid) !important;
  background: var(--gc-white) !important;
}
body.woocommerce-checkout .form-row input.input-text::placeholder,
body.woocommerce-checkout .form-row textarea::placeholder {
  color: var(--gc-muted) !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single {
  height: 44px !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: var(--gc-radius) !important;
  background: var(--gc-off) !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 44px !important;
  padding: 0 14px !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 14px !important;
  color: var(--gc-text) !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 44px !important;
  right: 8px !important;
}
/* FIX: the select2 dropdown is appended to <body>, so it ignores the
   form's width and can hang off the screen edge on a phone. */
body .select2-container--open .select2-dropdown {
  max-width: calc(100vw - 24px) !important;
  box-sizing: border-box !important;
}

/* FIX: overflow guard for the order review table */
body.woocommerce-checkout #order_review,
body.woocommerce-checkout .woocommerce-checkout-review-order {
  max-width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table {
  border: none !important;
  background: transparent !important;
  width: 100% !important;
  table-layout: fixed !important;   /* FIX */
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
  padding: 14px 8px !important;
  border: none !important;
  border-bottom: 0.5px solid var(--gc-border) !important;
  background: transparent !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  color: var(--gc-text) !important;
  overflow-wrap: break-word !important;   /* FIX */
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--gc-muted) !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name {
  color: var(--gc-deep) !important;
  font-weight: 500 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 17px !important;
  color: var(--gc-deep) !important;
  text-align: right !important;
  white-space: nowrap !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 15px !important;
  color: var(--gc-text) !important;
  text-align: right !important;
  white-space: nowrap !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total .amount {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  color: var(--gc-deep) !important;
  white-space: nowrap !important;
}

body.woocommerce-checkout #payment {
  background: transparent !important;
  padding: 0 !important;
}
body.woocommerce-checkout #payment ul.payment_methods {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 16px 0 !important;
}
body.woocommerce-checkout #payment ul.payment_methods li {
  background: var(--gc-off) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: 10px !important;
  padding: 14px 18px !important;
  margin: 0 0 8px 0 !important;
}
body.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  accent-color: var(--gc-mid) !important;
  margin-right: 8px !important;
}
body.woocommerce-checkout #payment ul.payment_methods li label {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--gc-deep) !important;
}
body.woocommerce-checkout #payment .payment_box {
  background: var(--gc-white) !important;
  border: 0.5px solid var(--gc-border) !important;
  border-radius: 8px !important;
  padding: 14px 18px !important;
  margin: 12px 0 0 0 !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  color: var(--gc-muted) !important;
}
body.woocommerce-checkout #payment .payment_box::before {
  display: none !important;
}

body.woocommerce-checkout #place_order {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 16px 24px !important;
  border-radius: var(--gc-radius) !important;
  border: 1px solid var(--gc-mid) !important;
  background: var(--gc-mid) !important;
  color: var(--gc-white) !important;
  cursor: pointer !important;
  text-shadow: none !important;
  box-shadow: none !important;
  margin-top: 16px !important;
}
body.woocommerce-checkout #place_order:hover {
  background: var(--gc-deep) !important;
  border-color: var(--gc-deep) !important;
}

body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-login-toggle,
body.woocommerce-checkout .woocommerce-form-coupon-toggle {
  background: var(--gc-pale) !important;
  border: none !important;
  border-left: 2px solid var(--gc-mid) !important;
  border-radius: 8px !important;
  padding: 14px 18px !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  color: var(--gc-deep) !important;
  margin: 0 0 18px 0 !important;
}
body.woocommerce-checkout .woocommerce-info a {
  color: var(--gc-mid) !important;
  font-weight: 500 !important;
}

body.woocommerce-checkout .woocommerce-error {
  background: var(--gc-pale) !important;
  border: none !important;
  border-left: 2px solid #c75a5a !important;
  border-radius: 8px !important;
  padding: 14px 18px !important;
  color: #8a3a3a !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  list-style: none !important;
}

body.woocommerce-checkout input[type="checkbox"] {
  accent-color: var(--gc-mid) !important;
  width: 16px !important;
  height: 16px !important;
}

.woocommerce-message {
  display: none !important;
}

/* ── CHECKOUT — MOBILE ── */
@media (max-width: 600px) {
  body.woocommerce-checkout h3,
  body.woocommerce-checkout #order_review_heading { font-size: 22px !important; }
  body.woocommerce-checkout #payment ul.payment_methods li { padding: 12px 14px !important; }
  body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
  body.woocommerce-checkout .woocommerce-checkout-review-order-table td { padding: 12px 4px !important; }
  body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td,
  body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total .amount { font-size: 20px !important; }
}

/* ════════════════════════════════════════════════════════════
   GREEN CEREMONY — Elementor Posts widget (JAVÍTOTT)
   ────────────────────────────────────────────────────────────
   Az előző verzióban a kártya túl magas volt és a szöveg
   a kép alatt nagy üres térben jelent meg. Ez az új verzió:
   • magasabb specificitást használ (.elementor-widget-posts .elementor-post)
   • az Elementor padding-bottom arány-trükkjét kezeli
   • a line-clamp-et csak a belső <p>-re teszi
   • forced flex layoutot ad a kártyára
   ════════════════════════════════════════════════════════════ */

/* ── 1. KÁRTYA DOBOZ ── */
.elementor-widget-posts .elementor-post,
.elementor-widget-posts article.elementor-post {
  background: #FFFFFF !important;
  border: 0.5px solid #D8DED0 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  min-height: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  transition: box-shadow 0.25s ease, transform 0.25s ease !important;
}
.elementor-widget-posts .elementor-post:hover {
  box-shadow: 0 8px 32px rgba(51, 73, 49, 0.09) !important;
  transform: translateY(-3px) !important;
}

/* ── 2. THUMBNAIL — Elementor padding-bottom trükkjének kezelése ── */
.elementor-widget-posts .elementor-post__thumbnail__link {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  flex: 0 0 auto !important;
  position: relative !important;
}

/* Elementor "has-item-ratio" módban padding-bottom-mal csinálja az arányt.
   3:2 arányhoz padding-bottom: 66.66%. Ezt explicit ráerőszakoljuk: */
.elementor-widget-posts .elementor-post__thumbnail {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: 0 !important;
  padding-bottom: 66.66% !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #E6ECDD;
}
.elementor-widget-posts .elementor-post__thumbnail img,
.elementor-widget-posts .elementor-post__thumbnail__link img,
.elementor-widget-posts article .elementor-post__thumbnail img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  min-width: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  display: block !important;
  /* GPU-layer kényszerítése — fixálja az Opera/Chromium renderelési bugot,
     ami miatt csak hoverkor töltötte ki teljesen a képet */
  transform: translate3d(0, 0, 0) !important;
  -webkit-transform: translate3d(0, 0, 0) !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
  will-change: transform;
  transition: transform 0.5s ease !important;
}
.elementor-widget-posts .elementor-post:hover .elementor-post__thumbnail img {
  transform: translate3d(0, 0, 0) scale(1.04) !important;
  -webkit-transform: translate3d(0, 0, 0) scale(1.04) !important;
}

/* ── 3. SZÖVEG TERÜLET ── */
.elementor-widget-posts .elementor-post__text {
  padding: 22px 24px 24px !important;
  margin: 0 !important;
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* ── 4. CÍM ── */
.elementor-widget-posts .elementor-post__title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  letter-spacing: 0 !important;
  overflow-wrap: break-word !important;
}
.elementor-widget-posts .elementor-post__title a,
.elementor-widget-posts .elementor-post__title a:hover,
.elementor-widget-posts .elementor-post__title a:visited {
  color: #334931 !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}
.elementor-widget-posts .elementor-post:hover .elementor-post__title a {
  color: #5A7C4D !important;
}

/* ── 5. META (dátum, hozzászólás) ── */
.elementor-widget-posts .elementor-post__meta-data {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  color: #7A8C78 !important;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  border: none !important;
  background: none !important;
}
.elementor-widget-posts .elementor-post__meta-data span {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  color: #7A8C78 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* ── 6. EXCERPT — line-clamp a <p>-n, nem a wrapperen ── */
.elementor-widget-posts .elementor-post__excerpt {
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  background: none !important;
}
.elementor-widget-posts .elementor-post__excerpt p {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: #7A8C78 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  /* Hosszú karakter-sorozatok (pl. "Próba1Próba1Próba1...") tördelése */
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* ── 7. TOVÁBB OLVASOM LINK (finom, nem harsány gomb) ── */
.elementor-widget-posts .elementor-post__read-more {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: #5A7C4D !important;
  text-decoration: none !important;
  margin: 8px 0 0 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  transition: color 0.2s ease, gap 0.2s ease !important;
}
.elementor-widget-posts .elementor-post__read-more::after {
  content: '→';
  font-size: 13px;
  font-weight: 400;
  transition: transform 0.2s ease;
}
.elementor-widget-posts .elementor-post__read-more:hover {
  color: #334931 !important;
  gap: 10px !important;
}
.elementor-widget-posts .elementor-post__read-more:hover::after {
  transform: translateX(2px);
}

/* ── 7B. KATEGÓRIA BADGE (sarok-címke a képen) ── */
.elementor-widget-posts .elementor-post__badge {
  position: absolute !important;
  top: 16px !important;
  left: 16px !important;
  right: auto !important;
  bottom: auto !important;
  max-width: calc(100% - 32px) !important;   /* FIX: hosszú kategórianév se lógjon ki */
  background: #5A7C4D !important;
  color: #FFFFFF !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 6px 13px !important;
  border-radius: 100px !important;
  border: none !important;
  text-decoration: none !important;
  line-height: 1 !important;
  z-index: 2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  box-shadow: 0 2px 8px rgba(51, 73, 49, 0.15) !important;
}
.elementor-widget-posts .elementor-post__badge:hover {
  background: #334931 !important;
  color: #FFFFFF !important;
}

/* ── 8. GRID GAP ── */
.elementor-widget-posts .elementor-posts-container.elementor-grid {
  gap: 28px !important;
  align-items: stretch !important;
}

/* ── 9. PAGINATION (oldalszámozás) ── */
.elementor-widget-posts .elementor-pagination {
  margin-top: 40px !important;
  display: flex !important;
  justify-content: center !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
}
.elementor-widget-posts .elementor-pagination .page-numbers {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  color: #7A8C78 !important;
  background: #FFFFFF !important;
  border: 0.5px solid #D8DED0 !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  min-width: 40px !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}
.elementor-widget-posts .elementor-pagination .page-numbers:hover {
  background: #E6ECDD !important;
  border-color: #C8D4C0 !important;
  color: #334931 !important;
}
.elementor-widget-posts .elementor-pagination .page-numbers.current {
  background: #334931 !important;
  border-color: #334931 !important;
  color: #FFFFFF !important;
}

/* ── 10. MOBIL ── */
@media (max-width: 768px) {
  .elementor-widget-posts .elementor-posts-container.elementor-grid {
    gap: 20px !important;
  }
  .elementor-widget-posts .elementor-post__text {
    padding: 18px 20px 20px !important;
  }
  .elementor-widget-posts .elementor-post__title {
    font-size: 18px !important;
  }
}

/* ════════════════════════════════════════════════════════════
   GREEN CEREMONY — Single Post (Elementor Theme Builder)
   ────────────────────────────────────────────────────────────
   A szekciókhoz add hozzá a CSS class-okat amiket itt használunk
   (Elementor: Advanced fül → CSS Classes).
   ════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════
   1. HERO — eyebrow + cím + meta
══════════════════════════════════════════════════ */

/* Eyebrow (kategória a cím fölött) */
.gc-single-eyebrow .elementor-post-info,
.gc-single-eyebrow .elementor-icon-list-items {
  justify-content: center !important;
  margin-bottom: 24px !important;
}
.gc-single-eyebrow .elementor-icon-list-text,
.gc-single-eyebrow .elementor-post-info__item,
.gc-single-eyebrow a {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: #5A7C4D !important;
  text-decoration: none !important;
}
.gc-single-eyebrow .elementor-icon-list-icon { display: none !important; }

/* Post Title */
.gc-single-title h1,
.gc-single-title .elementor-heading-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: clamp(30px, 5vw, 56px) !important;
  font-weight: 300 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
  color: #334931 !important;
  margin: 0 0 28px 0 !important;
  text-align: center !important;
  overflow-wrap: break-word !important;
}
.gc-single-title h1 em,
.gc-single-title .elementor-heading-title em {
  font-style: italic;
}

/* Meta sor (dátum · szerző · olvasási idő) */
.gc-single-meta .elementor-icon-list-items {
  justify-content: center !important;
  gap: 0 !important;
  flex-wrap: wrap !important;
}
.gc-single-meta .elementor-icon-list-item {
  padding: 0 16px !important;
  position: relative;
}
.gc-single-meta .elementor-icon-list-item:not(:last-child)::after {
  content: '·';
  position: absolute;
  right: -3px;
  top: 50%;
  transform: translateY(-50%);
  color: #C8D4C0;
}
.gc-single-meta .elementor-icon-list-text,
.gc-single-meta .elementor-icon-list-item a {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  letter-spacing: 0.06em !important;
  color: #7A8C78 !important;
  text-decoration: none !important;
}
.gc-single-meta .elementor-icon-list-icon svg,
.gc-single-meta .elementor-icon-list-icon i {
  color: #5A7C4D !important;
  font-size: 12px !important;
  margin-right: 6px !important;
}

/* ════════════════════════════════════════════════
   2. FEATURED IMAGE
══════════════════════════════════════════════════ */
.gc-single-featured img {
  width: 100% !important;
  height: auto !important;
  max-height: 560px;
  object-fit: cover !important;
  border-radius: 12px !important;
  display: block;
}

/* ════════════════════════════════════════════════
   3. ARTICLE CONTENT — prose / cikk-szöveg
══════════════════════════════════════════════════ */
.gc-single-content {
  max-width: 720px !important;
  margin: 0 auto !important;
}
.gc-single-content .elementor-widget-container {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 17px;
  font-weight: 300;
  line-height: 1.85;
  color: #232723;
}

/* Bekezdések */
.gc-single-content p {
  margin: 0 0 1.4em 0;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 17px;
  font-weight: 300;
  line-height: 1.85;
  color: #232723;
  overflow-wrap: break-word;
}

/* Bevezető (drop cap) — első bekezdés ha "lead" osztályú */
.gc-single-content p.lead,
.gc-single-content > .elementor-widget-container > p:first-of-type {
  font-size: 19px;
  line-height: 1.7;
  color: #232723;
}

/* Címsorok a cikkben */
.gc-single-content h2 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 400;
  line-height: 1.2;
  color: #334931;
  margin: 2em 0 0.6em 0;
  letter-spacing: -0.005em;
  overflow-wrap: break-word;
}
.gc-single-content h2 em { font-style: italic; }

.gc-single-content h3 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(20px, 2.3vw, 26px);
  font-weight: 400;
  line-height: 1.25;
  color: #334931;
  margin: 1.8em 0 0.5em 0;
  overflow-wrap: break-word;
}

.gc-single-content h4 {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #5A7C4D;
  margin: 2em 0 0.6em 0;
}

/* Linkek */
.gc-single-content a {
  color: #334931;
  text-decoration: underline;
  text-decoration-color: #AFC094;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  overflow-wrap: break-word;
  transition: text-decoration-color 0.2s, color 0.2s;
}
.gc-single-content a:hover {
  color: #5A7C4D;
  text-decoration-color: #5A7C4D;
}

/* Vastagítás */
.gc-single-content strong, .gc-single-content b {
  font-weight: 500;
  color: #232723;
}
.gc-single-content em, .gc-single-content i {
  font-style: italic;
}

/* Idézet */
.gc-single-content blockquote {
  margin: 2em 0;
  padding: 24px 32px;
  border-left: 2px solid #5A7C4D;
  background: #F7F5EF;
  border-radius: 0 8px 8px 0;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 22px;
  font-weight: 300;
  font-style: italic;
  line-height: 1.5;
  color: #334931;
}
.gc-single-content blockquote p { margin: 0; font-family: inherit; font-size: inherit; font-style: inherit; line-height: inherit; color: inherit; }
.gc-single-content blockquote cite {
  display: block;
  margin-top: 12px;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 12px;
  font-style: normal;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7A8C78;
}

/* Listák */
.gc-single-content ul, .gc-single-content ol {
  margin: 0 0 1.4em 0;
  padding-left: 28px;
}
.gc-single-content li {
  margin: 0 0 0.5em 0;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 17px;
  font-weight: 300;
  line-height: 1.7;
  color: #232723;
  overflow-wrap: break-word;
}
.gc-single-content ul li::marker { color: #5A7C4D; }
.gc-single-content ol li::marker { color: #5A7C4D; font-weight: 500; }

/* Képek a cikkben */
.gc-single-content img,
.gc-single-content figure img {
  border-radius: 10px;
  max-width: 100%;
  height: auto;
  margin: 1.6em 0;
}
.gc-single-content figcaption,
.gc-single-content .wp-caption-text {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 300;
  line-height: 1.5;
  color: #7A8C78;
  text-align: center;
  margin-top: -0.6em;
  margin-bottom: 1.6em;
  font-style: italic;
}

/* Elválasztó vonal */
.gc-single-content hr {
  border: none;
  height: 0.5px;
  background: #D8DED0;
  margin: 2.4em auto;
  max-width: 200px;
}

/* Kódrészlet */
.gc-single-content code {
  font-family: 'DM Mono', monospace;
  font-size: 14px;
  background: #E6ECDD;
  color: #334931;
  padding: 2px 7px;
  border-radius: 4px;
  overflow-wrap: break-word;
}
.gc-single-content pre {
  background: #232723;
  color: #F7F5EF;
  padding: 20px 24px;
  border-radius: 10px;
  overflow-x: auto;
  max-width: 100%;
  margin: 1.6em 0;
  font-size: 13px;
  line-height: 1.6;
}
.gc-single-content pre code {
  background: transparent;
  color: inherit;
  padding: 0;
  font-size: inherit;
}

/* Táblázat — FIX: mobilon vízszintesen görgethető a saját dobozán belül */
.gc-single-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.6em 0;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 14px;
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.gc-single-content th,
.gc-single-content td {
  padding: 12px 16px;
  border-bottom: 0.5px solid #D8DED0;
  text-align: left;
}
.gc-single-content th {
  font-weight: 500;
  color: #334931;
  background: #F7F5EF;
}

/* ════════════════════════════════════════════════
   4. SHARE BUTTONS — Elementor Share Buttons widget
══════════════════════════════════════════════════ */
.elementor-widget-share-buttons .elementor-share-btn {
  background: #FFFFFF !important;
  border: 0.5px solid #D8DED0 !important;
  border-radius: 100px !important;
  color: #334931 !important;
  padding: 10px 18px !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  transition: background 0.2s, border-color 0.2s, color 0.2s !important;
}
.elementor-widget-share-buttons .elementor-share-btn:hover {
  background: #E6ECDD !important;
  border-color: #5A7C4D !important;
  color: #334931 !important;
}
.elementor-widget-share-buttons .elementor-share-btn__icon {
  background: transparent !important;
  color: #5A7C4D !important;
}

/* ════════════════════════════════════════════════
   5. TAGS — Post Info widget Tags módban
══════════════════════════════════════════════════ */
.gc-single-tags .elementor-icon-list-items {
  justify-content: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}
.gc-single-tags .elementor-icon-list-item {
  background: #FFFFFF;
  border: 0.5px solid #D8DED0;
  border-radius: 100px;
  padding: 7px 14px !important;
}
.gc-single-tags .elementor-icon-list-text,
.gc-single-tags .elementor-icon-list-item a {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  color: #334931 !important;
  text-decoration: none !important;
}
.gc-single-tags .elementor-icon-list-icon { display: none !important; }

/* ════════════════════════════════════════════════
   6. AUTHOR BOX
══════════════════════════════════════════════════ */
.gc-single-author .elementor-author-box {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;   /* FIX */
  gap: 24px !important;
  align-items: center !important;
  max-width: 720px;
  margin: 0 auto;
  padding: 32px;
  background: #FFFFFF;
  border: 0.5px solid #D8DED0;
  border-radius: 12px;
}
.gc-single-author .elementor-author-box__avatar {
  margin: 0 !important;
}
.gc-single-author .elementor-author-box__avatar img {
  width: 72px !important;
  height: 72px !important;
  border-radius: 50% !important;
  border: 2px solid #E6ECDD !important;
}
.gc-single-author .elementor-author-box__name {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  color: #334931 !important;
  margin: 0 0 4px 0 !important;
}
.gc-single-author .elementor-author-box__bio {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: #7A8C78 !important;
  margin: 0 !important;
}

/* ════════════════════════════════════════════════
   7. KOMMENTEK
══════════════════════════════════════════════════ */
.elementor-widget-post-comments {
  max-width: 720px;
  margin: 0 auto;
}
.elementor-widget-post-comments .comments-title,
.elementor-widget-post-comments .comment-reply-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 28px !important;
  font-weight: 300 !important;
  color: #334931 !important;
  margin-bottom: 24px !important;
}
.elementor-widget-post-comments .comment-form input[type="text"],
.elementor-widget-post-comments .comment-form input[type="email"],
.elementor-widget-post-comments .comment-form input[type="url"],
.elementor-widget-post-comments .comment-form textarea {
  box-sizing: border-box !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px !important;   /* FIX: iOS zoom */
  background: #F7F5EF !important;
  border: 0.5px solid #D8DED0 !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  color: #232723 !important;
  width: 100% !important;
  max-width: 100% !important;
  transition: border-color 0.2s, background 0.2s !important;
}
.elementor-widget-post-comments .comment-form input:focus,
.elementor-widget-post-comments .comment-form textarea:focus {
  outline: none !important;
  border-color: #334931 !important;
  background: #FFFFFF !important;
}
.elementor-widget-post-comments .comment-form .form-submit input[type="submit"] {
  background: #5A7C4D !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 10px !important;
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 14px 28px !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
}
.elementor-widget-post-comments .comment-form .form-submit input[type="submit"]:hover {
  background: #334931 !important;
}
.elementor-widget-post-comments .comment-author,
.elementor-widget-post-comments .comment-meta {
  font-family: 'DM Sans', system-ui, sans-serif !important;
}
.elementor-widget-post-comments .comment-body {
  background: #F7F5EF;
  border: 0.5px solid #D8DED0;
  border-radius: 10px;
  padding: 20px 24px;
  margin-bottom: 16px;
  overflow-wrap: break-word;
}

/* ════════════════════════════════════════════════
   MOBIL — Single Post
══════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .gc-single-content {
    padding: 0 24px;
  }
  .gc-single-content p,
  .gc-single-content li {
    font-size: 16px;
  }
  .gc-single-content blockquote {
    font-size: 18px;
    padding: 20px 24px;
  }
  .gc-single-author .elementor-author-box {
    grid-template-columns: minmax(0, 1fr) !important;
    text-align: center;
    padding: 24px;
  }
  .gc-single-author .elementor-author-box__avatar {
    justify-self: center;
  }
  .gc-single-meta .elementor-icon-list-item { padding: 0 10px !important; }
}