/* Google Fonts: Oi (display titles) + Teko (categories/prices) + Rubik (text) */
@import url('https://fonts.googleapis.com/css2?family=Oi&family=Rubik:wght@400;500;700;800;900&family=Teko:wght@400;500;600;700&display=swap');

/* ============================================================================
   TYPOGRAPHY SYSTEM — single source of truth for every text role on the site
   ============================================================================
   HOW TO USE
   ----------
   All text styles are driven by the CSS variables below (PART 1).
   Change a variable here and the change applies everywhere that role is used.

   Example: make all category titles bigger and white
       --t-category-title-size:  24px;
       --t-category-title-color: #ffffff;

   PART 2 defines utility classes (.t-hero-title, ...) for any NEW elements.
   PART 3 maps the EXISTING site elements to the tokens (selector lists per
   role). The token values below reproduce the current design exactly, so
   loading this file changes nothing visually — it only centralizes control.

   Variants: a few elements of a role intentionally differ from the canonical
   token (kept to preserve the current design). They are pinned in PART 4 with
   scoped overrides — delete a pin to make that element follow the main token.
   ============================================================================ */

/* ===========================  PART 1 — TOKENS  =========================== */
:root {
  /* Shared font stacks — the three brand fonts:
     Oi    → big display titles
     Teko  → category headings, prices, label-style titles
     Rubik → all reading text, nav, forms, buttons */
  --t-font-display: 'Oi', var(--restaurant-font-display, Georgia, "Times New Roman", serif);
  --t-font-body:    'Rubik', var(--restaurant-font-body, Inter, Arial, sans-serif);
  --t-font-nav:     'Rubik', var(--restaurant-font-nav, Inter, Arial, sans-serif);
  --t-font-accent:  'Teko', 'Rubik', Inter, Arial, sans-serif;

  /* 1. hero-title — big titles on hero/strong visual sections
        (Commandez en ligne, checkout heading) */
  --t-hero-title-family: var(--t-font-display);
  --t-hero-title-size: clamp(40px, 7vw, 78px);           /* desktop (fluid)  */
  --t-hero-title-size-mobile: clamp(40px, 7vw, 78px);   /* phones           */
  --t-hero-title-weight: 400;   /* Oi only ships weight 400 — 700 forced ugly faux-bold */
  --t-hero-title-line: .95;
  --t-hero-title-spacing: 0;
  --t-hero-title-transform: none;
  --t-hero-title-color: var(--pdi-cream, #fff2d8);
  --t-hero-title-shadow: 0 4px 28px rgba(0, 0, 0, .58);

  /* 2. hero-subtitle — paragraph under the hero titles */
  --t-hero-subtitle-family: var(--t-font-body);
  --t-hero-subtitle-size: 17px;
  --t-hero-subtitle-size-mobile: 17px;
  --t-hero-subtitle-weight: 400;
  --t-hero-subtitle-line: 1.7;
  --t-hero-subtitle-spacing: 0;
  --t-hero-subtitle-transform: none;
  --t-hero-subtitle-color: rgba(255, 242, 216, .76);
  --t-hero-subtitle-shadow: 0 2px 18px rgba(0, 0, 0, .54);

  /* 3. section-title — big titles of important sections
        (Réservez votre table, Notre maison, menu statement) */
  --t-section-title-family: var(--t-font-display);
  --t-section-title-size: clamp(30px, 3.2vw, 56px);
  --t-section-title-size-mobile: clamp(30px, 3.2vw, 56px);
  --t-section-title-weight: 400;
  --t-section-title-line: .88;
  --t-section-title-spacing: 0;
  --t-section-title-transform: none;
  --t-section-title-color: #fff8ea;
  --t-section-title-shadow: none;

  /* 4. section-subtitle — kickers / eyebrows above section titles
        (MENU & COMMANDER, RÉSERVATION, MENU MAISON, ...) */
  --t-section-subtitle-family: var(--t-font-accent);
  --t-section-subtitle-size: clamp(18px, 1.5vw, 27px);
  --t-section-subtitle-size-mobile: clamp(18px, 1.5vw, 27px);
  --t-section-subtitle-weight: 800;
  --t-section-subtitle-spacing: .18em;
  --t-section-subtitle-transform: uppercase;
  --t-section-subtitle-color: rgba(255, 242, 216, .76);

  /* 5. category-title — menu category headings (BURGERS, SIDES, ...) */
  --t-category-title-family: var(--t-font-accent);
  --t-category-title-size: clamp(15px, 1.3vw, 20px);
  --t-category-title-size-mobile: clamp(15px, 1.3vw, 20px);
  --t-category-title-weight: 900;
  --t-category-title-spacing: .16em;
  --t-category-title-transform: uppercase;
  --t-category-title-color: var(--pdi-gold, #dba94f);

  /* 6. product-name — dish names in the order menu */
  --t-product-name-family: var(--t-font-body);
  --t-product-name-size: 15px;
  --t-product-name-size-mobile: 15px;
  --t-product-name-weight: 700;
  --t-product-name-line: 1.2;
  --t-product-name-spacing: 0;
  --t-product-name-transform: none;
  --t-product-name-color: var(--pdi-paper, #fff5e6);

  /* 7. product-description — ingredients / descriptions */
  --t-product-description-family: var(--t-font-body);
  --t-product-description-size: 12px;
  --t-product-description-size-mobile: 12px;
  --t-product-description-weight: 400;
  --t-product-description-line: 1.32;
  --t-product-description-spacing: 0;
  --t-product-description-transform: none;
  --t-product-description-color: rgba(233, 216, 187, .72);

  /* 8. product-price */
  --t-product-price-family: var(--t-font-accent);
  --t-product-price-size: 14px;
  --t-product-price-size-mobile: 13px;
  --t-product-price-weight: 800;
  --t-product-price-spacing: 0;
  --t-product-price-transform: none;
  --t-product-price-color: var(--pdi-cream, #fff2d8);

  /* 9. button-text — CTA buttons (Ajouter, Passer à l'étape suivante, Panier) */
  --t-button-text-family: var(--t-font-body);
  --t-button-text-size: 14px;
  --t-button-text-size-mobile: 14px;
  --t-button-text-weight: 800;
  --t-button-text-spacing: 0;
  --t-button-text-transform: none;
  --t-button-text-color: var(--pdi-ink, #1a1110);   /* on gold buttons */

  /* 10. nav-text — header navigation links + brand */
  --t-nav-text-family: var(--t-font-nav);
  --t-nav-text-size: clamp(14px, 1vw, 18px);
  --t-nav-text-size-mobile: clamp(14px, 1vw, 18px);
  --t-nav-text-weight: 500;
  --t-nav-text-spacing: .1em;
  --t-nav-text-transform: uppercase;
  --t-nav-text-color: var(--pdi-cream, #fff2d8);

  /* 11. badge-text — small decorative labels (tags: poulet, épicé, promo...) */
  --t-badge-text-family: var(--t-font-body);
  --t-badge-text-size: clamp(14px, 1.05vw, 17px);
  --t-badge-text-size-mobile: clamp(14px, 1.05vw, 17px);
  --t-badge-text-weight: 400;
  --t-badge-text-line: 1;
  --t-badge-text-spacing: 0;
  --t-badge-text-transform: none;
  --t-badge-text-color: rgba(255, 242, 216, .72);

  /* 12. cart-title — headings inside the cart panel (PANIER, TOTAL ESTIMÉ) */
  --t-cart-title-family: var(--t-font-accent);
  --t-cart-title-size: 12px;
  --t-cart-title-size-mobile: 12px;
  --t-cart-title-weight: 800;
  --t-cart-title-spacing: .14em;
  --t-cart-title-transform: uppercase;
  --t-cart-title-color: var(--pdi-gold, #dba94f);

  /* 13. cart-item-text — product lines inside the cart */
  --t-cart-item-family: var(--t-font-body);
  --t-cart-item-size: 14px;
  --t-cart-item-size-mobile: 14px;
  --t-cart-item-weight: 700;
  --t-cart-item-color: var(--pdi-paper, #fff5e6);
  --t-cart-item-muted-size: 13px;                       /* qty × price line   */
  --t-cart-item-muted-color: rgba(255, 242, 216, .68);

  /* 14. form-label — labels of all forms (NOM COMPLET, TÉLÉPHONE, ...) */
  --t-form-label-family: var(--t-font-body);
  --t-form-label-size: clamp(14px, 1vw, 18px);
  --t-form-label-size-mobile: clamp(14px, 1vw, 18px);
  --t-form-label-weight: 700;
  --t-form-label-spacing: .32em;
  --t-form-label-transform: uppercase;
  --t-form-label-color: rgba(42, 33, 27, .74);          /* on the light panel */

  /* 15. form-placeholder — input placeholders */
  --t-form-placeholder-family: var(--t-font-body);
  --t-form-placeholder-size: 14px;
  --t-form-placeholder-color: rgba(42, 33, 27, .42);

  /* 16. footer-title — footer column headings (NAVIGATION, CONTACT, ...) */
  --t-footer-title-family: var(--t-font-accent);
  --t-footer-title-size: clamp(18px, 1.5vw, 27px);
  --t-footer-title-size-mobile: clamp(18px, 1.5vw, 27px);
  --t-footer-title-weight: 500;
  --t-footer-title-line: 1;
  --t-footer-title-spacing: .02em;
  --t-footer-title-transform: uppercase;
  --t-footer-title-color: rgba(244, 221, 179, .62);

  /* 17. footer-text — links and values in the footer columns */
  --t-footer-text-family: var(--t-font-nav);
  --t-footer-text-size: clamp(18px, 1.22vw, 24px);
  --t-footer-text-size-mobile: clamp(15px, 5vw, 19px);
  --t-footer-text-weight: 500;
  --t-footer-text-line: 1.25;
  --t-footer-text-spacing: .01em;
  --t-footer-text-transform: uppercase;
  --t-footer-text-color: #fff3d2;

  /* 18. legal-text — legal bar links, copyright, small secondary texts */
  --t-legal-text-family: var(--t-font-nav);
  --t-legal-text-size: clamp(13px, .95vw, 16px);
  --t-legal-text-size-mobile: clamp(13px, .95vw, 16px);
  --t-legal-text-weight: 700;
  --t-legal-text-spacing: .08em;
  --t-legal-text-transform: none;
  --t-legal-text-color: rgba(255, 243, 210, .72);
  --t-legal-text-muted-color: rgba(244, 221, 179, .46); /* copyright          */
}

/* Mobile sizes — every role swaps to its mobile size below 768px */
@media (max-width: 767px) {
  :root {
    --t-hero-title-size: var(--t-hero-title-size-mobile);
    --t-hero-subtitle-size: var(--t-hero-subtitle-size-mobile);
    --t-section-title-size: var(--t-section-title-size-mobile);
    --t-section-subtitle-size: var(--t-section-subtitle-size-mobile);
    --t-category-title-size: var(--t-category-title-size-mobile);
    --t-product-name-size: var(--t-product-name-size-mobile);
    --t-product-description-size: var(--t-product-description-size-mobile);
    --t-product-price-size: var(--t-product-price-size-mobile);
    --t-button-text-size: var(--t-button-text-size-mobile);
    --t-nav-text-size: var(--t-nav-text-size-mobile);
    --t-badge-text-size: var(--t-badge-text-size-mobile);
    --t-cart-title-size: var(--t-cart-title-size-mobile);
    --t-cart-item-size: var(--t-cart-item-size-mobile);
    --t-form-label-size: var(--t-form-label-size-mobile);
    --t-footer-title-size: var(--t-footer-title-size-mobile);
    --t-footer-text-size: var(--t-footer-text-size-mobile);
    --t-legal-text-size: var(--t-legal-text-size-mobile);
  }
}

/* ====================  PART 2 — UTILITY CLASSES (new elements)  ==================== */
.t-hero-title        { font-family: var(--t-hero-title-family); font-size: var(--t-hero-title-size); font-weight: var(--t-hero-title-weight); line-height: var(--t-hero-title-line); letter-spacing: var(--t-hero-title-spacing); text-transform: var(--t-hero-title-transform); color: var(--t-hero-title-color); text-shadow: var(--t-hero-title-shadow); }
.t-hero-subtitle     { font-family: var(--t-hero-subtitle-family); font-size: var(--t-hero-subtitle-size); font-weight: var(--t-hero-subtitle-weight); line-height: var(--t-hero-subtitle-line); letter-spacing: var(--t-hero-subtitle-spacing); text-transform: var(--t-hero-subtitle-transform); color: var(--t-hero-subtitle-color); text-shadow: var(--t-hero-subtitle-shadow); }
.t-section-title     { font-family: var(--t-section-title-family); font-size: var(--t-section-title-size); font-weight: var(--t-section-title-weight); line-height: var(--t-section-title-line); letter-spacing: var(--t-section-title-spacing); text-transform: var(--t-section-title-transform); color: var(--t-section-title-color); text-shadow: var(--t-section-title-shadow); }
.t-section-subtitle  { font-family: var(--t-section-subtitle-family); font-size: var(--t-section-subtitle-size); font-weight: var(--t-section-subtitle-weight); letter-spacing: var(--t-section-subtitle-spacing); text-transform: var(--t-section-subtitle-transform); color: var(--t-section-subtitle-color); }
.t-category-title    { font-family: var(--t-category-title-family); font-size: var(--t-category-title-size); font-weight: var(--t-category-title-weight); letter-spacing: var(--t-category-title-spacing); text-transform: var(--t-category-title-transform); color: var(--t-category-title-color); }
.t-product-name      { font-family: var(--t-product-name-family); font-size: var(--t-product-name-size); font-weight: var(--t-product-name-weight); line-height: var(--t-product-name-line); letter-spacing: var(--t-product-name-spacing); text-transform: var(--t-product-name-transform); color: var(--t-product-name-color); }
.t-product-description { font-family: var(--t-product-description-family); font-size: var(--t-product-description-size); font-weight: var(--t-product-description-weight); line-height: var(--t-product-description-line); letter-spacing: var(--t-product-description-spacing); text-transform: var(--t-product-description-transform); color: var(--t-product-description-color); }
.t-product-price     { font-family: var(--t-product-price-family); font-size: var(--t-product-price-size); font-weight: var(--t-product-price-weight); letter-spacing: var(--t-product-price-spacing); text-transform: var(--t-product-price-transform); color: var(--t-product-price-color); }
.t-button-text       { font-family: var(--t-button-text-family); font-size: var(--t-button-text-size); font-weight: var(--t-button-text-weight); letter-spacing: var(--t-button-text-spacing); text-transform: var(--t-button-text-transform); color: var(--t-button-text-color); }
.t-nav-text          { font-family: var(--t-nav-text-family); font-size: var(--t-nav-text-size); font-weight: var(--t-nav-text-weight); letter-spacing: var(--t-nav-text-spacing); text-transform: var(--t-nav-text-transform); color: var(--t-nav-text-color); }
.t-badge-text        { font-family: var(--t-badge-text-family); font-size: var(--t-badge-text-size); font-weight: var(--t-badge-text-weight); line-height: var(--t-badge-text-line); letter-spacing: var(--t-badge-text-spacing); text-transform: var(--t-badge-text-transform); color: var(--t-badge-text-color); }
.t-cart-title        { font-family: var(--t-cart-title-family); font-size: var(--t-cart-title-size); font-weight: var(--t-cart-title-weight); letter-spacing: var(--t-cart-title-spacing); text-transform: var(--t-cart-title-transform); color: var(--t-cart-title-color); }
.t-cart-item-text    { font-family: var(--t-cart-item-family); font-size: var(--t-cart-item-size); font-weight: var(--t-cart-item-weight); color: var(--t-cart-item-color); }
.t-form-label        { font-family: var(--t-form-label-family); font-size: var(--t-form-label-size); font-weight: var(--t-form-label-weight); letter-spacing: var(--t-form-label-spacing); text-transform: var(--t-form-label-transform); color: var(--t-form-label-color); }
.t-footer-title      { font-family: var(--t-footer-title-family); font-size: var(--t-footer-title-size); font-weight: var(--t-footer-title-weight); line-height: var(--t-footer-title-line); letter-spacing: var(--t-footer-title-spacing); text-transform: var(--t-footer-title-transform); color: var(--t-footer-title-color); }
.t-footer-text       { font-family: var(--t-footer-text-family); font-size: var(--t-footer-text-size); font-weight: var(--t-footer-text-weight); line-height: var(--t-footer-text-line); letter-spacing: var(--t-footer-text-spacing); text-transform: var(--t-footer-text-transform); color: var(--t-footer-text-color); }
.t-legal-text        { font-family: var(--t-legal-text-family); font-size: var(--t-legal-text-size); font-weight: var(--t-legal-text-weight); letter-spacing: var(--t-legal-text-spacing); text-transform: var(--t-legal-text-transform); color: var(--t-legal-text-color); }

/* ==============  PART 3 — MAPPING: existing elements → tokens  ============== */

/* 1. hero-title */
.pdi-order-hero h1,
.pdi-order-checkout h2 {
  font-family: var(--t-hero-title-family);
  font-size: var(--t-hero-title-size);
  font-weight: var(--t-hero-title-weight);
  line-height: var(--t-hero-title-line);
  letter-spacing: var(--t-hero-title-spacing);
  text-transform: var(--t-hero-title-transform);
  color: var(--t-hero-title-color);
  text-shadow: var(--t-hero-title-shadow);
}

/* 2. hero-subtitle (the :not() keeps the kicker out — it is section-subtitle) */
.pdi-order-hero p:not(.pdi-order-kicker),
.pdi-order-checkout-copy p:not(.pdi-order-kicker) {
  font-family: var(--t-hero-subtitle-family);
  font-size: var(--t-hero-subtitle-size);
  font-weight: var(--t-hero-subtitle-weight);
  line-height: var(--t-hero-subtitle-line);
  letter-spacing: var(--t-hero-subtitle-spacing);
  text-transform: var(--t-hero-subtitle-transform);
  color: var(--t-hero-subtitle-color);
  text-shadow: var(--t-hero-subtitle-shadow);
}

/* Order checkout is a compact form panel, not a hero. Keep it readable over video. */
.pdi-order-page .pdi-order-checkout h2 {
  max-width: 300px;
  font-size: clamp(26px, 2.25vw, 36px);
  line-height: 1.04;
  letter-spacing: 0;
  overflow-wrap: normal;
  text-wrap: balance;
}

.pdi-order-page .pdi-order-checkout-copy p:not(.pdi-order-kicker) {
  max-width: 300px;
  font-size: 14px;
  line-height: 1.55;
}

@media (max-width: 980px) {
  .pdi-order-page .pdi-order-checkout h2 {
    max-width: 100%;
    font-size: clamp(25px, 7vw, 32px);
    line-height: 1.06;
  }

  .pdi-order-page .pdi-order-checkout-copy p:not(.pdi-order-kicker) {
    max-width: 100%;
  }
}

@media (max-width: 720px) {
  .pdi-order-page .pdi-order-checkout h2 {
    font-size: clamp(24px, 8vw, 30px);
  }
}

/* 3. section-title */
.pdi-reservation-title,
.pdi-resa-title,
.pdi-menu-paragraph,
.pdi-menu-mobile-heading,
.pdi-menu-mobile-subheading,
.pdi-menu-desktop-heading,
.pdi-menu-desktop-subheading,
.pdi-cookie-title,
.pdi-legal-title,
#specialites .text-2xl {
  font-family: var(--t-section-title-family);
  font-size: var(--t-section-title-size);
  font-weight: var(--t-section-title-weight);
  line-height: var(--t-section-title-line);
  letter-spacing: var(--t-section-title-spacing);
  text-transform: var(--t-section-title-transform);
  color: var(--t-section-title-color);
  text-shadow: var(--t-section-title-shadow);
}

/* 3b. ABOUT section ("Notre maison" panels + floating card): statement paragraphs
   follow the body font token (Rubik); their sizes/colors/layout are untouched. */
.pdi-about-text-panel .text-2xl,
.pdi-resa-text {
  font-family: var(--t-font-body);
}

/* 4b. ABOUT section eyebrows ("NOTRE MAISON", "Une passion, le burger"):
   follow the accent font token (Teko); scale/colors untouched. */
.pdi-about-text-panel .text-xs,
[data-config-text$=".title"].text-xs,
[data-config-text$=".secondaryTitle"].text-xs {
  font-family: var(--t-section-subtitle-family);
}

/* 4. section-subtitle (kickers/eyebrows). font-size !important matches the
   existing sizing rule it replaces (pdi-rtl), which also used !important. */
.pdi-order-kicker,
.pdi-reservation-kicker,
.pdi-menu-mobile-eyebrow,
.pdi-menu-desktop-title,
[data-config-text$=".kicker"],
[data-config-text$=".mobileEyebrow"] {
  font-family: var(--t-section-subtitle-family);
  font-size: var(--t-section-subtitle-size) !important;
  font-weight: var(--t-section-subtitle-weight);
  letter-spacing: var(--t-section-subtitle-spacing);
  text-transform: var(--t-section-subtitle-transform);
  color: var(--t-section-subtitle-color);
}

/* 5. category-title */
.pdi-order-cat-title {
  font-family: var(--t-category-title-family);
  font-size: var(--t-category-title-size);
  font-weight: var(--t-category-title-weight);
  letter-spacing: var(--t-category-title-spacing);
  text-transform: var(--t-category-title-transform);
  color: var(--t-category-title-color);
}

/* 6. product-name */
.pdi-order-row-name {
  font-family: var(--t-product-name-family);
  font-size: var(--t-product-name-size);
  font-weight: var(--t-product-name-weight);
  line-height: var(--t-product-name-line);
  letter-spacing: var(--t-product-name-spacing);
  text-transform: var(--t-product-name-transform);
  color: var(--t-product-name-color);
}

/* 7. product-description */
.pdi-order-row-desc {
  font-family: var(--t-product-description-family);
  font-size: var(--t-product-description-size);
  font-weight: var(--t-product-description-weight);
  line-height: var(--t-product-description-line);
  letter-spacing: var(--t-product-description-spacing);
  text-transform: var(--t-product-description-transform);
  color: var(--t-product-description-color);
}

/* 8. product-price */
.pdi-order-row-price,
.pdi-order-price {
  font-family: var(--t-product-price-family);
  font-size: var(--t-product-price-size);
  font-weight: var(--t-product-price-weight);
  letter-spacing: var(--t-product-price-spacing);
  text-transform: var(--t-product-price-transform);
  color: var(--t-product-price-color);
}

/* 9. button-text (color stays per-button: gold buttons use ink, ghosts cream) */
.pdi-order-primary,
.pdi-order-secondary,
.pdi-order-mobile-cart,
.pdi-order-qty button {
  font-family: var(--t-button-text-family);
  font-size: var(--t-button-text-size);
  font-weight: var(--t-button-text-weight);
  letter-spacing: var(--t-button-text-spacing);
  text-transform: var(--t-button-text-transform);
}

/* 10. nav-text */
.navbar a,
.navbar .text-xs {
  font-family: var(--t-nav-text-family);
  color: var(--t-nav-text-color);
}
.nav_links .text-xs {
  font-size: var(--t-nav-text-size);
  font-weight: var(--t-nav-text-weight);
  letter-spacing: var(--t-nav-text-spacing);
  text-transform: var(--t-nav-text-transform);
}
/* 10b. MOBILE nav overlay (open menu): the big nav links use the DISPLAY brand font
   (Oi) — same as the hero/section titles — not the body/nav font, so they read as
   bold brand headings instead of generic text. The brand wordmark also uses display. */
.nav_mobile[data-nav-menu-open] .nav_links .text-xs.is-1::after,
.nav_mobile.w--open .nav_links .text-xs.is-1::after {
  font-family: var(--t-font-display) !important;
}
.navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs {
  font-family: var(--t-font-display) !important;
}

/* 11. badge-text */
.pdi-order-tags span {
  font-family: var(--t-badge-text-family);
  font-size: var(--t-badge-text-size);
  font-weight: var(--t-badge-text-weight);
  line-height: var(--t-badge-text-line);
  letter-spacing: var(--t-badge-text-spacing);
  text-transform: var(--t-badge-text-transform);
  color: var(--t-badge-text-color);
}

/* 12. cart-title */
.pdi-order-cart-head p,
.pdi-order-total span {
  font-family: var(--t-cart-title-family);
  font-size: var(--t-cart-title-size);
  font-weight: var(--t-cart-title-weight);
  letter-spacing: var(--t-cart-title-spacing);
  text-transform: var(--t-cart-title-transform);
  color: var(--t-cart-title-color);
}

/* 13. cart-item-text */
.pdi-order-line strong,
.pdi-order-cart-head strong,
.pdi-order-total strong {
  font-family: var(--t-cart-item-family);
  font-size: var(--t-cart-item-size);
  font-weight: var(--t-cart-item-weight);
  color: var(--t-cart-item-color);
}
.pdi-order-line span,
.pdi-order-cart-note {
  font-family: var(--t-cart-item-family);
  font-size: var(--t-cart-item-muted-size);
  color: var(--t-cart-item-muted-color);
}

/* 14. form-label */
.pdi-field span,
.pdi-reservation-form label span {
  font-family: var(--t-form-label-family);
  font-size: var(--t-form-label-size);
  font-weight: var(--t-form-label-weight);
  letter-spacing: var(--t-form-label-spacing);
  text-transform: var(--t-form-label-transform);
  color: var(--t-form-label-color);
}
.pdi-order-form label {
  font-family: var(--t-form-label-family);
}

/* 15. form-placeholder */
.pdi-field input::placeholder,
.pdi-field textarea::placeholder,
.pdi-order-form input::placeholder,
.pdi-order-form textarea::placeholder {
  font-family: var(--t-form-placeholder-family);
  color: var(--t-form-placeholder-color);
}

/* 16. footer-title (font-size !important matches the rule it replaces) */
.pdi-footer-label {
  font-family: var(--t-footer-title-family);
  font-size: var(--t-footer-title-size) !important;
  font-weight: var(--t-footer-title-weight);
  line-height: var(--t-footer-title-line);
  letter-spacing: var(--t-footer-title-spacing);
  text-transform: var(--t-footer-title-transform);
  color: var(--t-footer-title-color);
}

/* 17. footer-text */
.pdi-footer-nav a,
.pdi-footer-column a,
.pdi-footer-column div:not(.pdi-footer-label) {
  font-family: var(--t-footer-text-family);
  font-size: var(--t-footer-text-size);
  font-weight: var(--t-footer-text-weight);
  line-height: var(--t-footer-text-line);
  letter-spacing: var(--t-footer-text-spacing);
  text-transform: var(--t-footer-text-transform);
  color: var(--t-footer-text-color);
}

/* 18. legal-text */
.pdi-footer-legal-links a,
.pdi-footer-legal-links span,
.pdi-footer-copyright {
  font-family: var(--t-legal-text-family);
  font-size: var(--t-legal-text-size);
  font-weight: var(--t-legal-text-weight);
  letter-spacing: var(--t-legal-text-spacing);
  text-transform: var(--t-legal-text-transform);
  color: var(--t-legal-text-color);
}
.pdi-footer-copyright {
  color: var(--t-legal-text-muted-color);
  text-transform: uppercase;
  letter-spacing: .1em;
}

/* =========  PART 4 — PINNED VARIANTS (preserve today's exact design)  =========
   These keep elements that intentionally differ from their role's canonical
   token. Delete a block to make that element follow the main token instead. */

/* section-title variants */
.pdi-resa-title {                       /* NOTRE MAISON card: bigger, pure white */
  --t-section-title-size: clamp(44px, 4.4vw, 80px);
  --t-section-title-line: .92;
  --t-section-title-color: #ffffff;
  --t-section-title-shadow: 0 2px 30px rgba(0, 0, 0, .8);
}
.pdi-menu-paragraph {                   /* menu statement: body font, fluid size */
  --t-section-title-family: var(--t-font-body);
  --t-section-title-size: clamp(1.75rem, 2.45vw, 3.25rem);
  --t-section-title-line: 1.12;
  --t-section-title-color: rgba(255, 248, 238, .92);
  --t-section-title-shadow: 0 2px 24px rgba(0, 0, 0, .58);
}
#specialites .text-2xl {                /* specialties = a long statement, not a title:
                                           use the body font (Rubik) so it doesn't overflow */
  --t-section-title-line: 1.18;
  font-family: var(--t-font-body) !important;
}

/* Mobile safety: the display font (Oi) has very wide glyphs — make sure no big-text role
   can push past the viewport edge (the "cropped on the sides" bug). */
@media (max-width: 767px) {
  .pdi-resa-title,
  .pdi-reservation-title,
  .pdi-menu-mobile-heading,
  .pdi-menu-mobile-subheading,
  #specialites .text-2xl,
  .pdi-menu-paragraph {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
  }
}
@media (max-width: 767px) {
  .pdi-menu-paragraph {
    --t-section-title-size: clamp(.92rem, 4.15vw, 1.08rem);
    --t-section-title-line: 1.2;
  }
}

/* section-subtitle variants */
.pdi-reservation-kicker {               /* wider tracking, its own cream */
  --t-section-subtitle-weight: 700;
  --t-section-subtitle-spacing: .32em;
  --t-section-subtitle-color: rgba(255, 246, 223, .82);
}
.pdi-menu-desktop-title,
.pdi-menu-mobile-eyebrow {              /* menu eyebrow: lighter, warm gold */
  --t-section-subtitle-weight: 500;
  --t-section-subtitle-spacing: .14em;
  --t-section-subtitle-color: #f7dfb7;
}

/* form-label variant — the order page labels are not letterspaced/uppercase */
.pdi-order-form label,
.pdi-order-form label span {
  --t-form-label-weight: 800;
  --t-form-label-spacing: 0;
  --t-form-label-transform: none;
  --t-form-label-color: rgba(255, 242, 216, .75);
  font-weight: var(--t-form-label-weight);
  letter-spacing: var(--t-form-label-spacing);
  text-transform: var(--t-form-label-transform);
  color: var(--t-form-label-color);
}



/* ============================================================================
   OOBAMINT — /commander (fond PARCHEMIN) : regle lisibilite.
   Tout le TEXTE devient brun fonce ; l'or ne sert JAMAIS de couleur de texte
   (ornement seulement). Place en FIN de fichier pour battre les overrides
   #FFBE8E !important du bloc oobamint (meme specificite, source plus tard).
   Nav/kicker scopes a la page commander via body:has(.pdi-order-hero) — la
   nav de l'accueil (fond sombre) reste claire.
   ============================================================================ */
html.resto-oobamint body:has(.pdi-order-hero) .pdi-order-kicker {
  color: #2A1F1A !important;
}
html.resto-oobamint body:has(.pdi-order-hero) .nav_links .text-xs,
html.resto-oobamint body:has(.pdi-order-hero) .nav_links a {
  color: #2A1F1A !important;
  font-weight: 500 !important;
}
html.resto-oobamint .pdi-order-cat-head,
html.resto-oobamint .pdi-order-cat-title {
  color: #8B2015 !important;              /* rouge laque fonce (accent) */
  font-weight: 700 !important;
}
html.resto-oobamint .pdi-order-row-price,
html.resto-oobamint .pdi-order-row-price .pdi-price-num,
html.resto-oobamint .pdi-order-row-price .pdi-price-cur {
  color: #8B2015 !important;              /* prix : or pale illisible -> rouge laque gras */
  font-weight: 700 !important;
}

/* oobamint : le passage du footer-bottom en align-items:baseline (fix
   alignement letterize) cale le contenu en HAUT de la rangee -> on le
   redescend de 30px (demande client). */
html.resto-oobamint .pdi-footer-bottom {
  padding-top: 30px !important;
}

/* ===== DINEORA FONT-FX (generated per-site, ChatGPT) — START ===== */
/* --- _global-fx.css --- */
/* ---- GLOBAL : le canvas vidéo multiply doit rester SOUS les titres ----
   pdi-order-page.css:210 donne z-index:1 à TOUS les enfants directs de .pdi-order-page,
   y compris .pdi-order-footer-video (la section qui héberge le canvas multiply plein écran).
   Comme elle vient APRÈS dans le DOM, à z égal elle peint PAR-DESSUS le hero/contenu z:1
   → le multiply assombrit le remplissage texture des titres.
   Design d'origine (pdi-order-page.css:229) : la vidéo est censée être z:0 SOUS le contenu z:1.
   On la remet à z:0 : l'ambiance multiply continue de teinter le FOND (z-auto),
   les titres z:1 (hero, .pdi-order-content) y échappent. */
.pdi-order-page > .pdi-order-footer-video { z-index: 0 !important; }

/* ================= redrooster homepage : nettoyage structurel (user 2026-07-17) =================
   Avant : 25.6 scrolls. Après : 10.1 scrolls.
   Gardé : hero(pin-spacer) + #menu(poster) + #reservation(titre+paragraphe+FORMULAIRE) + section vide + footer. */

/* 1) DESKTOP : enlever l'image (avec l'effet) qui apparaît après le menu = .menu-library-card
   (l'image food atlas_gi_03_FOOD, celle avec le bouton MENU). */
@media (min-width:769px){
  html.resto-redrooster #menu .menu-library-card,  html.pdi-v2 #menu .menu-library-card{ display: none !important; }
}

/* redrooster DESKTOP : HERO = le poster complet (user 2026-07-18). L'ancien hero = .section_hero
   (fixed parallax, 1 écran, cover+center) dont le JS pose l'image en INLINE !important depuis
   media.heroBackgroundImage → impossible a overrider en CSS, et GSAP re-fixe .pdi-hero-parallax a 953px.
   Solution : on MASQUE .section_hero (le calque fixe) et on pose le poster directement en fond du
   .pin-spacer (le conteneur in-flow qui reserve deja l'espace de scroll du hero). aspect-ratio 2560/2880
   = ratio EXACT du poster → cover affiche le poster ENTIER depuis le haut, ZERO deformation.
   Le pin-spacer etant in-flow, GSAP ne le re-fixe pas → ca tient au scroll. */
@media (min-width:769px){
  html.resto-redrooster .main-wrapper > .pin-spacer,  html.pdi-v2 .main-wrapper > .pin-spacer{
    aspect-ratio: var(--pdi-v2-hero-d-ar, 2560 / 2880) !important;
    height: auto !important; min-height: 0 !important; max-height: none !important;
    padding: 0 !important;
    background: var(--pdi-v2-hero-d, url("https://dineora.b-cdn.net/site-assets/Redrooster_Rabat_Maroc/hero_poster_top30_2026-07-18.jpg")) center center / cover no-repeat !important;
  }
  html.resto-redrooster .main-wrapper > .pin-spacer > .section_hero,  html.pdi-v2 .main-wrapper > .pin-spacer > .section_hero{ display: none !important; }
}

/* redrooster MOBILE : HERO = version verticale du poster (1280x3840) (user 2026-07-18).
   Meme technique que desktop mais ratio 1280/3840 (portrait tres haut, adapte au mobile etroit). */
@media (max-width:768px){
  html.resto-redrooster .main-wrapper > .pin-spacer,  html.pdi-v2 .main-wrapper > .pin-spacer{
    aspect-ratio: var(--pdi-v2-hero-m-ar, 1280 / 3840) !important;
    height: auto !important; min-height: 0 !important; max-height: none !important;
    padding: 0 !important;
    background: var(--pdi-v2-hero-m, url("https://dineora.b-cdn.net/site-assets/Redrooster_Rabat_Maroc/hero_poster_mobile_2026-07-18.jpg")) center center / cover no-repeat !important;
  }
  html.resto-redrooster .main-wrapper > .pin-spacer > .section_hero,  html.pdi-v2 .main-wrapper > .pin-spacer > .section_hero{ display: none !important; }
}

/* redrooster DESKTOP : FOOTER = image pleine (user 2026-07-17). L'image footer_full (1920x1080)
   contient tout le footer cuit (nav, contact, adresse, horaires, service, logo, socials, copyright).
   On masque le panel HTML et on pose l'image ; aspect-ratio 1920/1080 = ZÉRO déformation. */
@media (min-width:769px){
  html.resto-redrooster .pdi-footer-reveal,  html.pdi-v2 .pdi-footer-reveal{
    width: 100% !important;
    aspect-ratio: var(--pdi-v2-footer-d-ar, 1920 / 1080) !important;
    height: auto !important; min-height: 0 !important; max-height: none !important;
    overflow: hidden !important;
    background: var(--pdi-v2-footer-d, url("https://dineora.b-cdn.net/site-assets/Redrooster_Rabat_Maroc/footer_nosocial_2026-07-18.jpg")) center / 100% 100% no-repeat !important;
  }
  html.resto-redrooster .pdi-footer-reveal .pdi-footer-panel,  html.pdi-v2 .pdi-footer-reveal .pdi-footer-panel{ display: none !important; }
}

/* redrooster MOBILE : FOOTER = version verticale HAUTE 1:3 (user 2026-07-18, remplace la 9:16). */
@media (max-width:768px){
  html.resto-redrooster .pdi-footer-reveal,  html.pdi-v2 .pdi-footer-reveal{
    width: 100% !important;
    aspect-ratio: var(--pdi-v2-footer-m-ar, 1280 / 3840) !important;
    height: auto !important; min-height: 0 !important; max-height: none !important;
    overflow: hidden !important;
    background: var(--pdi-v2-footer-m, url("https://dineora.b-cdn.net/site-assets/Redrooster_Rabat_Maroc/footer_mobile_tall_2026-07-18.jpg")) center / 100% 100% no-repeat !important;
  }
  html.resto-redrooster .pdi-footer-reveal .pdi-footer-panel,  html.pdi-v2 .pdi-footer-reveal .pdi-footer-panel{ display: none !important; }

  /* MOBILE : section réservation = board vertical 1:3, champs calés sur les 7 slots pleine largeur
     (mesurés : left 15.94%, w 68.28%, h ~4%, tops réguliers). Même mécanique que desktop. */
  html.resto-redrooster #reservation,  html.pdi-v2 #reservation{
    width: 100% !important;
    aspect-ratio: var(--pdi-v2-resa-m-ar, 1280 / 3840) !important;
    height: auto !important; min-height: 0 !important; max-height: none !important;
    overflow: hidden !important; position: relative !important;
    margin: 0 !important; padding: 0 !important;
    background: var(--pdi-v2-resa-m, url("https://dineora.b-cdn.net/site-assets/Redrooster_Rabat_Maroc/reservation_board_mobile_2026-07-18.jpg")) center / 100% 100% no-repeat !important;
  }
  html.resto-redrooster #reservation .pdi-reservation-layout > :not(.pdi-reservation-form),  html.pdi-v2 #reservation .pdi-reservation-layout > :not(.pdi-reservation-form){ display: none !important; }
  /* .pdi-reservation-content (mobile) = wrapper relative à 72% de hauteur → il devenait le containing
     block du form et tassait tous les slots (top × 0.72). On le met static pleine hauteur. */
  html.resto-redrooster #reservation .pdi-reservation-content,  html.pdi-v2 #reservation .pdi-reservation-content{
    position: static !important; height: 100% !important; min-height: 0 !important;
    top: auto !important; transform: none !important; margin: 0 !important; padding: 0 !important;
  }
  html.resto-redrooster #reservation .pdi-reservation-layout,  html.pdi-v2 #reservation .pdi-reservation-layout{
    position: static !important; display: block !important;
    max-width: none !important; width: 100% !important; height: 100% !important;
    margin: 0 !important; padding: 0 !important; transform: none !important;
  }
  html.resto-redrooster #reservation .pdi-reservation-form,  html.pdi-v2 #reservation .pdi-reservation-form{
    position: absolute !important; inset: 0 !important;
    width: 100% !important; height: 100% !important; max-width: none !important;
    margin: 0 !important; padding: 0 !important; display: block !important;
    background: none !important; border: none !important; box-shadow: none !important;
    transform: none !important;
  }
  html.resto-redrooster #reservation .pdi-reservation-form::before,  html.pdi-v2 #reservation .pdi-reservation-form::before,
  html.resto-redrooster #reservation .pdi-reservation-form::after,  html.pdi-v2 #reservation .pdi-reservation-form::after{ display:none !important; content:none !important; }
  html.resto-redrooster #reservation .pdi-field,  html.pdi-v2 #reservation .pdi-field{ position: absolute !important; margin: 0 !important; padding: 0 !important; transform: none !important; opacity: 1 !important; visibility: visible !important; }
  html.resto-redrooster #reservation .pdi-field input,  html.pdi-v2 #reservation .pdi-field input, html.resto-redrooster #reservation .pdi-field textarea, html.pdi-v2 #reservation .pdi-field textarea{ visibility: visible !important; opacity: 1 !important; }
  html.resto-redrooster #reservation .pdi-field > span,  html.pdi-v2 #reservation .pdi-field > span{ display: none !important; }
  html.resto-redrooster #reservation .pdi-field::before,  html.pdi-v2 #reservation .pdi-field::before,
  html.resto-redrooster #reservation .pdi-field::after,  html.pdi-v2 #reservation .pdi-field::after{ display:none !important; content:none !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="name"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="name"]){    left:15.94% !important; top:38.33% !important; width:68.28% !important; height:3.96% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="phone"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="phone"]){   left:15.94% !important; top:44.82% !important; width:68.28% !important; height:4.09% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="email"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="email"]){   left:15.94% !important; top:51.48% !important; width:68.28% !important; height:4.09% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="date"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="date"]){    left:15.94% !important; top:58.28% !important; width:68.28% !important; height:3.96% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="time"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="time"]){    left:15.94% !important; top:64.87% !important; width:68.28% !important; height:3.96% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="guests"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="guests"]){  left:15.94% !important; top:71.35% !important; width:68.28% !important; height:4.09% !important; }
  html.resto-redrooster #reservation .pdi-field:has(textarea[name="request"]),  html.pdi-v2 #reservation .pdi-field:has(textarea[name="request"]){ left:15.94% !important; top:78.12% !important; width:68.28% !important; height:3.93% !important; }
  html.resto-redrooster #reservation .pdi-field input,  html.pdi-v2 #reservation .pdi-field input,
  html.resto-redrooster #reservation .pdi-field textarea,  html.pdi-v2 #reservation .pdi-field textarea{
    width: 100% !important; height: 100% !important;
    background: transparent !important; border: none !important; box-shadow: none !important;
    color: var(--pdi-v2-field-ink, #2a1208) !important; -webkit-text-fill-color: var(--pdi-v2-field-ink, #2a1208) !important;
    font-size: 16px !important;
    padding: 0 12px !important; outline: none !important;
  }
  html.resto-redrooster #reservation .pdi-field textarea,  html.pdi-v2 #reservation .pdi-field textarea{ resize: none !important; padding-top: 6px !important; }
  html.resto-redrooster #reservation .pdi-reservation-submit,  html.pdi-v2 #reservation .pdi-reservation-submit{
    position: absolute !important; left: 50% !important; bottom: 1.2% !important;
    top: auto !important; right: auto !important;
    transform: translateX(-50%) !important;
    z-index: 6 !important; margin: 0 !important;
    width: 60% !important; height: auto !important;
    aspect-ratio: 3 / 1 !important;
    max-width: none !important; min-width: 0 !important; min-height: 0 !important;
    padding: 0 !important;
    background-size: contain !important; background-position: center !important; background-repeat: no-repeat !important;
  }
}

/* redrooster : SUPPRESSION de la section vide 1-scroll avant le footer (user 2026-07-18,
   annule la demande précédente) — desktop ET mobile, plus aucun espace vide entre sections. */
html.resto-redrooster .pdi-resa-section,html.pdi-v2 .pdi-resa-section{ display: none !important; }

/* ================= redrooster DESKTOP : section réservation = BOARD pleine image (user 2026-07-17) =================
   L'image reservation_board_full (2560x1440) contient TOUT le texte cuit (titre Réservations, kicker,
   paragraphe, contacts, labels des champs). On garde la structure/logique du formulaire (mêmes inputs,
   même submit) : la section devient UN écran (100vh, rien ne déborde), le board en fond étiré 100%/100%,
   les .pdi-field posés en absolu sur les slots blancs MESURÉS au pixel (masque luminance>185 sat<40) :
   rangée nom y39.1% h6.6% ; tél/email y49.0% ; date/heure y58.6% ; couverts/demande y68.5% ;
   colonnes x28.12% (w20.86%) et x50.98% (w20.9%), nom pleine largeur w43.75%. */
@media (min-width:769px){
  /* la section suit le RATIO EXACT de l'image (2560/1440 = 56.25vw de haut) → zéro déformation,
     et background 100% 100% devient un rendu natif ; les % des slots restent exacts. */
  html.resto-redrooster #reservation,  html.pdi-v2 #reservation{
    width: 100% !important;
    aspect-ratio: var(--pdi-v2-resa-d-ar, 2560 / 1440) !important;
    height: auto !important; min-height: 0 !important; max-height: none !important;
    overflow: hidden !important;
    position: relative !important;
    margin: 0 !important; padding: 0 !important;
    background: var(--pdi-v2-resa-d, url("https://dineora.b-cdn.net/site-assets/Redrooster_Rabat_Maroc/reservation_board_2026-07-18.jpg")) center / 100% 100% no-repeat !important;
  }
  /* tout le contenu texte/déco disparaît (il est cuit dans l'image) — on ne garde que le formulaire */
  html.resto-redrooster #reservation .pdi-reservation-layout > :not(.pdi-reservation-form),  html.pdi-v2 #reservation .pdi-reservation-layout > :not(.pdi-reservation-form){ display: none !important; }
  html.resto-redrooster #reservation .pdi-reservation-layout,  html.pdi-v2 #reservation .pdi-reservation-layout{
    position: static !important; display: block !important;
    max-width: none !important; width: 100% !important; height: 100% !important;
    margin: 0 !important; padding: 0 !important; transform: none !important;
  }
  html.resto-redrooster #reservation .pdi-reservation-form,  html.pdi-v2 #reservation .pdi-reservation-form{
    position: absolute !important; inset: 0 !important;
    width: 100% !important; height: 100% !important; max-width: none !important;
    margin: 0 !important; padding: 0 !important;
    display: block !important;
    background: none !important; border: none !important; box-shadow: none !important;
    transform: none !important;
  }
  html.resto-redrooster #reservation .pdi-reservation-form::before,  html.pdi-v2 #reservation .pdi-reservation-form::before,
  html.resto-redrooster #reservation .pdi-reservation-form::after,  html.pdi-v2 #reservation .pdi-reservation-form::after{ display:none !important; content:none !important; }
  /* champs = calés sur les slots du board ; labels HTML cachés (cuits dans l'image).
     transform:none = tue le translateY(24px) de l'animation reveal GSAP qui décalait tous les slots de +2.7% */
  html.resto-redrooster #reservation .pdi-field,  html.pdi-v2 #reservation .pdi-field{ position: absolute !important; margin: 0 !important; padding: 0 !important; transform: none !important; opacity: 1 !important; visibility: visible !important; }
  html.resto-redrooster #reservation .pdi-field input,  html.pdi-v2 #reservation .pdi-field input, html.resto-redrooster #reservation .pdi-field textarea, html.pdi-v2 #reservation .pdi-field textarea{ visibility: visible !important; opacity: 1 !important; }
  /* les .pdi-field SONT des <label> ; le texte du label est un <span> enfant direct → c'est LUI qu'on cache */
  html.resto-redrooster #reservation .pdi-field > span,  html.pdi-v2 #reservation .pdi-field > span{ display: none !important; }
  html.resto-redrooster #reservation .pdi-field::before,  html.pdi-v2 #reservation .pdi-field::before,
  html.resto-redrooster #reservation .pdi-field::after,  html.pdi-v2 #reservation .pdi-field::after{ display:none !important; content:none !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="name"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="name"]){   left:28.12% !important; top:39.1% !important; width:43.75% !important; height:6.6% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="phone"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="phone"]){  left:28.12% !important; top:49.0% !important; width:20.86% !important; height:6.5% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="email"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="email"]){  left:50.98% !important; top:49.0% !important; width:20.9% !important;  height:6.5% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="date"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="date"]){   left:28.12% !important; top:58.6% !important; width:20.86% !important; height:6.4% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="time"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="time"]){   left:50.98% !important; top:58.6% !important; width:20.9% !important;  height:6.4% !important; }
  html.resto-redrooster #reservation .pdi-field:has(input[name="guests"]),  html.pdi-v2 #reservation .pdi-field:has(input[name="guests"]){ left:28.12% !important; top:68.5% !important; width:20.86% !important; height:6.5% !important; }
  html.resto-redrooster #reservation .pdi-field:has(textarea[name="request"]),  html.pdi-v2 #reservation .pdi-field:has(textarea[name="request"]){ left:50.98% !important; top:68.5% !important; width:20.9% !important; height:6.5% !important; }
  /* inputs transparents par-dessus les slots creme cuits */
  html.resto-redrooster #reservation .pdi-field input,  html.pdi-v2 #reservation .pdi-field input,
  html.resto-redrooster #reservation .pdi-field textarea,  html.pdi-v2 #reservation .pdi-field textarea{
    width: 100% !important; height: 100% !important;
    background: transparent !important; border: none !important; box-shadow: none !important;
    color: var(--pdi-v2-field-ink, #2a1208) !important; -webkit-text-fill-color: var(--pdi-v2-field-ink, #2a1208) !important;
    font-size: clamp(14px, 1.05vw, 20px) !important;
    padding: 0 16px !important; outline: none !important;
  }
  html.resto-redrooster #reservation .pdi-field textarea,  html.pdi-v2 #reservation .pdi-field textarea{ resize: none !important; padding-top: 10px !important; }
  /* bouton réservation : centré en bas de la section, taille contenue (sinon l'image décorative
     du bouton sort à 1334x444 et recouvre la moitié du formulaire) */
  html.resto-redrooster #reservation .pdi-reservation-submit,  html.pdi-v2 #reservation .pdi-reservation-submit{
    position: absolute !important; left: 50% !important; bottom: 2.5% !important;
    top: auto !important; right: auto !important;
    transform: translateX(-50%) !important;
    z-index: 6 !important; margin: 0 !important;
    width: 30% !important; height: auto !important;
    aspect-ratio: 3 / 1 !important;
    max-width: none !important; min-width: 0 !important; min-height: 0 !important;
    padding: 0 !important;
    background-size: contain !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
  }
}

