@import url("https://fonts.googleapis.com/css2?family=Arimo:wght@700&display=swap");
@import url("catalog_public_tpl2.16e3c41b2135.css");

body.catalog-template--template_3[data-tpl2-v2-water-effect-enabled="false"] .tpl2-water-ripple {
  display: none;
}

/* Template 3 navbar: keep the approved header geometry while presenting the
   transparent restaurant isotipo without a decorative tile. The source asset
   has substantial transparent inset, so transform scaling enlarges only its
   painted pixels and cannot participate in header sizing. */
body.catalog-template--template_3 .catalog-shared-nav .tpl2-brand__mark:not(.tpl2-brand__mark--nav-hidden) {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.catalog-template--template_3 .catalog-shared-nav .tpl2-brand__mark img {
  object-fit: contain !important;
  transform: scale(2.07) !important;
}

body.catalog-template--template_3 :is(#destacados, #catalogo, #ubicacion) {
  scroll-margin-top: 81px !important;
}

body.catalog-template--template_3.tpl3-navbar-anchor-scrolling [data-tpl1-category-reveal] {
  pointer-events: none !important;
}

@media (max-width: 899.98px) and (orientation: portrait) {
  body.catalog-template--template_3 .catalog-shared-nav .tpl2-brand__mark img {
    transform: scale(1.65) !important;
  }

  body.catalog-template--template_3 :is(#destacados, #catalogo, #ubicacion) {
    scroll-margin-top: 59px !important;
  }
}

@media (orientation: landscape) and (min-width: 480px) and (max-height: 499.98px) {
  body.catalog-template--template_3 .catalog-shared-nav .tpl2-brand__mark img {
    transform: scale(1.45) !important;
  }

  body.catalog-template--template_3 :is(#destacados, #catalogo, #ubicacion) {
    scroll-margin-top: 48px !important;
  }
}

@media (orientation: landscape) and (min-width: 800px) and (max-height: 499.98px) {
  body.catalog-template--template_3 .catalog-shared-nav .tpl2-brand__mark img {
    transform: scale(1.34) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html:has(body.catalog-template--template_3) {
    scroll-behavior: auto;
  }
}

/* V2 identity overrides are intentionally separate from the carousel scene.
   Missing variables keep the approved CSS below as the sole default authority. */
body.catalog-template--template_3.tpl2-v2-identity-has-identity-position .tpl1-hero__copy {
  scale: var(--tpl2-v2-identity-scale) !important;
  translate: var(--tpl2-v2-identity-x) var(--tpl2-v2-identity-y) !important;
  transform-origin: top center;
}

body.catalog-template--template_3.tpl2-v2-identity-has-logo-width .tpl1-hero__copy .tpl1-hero-logo {
  width: var(--tpl2-v2-logo-width) !important;
}

body.catalog-template--template_3.tpl2-v2-identity-has-logo-height .tpl1-hero__copy .tpl1-hero-logo {
  height: var(--tpl2-v2-logo-max-height) !important;
  max-height: var(--tpl2-v2-logo-max-height) !important;
}

body.catalog-template--template_3.tpl2-v2-identity-has-logo-height .tpl1-hero__copy .tpl1-hero-logo img {
  object-fit: contain !important;
}

body.catalog-template--template_3.tpl2-v2-identity-has-title-size .tpl1-hero__copy h1 {
  font-size: var(--tpl2-v2-title-size) !important;
}

body.catalog-template--template_3.tpl2-v2-identity-has-title-width .tpl1-hero__copy h1 {
  max-width: var(--tpl2-v2-title-max-width) !important;
}

body.catalog-template--template_3.tpl2-v2-identity-has-title-position .tpl1-hero__copy h1 {
  translate: var(--tpl2-v2-title-x) var(--tpl2-v2-title-y) !important;
}

body.catalog-template--template_3.tpl2-v2-identity-has-label-size .tpl1-hero__copy .tpl1-eyebrow {
  font-size: var(--tpl2-v2-label-size) !important;
}

body.catalog-template--template_3.tpl2-v2-identity-has-label-position .tpl1-hero__copy .tpl1-eyebrow {
  translate: var(--tpl2-v2-label-x) var(--tpl2-v2-label-y) !important;
}

/* Plantilla 2.0: Figma 16:687 uses a 1376 × 628 choreography canvas. */
@media (min-width: 900px) and (min-height: 500px), (orientation: landscape) and (min-width: 480px) and (max-height: 499.98px) {
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-shell {
    max-width: none !important;
    width: 100% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .catalog-hero-panorama {
    height: var(--tpl2-v2-desktop-stage-height, auto) !important;
    margin-inline: auto !important;
    max-width: 1400px !important;
    overflow: hidden !important;
    position: relative;
    width: min(1400px, calc(100vw - 48px)) !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .catalog-hero-stage,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero {
    --tpl2-v2-stage-scale: 1;
    display: block !important;
    grid-template-columns: none !important;
    height: var(--tpl2-v2-desktop-stage-height, min(628px, calc((100vw - 48px) * .45639535)));
    margin-inline: auto !important;
    margin-top: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative;
    width: var(--tpl2-v2-desktop-stage-width, min(1376px, calc(100vw - 48px))) !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__visual {
    display: block !important;
    inset: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 100% !important;
    z-index: 2 !important;
  }

  /* Layout authority: one centered, clipped stage; no card motion lives here. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage {
    --tpl2-v2-stage-scale: 1;
    aspect-ratio: 1376 / 628;
    display: block !important;
    height: auto;
    margin-inline: auto;
    max-width: 1376px !important;
    min-height: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    transform: none !important;
    width: 100% !important;
  }

  body.catalog-template--template_3 .tpl2-v2-slots { display: contents; }

  body.catalog-template--template_3 .tpl1-visual-stage {
    cursor: grab;
    touch-action: pan-y;
    user-select: none;
  }

  body.catalog-template--template_3 .tpl1-visual-stage.is-dragging {
    cursor: grabbing;
  }

  body.catalog-template--template_3 .tpl1-visual-stage .tpl1-hero-product__floating-image {
    user-select: none;
  }

  /* Static identity and ornamental layers are intentionally outside WAAPI. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__copy {
    height: calc(203px * var(--tpl2-v2-stage-scale));
    inset: 0;
    margin: 0;
    max-width: none !important;
    pointer-events: none !important;
    position: absolute !important;
    width: 100% !important;
    z-index: 4 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero .tpl1-hero__copy .tpl1-hero-logo {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: grid !important;
    height: calc(203px * var(--tpl2-v2-stage-scale)) !important;
    left: 50% !important;
    margin: 0 !important;
    opacity: 1 !important;
    overflow: visible !important;
    place-items: center;
    position: absolute !important;
    top: 0 !important;
    transform: translateX(-50%) translate(var(--cpage-hero-logo-offset-x, 0rem), var(--cpage-hero-logo-offset-y, 0rem)) translate(var(--tpl2-v2-logo-x, 0px), var(--tpl2-v2-logo-y, 0px)) !important;
    width: calc(312px * var(--tpl2-v2-stage-scale)) !important;
    z-index: 1;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-logo img {
    height: 100% !important;
    object-fit: contain !important;
    transform: none !important;
    width: 100% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-logo--placeholder {
    color: #140b0b !important;
    font-family: Arimo, Arial, sans-serif !important;
    font-size: calc(64px * var(--tpl2-v2-stage-scale)) !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero .tpl1-eyebrow {
    color: #ffc233 !important;
    font-family: "Brush Script MT", "Segoe Script", cursive !important;
    font-size: calc(12.16px * var(--tpl2-v2-stage-scale)) !important;
    font-weight: 800 !important;
    left: 0;
    letter-spacing: calc(1.7024px * var(--tpl2-v2-stage-scale)) !important;
    line-height: 1 !important;
    margin: 0 !important;
    position: absolute;
    right: 0;
    text-align: center;
    top: calc(174px * var(--tpl2-v2-stage-scale));
    z-index: 3;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero h1 {
    color: #140b0b !important;
    font-family: Arimo, Arial, sans-serif !important;
    font-size: var(--tpl2-v2-title-size, max(32px, calc(64px * var(--tpl2-v2-stage-scale)))) !important;
    font-weight: 700 !important;
    left: 0;
    letter-spacing: calc(-5.088px * var(--tpl2-v2-stage-scale)) !important;
    line-height: calc(78.016px * var(--tpl2-v2-stage-scale)) !important;
    margin: 0 !important;
    max-width: 100% !important;
    position: absolute;
    right: 0;
    text-align: center;
    text-shadow: none !important;
    top: calc((158px * var(--tpl2-v2-stage-scale)) + var(--cpage-main-title-offset-y, 0px));
    white-space: nowrap;
    width: 100%;
    z-index: 2;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__copy .tpl1-headline,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__copy .tpl1-description,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-carousel-controls,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-scene-layers {
    display: none !important;
  }

  /* Figma 16:1217 is static; suppress Template 1's reveal only inside V2. */
  body.catalog-template--template_3 .tpl1-hero__copy.is-visible > * {
    animation: none !important;
    opacity: 1 !important;
  }

  body.catalog-template--template_3 .tpl1-hero__copy.is-visible > :not(.tpl1-hero-logo) {
    transform: none !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-deco { z-index: 1; }

  /* Slot layout authority. Coordinates and dimensions are relative to Figma's canvas. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card {
    --slot-x: 0px;
    --slot-y: 0px;
    --slot-width: 184px;
    --slot-media-height: 110px;
    --slot-body-height: 91px;
    --slot-body-width: 178px;
    --slot-image-width: 182px;
    --slot-image-height: 110px;
    animation: none !important;
    animation-delay: 0s !important;
    animation-duration: 0s !important;
    animation-fill-mode: none !important;
    animation-name: none !important;
    animation-play-state: paused !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: calc(var(--slot-media-height) * var(--tpl2-v2-stage-scale)) calc(var(--slot-body-height) * var(--tpl2-v2-stage-scale)) !important;
    inset: auto !important;
    justify-self: auto !important;
    left: calc(var(--slot-x) * var(--tpl2-v2-stage-scale)) !important;
    margin: 0 !important;
    max-width: none !important;
    position: absolute !important;
    top: calc(var(--slot-y) * var(--tpl2-v2-stage-scale)) !important;
    transform: none !important;
    transition: opacity .22s, filter .22s !important;
    width: calc(var(--slot-width) * var(--tpl2-v2-stage-scale)) !important;
    will-change: transform, opacity;
    z-index: 3;
  }

  /* Comida — Figma node 16:744. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > [data-tpl1-hero-card="main"] {
    --slot-body-height: 119px; --slot-body-width: 179px; --slot-image-height: 131px; --slot-image-width: 194px;
    --slot-media-height: 121px; --slot-width: 215.151px; --slot-x: 180px; --slot-y: 160px;
  }

  /* Tacos — Figma node 16:696. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card--secondary-1 {
    --slot-body-height: 91px; --slot-body-width: 178px; --slot-image-height: 110px; --slot-image-width: 182px;
    --slot-media-height: 110px; --slot-width: 184px; --slot-x: 540px; --slot-y: 260px;
  }

  /* Sandwiches — Figma node 16:712. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card--secondary-2 {
    --slot-body-height: 110px; --slot-body-width: 179px; --slot-image-height: 193px; --slot-image-width: 234px;
    --slot-media-height: 114px; --slot-width: 221.142px; --slot-x: 900px; --slot-y: 160px;
  }

  /* Bebidas — Figma node 16:728; its initial negative x is intentional. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card--secondary-3 {
    --slot-body-height: 154px; --slot-body-width: 188px; --slot-image-height: 153px; --slot-image-width: 204px;
    --slot-media-height: 114px; --slot-width: 249.488px; --slot-x: -120px; --slot-y: 80px;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-product__media,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-product__media:has(.tpl1-hero-product__floating-image) {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    height: calc(var(--slot-media-height) * var(--tpl2-v2-stage-scale)) !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-product__floating-image {
    filter: drop-shadow(0 30px 48px rgba(78, 51, 25, .22));
    height: calc(var(--slot-image-height) * var(--tpl2-v2-stage-scale)) !important;
    object-fit: contain;
    width: calc(var(--slot-image-width) * var(--tpl2-v2-stage-scale)) !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-product__body {
    align-content: center;
    background: rgba(255, 253, 249, .94) !important;
    border: .721px solid rgba(76, 52, 31, .12) !important;
    border-radius: calc(28px * var(--tpl2-v2-stage-scale)) !important;
    box-shadow: 0 18px 40px rgba(104, 69, 37, .1) !important;
    gap: calc(4px * var(--tpl2-v2-stage-scale));
    height: calc(var(--slot-body-height) * var(--tpl2-v2-stage-scale)) !important;
    margin: 0 auto !important;
    padding: calc(10px * var(--tpl2-v2-stage-scale)) calc(12px * var(--tpl2-v2-stage-scale)) !important;
    width: calc(var(--slot-body-width) * var(--tpl2-v2-stage-scale)) !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-product__body h2 {
    color: #ce4646 !important;
    font-family: Arimo, Arial, sans-serif !important;
    font-size: max(14px, calc(20px * var(--tpl2-v2-stage-scale))) !important;
    font-weight: 700 !important;
    line-height: 1.18 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero-product__meta a {
    background: rgba(227, 137, 22, .12);
    border-radius: 999px;
    color: #333;
    font-family: Arimo, Arial, sans-serif;
    font-size: max(9px, calc(11px * var(--tpl2-v2-stage-scale)));
    font-weight: 700;
    line-height: calc(20px * var(--tpl2-v2-stage-scale));
    min-height: calc(20px * var(--tpl2-v2-stage-scale));
    padding: 0;
    width: calc(70px * var(--tpl2-v2-stage-scale));
  }

  /* Persistent scene slots; their count is selected by the active V2 scene. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot {
    --slot-body-height: 102px;
    --slot-body-width: 188px;
    --slot-image-height: 128px;
    --slot-image-width: 194px;
    --slot-media-height: 124px;
    --slot-width: 210px;
    left: 0 !important;
    top: 0 !important;
    transform-origin: center center;
  }

}

@media (min-width: 900px) and (min-height: 500px) {
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__visual {
    align-self: stretch !important;
    height: 100% !important;
  }

  /* The Figma carousel identity has no visible kicker on desktop. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero[data-responsive-profile="desktop"] .tpl1-eyebrow {
    display: none !important;
  }

  /* The Figma track's last cards extend below the 628px logical stage, but
     still remain inside the full-height hero. Do not crop that designed edge. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero[data-responsive-profile="desktop"] .tpl1-visual-stage {
    max-width: none !important;
    overflow: visible !important;
  }

  /* Rotating assets share one visual role; inherited media widths must not
     move the image and card when a different category occupies that role. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot {
    grid-template-columns: minmax(0, 1fr) !important;
    opacity: var(--tpl2-v2-motion-opacity, 1) !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero[data-responsive-profile="desktop"] .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot {
    --slot-width: 198px;
    --slot-media-height: 114px;
    --slot-body-height: 102px;
    --slot-body-width: 175px;
    --slot-image-width: 189px;
    --slot-image-height: 114px;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__media {
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__body {
    min-height: 0 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero[data-responsive-profile="desktop"] .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__body {
    box-sizing: border-box !important;
    padding-inline: calc(10px * var(--tpl2-v2-stage-scale)) !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero[data-responsive-profile="desktop"] .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__meta a {
    white-space: nowrap;
    width: max-content;
  }
}

/* V2 never inherits Template 2's float/arrival animations, including landscape. */
body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card {
  animation: none !important;
  animation-delay: 0s !important;
  animation-duration: 0s !important;
  animation-fill-mode: none !important;
  animation-name: none !important;
  animation-play-state: paused !important;
}

/* Matches Template 2's arrival selector specificity, so no CSSAnimation survives. */
body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__visual.is-visible .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card,
body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__visual.is-visible .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card--secondary,
body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__visual.is-visible .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card--secondary-mainlike,
body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero__visual.is-visible .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card:not(.tpl1-hero-product__card--secondary) {
  animation: none !important;
  animation-delay: 0s !important;
  animation-duration: 0s !important;
  animation-fill-mode: none !important;
  animation-name: none !important;
}

/* V2 desktop composition: the original 1376 × 628 choreography remains a
   bounded logical canvas; this section simply gives it the full viewport area
   below the measured header and centers it vertically within that area. */
@media (min-width: 900px) and (min-height: 500px) {
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-shell {
    padding-top: 0 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .catalog-hero-panorama {
    height: auto !important;
    max-width: none !important;
    overflow: visible !important;
    width: 100% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section {
    box-sizing: border-box;
    min-height: 100dvh;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--hero {
    height: auto !important;
    min-height: calc(100dvh - var(--tpl2-v2-header-height, 0px)) !important;
    overflow: hidden !important;
    width: 100% !important;
  }

  /* The stage is centered independently; align the identity's visual bounds
     to that same midpoint instead of pinning it to the hero's top edge. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--hero[data-responsive-profile="desktop"] .tpl1-hero__copy {
    bottom: auto !important;
    top: calc(50% - 273px * var(--tpl2-v2-stage-scale)) !important;
  }

  /* Template 2's legacy rem logo offsets are unscaled. The Figma carousel
     instead uses its own stage-relative coordinates at every desktop size. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-hero.tpl2-v2-section--hero[data-responsive-profile="desktop"] .tpl1-hero__copy .tpl1-hero-logo {
    translate: none !important;
    transform: translateX(-50%) translate(var(--tpl2-v2-logo-x, 0px), var(--tpl2-v2-logo-y, 0px)) !important;
  }

  /* Keep the identity's actual visual bounds centered together, rather than
     letting the full-width copy lines become its alignment box. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--hero .tpl1-hero__copy h1,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--hero .tpl1-hero__copy .tpl1-eyebrow {
    left: 50% !important;
    max-width: calc(100% - 48px) !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: max-content !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining {
    min-height: 100dvh;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--hero .tpl1-visual-stage {
    left: 50% !important;
    margin: 0 !important;
    position: absolute !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
  }

  /* Page-configured desktop values win over the immutable baseline. The
     runtime already multiplies them by the stage scale. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2.tpl2-v2-identity-has-logo-width .tpl1-hero.tpl2-v2-section--hero .tpl1-hero__copy .tpl1-hero-logo {
    width: var(--tpl2-v2-logo-width) !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2.tpl2-v2-identity-has-logo-height .tpl1-hero.tpl2-v2-section--hero .tpl1-hero__copy .tpl1-hero-logo {
    height: var(--tpl2-v2-logo-max-height) !important;
    max-height: var(--tpl2-v2-logo-max-height) !important;
  }
}

/* Desktop editor values must follow the base desktop rules above. The base
   CSS remains authoritative for title max-width (100%). */
@media (min-width: 900px) and (min-height: 500px) {
  body.catalog-template--template_3.tpl2-v2-identity-has-logo-width .tpl1-hero__copy .tpl1-hero-logo {
    width: var(--tpl2-v2-logo-width) !important;
  }

  body.catalog-template--template_3.tpl2-v2-identity-has-logo-height .tpl1-hero__copy .tpl1-hero-logo {
    height: var(--tpl2-v2-logo-max-height) !important;
    max-height: var(--tpl2-v2-logo-max-height) !important;
  }

  body.catalog-template--template_3.tpl2-v2-identity-has-title-size .tpl1-hero__copy h1 {
    font-size: var(--tpl2-v2-title-size) !important;
  }

  body.catalog-template--template_3.tpl2-v2-identity-has-title-position .tpl1-hero__copy h1 {
    translate: var(--tpl2-v2-title-x) var(--tpl2-v2-title-y) !important;
  }
}

/* Desktop choreography has no Figma mobile counterpart: keep all slots static and usable. */
@media (max-width: 899.98px) and (orientation: portrait) {
  body.catalog-template--template_3 .tpl1-visual-stage {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }

  body.catalog-template--template_3 .tpl2-v2-slots {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.catalog-template--template_3 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card {
    animation: none !important;
    inset: auto !important;
    left: auto !important;
    margin: 0 !important;
    opacity: 1 !important;
    position: relative !important;
    rotate: none !important;
    scale: 1 !important;
    top: auto !important;
    transform: none !important;
    translate: none !important;
    width: 100% !important;
  }

  /* Portrait columns are narrower than Template 1/2's fixed 154px artwork at
     320px. Give every asset the actual media box instead: contain preserves
     mixed aspect ratios, while an explicit centered box prevents an
     oversized image from starting at the column's left edge. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__media,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__media:has(.tpl1-hero-product__floating-image) {
    position: relative !important;
    width: 100% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__floating-image {
    align-self: end !important;
    height: 100% !important;
    inset: 0 !important;
    justify-self: center !important;
    margin: auto !important;
    max-height: 100% !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    position: absolute !important;
    width: 100% !important;
  }
}

/* Template 3 mobile portrait identity. The shared portrait rule scales its
   top padding with viewport width, which leaves the title touching the fixed
   59px header on narrow phones. Keep this typography-only adjustment below
   the 700px profile boundary so tablet, desktop, and landscape stay intact. */
@media (max-width: 699.98px) and (orientation: portrait) {
  body.catalog-template--template_3 .tpl1-visual-stage {
    margin-top: 3px !important;
    touch-action: pan-x pan-y;
  }

  body.catalog-template--template_3 .tpl2-v2-slots {
    column-gap: 12px;
    display: grid;
    grid-auto-columns: calc((100% - 12px) / 2);
    grid-auto-flow: column;
    grid-template-columns: none !important;
    grid-template-rows: repeat(2, minmax(0, auto));
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    row-gap: clamp(20px, 5.2vw, 23px);
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    touch-action: pan-x pan-y;
  }

  body.catalog-template--template_3 .tpl2-v2-slots::-webkit-scrollbar { display: none; }

  body.catalog-template--template_3 .tpl2-v2-slots > .tpl2-v2-slot {
    scroll-snap-align: start;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot {
    --tpl3-mobile-float-delay: 0s;
    align-content: start;
    grid-template-rows: clamp(96px, 28vw, 120px) auto !important;
    overflow: visible;
    row-gap: clamp(5px, 1.6vw, 7px);
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2:not(.catalog-motion--hero-off) .tpl1-hero[data-responsive-profile="mobile_portrait"] .tpl1-hero__visual.is-visible .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot {
    animation: tpl3-mobile-product-float 5.2s ease-in-out var(--tpl3-mobile-float-delay) infinite !important;
    transform: translate3d(0, var(--tpl3-mobile-float-y), 0) !important;
    will-change: transform;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot:nth-child(2) {
    --tpl3-mobile-float-delay: -1.3s;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot:nth-child(3) {
    --tpl3-mobile-float-delay: -2.6s;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot:nth-child(4) {
    --tpl3-mobile-float-delay: -3.9s;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__media,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__media:has(.tpl1-hero-product__floating-image) {
    height: 100% !important;
    min-height: 0 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__floating-image {
    filter: drop-shadow(0 12px 18px rgba(78, 51, 25, .16));
    transform: none !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__body {
    align-content: center;
    border-radius: 17px !important;
    box-shadow: 0 8px 20px rgba(104, 69, 37, .09) !important;
    gap: 3px !important;
    height: auto !important;
    justify-items: center;
    margin: 5px auto 0 !important;
    min-height: 72px !important;
    padding: 3px 7px !important;
    width: 87% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__body h2 {
    margin: 0 !important;
    max-width: 100%;
    overflow: visible !important;
    text-align: center;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__meta {
    justify-content: center;
    margin: 0 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__meta a {
    font-size: 9px !important;
    line-height: 20px !important;
    min-height: 22px !important;
    padding: 0 2px !important;
    position: relative;
    transform: none !important;
    width: max-content !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot .tpl1-hero-product__meta a::before {
    content: "";
    inset: -11px -5px;
    position: absolute;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--hero .tpl1-hero__copy {
    padding-top: 46px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2:not(.tpl2-v2-identity-has-title-size) .tpl2-v2-section--hero .tpl1-hero__copy h1 {
    font-size: clamp(3.07rem, 12.6vw, 3.4rem) !important;
    line-height: .88 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--hero .tpl1-hero__copy .tpl1-eyebrow {
    margin-bottom: 6px !important;
    margin-top: 10px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--hero .tpl1-hero__copy .tpl1-headline {
    margin-top: 8px !important;
  }
}

@property --tpl3-mobile-float-y {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}

@keyframes tpl3-mobile-product-float {
  0%, 100% { --tpl3-mobile-float-y: 0px; }
  50% { --tpl3-mobile-float-y: -5px; }
}

@media (max-width: 699.98px) and (orientation: portrait) and (prefers-reduced-motion: reduce) {
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2:not(.catalog-motion--hero-off) .tpl1-hero[data-responsive-profile="mobile_portrait"] .tpl1-hero__visual.is-visible .tpl1-visual-stage > .tpl2-v2-slots > .tpl2-v2-slot {
    animation: none !important;
    --tpl3-mobile-float-y: 0px;
    transform: none !important;
    will-change: auto;
  }
}

/* Template 3 featured products: reuse the approved landscape language in
   portrait without changing the horizontal product rail or its 2x2 viewport.
   The inherited portrait card paints one large surface around both media and
   copy; this isolates that surface to a compact ticket below a transparent
   media stage. */
@media (max-width: 699.98px) and (orientation: portrait) {
  /* Catalog portrait: the large editorial h2 is decorative in this compact
     header. Removing it from flow lets the existing gold eyebrow, divider and
     category controls form the visible hierarchy without changing the reveal
     panel or any other profile. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining .tpl1-section--catalog {
    padding-bottom: 12px !important;
    padding-top: 14px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining .tpl1-section--catalog .tpl1-section__head {
    margin-bottom: 0 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining .tpl1-section--catalog .tpl1-section__head h2 {
    color: rgb(255, 194, 51) !important;
    display: block !important;
    font-family: var(--cpage-headings-font, sans-serif) !important;
    font-size: clamp(22px, 6.67vw, 30px) !important;
    font-weight: 800 !important;
    letter-spacing: .01em;
    line-height: 1 !important;
    text-align: center !important;
    text-transform: uppercase;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining .tpl1-section--catalog .tpl1-section__head .tpl1-eyebrow {
    display: none !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining .tpl1-section--catalog .tpl1-section-divider {
    height: 28px !important;
    margin: 8px 0 12px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining .tpl1-section--catalog .tpl1-category-nav {
    display: grid !important;
    gap: 7px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    margin-bottom: 12px !important;
    touch-action: pan-y;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining .tpl1-section--catalog {
    touch-action: pan-y;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--remaining .tpl1-section--catalog .tpl1-category-nav a {
    align-items: center !important;
    box-sizing: border-box;
    display: flex !important;
    justify-content: center !important;
    min-height: 44px !important;
    min-width: 0 !important;
    overflow-wrap: anywhere;
    padding: 5px 4px !important;
    text-align: center !important;
    white-space: normal !important;
    width: 100% !important;
  }

  /* Featured portrait polish: close the title/divider/product rhythm without
     changing the rail, image stage, or its two visible rows. The ornament
     keeps its approved color; a subtly denser mask edge and line give it the
     requested presence at small sizes. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-section__head--showcase {
    margin-bottom: 8px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-section-divider {
    margin: -6px 0 10px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-section-divider .tpl1-contact-separator__line {
    height: 2px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-section-divider .tpl1-contact-separator__ornament:not(.tpl1-contact-separator__extra) {
    filter: drop-shadow(0 0 .35px rgba(184, 135, 37, .62));
    opacity: .96;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card {
    align-content: start !important;
    background: transparent !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: grid !important;
    grid-template-rows: auto auto !important;
    height: auto !important;
    overflow: visible !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__media {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: flex !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__media img {
    height: 100% !important;
    max-height: 100% !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    width: 100% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__body {
    align-content: center !important;
    background: rgba(255, 253, 249, .94) !important;
    border: 1px solid rgba(76, 52, 31, .12) !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 20px rgba(104, 69, 37, .08) !important;
    box-sizing: border-box !important;
    display: grid !important;
    gap: 2px !important;
    grid-template-rows: auto auto !important;
    margin: 4px auto 0 !important;
    min-height: 50px !important;
    padding: 5px 7px 6px !important;
    text-align: center !important;
    width: 96% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__body .tpl1-item-category {
    display: none !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__body h3 {
    margin: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
    white-space: normal !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot {
    align-items: center !important;
    display: flex !important;
    gap: 4px !important;
    justify-content: center !important;
    margin: 2px 0 0 !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-price,
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-inline-link {
    align-items: center !important;
    display: inline-flex !important;
    font-size: .62rem !important;
    height: 24px !important;
    justify-content: center !important;
    line-height: 1 !important;
    min-height: 24px !important;
    padding: 0 5px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-inline-link {
    flex: 0 0 auto !important;
    position: relative;
    width: auto !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-inline-link::before {
    content: "";
    inset: -8px -4px;
    pointer-events: auto;
    position: absolute;
    z-index: 1;
  }

  /* A 44px native button is kept for touch and keyboard users, while its
     compact 32px orange circle uses the existing action color. Negative block
     margins consume the row space already reserved by the old text action, so
     the approved ticket height does not grow. */
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot {
    gap: 6px !important;
    min-height: 36px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-price {
    font-size: 11px !important;
    font-weight: 700 !important;
    height: 26px !important;
    min-height: 26px !important;
    padding: 0 8px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-inline-link {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: transparent !important;
    flex: 0 0 44px !important;
    font-size: 0 !important;
    height: 44px !important;
    margin: -4px 0 !important;
    min-height: 44px !important;
    overflow: visible !important;
    padding: 0 !important;
    width: 44px !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-inline-link::before {
    display: none;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-inline-link::after {
    align-items: center;
    background: rgb(223, 137, 13);
    border-radius: 50%;
    color: #fff;
    content: "+";
    display: flex;
    font-family: Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    height: 26px;
    justify-content: center;
    left: 50%;
    line-height: 1;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 26px;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl2-v2-section--featured .tpl1-showcase-card__foot .tpl1-inline-link.is-added::after {
    content: "✓";
    font-size: 16px;
  }
}

@media (max-width: 389.98px) and (orientation: portrait) {
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2:not(.tpl2-v2-identity-has-title-size) .tpl2-v2-section--hero .tpl1-hero__copy h1 {
    font-size: clamp(2.25rem, 11.7vw, 2.85rem) !important;
  }
}

/* Reduced motion is a static, visible four-card state; V2 WAAPI does not start. */
@media (min-width: 900px) and (prefers-reduced-motion: reduce) {
  body.catalog-template--template_3 .catalog-hero-panorama,
  body.catalog-template--template_3 .catalog-hero-stage,
  body.catalog-template--template_3 .tpl1-hero__visual,
  body.catalog-template--template_3 .tpl1-visual-stage {
    height: auto !important;
    overflow: visible !important;
    position: relative !important;
  }

  body.catalog-template--template_3 .tpl2-v2-slots {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card {
    left: auto !important;
    margin: 0 !important;
    opacity: 1 !important;
    position: relative !important;
    rotate: none !important;
    scale: 1 !important;
    top: auto !important;
    translate: 0 0 !important;
    will-change: auto;
    width: 100% !important;
  }

  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > [data-tpl1-hero-card="main"] { --slot-x: 8px; --slot-y: 204px; }
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card--secondary-1 { --slot-x: 350px; --slot-y: 224px; }
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card--secondary-2 { --slot-x: 690px; --slot-y: 204px; }
  body.catalog-template--template_3.catalog-template--template_1.catalog-template--template_2 .tpl1-visual-stage > .tpl2-v2-slots > .tpl1-hero-product__card--secondary-3 { --slot-x: 1058px; --slot-y: 188px; }
}
