/* ============================================================
   PALACIO MANDARIN — BENTO  ·  v4.0
   Prefijo propio "pmb-" para no chocar con el tema ni otros plugins.
   Medidas tomadas de la página original (viewport 1440):
     ancho contenido 1080 · H1 96/86.4 · H2 48/48 · fila negra 27/20/10
     tarjeta: título 24/33.6 · texto 14 · centrado · 4 col gutter 5.3%
   ============================================================ */

/* ---------- Reset acotado: solo dentro de nuestros contenedores ---------- */
.pmb-root,
.pmb-root *,
.pmb-root *::before,
.pmb-root *::after{ box-sizing:border-box; }

.pmb-root{
    /* Tokens */
    --pmb-accent:#0b420d;
    --pmb-accent-hi:#116314;
    --pmb-black:#000;
    --pmb-hero:#e1e9e5;
    --pmb-footer:#2d2d2d;
    /* Timeline (pasos y términos) */
    --pmb-tl-bg:#fdf8f6;
    --pmb-tl-badge:#f7d9a6;
    --pmb-tl-line:#ecdfd7;
    --pmb-tl-title:#14100c;
    --pmb-tl-text:#4a453f;
    --pmb-fs:Georgia,"Times New Roman",serif;
    --pmb-text:#3c3a47;
    --pmb-ink:#0e0c19;
    --pmb-max:1080px;
    --pmb-fh:"Darker Grotesque",Helvetica,Arial,sans-serif;
    --pmb-fb:"Oswald",Helvetica,Arial,sans-serif;

    font-family:var(--pmb-fb);
    font-size:14px; font-weight:500; line-height:1.7;
    color:var(--pmb-text);
    text-align:left;
    -webkit-font-smoothing:antialiased;
}

/* ---------- Reset del tema ----------
   Va dentro de :where() a propósito: así aporta especificidad 0 y NUNCA
   puede ganarle a las clases de componente de más abajo.
   (Sin esto, `.pmb-root button` (0-1-1) machacaba a `.pmb-card__btn` (0-1-0)
   y el botón de añadir salía transparente y en minúsculas.)              */
.pmb-root :where(h1,h2,h3,h4,h5){
    margin:0; padding:0; font-family:var(--pmb-fh); text-transform:none;
    letter-spacing:normal; text-shadow:none;
}
.pmb-root :where(p){ margin:0; padding:0; font-family:var(--pmb-fb); text-transform:none; }
.pmb-root :where(ul,ol){ margin:0; padding:0; }
.pmb-root :where(li){ margin:0; }
.pmb-root :where(img){ max-width:100%; height:auto; display:block; border:0; box-shadow:none; }
.pmb-root :where(a){ text-decoration:none; box-shadow:none; }
.pmb-root :where(button){
    font-family:inherit; font-size:inherit; line-height:normal;
    margin:0; border:0; background:none; color:inherit;
    text-transform:none; letter-spacing:normal; box-shadow:none; text-shadow:none;
    -webkit-appearance:none; appearance:none; cursor:pointer;
}
.pmb-root :where(button:hover,button:focus){ box-shadow:none; }
.pmb-root :where(input,select,textarea){
    font-family:var(--pmb-fb); font-size:14px; margin:0;
    box-shadow:none; -webkit-appearance:none; appearance:none;
}
/* Emoji convertidos a <img> por WordPress: su CSS lleva !important,
   así que sólo se puede igualar con !important. */
.pmb-root img.emoji,
.pmb-root img.wp-smiley{
    display:inline !important; width:1em !important; height:1em !important;
    margin:0 .07em !important; padding:0 !important; border:0 !important;
    background:none !important; box-shadow:none !important;
    vertical-align:-.1em !important;
}

/* ---------- Contenedor de página: ancho completo SIN transform ----------
   (transform/filter crearían un containing block y romperían
    los position:fixed del carrito y del modal)                            */
#pmb-app{
    width:auto;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding:0;
    overflow-x:clip;
}
.pmb-wrap{ max-width:var(--pmb-max); margin:0 auto; padding:0 20px; }

/* =============================================
   BARRA SUPERIOR
   ============================================= */
.pmb-topbar{
    background:var(--pmb-topbar);
    background-image:linear-gradient(180deg,#111 0%,#000 100%);
    border-bottom:1px solid rgba(255,255,255,.09);
    position:relative;
}
/* Filo dorado tenue al pie de la barra */
.pmb-topbar::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
    background:linear-gradient(90deg,transparent,rgba(247,217,166,.45),transparent);
}
.pmb-topbar__inner{
    max-width:var(--pmb-max); margin:0 auto; padding:18px 20px 16px;
    display:grid; grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center; gap:24px;
}
.pmb-topbar__logo{ height:94px; width:auto; display:block; }
.pmb-topbar__title{
    font-family:var(--pmb-fb); font-size:26px; font-weight:300;
    line-height:1.25; color:#fff; text-align:center;
    letter-spacing:3.4px; text-transform:uppercase; white-space:nowrap;
    position:relative; padding-bottom:12px;
}
/* Rayita centrada bajo el nombre */
.pmb-topbar__title::after{
    content:""; position:absolute; left:50%; transform:translateX(-50%);
    bottom:0; width:46px; height:2px; background:var(--pmb-tl-badge);
    border-radius:2px;
}
.pmb-topbar__right{ display:flex; justify-content:flex-end; align-items:center; }
.pmb-langbar-solo{ background:var(--pmb-topbar); padding:10px 20px; display:flex; justify-content:flex-end; }