/* 2bis) DESKTOP + MOBILE : SUPPRIMER L'EFFET GSAP (sticky-scroll) du poster menu → scroll normal
   vers la section suivante (le formulaire). GSAP épingle .menu-library-stage et ajoute 3670px de
   padding-bottom au .pin-spacer (953+3670=4623px = 4.9 scrolls). On neutralise :
   - pin-spacer : padding 0 + height auto  → plus de "durée de pin"
   - stage : position relative + height auto + transform none → dé-épinglé, prend la hauteur du poster
   - poster : transform:none tue le scrub GSAP, MAIS le centrage d'origine utilisait
     left:50% + translateX(-50%) → sans transform il faut forcer left:0 + width:100%, sinon le
     poster part 960px à droite et se fait couper.
   Les styles inline de GSAP n'ont pas !important → nos règles gagnent.
   Résultat : #menu 4.9 → 3.1 scrolls (hauteur naturelle du poster 2992px). */
html.resto-redrooster #menu .pin-spacer,html.pdi-v2 #menu .pin-spacer{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  height: auto !important;
  min-height: 0 !important;
}
html.resto-redrooster #menu .menu-library-stage,html.pdi-v2 #menu .menu-library-stage{
  position: relative !important;
  top: auto !important; left: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  transform: none !important;
  overflow: visible !important;
}
html.resto-redrooster #menu .menu-library-bg,html.pdi-v2 #menu .menu-library-bg{
  position: relative !important;
  top: auto !important; left: 0 !important; right: auto !important;
  margin: 0 !important;
  transform: none !important;
  width: 100% !important;
  height: auto !important;
}

