{"id":5012,"date":"2022-10-26T21:06:33","date_gmt":"2022-10-27T01:06:33","guid":{"rendered":"https:\/\/jacklecoq.com\/contact\/"},"modified":"2026-06-08T14:49:02","modified_gmt":"2026-06-08T18:49:02","slug":"contact-2","status":"publish","type":"page","link":"https:\/\/jacklecoq.com\/en\/contact-2\/","title":{"rendered":"Contact our restaurants"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container fusion-parallax-none gradient-container-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"background-color: rgba(255,255,255,0);background-image: url(&quot;https:\/\/jacklecoq.com\/wp-content\/uploads\/revslider\/commande\/BACKGROUND.png&quot;);background-position: center center;background-repeat: no-repeat;border-width: 0px 0px 0px 0px;border-color:var(--awb-color3);border-style:solid;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start\" style=\"max-width:1352px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\" style=\"background-position:left top;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;padding: 0px 0px 0px 0px;\"><style type=\"text\/css\">@media only screen and (max-width:1024px) {.fusion-title.fusion-title-1{margin-top:10px!important; margin-right:0px!important;margin-bottom:15px!important;margin-left:0px!important;}}@media only screen and (max-width:640px) {.fusion-title.fusion-title-1{margin-top:10px!important; margin-right:0px!important;margin-bottom:10px!important; margin-left:0px!important;}}<\/style><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-one\" style=\"margin-top:10px;margin-right:0px;margin-bottom:15px;margin-left:0px;\"><h1 class=\"title-heading-center fusion-responsive-typography-calculated\" style=\"margin:0;color:#106d86;--fontSize:64;line-height:var(--awb-typography1-line-height);\">Contact us<\/h1><\/div><\/div><style type=\"text\/css\">.fusion-body .fusion-builder-column-0{width:100% !important;margin-top : 0px;margin-bottom : 0px;}.fusion-builder-column-0 > .fusion-column-wrapper {padding-top : 0px !important;padding-right : 0px !important;margin-right : 0%;padding-bottom : 0px !important;padding-left : 0px !important;margin-left : 0%;}@media only screen and (max-width:1024px) {.fusion-body .fusion-builder-column-0{width:100% !important;order : 0;}.fusion-builder-column-0 > .fusion-column-wrapper {margin-right : 0%;margin-left : 0%;}}@media only screen and (max-width:640px) {.fusion-body .fusion-builder-column-0{width:100% !important;order : 0;}.fusion-builder-column-0 > .fusion-column-wrapper {margin-right : 1.92%;margin-left : 1.92%;}}<\/style><\/div><\/div><style type=\"text\/css\">.fusion-body .fusion-flex-container.fusion-builder-row-1{ padding-top : 15px;margin-top : 0;padding-right : 0px;padding-bottom : 0px;margin-bottom : 0px;padding-left : 0px;}@media only screen and (max-width:1024px) {.fusion-body .fusion-flex-container.fusion-builder-row-1{ padding-right : 30px;padding-left : 30px;}}<\/style><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container fusion-parallax-fixed gradient-container-2 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"background-color: #f6b09e;background-image: url(&quot;https:\/\/jacklecoq.com\/wp-content\/uploads\/2022\/10\/bleu-rose-motif.png&quot;);background-position: center center;background-repeat: no-repeat;border-width: 0px 0px 0px 0px;border-color:var(--awb-color3);border-style:solid;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;background-attachment:fixed;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start\" style=\"max-width:1352px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-flex-start\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\" style=\"background-position:left top;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;background-color:#abd8ca;padding: 0px 0px 0px 0px;\"><!-- JLC Contact Form v3 ENG-->\n\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<style>\n  @import url(\"https:\/\/fonts.googleapis.com\/css2?family=Corben:wght@700&family=Inter:wght@400;500;600;700;800;900&family=Oswald:wght@400;500;600;700&display=swap\");\n\n  \/* \u2500\u2500\u2500 BASE \/ CLASSIQUE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper {\n    --jlc-yellow:      #ffc52d;\n    --jlc-yellow-dark: #e09800;\n    --jlc-red:         #d42b2b;\n    --jlc-ink:         #141414;\n    --jlc-muted:       rgba(20,20,20,.64);\n    --jlc-soft:        rgba(255,197,45,.12);\n    --jlc-card:        #ffffff;\n    --jlc-border:      #1a1a1a;\n    --jlc-border-lt:   rgba(26,26,26,.18);\n    --jlc-radius:      18px;\n    --jlc-focus:       rgba(255,197,45,.42);\n    --jlc-shadow:      8px 8px 0 rgba(0,0,0,.15);\n    --jlc-header-bg:   linear-gradient(135deg,rgba(255,197,45,.26) 0%,rgba(255,247,219,.96) 100%);    --jlc-progress:    linear-gradient(90deg,#ffc52d,#f6b09d,#106d86,#9dd6c7,#ffc52d);\n    --jlc-choice-bg:   rgba(20,20,20,.05);\n    --jlc-sel-bg:      #ffc52d;\n    --jlc-sel-text:    #141414;\n    --jlc-btn-bg:      #141414;\n    --jlc-btn-text:    #ffc52d;\n    --jlc-phone-bg:    #141414;\n    --jlc-phone-text:  #ffffff;\n    --jlc-pill-bg:     #ffc52d;\n    --jlc-pill-text:   #141414;\n\n    width: 100%;\n    max-width: 960px;\n    margin: 0 auto;\n    padding: 20px;\n    color: var(--jlc-ink);\n    font-family: \"Inter\", Arial, Helvetica, sans-serif;\n    box-sizing: border-box;\n    overflow-x: hidden;\n  }\n  .jlc-form-wrapper *,\n  .jlc-form-wrapper *::before,\n  .jlc-form-wrapper *::after { box-sizing: border-box; }\n\n  .jlc-form-wrapper .jlc-shell,\n  .jlc-form-wrapper .jlc-header,\n  .jlc-form-wrapper .jlc-brand-panel,\n  .jlc-form-wrapper .jlc-form-inner,\n  .jlc-form-wrapper .jlc-stage,\n  .jlc-form-wrapper .jlc-step-panel,\n  .jlc-form-wrapper .jlc-section,\n  .jlc-form-wrapper .jlc-block-message,\n  .jlc-form-wrapper .jlc-field,\n  .jlc-form-wrapper .jlc-choice-card,\n  .jlc-form-wrapper .jlc-phone-card {\n    min-width: 0;\n  }\n\n  \/* \u2500\u2500\u2500 THEME: NUIT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper.jlc-nuit {\n    --jlc-card:       #111111;\n    --jlc-ink:        #f5f0e8;\n    --jlc-muted:      rgba(245,240,232,.58);\n    --jlc-soft:       rgba(255,197,45,.10);\n    --jlc-border:     rgba(255,197,45,.36);\n    --jlc-border-lt:  rgba(255,197,45,.18);\n    --jlc-focus:      rgba(255,197,45,.32);\n    --jlc-shadow:     8px 8px 0 rgba(255,197,45,.14);\n    --jlc-header-bg:  linear-gradient(145deg,#0c0c0c 0%,#1a1200 65%,#2a1e00 100%);    --jlc-choice-bg:  rgba(255,255,255,.06);\n    --jlc-sel-bg:     #ffc52d;\n    --jlc-sel-text:   #111;\n    --jlc-btn-bg:     #ffc52d;\n    --jlc-btn-text:   #111;\n    --jlc-phone-bg:   rgba(255,197,45,.14);\n    --jlc-phone-text: #f5f0e8;\n    --jlc-pill-bg:    #ffc52d;\n    --jlc-pill-text:  #111;\n  }\n\n  \/* \u2500\u2500\u2500 THEME: PIQUANT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper.jlc-piquant {\n    --jlc-yellow:      #ff5c1a;\n    --jlc-yellow-dark: #d44000;\n    --jlc-red:         #c81d25;\n    --jlc-focus:       rgba(200,29,37,.28);\n    --jlc-shadow:      8px 8px 0 rgba(200,29,37,.18);\n    --jlc-soft:        rgba(200,29,37,.07);\n    --jlc-header-bg:   linear-gradient(135deg,rgba(255,92,26,.18) 0%,rgba(255,244,238,.96) 100%);    --jlc-progress:    linear-gradient(90deg,#ff5c1a,#c81d25,#ff8a3d,#c81d25,#ff5c1a);\n    --jlc-sel-bg:      #c81d25;\n    --jlc-sel-text:    #ffffff;\n    --jlc-btn-bg:      #c81d25;\n    --jlc-btn-text:    #ffffff;\n    --jlc-phone-bg:    #1a0000;\n    --jlc-phone-text:  #ffffff;\n    --jlc-pill-bg:     #ff5c1a;\n    --jlc-pill-text:   #fff;\n  }\n\n  \/* \u2500\u2500\u2500 SHELL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-shell {\n    overflow: hidden;\n    background: var(--jlc-card);\n    border: 3px solid var(--jlc-border);\n    border-radius: var(--jlc-radius);\n    box-shadow: var(--jlc-shadow);\n  }\n\n  \/* \u2500\u2500\u2500 HEADER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-header {\n    background: var(--jlc-header-bg);\n    border-bottom: 3px solid var(--jlc-border);\n  }\n  .jlc-form-wrapper .jlc-brand-panel {\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    gap: 18px;\n    padding: 22px 26px;\n  }\n  .jlc-form-wrapper .jlc-brand-row {\n    display: flex;\n    align-items: center;\n    gap: 14px;\n    min-width: 0;\n  }\n  .jlc-form-wrapper .jlc-brand-row > div { min-width: 0; }\n  .jlc-form-wrapper .jlc-kicker {\n    display: block;\n    margin-bottom: 4px;\n    color: var(--jlc-yellow);\n    font-size: 11px;\n    font-weight: 800;\n    letter-spacing: .08em;\n    text-transform: uppercase;\n  }\n  .jlc-form-wrapper .jlc-title {\n    margin: 0;\n    font-family: \"Corben\", Arial, Helvetica, sans-serif;\n    font-size: 26px;\n    font-weight: 900;\n    line-height: 1.1;\n    color: var(--jlc-ink);\n  }\n  .jlc-form-wrapper .jlc-progress-text {\n    margin: 5px 0 0;\n    font-size: 12px;\n    font-weight: 700;\n    color: var(--jlc-muted);\n  }\n  .jlc-form-wrapper .jlc-progress-track {\n    height: 8px;\n    overflow: hidden;\n    border-radius: 999px;\n    background: rgba(0,0,0,.12);\n  }\n  .jlc-nuit .jlc-progress-track { background: rgba(255,255,255,.12); }\n  .jlc-form-wrapper .jlc-progress-bar {\n    width: 0%;\n    height: 100%;\n    border-radius: 999px;\n    background: var(--jlc-progress);\n    background-size: 200% 100%;\n    animation: jlcFlow 3.4s linear infinite;\n    transition: width .28s ease;\n  }\n  @keyframes jlcFlow { from { background-position: 0% 0; } to { background-position: 200% 0; } }\n  @media (prefers-reduced-motion: reduce) { .jlc-form-wrapper .jlc-progress-bar { animation: none; } }\n\n\n  \/* \u2500\u2500\u2500 FORM BODY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-form-inner {\n    padding: 28px;\n    background: var(--jlc-card);\n  }\n\n  .jlc-form-wrapper .jlc-ticket-strip {\n    display: none;\n    margin-bottom: 18px;\n    padding: 14px 16px;\n    border: 1.5px solid var(--jlc-border-lt);\n    border-radius: var(--jlc-radius);\n    background: var(--jlc-soft);\n  }\n  .jlc-form-wrapper .jlc-ticket-strip.is-visible { display: block; }\n  .jlc-form-wrapper .jlc-ticket-strip h2 { margin: 0 0 8px; font-size: 13px; font-weight: 900; }\n\n  \/* \u2500\u2500\u2500 STAGE \/ STEP ANIMATION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-stage {\n    position: relative;\n    min-height: 400px;\n  }\n  .jlc-form-wrapper .jlc-step-panel {\n    position: absolute;\n    inset: 0;\n    visibility: hidden;\n    opacity: 0;\n    pointer-events: none;\n    transform: translateX(24px);\n  }\n  .jlc-form-wrapper .jlc-step-panel.is-before { transform: translateX(-24px); }\n  .jlc-form-wrapper .jlc-step-panel.is-active {\n    position: relative;\n    visibility: visible;\n    opacity: 1;\n    pointer-events: auto;\n    transform: translateX(0);\n  }\n  @media (prefers-reduced-motion: no-preference) {\n    .jlc-form-wrapper .jlc-step-panel {\n      transition: opacity .22s ease, transform .22s ease, visibility .22s ease;\n    }\n  }\n\n  .jlc-form-wrapper .jlc-step-title {\n    margin: 0;\n    font-family: \"Corben\", Arial, Helvetica, sans-serif;\n    font-size: 28px;\n    font-weight: 900;\n    line-height: 1.14;\n    color: var(--jlc-ink);\n  }\n  .jlc-form-wrapper .jlc-step-helper {\n    max-width: 680px;\n    margin: 8px 0 24px;\n    color: var(--jlc-muted);\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.55;\n  }\n\n  \/* \u2500\u2500\u2500 CHOICE CARDS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-choice-grid {\n    display: grid;\n    grid-template-columns: repeat(2,minmax(0,1fr));\n    gap: 12px;\n  }\n  .jlc-form-wrapper .jlc-choice-card,\n  .jlc-form-wrapper .jlc-phone-card {\n    position: relative;\n    display: flex;\n    width: 100%;\n    min-height: 120px;\n    flex-direction: column;\n    justify-content: center;\n    gap: 8px;\n    padding: 18px;\n    border: 2px solid var(--jlc-border-lt);\n    border-radius: var(--jlc-radius);\n    background: var(--jlc-choice-bg);\n    color: var(--jlc-ink);\n    cursor: pointer;\n    transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;\n  }\n  .jlc-form-wrapper .jlc-choice-card:hover,\n  .jlc-form-wrapper .jlc-choice-card:focus-within {\n    border-color: var(--jlc-yellow);\n    box-shadow: 4px 4px 0 rgba(0,0,0,.10);\n    transform: translateY(-2px);\n  }\n  .jlc-form-wrapper .jlc-choice-card input[type=\"radio\"] {\n    position: absolute; opacity: 0; pointer-events: none;\n  }\n  .jlc-form-wrapper .jlc-choice-card.is-selected {\n    background: var(--jlc-sel-bg);\n    border-color: var(--jlc-sel-bg);\n    color: var(--jlc-sel-text);\n    box-shadow: 6px 6px 0 rgba(0,0,0,.13);\n  }\n  .jlc-form-wrapper .jlc-choice-title {\n    display: block;\n    font-family: \"Oswald\", Arial, Helvetica, sans-serif;\n    font-size: 17px;\n    font-weight: 700;\n    line-height: 1.2;\n    overflow-wrap: anywhere;\n  }\n  .jlc-form-wrapper .jlc-choice-text {\n    display: block;\n    font-size: 13px;\n    font-weight: 600;\n    line-height: 1.45;\n    color: var(--jlc-muted);\n    overflow-wrap: anywhere;\n  }\n  .jlc-form-wrapper .jlc-choice-card.is-selected .jlc-choice-text {\n    color: currentColor; opacity: .82;\n  }\n\n  \/* Phone card *\/\n  .jlc-form-wrapper .jlc-phone-card {\n    background: var(--jlc-choice-bg);\n    color: var(--jlc-ink);\n    border-color: var(--jlc-border-lt);\n    cursor: default;\n  }\n  .jlc-form-wrapper .jlc-phone-card .jlc-choice-text { color: var(--jlc-muted); }\n  .jlc-form-wrapper .jlc-phone-link {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    max-width: 100%;\n    min-height: 44px;\n    margin-top: 8px;\n    padding: 10px 14px;\n    border-radius: 12px;\n    background: var(--jlc-pill-bg);\n    color: var(--jlc-pill-text);\n    font-size: 15px;\n    font-weight: 900;\n    line-height: 1.2;\n    text-align: center;\n    text-decoration: none;\n    overflow-wrap: anywhere;\n    transition: filter .14s ease, transform .14s ease;\n  }\n  .jlc-form-wrapper .jlc-phone-link:hover { filter: brightness(1.06); transform: translateY(-1px); }\n\n  \/* Block message *\/\n  .jlc-form-wrapper .jlc-block-message {\n    padding: 22px;\n    border: 1.5px solid var(--jlc-border-lt);\n    border-radius: var(--jlc-radius);\n    background: var(--jlc-soft);\n  }\n\n  \/* \u2500\u2500\u2500 SECTIONS \/ FIELDS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-section {\n    margin-bottom: 16px;\n    padding: 16px;\n    border: 1.5px solid var(--jlc-border-lt);\n    border-radius: var(--jlc-radius);\n    background: var(--jlc-soft);\n  }\n  .jlc-form-wrapper .jlc-grid { display: grid; gap: 14px; }\n  .jlc-form-wrapper .jlc-two { grid-template-columns: repeat(2,minmax(0,1fr)); }\n  .jlc-form-wrapper .jlc-field { display: grid; gap: 6px; }\n\n  .jlc-form-wrapper .jlc-label,\n  .jlc-form-wrapper label.jlc-label {\n    margin: 0;\n    font-family: \"Oswald\", Arial, Helvetica, sans-serif;\n    color: var(--jlc-muted);\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: .06em;\n    text-transform: uppercase;\n  }\n  .jlc-form-wrapper input,\n  .jlc-form-wrapper select,\n  .jlc-form-wrapper textarea {\n    width: 100%;\n    min-height: 50px;\n    padding: 12px 14px;\n    border: 2px solid var(--jlc-border-lt);\n    border-radius: 14px;\n    outline: none;\n    background: var(--jlc-card);\n    color: var(--jlc-ink);\n    font: inherit;\n    font-size: 15px;\n    font-weight: 600;\n    transition: border-color .16s ease, box-shadow .16s ease;\n  }\n  .jlc-form-wrapper select {\n    appearance: none;\n    background-image:\n      linear-gradient(45deg,transparent 50%,currentColor 50%),\n      linear-gradient(135deg,currentColor 50%,transparent 50%);\n    background-position: calc(100% - 18px) 52%, calc(100% - 12px) 52%;\n    background-size: 6px 6px, 6px 6px;\n    background-repeat: no-repeat;\n    padding-right: 40px;\n  }\n  .jlc-form-wrapper input:focus,\n  .jlc-form-wrapper select:focus,\n  .jlc-form-wrapper textarea:focus {\n    border-color: var(--jlc-yellow);\n    box-shadow: 0 0 0 4px var(--jlc-focus);\n  }\n  .jlc-form-wrapper input[readonly] { color: var(--jlc-muted); cursor: not-allowed; }\n  .jlc-form-wrapper input[type=\"datetime-local\"] { cursor: pointer; }\n  .jlc-form-wrapper textarea { min-height: 180px; resize: vertical; line-height: 1.55; }\n  .jlc-form-wrapper input[type=\"file\"] { padding: 11px; min-height: 0; overflow: hidden; }\n  .jlc-form-wrapper input[type=\"file\"]::file-selector-button {\n    margin-right: 12px;\n    padding: 8px 12px;\n    border: 1px solid var(--jlc-border-lt);\n    border-radius: 10px;\n    background: var(--jlc-card);\n    color: var(--jlc-ink);\n    font: inherit;\n    font-size: 13px;\n    font-weight: 800;\n    cursor: pointer;\n  }\n  .jlc-form-wrapper .jlc-file-list {\n    display: grid;\n    gap: 8px;\n    margin-top: 12px;\n  }\n  .jlc-form-wrapper .jlc-file-item {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    min-height: 46px;\n    padding: 10px 14px;\n    border: 1.5px solid var(--jlc-border-lt);\n    border-radius: 14px;\n    background: var(--jlc-choice-bg);\n  }\n  .jlc-form-wrapper .jlc-file-name {\n    min-width: 0;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    font-size: 13px;\n    font-weight: 700;\n  }\n  .jlc-form-wrapper .jlc-file-remove {\n    flex: 0 0 auto;\n    min-height: 34px;\n    padding: 7px 14px;\n    font-size: 12px;\n  }\n  .jlc-form-wrapper .jlc-hint,\n  .jlc-form-wrapper .jlc-filehint,\n  .jlc-form-wrapper .jlc-counter {\n    margin: 0;\n    color: var(--jlc-muted);\n    font-size: 12px;\n    font-weight: 600;\n    line-height: 1.5;\n  }\n  .jlc-form-wrapper .jlc-counter { text-align: right; }\n  .jlc-form-wrapper .jlc-field-error {\n    min-height: 16px;\n    color: var(--jlc-red);\n    font-size: 12px;\n    font-weight: 800;\n  }\n  .jlc-form-wrapper .jlc-invalid {\n    border-color: var(--jlc-red) !important;\n    background: rgba(212,43,43,.06) !important;\n    box-shadow: 0 0 0 4px rgba(212,43,43,.12) !important;\n  }\n\n  \/* Branch *\/\n  .jlc-form-wrapper .jlc-branch-lookup {\n    display: grid;\n    grid-template-columns: minmax(0,1fr) auto;\n    gap: 10px;\n  }\n  .jlc-form-wrapper .jlc-radio-results { display: grid; gap: 8px; margin-top: 10px; }\n  .jlc-form-wrapper .jlc-radio-row {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    min-height: 48px;\n    padding: 10px 14px;\n    border: 1.5px solid var(--jlc-border-lt);\n    border-radius: 14px;\n    background: var(--jlc-choice-bg);\n    color: var(--jlc-ink);\n    font-size: 14px;\n    font-weight: 700;\n    cursor: pointer;\n    overflow-wrap: anywhere;\n  }\n  .jlc-form-wrapper .jlc-radio-row input {\n    width: 18px; flex: 0 0 18px; min-height: 18px; height: 18px;\n    accent-color: var(--jlc-yellow);\n  }\n\n  \/* \u2500\u2500\u2500 ACTIONS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-actions {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin-top: 24px;\n    padding-top: 20px;\n    border-top: 1.5px solid var(--jlc-border-lt);\n  }\n  .jlc-form-wrapper .jlc-actions-right { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }\n  .jlc-form-wrapper .jlc-inline-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }\n\n  .jlc-form-wrapper button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    max-width: 100%;\n    min-height: 50px;\n    padding: 12px 22px;\n    border: none;\n    border-radius: 14px;\n    appearance: none;\n    background: var(--jlc-btn-bg);\n    color: var(--jlc-btn-text);\n    font-family: \"Corben\", Arial, Helvetica, sans-serif;\n    font-size: 14px;\n    font-weight: 900;\n    line-height: 1.2;\n    text-align: center;\n    white-space: normal;\n    cursor: pointer;\n    transition: transform .14s ease, filter .14s ease;\n  }\n  .jlc-form-wrapper button:hover { transform: translateY(-2px); filter: brightness(1.06); }\n  .jlc-form-wrapper button:disabled { opacity: .42; cursor: not-allowed; transform: none; filter: grayscale(.35); }\n  .jlc-form-wrapper .jlc-ghost {\n    background: var(--jlc-choice-bg);\n    color: var(--jlc-ink);\n    border: 1.5px solid var(--jlc-border-lt);\n  }\n\n  \/* \u2500\u2500\u2500 CAPTCHA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-captcha { display: grid; gap: 8px; width: 100%; max-width: 360px; margin-top: 16px; overflow: hidden; }\n  .jlc-form-wrapper .jlc-captcha.jlc-invalid {\n    padding: 12px;\n    border: 1.5px dashed var(--jlc-red);\n    border-radius: var(--jlc-radius);\n  }\n\n  \/* \u2500\u2500\u2500 ERROR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-error {\n    display: none;\n    margin-top: 14px;\n    padding: 12px 15px;\n    border: 1.5px solid rgba(212,43,43,.28);\n    border-radius: var(--jlc-radius);\n    background: rgba(212,43,43,.07);\n    color: var(--jlc-ink);\n    font-size: 13px;\n    font-weight: 700;\n  }\n\n  \/* \u2500\u2500\u2500 SUCCESS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-success-screen {\n    display: none;\n    min-height: 440px;\n    padding: 44px 24px;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    background: var(--jlc-card);\n  }\n  .jlc-form-wrapper .jlc-success-screen.is-visible { display: flex; }\n  .jlc-form-wrapper .jlc-success-inner { max-width: 600px; }\n  .jlc-form-wrapper .jlc-success-title { margin: 0 0 10px; font-family: \"Corben\", Arial, Helvetica, sans-serif; font-size: 30px; font-weight: 900; color: var(--jlc-ink); }\n  .jlc-form-wrapper .jlc-success-copy { margin: 0 0 22px; color: var(--jlc-muted); font-size: 15px; font-weight: 600; line-height: 1.6; }\n  .jlc-form-wrapper .jlc-ticket-badge {\n    display: none;\n    width: max-content; max-width: 100%;\n    margin: 0 auto 16px;\n    padding: 8px 16px;\n    border-radius: 999px;\n    background: var(--jlc-pill-bg);\n    color: var(--jlc-pill-text);\n    font-size: 13px; font-weight: 900;\n  }\n  .jlc-form-wrapper .jlc-ticket-badge.is-visible { display: block; }\n\n  \/* \u2500\u2500\u2500 TOAST \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-toast {\n    position: fixed; left: 50%; bottom: 20px; z-index: 9999;\n    max-width: calc(100% - 32px);\n    padding: 12px 18px;\n    border-radius: 12px;\n    background: #111; color: #fff;\n    font-size: 13px; font-weight: 800;\n    opacity: 0;\n    transform: translate(-50%,14px);\n    pointer-events: none;\n    transition: opacity .18s ease, transform .18s ease;\n  }\n  .jlc-form-wrapper .jlc-toast.is-visible { opacity: 1; transform: translate(-50%,0); }\n\n  \/* \u2500\u2500\u2500 UTILITIES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  .jlc-form-wrapper .jlc-hidden { display: none !important; }\n  .jlc-form-wrapper .jlc-hp {\n    position: absolute; left: -9999px; top: -9999px;\n    width: 1px; height: 1px; overflow: hidden;\n  }\n\n  \/* \u2500\u2500\u2500 RESPONSIVE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  @media (max-width: 820px) {\n    .jlc-form-wrapper { padding: 0; }\n    .jlc-form-wrapper .jlc-header { grid-template-columns: 1fr; min-height: 0; }\n    .jlc-form-wrapper .jlc-brand-panel { padding: 16px 18px; }\n    .jlc-form-wrapper .jlc-form-inner { padding: 18px 14px; }\n    .jlc-form-wrapper .jlc-stage { min-height: 480px; }\n    .jlc-form-wrapper .jlc-step-title { font-size: 22px; }\n    .jlc-form-wrapper .jlc-step-helper { font-size: 13px; }\n    .jlc-form-wrapper .jlc-choice-grid,\n    .jlc-form-wrapper .jlc-two,\n    .jlc-form-wrapper .jlc-branch-lookup { grid-template-columns: 1fr; }\n    .jlc-form-wrapper .jlc-choice-card,\n    .jlc-form-wrapper .jlc-phone-card { min-height: 96px; }\n    .jlc-form-wrapper .jlc-actions,\n    .jlc-form-wrapper .jlc-actions-right,\n    .jlc-form-wrapper .jlc-inline-actions { flex-direction: column; align-items: stretch; width: 100%; }\n    .jlc-form-wrapper button { width: 100%; }\n    .jlc-form-wrapper .jlc-phone-link { width: 100%; }\n    .jlc-form-wrapper .jlc-title { font-size: 20px; }\n  }\n\n  @media (max-width: 480px) {\n    .jlc-form-wrapper .jlc-shell {\n      border-width: 0;\n      border-radius: 0;\n      box-shadow: none;\n    }\n    .jlc-form-wrapper .jlc-brand-panel { padding: 14px; gap: 12px; }\n    .jlc-form-wrapper .jlc-form-inner { padding: 16px 12px; }\n    .jlc-form-wrapper .jlc-stage { min-height: 390px; }\n    .jlc-form-wrapper .jlc-step-title { font-size: 20px; }\n    .jlc-form-wrapper .jlc-step-helper { margin: 8px 0 18px; }\n    .jlc-form-wrapper input,\n    .jlc-form-wrapper select,\n    .jlc-form-wrapper textarea { font-size: 16px; }\n    .jlc-form-wrapper .jlc-choice-card,\n    .jlc-form-wrapper .jlc-phone-card {\n      min-height: 80px;\n      padding: 14px;\n      gap: 6px;\n      border-radius: 14px;\n    }\n    .jlc-form-wrapper .jlc-choice-title { font-size: 16px; }\n    .jlc-form-wrapper .jlc-choice-text { font-size: 12px; }\n    .jlc-form-wrapper .jlc-section,\n    .jlc-form-wrapper .jlc-block-message { padding: 14px; }\n    .jlc-form-wrapper input[type=\"file\"] {\n      min-height: auto;\n      padding: 10px;\n      font-size: 14px;\n    }\n    .jlc-form-wrapper input[type=\"file\"]::file-selector-button {\n      width: 100%;\n      margin: 0 0 8px;\n    }\n    .jlc-form-wrapper .jlc-file-item {\n      align-items: stretch;\n      flex-direction: column;\n      gap: 8px;\n    }\n    .jlc-form-wrapper .jlc-file-name {\n      white-space: normal;\n      overflow-wrap: anywhere;\n    }\n    .jlc-form-wrapper .jlc-file-remove { width: 100%; }\n    .jlc-form-wrapper .jlc-actions {\n      margin-top: 20px;\n      padding-top: 16px;\n    }\n    .jlc-form-wrapper button,\n    .jlc-form-wrapper .jlc-phone-link {\n      min-height: 52px;\n      font-size: 15px;\n      touch-action: manipulation;\n    }\n    .jlc-form-wrapper .jlc-success-screen {\n      min-height: 300px;\n      padding: 32px 16px;\n    }\n    .jlc-form-wrapper .jlc-success-title { font-size: 24px; }\n    .jlc-form-wrapper .jlc-success-copy { font-size: 14px; }\n  }\n\n  @media (max-width: 360px) {\n    .jlc-form-wrapper .jlc-brand-panel { padding: 12px; }\n    .jlc-form-wrapper .jlc-form-inner { padding: 12px 10px; }\n    .jlc-form-wrapper .jlc-stage { min-height: 370px; }\n    .jlc-form-wrapper .jlc-step-title { font-size: 18px; }\n    .jlc-form-wrapper .jlc-choice-card,\n    .jlc-form-wrapper .jlc-phone-card {\n      min-height: 72px;\n      padding: 12px;\n    }\n    .jlc-form-wrapper .jlc-choice-title { font-size: 15px; }\n    .jlc-form-wrapper .g-recaptcha {\n      transform: scale(.86);\n      transform-origin: left top;\n    }\n    .jlc-form-wrapper .jlc-section,\n    .jlc-form-wrapper .jlc-block-message { padding: 12px; }\n    .jlc-form-wrapper textarea { min-height: 150px; }\n  }\n<\/style>\n\n<script src=\"https:\/\/www.google.com\/recaptcha\/enterprise.js\" async defer><\/script>\n\n<div class=\"jlc-form-wrapper jlc-classique\" id=\"jlcFormWrapper\" data-jlc-form>\n  <div class=\"jlc-shell\">\n\n    <!-- HEADER -->\n    <div class=\"jlc-header\">\n      <div class=\"jlc-brand-panel\">\n        <div class=\"jlc-brand-row\">\n          <div>\n            <p class=\"jlc-progress-text\" data-jlc-progress-text>Step 1 of 4<\/p>\n          <\/div>\n        <\/div>\n        <div class=\"jlc-progress-track\" aria-label=\"Progress\">\n          <div class=\"jlc-progress-bar\" data-jlc-progress-bar><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- FORM -->\n    <form class=\"jlc-form-inner\" id=\"jlcForm\" autocomplete=\"on\" novalidate>\n\n      <!-- Honeypot -->\n      <div class=\"jlc-hp\">\n        <label for=\"jlcCompanyHp\">Company<\/label>\n        <input id=\"jlcCompanyHp\" name=\"company_hp\" tabindex=\"-1\" autocomplete=\"off\">\n      <\/div>\n\n      <!-- Ticket strip -->\n      <div class=\"jlc-ticket-strip\" data-jlc-ticket-section>\n        <h2>Existing ticket number<\/h2>\n        <div class=\"jlc-field\">\n          <label class=\"jlc-label\" for=\"jlcExistingTicketId\">Ticket ID<\/label>\n          <input id=\"jlcExistingTicketId\" name=\"existingTicketId\" readonly>\n          <p class=\"jlc-hint\">This form will add information to the existing ticket.<\/p>\n        <\/div>\n      <\/div>\n\n      <div data-jlc-form-fields>\n        <div class=\"jlc-stage\">\n\n          <!-- \u2460 STEP: order -->\n          <section class=\"jlc-step-panel is-active\" data-step-key=\"order\">\n            <h2 class=\"jlc-step-title\">Is this related to an existing order\u00a0?<\/h2>\n            <p class=\"jlc-step-helper\">This information helps us route your request to the right team.<\/p>\n            <div class=\"jlc-choice-grid\" role=\"radiogroup\" aria-label=\"Existing order\">\n              <label class=\"jlc-choice-card\" data-card-for=\"jlcOrderYes\">\n                <input id=\"jlcOrderYes\" type=\"radio\" name=\"orderRelated\" value=\"yes\">\n                <span class=\"jlc-choice-title\">Yes<\/span>\n                <span class=\"jlc-choice-text\">I have an order, a receipt, or a restaurant-related situation.<\/span>\n              <\/label>\n              <label class=\"jlc-choice-card\" data-card-for=\"jlcOrderNo\">\n                <input id=\"jlcOrderNo\" type=\"radio\" name=\"orderRelated\" value=\"no\">\n                <span class=\"jlc-choice-title\">No<\/span>\n                <span class=\"jlc-choice-text\">I want to ask a general question or send a comment.<\/span>\n              <\/label>\n            <\/div>\n            <div class=\"jlc-field-error\" data-error-for=\"orderRelated\"><\/div>\n          <\/section>\n\n          <!-- \u2461 STEP: source -->\n          <section class=\"jlc-step-panel\" data-step-key=\"source\">\n            <h2 class=\"jlc-step-title\">Where did you place your order\u00a0?<\/h2>\n            <p class=\"jlc-step-helper\">Orders placed through a third-party app must be handled directly in that app.<\/p>\n            <div class=\"jlc-choice-grid\" role=\"radiogroup\" aria-label=\"Order source\">\n              <label class=\"jlc-choice-card\" data-card-for=\"jlcThirdPartyNo\">\n                <input id=\"jlcThirdPartyNo\" type=\"radio\" name=\"thirdPartyOrder\" value=\"no\">\n                <span class=\"jlc-choice-title\">Directly with Jack Le Coq<\/span>\n                <span class=\"jlc-choice-text\">In restaurant, by phone, or through a Jack Le Coq channel.<\/span>\n              <\/label>\n              <label class=\"jlc-choice-card\" data-card-for=\"jlcThirdPartyYes\">\n                <input id=\"jlcThirdPartyYes\" type=\"radio\" name=\"thirdPartyOrder\" value=\"yes\">\n                <span class=\"jlc-choice-title\">Delivery app<\/span>\n                <span class=\"jlc-choice-text\">Uber Eats, DoorDash, Skip, or another platform.<\/span>\n              <\/label>\n            <\/div>\n            <div class=\"jlc-field-error\" data-error-for=\"thirdPartyOrder\"><\/div>\n          <\/section>\n\n          <!-- STEP: third_party_block -->\n          <section class=\"jlc-step-panel\" data-step-key=\"third_party_block\">\n            <div class=\"jlc-block-message\">\n              <h2 class=\"jlc-step-title\">The platform must help you directly<\/h2>\n              <p class=\"jlc-step-helper\">If your order was placed through a third-party app such as DoorDash, Uber Eats, or SkipTheDishes, please refer to the app in question. Our team is not able to track orders placed outside our ordering system.<\/p>\n              <br>\n              <a class=\"jlc-step-helper\" href=\"https:\/\/help.doordash.com\/consumers\/s\/topic\/0TO1a0000007fB7GAI\/your-doordash-order?language=fr_CA\">DoorDash customer support<\/a>\n              <br>\n              <a class=\"jlc-step-helper\" href=\"https:\/\/help.uber.com\/fr-CA\/ubereats\/restaurants\/section\/aide-avec-une-commande\">Uber Eats customer support<\/a>\n              <br>\n              <a class=\"jlc-step-helper\" href=\"https:\/\/www.skipthedishes.com\/fr\/faq\">SkipTheDishes customer support<\/a>\n              <div class=\"jlc-inline-actions\">\n                <button class=\"jlc-ghost\" type=\"button\" data-jlc-block-back>Back<\/button>\n                <button type=\"button\" data-jlc-reset>Start over<\/button>\n              <\/div>\n            <\/div>\n          <\/section>\n\n          <!-- \u2462 STEP: contact_pref -->\n          <section class=\"jlc-step-panel\" data-step-key=\"contact_pref\">\n            <h2 class=\"jlc-step-title\">How would you like to contact us\u00a0?<\/h2>\n            <p class=\"jlc-step-helper\">You can call directly or continue with the form.<\/p>\n            <div class=\"jlc-choice-grid\" role=\"radiogroup\" aria-label=\"Contact preference\">\n              <div class=\"jlc-phone-card\" data-jlc-phone-card>\n                <span class=\"jlc-choice-title\">By phone<\/span>\n                <span class=\"jlc-choice-text\">To speak with someone now.<\/span>\n                <!-- \u26a0\ufe0f Replace href \/ data-phone-number \/ data-display-number with real number -->\n                <a class=\"jlc-phone-link\" href=\"tel:+15141234567\"\n                   data-jlc-phone-link\n                   data-phone-number=\"+15141234567\"\n                   data-display-number=\"514 123-4567\">514 123-4567<\/a>\n              <\/div>\n              <label class=\"jlc-choice-card\" data-card-for=\"jlcContactForm\">\n                <input id=\"jlcContactForm\" type=\"radio\" name=\"contactPreference\" value=\"form\">\n                <span class=\"jlc-choice-title\">Fill out the form<\/span>\n                <span class=\"jlc-choice-text\">We will have all the details needed to reply within 24 hours.<\/span>\n              <\/label>\n            <\/div>\n            <div class=\"jlc-field-error\" data-error-for=\"contactPreference\"><\/div>\n          <\/section>\n\n          <!-- \u2463 STEP: order_details -->\n          <section class=\"jlc-step-panel\" data-step-key=\"order_details\">\n            <h2 class=\"jlc-step-title\">Order details<\/h2>\n            <p class=\"jlc-step-helper\">This information will help us find your situation quickly.<\/p>\n\n            <div class=\"jlc-section\">\n              <div class=\"jlc-grid jlc-two\">\n                <div class=\"jlc-field\">\n                  <label class=\"jlc-label\" for=\"jlcComplaintType\">What is this about\u00a0?<\/label>\n                  <select id=\"jlcComplaintType\" name=\"complaintType\">\n                    <option value=\"\" selected>Choose<\/option>\n                    <option value=\"Service\">Service<\/option>\n                    <option value=\"Propret\u00e9\">Cleanliness<\/option>\n                    <option value=\"Produit\">Product<\/option>\n                    <option value=\"Item manquant\">Missing item<\/option>\n                  <\/select>\n                  <div class=\"jlc-field-error\" data-error-for=\"complaintType\"><\/div>\n                <\/div>\n                <div class=\"jlc-field\">\n                  <label class=\"jlc-label\" for=\"jlcMomentDateTime\">Date and time<\/label>\n                  <input id=\"jlcMomentDateTime\" name=\"momentDateTime\" type=\"datetime-local\">\n                  <div class=\"jlc-field-error\" data-error-for=\"momentDateTime\"><\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"jlc-section\">\n              <div class=\"jlc-field\">\n                <label class=\"jlc-label\" for=\"jlcBranchQuery\">Location<\/label>\n                <div class=\"jlc-branch-lookup\">\n                  <input id=\"jlcBranchQuery\" name=\"branchQuery\" placeholder=\"City, neighborhood, or postal code\">\n                  <button class=\"jlc-ghost\" type=\"button\" data-jlc-branch-search>Search<\/button>\n                <\/div>\n                <p class=\"jlc-hint\" data-jlc-branch-status>Enter a city, neighborhood, or postal code.<\/p>\n                <div class=\"jlc-radio-results\" data-jlc-branch-results role=\"radiogroup\" aria-label=\"Location results\"><\/div>\n                <div class=\"jlc-field-error\" data-error-for=\"branchChoice\"><\/div>\n              <\/div>\n            <\/div>\n          <\/section>\n\n          <!-- \u2464 STEP: message -->\n          <section class=\"jlc-step-panel\" data-step-key=\"message\">\n            <h2 class=\"jlc-step-title\">How can we help\u00a0?<\/h2>\n            <p class=\"jlc-step-helper\">The more precise the details, the faster we can help.<\/p>\n            <div class=\"jlc-section\">\n              <div class=\"jlc-field\">\n                <label class=\"jlc-label\" for=\"jlcMessage\">Details<\/label>\n                <textarea id=\"jlcMessage\" name=\"message\" maxlength=\"3000\"\n                          placeholder=\"Describe your situation...\" required><\/textarea>\n                <p class=\"jlc-counter\" data-jlc-message-counter>0 \/ 3000<\/p>\n                <div class=\"jlc-field-error\" data-error-for=\"message\"><\/div>\n              <\/div>\n              <div class=\"jlc-field\" style=\"margin-top:14px\">\n                <label class=\"jlc-label\" for=\"jlcPhotoFile\">Photo or document (optional)<\/label>\n                <input id=\"jlcPhotoFile\" name=\"photoFile\" type=\"file\"\n                       accept=\".jpg,.jpeg,.png,.heic,.pdf,.doc,.docx,.tiff,.tif,.gif,.bmp\" multiple>\n                <p class=\"jlc-filehint\">Optional \u00b7 Maximum 3 files, 10 MB total \u00b7 JPEG, PNG, HEIC, PDF, DOC, DOCX, TIFF, GIF, BMP.<\/p>\n                <div class=\"jlc-file-list\" id=\"jlcPhotoList\" aria-live=\"polite\"><\/div>\n                <div class=\"jlc-field-error\" data-error-for=\"photoFile\"><\/div>\n              <\/div>\n            <\/div>\n          <\/section>\n\n          <!-- \u2465 STEP: identity -->\n          <section class=\"jlc-step-panel\" data-step-key=\"identity\">\n            <h2 class=\"jlc-step-title\">How can we reach you\u00a0?<\/h2>\n            <p class=\"jlc-step-helper\">All fields are required so we can reply to you.<\/p>\n            <div class=\"jlc-section\">\n              <div class=\"jlc-grid jlc-two\">\n                <div class=\"jlc-field\">\n                  <label class=\"jlc-label\" for=\"jlcFirstName\">First name<\/label>\n                  <input id=\"jlcFirstName\" name=\"firstName\" autocomplete=\"given-name\" required>\n                  <div class=\"jlc-field-error\" data-error-for=\"firstName\"><\/div>\n                <\/div>\n                <div class=\"jlc-field\">\n                  <label class=\"jlc-label\" for=\"jlcLastName\">Last name<\/label>\n                  <input id=\"jlcLastName\" name=\"lastName\" autocomplete=\"family-name\" required>\n                  <div class=\"jlc-field-error\" data-error-for=\"lastName\"><\/div>\n                <\/div>\n                <div class=\"jlc-field\">\n                  <label class=\"jlc-label\" for=\"jlcEmail\">Email *<\/label>\n                  <input id=\"jlcEmail\" name=\"email\" type=\"email\" autocomplete=\"email\" required>\n                  <div class=\"jlc-field-error\" data-error-for=\"email\"><\/div>\n                <\/div>\n                <div class=\"jlc-field\">\n                  <label class=\"jlc-label\" for=\"jlcPhone\">Phone<\/label>\n                  <input id=\"jlcPhone\" name=\"phone\" type=\"tel\" autocomplete=\"tel\" required>\n                  <div class=\"jlc-field-error\" data-error-for=\"phone\"><\/div>\n                <\/div>\n              <\/div>\n              <div class=\"jlc-captcha\" data-jlc-captcha>\n                <div class=\"g-recaptcha\"\n                     data-sitekey=\"6LcuamksAAAAAD2rxA4QMo1XZW-BPJ2OTNwemY8B\"\n                     data-callback=\"jlcRecaptchaOk\"\n                     data-expired-callback=\"jlcRecaptchaExpired\"\n                     data-error-callback=\"jlcRecaptchaExpired\"><\/div>\n                <p class=\"jlc-hint\">Confirm that you are not a robot to submit.<\/p>\n                <div class=\"jlc-field-error\" data-error-for=\"recaptcha\"><\/div>\n              <\/div>\n              <p class=\"jlc-hint\" style=\"margin-top:12px\">\n                Your information will only be used to follow up on your request.\n              <\/p>\n              <div class=\"jlc-error\" data-jlc-error>\n                Oops... we cannot submit this right now. Please try again or contact us later.\n              <\/div>\n            <\/div>\n          <\/section>\n\n        <\/div><!-- .jlc-stage -->\n\n        <!-- NAV -->\n        <div class=\"jlc-actions\" data-jlc-nav>\n          <button class=\"jlc-ghost jlc-hidden\" type=\"button\" data-jlc-back>Back<\/button>\n          <div class=\"jlc-actions-right\">\n            <button type=\"button\" data-jlc-next>Next<\/button>\n            <button class=\"jlc-hidden\" type=\"submit\" data-jlc-submit>Submit<\/button>\n          <\/div>\n        <\/div>\n\n      <\/div><!-- data-jlc-form-fields -->\n    <\/form>\n\n    <!-- SUCCESS SCREEN -->\n    <section class=\"jlc-success-screen\" data-jlc-success aria-live=\"polite\">\n      <div class=\"jlc-success-inner\">\n        <div class=\"jlc-ticket-badge\" data-jlc-success-ticket><\/div>\n        <h2 class=\"jlc-success-title\">Thank you!<\/h2>\n        <p class=\"jlc-success-copy\" data-jlc-success-text>\n          Your request has been sent. We will reply within 24 hours.\n        <\/p>\n        <button type=\"button\" data-jlc-reset>Submit another request<\/button>\n      <\/div>\n    <\/section>\n\n  <\/div><!-- .jlc-shell -->\n  <div class=\"jlc-toast\" data-jlc-phone-toast role=\"status\" aria-live=\"polite\"><\/div>\n<\/div>\n\n<script>\n(function () {\n  \"use strict\";\n\n  \/* \u2500\u2500\u2500 CONFIG \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  const JLC_CONFIG = {\n    webhookUrl:      \"https:\/\/jacklecoq.com\/wp-json\/jlc\/v1\/submit\",\n    branchLookupUrl: \"https:\/\/n8n.abbat.live\/webhook\/f9c43696-8809-46e7-8ff9-eaa169cdee63\",\n    restaurantName:  \"Jack Le Coq\",\n    labelCode:       \"JLC\",\n    supportPhone:     \"438-953-4428\",\n    supportPhoneHref: \"+14389534428\",\n    defaultLanguage: \"Fran\u00e7ais\",\n    defaultStatus:   \"Ouvert\",\n    defaultSource:   \"Site-web\",\n    maxFileBytes:    10 * 1024 * 1024,\n    maxTotalFileBytes: 10 * 1024 * 1024,\n    maxPhotoFiles:   3\n  };\n\n\n  const TEXT = {\n    required:       \"This field is required.\",\n    chooseOne:      \"Choose an option.\",\n    chooseBranch:   \"Choose a location.\",\n    validEmail:     \"Enter a valid email address.\",\n    fileTooLarge:   \"The file is too large (max 10 MB).\",\n    filesTooLarge:  \"The attached files exceed the allowed total (max 10 MB).\",\n    duplicateFile:  \"This file has already been added.\",\n    maxPhotos:      \"You can attach a maximum of 3 files.\",\n    enterLocation:  \"Enter a location before searching.\",\n    unavailable:    \"Search unavailable.\",\n    searching:      \"Searching...\",\n    selectBranch:   \"Choose the location.\",\n    noBranch:       \"No restaurant found. Refine or broaden your search.\",\n    searchError:    \"Search error. Please try again.\",\n    captchaReq:     \"Please complete the reCAPTCHA before submitting.\",\n    submitError:    \"Oops... we cannot submit this right now. Please try again or contact us later.\",\n    sending:        \"Submitting...\",\n    send:           \"Submit\",\n    success:        \"Your request has been sent. We will reply within 24 hours.\",\n    ticketLabel:    \"Your ticket number:\",\n    copyLabel:      \"Copy\",\n    copyPrompt:     \"Copy the phone number:\",\n    copyToast:      \"Number copied.\"\n  };\n\n  \/* \u2500\u2500\u2500 ELEMENTS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  const wrapper     = document.getElementById(\"jlcFormWrapper\");\n  const form        = document.getElementById(\"jlcForm\");\n  if (!wrapper || !form) return;\n\n  const formFields      = wrapper.querySelector(\"[data-jlc-form-fields]\");\n  const panels          = Array.from(wrapper.querySelectorAll(\"[data-step-key]\"));\n  const progressBar     = wrapper.querySelector(\"[data-jlc-progress-bar]\");\n  const progressText    = wrapper.querySelector(\"[data-jlc-progress-text]\");\n  const backBtn         = wrapper.querySelector(\"[data-jlc-back]\");\n  const nextBtn         = wrapper.querySelector(\"[data-jlc-next]\");\n  const submitBtn       = wrapper.querySelector(\"[data-jlc-submit]\");\n  const resetBtns       = Array.from(wrapper.querySelectorAll(\"[data-jlc-reset]\"));\n  const blockBackBtn    = wrapper.querySelector(\"[data-jlc-block-back]\");\n  const nav             = wrapper.querySelector(\"[data-jlc-nav]\");\n  const successBox      = wrapper.querySelector(\"[data-jlc-success]\");\n  const successText     = wrapper.querySelector(\"[data-jlc-success-text]\");\n  const successTicket   = wrapper.querySelector(\"[data-jlc-success-ticket]\");\n  const errorBox        = wrapper.querySelector(\"[data-jlc-error]\");\n  const ticketSection   = wrapper.querySelector(\"[data-jlc-ticket-section]\");\n  const existingInput   = document.getElementById(\"jlcExistingTicketId\");\n  const phoneLink       = wrapper.querySelector(\"[data-jlc-phone-link]\");\n  const phoneToast      = wrapper.querySelector(\"[data-jlc-phone-toast]\");\n  const captchaWrap     = wrapper.querySelector(\"[data-jlc-captcha]\");\n  const complaintType   = document.getElementById(\"jlcComplaintType\");\n  const branchQuery     = document.getElementById(\"jlcBranchQuery\");\n  const branchSearchBtn = wrapper.querySelector(\"[data-jlc-branch-search]\");\n  const branchStatus    = wrapper.querySelector(\"[data-jlc-branch-status]\");\n  const branchResults   = wrapper.querySelector(\"[data-jlc-branch-results]\");\n  const momentDateTime  = document.getElementById(\"jlcMomentDateTime\");\n  const messageField    = document.getElementById(\"jlcMessage\");\n  const messageCounter  = wrapper.querySelector(\"[data-jlc-message-counter]\");\n  const photoFile       = document.getElementById(\"jlcPhotoFile\");\n  const photoList       = document.getElementById(\"jlcPhotoList\");\n\n  \/* \u2500\u2500\u2500 STATE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  let existingTicketID      = null;\n  let deepLinkToHelpChoice  = false;\n  let copyPhoneAction       = false;\n  let currentStepKey        = \"order\";\n  let isSubmitting          = false;\n  let selectedPhotos        = [];\n  let recaptchaTokenValue   = \"\";\n  const clientRequestId     = safeUuid();\n\n  \/* \u2500\u2500\u2500 URL PARAMS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  try {\n    const p = new URLSearchParams(window.location.search);\n    existingTicketID     = p.get(\"ticketID\");\n    const rawStep        = String(p.get(\"step\") || p.get(\"jlcStep\") || p.get(\"help\") || \"\").trim().toLowerCase();\n    const rawPhoneAction = String(p.get(\"phone_action\") || p.get(\"phoneAction\") || p.get(\"source\") || \"\").trim().toLowerCase();\n    const rawVisual      = String(p.get(\"visual\") || p.get(\"theme\") || \"\").trim().toLowerCase();\n\n    deepLinkToHelpChoice = [\"3\",\"help\",\"contact\",\"contact-preference\",\"phone-form\",\"order-help\",\"1\",\"true\",\"yes\"].includes(rawStep);\n    copyPhoneAction      = [\"copy\",\"app\",\"ordering-app\"].includes(rawPhoneAction);\n\n    if ([\"classique\",\"nuit\",\"piquant\"].includes(rawVisual)) {\n      wrapper.classList.remove(\"jlc-classique\",\"jlc-nuit\",\"jlc-piquant\");\n      wrapper.classList.add(\"jlc-\" + rawVisual);\n    }\n  } catch (_) {}\n\n  \/* \u2500\u2500\u2500 INIT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  if (existingTicketID && existingInput && ticketSection) {\n    existingInput.value = existingTicketID;\n    ticketSection.classList.add(\"is-visible\");\n  }\n  setupPhoneLink();\n  syncRecaptchaVisibility();\n  syncMomentMax();\n  setupDateTimePicker();\n\n  \/* \u2500\u2500\u2500 HELPERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function safeUuid() {\n    try { if (window.crypto && typeof crypto.randomUUID === \"function\") return crypto.randomUUID(); } catch (_) {}\n    return \"jlc-\" + Date.now().toString(36) + \"-\" + Math.random().toString(36).slice(2);\n  }\n\n  function selected(name) {\n    const el = form.querySelector('input[name=\"' + name + '\"]:checked');\n    return el ? el.value : \"\";\n  }\n\n  function setRadioValue(name, value) {\n    form.querySelectorAll('input[name=\"' + name + '\"]').forEach((r) => {\n      r.checked = !!value && r.value === value;\n    });\n  }\n\n  function isOrderFlow() { return selected(\"orderRelated\") === \"yes\"; }\n\n  function toggle(el, show) { if (el) el.classList.toggle(\"jlc-hidden\", !show); }\n\n  function setupPhoneLink() {\n    if (!phoneLink) return;\n    const display = JLC_CONFIG.supportPhone;\n    const href    = JLC_CONFIG.supportPhoneHref;\n    phoneLink.dataset.phoneNumber   = href;\n    phoneLink.dataset.displayNumber = display;\n    phoneLink.textContent = copyPhoneAction ? TEXT.copyLabel + \" : \" + display : display;\n    phoneLink.setAttribute(\"aria-label\", phoneLink.textContent);\n    phoneLink.href = copyPhoneAction ? \"#\" : \"tel:\" + href;\n  }\n\n  function syncRecaptchaVisibility() {\n    if (!captchaWrap) return;\n    captchaWrap.classList.remove(\"jlc-hidden\");\n    captchaWrap.setAttribute(\"aria-hidden\", \"false\");\n  }\n\n  function syncMomentMax() {\n    if (!momentDateTime) return;\n    const now   = new Date();\n    const local = new Date(now.getTime() - now.getTimezoneOffset() * 60000);\n    momentDateTime.max = local.toISOString().slice(0, 16);\n  }\n\n  function setupDateTimePicker() {\n    if (!momentDateTime) return;\n    const openPicker = () => {\n      if (momentDateTime.disabled || momentDateTime.readOnly || typeof momentDateTime.showPicker !== \"function\") return;\n      try { momentDateTime.showPicker(); } catch (_) {}\n    };\n    momentDateTime.addEventListener(\"click\", openPicker);\n    momentDateTime.addEventListener(\"keydown\", (event) => {\n      if (event.key !== \"Enter\" && event.key !== \" \") return;\n      event.preventDefault();\n      openPicker();\n    });\n  }\n\n  \/* \u2500\u2500\u2500 ROUTE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function buildRoute() {\n    const order  = selected(\"orderRelated\");\n    const third  = selected(\"thirdPartyOrder\");\n    if (order === \"yes\") {\n      if (third === \"yes\") return [\"order\",\"source\",\"third_party_block\"];\n      if (third === \"no\")  return [\"order\",\"source\",\"contact_pref\",\"order_details\",\"message\",\"identity\"];\n      return [\"order\",\"source\"];\n    }\n    if (order === \"no\") return [\"order\",\"contact_pref\",\"message\",\"identity\"];\n    return [\"order\"];\n  }\n\n  function getPanel(key) {\n    return panels.find((p) => p.dataset.stepKey === key) || null;\n  }\n\n  \/* \u2500\u2500\u2500 CONDITIONAL FIELDS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function syncConditionalFields() {\n  }\n\n  function syncRequiredFields() {\n    const orderFlow = isOrderFlow();\n    if (complaintType)    complaintType.required    = orderFlow;\n    if (momentDateTime)   momentDateTime.required   = orderFlow;\n    if (messageField)     messageField.required      = true;\n  }\n\n  \/* \u2500\u2500\u2500 CARD STATES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function updateChoiceCards() {\n    form.querySelectorAll('input[type=\"radio\"]').forEach((radio) => {\n      const card = wrapper.querySelector('[data-card-for=\"' + radio.id + '\"]');\n      if (card) card.classList.toggle(\"is-selected\", radio.checked);\n    });\n  }\n\n  \/* \u2500\u2500\u2500 MESSAGE COUNTER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function updateMessageCounter() {\n    if (!messageField || !messageCounter) return;\n    messageCounter.textContent = messageField.value.length + \" \/ 3000\";\n  }\n\n  \/* \u2500\u2500\u2500 VALIDATION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function clearErrorFor(key) {\n    const node  = wrapper.querySelector('[data-error-for=\"' + key + '\"]');\n    if (node) node.textContent = \"\";\n    const field = form.querySelector('[name=\"' + key + '\"]');\n    if (field) { field.classList.remove(\"jlc-invalid\"); if (typeof field.setCustomValidity === \"function\") field.setCustomValidity(\"\"); }\n  }\n\n  function clearPanelErrors(panel) {\n    if (!panel) return;\n    panel.querySelectorAll(\".jlc-field-error\").forEach((n) => { n.textContent = \"\"; });\n    panel.querySelectorAll(\"input,select,textarea\").forEach((f) => {\n      f.classList.remove(\"jlc-invalid\");\n      if (typeof f.setCustomValidity === \"function\") f.setCustomValidity(\"\");\n    });\n    if (captchaWrap) captchaWrap.classList.remove(\"jlc-invalid\");\n  }\n\n  function showError(key, message) {\n    const node  = wrapper.querySelector('[data-error-for=\"' + key + '\"]');\n    if (node) node.textContent = message;\n    const field = form.querySelector('[name=\"' + key + '\"]');\n    if (field) { field.classList.add(\"jlc-invalid\"); if (typeof field.focus === \"function\") field.focus({ preventScroll: true }); }\n  }\n\n  function validateRadioGroup(name, msg) {\n    if (selected(name)) return true;\n    showError(name, msg || TEXT.chooseOne);\n    return false;\n  }\n\n  function formatSize(bytes) {\n    const mb = bytes \/ (1024 * 1024);\n    return mb >= 1 ? mb.toFixed(1) + \" MB\" : Math.max(1, Math.round(bytes \/ 1024)) + \" KB\";\n  }\n\n  function renderPhotos() {\n    if (!photoList) return;\n    if (photoFile) photoFile.disabled = selectedPhotos.length >= JLC_CONFIG.maxPhotoFiles;\n    photoList.innerHTML = \"\";\n    selectedPhotos.forEach((file, index) => {\n      const item = document.createElement(\"div\");\n      item.className = \"jlc-file-item\";\n      const name = document.createElement(\"span\");\n      name.className = \"jlc-file-name\";\n      name.textContent = file.name + \" (\" + formatSize(file.size) + \")\";\n      const remove = document.createElement(\"button\");\n      remove.type = \"button\";\n      remove.className = \"jlc-file-remove jlc-ghost\";\n      remove.textContent = \"Remove\";\n      remove.dataset.photoIndex = String(index);\n      item.appendChild(name);\n      item.appendChild(remove);\n      photoList.appendChild(item);\n    });\n    postHeight();\n  }\n\n  function fileKey(file) {\n    return String(file && file.name || \"\") + \"::\" + String(file && file.size || 0);\n  }\n\n  function selectedPhotoBytes() {\n    return selectedPhotos.reduce((sum, file) => sum + (file && file.size ? file.size : 0), 0);\n  }\n\n  function totalFileLimit() {\n    return JLC_CONFIG.maxTotalFileBytes || JLC_CONFIG.maxFileBytes;\n  }\n\n  function addPhotos(fileList) {\n    const incoming = Array.from(fileList || []);\n    if (!incoming.length) return;\n    const errors = [];\n    const seen = new Set(selectedPhotos.map(fileKey));\n    for (const file of incoming) {\n      const key = fileKey(file);\n      if (seen.has(key)) { errors.push(TEXT.duplicateFile); continue; }\n      if (file.size > JLC_CONFIG.maxFileBytes) { errors.push(TEXT.fileTooLarge); continue; }\n      if (selectedPhotos.length >= JLC_CONFIG.maxPhotoFiles) { errors.push(TEXT.maxPhotos); break; }\n      if (selectedPhotoBytes() + file.size > totalFileLimit()) { errors.push(TEXT.filesTooLarge); continue; }\n      selectedPhotos.push(file);\n      seen.add(key);\n    }\n    if (photoFile) {\n      photoFile.value = \"\";\n      photoFile.setCustomValidity(errors[0] || \"\");\n    }\n    if (errors.length) showError(\"photoFile\", errors[0]);\n    else clearErrorFor(\"photoFile\");\n    renderPhotos();\n  }\n\n  function clearPhotos() {\n    selectedPhotos = [];\n    if (photoFile) {\n      photoFile.value = \"\";\n      photoFile.disabled = false;\n      photoFile.setCustomValidity(\"\");\n    }\n    clearErrorFor(\"photoFile\");\n    renderPhotos();\n  }\n\n  function validateFile() {\n    if (!photoFile) return true;\n    photoFile.setCustomValidity(\"\");\n    if (selectedPhotos.length > JLC_CONFIG.maxPhotoFiles) {\n      photoFile.setCustomValidity(TEXT.maxPhotos);\n      showError(\"photoFile\", TEXT.maxPhotos);\n      return false;\n    }\n    if (selectedPhotoBytes() > totalFileLimit()) {\n      photoFile.setCustomValidity(TEXT.filesTooLarge);\n      showError(\"photoFile\", TEXT.filesTooLarge);\n      return false;\n    }\n    clearErrorFor(\"photoFile\");\n    return true;\n  }\n\n  function validateField(field) {\n    if (!field) return true;\n    field.setCustomValidity(\"\");\n    if (field === photoFile) return validateFile();\n    if (field.checkValidity()) return true;\n    const key = field.name || field.id;\n    let msg = TEXT.required;\n    if (field.validity.typeMismatch && field.type === \"email\") msg = TEXT.validEmail;\n    if (field.validity.rangeOverflow && field === momentDateTime) msg = \"Choose today or a past date.\";\n    showError(key, msg);\n    return false;\n  }\n\n  function validateCurrentStep() {\n    const panel = getPanel(currentStepKey);\n    clearPanelErrors(panel);\n    syncMomentMax();\n\n    if (currentStepKey === \"order\")  return validateRadioGroup(\"orderRelated\", TEXT.chooseOne);\n    if (currentStepKey === \"source\") return validateRadioGroup(\"thirdPartyOrder\", TEXT.chooseOne);\n    if (currentStepKey === \"contact_pref\") {\n      if (selected(\"contactPreference\") === \"form\") return true;\n      showError(\"contactPreference\", \"Choose the form to continue, or call us directly.\");\n      return false;\n    }\n    if (currentStepKey === \"order_details\") {\n      const fieldsOk = [complaintType, momentDateTime].every((f) => {\n        if (!f || f.offsetParent === null) return true;\n        return validateField(f);\n      });\n      if (!form.querySelector('input[name=\"branchChoice\"]:checked')) {\n        showError(\"branchChoice\", TEXT.chooseBranch);\n        return false;\n      }\n      return fieldsOk;\n    }\n    if (currentStepKey === \"message\") return validateField(messageField) && validateFile();\n    if (currentStepKey === \"identity\") {\n      const firstInvalid = Array.from(panel.querySelectorAll(\"input,select,textarea\")).find((f) => {\n        if (f.type === \"hidden\" || f.disabled) return false;\n        if (f.offsetParent === null && !f.closest(\".g-recaptcha\")) return false;\n        return !validateField(f);\n      });\n      return !firstInvalid;\n    }\n    return true;\n  }\n\n  \/* \u2500\u2500\u2500 PROGRESS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function updateProgress(route) {\n    const r = route || buildRoute();\n    const i = Math.max(r.indexOf(currentStepKey), 0);\n    const current = Math.min(i + 1, r.length);\n    const total   = r.length;\n    if (progressText) progressText.textContent = \"Step \" + current + \" of \" + total;\n    if (progressBar)  progressBar.style.width  = Math.round((current \/ total) * 100) + \"%\";\n  }\n\n  \/* \u2500\u2500\u2500 NAV STATE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function updateNav(route) {\n    const r       = route || buildRoute();\n    const index   = r.indexOf(currentStepKey);\n    const isFirst = index <= 0;\n    const isBlock = currentStepKey === \"third_party_block\";\n    const isFinal = currentStepKey === \"identity\";\n    if (nav)       nav.classList.toggle(\"jlc-hidden\", isBlock);\n    if (backBtn)   backBtn.classList.toggle(\"jlc-hidden\", isFirst || isBlock);\n    if (nextBtn)   nextBtn.classList.toggle(\"jlc-hidden\", isFinal || isBlock);\n    if (submitBtn) submitBtn.classList.toggle(\"jlc-hidden\", !isFinal || isBlock);\n    updateNextBtnState();\n  }\n\n  function updateNextBtnState() {\n    if (!nextBtn) return;\n    let disabled = false;\n    if (currentStepKey === \"order\")         disabled = !selected(\"orderRelated\");\n    if (currentStepKey === \"source\")        disabled = !selected(\"thirdPartyOrder\");\n    if (currentStepKey === \"contact_pref\")  disabled = selected(\"contactPreference\") !== \"form\";\n    if (currentStepKey === \"order_details\") {\n      disabled = !complaintType.value || !momentDateTime.value ||\n                 !form.querySelector('input[name=\"branchChoice\"]:checked');\n    }\n    if (currentStepKey === \"message\") disabled = !(messageField && messageField.value.trim());\n    nextBtn.disabled = disabled;\n  }\n\n  \/* \u2500\u2500\u2500 SHOW STEP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function focusPrimary(panel) {\n    if (!panel) return;\n    const t = panel.querySelector(\"textarea,select,input:not([type='hidden']):not([tabindex='-1']),button,a\");\n    if (t && typeof t.focus === \"function\") window.setTimeout(() => t.focus({ preventScroll: true }), 40);\n  }\n\n  function showStep(key) {\n    syncRequiredFields();\n    syncConditionalFields();\n    const route = buildRoute();\n    if (!route.includes(key)) key = route[route.length - 1] || \"order\";\n    currentStepKey = key;\n    const activeIndex = route.indexOf(currentStepKey);\n    panels.forEach((panel) => {\n      const pi = route.indexOf(panel.dataset.stepKey);\n      const isActive = panel.dataset.stepKey === currentStepKey;\n      panel.classList.toggle(\"is-active\", isActive);\n      panel.classList.toggle(\"is-before\", pi !== -1 && pi < activeIndex);\n      panel.setAttribute(\"aria-hidden\", isActive ? \"false\" : \"true\");\n    });\n    updateChoiceCards();\n    updateMessageCounter();\n    updateProgress(route);\n    updateNav(route);\n    focusPrimary(getPanel(currentStepKey));\n    postHeight();\n  }\n\n  \/* \u2500\u2500\u2500 NAVIGATION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function goNext() {\n    if (!validateCurrentStep()) { postHeight(); return; }\n    const route = buildRoute();\n    const nextKey = route[route.indexOf(currentStepKey) + 1];\n    if (nextKey) showStep(nextKey);\n  }\n\n  function goBack() {\n    const route = buildRoute();\n    const prevKey = route[route.indexOf(currentStepKey) - 1];\n    if (prevKey) showStep(prevKey);\n  }\n\n  \/* \u2500\u2500\u2500 BRANCH SEARCH \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function updateBranchStatus(text) { if (branchStatus) branchStatus.textContent = text; }\n\n  function renderBranchResults(items) {\n    if (!branchResults) return;\n    branchResults.innerHTML = \"\";\n    items.forEach((item) => {\n      const label  = document.createElement(\"label\");\n      label.className = \"jlc-radio-row\";\n      const input  = document.createElement(\"input\");\n      input.type   = \"radio\";\n      input.name   = \"branchChoice\";\n      input.value  = item.value || \"\";\n      input.dataset.label = item.label || \"\";\n      label.appendChild(input);\n      label.appendChild(document.createTextNode(item.value || item.label || \"\"));\n      branchResults.appendChild(label);\n    });\n  }\n\n  async function searchBranches() {\n    if (!branchQuery || !branchResults) return;\n    const query = branchQuery.value.trim();\n    clearErrorFor(\"branchChoice\");\n    if (!query)                    { renderBranchResults([]); updateBranchStatus(TEXT.enterLocation); postHeight(); return; }\n    if (!JLC_CONFIG.branchLookupUrl) { updateBranchStatus(TEXT.unavailable); postHeight(); return; }\n    if (branchSearchBtn) branchSearchBtn.disabled = true;\n    updateBranchStatus(TEXT.searching);\n    renderBranchResults([]);\n    try {\n      const sep = JLC_CONFIG.branchLookupUrl.includes(\"?\") ? \"&\" : \"?\";\n      const res = await fetch(JLC_CONFIG.branchLookupUrl + sep + \"regionTexte=\" + encodeURIComponent(query));\n      if (!res.ok) throw new Error(\"HTTP \" + res.status);\n      const data  = await res.json();\n      const items = Array.isArray(data && data.output) ? data.output : [];\n      renderBranchResults(items);\n      updateBranchStatus(items.length ? TEXT.selectBranch : TEXT.noBranch);\n    } catch (_) {\n      renderBranchResults([]);\n      updateBranchStatus(TEXT.searchError);\n    } finally {\n      if (branchSearchBtn) branchSearchBtn.disabled = false;\n      updateNextBtnState();\n      postHeight();\n    }\n  }\n\n  \/* \u2500\u2500\u2500 RECAPTCHA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function getRecaptchaToken() {\n    if (recaptchaTokenValue) return recaptchaTokenValue;\n    try {\n      const token = (window.grecaptcha && window.grecaptcha.enterprise && typeof grecaptcha.enterprise.getResponse === \"function\")\n        ? grecaptcha.enterprise.getResponse()\n        : \"\";\n      return String(token || \"\").trim();\n    } catch (_) { return \"\"; }\n  }\n\n  function clearCaptchaIndicator(token) {\n    if (typeof token === \"string\" && token.trim()) recaptchaTokenValue = token.trim();\n    if (captchaWrap) captchaWrap.classList.remove(\"jlc-invalid\");\n    clearErrorFor(\"recaptcha\");\n  }\n\n  function resetCaptcha() {\n    recaptchaTokenValue = \"\";\n    clearCaptchaIndicator();\n    try {\n      if (window.grecaptcha && window.grecaptcha.enterprise && typeof grecaptcha.enterprise.reset === \"function\") grecaptcha.enterprise.reset();\n    } catch (_) {}\n  }\n\n  window.jlcRecaptchaOk      = clearCaptchaIndicator;\n  window.jlcRecaptchaExpired = resetCaptcha;\n\n  \/* \u2500\u2500\u2500 FILE READER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function readFileAsBase64(file) {\n    return new Promise((resolve, reject) => {\n      const reader = new FileReader();\n      reader.onload  = () => { const r = String(reader.result || \"\"); resolve(r.includes(\",\") ? r.split(\",\")[1] : r); };\n      reader.onerror = () => reject(reader.error || new Error(\"File reading failed\"));\n      reader.readAsDataURL(file);\n    });\n  }\n\n  \/* \u2500\u2500\u2500 PAYLOAD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function mapTicketType(mode) {\n    return mode === \"complain\"\n      ? { subject: \"Plainte\",               category: \"Plainte\" }\n      : { subject: \"Question \/ Commentaire\", category: \"Question\" };\n  }\n\n  async function buildPayload(recaptchaToken) {\n    const fd   = new FormData(form);\n    const data = Object.fromEntries(fd.entries());\n    if ((data.company_hp || \"\").trim() !== \"\") return { blocked: true };\n\n    const branchChoice = form.querySelector('input[name=\"branchChoice\"]:checked');\n    const mode = isOrderFlow() ? \"complain\" : \"question\";\n    const meta = mapTicketType(mode);\n\n    let photoJustificative = {};\n    const photos = selectedPhotos.slice(0, JLC_CONFIG.maxPhotoFiles);\n    if (photos.length) {\n      const encoded = [];\n      for (const file of photos) {\n        encoded.push({\n          photoFileName:   file.name,\n          photoFileMime:   file.type || \"application\/octet-stream\",\n          photoFileBase64: await readFileAsBase64(file)\n        });\n      }\n      photoJustificative = { ...encoded[0], photoFiles: encoded };\n    }\n\n    return {\n      blocked: false,\n      payload: {\n        clientRequestId,\n        recaptchaToken: recaptchaToken || \"\",\n        Email:          data.email,\n        Subject:        meta.subject,\n        \"Cat\u00e9gorie de la plainte\": meta.category || \"-None-\",\n        \"Provenance Plaintes\":     JLC_CONFIG.defaultSource,\n        \"D\u00e9dommagement offert\":    0,\n        \"Valeur du d\u00e9dommagement\": null,\n        Classification:            \"-None-\",\n        Priority:                  mode === \"complain\" ? \"High\" : \"Low\",\n        \"Banni\u00e8re Restaurant\":     JLC_CONFIG.restaurantName,\n        Status:                    JLC_CONFIG.defaultStatus,\n        \"First Name\":              data.firstName || \"\",\n        \"Last Name\":               data.lastName  || \"\",\n        Language:                  JLC_CONFIG.defaultLanguage,\n        existingTicketID:          existingTicketID || null,\n        details: {\n          ticketType:        mode,\n          isOrderRelated:    selected(\"orderRelated\"),\n          contactPreference: selected(\"contactPreference\"),\n          thirdPartyOrder:   selected(\"thirdPartyOrder\"),\n          phone:             data.phone || \"\",\n          message:           data.message || \"\",\n          complaintType:     data.complaintType || \"\",\n          momentDateTime:    data.momentDateTime || \"\",\n          branchQuery:       data.branchQuery || \"\",\n          branchValue:       branchChoice ? branchChoice.value : \"\",\n          branchLabel:       branchChoice ? (branchChoice.dataset.label || \"\") : \"\",\n          restaurantBanner:  JLC_CONFIG.restaurantName,\n          restaurantLabel:   JLC_CONFIG.labelCode,\n          photoJustificative,\n          pageUrl:           document.referrer || window.location.href,\n          submittedAt:       new Date().toISOString(),\n          userAgent:         navigator.userAgent\n        }\n      }\n    };\n  }\n\n  \/* \u2500\u2500\u2500 SEND \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  async function sendPayload(payload) {\n    try {\n      const res  = await fetch(JLC_CONFIG.webhookUrl, {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application\/json\" },\n        body:    JSON.stringify(payload),\n        mode:    \"cors\"\n      });\n      const data = await res.json().catch(() => null);\n      if (!res.ok) throw new Error(\"HTTP \" + res.status);\n      const ticketId = extractTicketId(data);\n      if (!ticketId) throw new Error(\"Webhook response did not include a ticket number.\");\n      return { ok: true, ticketId };\n    } catch (error) {\n      console.error(\"JLC form submit failed:\", error);\n      return { ok: false, ticketId: \"\" };\n    }\n  }\n\n  function normalizeTicketId(v) {\n    if (typeof v === \"number\" && Number.isFinite(v)) return String(v);\n    if (typeof v === \"string\") return v.trim();\n    return \"\";\n  }\n\n  function extractTicketId(data, depth) {\n    if ((depth || 0) > 5 || data == null) return \"\";\n    if (Array.isArray(data)) { for (const item of data) { const t = extractTicketId(item,(depth||0)+1); if (t) return t; } return \"\"; }\n    if (typeof data !== \"object\") return \"\";\n    const priorityKeys = [\"ticketNumber\",\"ticket_number\",\"ticketId\",\"ticket_id\",\"ticket\",\"numeroTicket\",\"numero_ticket\"];\n    for (const key of priorityKeys) { if (!Object.prototype.hasOwnProperty.call(data,key)) continue; const t = normalizeTicketId(data[key]); if (t) return t; }\n    for (const [key, value] of Object.entries(data)) { if (!\/ticket\/i.test(key)) continue; const t = normalizeTicketId(value); if (t) return t; }\n    for (const value of Object.values(data)) { const t = extractTicketId(value,(depth||0)+1); if (t) return t; }\n    return \"\";\n  }\n\n  \/* \u2500\u2500\u2500 SUCCESS \/ RESET \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function showSuccess(ticketId) {\n    if (formFields) formFields.classList.add(\"jlc-hidden\");\n    if (successBox)  successBox.classList.add(\"is-visible\");\n    if (successText) successText.textContent = TEXT.success;\n    if (errorBox)    errorBox.style.display  = \"none\";\n    const cleanId = normalizeTicketId(ticketId || existingTicketID || \"\");\n    if (successTicket) {\n      successTicket.textContent = cleanId ? TEXT.ticketLabel + \" \" + cleanId : \"\";\n      successTicket.classList.toggle(\"is-visible\", !!cleanId);\n    }\n    postHeight();\n  }\n\n  function clearOrderDetails() {\n    if (complaintType)  complaintType.value  = \"\";\n    if (momentDateTime) momentDateTime.value = \"\";\n    if (branchQuery)    branchQuery.value    = \"\";\n    if (branchResults)  branchResults.innerHTML = \"\";\n    updateBranchStatus(\"Enter a city, neighborhood, or postal code.\");\n  }\n\n  function resetFormState() {\n    form.reset();\n    if (existingTicketID && existingInput && ticketSection) {\n      existingInput.value = existingTicketID;\n      ticketSection.classList.add(\"is-visible\");\n    }\n    if (formFields) formFields.classList.remove(\"jlc-hidden\");\n    if (successBox)  successBox.classList.remove(\"is-visible\");\n    if (errorBox)    errorBox.style.display = \"none\";\n    if (branchResults) branchResults.innerHTML = \"\";\n    updateBranchStatus(\"Enter a city, neighborhood, or postal code.\");\n    clearPhotos();\n    resetCaptcha();\n    currentStepKey = \"order\";\n    showStep(\"order\");\n  }\n\n  function applyHelpChoiceDeepLink() {\n    setRadioValue(\"orderRelated\", \"yes\");\n    setRadioValue(\"thirdPartyOrder\", \"no\");\n    currentStepKey = \"contact_pref\";\n    showStep(\"contact_pref\");\n  }\n\n  \/* \u2500\u2500\u2500 PHONE COPY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function showPhoneCopyToast() {\n    if (!phoneToast) return false;\n    phoneToast.textContent = TEXT.copyToast;\n    phoneToast.classList.add(\"is-visible\");\n    window.setTimeout(() => phoneToast.classList.remove(\"is-visible\"), 2600);\n    return true;\n  }\n\n  async function copyPhoneNumber(phone) {\n    if (!phone) return;\n    try {\n      if (navigator.clipboard && navigator.clipboard.writeText) {\n        await navigator.clipboard.writeText(phone);\n        if (!showPhoneCopyToast()) window.prompt(TEXT.copyPrompt, phone);\n        return;\n      }\n    } catch (_) {}\n    try { window.prompt(TEXT.copyPrompt, phone); } catch (_) {}\n  }\n\n  \/* \u2500\u2500\u2500 POST HEIGHT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function postHeight() {\n    try {\n      const h = wrapper.scrollHeight || document.documentElement.scrollHeight;\n      if (window.parent && window.parent !== window) {\n        window.parent.postMessage({ type: \"JLC_FORM_HEIGHT\", height: h }, \"*\");\n      }\n    } catch (_) {}\n  }\n\n  \/* \u2500\u2500\u2500 EVENT LISTENERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  form.addEventListener(\"change\", (event) => {\n    const target = event.target;\n    if (!target) return;\n    if (target.type === \"radio\") {\n      clearErrorFor(target.name);\n      updateChoiceCards();\n      if (target.name === \"orderRelated\") {\n        clearOrderDetails();\n        setRadioValue(\"thirdPartyOrder\", \"\");\n        setRadioValue(\"contactPreference\", \"\");\n        window.setTimeout(() => showStep(target.value === \"yes\" ? \"source\" : \"contact_pref\"), 160);\n      } else if (target.name === \"thirdPartyOrder\") {\n        clearOrderDetails();\n        setRadioValue(\"contactPreference\", \"\");\n        window.setTimeout(() => showStep(target.value === \"yes\" ? \"third_party_block\" : \"contact_pref\"), 160);\n      } else if (target.name === \"contactPreference\" && target.value === \"form\") {\n        window.setTimeout(() => showStep(isOrderFlow() ? \"order_details\" : \"message\"), 160);\n      }\n    }\n    if (target === complaintType) syncConditionalFields();\n    if (target === photoFile) addPhotos(target.files);\n    updateNextBtnState();\n    postHeight();\n  });\n\n  form.addEventListener(\"input\", (event) => {\n    const target = event.target;\n    if (!target) return;\n    if (target === messageField) updateMessageCounter();\n    if (target === branchQuery)  { renderBranchResults([]); updateBranchStatus(\"Enter a location and click Search.\"); clearErrorFor(\"branchChoice\"); }\n    if (target.name) clearErrorFor(target.name);\n    updateNextBtnState();\n    postHeight();\n  });\n\n  form.addEventListener(\"keydown\", (event) => {\n    if (event.key !== \"Enter\") return;\n    const target = event.target;\n    if (target === branchQuery)                       return;\n    if (target && target.tagName === \"TEXTAREA\")      return;\n    if (target && target.tagName === \"BUTTON\")        return;\n    event.preventDefault();\n    if (currentStepKey === \"identity\") form.requestSubmit(submitBtn);\n    else goNext();\n  });\n\n  form.addEventListener(\"submit\", async (event) => {\n    event.preventDefault();\n    if (isSubmitting) return;\n    if (errorBox) errorBox.style.display = \"none\";\n    if (!validateCurrentStep()) { postHeight(); return; }\n\n    const hp = form.querySelector('input[name=\"company_hp\"]');\n    if (hp && hp.value.trim() !== \"\") { showSuccess(\"\"); return; }\n\n    const recaptchaToken = getRecaptchaToken();\n    if (!recaptchaToken) {\n      if (captchaWrap) captchaWrap.classList.add(\"jlc-invalid\");\n      if (errorBox) { errorBox.style.display = \"block\"; errorBox.textContent = TEXT.captchaReq; }\n      postHeight();\n      return;\n    }\n\n    isSubmitting = true;\n    if (submitBtn) { submitBtn.disabled = true; submitBtn.textContent = TEXT.sending; }\n\n    try {\n      const built = await buildPayload(recaptchaToken);\n      if (built.blocked) { showSuccess(\"\"); return; }\n      const result = await sendPayload(built.payload);\n      if (result.ok) showSuccess(result.ticketId);\n      else if (errorBox) { errorBox.style.display = \"block\"; errorBox.textContent = TEXT.submitError; }\n    } catch (_) {\n      if (errorBox) { errorBox.style.display = \"block\"; errorBox.textContent = TEXT.submitError; }\n      resetCaptcha();\n    } finally {\n      isSubmitting = false;\n      if (submitBtn) { submitBtn.disabled = false; submitBtn.textContent = TEXT.send; }\n      postHeight();\n    }\n  });\n\n  if (backBtn)         backBtn.addEventListener(\"click\", goBack);\n  if (nextBtn)         nextBtn.addEventListener(\"click\", goNext);\n  if (blockBackBtn)    blockBackBtn.addEventListener(\"click\", () => showStep(\"source\"));\n  if (branchSearchBtn) branchSearchBtn.addEventListener(\"click\", searchBranches);\n  if (branchQuery) {\n    branchQuery.addEventListener(\"keydown\", (event) => {\n      if (event.key !== \"Enter\") return;\n      event.preventDefault();\n      if (!branchSearchBtn || branchSearchBtn.disabled) return;\n      searchBranches();\n    });\n  }\n  if (branchResults) branchResults.addEventListener(\"change\", () => { clearErrorFor(\"branchChoice\"); updateNextBtnState(); postHeight(); });\n  if (photoList) {\n    photoList.addEventListener(\"click\", (event) => {\n      const button = event.target.closest(\"[data-photo-index]\");\n      if (!button) return;\n      const index = Number(button.dataset.photoIndex);\n      if (!Number.isInteger(index)) return;\n      selectedPhotos.splice(index, 1);\n      if (photoFile) {\n        photoFile.disabled = false;\n        photoFile.setCustomValidity(\"\");\n      }\n      clearErrorFor(\"photoFile\");\n      renderPhotos();\n    });\n  }\n  if (phoneLink && copyPhoneAction) {\n    phoneLink.addEventListener(\"click\", async (event) => {\n      event.preventDefault();\n      await copyPhoneNumber(String(phoneLink.dataset.phoneNumber || \"\"));\n    });\n  }\n  resetBtns.forEach((btn) => btn.addEventListener(\"click\", resetFormState));\n\n  try {\n    if (window.ResizeObserver) new ResizeObserver(postHeight).observe(wrapper);\n  } catch (_) {}\n\n  \/* \u2500\u2500\u2500 BOOT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  syncRequiredFields();\n  syncConditionalFields();\n  updateChoiceCards();\n  updateMessageCounter();\n  renderPhotos();\n  showStep(\"order\");\n  if (deepLinkToHelpChoice) applyHelpChoiceDeepLink();\n\n})();\n<\/script>\n<\/div><style type=\"text\/css\">.fusion-body .fusion-builder-column-1{width:100% !important;margin-top : 0px;margin-bottom : 20px;}.fusion-builder-column-1 > .fusion-column-wrapper {padding-top : 0px !important;padding-right : 0px !important;margin-right : 1.92%;padding-bottom : 0px !important;padding-left : 0px !important;margin-left : 1.92%;}@media only screen and (max-width:1024px) {.fusion-body .fusion-builder-column-1{width:100% !important;order : 0;}.fusion-builder-column-1 > .fusion-column-wrapper {margin-right : 1.92%;margin-left : 1.92%;}}@media only screen and (max-width:640px) {.fusion-body .fusion-builder-column-1{width:100% !important;order : 2;}.fusion-builder-column-1 > .fusion-column-wrapper {padding-right : 4% !important;margin-right : 1.92%;padding-left : 4% !important;margin-left : 1.92%;}}<\/style><\/div><\/div><style type=\"text\/css\">.fusion-fullwidth.fusion-builder-row-2 a:not(.awb-custom-text-color):not(.fusion-button):not(.fusion-builder-module-control):not(.fusion-social-network-icon):not(.fb-icon-element):not(.fusion-countdown-link):not(.fusion-rollover-link):not(.fusion-rollover-gallery):not(.fusion-button-bar):not(.add_to_cart_button):not(.show_details_button):not(.product_type_external):not(.fusion-view-cart):not(.fusion-quick-view):not(.fusion-rollover-title-link):not(.fusion-breadcrumb-link) , .fusion-fullwidth.fusion-builder-row-2 a:not(.awb-custom-text-color):not(.fusion-button):not(.fusion-builder-module-control):not(.fusion-social-network-icon):not(.fb-icon-element):not(.fusion-countdown-link):not(.fusion-rollover-link):not(.fusion-rollover-gallery):not(.fusion-button-bar):not(.add_to_cart_button):not(.show_details_button):not(.product_type_external):not(.fusion-view-cart):not(.fusion-quick-view):not(.fusion-rollover-title-link):not(.fusion-breadcrumb-link):before, .fusion-fullwidth.fusion-builder-row-2 a:not(.awb-custom-text-color):not(.fusion-button):not(.fusion-builder-module-control):not(.fusion-social-network-icon):not(.fb-icon-element):not(.fusion-countdown-link):not(.fusion-rollover-link):not(.fusion-rollover-gallery):not(.fusion-button-bar):not(.add_to_cart_button):not(.show_details_button):not(.product_type_external):not(.fusion-view-cart):not(.fusion-quick-view):not(.fusion-rollover-title-link):not(.fusion-breadcrumb-link):after {color: #e73440;}.fusion-fullwidth.fusion-builder-row-2 a:not(.awb-custom-text-hover-color):not(.fusion-button):not(.fusion-builder-module-control):not(.fusion-social-network-icon):not(.fb-icon-element):not(.fusion-countdown-link):not(.fusion-rollover-link):not(.fusion-rollover-gallery):not(.fusion-button-bar):not(.add_to_cart_button):not(.show_details_button):not(.product_type_external):not(.fusion-view-cart):not(.fusion-quick-view):not(.fusion-rollover-title-link):not(.fusion-breadcrumb-link):hover, .fusion-fullwidth.fusion-builder-row-2 a:not(.awb-custom-text-hover-color):not(.fusion-button):not(.fusion-builder-module-control):not(.fusion-social-network-icon):not(.fb-icon-element):not(.fusion-countdown-link):not(.fusion-rollover-link):not(.fusion-rollover-gallery):not(.fusion-button-bar):not(.add_to_cart_button):not(.show_details_button):not(.product_type_external):not(.fusion-view-cart):not(.fusion-quick-view):not(.fusion-rollover-title-link):not(.fusion-breadcrumb-link):hover:before, .fusion-fullwidth.fusion-builder-row-2 a:not(.awb-custom-text-hover-color):not(.fusion-button):not(.fusion-builder-module-control):not(.fusion-social-network-icon):not(.fb-icon-element):not(.fusion-countdown-link):not(.fusion-rollover-link):not(.fusion-rollover-gallery):not(.fusion-button-bar):not(.add_to_cart_button):not(.show_details_button):not(.product_type_external):not(.fusion-view-cart):not(.fusion-quick-view):not(.fusion-rollover-title-link):not(.fusion-breadcrumb-link):hover:after {color: #ffffff;}.fusion-fullwidth.fusion-builder-row-2 .pagination a.inactive:hover, .fusion-fullwidth.fusion-builder-row-2 .fusion-filters .fusion-filter.fusion-active a {border-color: #ffffff;}.fusion-fullwidth.fusion-builder-row-2 .pagination .current {border-color: #ffffff; background-color: #ffffff;}.fusion-fullwidth.fusion-builder-row-2 .fusion-filters .fusion-filter.fusion-active a, .fusion-fullwidth.fusion-builder-row-2 .fusion-date-and-formats .fusion-format-box, .fusion-fullwidth.fusion-builder-row-2 .fusion-popover, .fusion-fullwidth.fusion-builder-row-2 .tooltip-shortcode {color: #ffffff;}#wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .fusion-vertical-menu-widget .menu li.current_page_ancestor > a, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .fusion-vertical-menu-widget .menu li.current_page_ancestor > a:before, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .fusion-vertical-menu-widget .current-menu-item > a, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .fusion-vertical-menu-widget .current-menu-item > a:before, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .fusion-vertical-menu-widget .current_page_item > a, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .fusion-vertical-menu-widget .current_page_item > a:before {color: #ffffff;}#wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .widget_nav_menu .menu li.current_page_ancestor > a, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .widget_nav_menu .menu li.current_page_ancestor > a:before, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .widget_nav_menu .current-menu-item > a, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .widget_nav_menu .current-menu-item > a:before, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .widget_nav_menu .current_page_item > a, #wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .widget_nav_menu .current_page_item > a:before {color: #ffffff;}#wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-vertical-menu-widget .menu li.current_page_item > a { border-right-color:#ffffff;border-left-color:#ffffff;}#wrapper .fusion-fullwidth.fusion-builder-row-2 .fusion-widget-area .tagcloud a:hover { color: #fff; background-color: #ffffff;border-color: #ffffff;}#main .fusion-fullwidth.fusion-builder-row-2 .post .blog-shortcode-post-title a:hover {color: #ffffff;}.fusion-body .fusion-flex-container.fusion-builder-row-2{ padding-top : 0px;margin-top : 0;padding-right : 0px;padding-bottom : 100px;margin-bottom : 0;padding-left : 0px;}@media only screen and (max-width:1024px) {.fusion-body .fusion-flex-container.fusion-builder-row-2{ padding-right : 30px;padding-left : 30px;}}@media only screen and (max-width:640px) {.fusion-body .fusion-flex-container.fusion-builder-row-2{ padding-top : 50px;padding-right : 15px;padding-bottom : 50px;padding-left : 15px;}}<\/style><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container fusion-parallax-none gradient-container-3 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"background-color: #9dd6c7;background-image: url(&quot;https:\/\/jacklecoq.com\/wp-content\/uploads\/2022\/10\/JLC-Footer-motif.png&quot;);background-position: center top;background-repeat: no-repeat;border-width: 0px 0px 0px 0px;border-color:var(--awb-color3);border-style:solid;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-center\" style=\"max-width:1352px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_3 1_3 fusion-flex-column\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\" style=\"background-position:left top;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;padding: 0px 0px 0px 0px;\"><div ><span class=\" fusion-imageframe imageframe-none imageframe-1 hover-type-none\"><img decoding=\"async\" width=\"797\" height=\"993\" alt=\"Cow making a graffiti with a milk bag, sunglasses and a ball\" title=\"Vache qui fait un graffiti avec un sac de lait, des lunettes de soleil et un boulet\" src=\"https:\/\/jacklecoq.com\/wp-content\/uploads\/2022\/07\/vache.png\" class=\"img-responsive wp-image-4795\" srcset=\"https:\/\/jacklecoq.com\/wp-content\/uploads\/2022\/07\/vache-200x249.png 200w, https:\/\/jacklecoq.com\/wp-content\/uploads\/2022\/07\/vache-400x498.png 400w, https:\/\/jacklecoq.com\/wp-content\/uploads\/2022\/07\/vache-600x748.png 600w, https:\/\/jacklecoq.com\/wp-content\/uploads\/2022\/07\/vache.png 797w\" sizes=\"(max-width: 640px) 100vw, 400px\" \/><\/span><\/div><\/div><style type=\"text\/css\">.fusion-body .fusion-builder-column-2{width:33.333333333333% !important;margin-top : 0px;margin-bottom : 20px;}.fusion-builder-column-2 > .fusion-column-wrapper {padding-top : 0px !important;padding-right : 0px !important;margin-right : 5.76%;padding-bottom : 0px !important;padding-left : 0px !important;margin-left : 5.76%;}@media only screen and (max-width:1024px) {.fusion-body .fusion-builder-column-2{width:33.333333333333% !important;order : 0;}.fusion-builder-column-2 > .fusion-column-wrapper {margin-right : 5.76%;margin-left : 5.76%;}}@media only screen and (max-width:640px) {.fusion-body .fusion-builder-column-2{width:75% !important;order : 1;}.fusion-builder-column-2 > .fusion-column-wrapper {margin-right : 2.56%;margin-left : 2.56%;}}<\/style><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_2_3 2_3 fusion-flex-column\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\" style=\"background-position:left top;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;padding: 0px 0px 0px 0px;\"><style type=\"text\/css\">@media only screen and (max-width:1024px) {.fusion-title.fusion-title-2{margin-top:0px!important; margin-right:0px!important;margin-bottom:0px!important;margin-left:0px!important;}}@media only screen and (max-width:640px) {.fusion-title.fusion-title-2{margin-top:10px!important; margin-right:0px!important;margin-bottom:10px!important; margin-left:0px!important;}}<\/style><div class=\"fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;\"><h2 class=\"title-heading-left fusion-responsive-typography-calculated\" style=\"font-family:&quot;Corben&quot;;font-weight:700;margin:0;color:#17738a;--fontSize:48;line-height:var(--awb-typography1-line-height);\"><span style=\"color: #000000;\">Are you ready<\/span><\/h2><\/div><style type=\"text\/css\">@media only screen and (max-width:1024px) {.fusion-title.fusion-title-3{margin-top:0px!important; margin-right:0px!important;margin-bottom:0px!important;margin-left:0px!important;}}@media only screen and (max-width:640px) {.fusion-title.fusion-title-3{margin-top:10px!important; margin-right:0px!important;margin-bottom:10px!important; margin-left:0px!important;}}<\/style><div class=\"fusion-title title fusion-title-3 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;\"><h2 class=\"title-heading-left fusion-responsive-typography-calculated\" style=\"font-family:&quot;Corben&quot;;font-weight:700;margin:0;color:#ffffff;--fontSize:48;line-height:var(--awb-typography1-line-height);\"><p>pour Jack?<span style=\"color: #000000;\"><br \/>\n<\/span><\/p><\/h2><\/div><div ><style>.fusion-button.button-1 .fusion-button-text,.fusion-button.button-1 i{color:var(--awb-color1);}.fusion-button.button-1{border-color:var(--awb-color1);border-radius:30px 30px 30px 30px;background:#000000;}.fusion-button.button-1:hover .fusion-button-text,.fusion-button.button-1:hover i,.fusion-button.button-1:focus .fusion-button-text,.fusion-button.button-1:focus i,.fusion-button.button-1:active .fusion-button-text,.fusion-button.button-1:active i{color:#000000;}.fusion-button.button-1:hover,.fusion-button.button-1:active,.fusion-button.button-1:focus{border-color:#000000;background:#ffffff;}<\/style><a class=\"fusion-button button-flat button-xlarge button-custom button-1 fusion-button-default-span fusion-button-default-type\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/ordering.jacklecoq.com\/fr\/#\/JackLeCoq\/online\/restaurant-selection\" style=\"margin-top:30px;\"><span class=\"fusion-button-text\">order now<\/span><\/a><\/div><\/div><style type=\"text\/css\">.fusion-body .fusion-builder-column-3{width:66.666666666667% !important;margin-top : 27px;margin-bottom : 20px;}.fusion-builder-column-3 > .fusion-column-wrapper {padding-top : 0px !important;padding-right : 0px !important;margin-right : 2.88%;padding-bottom : 0px !important;padding-left : 0px !important;margin-left : 2.88%;}@media only screen and (max-width:1024px) {.fusion-body .fusion-builder-column-3{width:66.666666666667% !important;order : 0;}.fusion-builder-column-3 > .fusion-column-wrapper {margin-right : 2.88%;margin-left : 2.88%;}}@media only screen and (max-width:640px) {.fusion-body .fusion-builder-column-3{width:100% !important;order : 0;margin-bottom : 55px;}.fusion-builder-column-3 > .fusion-column-wrapper {margin-right : 1.92%;margin-left : 1.92%;}}<\/style><\/div><\/div><style type=\"text\/css\">.fusion-body .fusion-flex-container.fusion-builder-row-3{ padding-top : 30px;margin-top : 0px;padding-right : 0px;padding-bottom : 0px;margin-bottom : 0px;padding-left : 0px;}<\/style><\/div>\n<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":67,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"_acf_changed":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-5012","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Contact our restaurants - Jack Le Coq<\/title>\n<meta name=\"description\" content=\"For questions or comments, contact Jack le Coq fried chicken restaurants. We&#039;re in Montreal, Laval and on the South Shore.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jacklecoq.com\/en\/contact-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contact our restaurants - Jack Le Coq\" \/>\n<meta property=\"og:description\" content=\"For questions or comments, contact Jack le Coq fried chicken restaurants. We&#039;re in Montreal, Laval and on the South Shore.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jacklecoq.com\/en\/contact-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Jack Le Coq\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RestoJackLeCoq\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-08T18:49:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jacklecoq.com\/wp-content\/uploads\/2023\/05\/socialmedia-jlc2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1134\" \/>\n\t<meta property=\"og:image:height\" content=\"880\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/contact-2\\\/\",\"url\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/contact-2\\\/\",\"name\":\"Contact our restaurants - Jack Le Coq\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/#website\"},\"datePublished\":\"2022-10-27T01:06:33+00:00\",\"dateModified\":\"2026-06-08T18:49:02+00:00\",\"description\":\"For questions or comments, contact Jack le Coq fried chicken restaurants. We're in Montreal, Laval and on the South Shore.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/contact-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jacklecoq.com\\\/en\\\/contact-2\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/contact-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contact our restaurants\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/\",\"name\":\"Jack Le Coq\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/#organization\",\"name\":\"Jack le Coq\",\"url\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jacklecoq.com\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/socialmedia-jlc2.png\",\"contentUrl\":\"https:\\\/\\\/jacklecoq.com\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/socialmedia-jlc2.png\",\"width\":1134,\"height\":880,\"caption\":\"Jack le Coq\"},\"image\":{\"@id\":\"https:\\\/\\\/jacklecoq.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/RestoJackLeCoq\\\/\",\"https:\\\/\\\/www.instagram.com\\\/restojacklecoq\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Contact our restaurants - Jack Le Coq","description":"For questions or comments, contact Jack le Coq fried chicken restaurants. We're in Montreal, Laval and on the South Shore.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jacklecoq.com\/en\/contact-2\/","og_locale":"en_US","og_type":"article","og_title":"Contact our restaurants - Jack Le Coq","og_description":"For questions or comments, contact Jack le Coq fried chicken restaurants. We're in Montreal, Laval and on the South Shore.","og_url":"https:\/\/jacklecoq.com\/en\/contact-2\/","og_site_name":"Jack Le Coq","article_publisher":"https:\/\/www.facebook.com\/RestoJackLeCoq\/","article_modified_time":"2026-06-08T18:49:02+00:00","og_image":[{"width":1134,"height":880,"url":"https:\/\/jacklecoq.com\/wp-content\/uploads\/2023\/05\/socialmedia-jlc2.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/jacklecoq.com\/en\/contact-2\/","url":"https:\/\/jacklecoq.com\/en\/contact-2\/","name":"Contact our restaurants - Jack Le Coq","isPartOf":{"@id":"https:\/\/jacklecoq.com\/en\/#website"},"datePublished":"2022-10-27T01:06:33+00:00","dateModified":"2026-06-08T18:49:02+00:00","description":"For questions or comments, contact Jack le Coq fried chicken restaurants. We're in Montreal, Laval and on the South Shore.","breadcrumb":{"@id":"https:\/\/jacklecoq.com\/en\/contact-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jacklecoq.com\/en\/contact-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jacklecoq.com\/en\/contact-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jacklecoq.com\/en\/"},{"@type":"ListItem","position":2,"name":"Contact our restaurants"}]},{"@type":"WebSite","@id":"https:\/\/jacklecoq.com\/en\/#website","url":"https:\/\/jacklecoq.com\/en\/","name":"Jack Le Coq","description":"","publisher":{"@id":"https:\/\/jacklecoq.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jacklecoq.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jacklecoq.com\/en\/#organization","name":"Jack le Coq","url":"https:\/\/jacklecoq.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jacklecoq.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/jacklecoq.com\/wp-content\/uploads\/2023\/05\/socialmedia-jlc2.png","contentUrl":"https:\/\/jacklecoq.com\/wp-content\/uploads\/2023\/05\/socialmedia-jlc2.png","width":1134,"height":880,"caption":"Jack le Coq"},"image":{"@id":"https:\/\/jacklecoq.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RestoJackLeCoq\/","https:\/\/www.instagram.com\/restojacklecoq\/"]}]}},"_links":{"self":[{"href":"https:\/\/jacklecoq.com\/en\/wp-json\/wp\/v2\/pages\/5012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jacklecoq.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jacklecoq.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jacklecoq.com\/en\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/jacklecoq.com\/en\/wp-json\/wp\/v2\/comments?post=5012"}],"version-history":[{"count":34,"href":"https:\/\/jacklecoq.com\/en\/wp-json\/wp\/v2\/pages\/5012\/revisions"}],"predecessor-version":[{"id":6790,"href":"https:\/\/jacklecoq.com\/en\/wp-json\/wp\/v2\/pages\/5012\/revisions\/6790"}],"wp:attachment":[{"href":"https:\/\/jacklecoq.com\/en\/wp-json\/wp\/v2\/media?parent=5012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}