/* QA-010: INFERRED accessibility/support neutral, not an official brand-palette accent.
   #867b6c has >=3.32:1 contrast against the current pale form surfaces.
   Only active control boundaries change. Decorative separators and native checkbox/radio
   appearance remain untouched; disabled controls are intentionally exempt. */
:root{--joud-control-boundary:#867b6c;--joud-control-focus:#580929}
:is(
  #siteCoffee .jcc-field input,#siteCoffee .jcc-field select,#siteCoffee .jcc-field textarea,
  #siteCoffee .jc-select,#siteCoffee .jc-input,#siteCoffee .jc-textarea,
  #siteCoffee .email-form input,
  #siteCafe .winput,#siteCafe .wselect,#siteCafe .wtext,#siteCafe .ctstep input,
  #siteCafe #page-catering .c2-field input,#siteCafe #page-catering .c2-field select,
  #siteCafe #page-catering .c2-field textarea,#siteCafe #page-catering .c2-guests input,
  .jf-field input,.jf-field select,.jf-field textarea,.jl-field select,
  body.joud-bakery input,body.joud-bakery select,body.joud-bakery textarea
):not(:disabled):not([type="checkbox"]):not([type="radio"]){border-color:var(--joud-control-boundary)}
:is(
  #siteCoffee .jcc-field input,#siteCoffee .jcc-field select,#siteCoffee .jcc-field textarea,
  #siteCoffee .jc-select,#siteCoffee .jc-input,#siteCoffee .jc-textarea,
  #siteCoffee .email-form input,
  #siteCafe .winput,#siteCafe .wselect,#siteCafe .wtext,#siteCafe .ctstep input,
  #siteCafe #page-catering .c2-field input,#siteCafe #page-catering .c2-field select,
  #siteCafe #page-catering .c2-field textarea,#siteCafe #page-catering .c2-guests input,
  .jf-field input,.jf-field select,.jf-field textarea,.jl-field select,
  body.joud-bakery input,body.joud-bakery select,body.joud-bakery textarea
):not(:disabled):is(:focus,[aria-invalid="true"]){border-color:var(--joud-control-focus);outline-color:var(--joud-control-focus)}
/* Compound input boundaries; their inner borderless input stays borderless. */
#siteCoffee :is(.jc-field-search,.jc-quantity),
#siteCafe #page-catering .c2-quantity,
body.joud-bakery .bk-qty{border-color:var(--joud-control-boundary)}
#siteCoffee :is(.jc-field-search,.jc-quantity):focus-within,
#siteCafe #page-catering .c2-quantity:focus-within,
body.joud-bakery .bk-qty:focus-within{border-color:var(--joud-control-focus)}
/* Unselected choice boundaries, not checked/selected burgundy states. */
#siteCoffee .jc-segment label:not(:has(input:checked,input:disabled)),
#siteCoffee .jcc-choice:not(:has(input:checked,input:disabled)),
body.joud-bakery .bc-choice:not(:has(input:checked,input:disabled)),
body.joud-bakery .bk-segments input:not(:checked):not(:disabled)+span,
#siteCafe #page-catering .c2-btn:not(.c2-primary):not(:disabled):not([aria-pressed="true"]){border-color:var(--joud-control-boundary)}

/* QA-020: reuse the existing newsletter's muted text neutral for active hints.
   INFERRED support token, not a new official brand colour. The browser's #757575
   hint fails 4.5:1 on cream; #6b6252 exceeds 4.5:1 on these pale form surfaces.
   Only actual hint roles are scoped here. Disabled passwords/date controls,
   entered values, native appearance, autofill and all geometry stay unchanged. */
:root{--joud-placeholder:#6b6252}
:is(
  #siteCoffee .jc-field-search input[placeholder],
  #siteCafe #locQ[placeholder],
  #siteCafe #page-catering .c2-guests input[placeholder],
  #siteCafe #page-catering .c2-field input[placeholder],
  #siteCafe #page-catering .c2-field textarea[placeholder],
  body.joud-bakery .bk-filters input[type="search"][placeholder]
):not(:disabled)::placeholder{color:var(--joud-placeholder);opacity:1}