/* 3) DESKTOP + MOBILE : supprimer toutes les autres sections jusqu'en bas — il ne reste que le footer.
   (#about, #menu-details, #specialites : toutes leurs images ET textes disparaissent avec.) */
html.resto-redrooster #about,html.pdi-v2 #about,
html.resto-redrooster #menu-details,html.pdi-v2 #menu-details,
html.resto-redrooster #specialites,html.pdi-v2 #specialites{ display: none !important; }

/* 4) DESKTOP + MOBILE : SECTION VIDE d'exactement 1 scroll juste avant le footer.
   On recycle .pdi-resa-section (son contenu est vidé) : une fois les sections ci-dessus masquées,
   elle tombe pile entre #reservation et le footer. C'est une vraie section, prête à être remplie. */
html.resto-redrooster .pdi-resa-section > *,html.pdi-v2 .pdi-resa-section > *{ display: none !important; }
html.resto-redrooster .pdi-resa-section,html.pdi-v2 .pdi-resa-section{
  height: 100vh !important;
  min-height: 100vh !important;
  max-height: 100vh !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ---- oobamint DESKTOP : HERO = le poster japonais complet (user 2026-07-18). Meme technique que
   redrooster : masquer .section_hero (fixe, image inline !important via JS) et poser le poster en fond
   du .pin-spacer in-flow, aspect-ratio 2560/2448 = ratio exact => poster entier, ZERO deformation. */
@media (min-width:769px){
  html.resto-oobamint .main-wrapper > .pin-spacer{
    aspect-ratio: 2560 / 2448 !important;
    height: auto !important; min-height: 0 !important; max-height: none !important;
    padding: 0 !important;
    background: url("https://dineora.b-cdn.net/site-assets/Oobamint_Luxembourg_Luxembourg/hero_poster_2026-07-18.jpg") center center / cover no-repeat !important;
  }
  html.resto-oobamint .main-wrapper > .pin-spacer > .section_hero{ display: none !important; }
}

/* ---- redrooster DESKTOP : PAS de fond de page (user 2026-07-17) ----
   On enlève la vidéo de fond (video + canvas de scrub) ET l'ancienne image étirée sur .main-wrapper :
   le fond de page reste TRANSPARENT (rien). Mobile intact (le canvas vidéo y reste). */
@media (min-width:769px){
  html.resto-redrooster .pdi-reservation-video video,  html.pdi-v2 .pdi-reservation-video video,
  html.resto-redrooster .pdi-reservation-video canvas,  html.pdi-v2 .pdi-reservation-video canvas{
    display: none !important;
  }
  html.resto-redrooster .pdi-reservation-video,  html.pdi-v2 .pdi-reservation-video{ background: none !important; }
  html.resto-redrooster .main-wrapper,  html.pdi-v2 .main-wrapper{
    background: none !important;
  }
}

/* ---- redrooster : nouvelle image MENU (la longue, après le hero) — MOBILE UNIQUEMENT (user 2026-07-13) ----
   Le <img>.menu-library-bg reçoit media.menuTakeoverBackground depuis la config (partagé desktop+mobile),
   donc on ne touche PAS le KV : on swappe l'image en CSS seulement sous 768px via content:url().
   ⚠️ content:url() seul casse la hauteur (Chrome ne reprend pas le ratio intrinsèque → box 375x0) :
   il FAUT réimposer aspect-ratio (nouvelle image 1280x3840) pour retrouver 375x1125 sans écrasement.
   Desktop garde l'ancienne image du KV. */
@media (max-width:768px){
  html.resto-redrooster .menu-library-bg,  html.pdi-v2 .menu-library-bg{
    content: var(--pdi-v2-menuboard-m, url("https://dineora.b-cdn.net/atlas-menu/redrooster_rabat_maroc/RmxSCvuBef0Lwktziggh3_RocyKPqb.jpg")) !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: var(--pdi-v2-menuboard-m-ar, 1280 / 3840) !important;
    object-fit: contain !important;
  }
}

/* ---- oobamint mobile commander : RETRAIT DU VOILE NOIR (user 2026-07-13) ----
   Le template injecte (restaurant-template.js ~L1646) un @media(max-width:768px) qui pose
   sur .pdi-order-page::before un dégradé noir rgba(0,0,0,.16→.34→.78) PAR-DESSUS l'image mobile.
   On restate le background SANS ce dégradé (on garde repeat-y + 100% auto + center top du template,
   et le mask du template n'est pas touché). Spécificité (0,3,4) > règle injectée (0,2,2) donc gagne
   même si le <style> injecté est appendu après typography.css. */
@media (max-width:768px){
  html.resto-oobamint body.pdi-order-body main.pdi-order-page::before{
    background: url("https://dineora.b-cdn.net/site-assets/Oobamint_Luxembourg_Luxembourg/order_bg_mobile_2026-07-13b.jpg") center top / 100% auto repeat-y !important;
    -webkit-mask-image: none !important; mask-image: none !important;   /* pas de fondu sombre en bas */
  }
  /* LE VRAI VOILE : le scrim sombre du ::after (rgba(10,5,2,...)), retiré sur desktop mais actif sur mobile */
  html.resto-oobamint body.pdi-order-body main.pdi-order-page::after{
    background: none !important;
  }
  /* Texte du menu : le template le met CLAIR (rgb 252,238,236) + gros halos flous (0 2px 18px) pour un scrim SOMBRE.
     Voile retiré => texte clair sur image claire + halos = effet "blur". On passe le texte en FONCÉ et NET. */
  html.resto-oobamint body.pdi-order-body main.pdi-order-page p{ color:#2a1f1a !important; text-shadow:none !important; }
  html.resto-oobamint body.pdi-order-body main.pdi-order-page .pdi-order-row-name{ color:#241109 !important; text-shadow:0 1px 0 rgba(255,255,255,.4) !important; }
  html.resto-oobamint body.pdi-order-body main.pdi-order-page .pdi-order-row-desc{ color:#4a3a33 !important; text-shadow:none !important; }
}

/* ---- OCR : zones STRICTEMENT invisibles (user 2026-07-18) — le texte reste sélectionnable
   et les liens cliquables, mais rien ne doit se voir (aucune couleur/ombre/fond possible,
   même si une règle du site tente de colorer ces spans/liens). Desktop + mobile. */
.pdi-ocr-layer .pdi-ocr-zone,
.pdi-ocr-layer a.pdi-ocr-link{
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 !important;
  border: none !important; outline: none !important;
  text-decoration: none !important;
}

/* ---- redrooster MOBILE : plus AUCUNE vidéo/canvas de fond, sections empilées en flux simple ---- */
@media (max-width:768px){
  html.resto-redrooster .pdi-reservation-video,  html.pdi-v2 .pdi-reservation-video,
  html.resto-redrooster .pdi-reservation-video video,  html.pdi-v2 .pdi-reservation-video video,
  html.resto-redrooster .pdi-reservation-video canvas,  html.pdi-v2 .pdi-reservation-video canvas,
  html.resto-redrooster .pdi-reservation-video-track,  html.pdi-v2 .pdi-reservation-video-track,
  html.resto-redrooster .pdi-order-bgvideo,  html.pdi-v2 .pdi-order-bgvideo{
    display: none !important;
  }
  html.resto-redrooster .main-wrapper,  html.pdi-v2 .main-wrapper{ background: none !important; }
}

/* redrooster MOBILE : zero gap entre les sections (flux collé) */
@media (max-width:768px){
  html.resto-redrooster #menu,  html.pdi-v2 #menu,
  html.resto-redrooster #reservation,  html.pdi-v2 #reservation,
  html.resto-redrooster .pdi-footer-reveal,  html.pdi-v2 .pdi-footer-reveal{
    margin: 0 !important;
  }
  html.resto-redrooster #menu,  html.pdi-v2 #menu{ padding-bottom: 0 !important; }
  html.resto-redrooster #menu .pin-spacer,  html.pdi-v2 #menu .pin-spacer{ margin: 0 !important; }
}

/* redrooster MOBILE : le layout laisse 30px fantomes entre #menu et #reservation
   (aucune marge mesurable — artefact du template) → on recolle la section. */
@media (max-width:768px){
  html.resto-redrooster #reservation,  html.pdi-v2 #reservation{ margin-top: -30px !important; }
}

/* --- cafe-le-palace-ajaccio-france-fx.css --- */
/* ---- palace : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-palace .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #fff4b8 0%, #e0a91f 58%, #b07d10 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(251, 231, 151, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 249, 216, 0.33),
    0 3px 0 rgba(92, 65, 8, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-palace .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-palace .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-palace .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #fff4b8 0%, #f4d05a 45%, #b07d10 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(251, 231, 151, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(97, 69, 9, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- cafe-le-palace-ajaccio-france : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #3c2b06 (recette validee) ---- */
html.resto-palace #specialites .text-2xl,
html.resto-palace .heading,
html.resto-palace .hero_heading,
html.resto-palace .nav_links .text-xs,
html.resto-palace .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-palace .navbar_logo-link .text-xs,
html.resto-palace .navbar_logo-link [data-restaurant-logo-text],
html.resto-palace .pdi-about-title,
html.resto-palace .pdi-co-choice-t,
html.resto-palace .pdi-co-q,
html.resto-palace .pdi-cookie-title,
html.resto-palace .pdi-eyebrow,
html.resto-palace .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-palace .pdi-footer-label,
html.resto-palace .pdi-footer-powered a,
html.resto-palace .pdi-footer-word,
html.resto-palace .pdi-legal-title,
html.resto-palace .pdi-menu-desktop-heading,
html.resto-palace .pdi-menu-desktop-title,
html.resto-palace .pdi-menu-mobile-heading,
html.resto-palace .pdi-menu-mobile-subheading,
html.resto-palace .pdi-menu-mobile-title,
html.resto-palace .pdi-order-cart-head p,
html.resto-palace .pdi-order-cat-title,
html.resto-palace .pdi-order-checkout h2,
html.resto-palace .pdi-order-checkout h3,
html.resto-palace .pdi-order-hero h1,
html.resto-palace .pdi-order-success h1,
html.resto-palace .pdi-order-success h2,
html.resto-palace .pdi-order-success h3,
html.resto-palace .pdi-order-total span,
html.resto-palace .pdi-pay-brand,
html.resto-palace .pdi-pay-line-total,
html.resto-palace .pdi-resa-kicker,
html.resto-palace .pdi-resa-title,
html.resto-palace .pdi-reservation-kicker,
html.resto-palace .pdi-reservation-title,
html.resto-palace .pdi-section-kicker,
html.resto-palace .pdi-section-title,
html.resto-palace [data-config-text$=".kicker"],
html.resto-palace [data-config-text$=".mobileEyebrow"],
html.resto-palace [data-config-text$=".mobileSubheading"],
html.resto-palace [data-config-text$=".title"],
html.resto-palace [data-config-text$="secondaryTitle"],
html.resto-palace [data-config-text$='.title'],
html.resto-palace [data-config-text$='Eyebrow'],
html.resto-palace [data-config-text$='Subheading'],
html.resto-palace [data-config-text$='kicker'],
html.resto-palace [data-config-text$='subtitle'],
html.resto-palace [data-config-text="ctaLabels.legalNotice"],
html.resto-palace [data-config-text="ctaLabels.poweredBy"],
html.resto-palace [data-config-text="ctaLabels.privacyPolicy"],
html.resto-palace [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Cafe_Le_Palace_Ajaccio_France/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #d0a63f !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-palace .nav_links .text-xs,
html.resto-palace .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-palace .navbar_logo-link .text-xs,
html.resto-palace .navbar_logo-link [data-restaurant-logo-text],
html.resto-palace .pdi-co-choice-t,
html.resto-palace .pdi-eyebrow,
html.resto-palace .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-palace .pdi-footer-label,
html.resto-palace .pdi-footer-powered a,
html.resto-palace .pdi-order-cart-head p,
html.resto-palace .pdi-order-total span,
html.resto-palace .pdi-pay-brand,
html.resto-palace .pdi-pay-line-total,
html.resto-palace .pdi-resa-kicker,
html.resto-palace .pdi-reservation-kicker,
html.resto-palace .pdi-section-kicker,
html.resto-palace [data-config-text$=".kicker"],
html.resto-palace [data-config-text$=".mobileEyebrow"],
html.resto-palace [data-config-text$='Eyebrow'],
html.resto-palace [data-config-text$='kicker'],
html.resto-palace [data-config-text="ctaLabels.legalNotice"],
html.resto-palace [data-config-text="ctaLabels.poweredBy"],
html.resto-palace [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Cafe_Le_Palace_Ajaccio_France/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-palace #specialites .text-2xl::before, html.resto-palace #specialites .text-2xl::after, html.resto-palace .heading::before, html.resto-palace .heading::after, html.resto-palace .hero_heading::before, html.resto-palace .hero_heading::after, html.resto-palace .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-palace .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-palace .navbar_logo-link .text-xs::before, html.resto-palace .navbar_logo-link .text-xs::after, html.resto-palace .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-palace .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-palace .pdi-about-title::before, html.resto-palace .pdi-about-title::after, html.resto-palace .pdi-co-choice-t::before, html.resto-palace .pdi-co-choice-t::after, html.resto-palace .pdi-co-q::before, html.resto-palace .pdi-co-q::after, html.resto-palace .pdi-cookie-title::before, html.resto-palace .pdi-cookie-title::after, html.resto-palace .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-palace .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-palace .pdi-footer-label::before, html.resto-palace .pdi-footer-label::after, html.resto-palace .pdi-footer-word::before, html.resto-palace .pdi-footer-word::after, html.resto-palace .pdi-legal-title::before, html.resto-palace .pdi-legal-title::after, html.resto-palace .pdi-menu-desktop-heading::before, html.resto-palace .pdi-menu-desktop-heading::after, html.resto-palace .pdi-menu-desktop-title::before, html.resto-palace .pdi-menu-desktop-title::after, html.resto-palace .pdi-menu-mobile-heading::before, html.resto-palace .pdi-menu-mobile-heading::after, html.resto-palace .pdi-menu-mobile-subheading::before, html.resto-palace .pdi-menu-mobile-subheading::after, html.resto-palace .pdi-order-cart-head p::before, html.resto-palace .pdi-order-cart-head p::after, html.resto-palace .pdi-order-cat-title::before, html.resto-palace .pdi-order-cat-title::after, html.resto-palace .pdi-order-checkout h2::before, html.resto-palace .pdi-order-checkout h2::after, html.resto-palace .pdi-order-checkout h3::before, html.resto-palace .pdi-order-checkout h3::after, html.resto-palace .pdi-order-hero h1::before, html.resto-palace .pdi-order-hero h1::after, html.resto-palace .pdi-order-success h1::before, html.resto-palace .pdi-order-success h1::after, html.resto-palace .pdi-order-success h2::before, html.resto-palace .pdi-order-success h2::after, html.resto-palace .pdi-order-success h3::before, html.resto-palace .pdi-order-success h3::after, html.resto-palace .pdi-order-total span::before, html.resto-palace .pdi-order-total span::after, html.resto-palace .pdi-pay-brand::before, html.resto-palace .pdi-pay-brand::after, html.resto-palace .pdi-pay-line-total::before, html.resto-palace .pdi-pay-line-total::after, html.resto-palace .pdi-resa-title::before, html.resto-palace .pdi-resa-title::after, html.resto-palace .pdi-reservation-title::before, html.resto-palace .pdi-reservation-title::after, html.resto-palace .pdi-section-title::before, html.resto-palace .pdi-section-title::after, html.resto-palace [data-config-text$=".title"]::before, html.resto-palace [data-config-text$=".title"]::after, html.resto-palace [data-config-text$="secondaryTitle"]::before, html.resto-palace [data-config-text$="secondaryTitle"]::after, html.resto-palace [data-config-text$='.title']::before, html.resto-palace [data-config-text$='.title']::after, html.resto-palace [data-config-text="ctaLabels.poweredBy"]::before, html.resto-palace [data-config-text="ctaLabels.poweredBy"]::after, html.resto-palace [data-config-text="sections.menuDetails.kicker"]::before, html.resto-palace [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- grease-monkey-saint-blaise-suisse-fx.css --- */
/* ---- greasemonkey : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-greasemonkey .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #fff2b0 0%, #d8a52f 58%, #a97a18 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(250, 230, 148, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 248, 212, 0.33),
    0 3px 0 rgba(88, 63, 12, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-greasemonkey .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-greasemonkey .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-greasemonkey .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #fff2b0 0%, #f0d060 45%, #a97a18 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(250, 230, 148, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(93, 67, 13, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- grease-monkey : ChatGPT effect — enseigne metal olive/gold, contour noir epais + extrusion (titre A emporter + kicker) ---- */
html.resto-greasemonkey .pdi-order-hero h1{
  color:#b6a86c!important;
  background:linear-gradient(to bottom,#eee1a0 0%,#c9bb7b 14%,#918550 42%,#70663d 52%,#c8b975 76%,#80713e 100%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;
  -webkit-text-stroke:4px #17140d!important;
  font-weight:900!important;letter-spacing:.02em!important;line-height:.9!important;
  text-shadow:0 -1px 0 rgba(255,242,172,.95),1px 1px 0 #9a792e,2px 2px 0 #856524,3px 3px 0 #513c18,4px 4px 0 #2b210f,5px 5px 0 #17130b,9px 11px 8px rgba(0,0,0,.8)!important;
}
html.resto-greasemonkey .pdi-order-kicker{
  color:#d8d09e!important;
  -webkit-text-stroke:1.5px #17130b!important;
  font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase!important;
  text-shadow:0 -1px 0 rgba(255,239,164,.8),1px 1px 0 #866528,2px 2px 0 #30230f,3px 3px 0 #110e09,0 5px 5px rgba(0,0,0,.85)!important;
}

/* ---- grease-monkey-saint-blaise-suisse : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #35290e (recette validee) ---- */
html.resto-greasemonkey #specialites .text-2xl,
html.resto-greasemonkey .heading,
html.resto-greasemonkey .hero_heading,
html.resto-greasemonkey .nav_links .text-xs,
html.resto-greasemonkey .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-greasemonkey .navbar_logo-link .text-xs,
html.resto-greasemonkey .navbar_logo-link [data-restaurant-logo-text],
html.resto-greasemonkey .pdi-about-title,
html.resto-greasemonkey .pdi-co-choice-t,
html.resto-greasemonkey .pdi-co-q,
html.resto-greasemonkey .pdi-cookie-title,
html.resto-greasemonkey .pdi-eyebrow,
html.resto-greasemonkey .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-greasemonkey .pdi-footer-label,
html.resto-greasemonkey .pdi-footer-powered a,
html.resto-greasemonkey .pdi-footer-word,
html.resto-greasemonkey .pdi-legal-title,
html.resto-greasemonkey .pdi-menu-desktop-heading,
html.resto-greasemonkey .pdi-menu-desktop-title,
html.resto-greasemonkey .pdi-menu-mobile-heading,
html.resto-greasemonkey .pdi-menu-mobile-subheading,
html.resto-greasemonkey .pdi-menu-mobile-title,
html.resto-greasemonkey .pdi-order-cart-head p,
html.resto-greasemonkey .pdi-order-cat-title,
html.resto-greasemonkey .pdi-order-checkout h2,
html.resto-greasemonkey .pdi-order-checkout h3,
html.resto-greasemonkey .pdi-order-hero h1,
html.resto-greasemonkey .pdi-order-success h1,
html.resto-greasemonkey .pdi-order-success h2,
html.resto-greasemonkey .pdi-order-success h3,
html.resto-greasemonkey .pdi-order-total span,
html.resto-greasemonkey .pdi-pay-brand,
html.resto-greasemonkey .pdi-pay-line-total,
html.resto-greasemonkey .pdi-resa-kicker,
html.resto-greasemonkey .pdi-resa-title,
html.resto-greasemonkey .pdi-reservation-kicker,
html.resto-greasemonkey .pdi-reservation-title,
html.resto-greasemonkey .pdi-section-kicker,
html.resto-greasemonkey .pdi-section-title,
html.resto-greasemonkey [data-config-text$=".kicker"],
html.resto-greasemonkey [data-config-text$=".mobileEyebrow"],
html.resto-greasemonkey [data-config-text$=".mobileSubheading"],
html.resto-greasemonkey [data-config-text$=".title"],
html.resto-greasemonkey [data-config-text$="secondaryTitle"],
html.resto-greasemonkey [data-config-text$='.title'],
html.resto-greasemonkey [data-config-text$='Eyebrow'],
html.resto-greasemonkey [data-config-text$='Subheading'],
html.resto-greasemonkey [data-config-text$='kicker'],
html.resto-greasemonkey [data-config-text$='subtitle'],
html.resto-greasemonkey [data-config-text="ctaLabels.legalNotice"],
html.resto-greasemonkey [data-config-text="ctaLabels.poweredBy"],
html.resto-greasemonkey [data-config-text="ctaLabels.privacyPolicy"],
html.resto-greasemonkey [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Grease_Monkey_Saint_Blaise_Suisse/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #dea827 !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-greasemonkey .nav_links .text-xs,
html.resto-greasemonkey .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-greasemonkey .navbar_logo-link .text-xs,
html.resto-greasemonkey .navbar_logo-link [data-restaurant-logo-text],
html.resto-greasemonkey .pdi-co-choice-t,
html.resto-greasemonkey .pdi-eyebrow,
html.resto-greasemonkey .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-greasemonkey .pdi-footer-label,
html.resto-greasemonkey .pdi-footer-powered a,
html.resto-greasemonkey .pdi-order-cart-head p,
html.resto-greasemonkey .pdi-order-total span,
html.resto-greasemonkey .pdi-pay-brand,
html.resto-greasemonkey .pdi-pay-line-total,
html.resto-greasemonkey .pdi-resa-kicker,
html.resto-greasemonkey .pdi-reservation-kicker,
html.resto-greasemonkey .pdi-section-kicker,
html.resto-greasemonkey [data-config-text$=".kicker"],
html.resto-greasemonkey [data-config-text$=".mobileEyebrow"],
html.resto-greasemonkey [data-config-text$='Eyebrow'],
html.resto-greasemonkey [data-config-text$='kicker'],
html.resto-greasemonkey [data-config-text="ctaLabels.legalNotice"],
html.resto-greasemonkey [data-config-text="ctaLabels.poweredBy"],
html.resto-greasemonkey [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Grease_Monkey_Saint_Blaise_Suisse/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-greasemonkey #specialites .text-2xl::before, html.resto-greasemonkey #specialites .text-2xl::after, html.resto-greasemonkey .heading::before, html.resto-greasemonkey .heading::after, html.resto-greasemonkey .hero_heading::before, html.resto-greasemonkey .hero_heading::after, html.resto-greasemonkey .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-greasemonkey .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-greasemonkey .navbar_logo-link .text-xs::before, html.resto-greasemonkey .navbar_logo-link .text-xs::after, html.resto-greasemonkey .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-greasemonkey .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-greasemonkey .pdi-about-title::before, html.resto-greasemonkey .pdi-about-title::after, html.resto-greasemonkey .pdi-co-choice-t::before, html.resto-greasemonkey .pdi-co-choice-t::after, html.resto-greasemonkey .pdi-co-q::before, html.resto-greasemonkey .pdi-co-q::after, html.resto-greasemonkey .pdi-cookie-title::before, html.resto-greasemonkey .pdi-cookie-title::after, html.resto-greasemonkey .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-greasemonkey .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-greasemonkey .pdi-footer-label::before, html.resto-greasemonkey .pdi-footer-label::after, html.resto-greasemonkey .pdi-footer-word::before, html.resto-greasemonkey .pdi-footer-word::after, html.resto-greasemonkey .pdi-legal-title::before, html.resto-greasemonkey .pdi-legal-title::after, html.resto-greasemonkey .pdi-menu-desktop-heading::before, html.resto-greasemonkey .pdi-menu-desktop-heading::after, html.resto-greasemonkey .pdi-menu-desktop-title::before, html.resto-greasemonkey .pdi-menu-desktop-title::after, html.resto-greasemonkey .pdi-menu-mobile-heading::before, html.resto-greasemonkey .pdi-menu-mobile-heading::after, html.resto-greasemonkey .pdi-menu-mobile-subheading::before, html.resto-greasemonkey .pdi-menu-mobile-subheading::after, html.resto-greasemonkey .pdi-order-cart-head p::before, html.resto-greasemonkey .pdi-order-cart-head p::after, html.resto-greasemonkey .pdi-order-cat-title::before, html.resto-greasemonkey .pdi-order-cat-title::after, html.resto-greasemonkey .pdi-order-checkout h2::before, html.resto-greasemonkey .pdi-order-checkout h2::after, html.resto-greasemonkey .pdi-order-checkout h3::before, html.resto-greasemonkey .pdi-order-checkout h3::after, html.resto-greasemonkey .pdi-order-hero h1::before, html.resto-greasemonkey .pdi-order-hero h1::after, html.resto-greasemonkey .pdi-order-success h1::before, html.resto-greasemonkey .pdi-order-success h1::after, html.resto-greasemonkey .pdi-order-success h2::before, html.resto-greasemonkey .pdi-order-success h2::after, html.resto-greasemonkey .pdi-order-success h3::before, html.resto-greasemonkey .pdi-order-success h3::after, html.resto-greasemonkey .pdi-order-total span::before, html.resto-greasemonkey .pdi-order-total span::after, html.resto-greasemonkey .pdi-pay-brand::before, html.resto-greasemonkey .pdi-pay-brand::after, html.resto-greasemonkey .pdi-pay-line-total::before, html.resto-greasemonkey .pdi-pay-line-total::after, html.resto-greasemonkey .pdi-resa-title::before, html.resto-greasemonkey .pdi-resa-title::after, html.resto-greasemonkey .pdi-reservation-title::before, html.resto-greasemonkey .pdi-reservation-title::after, html.resto-greasemonkey .pdi-section-title::before, html.resto-greasemonkey .pdi-section-title::after, html.resto-greasemonkey [data-config-text$=".title"]::before, html.resto-greasemonkey [data-config-text$=".title"]::after, html.resto-greasemonkey [data-config-text$="secondaryTitle"]::before, html.resto-greasemonkey [data-config-text$="secondaryTitle"]::after, html.resto-greasemonkey [data-config-text$='.title']::before, html.resto-greasemonkey [data-config-text$='.title']::after, html.resto-greasemonkey [data-config-text="ctaLabels.poweredBy"]::before, html.resto-greasemonkey [data-config-text="ctaLabels.poweredBy"]::after, html.resto-greasemonkey [data-config-text="sections.menuDetails.kicker"]::before, html.resto-greasemonkey [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- joes-pizza-nyc-fx.css --- */
/* ---- joespizza : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-joespizza .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #ffe0ae 0%, #cc6a30 58%, #9a3a1c 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(247, 207, 145, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 238, 210, 0.33),
    0 3px 0 rgba(80, 30, 15, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-joespizza .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-joespizza .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-joespizza .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #ffe0ae 0%, #e8b05a 45%, #9a3a1c 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(247, 207, 145, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(85, 32, 15, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- joes-pizza-nyc : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #2e0f07 (recette validee) ---- */
html.resto-joespizza #specialites .text-2xl,
html.resto-joespizza .heading,
html.resto-joespizza .hero_heading,
html.resto-joespizza .nav_links .text-xs,
html.resto-joespizza .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-joespizza .navbar_logo-link .text-xs,
html.resto-joespizza .navbar_logo-link [data-restaurant-logo-text],
html.resto-joespizza .pdi-about-title,
html.resto-joespizza .pdi-co-choice-t,
html.resto-joespizza .pdi-co-q,
html.resto-joespizza .pdi-cookie-title,
html.resto-joespizza .pdi-eyebrow,
html.resto-joespizza .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-joespizza .pdi-footer-label,
html.resto-joespizza .pdi-footer-powered a,
html.resto-joespizza .pdi-footer-word,
html.resto-joespizza .pdi-legal-title,
html.resto-joespizza .pdi-menu-desktop-heading,
html.resto-joespizza .pdi-menu-desktop-title,
html.resto-joespizza .pdi-menu-mobile-heading,
html.resto-joespizza .pdi-menu-mobile-subheading,
html.resto-joespizza .pdi-menu-mobile-title,
html.resto-joespizza .pdi-order-cart-head p,
html.resto-joespizza .pdi-order-cat-title,
html.resto-joespizza .pdi-order-checkout h2,
html.resto-joespizza .pdi-order-checkout h3,
html.resto-joespizza .pdi-order-hero h1,
html.resto-joespizza .pdi-order-success h1,
html.resto-joespizza .pdi-order-success h2,
html.resto-joespizza .pdi-order-success h3,
html.resto-joespizza .pdi-order-total span,
html.resto-joespizza .pdi-pay-brand,
html.resto-joespizza .pdi-pay-line-total,
html.resto-joespizza .pdi-resa-kicker,
html.resto-joespizza .pdi-resa-title,
html.resto-joespizza .pdi-reservation-kicker,
html.resto-joespizza .pdi-reservation-title,
html.resto-joespizza .pdi-section-kicker,
html.resto-joespizza .pdi-section-title,
html.resto-joespizza [data-config-text$=".kicker"],
html.resto-joespizza [data-config-text$=".mobileEyebrow"],
html.resto-joespizza [data-config-text$=".mobileSubheading"],
html.resto-joespizza [data-config-text$=".title"],
html.resto-joespizza [data-config-text$="secondaryTitle"],
html.resto-joespizza [data-config-text$='.title'],
html.resto-joespizza [data-config-text$='Eyebrow'],
html.resto-joespizza [data-config-text$='Subheading'],
html.resto-joespizza [data-config-text$='kicker'],
html.resto-joespizza [data-config-text$='subtitle'],
html.resto-joespizza [data-config-text="ctaLabels.legalNotice"],
html.resto-joespizza [data-config-text="ctaLabels.poweredBy"],
html.resto-joespizza [data-config-text="ctaLabels.privacyPolicy"],
html.resto-joespizza [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Joes_Pizza_Nyc/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #c1886a !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-joespizza .nav_links .text-xs,
html.resto-joespizza .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-joespizza .navbar_logo-link .text-xs,
html.resto-joespizza .navbar_logo-link [data-restaurant-logo-text],
html.resto-joespizza .pdi-co-choice-t,
html.resto-joespizza .pdi-eyebrow,
html.resto-joespizza .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-joespizza .pdi-footer-label,
html.resto-joespizza .pdi-footer-powered a,
html.resto-joespizza .pdi-order-cart-head p,
html.resto-joespizza .pdi-order-total span,
html.resto-joespizza .pdi-pay-brand,
html.resto-joespizza .pdi-pay-line-total,
html.resto-joespizza .pdi-resa-kicker,
html.resto-joespizza .pdi-reservation-kicker,
html.resto-joespizza .pdi-section-kicker,
html.resto-joespizza [data-config-text$=".kicker"],
html.resto-joespizza [data-config-text$=".mobileEyebrow"],
html.resto-joespizza [data-config-text$='Eyebrow'],
html.resto-joespizza [data-config-text$='kicker'],
html.resto-joespizza [data-config-text="ctaLabels.legalNotice"],
html.resto-joespizza [data-config-text="ctaLabels.poweredBy"],
html.resto-joespizza [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Joes_Pizza_Nyc/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-joespizza #specialites .text-2xl::before, html.resto-joespizza #specialites .text-2xl::after, html.resto-joespizza .heading::before, html.resto-joespizza .heading::after, html.resto-joespizza .hero_heading::before, html.resto-joespizza .hero_heading::after, html.resto-joespizza .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-joespizza .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-joespizza .navbar_logo-link .text-xs::before, html.resto-joespizza .navbar_logo-link .text-xs::after, html.resto-joespizza .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-joespizza .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-joespizza .pdi-about-title::before, html.resto-joespizza .pdi-about-title::after, html.resto-joespizza .pdi-co-choice-t::before, html.resto-joespizza .pdi-co-choice-t::after, html.resto-joespizza .pdi-co-q::before, html.resto-joespizza .pdi-co-q::after, html.resto-joespizza .pdi-cookie-title::before, html.resto-joespizza .pdi-cookie-title::after, html.resto-joespizza .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-joespizza .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-joespizza .pdi-footer-label::before, html.resto-joespizza .pdi-footer-label::after, html.resto-joespizza .pdi-footer-word::before, html.resto-joespizza .pdi-footer-word::after, html.resto-joespizza .pdi-legal-title::before, html.resto-joespizza .pdi-legal-title::after, html.resto-joespizza .pdi-menu-desktop-heading::before, html.resto-joespizza .pdi-menu-desktop-heading::after, html.resto-joespizza .pdi-menu-desktop-title::before, html.resto-joespizza .pdi-menu-desktop-title::after, html.resto-joespizza .pdi-menu-mobile-heading::before, html.resto-joespizza .pdi-menu-mobile-heading::after, html.resto-joespizza .pdi-menu-mobile-subheading::before, html.resto-joespizza .pdi-menu-mobile-subheading::after, html.resto-joespizza .pdi-order-cart-head p::before, html.resto-joespizza .pdi-order-cart-head p::after, html.resto-joespizza .pdi-order-cat-title::before, html.resto-joespizza .pdi-order-cat-title::after, html.resto-joespizza .pdi-order-checkout h2::before, html.resto-joespizza .pdi-order-checkout h2::after, html.resto-joespizza .pdi-order-checkout h3::before, html.resto-joespizza .pdi-order-checkout h3::after, html.resto-joespizza .pdi-order-hero h1::before, html.resto-joespizza .pdi-order-hero h1::after, html.resto-joespizza .pdi-order-success h1::before, html.resto-joespizza .pdi-order-success h1::after, html.resto-joespizza .pdi-order-success h2::before, html.resto-joespizza .pdi-order-success h2::after, html.resto-joespizza .pdi-order-success h3::before, html.resto-joespizza .pdi-order-success h3::after, html.resto-joespizza .pdi-order-total span::before, html.resto-joespizza .pdi-order-total span::after, html.resto-joespizza .pdi-pay-brand::before, html.resto-joespizza .pdi-pay-brand::after, html.resto-joespizza .pdi-pay-line-total::before, html.resto-joespizza .pdi-pay-line-total::after, html.resto-joespizza .pdi-resa-title::before, html.resto-joespizza .pdi-resa-title::after, html.resto-joespizza .pdi-reservation-title::before, html.resto-joespizza .pdi-reservation-title::after, html.resto-joespizza .pdi-section-title::before, html.resto-joespizza .pdi-section-title::after, html.resto-joespizza [data-config-text$=".title"]::before, html.resto-joespizza [data-config-text$=".title"]::after, html.resto-joespizza [data-config-text$="secondaryTitle"]::before, html.resto-joespizza [data-config-text$="secondaryTitle"]::after, html.resto-joespizza [data-config-text$='.title']::before, html.resto-joespizza [data-config-text$='.title']::after, html.resto-joespizza [data-config-text="ctaLabels.poweredBy"]::before, html.resto-joespizza [data-config-text="ctaLabels.poweredBy"]::after, html.resto-joespizza [data-config-text="sections.menuDetails.kicker"]::before, html.resto-joespizza [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- la-ferte-erqulinnes-belgique-fx.css --- */
/* ---- laferte : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-laferte .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #f3ddbe 0%, #b08654 58%, #7c5836 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(234, 207, 169, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(248, 236, 219, 0.33),
    0 3px 0 rgba(64, 46, 28, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-laferte .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-laferte .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-laferte .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #f3ddbe 0%, #d8b483 45%, #7c5836 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(234, 207, 169, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(68, 48, 30, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- la-ferte-erqulinnes-belgique : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #281d14 (recette validee) ---- */
html.resto-laferte #specialites .text-2xl,
html.resto-laferte .heading,
html.resto-laferte .hero_heading,
html.resto-laferte .nav_links .text-xs,
html.resto-laferte .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-laferte .navbar_logo-link .text-xs,
html.resto-laferte .navbar_logo-link [data-restaurant-logo-text],
html.resto-laferte .pdi-about-title,
html.resto-laferte .pdi-co-choice-t,
html.resto-laferte .pdi-co-q,
html.resto-laferte .pdi-cookie-title,
html.resto-laferte .pdi-eyebrow,
html.resto-laferte .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-laferte .pdi-footer-label,
html.resto-laferte .pdi-footer-powered a,
html.resto-laferte .pdi-footer-word,
html.resto-laferte .pdi-legal-title,
html.resto-laferte .pdi-menu-desktop-heading,
html.resto-laferte .pdi-menu-desktop-title,
html.resto-laferte .pdi-menu-mobile-heading,
html.resto-laferte .pdi-menu-mobile-subheading,
html.resto-laferte .pdi-menu-mobile-title,
html.resto-laferte .pdi-order-cart-head p,
html.resto-laferte .pdi-order-cat-title,
html.resto-laferte .pdi-order-checkout h2,
html.resto-laferte .pdi-order-checkout h3,
html.resto-laferte .pdi-order-hero h1,
html.resto-laferte .pdi-order-success h1,
html.resto-laferte .pdi-order-success h2,
html.resto-laferte .pdi-order-success h3,
html.resto-laferte .pdi-order-total span,
html.resto-laferte .pdi-pay-brand,
html.resto-laferte .pdi-pay-line-total,
html.resto-laferte .pdi-resa-kicker,
html.resto-laferte .pdi-resa-title,
html.resto-laferte .pdi-reservation-kicker,
html.resto-laferte .pdi-reservation-title,
html.resto-laferte .pdi-section-kicker,
html.resto-laferte .pdi-section-title,
html.resto-laferte [data-config-text$=".kicker"],
html.resto-laferte [data-config-text$=".mobileEyebrow"],
html.resto-laferte [data-config-text$=".mobileSubheading"],
html.resto-laferte [data-config-text$=".title"],
html.resto-laferte [data-config-text$="secondaryTitle"],
html.resto-laferte [data-config-text$='.title'],
html.resto-laferte [data-config-text$='Eyebrow'],
html.resto-laferte [data-config-text$='Subheading'],
html.resto-laferte [data-config-text$='kicker'],
html.resto-laferte [data-config-text$='subtitle'],
html.resto-laferte [data-config-text="ctaLabels.legalNotice"],
html.resto-laferte [data-config-text="ctaLabels.poweredBy"],
html.resto-laferte [data-config-text="ctaLabels.privacyPolicy"],
html.resto-laferte [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/La_Ferte_Erqulinnes_Belgique/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #b48d71 !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-laferte .nav_links .text-xs,
html.resto-laferte .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-laferte .navbar_logo-link .text-xs,
html.resto-laferte .navbar_logo-link [data-restaurant-logo-text],
html.resto-laferte .pdi-co-choice-t,
html.resto-laferte .pdi-eyebrow,
html.resto-laferte .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-laferte .pdi-footer-label,
html.resto-laferte .pdi-footer-powered a,
html.resto-laferte .pdi-order-cart-head p,
html.resto-laferte .pdi-order-total span,
html.resto-laferte .pdi-pay-brand,
html.resto-laferte .pdi-pay-line-total,
html.resto-laferte .pdi-resa-kicker,
html.resto-laferte .pdi-reservation-kicker,
html.resto-laferte .pdi-section-kicker,
html.resto-laferte [data-config-text$=".kicker"],
html.resto-laferte [data-config-text$=".mobileEyebrow"],
html.resto-laferte [data-config-text$='Eyebrow'],
html.resto-laferte [data-config-text$='kicker'],
html.resto-laferte [data-config-text="ctaLabels.legalNotice"],
html.resto-laferte [data-config-text="ctaLabels.poweredBy"],
html.resto-laferte [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/La_Ferte_Erqulinnes_Belgique/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-laferte #specialites .text-2xl::before, html.resto-laferte #specialites .text-2xl::after, html.resto-laferte .heading::before, html.resto-laferte .heading::after, html.resto-laferte .hero_heading::before, html.resto-laferte .hero_heading::after, html.resto-laferte .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-laferte .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-laferte .navbar_logo-link .text-xs::before, html.resto-laferte .navbar_logo-link .text-xs::after, html.resto-laferte .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-laferte .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-laferte .pdi-about-title::before, html.resto-laferte .pdi-about-title::after, html.resto-laferte .pdi-co-choice-t::before, html.resto-laferte .pdi-co-choice-t::after, html.resto-laferte .pdi-co-q::before, html.resto-laferte .pdi-co-q::after, html.resto-laferte .pdi-cookie-title::before, html.resto-laferte .pdi-cookie-title::after, html.resto-laferte .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-laferte .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-laferte .pdi-footer-label::before, html.resto-laferte .pdi-footer-label::after, html.resto-laferte .pdi-footer-word::before, html.resto-laferte .pdi-footer-word::after, html.resto-laferte .pdi-legal-title::before, html.resto-laferte .pdi-legal-title::after, html.resto-laferte .pdi-menu-desktop-heading::before, html.resto-laferte .pdi-menu-desktop-heading::after, html.resto-laferte .pdi-menu-desktop-title::before, html.resto-laferte .pdi-menu-desktop-title::after, html.resto-laferte .pdi-menu-mobile-heading::before, html.resto-laferte .pdi-menu-mobile-heading::after, html.resto-laferte .pdi-menu-mobile-subheading::before, html.resto-laferte .pdi-menu-mobile-subheading::after, html.resto-laferte .pdi-order-cart-head p::before, html.resto-laferte .pdi-order-cart-head p::after, html.resto-laferte .pdi-order-cat-title::before, html.resto-laferte .pdi-order-cat-title::after, html.resto-laferte .pdi-order-checkout h2::before, html.resto-laferte .pdi-order-checkout h2::after, html.resto-laferte .pdi-order-checkout h3::before, html.resto-laferte .pdi-order-checkout h3::after, html.resto-laferte .pdi-order-hero h1::before, html.resto-laferte .pdi-order-hero h1::after, html.resto-laferte .pdi-order-success h1::before, html.resto-laferte .pdi-order-success h1::after, html.resto-laferte .pdi-order-success h2::before, html.resto-laferte .pdi-order-success h2::after, html.resto-laferte .pdi-order-success h3::before, html.resto-laferte .pdi-order-success h3::after, html.resto-laferte .pdi-order-total span::before, html.resto-laferte .pdi-order-total span::after, html.resto-laferte .pdi-pay-brand::before, html.resto-laferte .pdi-pay-brand::after, html.resto-laferte .pdi-pay-line-total::before, html.resto-laferte .pdi-pay-line-total::after, html.resto-laferte .pdi-resa-title::before, html.resto-laferte .pdi-resa-title::after, html.resto-laferte .pdi-reservation-title::before, html.resto-laferte .pdi-reservation-title::after, html.resto-laferte .pdi-section-title::before, html.resto-laferte .pdi-section-title::after, html.resto-laferte [data-config-text$=".title"]::before, html.resto-laferte [data-config-text$=".title"]::after, html.resto-laferte [data-config-text$="secondaryTitle"]::before, html.resto-laferte [data-config-text$="secondaryTitle"]::after, html.resto-laferte [data-config-text$='.title']::before, html.resto-laferte [data-config-text$='.title']::after, html.resto-laferte [data-config-text="ctaLabels.poweredBy"]::before, html.resto-laferte [data-config-text="ctaLabels.poweredBy"]::after, html.resto-laferte [data-config-text="sections.menuDetails.kicker"]::before, html.resto-laferte [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- la-serenissima-paris-fx.css --- */
/* ---- la-serenissima-paris : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #1f0704 (recette validee) ---- */
html.resto-serenissima #specialites .text-2xl,
html.resto-serenissima .heading,
html.resto-serenissima .hero_heading,
html.resto-serenissima .nav_links .text-xs,
html.resto-serenissima .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-serenissima .navbar_logo-link .text-xs,
html.resto-serenissima .navbar_logo-link [data-restaurant-logo-text],
html.resto-serenissima .pdi-about-title,
html.resto-serenissima .pdi-co-choice-t,
html.resto-serenissima .pdi-co-q,
html.resto-serenissima .pdi-cookie-title,
html.resto-serenissima .pdi-eyebrow,
html.resto-serenissima .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-serenissima .pdi-footer-label,
html.resto-serenissima .pdi-footer-powered a,
html.resto-serenissima .pdi-footer-word,
html.resto-serenissima .pdi-legal-title,
html.resto-serenissima .pdi-menu-desktop-heading,
html.resto-serenissima .pdi-menu-desktop-title,
html.resto-serenissima .pdi-menu-mobile-heading,
html.resto-serenissima .pdi-menu-mobile-subheading,
html.resto-serenissima .pdi-menu-mobile-title,
html.resto-serenissima .pdi-order-cart-head p,
html.resto-serenissima .pdi-order-cat-title,
html.resto-serenissima .pdi-order-checkout h2,
html.resto-serenissima .pdi-order-checkout h3,
html.resto-serenissima .pdi-order-hero h1,
html.resto-serenissima .pdi-order-success h1,
html.resto-serenissima .pdi-order-success h2,
html.resto-serenissima .pdi-order-success h3,
html.resto-serenissima .pdi-order-total span,
html.resto-serenissima .pdi-pay-brand,
html.resto-serenissima .pdi-pay-line-total,
html.resto-serenissima .pdi-resa-kicker,
html.resto-serenissima .pdi-resa-title,
html.resto-serenissima .pdi-reservation-kicker,
html.resto-serenissima .pdi-reservation-title,
html.resto-serenissima .pdi-section-kicker,
html.resto-serenissima .pdi-section-title,
html.resto-serenissima [data-config-text$=".kicker"],
html.resto-serenissima [data-config-text$=".mobileEyebrow"],
html.resto-serenissima [data-config-text$=".mobileSubheading"],
html.resto-serenissima [data-config-text$=".title"],
html.resto-serenissima [data-config-text$="secondaryTitle"],
html.resto-serenissima [data-config-text$='.title'],
html.resto-serenissima [data-config-text$='Eyebrow'],
html.resto-serenissima [data-config-text$='Subheading'],
html.resto-serenissima [data-config-text$='kicker'],
html.resto-serenissima [data-config-text$='subtitle'],
html.resto-serenissima [data-config-text="ctaLabels.legalNotice"],
html.resto-serenissima [data-config-text="ctaLabels.poweredBy"],
html.resto-serenissima [data-config-text="ctaLabels.privacyPolicy"],
html.resto-serenissima [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/La_Serenissima_Paris/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #bc8970 !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-serenissima .nav_links .text-xs,
html.resto-serenissima .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-serenissima .navbar_logo-link .text-xs,
html.resto-serenissima .navbar_logo-link [data-restaurant-logo-text],
html.resto-serenissima .pdi-co-choice-t,
html.resto-serenissima .pdi-eyebrow,
html.resto-serenissima .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-serenissima .pdi-footer-label,
html.resto-serenissima .pdi-footer-powered a,
html.resto-serenissima .pdi-order-cart-head p,
html.resto-serenissima .pdi-order-total span,
html.resto-serenissima .pdi-pay-brand,
html.resto-serenissima .pdi-pay-line-total,
html.resto-serenissima .pdi-resa-kicker,
html.resto-serenissima .pdi-reservation-kicker,
html.resto-serenissima .pdi-section-kicker,
html.resto-serenissima [data-config-text$=".kicker"],
html.resto-serenissima [data-config-text$=".mobileEyebrow"],
html.resto-serenissima [data-config-text$='Eyebrow'],
html.resto-serenissima [data-config-text$='kicker'],
html.resto-serenissima [data-config-text="ctaLabels.legalNotice"],
html.resto-serenissima [data-config-text="ctaLabels.poweredBy"],
html.resto-serenissima [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/La_Serenissima_Paris/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-serenissima #specialites .text-2xl::before, html.resto-serenissima #specialites .text-2xl::after, html.resto-serenissima .heading::before, html.resto-serenissima .heading::after, html.resto-serenissima .hero_heading::before, html.resto-serenissima .hero_heading::after, html.resto-serenissima .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-serenissima .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-serenissima .navbar_logo-link .text-xs::before, html.resto-serenissima .navbar_logo-link .text-xs::after, html.resto-serenissima .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-serenissima .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-serenissima .pdi-about-title::before, html.resto-serenissima .pdi-about-title::after, html.resto-serenissima .pdi-co-choice-t::before, html.resto-serenissima .pdi-co-choice-t::after, html.resto-serenissima .pdi-co-q::before, html.resto-serenissima .pdi-co-q::after, html.resto-serenissima .pdi-cookie-title::before, html.resto-serenissima .pdi-cookie-title::after, html.resto-serenissima .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-serenissima .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-serenissima .pdi-footer-label::before, html.resto-serenissima .pdi-footer-label::after, html.resto-serenissima .pdi-footer-word::before, html.resto-serenissima .pdi-footer-word::after, html.resto-serenissima .pdi-legal-title::before, html.resto-serenissima .pdi-legal-title::after, html.resto-serenissima .pdi-menu-desktop-heading::before, html.resto-serenissima .pdi-menu-desktop-heading::after, html.resto-serenissima .pdi-menu-desktop-title::before, html.resto-serenissima .pdi-menu-desktop-title::after, html.resto-serenissima .pdi-menu-mobile-heading::before, html.resto-serenissima .pdi-menu-mobile-heading::after, html.resto-serenissima .pdi-menu-mobile-subheading::before, html.resto-serenissima .pdi-menu-mobile-subheading::after, html.resto-serenissima .pdi-order-cart-head p::before, html.resto-serenissima .pdi-order-cart-head p::after, html.resto-serenissima .pdi-order-cat-title::before, html.resto-serenissima .pdi-order-cat-title::after, html.resto-serenissima .pdi-order-checkout h2::before, html.resto-serenissima .pdi-order-checkout h2::after, html.resto-serenissima .pdi-order-checkout h3::before, html.resto-serenissima .pdi-order-checkout h3::after, html.resto-serenissima .pdi-order-hero h1::before, html.resto-serenissima .pdi-order-hero h1::after, html.resto-serenissima .pdi-order-success h1::before, html.resto-serenissima .pdi-order-success h1::after, html.resto-serenissima .pdi-order-success h2::before, html.resto-serenissima .pdi-order-success h2::after, html.resto-serenissima .pdi-order-success h3::before, html.resto-serenissima .pdi-order-success h3::after, html.resto-serenissima .pdi-order-total span::before, html.resto-serenissima .pdi-order-total span::after, html.resto-serenissima .pdi-pay-brand::before, html.resto-serenissima .pdi-pay-brand::after, html.resto-serenissima .pdi-pay-line-total::before, html.resto-serenissima .pdi-pay-line-total::after, html.resto-serenissima .pdi-resa-title::before, html.resto-serenissima .pdi-resa-title::after, html.resto-serenissima .pdi-reservation-title::before, html.resto-serenissima .pdi-reservation-title::after, html.resto-serenissima .pdi-section-title::before, html.resto-serenissima .pdi-section-title::after, html.resto-serenissima [data-config-text$=".title"]::before, html.resto-serenissima [data-config-text$=".title"]::after, html.resto-serenissima [data-config-text$="secondaryTitle"]::before, html.resto-serenissima [data-config-text$="secondaryTitle"]::after, html.resto-serenissima [data-config-text$='.title']::before, html.resto-serenissima [data-config-text$='.title']::after, html.resto-serenissima [data-config-text="ctaLabels.poweredBy"]::before, html.resto-serenissima [data-config-text="ctaLabels.poweredBy"]::after, html.resto-serenissima [data-config-text="sections.menuDetails.kicker"]::before, html.resto-serenissima [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- napul-e-boussu-belgique-restaurant-fx.css --- */
/* ---- napule : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-napule .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #ffe4b0 0%, #cc6a2a 58%, #9a3f16 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(247, 207, 144, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 240, 212, 0.33),
    0 3px 0 rgba(80, 33, 11, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-napule .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-napule .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-napule .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #ffe4b0 0%, #e8a955 45%, #9a3f16 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(247, 207, 144, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(85, 35, 12, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- napul-e-boussu-belgique-restaurant : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #2f1206 (recette validee) ---- */
html.resto-napule #specialites .text-2xl,
html.resto-napule .heading,
html.resto-napule .hero_heading,
html.resto-napule .nav_links .text-xs,
html.resto-napule .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-napule .navbar_logo-link .text-xs,
html.resto-napule .navbar_logo-link [data-restaurant-logo-text],
html.resto-napule .pdi-about-title,
html.resto-napule .pdi-co-choice-t,
html.resto-napule .pdi-co-q,
html.resto-napule .pdi-cookie-title,
html.resto-napule .pdi-eyebrow,
html.resto-napule .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-napule .pdi-footer-label,
html.resto-napule .pdi-footer-powered a,
html.resto-napule .pdi-footer-word,
html.resto-napule .pdi-legal-title,
html.resto-napule .pdi-menu-desktop-heading,
html.resto-napule .pdi-menu-desktop-title,
html.resto-napule .pdi-menu-mobile-heading,
html.resto-napule .pdi-menu-mobile-subheading,
html.resto-napule .pdi-menu-mobile-title,
html.resto-napule .pdi-order-cart-head p,
html.resto-napule .pdi-order-cat-title,
html.resto-napule .pdi-order-checkout h2,
html.resto-napule .pdi-order-checkout h3,
html.resto-napule .pdi-order-hero h1,
html.resto-napule .pdi-order-success h1,
html.resto-napule .pdi-order-success h2,
html.resto-napule .pdi-order-success h3,
html.resto-napule .pdi-order-total span,
html.resto-napule .pdi-pay-brand,
html.resto-napule .pdi-pay-line-total,
html.resto-napule .pdi-resa-kicker,
html.resto-napule .pdi-resa-title,
html.resto-napule .pdi-reservation-kicker,
html.resto-napule .pdi-reservation-title,
html.resto-napule .pdi-section-kicker,
html.resto-napule .pdi-section-title,
html.resto-napule [data-config-text$=".kicker"],
html.resto-napule [data-config-text$=".mobileEyebrow"],
html.resto-napule [data-config-text$=".mobileSubheading"],
html.resto-napule [data-config-text$=".title"],
html.resto-napule [data-config-text$="secondaryTitle"],
html.resto-napule [data-config-text$='.title'],
html.resto-napule [data-config-text$='Eyebrow'],
html.resto-napule [data-config-text$='Subheading'],
html.resto-napule [data-config-text$='kicker'],
html.resto-napule [data-config-text$='subtitle'],
html.resto-napule [data-config-text="ctaLabels.legalNotice"],
html.resto-napule [data-config-text="ctaLabels.poweredBy"],
html.resto-napule [data-config-text="ctaLabels.privacyPolicy"],
html.resto-napule [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Napul_e_boussu_Belgique_restaurant/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #ed9758 !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-napule .nav_links .text-xs,
html.resto-napule .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-napule .navbar_logo-link .text-xs,
html.resto-napule .navbar_logo-link [data-restaurant-logo-text],
html.resto-napule .pdi-co-choice-t,
html.resto-napule .pdi-eyebrow,
html.resto-napule .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-napule .pdi-footer-label,
html.resto-napule .pdi-footer-powered a,
html.resto-napule .pdi-order-cart-head p,
html.resto-napule .pdi-order-total span,
html.resto-napule .pdi-pay-brand,
html.resto-napule .pdi-pay-line-total,
html.resto-napule .pdi-resa-kicker,
html.resto-napule .pdi-reservation-kicker,
html.resto-napule .pdi-section-kicker,
html.resto-napule [data-config-text$=".kicker"],
html.resto-napule [data-config-text$=".mobileEyebrow"],
html.resto-napule [data-config-text$='Eyebrow'],
html.resto-napule [data-config-text$='kicker'],
html.resto-napule [data-config-text="ctaLabels.legalNotice"],
html.resto-napule [data-config-text="ctaLabels.poweredBy"],
html.resto-napule [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Napul_e_boussu_Belgique_restaurant/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-napule #specialites .text-2xl::before, html.resto-napule #specialites .text-2xl::after, html.resto-napule .heading::before, html.resto-napule .heading::after, html.resto-napule .hero_heading::before, html.resto-napule .hero_heading::after, html.resto-napule .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-napule .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-napule .navbar_logo-link .text-xs::before, html.resto-napule .navbar_logo-link .text-xs::after, html.resto-napule .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-napule .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-napule .pdi-about-title::before, html.resto-napule .pdi-about-title::after, html.resto-napule .pdi-co-choice-t::before, html.resto-napule .pdi-co-choice-t::after, html.resto-napule .pdi-co-q::before, html.resto-napule .pdi-co-q::after, html.resto-napule .pdi-cookie-title::before, html.resto-napule .pdi-cookie-title::after, html.resto-napule .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-napule .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-napule .pdi-footer-label::before, html.resto-napule .pdi-footer-label::after, html.resto-napule .pdi-footer-word::before, html.resto-napule .pdi-footer-word::after, html.resto-napule .pdi-legal-title::before, html.resto-napule .pdi-legal-title::after, html.resto-napule .pdi-menu-desktop-heading::before, html.resto-napule .pdi-menu-desktop-heading::after, html.resto-napule .pdi-menu-desktop-title::before, html.resto-napule .pdi-menu-desktop-title::after, html.resto-napule .pdi-menu-mobile-heading::before, html.resto-napule .pdi-menu-mobile-heading::after, html.resto-napule .pdi-menu-mobile-subheading::before, html.resto-napule .pdi-menu-mobile-subheading::after, html.resto-napule .pdi-order-cart-head p::before, html.resto-napule .pdi-order-cart-head p::after, html.resto-napule .pdi-order-cat-title::before, html.resto-napule .pdi-order-cat-title::after, html.resto-napule .pdi-order-checkout h2::before, html.resto-napule .pdi-order-checkout h2::after, html.resto-napule .pdi-order-checkout h3::before, html.resto-napule .pdi-order-checkout h3::after, html.resto-napule .pdi-order-hero h1::before, html.resto-napule .pdi-order-hero h1::after, html.resto-napule .pdi-order-success h1::before, html.resto-napule .pdi-order-success h1::after, html.resto-napule .pdi-order-success h2::before, html.resto-napule .pdi-order-success h2::after, html.resto-napule .pdi-order-success h3::before, html.resto-napule .pdi-order-success h3::after, html.resto-napule .pdi-order-total span::before, html.resto-napule .pdi-order-total span::after, html.resto-napule .pdi-pay-brand::before, html.resto-napule .pdi-pay-brand::after, html.resto-napule .pdi-pay-line-total::before, html.resto-napule .pdi-pay-line-total::after, html.resto-napule .pdi-resa-title::before, html.resto-napule .pdi-resa-title::after, html.resto-napule .pdi-reservation-title::before, html.resto-napule .pdi-reservation-title::after, html.resto-napule .pdi-section-title::before, html.resto-napule .pdi-section-title::after, html.resto-napule [data-config-text$=".title"]::before, html.resto-napule [data-config-text$=".title"]::after, html.resto-napule [data-config-text$="secondaryTitle"]::before, html.resto-napule [data-config-text$="secondaryTitle"]::after, html.resto-napule [data-config-text$='.title']::before, html.resto-napule [data-config-text$='.title']::after, html.resto-napule [data-config-text="ctaLabels.poweredBy"]::before, html.resto-napule [data-config-text="ctaLabels.poweredBy"]::after, html.resto-napule [data-config-text="sections.menuDetails.kicker"]::before, html.resto-napule [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- nextchapter-restaurant-casablanca-maroc-fx.css --- */
/* ---- nextchapter : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-nextchapter .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #ecd8b6 0%, #a67f4a 58%, #74492a 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(225, 201, 161, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(245, 234, 215, 0.33),
    0 3px 0 rgba(60, 38, 22, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-nextchapter .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-nextchapter .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-nextchapter .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #ecd8b6 0%, #cdae7a 45%, #74492a 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(225, 201, 161, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(64, 40, 23, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- nextchapter-restaurant-casablanca-maroc : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #1f1308 (recette validee) ---- */
html.resto-nextchapter #specialites .text-2xl,
html.resto-nextchapter .heading,
html.resto-nextchapter .hero_heading,
html.resto-nextchapter .nav_links .text-xs,
html.resto-nextchapter .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-nextchapter .navbar_logo-link .text-xs,
html.resto-nextchapter .navbar_logo-link [data-restaurant-logo-text],
html.resto-nextchapter .pdi-about-title,
html.resto-nextchapter .pdi-co-choice-t,
html.resto-nextchapter .pdi-co-q,
html.resto-nextchapter .pdi-cookie-title,
html.resto-nextchapter .pdi-eyebrow,
html.resto-nextchapter .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-nextchapter .pdi-footer-label,
html.resto-nextchapter .pdi-footer-powered a,
html.resto-nextchapter .pdi-footer-word,
html.resto-nextchapter .pdi-legal-title,
html.resto-nextchapter .pdi-menu-desktop-heading,
html.resto-nextchapter .pdi-menu-desktop-title,
html.resto-nextchapter .pdi-menu-mobile-heading,
html.resto-nextchapter .pdi-menu-mobile-subheading,
html.resto-nextchapter .pdi-menu-mobile-title,
html.resto-nextchapter .pdi-order-cart-head p,
html.resto-nextchapter .pdi-order-cat-title,
html.resto-nextchapter .pdi-order-checkout h2,
html.resto-nextchapter .pdi-order-checkout h3,
html.resto-nextchapter .pdi-order-hero h1,
html.resto-nextchapter .pdi-order-success h1,
html.resto-nextchapter .pdi-order-success h2,
html.resto-nextchapter .pdi-order-success h3,
html.resto-nextchapter .pdi-order-total span,
html.resto-nextchapter .pdi-pay-brand,
html.resto-nextchapter .pdi-pay-line-total,
html.resto-nextchapter .pdi-resa-kicker,
html.resto-nextchapter .pdi-resa-title,
html.resto-nextchapter .pdi-reservation-kicker,
html.resto-nextchapter .pdi-reservation-title,
html.resto-nextchapter .pdi-section-kicker,
html.resto-nextchapter .pdi-section-title,
html.resto-nextchapter [data-config-text$=".kicker"],
html.resto-nextchapter [data-config-text$=".mobileEyebrow"],
html.resto-nextchapter [data-config-text$=".mobileSubheading"],
html.resto-nextchapter [data-config-text$=".title"],
html.resto-nextchapter [data-config-text$="secondaryTitle"],
html.resto-nextchapter [data-config-text$='.title'],
html.resto-nextchapter [data-config-text$='Eyebrow'],
html.resto-nextchapter [data-config-text$='Subheading'],
html.resto-nextchapter [data-config-text$='kicker'],
html.resto-nextchapter [data-config-text$='subtitle'],
html.resto-nextchapter [data-config-text="ctaLabels.legalNotice"],
html.resto-nextchapter [data-config-text="ctaLabels.poweredBy"],
html.resto-nextchapter [data-config-text="ctaLabels.privacyPolicy"],
html.resto-nextchapter [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Nextchapter_Restaurant_Casablanca_Maroc/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #9d9489 !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-nextchapter .nav_links .text-xs,
html.resto-nextchapter .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-nextchapter .navbar_logo-link .text-xs,
html.resto-nextchapter .navbar_logo-link [data-restaurant-logo-text],
html.resto-nextchapter .pdi-co-choice-t,
html.resto-nextchapter .pdi-eyebrow,
html.resto-nextchapter .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-nextchapter .pdi-footer-label,
html.resto-nextchapter .pdi-footer-powered a,
html.resto-nextchapter .pdi-order-cart-head p,
html.resto-nextchapter .pdi-order-total span,
html.resto-nextchapter .pdi-pay-brand,
html.resto-nextchapter .pdi-pay-line-total,
html.resto-nextchapter .pdi-resa-kicker,
html.resto-nextchapter .pdi-reservation-kicker,
html.resto-nextchapter .pdi-section-kicker,
html.resto-nextchapter [data-config-text$=".kicker"],
html.resto-nextchapter [data-config-text$=".mobileEyebrow"],
html.resto-nextchapter [data-config-text$='Eyebrow'],
html.resto-nextchapter [data-config-text$='kicker'],
html.resto-nextchapter [data-config-text="ctaLabels.legalNotice"],
html.resto-nextchapter [data-config-text="ctaLabels.poweredBy"],
html.resto-nextchapter [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Nextchapter_Restaurant_Casablanca_Maroc/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-nextchapter #specialites .text-2xl::before, html.resto-nextchapter #specialites .text-2xl::after, html.resto-nextchapter .heading::before, html.resto-nextchapter .heading::after, html.resto-nextchapter .hero_heading::before, html.resto-nextchapter .hero_heading::after, html.resto-nextchapter .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-nextchapter .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-nextchapter .navbar_logo-link .text-xs::before, html.resto-nextchapter .navbar_logo-link .text-xs::after, html.resto-nextchapter .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-nextchapter .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-nextchapter .pdi-about-title::before, html.resto-nextchapter .pdi-about-title::after, html.resto-nextchapter .pdi-co-choice-t::before, html.resto-nextchapter .pdi-co-choice-t::after, html.resto-nextchapter .pdi-co-q::before, html.resto-nextchapter .pdi-co-q::after, html.resto-nextchapter .pdi-cookie-title::before, html.resto-nextchapter .pdi-cookie-title::after, html.resto-nextchapter .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-nextchapter .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-nextchapter .pdi-footer-label::before, html.resto-nextchapter .pdi-footer-label::after, html.resto-nextchapter .pdi-footer-word::before, html.resto-nextchapter .pdi-footer-word::after, html.resto-nextchapter .pdi-legal-title::before, html.resto-nextchapter .pdi-legal-title::after, html.resto-nextchapter .pdi-menu-desktop-heading::before, html.resto-nextchapter .pdi-menu-desktop-heading::after, html.resto-nextchapter .pdi-menu-desktop-title::before, html.resto-nextchapter .pdi-menu-desktop-title::after, html.resto-nextchapter .pdi-menu-mobile-heading::before, html.resto-nextchapter .pdi-menu-mobile-heading::after, html.resto-nextchapter .pdi-menu-mobile-subheading::before, html.resto-nextchapter .pdi-menu-mobile-subheading::after, html.resto-nextchapter .pdi-order-cart-head p::before, html.resto-nextchapter .pdi-order-cart-head p::after, html.resto-nextchapter .pdi-order-cat-title::before, html.resto-nextchapter .pdi-order-cat-title::after, html.resto-nextchapter .pdi-order-checkout h2::before, html.resto-nextchapter .pdi-order-checkout h2::after, html.resto-nextchapter .pdi-order-checkout h3::before, html.resto-nextchapter .pdi-order-checkout h3::after, html.resto-nextchapter .pdi-order-hero h1::before, html.resto-nextchapter .pdi-order-hero h1::after, html.resto-nextchapter .pdi-order-success h1::before, html.resto-nextchapter .pdi-order-success h1::after, html.resto-nextchapter .pdi-order-success h2::before, html.resto-nextchapter .pdi-order-success h2::after, html.resto-nextchapter .pdi-order-success h3::before, html.resto-nextchapter .pdi-order-success h3::after, html.resto-nextchapter .pdi-order-total span::before, html.resto-nextchapter .pdi-order-total span::after, html.resto-nextchapter .pdi-pay-brand::before, html.resto-nextchapter .pdi-pay-brand::after, html.resto-nextchapter .pdi-pay-line-total::before, html.resto-nextchapter .pdi-pay-line-total::after, html.resto-nextchapter .pdi-resa-title::before, html.resto-nextchapter .pdi-resa-title::after, html.resto-nextchapter .pdi-reservation-title::before, html.resto-nextchapter .pdi-reservation-title::after, html.resto-nextchapter .pdi-section-title::before, html.resto-nextchapter .pdi-section-title::after, html.resto-nextchapter [data-config-text$=".title"]::before, html.resto-nextchapter [data-config-text$=".title"]::after, html.resto-nextchapter [data-config-text$="secondaryTitle"]::before, html.resto-nextchapter [data-config-text$="secondaryTitle"]::after, html.resto-nextchapter [data-config-text$='.title']::before, html.resto-nextchapter [data-config-text$='.title']::after, html.resto-nextchapter [data-config-text="ctaLabels.poweredBy"]::before, html.resto-nextchapter [data-config-text="ctaLabels.poweredBy"]::after, html.resto-nextchapter [data-config-text="sections.menuDetails.kicker"]::before, html.resto-nextchapter [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- oobamint-luxembourg-luxembourg-fx.css --- */
/* ---- oobamint : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-oobamint .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #f6d6a2 0%, #b45a30 58%, #8e3028 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(237, 194, 134, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(250, 232, 204, 0.33),
    0 3px 0 rgba(74, 25, 21, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-oobamint .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-oobamint .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-oobamint .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #f6d6a2 0%, #dd9c52 45%, #8e3028 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(237, 194, 134, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(78, 26, 22, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- oobamint-luxembourg-luxembourg : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #240c0a (recette validee) ---- */
html.resto-oobamint #specialites .text-2xl,
html.resto-oobamint .heading,
html.resto-oobamint .hero_heading,
html.resto-oobamint .nav_links .text-xs,
html.resto-oobamint .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-oobamint .navbar_logo-link .text-xs,
html.resto-oobamint .navbar_logo-link [data-restaurant-logo-text],
html.resto-oobamint .pdi-about-title,
html.resto-oobamint .pdi-co-choice-t,
html.resto-oobamint .pdi-co-q,
html.resto-oobamint .pdi-cookie-title,
html.resto-oobamint .pdi-eyebrow,
html.resto-oobamint .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-oobamint .pdi-footer-label,
html.resto-oobamint .pdi-footer-powered a,
html.resto-oobamint .pdi-footer-word,
html.resto-oobamint .pdi-legal-title,
html.resto-oobamint .pdi-menu-desktop-heading,
html.resto-oobamint .pdi-menu-desktop-title,
html.resto-oobamint .pdi-menu-mobile-heading,
html.resto-oobamint .pdi-menu-mobile-subheading,
html.resto-oobamint .pdi-menu-mobile-title,
html.resto-oobamint .pdi-order-cart-head p,
html.resto-oobamint .pdi-order-cat-title,
html.resto-oobamint .pdi-order-checkout h2,
html.resto-oobamint .pdi-order-checkout h3,
html.resto-oobamint .pdi-order-hero h1,
html.resto-oobamint .pdi-order-success h1,
html.resto-oobamint .pdi-order-success h2,
html.resto-oobamint .pdi-order-success h3,
html.resto-oobamint .pdi-order-total span,
html.resto-oobamint .pdi-pay-brand,
html.resto-oobamint .pdi-pay-line-total,
html.resto-oobamint .pdi-resa-kicker,
html.resto-oobamint .pdi-resa-title,
html.resto-oobamint .pdi-reservation-kicker,
html.resto-oobamint .pdi-reservation-title,
html.resto-oobamint .pdi-section-kicker,
html.resto-oobamint .pdi-section-title,
html.resto-oobamint [data-config-text$=".kicker"],
html.resto-oobamint [data-config-text$=".mobileEyebrow"],
html.resto-oobamint [data-config-text$=".mobileSubheading"],
html.resto-oobamint [data-config-text$=".title"],
html.resto-oobamint [data-config-text$="secondaryTitle"],
html.resto-oobamint [data-config-text$='.title'],
html.resto-oobamint [data-config-text$='Eyebrow'],
html.resto-oobamint [data-config-text$='Subheading'],
html.resto-oobamint [data-config-text$='kicker'],
html.resto-oobamint [data-config-text$='subtitle'],
html.resto-oobamint [data-config-text="ctaLabels.legalNotice"],
html.resto-oobamint [data-config-text="ctaLabels.poweredBy"],
html.resto-oobamint [data-config-text="ctaLabels.privacyPolicy"],
html.resto-oobamint [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Oobamint_Luxembourg_Luxembourg/font_texture_kimono_v3.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #edb674 !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-oobamint .nav_links .text-xs,
html.resto-oobamint .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-oobamint .navbar_logo-link .text-xs,
html.resto-oobamint .navbar_logo-link [data-restaurant-logo-text],
html.resto-oobamint .pdi-co-choice-t,
html.resto-oobamint .pdi-eyebrow,
html.resto-oobamint .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-oobamint .pdi-footer-label,
html.resto-oobamint .pdi-footer-powered a,
html.resto-oobamint .pdi-order-cart-head p,
html.resto-oobamint .pdi-order-total span,
html.resto-oobamint .pdi-pay-brand,
html.resto-oobamint .pdi-pay-line-total,
html.resto-oobamint .pdi-resa-kicker,
html.resto-oobamint .pdi-reservation-kicker,
html.resto-oobamint .pdi-section-kicker,
html.resto-oobamint [data-config-text$=".kicker"],
html.resto-oobamint [data-config-text$=".mobileEyebrow"],
html.resto-oobamint [data-config-text$='Eyebrow'],
html.resto-oobamint [data-config-text$='kicker'],
html.resto-oobamint [data-config-text="ctaLabels.legalNotice"],
html.resto-oobamint [data-config-text="ctaLabels.poweredBy"],
html.resto-oobamint [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Oobamint_Luxembourg_Luxembourg/font_texture_kimono_v3b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-oobamint #specialites .text-2xl::before, html.resto-oobamint #specialites .text-2xl::after, html.resto-oobamint .heading::before, html.resto-oobamint .heading::after, html.resto-oobamint .hero_heading::before, html.resto-oobamint .hero_heading::after, html.resto-oobamint .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-oobamint .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-oobamint .navbar_logo-link .text-xs::before, html.resto-oobamint .navbar_logo-link .text-xs::after, html.resto-oobamint .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-oobamint .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-oobamint .pdi-about-title::before, html.resto-oobamint .pdi-about-title::after, html.resto-oobamint .pdi-co-choice-t::before, html.resto-oobamint .pdi-co-choice-t::after, html.resto-oobamint .pdi-co-q::before, html.resto-oobamint .pdi-co-q::after, html.resto-oobamint .pdi-cookie-title::before, html.resto-oobamint .pdi-cookie-title::after, html.resto-oobamint .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-oobamint .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-oobamint .pdi-footer-label::before, html.resto-oobamint .pdi-footer-label::after, html.resto-oobamint .pdi-footer-word::before, html.resto-oobamint .pdi-footer-word::after, html.resto-oobamint .pdi-legal-title::before, html.resto-oobamint .pdi-legal-title::after, html.resto-oobamint .pdi-menu-desktop-heading::before, html.resto-oobamint .pdi-menu-desktop-heading::after, html.resto-oobamint .pdi-menu-desktop-title::before, html.resto-oobamint .pdi-menu-desktop-title::after, html.resto-oobamint .pdi-menu-mobile-heading::before, html.resto-oobamint .pdi-menu-mobile-heading::after, html.resto-oobamint .pdi-menu-mobile-subheading::before, html.resto-oobamint .pdi-menu-mobile-subheading::after, html.resto-oobamint .pdi-order-cart-head p::before, html.resto-oobamint .pdi-order-cart-head p::after, html.resto-oobamint .pdi-order-cat-title::before, html.resto-oobamint .pdi-order-cat-title::after, html.resto-oobamint .pdi-order-checkout h2::before, html.resto-oobamint .pdi-order-checkout h2::after, html.resto-oobamint .pdi-order-checkout h3::before, html.resto-oobamint .pdi-order-checkout h3::after, html.resto-oobamint .pdi-order-hero h1::before, html.resto-oobamint .pdi-order-hero h1::after, html.resto-oobamint .pdi-order-success h1::before, html.resto-oobamint .pdi-order-success h1::after, html.resto-oobamint .pdi-order-success h2::before, html.resto-oobamint .pdi-order-success h2::after, html.resto-oobamint .pdi-order-success h3::before, html.resto-oobamint .pdi-order-success h3::after, html.resto-oobamint .pdi-order-total span::before, html.resto-oobamint .pdi-order-total span::after, html.resto-oobamint .pdi-pay-brand::before, html.resto-oobamint .pdi-pay-brand::after, html.resto-oobamint .pdi-pay-line-total::before, html.resto-oobamint .pdi-pay-line-total::after, html.resto-oobamint .pdi-resa-title::before, html.resto-oobamint .pdi-resa-title::after, html.resto-oobamint .pdi-reservation-title::before, html.resto-oobamint .pdi-reservation-title::after, html.resto-oobamint .pdi-section-title::before, html.resto-oobamint .pdi-section-title::after, html.resto-oobamint [data-config-text$=".title"]::before, html.resto-oobamint [data-config-text$=".title"]::after, html.resto-oobamint [data-config-text$="secondaryTitle"]::before, html.resto-oobamint [data-config-text$="secondaryTitle"]::after, html.resto-oobamint [data-config-text$='.title']::before, html.resto-oobamint [data-config-text$='.title']::after, html.resto-oobamint [data-config-text="ctaLabels.poweredBy"]::before, html.resto-oobamint [data-config-text="ctaLabels.poweredBy"]::after, html.resto-oobamint [data-config-text="sections.menuDetails.kicker"]::before, html.resto-oobamint [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- owok-blois-france-fx.css --- */
/* ---- owok : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-owok .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #fff0ac 0%, #d9a83f 58%, #b97822 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(251, 230, 153, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 247, 209, 0.33),
    0 3px 0 rgba(96, 62, 18, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-owok .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-owok .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-owok .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #fff0ac 0%, #f3d276 45%, #b97822 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(251, 230, 153, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(102, 66, 19, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- owok-blois-france : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #341f0d (recette validee) ---- */
html.resto-owok #specialites .text-2xl,
html.resto-owok .heading,
html.resto-owok .hero_heading,
html.resto-owok .nav_links .text-xs,
html.resto-owok .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-owok .navbar_logo-link .text-xs,
html.resto-owok .navbar_logo-link [data-restaurant-logo-text],
html.resto-owok .pdi-about-title,
html.resto-owok .pdi-co-choice-t,
html.resto-owok .pdi-co-q,
html.resto-owok .pdi-cookie-title,
html.resto-owok .pdi-eyebrow,
html.resto-owok .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-owok .pdi-footer-label,
html.resto-owok .pdi-footer-powered a,
html.resto-owok .pdi-footer-word,
html.resto-owok .pdi-legal-title,
html.resto-owok .pdi-menu-desktop-heading,
html.resto-owok .pdi-menu-desktop-title,
html.resto-owok .pdi-menu-mobile-heading,
html.resto-owok .pdi-menu-mobile-subheading,
html.resto-owok .pdi-menu-mobile-title,
html.resto-owok .pdi-order-cart-head p,
html.resto-owok .pdi-order-cat-title,
html.resto-owok .pdi-order-checkout h2,
html.resto-owok .pdi-order-checkout h3,
html.resto-owok .pdi-order-hero h1,
html.resto-owok .pdi-order-success h1,
html.resto-owok .pdi-order-success h2,
html.resto-owok .pdi-order-success h3,
html.resto-owok .pdi-order-total span,
html.resto-owok .pdi-pay-brand,
html.resto-owok .pdi-pay-line-total,
html.resto-owok .pdi-resa-kicker,
html.resto-owok .pdi-resa-title,
html.resto-owok .pdi-reservation-kicker,
html.resto-owok .pdi-reservation-title,
html.resto-owok .pdi-section-kicker,
html.resto-owok .pdi-section-title,
html.resto-owok [data-config-text$=".kicker"],
html.resto-owok [data-config-text$=".mobileEyebrow"],
html.resto-owok [data-config-text$=".mobileSubheading"],
html.resto-owok [data-config-text$=".title"],
html.resto-owok [data-config-text$="secondaryTitle"],
html.resto-owok [data-config-text$='.title'],
html.resto-owok [data-config-text$='Eyebrow'],
html.resto-owok [data-config-text$='Subheading'],
html.resto-owok [data-config-text$='kicker'],
html.resto-owok [data-config-text$='subtitle'],
html.resto-owok [data-config-text="ctaLabels.legalNotice"],
html.resto-owok [data-config-text="ctaLabels.poweredBy"],
html.resto-owok [data-config-text="ctaLabels.privacyPolicy"],
html.resto-owok [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/OWok_Blois_France/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #c58b4e !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-owok .nav_links .text-xs,
html.resto-owok .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-owok .navbar_logo-link .text-xs,
html.resto-owok .navbar_logo-link [data-restaurant-logo-text],
html.resto-owok .pdi-co-choice-t,
html.resto-owok .pdi-eyebrow,
html.resto-owok .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-owok .pdi-footer-label,
html.resto-owok .pdi-footer-powered a,
html.resto-owok .pdi-order-cart-head p,
html.resto-owok .pdi-order-total span,
html.resto-owok .pdi-pay-brand,
html.resto-owok .pdi-pay-line-total,
html.resto-owok .pdi-resa-kicker,
html.resto-owok .pdi-reservation-kicker,
html.resto-owok .pdi-section-kicker,
html.resto-owok [data-config-text$=".kicker"],
html.resto-owok [data-config-text$=".mobileEyebrow"],
html.resto-owok [data-config-text$='Eyebrow'],
html.resto-owok [data-config-text$='kicker'],
html.resto-owok [data-config-text="ctaLabels.legalNotice"],
html.resto-owok [data-config-text="ctaLabels.poweredBy"],
html.resto-owok [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/OWok_Blois_France/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-owok #specialites .text-2xl::before, html.resto-owok #specialites .text-2xl::after, html.resto-owok .heading::before, html.resto-owok .heading::after, html.resto-owok .hero_heading::before, html.resto-owok .hero_heading::after, html.resto-owok .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-owok .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-owok .navbar_logo-link .text-xs::before, html.resto-owok .navbar_logo-link .text-xs::after, html.resto-owok .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-owok .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-owok .pdi-about-title::before, html.resto-owok .pdi-about-title::after, html.resto-owok .pdi-co-choice-t::before, html.resto-owok .pdi-co-choice-t::after, html.resto-owok .pdi-co-q::before, html.resto-owok .pdi-co-q::after, html.resto-owok .pdi-cookie-title::before, html.resto-owok .pdi-cookie-title::after, html.resto-owok .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-owok .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-owok .pdi-footer-label::before, html.resto-owok .pdi-footer-label::after, html.resto-owok .pdi-footer-word::before, html.resto-owok .pdi-footer-word::after, html.resto-owok .pdi-legal-title::before, html.resto-owok .pdi-legal-title::after, html.resto-owok .pdi-menu-desktop-heading::before, html.resto-owok .pdi-menu-desktop-heading::after, html.resto-owok .pdi-menu-desktop-title::before, html.resto-owok .pdi-menu-desktop-title::after, html.resto-owok .pdi-menu-mobile-heading::before, html.resto-owok .pdi-menu-mobile-heading::after, html.resto-owok .pdi-menu-mobile-subheading::before, html.resto-owok .pdi-menu-mobile-subheading::after, html.resto-owok .pdi-order-cart-head p::before, html.resto-owok .pdi-order-cart-head p::after, html.resto-owok .pdi-order-cat-title::before, html.resto-owok .pdi-order-cat-title::after, html.resto-owok .pdi-order-checkout h2::before, html.resto-owok .pdi-order-checkout h2::after, html.resto-owok .pdi-order-checkout h3::before, html.resto-owok .pdi-order-checkout h3::after, html.resto-owok .pdi-order-hero h1::before, html.resto-owok .pdi-order-hero h1::after, html.resto-owok .pdi-order-success h1::before, html.resto-owok .pdi-order-success h1::after, html.resto-owok .pdi-order-success h2::before, html.resto-owok .pdi-order-success h2::after, html.resto-owok .pdi-order-success h3::before, html.resto-owok .pdi-order-success h3::after, html.resto-owok .pdi-order-total span::before, html.resto-owok .pdi-order-total span::after, html.resto-owok .pdi-pay-brand::before, html.resto-owok .pdi-pay-brand::after, html.resto-owok .pdi-pay-line-total::before, html.resto-owok .pdi-pay-line-total::after, html.resto-owok .pdi-resa-title::before, html.resto-owok .pdi-resa-title::after, html.resto-owok .pdi-reservation-title::before, html.resto-owok .pdi-reservation-title::after, html.resto-owok .pdi-section-title::before, html.resto-owok .pdi-section-title::after, html.resto-owok [data-config-text$=".title"]::before, html.resto-owok [data-config-text$=".title"]::after, html.resto-owok [data-config-text$="secondaryTitle"]::before, html.resto-owok [data-config-text$="secondaryTitle"]::after, html.resto-owok [data-config-text$='.title']::before, html.resto-owok [data-config-text$='.title']::after, html.resto-owok [data-config-text="ctaLabels.poweredBy"]::before, html.resto-owok [data-config-text="ctaLabels.poweredBy"]::after, html.resto-owok [data-config-text="sections.menuDetails.kicker"]::before, html.resto-owok [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- pouletos-braise-champigny-sur-marne-france-fx.css --- */
/* ---- pouletos : commander menu-grid font effects (hero title is a baked image, untouched) ---- */
html.resto-pouletos .pdi-order-cat-title {
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.05 !important;
  text-transform: uppercase !important;
  color: transparent !important;
  background: linear-gradient(180deg, #ede0a8 0%, #9c8a34 58%, #675818 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.45px rgba(224, 209, 142, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(245, 238, 207, 0.33),
    0 3px 0 rgba(54, 46, 12, 0.48),
    0 6px 10px rgba(0, 0, 0, 0.6);
}

html.resto-pouletos .pdi-order-row-name {
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
  line-height: 1.15 !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 5px rgba(0, 0, 0, 0.7);
}

html.resto-pouletos .pdi-order-row-desc {
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  line-height: 1.4 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

html.resto-pouletos .pdi-order-row-price {
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  color: transparent !important;
  background: linear-gradient(180deg, #ede0a8 0%, #c8b45f 45%, #675818 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 0.3px rgba(224, 209, 142, 0.3) !important;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.14),
    0 2px 0 rgba(57, 48, 13, 0.48),
    0 3px 7px rgba(0, 0, 0, 0.6);
}

/* ---- pouletos-braise-champigny-sur-marne-france : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #1c1706 (recette validee) ---- */
html.resto-pouletos #specialites .text-2xl,
html.resto-pouletos .heading,
html.resto-pouletos .hero_heading,
html.resto-pouletos .nav_links .text-xs,
html.resto-pouletos .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-pouletos .navbar_logo-link .text-xs,
html.resto-pouletos .navbar_logo-link [data-restaurant-logo-text],
html.resto-pouletos .pdi-about-title,
html.resto-pouletos .pdi-co-choice-t,
html.resto-pouletos .pdi-co-q,
html.resto-pouletos .pdi-cookie-title,
html.resto-pouletos .pdi-eyebrow,
html.resto-pouletos .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-pouletos .pdi-footer-label,
html.resto-pouletos .pdi-footer-powered a,
html.resto-pouletos .pdi-footer-word,
html.resto-pouletos .pdi-legal-title,
html.resto-pouletos .pdi-menu-desktop-heading,
html.resto-pouletos .pdi-menu-desktop-title,
html.resto-pouletos .pdi-menu-mobile-heading,
html.resto-pouletos .pdi-menu-mobile-subheading,
html.resto-pouletos .pdi-menu-mobile-title,
html.resto-pouletos .pdi-order-cart-head p,
html.resto-pouletos .pdi-order-cat-title,
html.resto-pouletos .pdi-order-checkout h2,
html.resto-pouletos .pdi-order-checkout h3,
html.resto-pouletos .pdi-order-hero h1,
html.resto-pouletos .pdi-order-success h1,
html.resto-pouletos .pdi-order-success h2,
html.resto-pouletos .pdi-order-success h3,
html.resto-pouletos .pdi-order-total span,
html.resto-pouletos .pdi-pay-brand,
html.resto-pouletos .pdi-pay-line-total,
html.resto-pouletos .pdi-resa-kicker,
html.resto-pouletos .pdi-resa-title,
html.resto-pouletos .pdi-reservation-kicker,
html.resto-pouletos .pdi-reservation-title,
html.resto-pouletos .pdi-section-kicker,
html.resto-pouletos .pdi-section-title,
html.resto-pouletos [data-config-text$=".kicker"],
html.resto-pouletos [data-config-text$=".mobileEyebrow"],
html.resto-pouletos [data-config-text$=".mobileSubheading"],
html.resto-pouletos [data-config-text$=".title"],
html.resto-pouletos [data-config-text$="secondaryTitle"],
html.resto-pouletos [data-config-text$='.title'],
html.resto-pouletos [data-config-text$='Eyebrow'],
html.resto-pouletos [data-config-text$='Subheading'],
html.resto-pouletos [data-config-text$='kicker'],
html.resto-pouletos [data-config-text$='subtitle'],
html.resto-pouletos [data-config-text="ctaLabels.legalNotice"],
html.resto-pouletos [data-config-text="ctaLabels.poweredBy"],
html.resto-pouletos [data-config-text="ctaLabels.privacyPolicy"],
html.resto-pouletos [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Pouletos_Braise_Champigny_sur_Marne_France/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #d98827 !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-pouletos .nav_links .text-xs,
html.resto-pouletos .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-pouletos .navbar_logo-link .text-xs,
html.resto-pouletos .navbar_logo-link [data-restaurant-logo-text],
html.resto-pouletos .pdi-co-choice-t,
html.resto-pouletos .pdi-eyebrow,
html.resto-pouletos .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-pouletos .pdi-footer-label,
html.resto-pouletos .pdi-footer-powered a,
html.resto-pouletos .pdi-order-cart-head p,
html.resto-pouletos .pdi-order-total span,
html.resto-pouletos .pdi-pay-brand,
html.resto-pouletos .pdi-pay-line-total,
html.resto-pouletos .pdi-resa-kicker,
html.resto-pouletos .pdi-reservation-kicker,
html.resto-pouletos .pdi-section-kicker,
html.resto-pouletos [data-config-text$=".kicker"],
html.resto-pouletos [data-config-text$=".mobileEyebrow"],
html.resto-pouletos [data-config-text$='Eyebrow'],
html.resto-pouletos [data-config-text$='kicker'],
html.resto-pouletos [data-config-text="ctaLabels.legalNotice"],
html.resto-pouletos [data-config-text="ctaLabels.poweredBy"],
html.resto-pouletos [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Pouletos_Braise_Champigny_sur_Marne_France/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-pouletos #specialites .text-2xl::before, html.resto-pouletos #specialites .text-2xl::after, html.resto-pouletos .heading::before, html.resto-pouletos .heading::after, html.resto-pouletos .hero_heading::before, html.resto-pouletos .hero_heading::after, html.resto-pouletos .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-pouletos .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-pouletos .navbar_logo-link .text-xs::before, html.resto-pouletos .navbar_logo-link .text-xs::after, html.resto-pouletos .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-pouletos .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-pouletos .pdi-about-title::before, html.resto-pouletos .pdi-about-title::after, html.resto-pouletos .pdi-co-choice-t::before, html.resto-pouletos .pdi-co-choice-t::after, html.resto-pouletos .pdi-co-q::before, html.resto-pouletos .pdi-co-q::after, html.resto-pouletos .pdi-cookie-title::before, html.resto-pouletos .pdi-cookie-title::after, html.resto-pouletos .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-pouletos .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-pouletos .pdi-footer-label::before, html.resto-pouletos .pdi-footer-label::after, html.resto-pouletos .pdi-footer-word::before, html.resto-pouletos .pdi-footer-word::after, html.resto-pouletos .pdi-legal-title::before, html.resto-pouletos .pdi-legal-title::after, html.resto-pouletos .pdi-menu-desktop-heading::before, html.resto-pouletos .pdi-menu-desktop-heading::after, html.resto-pouletos .pdi-menu-desktop-title::before, html.resto-pouletos .pdi-menu-desktop-title::after, html.resto-pouletos .pdi-menu-mobile-heading::before, html.resto-pouletos .pdi-menu-mobile-heading::after, html.resto-pouletos .pdi-menu-mobile-subheading::before, html.resto-pouletos .pdi-menu-mobile-subheading::after, html.resto-pouletos .pdi-order-cart-head p::before, html.resto-pouletos .pdi-order-cart-head p::after, html.resto-pouletos .pdi-order-cat-title::before, html.resto-pouletos .pdi-order-cat-title::after, html.resto-pouletos .pdi-order-checkout h2::before, html.resto-pouletos .pdi-order-checkout h2::after, html.resto-pouletos .pdi-order-checkout h3::before, html.resto-pouletos .pdi-order-checkout h3::after, html.resto-pouletos .pdi-order-hero h1::before, html.resto-pouletos .pdi-order-hero h1::after, html.resto-pouletos .pdi-order-success h1::before, html.resto-pouletos .pdi-order-success h1::after, html.resto-pouletos .pdi-order-success h2::before, html.resto-pouletos .pdi-order-success h2::after, html.resto-pouletos .pdi-order-success h3::before, html.resto-pouletos .pdi-order-success h3::after, html.resto-pouletos .pdi-order-total span::before, html.resto-pouletos .pdi-order-total span::after, html.resto-pouletos .pdi-pay-brand::before, html.resto-pouletos .pdi-pay-brand::after, html.resto-pouletos .pdi-pay-line-total::before, html.resto-pouletos .pdi-pay-line-total::after, html.resto-pouletos .pdi-resa-title::before, html.resto-pouletos .pdi-resa-title::after, html.resto-pouletos .pdi-reservation-title::before, html.resto-pouletos .pdi-reservation-title::after, html.resto-pouletos .pdi-section-title::before, html.resto-pouletos .pdi-section-title::after, html.resto-pouletos [data-config-text$=".title"]::before, html.resto-pouletos [data-config-text$=".title"]::after, html.resto-pouletos [data-config-text$="secondaryTitle"]::before, html.resto-pouletos [data-config-text$="secondaryTitle"]::after, html.resto-pouletos [data-config-text$='.title']::before, html.resto-pouletos [data-config-text$='.title']::after, html.resto-pouletos [data-config-text="ctaLabels.poweredBy"]::before, html.resto-pouletos [data-config-text="ctaLabels.poweredBy"]::after, html.resto-pouletos [data-config-text="sections.menuDetails.kicker"]::before, html.resto-pouletos [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }

/* --- redrooster-rabat-maroc-fx.css --- */
/* ---- redrooster : ChatGPT target — fiery molten-ember hero + gold cats + red prices ---- */
html.resto-redrooster .pdi-order-hero h1{
  color:transparent!important;
  background:linear-gradient(180deg,#ffd27a 0%,#ff8a1e 28%,#e8290a 62%,#8f1600 100%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;
  -webkit-text-stroke:1px rgba(38,6,0,.72)!important;
  letter-spacing:.004em!important;
  text-shadow:0 0 18px rgba(255,96,0,.65),0 0 40px rgba(230,40,0,.4),0 2px 3px rgba(0,0,0,.55)!important;
}
html.resto-redrooster .pdi-order-kicker{
  color:#f0b43c!important;letter-spacing:.2em!important;
  text-shadow:0 0 12px rgba(255,110,0,.4),0 1px 2px rgba(0,0,0,.6)!important;
}
html.resto-redrooster .pdi-order-cat-title{
  color:transparent!important;
  background:linear-gradient(180deg,#ffd884 0%,#e9a52f 55%,#b06e12 100%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;
  letter-spacing:.06em!important;
  text-shadow:0 1px 2px rgba(0,0,0,.55),0 0 14px rgba(255,120,0,.25)!important;
}
html.resto-redrooster .pdi-order-row-name{
  color:#f2e6d2!important;font-weight:700!important;letter-spacing:.01em!important;
  text-shadow:0 1px 2px rgba(0,0,0,.6)!important;
}
html.resto-redrooster .pdi-order-row-desc{
  color:#b9a892!important;text-shadow:0 1px 2px rgba(0,0,0,.5)!important;
}
html.resto-redrooster .pdi-order-row-price{
  color:#e5391c!important;font-weight:800!important;letter-spacing:.01em!important;
  text-shadow:0 0 10px rgba(255,80,0,.35),0 1px 2px rgba(0,0,0,.6)!important;
}

/* ---- redrooster-rabat-maroc : TEXTURE-IN-TEXT — image vive dans les lettres + contour sombre #230f08 (recette validee) ---- */
html.resto-redrooster #specialites .text-2xl,
html.resto-redrooster .heading,
html.resto-redrooster .hero_heading,
html.resto-redrooster .nav_links .text-xs,
html.resto-redrooster .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-redrooster .navbar_logo-link .text-xs,
html.resto-redrooster .navbar_logo-link [data-restaurant-logo-text],
html.resto-redrooster .pdi-about-title,
html.resto-redrooster .pdi-co-choice-t,
html.resto-redrooster .pdi-co-q,
html.resto-redrooster .pdi-cookie-title,
html.resto-redrooster .pdi-eyebrow,
html.resto-redrooster .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-redrooster .pdi-footer-label,
html.resto-redrooster .pdi-footer-powered a,
html.resto-redrooster .pdi-footer-word,
html.resto-redrooster .pdi-legal-title,
html.resto-redrooster .pdi-menu-desktop-heading,
html.resto-redrooster .pdi-menu-desktop-title,
html.resto-redrooster .pdi-menu-mobile-heading,
html.resto-redrooster .pdi-menu-mobile-subheading,
html.resto-redrooster .pdi-menu-mobile-title,
html.resto-redrooster .pdi-order-cart-head p,
html.resto-redrooster .pdi-order-cat-title,
html.resto-redrooster .pdi-order-checkout h2,
html.resto-redrooster .pdi-order-checkout h3,
html.resto-redrooster .pdi-order-hero h1,
html.resto-redrooster .pdi-order-success h1,
html.resto-redrooster .pdi-order-success h2,
html.resto-redrooster .pdi-order-success h3,
html.resto-redrooster .pdi-order-total span,
html.resto-redrooster .pdi-pay-brand,
html.resto-redrooster .pdi-pay-line-total,
html.resto-redrooster .pdi-resa-kicker,
html.resto-redrooster .pdi-resa-title,
html.resto-redrooster .pdi-reservation-kicker,
html.resto-redrooster .pdi-reservation-title,
html.resto-redrooster .pdi-section-kicker,
html.resto-redrooster .pdi-section-title,
html.resto-redrooster [data-config-text$=".kicker"],
html.resto-redrooster [data-config-text$=".mobileEyebrow"],
html.resto-redrooster [data-config-text$=".mobileSubheading"],
html.resto-redrooster [data-config-text$=".title"],
html.resto-redrooster [data-config-text$="secondaryTitle"],
html.resto-redrooster [data-config-text$='.title'],
html.resto-redrooster [data-config-text$='Eyebrow'],
html.resto-redrooster [data-config-text$='Subheading'],
html.resto-redrooster [data-config-text$='kicker'],
html.resto-redrooster [data-config-text$='subtitle'],
html.resto-redrooster [data-config-text="ctaLabels.legalNotice"],
html.resto-redrooster [data-config-text="ctaLabels.poweredBy"],
html.resto-redrooster [data-config-text="ctaLabels.privacyPolicy"],
html.resto-redrooster [data-config-text="sections.menuDetails.kicker"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Redrooster_Rabat_Maroc/font_texture_v4.jpg") !important;
  background-size: 300px auto !important; background-position: center !important; background-repeat: repeat !important;
  background-clip: text !important; -webkit-background-clip: text !important;
  color: transparent !important; -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px #f27933 !important; paint-order: stroke fill !important;
  text-shadow: none !important;
  filter: none !important;
}
/* petits textes (kickers, footer, nav, panier) : variante CLAIRE de la texture, tuile fine,
   ZERO stroke — sur des glyphes de 12-16px le contour + l'anti-aliasing mangent la luminosite */
html.resto-redrooster .nav_links .text-xs,
html.resto-redrooster .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs,
html.resto-redrooster .navbar_logo-link .text-xs,
html.resto-redrooster .navbar_logo-link [data-restaurant-logo-text],
html.resto-redrooster .pdi-co-choice-t,
html.resto-redrooster .pdi-eyebrow,
html.resto-redrooster .pdi-footer-copyright [data-restaurant-logo-text],
html.resto-redrooster .pdi-footer-label,
html.resto-redrooster .pdi-footer-powered a,
html.resto-redrooster .pdi-order-cart-head p,
html.resto-redrooster .pdi-order-total span,
html.resto-redrooster .pdi-pay-brand,
html.resto-redrooster .pdi-pay-line-total,
html.resto-redrooster .pdi-resa-kicker,
html.resto-redrooster .pdi-reservation-kicker,
html.resto-redrooster .pdi-section-kicker,
html.resto-redrooster [data-config-text$=".kicker"],
html.resto-redrooster [data-config-text$=".mobileEyebrow"],
html.resto-redrooster [data-config-text$='Eyebrow'],
html.resto-redrooster [data-config-text$='kicker'],
html.resto-redrooster [data-config-text="ctaLabels.legalNotice"],
html.resto-redrooster [data-config-text="ctaLabels.poweredBy"],
html.resto-redrooster [data-config-text="ctaLabels.privacyPolicy"] {
  background-image: url("https://dineora.b-cdn.net/site-assets/Redrooster_Rabat_Maroc/font_texture_v4b.jpg") !important;
  background-size: 120px auto !important;
  -webkit-text-stroke: 0px transparent !important;
}
html.resto-redrooster #specialites .text-2xl::before, html.resto-redrooster #specialites .text-2xl::after, html.resto-redrooster .heading::before, html.resto-redrooster .heading::after, html.resto-redrooster .hero_heading::before, html.resto-redrooster .hero_heading::after, html.resto-redrooster .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::before, html.resto-redrooster .navbar:has(.menu-button.w--open) .navbar_logo-link .text-xs::after, html.resto-redrooster .navbar_logo-link .text-xs::before, html.resto-redrooster .navbar_logo-link .text-xs::after, html.resto-redrooster .navbar_logo-link [data-restaurant-logo-text]::before, html.resto-redrooster .navbar_logo-link [data-restaurant-logo-text]::after, html.resto-redrooster .pdi-about-title::before, html.resto-redrooster .pdi-about-title::after, html.resto-redrooster .pdi-co-choice-t::before, html.resto-redrooster .pdi-co-choice-t::after, html.resto-redrooster .pdi-co-q::before, html.resto-redrooster .pdi-co-q::after, html.resto-redrooster .pdi-cookie-title::before, html.resto-redrooster .pdi-cookie-title::after, html.resto-redrooster .pdi-footer-copyright [data-restaurant-logo-text]::before, html.resto-redrooster .pdi-footer-copyright [data-restaurant-logo-text]::after, html.resto-redrooster .pdi-footer-label::before, html.resto-redrooster .pdi-footer-label::after, html.resto-redrooster .pdi-footer-word::before, html.resto-redrooster .pdi-footer-word::after, html.resto-redrooster .pdi-legal-title::before, html.resto-redrooster .pdi-legal-title::after, html.resto-redrooster .pdi-menu-desktop-heading::before, html.resto-redrooster .pdi-menu-desktop-heading::after, html.resto-redrooster .pdi-menu-desktop-title::before, html.resto-redrooster .pdi-menu-desktop-title::after, html.resto-redrooster .pdi-menu-mobile-heading::before, html.resto-redrooster .pdi-menu-mobile-heading::after, html.resto-redrooster .pdi-menu-mobile-subheading::before, html.resto-redrooster .pdi-menu-mobile-subheading::after, html.resto-redrooster .pdi-order-cart-head p::before, html.resto-redrooster .pdi-order-cart-head p::after, html.resto-redrooster .pdi-order-cat-title::before, html.resto-redrooster .pdi-order-cat-title::after, html.resto-redrooster .pdi-order-checkout h2::before, html.resto-redrooster .pdi-order-checkout h2::after, html.resto-redrooster .pdi-order-checkout h3::before, html.resto-redrooster .pdi-order-checkout h3::after, html.resto-redrooster .pdi-order-hero h1::before, html.resto-redrooster .pdi-order-hero h1::after, html.resto-redrooster .pdi-order-success h1::before, html.resto-redrooster .pdi-order-success h1::after, html.resto-redrooster .pdi-order-success h2::before, html.resto-redrooster .pdi-order-success h2::after, html.resto-redrooster .pdi-order-success h3::before, html.resto-redrooster .pdi-order-success h3::after, html.resto-redrooster .pdi-order-total span::before, html.resto-redrooster .pdi-order-total span::after, html.resto-redrooster .pdi-pay-brand::before, html.resto-redrooster .pdi-pay-brand::after, html.resto-redrooster .pdi-pay-line-total::before, html.resto-redrooster .pdi-pay-line-total::after, html.resto-redrooster .pdi-resa-title::before, html.resto-redrooster .pdi-resa-title::after, html.resto-redrooster .pdi-reservation-title::before, html.resto-redrooster .pdi-reservation-title::after, html.resto-redrooster .pdi-section-title::before, html.resto-redrooster .pdi-section-title::after, html.resto-redrooster [data-config-text$=".title"]::before, html.resto-redrooster [data-config-text$=".title"]::after, html.resto-redrooster [data-config-text$="secondaryTitle"]::before, html.resto-redrooster [data-config-text$="secondaryTitle"]::after, html.resto-redrooster [data-config-text$='.title']::before, html.resto-redrooster [data-config-text$='.title']::after, html.resto-redrooster [data-config-text="ctaLabels.poweredBy"]::before, html.resto-redrooster [data-config-text="ctaLabels.poweredBy"]::after, html.resto-redrooster [data-config-text="sections.menuDetails.kicker"]::before, html.resto-redrooster [data-config-text="sections.menuDetails.kicker"]::after { content: none !important; display: none !important; }
/* ===== DINEORA FONT-FX — END ===== */
