.elementor-widget-shortcode.premium-cursor-ftext .premium-global-cursor-{{ID}} .premium-cursor-follow-text{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-shortcode .premium-global-cursor-{{ID}}{color:var( --e-global-color-primary );fill:var( --e-global-color-primary );}.elementor-widget-shortcode .premium-global-badge-{{ID}} .premium-badge-text{color:var( --e-global-color-secondary );}.elementor-widget-shortcode.pa-bg-clipped-yes.premium-gbadge-custom .premium-global-badge-{{ID}} .premium-badge-text, .elementor-widget-shortcode:not(.premium-gbadge-custom) .premium-global-badge-{{ID}} .premium-badge-container, .elementor-widget-shortcode.premium-gbadge-custom:not(.pa-bg-clipped-yes) .premium-global-badge-{{ID}} .premium-badge-container{background-color:var( --e-global-color-primary );}.elementor-widget-shortcode .premium-global-badge-{{ID}} .premium-badge-icon{color:var( --e-global-color-secondary );fill:var( --e-global-color-secondary );}.elementor-widget-woocommerce-product-add-to-cart.premium-cursor-ftext .premium-global-cursor-{{ID}} .premium-cursor-follow-text{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-add-to-cart .premium-global-cursor-{{ID}}{color:var( --e-global-color-primary );fill:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-add-to-cart .premium-global-badge-{{ID}} .premium-badge-text{color:var( --e-global-color-secondary );}.elementor-widget-woocommerce-product-add-to-cart.pa-bg-clipped-yes.premium-gbadge-custom .premium-global-badge-{{ID}} .premium-badge-text, .elementor-widget-woocommerce-product-add-to-cart:not(.premium-gbadge-custom) .premium-global-badge-{{ID}} .premium-badge-container, .elementor-widget-woocommerce-product-add-to-cart.premium-gbadge-custom:not(.pa-bg-clipped-yes) .premium-global-badge-{{ID}} .premium-badge-container{background-color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-add-to-cart .premium-global-badge-{{ID}} .premium-badge-icon{color:var( --e-global-color-secondary );fill:var( --e-global-color-secondary );}.elementor-widget-woocommerce-product-add-to-cart .added_to_cart{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-915 .elementor-element.elementor-element-bd3ba3a .cart button, .elementor-915 .elementor-element.elementor-element-bd3ba3a .cart .button{transition:all 0.2s;}.elementor-915 .elementor-element.elementor-element-bd3ba3a .quantity .qty{transition:all 0.2s;}/* Start custom CSS */@scope (.mrkt-product-hero) {
  /* Reset Elementor defaults */
  :scope .e-div-block-base,
  .elementor :scope {
    padding: 0;
    min-width: 0;
    min-height: 0;
  }

  :scope .elementor-shortcode,
  :scope .elementor-widget-shortcode {
      display: contents;
  }
  
  .elementor :scope {
    /* Positioning */
    position: relative;
    isolation: isolate;

    /* Layout */
    display: grid;
    /* Square gallery = viewport height minus padding, capped so product info keeps 35rem */
    grid-template-columns:
      min(100svh - 2 * var(--mrkt-space-XS), 100% - 35rem - var(--mrkt-space-XS))
      minmax(0, 1fr);
    gap: var(--mrkt-space-XS);
    min-height: 100svh;
    padding: var(--mrkt-space-XS);

    /* Typography */
    font-family: var(--mrkt-font-body);

    /* Style */
    background-color: var(--mrkt-color-background);
    color: var(--mrkt-color-secondary);
  }

  /* Category colours: modifier comes from the Woo product category slug */
  .elementor :scope {
    --category-bg: var(--mrkt-color-category-weisswein-soft);
    --category-ink: var(--mrkt-color-secondary);
  }

  .elementor :scope.mrkt-product-hero--rotwein {
    --category-bg: var(--mrkt-color-category-rotwein);
    --category-ink: var(--mrkt-color-background);
  }

  .elementor :scope.mrkt-product-hero--frizzante {
    --category-bg: var(--mrkt-color-category-frizzante-soft);
  }

  .elementor :scope.mrkt-product-hero--saefte {
    --category-bg: var(--mrkt-color-category-saefte);
    --category-ink: var(--mrkt-color-background);
  }

  /* Badge colours keyed on [berger_product_category]'s hook, so one shared
     template covers every category (no hero modifier classes needed) */
  :scope .category[data-product-category*="weisswein"] {
    /* Custom Properties */
    --category-bg: var(--mrkt-color-category-weisswein-soft);
    --category-ink: var(--mrkt-color-secondary);
  }

  :scope .category[data-product-category*="rotwein"] {
    /* Custom Properties */
    --category-bg: var(--mrkt-color-category-rotwein);
    --category-ink: var(--mrkt-color-background);
  }

  :scope .category[data-product-category*="frizzante"] {
    /* Custom Properties */
    --category-bg: var(--mrkt-color-category-frizzante-soft);
    --category-ink: var(--mrkt-color-secondary);
  }

  :scope .category[data-product-category*="saefte"] {
    /* Custom Properties */
    --category-bg: var(--mrkt-color-category-saefte);
    --category-ink: var(--mrkt-color-background);
  }

  /* Gallery */
  :scope .media {
    /* Layout */
    min-width: 0;
  }

  :scope .gallery {
    /* Positioning */
    position: relative;

    /* Layout */
    aspect-ratio: 1;
    overflow: hidden;
    touch-action: pan-y;

    /* Style */
    border-radius: var(--mrkt-radius-base);
    background-color: var(--mrkt-color-background-alt);
  }

  :scope .track {
    /* Positioning */
    position: relative;

    /* Layout */
    height: 100%;

    /* Style */
    isolation: isolate; /* keeps slide z-index swaps below badges and arrows */
  }

  :scope .slide {
    /* Positioning */
    position: absolute;
    inset: 0;

    /* Layout */
    margin: 0;
  }

  :scope .slide[aria-hidden="true"] {
    visibility: hidden;
  }

  :scope .slide img {
    /* Layout */
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  :scope .slide--bottle img {
    /* Layout */
    padding: var(--mrkt-space-XL) var(--mrkt-space-XL) 9rem;
    object-fit: contain;
  }

  /* Arrows: icon is a mask from --mrkt-icon-arrow; hover ring is ::before, scaled for a smooth grow */
  :scope .nav {
    /* Positioning */
    position: absolute;
    right: var(--mrkt-space-M);
    z-index: 3;

    /* Layout */
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    padding: 0;

    /* Style */
    border: 0;
    border-radius: var(--mrkt-radius-full);
    background-color: var(--mrkt-color-surface);
    color: var(--mrkt-color-secondary);
    cursor: pointer;

    /* Transitions */
    transition: background-color var(--mrkt-transition-base), color var(--mrkt-transition-base);
  }

  :scope .nav--previous {
    top: calc(50% - 3.5rem - var(--mrkt-space-S) / 2);
    scale: -1 1;
  }

  :scope .nav--next {
    top: calc(50% + var(--mrkt-space-S) / 2);
  }

  :scope .nav::before {
    /* Positioning */
    position: absolute;
    inset: -5px; /* 2px ring + 3px gap */

    /* Layout */
    content: "";

    /* Style */
    border: 2px solid var(--mrkt-color-surface);
    border-radius: inherit;
    opacity: 0;
    transform: scale(0.9);

    /* Transitions */
    transition: opacity var(--mrkt-transition-base), transform var(--mrkt-transition-slow);
  }

  :scope .nav::after {
    /* Layout */
    content: "";
    width: 1.375rem;
    height: 1.375rem;

    /* Style */
    background-color: currentColor;
    mask: var(--mrkt-icon-arrow) center / contain no-repeat;
  }

  :scope .nav:hover {
    background-color: var(--mrkt-color-secondary);
    color: var(--mrkt-color-surface);
  }

  :scope .nav:hover::before {
    opacity: 1;
    transform: scale(1);
  }

  :scope .status,
  :scope .visually-hidden {
    /* Positioning */
    position: absolute;

    /* Layout */
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  :scope .badges {
    /* Positioning */
    position: absolute;
    right: var(--mrkt-space-S);
    bottom: var(--mrkt-space-S);
    left: var(--mrkt-space-S);

    /* Layout */
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--mrkt-space-XS);
    margin: 0;
    padding: var(--mrkt-space-S) 1.125rem;
    list-style: none;

    /* Style */
    border: 1px solid color-mix(in srgb, var(--mrkt-color-white) 50%, transparent);
    border-radius: var(--mrkt-radius-base);
    background: color-mix(in srgb, var(--mrkt-color-surface) 62%, transparent);
    backdrop-filter: blur(14px) saturate(1.1);
  }

  :scope .badges li {
    /* Layout */
    display: flex;
    align-items: center;
    gap: 0.625rem;
    min-width: 0;
  }

  :scope .badges li::before {
    /* Layout */
    content: "";
    flex-shrink: 0;
    width: 1.375rem;
    height: 1.375rem;

    /* Style */
    background-color: currentColor;
    mask: var(--icon) center / contain no-repeat;
  }

  :scope .badge--bio { --icon: var(--mrkt-icon-bio); }
  :scope .badge--weinviertel { --icon: var(--mrkt-icon-weinviertel); }
  :scope .badge--winzer { --icon: var(--mrkt-icon-winzer); }
  :scope .badge--familie { --icon: var(--mrkt-icon-familie); }

  :scope .badges li > span {
    /* Layout */
    display: flex;
    flex-direction: column;
    min-width: 0;

    /* Typography */
    font-size: var(--mrkt-typo-meta-size);
    line-height: 1.2;
  }

  :scope .badges strong {
    line-height: 1.2;
  }

  /* Summary */
  :scope .product-info {
    /* Positioning */
    position: relative;
    isolation: isolate;

    /* Layout */
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
  }

  /* Decor: engraved vine bleeding off the top-right corner (swap via --mrkt-decor-vine) */
  .elementor :scope .product-info::before {
    /* Positioning */
    content: "";
    position: absolute;
    top: calc(-1 * var(--mrkt-space-XS));
    right: calc(-1 * var(--mrkt-space-XS));
    bottom: auto;
    left: auto;
    z-index: -1;

    /* Layout */
    width: min(30rem, 70%);
    height: auto;
    aspect-ratio: 1312 / 1199;

    /* Style */
    background-color: var(--mrkt-color-secondary);
    opacity: 0.09;
    mask: var(--mrkt-decor-vine) top right / contain no-repeat;
    pointer-events: none;
  }

  :scope .intro {
    /* Positioning */
    position: relative;

    /* Layout */
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    align-items: center;
    justify-content: center;
    gap: var(--mrkt-space-S);
    padding-top: calc(2 * var(--mrkt-space-XXS) + 50px);

    /* Typography */
    text-align: center;

    /* Hills (.mrkt-hills): rise behind the description into the panels */
    --mrkt-hills-height: 55%;
    --mrkt-hills-right: calc(-1 * var(--mrkt-space-XS));
    --mrkt-hills-bottom: calc(-1 * var(--mrkt-space-L));
  }

  :scope .category {
    /* Layout */
    margin: 0;
    padding: var(--mrkt-space-XS) var(--mrkt-space-S);

    /* Typography */
    font-family: var(--mrkt-typo-eyebrow-family);
    font-size: var(--mrkt-typo-eyebrow-size);
    font-weight: var(--mrkt-typo-eyebrow-weight);
    line-height: var(--mrkt-typo-eyebrow-line-height);
    letter-spacing: var(--mrkt-typo-eyebrow-letter-spacing);
    text-transform: var(--mrkt-typo-eyebrow-transform);

    /* Style */
    border-radius: var(--mrkt-radius-full);
    background-color: var(--category-bg);
    color: var(--category-ink);
  }

  :scope .title {
    /* Layout */
    margin: 0;
    max-width: 15ch;

    /* Typography */
    font-family: var(--mrkt-typo-h1-family);
    /* svh term keeps the hero within one screen on short viewports */
    font-size: clamp(2.5rem, min(5.5vw, 8.75svh), var(--mrkt-typo-h1-size) * 1.25);
    font-style: italic;
    font-weight: var(--mrkt-typo-h2-weight);
    line-height: var(--mrkt-typo-h1-line-height);
    letter-spacing: var(--mrkt-typo-h1-letter-spacing);
    text-wrap: balance;
  }

  :scope .description {
    /* Layout */
    margin: 0;
    max-width: 65ch;

    /* Typography */
    font-size: var(--mrkt-typo-body-L-size);
    line-height: var(--mrkt-typo-body-L-line-height);
    text-wrap: balance;

    /* Style */
    color: var(--mrkt-color-secondary-400);
  }

  :scope .panel.description {
    max-width: 0;
  }

  :scope .buying,
  :scope .purchase {
    /* Layout */
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
  }

  :scope .top {
    /* Layout */
    display: grid;
    grid-template-columns: minmax(0, 0.6fr) minmax(0, 0.4fr);
    gap: 0.625rem;
  }

  :scope .product-note {
    /* Layout */
    grid-column: 1 / -1;
  }

  :scope .panel {
    /* Layout */
    display: flex;
    flex-direction: column;
    gap: var(--mrkt-space-XS);
    margin: 0;
    padding: var(--mrkt-space-S);

    /* Style */
    border: 1px solid var(--mrkt-color-border);
    border-radius: var(--mrkt-radius-base);
    background-color: var(--mrkt-color-surface);
  }

  :scope .panel h2 {
    /* Layout */
    margin: 0;

    /* Typography */
    font-family: var(--mrkt-typo-h4-family);
    font-size: var(--mrkt-typo-h4-size);
    font-weight: var(--mrkt-typo-h4-weight);
    line-height: var(--mrkt-typo-h4-line-height);
  }

  :scope .scales {
    /* Layout */
    display: flex;
    flex-direction: column;
    gap: var(--mrkt-space-XXS);
  }

  :scope .scale {
    /* Layout */
    display: grid;
    grid-template-columns: 3.625rem minmax(0, 1fr) 3.625rem;
    align-items: center;
    gap: var(--mrkt-space-S);

    /* Typography */
    font-size: var(--mrkt-typo-body-small-size);
  }

  :scope .scale > :last-child {
    text-align: right;
  }

  :scope .dots {
    /* Layout */
    display: flex;
    gap: var(--mrkt-space-XS);
  }

  :scope .dots span {
    /* Layout */
    flex-grow: 1;
    height: 6px;

    /* Style */
    border-radius: var(--mrkt-radius-full);
    background-color: var(--mrkt-color-border);
  }

  :scope .dots .on {
    background-color: var(--mrkt-color-secondary);
  }

  :scope .notes,
  :scope .pairings {
    /* Layout */
    margin: 0;
    padding: 0;
    list-style: none;
  }

  :scope .notes {
    /* Layout */
    display: flex;
    flex-wrap: wrap;
    gap: var(--mrkt-space-XS);
  }

  :scope .notes li {
    /* Layout */
    padding: 0.3rem var(--mrkt-space-S);

    /* Typography */
    font-size: var(--mrkt-typo-body-small-size);
    line-height: var(--mrkt-typo-meta-line-height);

    /* Style */
    border-radius: var(--mrkt-radius-full);
    background-color: var(--mrkt-color-background-alt);
  }

  :scope .pairings {
    /* Layout */
    display: flex;
    flex-direction: column;
    gap: var(--mrkt-space-XXS);

    /* Typography */
    font-size: var(--mrkt-typo-body-small-size);
  }

  :scope .pairings li {
    /* Layout */
    display: flex;
    align-items: center;
    gap: 0.625rem;
    line-height: 1;
  }

  :scope .pairings li::before {
    /* Layout */
    content: "";
    flex-shrink: 0;
    width: 5px;
    height: 5px;

    /* Style */
    border-radius: var(--mrkt-radius-full);
    background-color: var(--mrkt-color-secondary-400);
  }

  :scope .temperature {
    /* Layout */
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--mrkt-space-XS);
    margin: auto 0 0;
    padding-top: var(--mrkt-space-XS);

    /* Typography */
    font-size: var(--mrkt-typo-meta-size);

    /* Style */
    border-top: 1px solid var(--mrkt-color-border);
    color: var(--mrkt-color-secondary-400);
  }

  :scope .temperature strong {
    /* Typography */
    font-size: var(--mrkt-typo-body-small-size);
    font-weight: 500;

    /* Style */
    color: var(--mrkt-color-secondary);
  }

  :scope .product-details {
    /* Layout */
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.625rem;
  }

  :scope .facts {
    /* Layout */
    flex-direction: row;
    align-items: center;
    gap: var(--mrkt-space-XS);
    padding-block: var(--mrkt-space-S);
  }

  :scope .facts div {
    /* Layout */
    display: flex;
    flex-direction: column;
    gap: var(--mrkt-space-XXS);
  }

  :scope .facts div + div {
    /* Layout */
    align-self: stretch;
    justify-content: center;
    padding-left: var(--mrkt-space-M);

    /* Style */
    border-left: 1px solid var(--mrkt-color-border);
  }

  :scope .facts dt,
  :scope .price span {
    /* Typography */
    font-size: var(--mrkt-typo-meta-size);

    /* Style */
    color: var(--mrkt-color-secondary-400);
  }

  :scope .facts dd {
    /* Layout */
    margin: 0;

    /* Typography */
    font-family: var(--mrkt-typo-h4-family);
    font-size: var(--mrkt-typo-h4-size);
    font-weight: var(--mrkt-typo-h4-weight);
    line-height: 1;
    white-space: nowrap;
  }

  :scope .price {
    /* Layout */
    align-items: flex-end;
    justify-content: center;
    gap: var(--mrkt-space-XXS);
    padding-block: 1.125rem;

    /* Typography */
    text-align: right;
  }

  :scope .price data {
    /* Typography */
    font-family: var(--mrkt-typo-h3-family);
    font-size: var(--mrkt-typo-h3-size);
    font-weight: var(--mrkt-typo-h3-weight);
    line-height: 0.95;
  }

  :scope .price .elementor-widget-container,
  :scope .price .e-paragraph-base {
    /* Layout */
    width: 100%;
    margin: 0;
  }

  :scope .price .e-paragraph-base {
    /* Typography */
    text-align: right;
  }

  :scope .price .woocommerce-Price-amount.amount,
  :scope .price .woocommerce-Price-currencySymbol {
    /* Typography */
    font-family: var(--mrkt-typo-h3-family);
    font-size: var(--mrkt-typo-h3-size);
    font-weight: var(--mrkt-typo-h3-weight);
    line-height: 0.95;

    /* Style */
    color: var(--mrkt-color-secondary);
  }

  :scope .cart {
    /* Layout */
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin: 0;
  }

  :scope .quantity {
    /* Layout */
    width: 4.75rem;
    height: 3.75rem;
    padding: 0 0.375rem 0 0.875rem;

    /* Typography */
    font: 500 var(--mrkt-typo-body-L-size) var(--mrkt-font-body);
    text-align: center;

    /* Style */
    border: 1px solid var(--mrkt-color-border);
    border-radius: var(--mrkt-radius-base);
    background-color: var(--mrkt-color-surface);
    color: var(--mrkt-color-secondary);
  }

  :scope .cta {
    /* Layout */
    flex-grow: 1;
    height: 3.75rem;
    --mrkt-btn-padding: 0 var(--mrkt-space-M);
    --mrkt-btn-radius: var(--mrkt-radius-base);
  }

  :scope .gallery:focus-visible,
  :scope .nav:focus-visible,
  :scope .quantity:focus-visible {
    /* Style */
    outline: 2px solid var(--mrkt-color-secondary);
    outline-offset: 2px;
  }

  @media (max-width: 900px) {
    .elementor :scope {
      grid-template-columns: minmax(0, 1fr);
    }

    :scope .badges {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      row-gap: var(--mrkt-space-S);
    }

    :scope .top {
      grid-template-columns: minmax(0, 1fr);
    }

    :scope .scale {
      grid-template-columns: 4rem minmax(0, 1fr) 4rem;
    }

    :scope .nav {
      top: calc(50% - 1.5rem);
      width: 3rem;
      height: 3rem;
    }

    :scope .nav--previous {
      right: auto;
      left: var(--mrkt-space-S);
    }

    :scope .nav--next {
      right: var(--mrkt-space-S);
    }

  }

  @media (max-width: 480px) {
    :scope .product-details {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    :scope .nav,
    :scope .nav::before {
      transition: none;
    }
  }
}

@scope (.mrkt-product-facts) {
  /* Reset Elementor defaults */
  :scope .e-div-block-base,
  :scope:is(.elementor *) {
    padding: 0;
    min-width: 0;
    min-height: 0;
  }

  :scope .elementor-shortcode,
  :scope .elementor-widget-shortcode {
      display: contents;
  }

  .elementor :scope {
    /* Positioning */
    position: relative;
    isolation: isolate;

    /* Layout */
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
    gap: var(--mrkt-space-XL);
    padding-inline: var(--mrkt-section-padding-inline);
    padding-block: var(--mrkt-section-padding-block);
    overflow: hidden;

    /* Typography */
    font-family: var(--mrkt-font-body);

    /* Style */
    background-color: var(--mrkt-color-background);
    color: var(--mrkt-color-secondary);
  }

  .elementor :scope.mrkt-product-facts--no-image {
    /* Layout */
    grid-template-columns: minmax(0, 1fr);
  }

  /* Decor: tall engraved vine hanging down the left edge */
  .elementor :scope::before {
    /* Positioning */
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;

    /* Layout */
    width: auto;
    height: 88%;
    aspect-ratio: 777 / 1536;

    /* Style */
    background-color: var(--mrkt-color-accent-700); /* warm tan, like the reference */
    opacity: 0.22;
    mask: var(--mrkt-decor-vine-left) top left / contain no-repeat;
    pointer-events: none;
  }

  /* Bottle: oversized and cropped by the section edges, label at the optical centre */
  :scope .media {
    /* Positioning */
    position: relative;

    /* Layout */
    min-height: 34rem;
    margin-block: calc(-1 * var(--mrkt-section-padding-block));
    overflow: visible clip; /* crop top/bottom only, so the bottle's shadow is not boxed in at the sides */
  }

  :scope .bottle {
    /* Positioning */
    position: absolute;
    top: -38%;
    left: 50%;
    translate: -50% 0;

    /* Layout */
    display: block;
    width: auto;
    max-width: none;
    height: 180%;

    /* Style */
    filter: drop-shadow(0 1.5rem 2.5rem color-mix(in srgb, var(--mrkt-color-secondary) 22%, transparent));
  }

  :scope .content {
    /* Layout */
    display: grid;
    align-content: center;
    gap: var(--mrkt-space-M);
    min-width: 0;
  }

  :scope .title {
    /* Layout */
    margin: 0;
    padding-bottom: var(--mrkt-space-S);

    /* Typography */
    font-family: var(--mrkt-typo-h1-family);
    font-size: clamp(2.5rem, 5vw, var(--mrkt-typo-h1-size));
    font-style: italic;
    font-weight: var(--mrkt-typo-h2-weight);
    line-height: var(--mrkt-typo-h1-line-height);
    letter-spacing: var(--mrkt-typo-h1-letter-spacing);

    /* Style */
    background: linear-gradient(var(--mrkt-color-accent), var(--mrkt-color-accent)) left bottom / 4rem 2px no-repeat;
  }

  :scope .text {
    /* Layout */
    max-width: 52ch;
    margin: 0;

    /* Typography */
    font-size: var(--mrkt-typo-body-L-size);
    line-height: var(--mrkt-typo-body-L-line-height);

    /* Style */
    color: var(--mrkt-color-secondary-400);
  }

  :scope .groups {
    /* Layout */
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--mrkt-space-M) var(--mrkt-space-L);
    margin-top: var(--mrkt-space-S);
  }

  /* "Vom Hof" has the longest values, so it gets the full row */
  :scope .group:last-child {
    grid-column: 1 / -1;
  }

  :scope .group h3 {
    /* Layout */
    margin: 0 0 var(--mrkt-space-XS);

    /* Typography */
    font-family: var(--mrkt-typo-h4-family);
    font-size: var(--mrkt-typo-h4-size);
    font-style: italic;
    font-weight: var(--mrkt-typo-h4-weight);
    line-height: var(--mrkt-typo-h4-line-height);
  }

  :scope .group dl {
    margin: 0;
  }

  /* Wine-list row: label, dotted leader, value */
  :scope .row {
    /* Layout */
    display: flex;
    align-items: baseline;
    gap: var(--mrkt-space-XS);
    padding-block: var(--mrkt-space-XS);
  }

  :scope .row::after {
    /* Layout */
    content: "";
    order: 1;
    flex: 1 1 1.5rem;
    min-width: 1.5rem;

    /* Style */
    border-bottom: 1px dotted var(--mrkt-color-border);
  }

  :scope .row dt {
    /* Typography */
    font-size: var(--mrkt-typo-body-small-size);

    /* Style */
    color: var(--mrkt-color-secondary-400);
  }

  :scope .row dd {
    /* Layout */
    order: 2;
    margin: 0;

    /* Typography */
    font-family: var(--mrkt-typo-h5-family);
    font-size: var(--mrkt-typo-h5-size);
    font-weight: var(--mrkt-typo-h2-weight);
    line-height: var(--mrkt-typo-h5-line-height);
    text-align: right;
  }

  @media (max-width: 900px) {
    .elementor :scope {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--mrkt-space-L);
    }

    :scope .media {
      min-height: 24rem;
      margin-block: calc(-1 * var(--mrkt-section-padding-block)) 0;
      mask: linear-gradient(#000 70%, transparent); /* soft crop above the title */
    }

    :scope::before {
      height: min(40rem, 50%);
    }

    :scope .bottle {
      top: -30%;
      height: 165%;
    }
  }

  @media (max-width: 560px) {
    :scope .groups {
      grid-template-columns: minmax(0, 1fr);
    }
  }
}


/* =========================================================
   Einblicke: centred intro over the vine motif, 4-image mosaic
   (1 tall left, 1 wide top right, 2 below it)
   ========================================================= */
@scope (.mrkt-product-moments) {
  /* Reset Elementor Defaults */
  :scope .e-div-block-base,
  .elementor :scope {
    padding: 0;
    min-width: 0;
    min-height: 0;
  }

  .elementor :scope:not(:has(.grid)) {
    display: none;
  }

  :scope .elementor-shortcode,
  :scope .elementor-widget-shortcode {
      display: contents;
  }

  .elementor :scope {
    /* Positioning */
    position: relative;
    isolation: isolate;

    /* Layout */
    display: grid;
    gap: var(--mrkt-space-M);
    padding-inline: calc(var(--mrkt-section-padding-inline) / 2);
    padding-top: var(--mrkt-section-padding-block);
    overflow: clip;

    /* Style */
    background-color: var(--mrkt-color-background);
    color: var(--mrkt-color-secondary);
  }

  /* Vine motif in the top-left corner (image is drawn for top-right, so mirrored) */
  .elementor :scope::before {
    /* Positioning */
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;

    /* Layout */
    width: min(26rem, 60%);
    height: auto;
    aspect-ratio: 1312 / 1199;

    /* Style */
    background-color: var(--mrkt-color-accent-700);
    opacity: 0.16;
    mask: var(--mrkt-decor-vine) top right / contain no-repeat;
    scale: -1 1;
    pointer-events: none;
  }

  :scope .intro {
    /* Layout */
    display: grid;
    justify-items: start;
    gap: var(--mrkt-space-XS);
  }

  :scope .title,
  :scope .place {
    /* Layout */
    margin: 0;
  }

  :scope .title {
    /* Typography */
    text-wrap: balance;
  }

  /* Place line led by a short rule */
  :scope .place {
    /* Layout */
    display: flex;
    align-items: center;
    gap: var(--mrkt-space-S);
  }

  :scope .place::before {
    /* Layout */
    content: "";
    width: 3rem;
    height: 1px;

    /* Style */
    background-color: var(--mrkt-color-secondary-400);
  }

  :scope .grid {
    /* Layout */
    display: grid;
    grid-template-columns: 1.7fr 0.7fr 1fr;
    grid-template-rows: repeat(2, clamp(13rem, 22vw, 26rem));
    gap: var(--mrkt-space-XS);
  }

  :scope .grid img {
    /* Layout */
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;

    /* Style */
    border-radius: var(--mrkt-radius-base);
    background-color: var(--mrkt-color-background-alt);
  }

  :scope .grid img:nth-child(1) {
    /* Layout */
    grid-row: span 2;
  }

  :scope .grid img:nth-child(2) {
    /* Layout */
    grid-column: span 2;
  }

  @media (max-width: 700px) {
    :scope .grid {
      /* Layout */
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-rows: none;
      grid-auto-rows: 12rem;
    }

    :scope .grid img:nth-child(1) {
      /* Layout */
      grid-row: span 2;
      grid-column: span 2;
    }
  }
}

@scope (.mrkt-product-related) {
  /* Reset Elementor defaults */
  :scope .e-div-block-base,
  .elementor :scope {
    padding: 0;
    min-width: 0;
    min-height: 0;
  }

  :scope .elementor-shortcode,
  :scope .elementor-widget-shortcode {
    display: contents;
  }

  /* Elementor's full-width container with section padding managed here. */
  .elementor :scope {
    /* Positioning */
    position: relative;
    isolation: isolate;

    /* Layout */
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--mrkt-space-M);
    padding-inline: calc(var(--mrkt-section-padding-inline) / 2);
    padding-block: var(--mrkt-section-padding-block);
    overflow: clip;

    /* Typography */
    font-family: var(--mrkt-font-body);

    /* Style */
    background-color: var(--mrkt-color-background);
    color: var(--mrkt-color-secondary);
  }

  /* Category bar: the whole row is the link. Text, then the facts' dotted leader (::before),
     then a brown disc with the arrow knocked out of it (::after). */
  :scope .more {
    /* Layout */
    display: flex;
    align-items: center;
    gap: var(--mrkt-space-S);
    margin: 0;

    /* Typography */
    font-style: italic;
    text-decoration: none;

    /* Style */
    color: var(--mrkt-color-secondary);
  }

  :scope .more-title {
    /* Layout */
    margin: 0;
  }

  :scope .more::before {
    /* Layout */
    content: "";
    order: 1;
    flex: 1 1 1.5rem;
    min-width: 1.5rem;

    /* Style */
    border-bottom: 1px dotted var(--mrkt-color-secondary-400);

    /* Transitions */
    transition: border-color var(--mrkt-transition-base);
  }

  :scope .more::after {
    /* Layout */
    content: "";
    order: 2;
    flex: none;
    width: 3.5rem;
    height: 3.5rem;

    /* Style */
    border-radius: var(--mrkt-radius-full);
    background-color: var(--mrkt-color-secondary);
    mask:
      var(--mrkt-icon-arrow) center / 1.375rem no-repeat,
      linear-gradient(#000 0 0);
    mask-composite: exclude;

    /* Transitions */
    transition: translate var(--mrkt-transition-slow), background-color var(--mrkt-transition-base);
  }

  :scope .more:hover::before {
    /* Style */
    border-bottom-color: var(--mrkt-color-accent);
  }

  :scope .more:hover::after {
    /* Style */
    background-color: var(--mrkt-color-secondary-strong);
    translate: var(--mrkt-space-XS) 0;
  }

  :scope .more:focus-visible {
    /* Style */
    outline: 2px solid var(--mrkt-color-accent);
    outline-offset: var(--mrkt-space-XS);
    border-radius: var(--mrkt-radius-base);
  }

  @media (prefers-reduced-motion: reduce) {
    :scope .more:hover::after {
      /* Style */
      translate: none;
    }
  }
}/* End custom CSS */