/* Preserve order/admin components alongside the supplied redesign. */
[hidden] { display:none !important; }
.hero .hero-logo { width:100%; height:auto; max-width:360px; }
.hero-text { min-width:0; }
.hero-media { flex-shrink:0; }
.site-footer .btn-whatsapp { color:#06331b; }
.site-footer .btn-whatsapp:hover { text-decoration:none; }
.promo-slide-image { width:88px; height:88px; object-fit:contain; border-radius:9px; flex-shrink:0; background:rgba(255,255,255,.15); }
.promo-card-image { width:100%; aspect-ratio:1; object-fit:contain; border-radius:10px; background:rgba(0,0,0,.15); }
.promo-card, .promo-content, .promotion-admin-body { min-width:0; overflow-wrap:anywhere; }
.promo-banner { position:relative; top:0; }
.promo-banner-inner { align-items:center; }
.promo-controls { flex-wrap:wrap; max-width:100%; }
.promo-dots { flex-wrap:wrap; max-width:160px; }
.promo-prev, .promo-next, .promo-close { min-width:36px; min-height:36px; }
.promo-pause { border:1px solid rgba(0,0,0,.25); background:transparent; color:#111; border-radius:8px; min-height:36px; padding:5px 8px; cursor:pointer; }
.promo-slides { flex-basis:65%; }
.promo-close { align-self:flex-start; }
:focus-visible { outline:3px solid var(--oro); outline-offset:4px; }
.promo-banner :focus-visible { outline-color:#111; }
.city-panel { scroll-margin-top:90px; }
.promotion-page-heading { display:flex; gap:20px; justify-content:space-between; align-items:center; margin-bottom:28px; }
.promotion-page-heading h1 { margin:6px 0; }
.eyebrow { font-size:.72rem; letter-spacing:.14em; font-weight:800; color:var(--primario); }
.promotion-manager { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:28px; align-items:start; }
.promotion-editor { border:1px solid var(--borde); background:var(--superficie); padding:24px; border-radius:var(--radio); }
.promotion-editor h2 { margin:0; scroll-margin-top:20px; }
.promotion-editor fieldset { border:0; margin:0; padding:0; min-width:0; }
.promotion-editor fieldset:disabled { opacity:.65; }
.promotion-fields-row { display:flex; gap:14px; }
.promotion-fields-row .field { flex:1; min-width:0; }
.promotion-editor input[type=color] { padding:4px; min-height:46px; width:100%; }
.promotion-editor small { display:block; margin-top:6px; font-size:.8rem; }
.promotion-publish { display:flex; align-items:center; gap:10px; margin:20px 0; font-weight:700; }
.promotion-publish input { width:20px; height:20px; accent-color:var(--primario); }
.promotion-preview-panel { position:sticky; top:24px; }
.promotion-preview-panel .promo-card { max-width:420px; }
.promotion-preview-panel .muted { font-size:.88rem; }
.promotion-list-section { margin-top:44px; }
.promotion-admin-list { display:grid; gap:14px; }
.promotion-admin-card { display:flex; gap:20px; padding:20px; background:var(--superficie); border:1px solid var(--borde); border-radius:var(--radio); align-items:flex-start; }
.promotion-admin-image { width:104px; height:104px; object-fit:contain; border-radius:10px; background:var(--fondo); }
.promotion-admin-icon { width:104px; height:104px; flex-shrink:0; display:grid; place-items:center; background:var(--fondo); border-radius:10px; font-size:2rem; }
.promotion-admin-body { flex:1; }
.promotion-admin-body h3 { margin:8px 0; }
.promotion-admin-body p { margin:6px 0 10px; }
.promotion-status { display:inline-block; padding:4px 10px; border-radius:30px; font-weight:700; font-size:.75rem; color:var(--texto-2); background:#303030; }
.promotion-status.is-published { background:#153d27; color:#97f1b8; }
.promotion-delete { color:#ffb8b8; }
.admin-top .container { flex-wrap:wrap; gap:12px; }
.admin-top .container>div { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.admin-top a { white-space:nowrap; }
@media(max-width:1199px) {
  .nav-desktop { display:none; }
  .menu-toggle { display:inline-flex; }
  .nav-mobile.open { display:flex !important; }
}
@media(max-width:719px) {
  .promotion-manager { grid-template-columns:1fr; }
  .promotion-preview-panel { position:static; }
  .promotion-page-heading { align-items:flex-start; flex-direction:column; }
  .promotion-editor { padding:18px; }
  .promotion-admin-card { flex-wrap:wrap; gap:14px; }
  .promotion-admin-image, .promotion-admin-icon { width:64px; height:64px; }
  .promotion-admin-body { flex-basis:calc(100% - 80px); }
}
@media(max-width:539px) {
  .promo-slides { flex-basis:calc(100% - 46px); }
  .promo-controls { order:3; width:100%; justify-content:center; display:flex; }
  .promo-slide-image { width:64px; height:64px; }
  .brand-name { font-size:.94rem; }
  .header-actions .btn { font-size:.78rem; padding:10px; }
  .brand { gap:6px; }
  .promotion-fields-row { flex-wrap:wrap; }
  .promotion-fields-row .field { flex-basis:100px; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }

.promotion-order { padding-top:36px; padding-bottom:64px; }
.promotion-back { display:inline-block; margin-bottom:22px; }
.promotion-order h1 { margin:0 0 12px; }
.promotion-order-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; gap:32px; margin-top:30px; }
.promotion-order-summary, .promotion-order-panel { min-width:0; background:var(--superficie); border:1px solid var(--borde); border-radius:18px; padding:28px; }
.promotion-order-summary { position:sticky; top:24px; }
.promotion-order-summary h2 { margin:18px 0 12px; overflow-wrap:anywhere; }
.promotion-order-summary p { white-space:pre-wrap; overflow-wrap:anywhere; }
.promotion-order-summary small { display:block; margin-top:20px; }
.promotion-order fieldset { min-width:0; border:0; padding:0; margin:0; }
.promotion-order .promotion-city-fieldset { margin-bottom:24px; }
.promotion-city-fieldset legend { font-weight:700; margin-bottom:14px; }
.promotion-city-buttons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.promotion-city-choice { position:relative; cursor:pointer; }
.promotion-city-choice input { position:absolute; width:1px; height:1px; opacity:0; }
.promotion-city-choice span { display:block; text-align:center; padding:13px 10px; border:2px solid var(--borde); border-radius:10px; font-weight:700; }
.promotion-city-choice input:checked + span { background:#f5a000; border-color:#f5a000; color:#111; }
.promotion-city-choice input:focus-visible + span { outline:3px solid #fff; outline-offset:3px; }
.promotion-city-choice input:disabled + span { cursor:wait; opacity:.65; }
.promotion-city-fieldset p, .promotion-order-note { font-size:.85rem; }
.promotion-quantity { display:flex; gap:10px; align-items:center; }
.promotion-quantity button { width:48px; height:48px; flex-shrink:0; border:1px solid var(--borde); border-radius:10px; background:var(--fondo); color:var(--texto); font-size:1.5rem; cursor:pointer; }
.promotion-quantity button:disabled { opacity:.35; cursor:default; }
.promotion-quantity input { width:80px; text-align:center; font-weight:800; font-size:1.1rem; }
.promotion-form-subtitle { margin-top:26px; font-size:1rem; }
.promotion-message { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:.9rem; padding:18px; background:var(--fondo); border-radius:10px; border:1px solid var(--borde); }
.promotion-order-note { text-align:center; margin-bottom:0; }
#promotionOrderResult h2:focus { outline:none; }
#promotionOrderResult .btn { margin-top:12px; }
@media(max-width:719px) {
  .promotion-order-layout { grid-template-columns:1fr; gap:20px; }
  .promotion-order-summary { position:static; }
  .promotion-order-summary, .promotion-order-panel { padding:20px; }
  .promotion-order-summary .promo-card-image { max-height:240px; }
}