/* Selector de idioma */
.pmb-lang{
    display:flex; align-items:center; gap:2px;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
    border-radius:999px; padding:4px 6px;
}
.pmb-lang__btn{
    padding:5px 13px; border-radius:999px;
    font-family:var(--pmb-fb); font-size:13px; font-weight:500;
    color:rgba(255,255,255,.62); letter-spacing:.6px; line-height:1.4;
    transition:color .18s, background .18s;
}
.pmb-lang__btn:hover{ color:#fff; }
.pmb-lang__btn.pmb-is-active{ color:#111; background:var(--pmb-tl-badge); font-weight:600; }
.pmb-lang__sep{ display:none; }

/* =============================================
   HERO
   ============================================= */
.pmb-hero{ background:var(--pmb-hero); padding:7px 0 0; }
.pmb-hero__inner{
    max-width:var(--pmb-max); margin:0 auto; padding:10px 20px 27px;
    display:grid; grid-template-columns:3fr 2fr; gap:40px; align-items:center;
}
.pmb-hero__inner.pmb-hero--noimg{ grid-template-columns:1fr; }
.pmb-hero__title{
    font-size:72px; font-weight:700; line-height:1.0;
    color:#000; padding-bottom:10px;
}
.pmb-hero__body{
    font-family:var(--pmb-fb);
    font-size:19px; font-weight:500; line-height:1.6; color:#000;
    margin-bottom:26px;
}
.pmb-hero__body p{ font-size:inherit; line-height:inherit; color:inherit; margin:0; }
.pmb-hero__body p + p{ margin-top:16px; }
.pmb-hero__cta{
    display:inline-block; background:var(--pmb-accent); color:#fff;
    border-radius:10px; padding:12px 20px;
    font-family:var(--pmb-fh); font-size:17px; font-weight:800;
    line-height:28.9px; letter-spacing:2.72px; text-transform:uppercase;
    text-align:center; transition:background .2s;
}
.pmb-hero__cta:hover{ background:var(--pmb-accent-hi); color:#fff; }
.pmb-hero__media img{ width:100%; height:auto; max-height:420px; object-fit:cover; }

/* =============================================
   SECCIONES DE MENÚ
   ============================================= */
.pmb-section{ background:#fff; padding:54px 0; }
.pmb-section + .pmb-section{ padding-top:0; }
.pmb-section__head{ max-width:var(--pmb-max); margin:0 auto; padding:27px 20px; text-align:center; }
.pmb-section__title{ font-size:48px; font-weight:700; line-height:48px; color:#000; padding-bottom:10px; }
.pmb-section__sub{ font-family:var(--pmb-fb); font-size:16px; font-weight:500; line-height:28px; color:var(--pmb-text); }

/* Fila negra de productos */
.pmb-row{ background:var(--pmb-black); max-width:var(--pmb-max); margin:0 auto;
    padding:27px 20px 30px; border-radius:20px; }
.pmb-grid{ display:grid; grid-template-columns:repeat(var(--pmb-cols,4),1fr); gap:18px; }

/* =============================================
   TARJETA DE PRODUCTO  (contenido centrado)
   ============================================= */
.pmb-card{
    display:flex; flex-direction:column; text-align:center; color:#fff;
    background:rgba(255,255,255,.045);
    border:1px solid rgba(255,255,255,.13);
    border-radius:16px; padding:16px 16px 20px;
    box-shadow:0 2px 10px rgba(0,0,0,.25);
    transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
.pmb-card:hover{
    transform:translateY(-4px);
    border-color:rgba(255,255,255,.28);
    background:rgba(255,255,255,.075);
    box-shadow:0 14px 30px rgba(0,0,0,.42);
}
.pmb-card__media{ margin:0 0 16px; overflow:hidden; border-radius:11px; }
.pmb-card__media img{
    width:100%; aspect-ratio:16/9; object-fit:cover;
    border-radius:11px; transition:transform .35s ease;
}
/* Placeholder: se muestra entero, sin recortar ni hacer zoom */
.pmb-card__media--empty{ background:#1e1e1e; }
.pmb-card__media--empty img{ object-fit:contain; }
.pmb-card:hover .pmb-card__media--empty img{ transform:none; }
.pmb-card:hover .pmb-card__media img{ transform:scale(1.05); }
.pmb-card__title{ font-size:24px; font-weight:700; line-height:33.6px; color:#fff; }
.pmb-card__desc{
    font-family:var(--pmb-fb); font-size:14px; font-weight:500;
    line-height:1.4; color:#fff; margin-top:4px; flex:1;
}
.pmb-card__allergens{
    display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:12px;
}
/* Sólo se ve el icono; el nombre aparece al pasar el ratón, al enfocar o al pulsar */
.pmb-allergen{
    position:relative; display:inline-flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:50%;
    cursor:help; outline:none; transition:transform .15s;
    -webkit-tap-highlight-color:transparent;
}
.pmb-allergen:hover,
.pmb-allergen:focus-visible,
.pmb-allergen.pmb-is-shown{ transform:scale(1.12); }
.pmb-allergen:focus-visible{ box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--pmb-accent); }
.pmb-allergen__img{ width:34px; height:34px; display:block; border-radius:50%; }
.pmb-allergen__emoji{ font-size:22px; line-height:1; }

.pmb-allergen__label{
    position:absolute; bottom:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(3px);
    background:#fff; color:#161616; border-radius:8px;
    padding:7px 12px; font-family:var(--pmb-fb); font-size:12.5px; font-weight:500;
    line-height:1.3; white-space:nowrap; letter-spacing:.2px;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .16s, transform .16s, visibility .16s;
    z-index:30; box-shadow:0 8px 22px rgba(0,0,0,.45);
}
.pmb-allergen__label::after{
    content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%);
    border:6px solid transparent; border-top-color:#fff;
}
/* Que no se salga por los lados de la tarjeta */
.pmb-card__allergens .pmb-allergen:first-child .pmb-allergen__label{
    left:0; transform:translateX(0) translateY(3px);
}
.pmb-card__allergens .pmb-allergen:first-child .pmb-allergen__label::after{ left:17px; }
.pmb-card__allergens .pmb-allergen:last-child .pmb-allergen__label{
    left:auto; right:0; transform:translateX(0) translateY(3px);
}
.pmb-card__allergens .pmb-allergen:last-child .pmb-allergen__label::after{ left:auto; right:17px; }
.pmb-card__allergens .pmb-allergen:first-child:last-child .pmb-allergen__label{
    left:50%; right:auto; transform:translateX(-50%) translateY(3px);
}
.pmb-card__allergens .pmb-allergen:first-child:last-child .pmb-allergen__label::after{ left:50%; right:auto; }

.pmb-allergen:hover .pmb-allergen__label,
.pmb-allergen:focus-visible .pmb-allergen__label,
.pmb-allergen.pmb-is-shown .pmb-allergen__label{ transform:translateX(-50%) translateY(0); }
.pmb-card__allergens .pmb-allergen:first-child:hover .pmb-allergen__label,
.pmb-card__allergens .pmb-allergen:first-child:focus-visible .pmb-allergen__label,
.pmb-card__allergens .pmb-allergen:first-child.pmb-is-shown .pmb-allergen__label,
.pmb-card__allergens .pmb-allergen:last-child:hover .pmb-allergen__label,
.pmb-card__allergens .pmb-allergen:last-child:focus-visible .pmb-allergen__label,
.pmb-card__allergens .pmb-allergen:last-child.pmb-is-shown .pmb-allergen__label{
    transform:translateX(0) translateY(0);
}
.pmb-card__allergens .pmb-allergen:first-child:last-child:hover .pmb-allergen__label,
.pmb-card__allergens .pmb-allergen:first-child:last-child.pmb-is-shown .pmb-allergen__label{
    transform:translateX(-50%) translateY(0);
}
.pmb-allergen:hover .pmb-allergen__label,
.pmb-allergen:focus-visible .pmb-allergen__label,
.pmb-allergen.pmb-is-shown .pmb-allergen__label{
    opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}

.pmb-card__btn{
    margin-top:14px; width:100%;
    background:var(--pmb-accent); color:#fff; border-radius:10px; padding:9px 16px;
    font-family:var(--pmb-fh); font-size:15px; font-weight:800;
    letter-spacing:2px; text-transform:uppercase; text-align:center;
    transition:background .18s;
}
.pmb-card__btn:hover{ background:var(--pmb-accent-hi); }

/* =============================================
   PASOS  ·  timeline con círculos numerados
   ============================================= */
.pmb-steps{ background:var(--pmb-tl-bg); padding:64px 0 70px; }
.pmb-steps__head{ max-width:860px; margin:0 auto; padding:0 24px 46px; }
.pmb-steps__title{
    font-family:var(--pmb-fs); font-size:40px; font-weight:400;
    line-height:1.25; color:var(--pmb-tl-title);
    display:flex; align-items:center; gap:16px;
}
.pmb-steps__title .pmb-tl-check{
    flex:0 0 auto; width:34px; height:34px; border-radius:7px;
    background:#4c8a2f; color:#fff;
    display:inline-flex; align-items:center; justify-content:center;
}
.pmb-steps__title .pmb-tl-check svg{ width:22px; height:22px; display:block; }

.pmb-steps__grid{ max-width:860px; margin:0 auto; padding:0 24px; display:block; }

.pmb-step{
    display:grid; grid-template-columns:60px 1fr; column-gap:26px;
    text-align:left; position:relative; padding-bottom:52px;
}
.pmb-step:last-child{ padding-bottom:0; }
/* Línea vertical que une los círculos */
.pmb-step::before{
    content:""; position:absolute; left:30px; top:64px; bottom:6px;
    width:1px; background:var(--pmb-tl-line);
}
.pmb-step:last-child::before{ display:none; }

.pmb-step__num{
    width:60px; height:60px; margin:0; border-radius:50%;
    background:var(--pmb-tl-badge); color:var(--pmb-tl-title);
    font-family:var(--pmb-fs); font-size:24px; font-weight:400;
    display:flex; align-items:center; justify-content:center;
    line-height:1; position:relative; z-index:1;
}
.pmb-step__body{ padding-top:8px; }
.pmb-step__title{
    font-family:var(--pmb-fs); font-size:26px; font-weight:400;
    line-height:1.3; color:var(--pmb-tl-title); margin:0 0 10px; text-align:left;
}
.pmb-step__text{
    font-family:var(--pmb-fb); font-size:17px; font-weight:400;
    line-height:1.62; color:var(--pmb-tl-text); margin:0; text-align:left;
}

/* =============================================
   TÉRMINOS  ·  mismo timeline, con iconos
   ============================================= */
.pmb-terms{ background:var(--pmb-tl-bg); padding:64px 0 76px; }
.pmb-terms__inner{ max-width:860px; margin:0 auto; padding:0 24px; }
.pmb-terms__title{
    font-family:var(--pmb-fs); font-size:40px; font-weight:400; line-height:1.25;
    color:var(--pmb-tl-title); text-align:left; margin:0 0 18px; padding:0;
}
.pmb-terms__intro{
    font-family:var(--pmb-fb); font-size:17px; font-weight:400; line-height:1.62;
    color:var(--pmb-tl-text); margin:0 0 42px; max-width:760px;
}
.pmb-terms__body{ display:block; }

.pmb-tl-item{
    display:grid; grid-template-columns:56px 1fr; column-gap:24px;
    position:relative; padding-bottom:34px;
}
.pmb-tl-item:last-child{ padding-bottom:0; }
.pmb-tl-item::before{
    content:""; position:absolute; left:28px; top:60px; bottom:2px;
    width:1px; background:var(--pmb-tl-line);
}
.pmb-tl-item:last-child::before{ display:none; }

.pmb-tl-icon{
    width:56px; height:56px; border-radius:50%;
    background:var(--pmb-tl-badge); color:var(--pmb-tl-title);
    display:flex; align-items:center; justify-content:center;
    position:relative; z-index:1;
}
.pmb-tl-icon svg{ width:24px; height:24px; display:block; }

.pmb-tl-body{ padding-top:6px; }
.pmb-terms__h{
    font-family:var(--pmb-fs); font-size:25px; font-weight:400; line-height:1.3;
    color:var(--pmb-tl-title); margin:0 0 10px;
}
.pmb-terms__list{ margin:0; padding:0; list-style:none; }
.pmb-terms__list li{
    font-family:var(--pmb-fb); font-size:17px; font-weight:400; line-height:1.62;
    color:var(--pmb-tl-text); margin:0 0 6px; padding:0;
}
.pmb-terms__list li:last-child{ margin-bottom:0; }

/* =============================================
   PIE
   ============================================= */
.pmb-footer{
    background:var(--pmb-footer);
    background-image:linear-gradient(180deg,#333 0%,#252525 100%);
    color:#fff; padding:52px 0 0; position:relative;
}
.pmb-footer::before{
    content:""; position:absolute; top:0; left:0; right:0; height:1px;
    background:linear-gradient(90deg,transparent,rgba(247,217,166,.4),transparent);
}
.pmb-footer__inner{
    max-width:var(--pmb-max); margin:0 auto; padding:0 20px 40px;
    display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:40px;
}
.pmb-footer__col{ position:relative; }
/* Separadores verticales finos entre columnas */
.pmb-footer__col + .pmb-footer__col::before{
    content:""; position:absolute; left:-20px; top:4px; bottom:4px;
    width:1px; background:rgba(255,255,255,.09);
}
.pmb-footer__col h5{
    font-family:var(--pmb-fb); font-size:13px; font-weight:500;
    line-height:1.4; color:var(--pmb-tl-badge); text-align:left;
    letter-spacing:2.2px; text-transform:uppercase; margin:0 0 18px;
}
.pmb-footer__text{
    font-family:var(--pmb-fb); font-size:15px; font-weight:400;
    line-height:1.85; color:rgba(255,255,255,.74);
}
.pmb-footer__text div{ margin-bottom:3px; }
.pmb-footer__text a{
    color:rgba(255,255,255,.74); text-decoration:none;
    border-bottom:1px solid transparent; transition:color .18s, border-color .18s;
}
.pmb-footer__text a:hover{ color:#fff; border-bottom-color:var(--pmb-tl-badge); }
.pmb-footer__logo{ max-height:92px; width:auto; margin:0; display:block; }

/* Línea inferior */
.pmb-footer__bottom{
    border-top:1px solid rgba(255,255,255,.09);
    padding:20px;
}
.pmb-footer__bottom-inner{
    max-width:var(--pmb-max); margin:0 auto;
    font-family:var(--pmb-fb); font-size:13px; color:rgba(255,255,255,.42);
    text-align:center; letter-spacing:.4px;
}

/* =============================================
   CARRITO Y MODAL  — se montan en <body>, fuera de #pmb-app
   ============================================= */
.pmb-fab{
    position:fixed; bottom:28px; right:28px;
    width:58px; height:58px; background:#1a1a1a; color:#fff;
    border-radius:50%; line-height:1; padding:0;
    box-shadow:0 4px 18px rgba(0,0,0,.3);
    display:flex; align-items:center; justify-content:center;
    z-index:2147483000; transition:transform .2s, box-shadow .2s;
}
.pmb-fab:hover{ transform:scale(1.08); box-shadow:0 6px 22px rgba(0,0,0,.35); }
.pmb-fab__icon{ width:26px; height:26px; display:block; pointer-events:none; }
/* Si algún plugin convierte un emoji en <img>, que no rompa el botón */
.pmb-root img.emoji{ width:1em; height:1em; display:inline-block; vertical-align:-.1em; margin:0; }
.pmb-fab__badge{
    position:absolute; top:-5px; right:-5px;
    background:var(--pmb-accent,#0b420d); color:#fff; border-radius:10px;
    min-width:21px; height:21px; padding:0 5px; border:2px solid #fff;
    font-family:var(--pmb-fb); font-size:11px; font-weight:700;
    display:flex; align-items:center; justify-content:center; line-height:1;
}

.pmb-overlay{
    position:fixed; inset:0; background:rgba(0,0,0,.45);
    z-index:2147483100; cursor:pointer;
}

.pmb-cart{
    position:fixed; top:0; right:0;
    width:min(430px,100vw); height:100vh; height:100dvh;
    background:#fff; color:var(--pmb-text,#3c3a47);
    z-index:2147483200; display:flex; flex-direction:column;
    box-shadow:-6px 0 32px rgba(0,0,0,.14);
    transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.2,1);
}
.pmb-cart.pmb-is-open{ transform:translateX(0); }
.pmb-cart__head{
    padding:18px 20px; background:#000; color:#fff; flex-shrink:0;
    display:flex; align-items:center; justify-content:space-between;
}
.pmb-cart__head h3{ font-family:var(--pmb-fh); font-size:24px; font-weight:700; line-height:1.2; color:#fff; }
.pmb-cart__close{ color:rgba(255,255,255,.7); font-size:20px; line-height:1; padding:0; transition:color .15s; }
.pmb-cart__close:hover{ color:#fff; }
.pmb-cart__body{ flex:1; overflow-y:auto; padding:16px 18px; -webkit-overflow-scrolling:touch; min-height:0; }

/* Pie fijo: el resumen y el botón de continuar no se van con el scroll */
.pmb-cart__foot{
    flex:0 0 auto; background:#fff;
    border-top:1px solid #ececec;
    padding:12px 18px 18px;
    box-shadow:0 -6px 18px rgba(0,0,0,.06);
}
.pmb-cart__foot[hidden]{ display:none; }
.pmb-cart__foot .pmb-subtotal{ margin-top:0; padding-top:6px; border-top:0; }

/* Seguir eligiendo */
.pmb-keep{
    display:block; width:100%; margin:16px 0 4px;
    background:transparent; color:var(--pmb-accent);
    border:1.5px dashed rgba(11,66,13,.35); border-radius:10px;
    padding:11px 16px; text-align:center;
    font-family:var(--pmb-fb); font-size:14px; font-weight:500; letter-spacing:.2px;
    transition:background .15s, border-color .15s;
}
.pmb-keep:hover{ background:rgba(11,66,13,.05); border-color:var(--pmb-accent); }
.pmb-cart__empty{ text-align:center; color:#aaa; padding:48px 20px; font-size:15px; }

.pmb-item{ display:flex; align-items:flex-start; gap:10px; padding:12px 0; border-bottom:1px solid #f0f0f0; }
.pmb-item__info{ flex:1; min-width:0; }
.pmb-item__name{ font-family:var(--pmb-fh); font-size:18px; font-weight:700; line-height:1.25; color:#111;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pmb-item__date{ font-size:12px; color:#888; margin-top:2px; }
.pmb-item__ctrl{ display:flex; align-items:center; gap:5px; font-size:14px; font-weight:600; }
.pmb-qty-sm{
    width:28px; height:28px; background:#f3f3f3; border-radius:6px; font-size:16px;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s; color:#111; flex:0 0 auto;
}
.pmb-qty-sm:hover{ background:#e0e0e0; }
/* Cantidad editable en cada línea del carrito */
.pmb-item__qty{
    width:52px; height:28px; text-align:center;
    font-family:var(--pmb-fh); font-size:16px; font-weight:700; color:#111;
    background:#fff; border:1.5px solid #e0e0e0; border-radius:6px;
    padding:0 4px; outline:none; line-height:1;
    -webkit-appearance:textfield; appearance:textfield;
    transition:border-color .15s; flex:0 0 auto;
}
.pmb-item__qty:focus{ border-color:var(--pmb-accent); }
.pmb-item__qty::-webkit-outer-spin-button,
.pmb-item__qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.pmb-item__price{ font-family:var(--pmb-fh); font-size:17px; font-weight:700;
    color:var(--pmb-accent,#0b420d); min-width:56px; text-align:right; }
.pmb-item__x{ color:#ccc; font-size:14px; padding:0; transition:color .15s; }
.pmb-item__x:hover{ color:#c0392b; }
.pmb-subtotal{
    display:flex; justify-content:space-between; align-items:center;
    padding:16px 0 10px; border-top:2px solid #ebebeb; margin-top:6px;
    font-family:var(--pmb-fh); font-size:20px; font-weight:700; color:#111;
}

/* Avisos de límite en el carrito */
.pmb-units{
    display:block; font-family:var(--pmb-fb); font-size:12px; font-weight:400;
    color:#8a8a8a; letter-spacing:.2px; margin-top:2px;
}
.pmb-notice{
    border-radius:9px; padding:12px 14px; margin:12px 0 0;
    font-family:var(--pmb-fb); font-size:13px; line-height:1.55;
}
.pmb-notice strong{
    display:block; font-family:var(--pmb-fh); font-size:17px; font-weight:700;
    margin-bottom:4px; letter-spacing:.2px;
}
.pmb-notice p{ margin:0; font-size:13px; line-height:1.55; }
.pmb-notice--bulk{
    background:#fff8e9; border:1px solid #f0dcb0; color:#6b5322;
}
.pmb-notice--bulk strong{ color:#5b4416; }
.pmb-bulk__mail{
    display:inline-block; margin-top:8px; font-weight:600;
    color:var(--pmb-accent); text-decoration:underline; word-break:break-all;
}
.pmb-notice--error{
    background:#fdecea; border:1px solid #f5b7b1; color:#a5342a; font-weight:500;
}
.pmb-cutoff{
    margin:10px 0 0; font-family:var(--pmb-fb); font-size:12px;
    line-height:1.5; color:#8a8a8a; text-align:center;
}

/* Formulario */
.pmb-back{ color:var(--pmb-accent,#0b420d); font-family:var(--pmb-fb);
    font-size:13px; font-weight:600; padding:0 0 14px; display:block; }
.pmb-summary{ background:#f8f8f8; border-radius:8px; padding:12px 14px; margin-bottom:16px; font-size:13px; }
.pmb-summary__row{ display:flex; justify-content:space-between; gap:8px; padding:3px 0; color:#555; line-height:1.4; }
.pmb-form{ display:flex; flex-direction:column; gap:13px; }
.pmb-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pmb-field{ display:flex; flex-direction:column; gap:4px; }
.pmb-field label{ font-family:var(--pmb-fb); font-size:11px; font-weight:600;
    color:#777; text-transform:uppercase; letter-spacing:.6px; }
.pmb-field input{
    border:1.5px solid #ddd; border-radius:7px; padding:9px 12px;
    font-size:14px; color:#111; background:#fff; width:100%;
    outline:none; transition:border-color .18s;
}
.pmb-field input:focus{ border-color:var(--pmb-accent,#0b420d); }
.pmb-check{ display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.45; }
.pmb-check input[type=checkbox]{
    width:16px; height:16px; margin-top:2px; flex-shrink:0;
    accent-color:var(--pmb-accent,#0b420d); cursor:pointer; -webkit-appearance:auto; appearance:auto;
}
.pmb-check a{ color:var(--pmb-accent,#0b420d); text-decoration:underline; }
.pmb-error{ color:#e74c3c; font-size:13px; background:#fff5f5; border-radius:5px; padding:6px 10px; display:none; }
.pmb-error.pmb-is-visible{ display:block; }
.pmb-termsbox{
    background:#f9f9f9; border:1px solid #e5e5e5; border-radius:8px;
    padding:10px 14px; font-size:12px; color:#555; line-height:1.6;
    max-height:120px; overflow-y:auto;
}
.pmb-btn{
    background:var(--pmb-accent,#0b420d); color:#fff; border-radius:10px;
    padding:12px 20px; width:100%; text-align:center;
    font-family:var(--pmb-fh); font-size:17px; font-weight:800;
    letter-spacing:2px; text-transform:uppercase; transition:background .18s;
}
.pmb-btn:hover:not(:disabled){ background:var(--pmb-accent-hi,#116314); }
.pmb-btn:disabled{ background:#aaa; cursor:not-allowed; }
.pmb-btn--ghost{
    background:transparent; color:#777; border:1.5px solid #ddd;
    font-family:var(--pmb-fb); font-size:14px; font-weight:500;
    letter-spacing:normal; text-transform:none; padding:11px 18px;
    width:auto; flex-shrink:0; border-radius:8px;
}
.pmb-btn--ghost:hover{ border-color:#aaa; color:#555; background:transparent; }

/* Modal */
.pmb-modal{
    position:fixed; inset:0; background:rgba(0,0,0,.5);
    z-index:2147483300; display:flex; align-items:center; justify-content:center;
    padding:16px; animation:pmb-fade .18s ease;
}
@keyframes pmb-fade{ from{opacity:0} to{opacity:1} }
.pmb-modal__box{
    background:#fff; color:var(--pmb-text,#3c3a47);
    border-radius:16px; width:100%; max-width:400px;
    box-shadow:0 24px 60px rgba(0,0,0,.22); overflow:hidden;
    animation:pmb-up .22s ease;
}
@keyframes pmb-up{ from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
.pmb-modal__head{ padding:16px 20px; background:#000; display:flex; align-items:center; justify-content:space-between; }
.pmb-modal__head h3{ font-family:var(--pmb-fh); font-size:22px; font-weight:700; line-height:1.2; color:#fff; }
.pmb-modal__x{ color:rgba(255,255,255,.7); font-size:18px; padding:0; transition:color .15s; }
.pmb-modal__x:hover{ color:#fff; }
.pmb-modal__body{ padding:20px; display:flex; flex-direction:column; gap:16px; }
.pmb-modal__price{ font-family:var(--pmb-fh); font-size:19px; font-weight:700; color:var(--pmb-accent,#0b420d); }
.pmb-label{ font-family:var(--pmb-fb); font-size:11px; font-weight:600;
    color:#777; text-transform:uppercase; letter-spacing:.5px;
    display:block; margin-bottom:6px; line-height:1.35; }
.pmb-when .pmb-label{ min-height:2.7em; }
.pmb-select{
    border:1.5px solid #ddd; border-radius:7px; padding:9px 12px;
    font-size:14px; width:100%; background:#fff; color:#111;
    cursor:pointer; outline:none; transition:border-color .18s;
    -webkit-appearance:menulist; appearance:menulist;
}
.pmb-select:focus{ border-color:var(--pmb-accent,#0b420d); }
/* Día y hora en dos columnas */
.pmb-when{ display:grid; grid-template-columns:1fr 140px; gap:14px; align-items:start; }
@media (max-width:400px){ .pmb-when{ grid-template-columns:1fr; } }
.pmb-item__time{ color:var(--pmb-accent); font-weight:600; }

.pmb-qty{ display:flex; align-items:center; gap:12px; }
.pmb-qty__btn{
    width:38px; height:38px; background:#f5f5f5; border:1.5px solid #e0e0e0;
    border-radius:8px; font-size:20px; color:#111; line-height:1;
    display:flex; align-items:center; justify-content:center; transition:all .15s;
}
.pmb-qty__btn:hover{ background:#ebebeb; border-color:var(--pmb-accent,#0b420d); }
.pmb-qty__n{
    font-family:var(--pmb-fh); font-size:26px; font-weight:800;
    width:86px; text-align:center; color:#111;
    background:#fff; border:1.5px solid #e0e0e0; border-radius:8px;
    padding:4px 6px; line-height:1.2; outline:none;
    -webkit-appearance:textfield; appearance:textfield;
    transition:border-color .15s;
}
.pmb-qty__n:focus{ border-color:var(--pmb-accent,#0b420d); }
.pmb-qty__n::-webkit-outer-spin-button,
.pmb-qty__n::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.pmb-modal__unit{ font-family:var(--pmb-fb); font-size:14px; font-weight:500; }
.pmb-modal__foot{ padding:14px 20px 20px; display:flex; gap:10px; }
.pmb-modal__foot .pmb-btn{ flex:1 1 auto; padding:11px 18px; font-size:15px; }
.pmb-modal__foot .pmb-btn--ghost{ flex:0 0 auto; min-width:96px; }

/* Carga / éxito */
.pmb-loading{ display:flex; align-items:center; justify-content:center; min-height:300px; background:var(--pmb-black); }
.pmb-spinner{
    width:38px; height:38px; border:3px solid rgba(255,255,255,.2);
    border-top-color:var(--pmb-accent); border-radius:50%;
    animation:pmb-spin .7s linear infinite;
}
@keyframes pmb-spin{ to{transform:rotate(360deg)} }
.pmb-success{ text-align:center; padding:100px 20px; background:#fff; }
.pmb-success__check{
    width:72px; height:72px; margin:0 auto 22px;
    background:var(--pmb-accent); color:#fff; font-size:36px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
}
.pmb-success h2{ font-size:40px; font-weight:700; color:var(--pmb-accent); margin-bottom:10px; }
.pmb-success p{ font-family:var(--pmb-fb); color:#777; font-size:16px; }

/* =============================================
   RESPONSIVE
   ============================================= */
@media (max-width:1024px){
    .pmb-hero__title{ font-size:58px; line-height:1.0; }
    .pmb-hero__body{ font-size:18px; line-height:1.6; }
    .pmb-section__title{ font-size:40px; line-height:1.05; }
    .pmb-terms__title{ font-size:38px; line-height:1.2; }
    .pmb-grid{ grid-template-columns:repeat(3,1fr) !important; }
    .pmb-steps__grid,.pmb-footer__inner{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px){
    .pmb-hero__inner{ grid-template-columns:1fr; gap:26px; }
    .pmb-hero__title{ font-size:54px; }
    .pmb-grid{ grid-template-columns:repeat(2,1fr) !important; column-gap:20px; }
    .pmb-topbar__title{ line-height:1.3; }
}
@media (max-width:640px){
    .pmb-hero__title{ font-size:42px; }
    .pmb-hero__body{ font-size:17px; }
    .pmb-section{ padding:34px 0; }
    .pmb-section__head{ padding:18px 20px; }
    .pmb-section__title{ font-size:32px; }
    .pmb-terms__title{ font-size:30px; }
    .pmb-grid{ grid-template-columns:1fr !important; }
    .pmb-steps__grid,.pmb-footer__inner{ grid-template-columns:1fr; }
    .pmb-cart{ width:100vw; }
    .pmb-form__row{ grid-template-columns:1fr; }
    .pmb-fab{ bottom:16px; right:16px; width:52px; height:52px; font-size:21px; }
    .pmb-modal__box{ border-radius:12px; }
}
@media (max-width:400px){
    .pmb-modal__foot{ flex-direction:column; }
    .pmb-btn--ghost{ order:2; width:100%; }
}


/* =============================================
   BLINDAJE CONTRA EL TEMA
   Los temas aplican reglas como `.entry-content h2` (0-2-0) o
   `.ast-button, button` a todo lo que hay dentro del contenido.
   El reset de arriba va en :where() (especificidad 0) para no pisar a los
   componentes, así que la defensa se hace aquí con el ID del contenedor
   (1-1-0), que gana a cualquier selector de clase del tema — sin !important.
   ============================================= */

/* --- Tipografía: títulos --- */
#pmb-app .pmb-hero__title,
#pmb-app .pmb-section__title,
#pmb-app .pmb-card__title,
#pmb-app .pmb-step__title,
#pmb-app .pmb-terms__h,
#pmb-portal .pmb-cart__head h3,
#pmb-portal .pmb-modal__head h3,
#pmb-portal .pmb-item__name,
#pmb-portal .pmb-subtotal,
#pmb-portal .pmb-item__price,
#pmb-portal .pmb-modal__price,
#pmb-portal .pmb-qty__n{
    font-family:var(--pmb-fh); text-transform:none; letter-spacing:normal;
    margin:0; padding:0; text-shadow:none;
}
#pmb-app .pmb-hero__title   { font-size:72px; line-height:1.0; font-weight:700; color:#000; padding-bottom:10px; }
#pmb-app .pmb-section__title{ font-size:48px; line-height:48px;   font-weight:700; color:#000; padding-bottom:10px; }
#pmb-app .pmb-card__title   { font-size:24px; line-height:33.6px; font-weight:700; color:#fff; }
#pmb-app .pmb-step__title,
#pmb-app .pmb-terms__h,
#pmb-app .pmb-terms__title,
#pmb-app .pmb-steps__title,
#pmb-app .pmb-step__num{
    font-family:var(--pmb-fs); font-weight:400; text-transform:none; letter-spacing:normal;
    color:var(--pmb-tl-title); text-align:left;
}
#pmb-app .pmb-step__title { font-size:26px; line-height:1.3; margin:0 0 10px; }
#pmb-app .pmb-terms__h    { font-size:25px; line-height:1.3; margin:0 0 10px; }
#pmb-app .pmb-terms__title{ font-size:40px; line-height:1.25; margin:0 0 18px; padding:0; }
#pmb-app .pmb-steps__title{ font-size:40px; line-height:1.25; margin:0; padding:0; }
#pmb-app .pmb-step__num   { font-size:24px; line-height:1; margin:0; }
#pmb-app .pmb-topbar__title,
#pmb-app .pmb-footer__col h5{
    font-family:var(--pmb-fb); text-transform:none; letter-spacing:normal;
    margin:0; padding:0; color:#fff;
}
#pmb-app .pmb-topbar__title { font-size:26px; line-height:1.25; font-weight:300;
                              text-align:center; letter-spacing:3.4px; text-transform:uppercase; }
#pmb-app .pmb-footer__col h5{ font-size:13px; line-height:1.4; font-weight:500; text-align:left;
                              letter-spacing:2.2px; text-transform:uppercase; margin:0 0 18px;
                              color:var(--pmb-tl-badge); }

/* --- Tipografía: cuerpo --- */
#pmb-app .pmb-hero__body,
#pmb-app .pmb-hero__body p,
#pmb-app .pmb-card__desc,
#pmb-app .pmb-step__text,
#pmb-app .pmb-terms__body,
#pmb-app .pmb-terms__body p,
#pmb-app .pmb-footer__text,
#pmb-app .pmb-section__sub{
    font-family:var(--pmb-fb); font-weight:500; text-transform:none; letter-spacing:normal;
}
#pmb-app .pmb-hero__body     { font-size:19px; line-height:1.6; color:#000; margin:0 0 26px; }
#pmb-app .pmb-hero__body p   { font-size:19px; line-height:1.6; color:#000; margin:0; }
#pmb-app .pmb-hero__body p + p{ margin-top:16px; }
#pmb-app .pmb-card__desc     { font-size:14px; line-height:1.4;  color:#fff; margin:4px 0 0; }
#pmb-app .pmb-step__text,
#pmb-app .pmb-terms__intro,
#pmb-app .pmb-terms__list li{
    font-family:var(--pmb-fb); font-size:17px; font-weight:400; line-height:1.62;
    color:var(--pmb-tl-text); text-align:left; text-transform:none; letter-spacing:normal;
}
#pmb-app .pmb-step__text    { margin:0; }
#pmb-app .pmb-terms__body p { font-family:var(--pmb-fb); font-size:17px; font-weight:400;
                              line-height:1.62; color:var(--pmb-tl-text); margin:0 0 6px; }
#pmb-app .pmb-terms__intro  { margin:0 0 42px; }
#pmb-app .pmb-terms__list li{ margin:0 0 6px; padding:0; }
#pmb-app .pmb-footer__text   { font-size:15px; line-height:1.85; color:rgba(255,255,255,.74); }
#pmb-app .pmb-footer__bottom-inner{ font-family:var(--pmb-fb); font-size:13px;
                              color:rgba(255,255,255,.42); text-align:center; letter-spacing:.4px; }
#pmb-app .pmb-section__sub   { font-size:16px; line-height:28px; color:var(--pmb-text); margin:10px 0 0; }
#pmb-app .pmb-terms__list{ margin:0; padding:0; list-style:none; }

/* --- Botones --- */
#pmb-app .pmb-card__btn,
#pmb-portal .pmb-btn{
    background-color:var(--pmb-accent,#0b420d); background-image:none; color:#fff;
    font-family:var(--pmb-fh); font-weight:800;
    letter-spacing:2px; text-transform:uppercase; text-decoration:none;
    border:0; border-radius:10px; box-shadow:none; text-shadow:none;
    width:100%; text-align:center; cursor:pointer;
}
#pmb-app .pmb-card__btn{ font-size:15px; padding:9px 16px; margin-top:14px; }
#pmb-portal .pmb-btn   { font-size:17px; padding:12px 20px; }
#pmb-app .pmb-card__btn:hover,
#pmb-portal .pmb-btn:hover:not(:disabled){ background-color:var(--pmb-accent-hi,#116314); color:#fff; }
#pmb-portal .pmb-btn:disabled{ background-color:#aaa; }
#pmb-portal .pmb-btn--ghost{
    background-color:transparent; color:#777; border:1.5px solid #ddd;
    font-family:var(--pmb-fb); font-size:14px; font-weight:500;
    letter-spacing:normal; text-transform:none; width:auto; padding:11px 18px;
}
#pmb-portal .pmb-btn--ghost:hover{ background-color:transparent; color:#555; border-color:#aaa; }

#pmb-app .pmb-hero__cta{
    display:inline-block;
    background-color:var(--pmb-accent,#0b420d); background-image:none; color:#fff;
    font-family:var(--pmb-fh); font-size:17px; font-weight:800; line-height:28.9px;
    letter-spacing:2.72px; text-transform:uppercase; text-decoration:none;
    border:0; border-radius:10px; padding:12px 20px; box-shadow:none; text-shadow:none;
}
#pmb-app .pmb-hero__cta:hover{ background-color:var(--pmb-accent-hi,#116314); color:#fff; }

#pmb-app .pmb-lang__btn{
    background-color:transparent; color:rgba(255,255,255,.6);
    font-family:var(--pmb-fb); font-size:15px; font-weight:500;
    text-transform:none; letter-spacing:.5px; padding:4px 8px; border:0; box-shadow:none;
}
#pmb-app .pmb-lang__btn.pmb-is-active{ color:#111; background-color:var(--pmb-tl-badge); font-weight:600; }
#pmb-app .pmb-lang__btn{ border-radius:999px; padding:5px 13px; }

#pmb-portal .pmb-fab{
    background-color:#1a1a1a; background-image:none; color:#fff;
    border:0; padding:0; width:58px; height:58px; min-width:0; min-height:0;
    border-radius:50%; box-shadow:0 4px 18px rgba(0,0,0,.3);
    display:flex; align-items:center; justify-content:center; line-height:1;
}
#pmb-portal .pmb-fab__icon{
    width:26px; height:26px; display:block; flex:0 0 auto;
    stroke:currentColor; fill:none; pointer-events:none;
}
#pmb-portal .pmb-fab__badge{ background-color:var(--pmb-accent,#0b420d); color:#fff; font-family:var(--pmb-fb); }
#pmb-portal .pmb-qty__btn,
#pmb-portal .pmb-qty-sm{ background-color:#f5f5f5; background-image:none; color:#111; box-shadow:none; }
#pmb-portal .pmb-cart__close,
#pmb-portal .pmb-modal__x,
#pmb-portal .pmb-item__x,
#pmb-portal .pmb-back{ background-color:transparent; background-image:none; box-shadow:none; padding:0; width:auto; text-transform:none; letter-spacing:normal; }
#pmb-portal .pmb-cart__close,
#pmb-portal .pmb-modal__x{ color:rgba(255,255,255,.7); }
#pmb-portal .pmb-item__x{ color:#ccc; }
#pmb-portal .pmb-back{ color:var(--pmb-accent,#0b420d); font-family:var(--pmb-fb); font-weight:600; }

/* --- Formularios --- */
#pmb-portal .pmb-field input,
#pmb-portal .pmb-select,
#pmb-portal .pmb-qty__n{
    background-color:#fff; background-image:none; color:#111;
    box-shadow:none; border:1.5px solid #ddd; border-radius:7px;
}
#pmb-portal .pmb-qty__n{ font-family:var(--pmb-fh); font-size:26px; font-weight:800; text-align:center; border-radius:8px; }
#pmb-portal .pmb-check input[type=checkbox]{ -webkit-appearance:auto; appearance:auto; width:16px; height:16px; }
#pmb-portal .pmb-field label,
#pmb-portal .pmb-label{ font-family:var(--pmb-fb); font-size:11px; font-weight:600; color:#777; text-transform:uppercase; letter-spacing:.6px; margin:0; }

/* --- Imágenes --- */
#pmb-app .pmb-hero__media img,
#pmb-app .pmb-topbar__logo,
#pmb-app .pmb-footer__logo{ display:block; box-shadow:none; border:0; border-radius:0;
                            margin:0; filter:none; }
#pmb-app .pmb-card__media img{ display:block; box-shadow:none; border:0; border-radius:11px; margin:0; }
#pmb-app .pmb-allergen__img{ display:block; box-shadow:none; border:0; border-radius:50%;
                             margin:0; width:34px; height:34px; }
#pmb-portal .pmb-cart__foot{ background-color:#fff; border-top:1px solid #ececec; }
#pmb-portal .pmb-keep{
    background-color:transparent; background-image:none; color:var(--pmb-accent,#0b420d);
    border:1.5px dashed rgba(11,66,13,.35); border-radius:10px;
    font-family:var(--pmb-fb); font-size:14px; font-weight:500;
    letter-spacing:.2px; text-transform:none; width:100%;
    padding:11px 16px; box-shadow:none; text-align:center;
}
#pmb-portal .pmb-keep:hover{ background-color:rgba(11,66,13,.05); border-color:var(--pmb-accent,#0b420d); }
#pmb-portal .pmb-item__time{ color:var(--pmb-accent,#0b420d); font-weight:600; }
#pmb-portal .pmb-notice{ font-family:var(--pmb-fb); font-size:13px; }
#pmb-portal .pmb-notice strong{ font-family:var(--pmb-fh); font-size:17px; font-weight:700; }
#pmb-portal .pmb-notice p{ font-family:var(--pmb-fb); font-size:13px; line-height:1.55; margin:0; color:inherit; }
#pmb-portal .pmb-notice--bulk{ background-color:#fff8e9; color:#6b5322; }
#pmb-portal .pmb-notice--error{ background-color:#fdecea; color:#a5342a; }
#pmb-portal .pmb-bulk__mail{ color:var(--pmb-accent); text-decoration:underline; }
#pmb-portal .pmb-cutoff{ font-family:var(--pmb-fb); font-size:12px; color:#8a8a8a; text-align:center; margin:10px 0 0; }
#pmb-portal .pmb-units{ font-family:var(--pmb-fb); font-size:12px; font-weight:400; color:#8a8a8a; }
#pmb-portal .pmb-item__qty{ background-color:#fff; color:#111; font-family:var(--pmb-fh);
                            font-size:16px; font-weight:700; text-align:center;
                            border:1.5px solid #e0e0e0; border-radius:6px; box-shadow:none;
                            width:52px; height:28px; padding:0 4px; }

/* --- Fondos de sección (el tema puede pintar el contenido) --- */
#pmb-app .pmb-topbar{ background-color:var(--pmb-topbar,#000);
                      background-image:linear-gradient(180deg,#111 0%,#000 100%); }
#pmb-app .pmb-hero  { background-color:var(--pmb-hero,#e1e9e5); }
#pmb-app .pmb-row   { background-color:var(--pmb-card,#000); border-radius:20px; }
#pmb-app .pmb-card{ background-color:rgba(255,255,255,.045);
                    border:1px solid rgba(255,255,255,.13); border-radius:16px;
                    padding:16px 16px 20px; box-shadow:0 2px 10px rgba(0,0,0,.25); }
#pmb-app .pmb-card:hover{ background-color:rgba(255,255,255,.075);
                    border-color:rgba(255,255,255,.28); box-shadow:0 14px 30px rgba(0,0,0,.42); }
#pmb-app .pmb-allergen__label{ background-color:#fff; color:#161616; font-family:var(--pmb-fb);
                    font-size:12.5px; font-weight:500; letter-spacing:.2px; }
#pmb-app .pmb-footer{ background-color:var(--pmb-footer,#2d2d2d);
                      background-image:linear-gradient(180deg,#333 0%,#252525 100%); }
#pmb-app .pmb-section{ background-color:#fff; }
#pmb-app .pmb-steps,
#pmb-app .pmb-terms{ background-color:var(--pmb-tl-bg,#fdf8f6); }
#pmb-app .pmb-step__num,
#pmb-app .pmb-tl-icon{ background-color:var(--pmb-tl-badge,#f7d9a6); color:var(--pmb-tl-title,#14100c); }
#pmb-app .pmb-tl-icon svg{ width:24px; height:24px; display:block; }
#pmb-app .pmb-steps__title .pmb-tl-check{ background-color:#4c8a2f; color:#fff; }

/* --- Responsive del blindaje (los tamaños fijos de arriba deben ceder) --- */
@media (max-width:1024px){
    #pmb-app .pmb-hero__title   { font-size:58px; line-height:1.0; }
    #pmb-app .pmb-hero__body,
    #pmb-app .pmb-hero__body p  { font-size:18px; line-height:1.6; }
    #pmb-app .pmb-section__title{ font-size:40px; line-height:1.05; }
    #pmb-app .pmb-terms__title  { font-size:38px; line-height:1.2; }
}
@media (max-width:768px){
    #pmb-app .pmb-hero__title   { font-size:54px; }
    #pmb-app .pmb-topbar__title { font-size:20px; line-height:1.3; text-align:left; }
}
@media (max-width:640px){
    #pmb-app .pmb-hero__title   { font-size:42px; }
    #pmb-app .pmb-hero__body,
    #pmb-app .pmb-hero__body p  { font-size:17px; }
    #pmb-app .pmb-section__title{ font-size:32px; }
    #pmb-app .pmb-terms__title  { font-size:30px; }
}

/* Timeline responsive */
@media (max-width:640px){
    #pmb-app .pmb-steps__title,
    #pmb-app .pmb-terms__title{ font-size:29px; }
    #pmb-app .pmb-step__title { font-size:22px; }
    #pmb-app .pmb-terms__h    { font-size:21px; }
    #pmb-app .pmb-step__text,
    #pmb-app .pmb-terms__intro,
    #pmb-app .pmb-terms__list li{ font-size:15.5px; }
    .pmb-step{ grid-template-columns:48px 1fr; column-gap:16px; padding-bottom:38px; }
    .pmb-step::before{ left:24px; top:52px; }
    .pmb-step__num{ width:48px; height:48px; }
    #pmb-app .pmb-step__num{ font-size:20px; }
    .pmb-tl-item{ grid-template-columns:46px 1fr; column-gap:16px; }
    .pmb-tl-item::before{ left:23px; top:50px; }
    .pmb-tl-icon{ width:46px; height:46px; }
    #pmb-app .pmb-tl-icon svg{ width:20px; height:20px; }
    .pmb-steps{ padding:40px 0 46px; }
    .pmb-terms{ padding:40px 0 48px; }
    .pmb-steps__head{ padding-bottom:32px; }
}

@media (max-width:1024px){
    .pmb-footer__col + .pmb-footer__col::before{ display:none; }
    .pmb-footer__inner{ grid-template-columns:1fr 1fr; gap:32px; }
}
@media (max-width:768px){
    /* Fila 1: logo a la izquierda, idiomas a la derecha. Fila 2: nombre. */
    .pmb-topbar__inner{
        grid-template-columns:auto auto; justify-content:space-between;
        row-gap:14px; column-gap:12px; padding:14px 18px 14px;
    }
    .pmb-topbar__left { grid-column:1; grid-row:1; }
    .pmb-topbar__right{ grid-column:2; grid-row:1; justify-content:flex-end; }
    .pmb-topbar__title{
        grid-column:1 / -1; grid-row:2;
        font-size:17px; letter-spacing:2.2px; padding-bottom:9px; text-align:center;
    }
    .pmb-topbar__title::after{ left:50%; transform:translateX(-50%); }
    #pmb-app .pmb-topbar__title{ font-size:17px; letter-spacing:2.2px; text-align:center; }
    .pmb-topbar__logo{ height:56px; }
    .pmb-lang__btn{ padding:5px 11px; font-size:12.5px; }
}
@media (max-width:640px){
    .pmb-footer__inner{ grid-template-columns:1fr; gap:26px; }
    .pmb-card{ padding:14px 14px 18px; }
    .pmb-grid{ gap:14px; }
    .pmb-row{ border-radius:14px; }
}
