/* Demo de dirección de arte. No modifica precios ni lógica del pedido. */
.pack-copy .bravo-flavors {display:inline-block;background:#11120f;color:#fffdf7;padding:8px 13px 11px;margin-top:10px;letter-spacing:-.015em;box-shadow:5px 5px 0 #fffdf7;}
.demo-banner {background:#ffcb24;color:#11120f;}
.hero-photo {position:relative;}
.hero-photo img {object-fit:cover;border-radius:0;height:auto;aspect-ratio:3/2;}
.promo-card.featured > .promo-photo,.promo-card.individual-promo > .promo-photo {height:auto;min-height:0;aspect-ratio:3/2;}
.promo-card.featured,.promo-card.individual-promo {border:0;overflow:hidden;}
.promo-card.featured > .promo-photo,.promo-card.individual-promo > .promo-photo {margin:0;padding:0;width:100%;}
.promo-card .promo-photo img {display:block;object-fit:cover;margin:0;padding:0;border:0;width:100%;height:100%;}
#modal-body > img {height:auto !important;aspect-ratio:3/2;object-fit:cover !important;background:transparent !important;}
.pack-photo {min-height:0;align-self:stretch;}
.pack-photo img {object-fit:cover;min-height:0;}
.product-visual {min-height:420px;align-self:stretch;overflow:hidden;}
.config-card .product-visual img {width:100%;height:100%;object-fit:cover;position:absolute;inset:0;border:0;margin:0;padding:0;}
.config-card {align-items:start;}
.config-card .product-visual {aspect-ratio:3/2;min-height:0;align-self:start;}
.config-card .product-visual img {object-fit:cover;}
.config-card .product-visual img {object-position:50% 50%;transform-origin:center;}
/* Encuadre estable: las Bravas usan el mismo marco y el centro real de cada plato. */
.config-card .product-visual.bravas {aspect-ratio:1/1;}
.config-card .product-visual.bravas img[src$="fries-cheddar.webp"] {object-position:50% 62%;}
.config-card .product-visual.bravas img[src$="fries-bacon.webp"] {object-position:50% 35%;}
.config-card .product-visual.bravas img[src$="fries-mushroom.webp"] {object-position:50% 48%;}
.config-card .product-visual.bravas img {width:104%;left:-2%;right:auto;}
@media (min-width:1101px) {
  .config-card {align-items:stretch;}
  .config-card .product-visual {align-self:stretch;aspect-ratio:auto;min-height:440px;}
  .config-card .product-visual.bravas {min-height:clamp(440px,46vw,650px);}
}
.config-card .product-visual.bravas.changed img {animation:bravaPhotoFade .25s ease;}
@keyframes bravaPhotoFade {from{opacity:.65;}to{opacity:1;}}
.config-card .product-visual::before,.config-card .product-visual::after {display:none;}
.config-card .product-visual.combos:has(img[src*="combo-share"]) {aspect-ratio:3/4;}
@media (min-width:701px) and (max-width:1100px){.config-card{grid-template-columns:1fr;}.config-card .product-visual{width:100%;aspect-ratio:3/2;min-height:0;}.config-card .product-visual.bravas{aspect-ratio:1/1;}}
.promo-photo > small,.pack-photo > small,.product-visual .visual-label {background:transparent;color:white;right:auto;text-shadow:0 1px 5px #000;padding:0;bottom:14px;left:20px;}
.promo-card.individual-promo {background:#ffcb24;color:#11120f;border:0;}
.individual-promo .promo-copy {position:relative;}
.individual-promo .promo-copy::before {content:'〰 〰';display:block;position:absolute;right:26px;top:22px;font-size:34px;color:#fff;font-weight:900;letter-spacing:-6px;}
.individual-promo .promo-photo .tag {background:#fff;color:#11120f;border-color:#fff;}
.individual-promo .promo-copy .eyebrow {color:#11120f;}
.individual-promo .promo-copy h3 span {color:#11120f;}
.individual-promo .combo-includes li,.individual-promo .combo-includes small,.individual-promo .offer-note {color:#272716;}
.individual-promo .promo-buy .button {background:#11120f;color:#fff;}
.individual-promo .promo-buy .button:hover {background:#fff;color:#11120f;}
.brand-personality {display:flex;align-items:center;gap:32px;border-top:1px solid #dcd8ce;padding-top:25px;margin-top:34px;}
.brand-personality img {width:150px;height:180px;object-fit:contain;flex-shrink:0;}
.brand-personality h3 {font-size:2.6rem;margin:8px 0;}
.brand-personality p {margin:0;color:#585c50;}
.brand-signs {display:flex;gap:14px;margin-top:15px;align-items:center;}
.brand-signs span {display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:800;letter-spacing:.04em;}
.brand-signs b {font-size:28px;color:#9b6900;}
.mascot-hero {display:flex;align-items:center;gap:15px;margin-top:20px;}
.mascot-hero img {width:90px;height:110px;object-fit:contain;}
.mascot-hero span {font-family:'Barlow Condensed',Impact,sans-serif;font-weight:800;font-size:1.7rem;line-height:1.1;color:#ffcb24;}
.product-visual.bebidas {aspect-ratio:1;}
@media(max-width:700px){.product-visual,.pack-photo{aspect-ratio:3/2;min-height:0;}}
.brand-film video {display:none;}
.brand-film::before {content:'';display:block;height:340px;grid-area:1/1;background:url('assets/mascota-plato-demo.png') center / contain no-repeat;}
.pack-promo > .pack-photo {position:relative;align-self:stretch;aspect-ratio:auto;height:auto;min-height:350px;}
.pack-promo > .pack-photo img {position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:cover;}
@media(max-width:700px){.pack-promo > .pack-photo{height:auto;min-height:0;aspect-ratio:3/2;}}
@media(max-width:700px){.brand-film::before{height:280px;}.brand-film > div{grid-column:1;grid-row:2;}}
@media(max-width:700px){.hero-photo img{height:auto;}.product-visual{min-height:0;width:100%;}.pack-photo{height:auto;min-height:0;}.promo-card.featured > .promo-photo,.promo-card.individual-promo > .promo-photo{height:auto;min-height:0;}.brand-personality{gap:18px;}.brand-personality img{width:100px;height:140px;}.brand-personality h3{font-size:2rem;}.brand-signs{flex-wrap:wrap;gap:8px 15px;}.brand-signs span{font-size:.7rem;}.mascot-hero{margin-top:14px;}.mascot-hero img{width:70px;height:85px;}}

/* Franja continua: cuatro copias idénticas y un avance exacto de una copia. */
.brand-ribbon > div {
  gap: 0;
  will-change: transform;
  animation: bravaRibbonLoop 28s linear infinite;
}
.brand-ribbon > div > span {
  display: block;
  flex: 0 0 auto;
  padding-right: 42px;
}
@keyframes bravaRibbonLoop {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-25%, 0, 0); }
}
@media(max-width:700px) {
  .brand-ribbon > div { animation-duration: 22s; }
  .brand-ribbon > div > span { padding-right: 28px; }
}
@media(prefers-reduced-motion:reduce) {
  .brand-ribbon > div { animation: none; transform: none; }
}
