/*
 * JSC Frontend Appearance Stabilization & Controls v1.1.0
 * Final public/customer cascade layer.
 *
 * Goals:
 * - preserve page-builder background imagery by default
 * - centralize frontend fonts, text colours, fields, buttons and surfaces
 * - keep Form Builder DOM/field contract untouched
 * - keep Portal Shell Designer and Ticket & PDF Designer ownership boundaries
 */

:root{
  --jsc-fe-primary:#006b4f;--jsc-fe-primary-dark:#004f3b;--jsc-fe-primary-soft:#eaf6f0;
  --jsc-fe-accent:#c9a227;--jsc-fe-accent-dark:#9b7614;--jsc-fe-accent-soft:#fff7df;
  --jsc-fe-page-bg:#fbfaf5;--jsc-fe-page-bg-alt:#f1f7f3;--jsc-fe-surface:#fff;--jsc-fe-surface-soft:#f8fbf9;
  --jsc-fe-sidebar-surface:#fff;--jsc-fe-info-surface:#eef8f4;--jsc-fe-warning-surface:#fff7df;--jsc-fe-border:#d8e7df;
  --jsc-fe-heading-text:#173d32;--jsc-fe-body-text:#173d32;--jsc-fe-secondary-text:#536c63;--jsc-fe-label-text:#173d32;
  --jsc-fe-helper-text:#62766e;--jsc-fe-input-text:#173d32;--jsc-fe-placeholder-text:#7d9189;--jsc-fe-link:#006b4f;--jsc-fe-link-hover:#004f3b;
  --jsc-fe-field-bg:#fff;--jsc-fe-field-disabled-bg:#f2f6f4;--jsc-fe-field-border:#b8d1c5;--jsc-fe-field-hover-border:#6fae97;--jsc-fe-field-focus:#00815f;--jsc-fe-field-focus-halo:#00815f;
  --jsc-fe-button-primary-bg:#006b4f;--jsc-fe-button-primary-hover:#004f3b;--jsc-fe-button-primary-text:#fff;--jsc-fe-button-secondary-bg:#fff;--jsc-fe-button-secondary-text:#075b45;--jsc-fe-button-secondary-border:#b8d1c5;
  --jsc-fe-danger:#b42318;--jsc-fe-warning:#9a6a00;--jsc-fe-success:#08734f;
  --jsc-fe-body-font:Lato,Arial,Helvetica,sans-serif;--jsc-fe-heading-font:Georgia,"Times New Roman",serif;
  --jsc-fe-base-size:16px;--jsc-fe-nav-size:16px;--jsc-fe-form-size:16px;--jsc-fe-label-size:14px;--jsc-fe-button-size:16px;--jsc-fe-ticket-size:16px;--jsc-fe-small-size:14px;
  --jsc-fe-h1-size:42px;--jsc-fe-h2-size:28px;--jsc-fe-h3-size:20px;--jsc-fe-line-height:1.55;--jsc-fe-heading-line-height:1.15;
  --jsc-fe-heading-weight:800;--jsc-fe-label-weight:800;--jsc-fe-button-weight:800;--jsc-fe-touch-target:44px;
  --jsc-fe-card-radius:16px;--jsc-fe-field-radius:9px;--jsc-fe-field-height:46px;--jsc-fe-card-shadow:0 10px 26px rgba(21,69,53,.07);
  --jsc-fe-wash-green-alpha:.07;--jsc-fe-wash-gold-alpha:.08;
}

/* ---------- GLOBAL FRONTEND TYPOGRAPHY ---------- */
body.cust-help,body.jsc-withdraw-page{
  color:var(--jsc-fe-body-text);
  background-color:var(--jsc-fe-page-bg) !important; /* does NOT reset background-image */
  font-family:var(--jsc-fe-body-font) !important;
  font-size:var(--jsc-fe-base-size);
  line-height:var(--jsc-fe-line-height);
}
body.cust-help :where(h1,h2,h3,h4,h5,h6),body.jsc-withdraw-page :where(h1,h2,h3,h4,h5,h6){
  font-family:var(--jsc-fe-heading-font) !important;
  color:var(--jsc-fe-heading-text) !important;
  font-weight:var(--jsc-fe-heading-weight) !important;
  line-height:var(--jsc-fe-heading-line-height) !important;
}
body.cust-help main h1,body.jsc-withdraw-page main h1{font-size:var(--jsc-fe-h1-size)}
body.cust-help main h2,body.jsc-withdraw-page main h2{font-size:var(--jsc-fe-h2-size)}
body.cust-help main h3,body.jsc-withdraw-page main h3{font-size:var(--jsc-fe-h3-size)}
body.cust-help :where(p,li,dd,dt,td,th),body.jsc-withdraw-page :where(p,li,dd,dt,td,th){color:var(--jsc-fe-body-text)}
body.cust-help :where(small,.muted,.text-muted,.jsc-field-help),body.jsc-withdraw-page :where(small,.muted,.text-muted){color:var(--jsc-fe-helper-text) !important;font-size:var(--jsc-fe-small-size)}
body.cust-help main a:not(.btn):not([class*="btn"]):not([role=button]),body.jsc-withdraw-page main a:not(.btn):not([class*="btn"]):not([role=button]){color:var(--jsc-fe-link)}
body.cust-help main a:not(.btn):not([class*="btn"]):not([role=button]):hover,body.jsc-withdraw-page main a:not(.btn):not([class*="btn"]):not([role=button]):hover{color:var(--jsc-fe-link-hover)}

/* Header/footer geometry remains Portal Shell Designer territory; typography inherits global body font. */
body.cust-help .jsh-nav__item{font-size:var(--jsc-fe-nav-size)}

/* ---------- NON-DESTRUCTIVE BACKGROUND WASH ----------
   Applied to content canvases, never to the account-stage element carrying
   Login/Register's configured background-image. */
body.jsc-public-form-page .main__content,
body.jsc-service-select .main__content,
body.jsc-ticket-status-page .main__content,
body.jsc-kb-v312 .main__content,
body.jsc-my-tickets-page .main__content,
body.jsc-tracking-assistance-page .main__content,
body.j26-home:not(.jsc-tracking-assistance-page) .main__content{
  background-color:var(--jsc-fe-page-bg) !important;
  background-image:
    radial-gradient(circle at 3% 8%,rgba(0,107,79,var(--jsc-fe-wash-green-alpha)) 0,rgba(0,107,79,0) 28%),
    radial-gradient(circle at 96% 18%,rgba(201,162,39,var(--jsc-fe-wash-gold-alpha)) 0,rgba(201,162,39,0) 26%),
    linear-gradient(180deg,var(--jsc-fe-page-bg) 0%,var(--jsc-fe-page-bg-alt) 52%,var(--jsc-fe-page-bg) 100%) !important;
}

/* Critical v1.1 stabilization: never use background shorthand on .jsc-account-stage. */
body.jsc-account-page .jsc-account-stage{
  background-color:var(--jsc-fe-page-bg); /* inline/background-image from Login/Register Designer survives */
  color:var(--jsc-fe-body-text);
}

/* ---------- SHARED CARDS / SURFACES ---------- */
body.cust-help :where(.jsc-form-card,.jsc-side-card,.jsc-account-card,.jsc-account-benefit,.jsc-service-card,.jsc-mt-search-card,.jsc-mt-table-card,.jsc-ta-card,.jsc-kb-card,.j26-card,.ticket__body,.ticket__params),
body.jsc-withdraw-page :where(.jsc-wd-card,.jsc-wd-success){
  background-color:var(--jsc-fe-surface) !important;
  border-color:var(--jsc-fe-border) !important;
  border-radius:var(--jsc-fe-card-radius) !important;
  box-shadow:var(--jsc-fe-card-shadow) !important;
}

/* ---------- FORMS / CONTROLS ---------- */
body.cust-help :where(label,legend,.label),body.jsc-withdraw-page :where(label,legend,.label){
  color:var(--jsc-fe-label-text) !important;
  font-family:var(--jsc-fe-body-font) !important;
  font-size:var(--jsc-fe-label-size);
  font-weight:var(--jsc-fe-label-weight) !important;
}
body.cust-help :where(input[type=text],input[type=email],input[type=tel],input[type=date],input[type=password],input[type=number],select,textarea,.form-control,.jsc-fe-input,.jsc-phone-code,.jsc-ta-control),
body.jsc-withdraw-page :where(input[type=text],input[type=email],input[type=tel],input[type=date],input[type=password],input[type=number],select,textarea){
  min-height:var(--jsc-fe-field-height) !important;
  box-sizing:border-box;
  background-color:var(--jsc-fe-field-bg) !important;
  color:var(--jsc-fe-input-text) !important;
  border:1px solid var(--jsc-fe-field-border) !important;
  border-radius:var(--jsc-fe-field-radius) !important;
  box-shadow:0 1px 2px rgba(11,76,56,.02) !important;
  font-family:var(--jsc-fe-body-font) !important;
  font-size:var(--jsc-fe-form-size) !important;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease !important;
}
body.cust-help :where(input,select,textarea,.form-control,.jsc-fe-input,.jsc-phone-code,.jsc-ta-control):hover,
body.jsc-withdraw-page :where(input,select,textarea):hover{border-color:var(--jsc-fe-field-hover-border) !important}
body.cust-help :where(input,select,textarea,.form-control,.jsc-fe-input,.jsc-phone-code,.jsc-ta-control):focus,
body.cust-help :where(input,select,textarea,.form-control,.jsc-fe-input,.jsc-phone-code,.jsc-ta-control):focus-visible,
body.jsc-withdraw-page :where(input,select,textarea):focus,
body.jsc-withdraw-page :where(input,select,textarea):focus-visible{
  outline:none !important;
  background-color:var(--jsc-fe-field-bg) !important;
  border-color:var(--jsc-fe-field-focus) !important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--jsc-fe-field-focus-halo) 14%,transparent),inset 3px 0 0 var(--jsc-fe-accent) !important;
}
body.cust-help :where(input,textarea)::placeholder,body.jsc-withdraw-page :where(input,textarea)::placeholder{color:var(--jsc-fe-placeholder-text) !important;opacity:1}
body.cust-help :where(input,select,textarea):disabled{background-color:var(--jsc-fe-field-disabled-bg) !important;color:var(--jsc-fe-secondary-text) !important}
body.cust-help input[type=checkbox],body.cust-help input[type=radio],body.jsc-withdraw-page input[type=checkbox],body.jsc-withdraw-page input[type=radio]{accent-color:var(--jsc-fe-primary)}

/* Chrome/Edge autofill: remove the browser blue fill shown on Login/Register. */
body.cust-help input:-webkit-autofill,
body.cust-help input:-webkit-autofill:hover,
body.cust-help input:-webkit-autofill:focus,
body.cust-help textarea:-webkit-autofill,
body.cust-help select:-webkit-autofill{
  -webkit-text-fill-color:var(--jsc-fe-input-text) !important;
  -webkit-box-shadow:0 0 0 1000px var(--jsc-fe-field-bg) inset !important;
  box-shadow:0 0 0 1000px var(--jsc-fe-field-bg) inset !important;
  caret-color:var(--jsc-fe-input-text) !important;
  transition:background-color 99999s ease-out 0s;
}

/* ---------- BUTTON GOVERNANCE ---------- */
body.cust-help :where(.jsc-primary,.btn-primary,.btn-full,.jsc-ta-btn,.jsc-mt-new-btn,.fileinput-button),
body.jsc-withdraw-page :where(.jsc-primary,.btn-primary){
  min-height:var(--jsc-fe-touch-target);
  background:var(--jsc-fe-button-primary-bg) !important;
  border-color:var(--jsc-fe-button-primary-bg) !important;
  color:var(--jsc-fe-button-primary-text) !important;
  font-family:var(--jsc-fe-body-font) !important;
  font-size:var(--jsc-fe-button-size) !important;
  font-weight:var(--jsc-fe-button-weight) !important;
}
body.cust-help :where(.jsc-primary,.btn-primary,.btn-full,.jsc-ta-btn,.jsc-mt-new-btn,.fileinput-button):hover,
body.jsc-withdraw-page :where(.jsc-primary,.btn-primary):hover{
  background:var(--jsc-fe-button-primary-hover) !important;border-color:var(--jsc-fe-button-primary-hover) !important;
}
body.cust-help :where(.jsc-btn:not(.jsc-primary),.btn-secondary),body.jsc-withdraw-page :where(.jsc-btn:not(.jsc-primary),.btn-secondary){
  background:var(--jsc-fe-button-secondary-bg) !important;color:var(--jsc-fe-button-secondary-text) !important;border-color:var(--jsc-fe-button-secondary-border) !important;
  font-size:var(--jsc-fe-button-size);font-weight:var(--jsc-fe-button-weight);
}

/* ---------- COMPLAINT / PETITION FORM ---------- */
body.jsc-public-form-page .jsc-public-wrap{background:transparent !important}
body.jsc-public-form-page .jsc-form-card{position:relative;padding:16px !important;overflow:visible}
body.jsc-public-form-page .jsc-form-card::before{content:"";position:absolute;top:-1px;left:18px;right:18px;height:2px;background:linear-gradient(90deg,var(--jsc-fe-accent),transparent);border-radius:2px}
body.jsc-public-form-page .jsc-card-title{align-items:flex-start !important;gap:11px !important;margin-bottom:16px !important;padding-bottom:11px;border-bottom:1px solid color-mix(in srgb,var(--jsc-fe-accent) 35%,transparent)}
body.jsc-public-form-page .jsc-card-title>span{flex:0 0 32px;width:32px !important;height:32px !important;border-radius:50% !important;display:grid !important;place-items:center !important;color:#fff !important;background:linear-gradient(145deg,var(--jsc-fe-primary),var(--jsc-fe-primary-dark)) !important;box-shadow:0 4px 10px rgba(0,107,79,.18);font-weight:900 !important}
body.jsc-public-form-page .jsc-card-title h2{font-size:var(--jsc-fe-h3-size) !important}
body.jsc-public-form-page .jsc-field-help{line-height:1.5 !important}

body.jsc-public-form-page .jsc-word-editor{overflow:hidden;border:1px solid var(--jsc-fe-field-border) !important;border-radius:var(--jsc-fe-field-radius) !important;background:var(--jsc-fe-field-bg) !important;box-shadow:0 2px 7px rgba(21,69,53,.035)}
body.jsc-public-form-page .jsc-word-toolbar{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:7px 8px !important;background:linear-gradient(180deg,var(--jsc-fe-field-bg),var(--jsc-fe-accent-soft)) !important;border-bottom:1px solid var(--jsc-fe-border) !important}
body.jsc-public-form-page .jsc-word-toolbar button{min-height:36px !important;border:1px solid var(--jsc-fe-field-border) !important;border-radius:7px !important;background:var(--jsc-fe-field-bg) !important;color:var(--jsc-fe-input-text) !important}
body.jsc-public-form-page .jsc-word-toolbar button:hover,body.jsc-public-form-page .jsc-word-toolbar button:focus-visible{background:var(--jsc-fe-primary-soft) !important;border-color:var(--jsc-fe-primary) !important;color:var(--jsc-fe-primary-dark) !important}
body.jsc-public-form-page .jsc-word-page{min-height:220px !important;background:var(--jsc-fe-field-bg) !important;color:var(--jsc-fe-input-text) !important;font-family:var(--jsc-fe-body-font) !important;font-size:var(--jsc-fe-form-size) !important}
body.jsc-public-form-page .jsc-word-editor-status{background:var(--jsc-fe-surface-soft) !important;color:var(--jsc-fe-helper-text) !important;border-top:1px solid var(--jsc-fe-border) !important}
body.jsc-public-form-page :where(.dropzone,.dz-message,[data-dz-message]){border-color:var(--jsc-fe-field-hover-border) !important;background:linear-gradient(180deg,var(--jsc-fe-field-bg),var(--jsc-fe-surface-soft)) !important;color:var(--jsc-fe-body-text) !important;border-radius:12px !important}
body.jsc-public-form-page .jsc-side-card{background:var(--jsc-fe-sidebar-surface) !important}
body.jsc-public-form-page .jsc-side-accent-gold{background:linear-gradient(180deg,var(--jsc-fe-sidebar-surface),var(--jsc-fe-warning-surface)) !important;border-color:color-mix(in srgb,var(--jsc-fe-accent) 45%,var(--jsc-fe-border)) !important}

/* ---------- SERVICE SELECTION ---------- */
body.jsc-service-select .jsc-service-page{background:transparent !important}
body.jsc-service-select .jsc-service-card{background-color:var(--jsc-fe-surface) !important;border-color:var(--jsc-fe-border) !important}
body.jsc-service-select .jsc-service-card--gold{background:linear-gradient(180deg,var(--jsc-fe-surface),var(--jsc-fe-warning-surface)) !important;border-color:color-mix(in srgb,var(--jsc-fe-accent) 45%,var(--jsc-fe-border)) !important}
body.jsc-service-select .jsc-service-icon{color:#fff !important;background:linear-gradient(145deg,var(--jsc-fe-primary),var(--jsc-fe-primary-dark)) !important}

/* ---------- LOGIN / REGISTER ---------- */
body.jsc-account-page .jsc-account-card{background-color:var(--jsc-fe-surface) !important;border-color:var(--jsc-fe-border) !important}
body.jsc-account-page .jsc-account-copy__rule,body.jsc-account-page .jsc-account-card__accent{background:var(--jsc-fe-accent) !important}
body.jsc-account-page .jsc-account-benefit__icon{background:var(--jsc-fe-accent-soft) !important;color:var(--jsc-fe-primary) !important;border-color:color-mix(in srgb,var(--jsc-fe-accent) 30%,var(--jsc-fe-border)) !important}
body.jsc-account-page .captcha-block{background:var(--jsc-fe-surface-soft) !important;border-color:var(--jsc-fe-border) !important}

/* ---------- TICKET STATUS / CUSTOMER TICKET ---------- */
body.jsc-ticket-status-page{font-size:var(--jsc-fe-ticket-size)}
body.jsc-ticket-status-page :where(.ticket__body,.ticket__params,.jsc-ticket-card,.jsc-u-card,.jsc-u-section){background-color:var(--jsc-fe-surface) !important;border-color:var(--jsc-fe-border) !important}
body.jsc-ticket-status-page :where(.jsc-ticket-actions,.ticket__actions){background-color:var(--jsc-fe-sidebar-surface)}

/* ---------- KNOWLEDGEBASE ---------- */
body.jsc-kb-v312 :where(.topics,.preview,.jsc-kb-help-card,.jsc-kb-card,.jsc-kb-panel){background:var(--jsc-fe-surface) !important;border-color:var(--jsc-fe-border) !important}
body.jsc-kb-v312 :where(.jsc-kb-hero,.jsc-kb-search){border-color:var(--jsc-fe-border) !important}

/* ---------- HOMEPAGE / MY TICKETS / TRACKING ---------- */
/*
 * Homepage card surfaces are owned by Front Page Builder.
 * Frontend Appearance remains authoritative for typography.
 */
/*
 * Homepage card/icon colours are owned by Front Page Builder.
 */
body.jsc-my-tickets-page :where(.jsc-mt-search-card,.jsc-mt-table-card),body.jsc-tracking-assistance-page .jsc-ta-card{border-color:var(--jsc-fe-border) !important;background:var(--jsc-fe-surface) !important;box-shadow:var(--jsc-fe-card-shadow) !important}
body.jsc-tracking-assistance-page .jsc-ta-round-icon{background:var(--jsc-fe-primary-soft) !important;color:var(--jsc-fe-primary) !important}

/* Semantic states stay meaningfully distinct. */
body.cust-help :where(.error,.is-error,.danger){--jsc-state-color:var(--jsc-fe-danger)}
body.cust-help :where(.success,.is-success){--jsc-state-color:var(--jsc-fe-success)}
body.cust-help :where(.warning,.is-warning){--jsc-state-color:var(--jsc-fe-warning)}

@media(max-width:920px){body.jsc-public-form-page .jsc-form-card{padding:14px !important}}
@media(max-width:640px){body.cust-help main h1{font-size:clamp(30px,var(--jsc-fe-h1-size),42px)}body.jsc-public-form-page .jsc-word-page{min-height:180px !important}}
@media(prefers-reduced-motion:reduce){body.cust-help *,body.cust-help *::before,body.cust-help *::after{transition-duration:.001ms !important}}

/* ============================================================
   JSC REQUIRED FIELD MARKER NORMALIZATION
   Legacy HESK/JSC theme absolutely positioned required markers.
   Keep required semantics intact; presentation only.
   ============================================================ */

body.cust-help .form-group.required .label:after,
body.cust-help .form-group.required label:after,
body.cust-help .label.required:after,
body.cust-help label.required:after,
body.jsc-withdraw-page .form-group.required .label:after,
body.jsc-withdraw-page .form-group.required label:after,
body.jsc-withdraw-page .label.required:after,
body.jsc-withdraw-page label.required:after {
    content: " *" !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: inline !important;
    margin-left: .15em !important;
    vertical-align: baseline !important;
    font-size: inherit !important;
    line-height: inherit !important;
    font-weight: 700 !important;
    color: var(--jsc-fe-danger, #b42318) !important;
}

/* ============================================================
   JSC FRONTEND TYPOGRAPHY AUTHORITY
   Frontend Appearance owns public typography.
   Page overrides apply to page content.
   Header/navigation remains on the global portal font.
   ============================================================ */

/* Public page body/content follows the active page Body/UI font. */
body.jsc-public-form-page .jsc-public-wrap,
body.jsc-public-form-page .jsc-public-form,
body.jsc-public-form-page .jsc-form-card,
body.jsc-public-form-page .jsc-side-card {
    font-family:var(--jsc-fe-body-font) !important;
}

/* Main page heading follows configured display font and H1 size. */
body.jsc-public-form-page .jsc-public-heading-v202 h1,
body.jsc-public-form-page .jsc-public-heading h1,
body.jsc-public-form-page main h1 {
    font-family:var(--jsc-fe-heading-font) !important;
    font-size:var(--jsc-fe-h1-size) !important;
    font-weight:var(--jsc-fe-heading-weight) !important;
    line-height:var(--jsc-fe-heading-line-height) !important;
}

/* Complaint-form section/card headings intentionally use H3 scale. */
body.jsc-public-form-page .jsc-card-title h2,
body.jsc-public-form-page .jsc-form-card > h2 {
    font-family:var(--jsc-fe-heading-font) !important;
    font-size:var(--jsc-fe-h3-size) !important;
    font-weight:var(--jsc-fe-heading-weight) !important;
    line-height:var(--jsc-fe-heading-line-height) !important;
}

/* Labels use the dedicated label typography controls. */
body.jsc-public-form-page .jsc-public-form .jsc-engine-field label,
body.jsc-public-form-page .jsc-public-form .jsc-form-card label,
body.jsc-public-form-page .jsc-public-form .jsc-form-card .label,
body.jsc-public-form-page .jsc-public-form .jsc-choice {
    font-family:var(--jsc-fe-body-font) !important;
    font-size:var(--jsc-fe-label-size) !important;
    font-weight:var(--jsc-fe-label-weight) !important;
}

/* Inputs/selects/textareas use page Body/UI font + Forms size. */
body.jsc-public-form-page .jsc-public-form input[type=text],
body.jsc-public-form-page .jsc-public-form input[type=email],
body.jsc-public-form-page .jsc-public-form input[type=tel],
body.jsc-public-form-page .jsc-public-form input[type=date],
body.jsc-public-form-page .jsc-public-form input[type=password],
body.jsc-public-form-page .jsc-public-form input[type=number],
body.jsc-public-form-page .jsc-public-form select,
body.jsc-public-form-page .jsc-public-form textarea,
body.jsc-public-form-page .jsc-public-form .jsc-fe-input,
body.jsc-public-form-page .jsc-public-form .jsc-phone-code,
body.jsc-public-form-page .jsc-public-form .form-control {
    font-family:var(--jsc-fe-body-font) !important;
    font-size:var(--jsc-fe-form-size) !important;
}

/* Helper/supporting text uses dedicated small-text size. */
body.jsc-public-form-page .jsc-public-form .jsc-field-help,
body.jsc-public-form-page .jsc-public-form .jsc-card-title small,
body.jsc-public-form-page .jsc-public-form .jsc-upload p {
    font-family:var(--jsc-fe-body-font) !important;
    font-size:var(--jsc-fe-small-size) !important;
}

/* Public form buttons use page Body/UI font + Button size. */
body.jsc-public-form-page .jsc-public-form .jsc-btn,
body.jsc-public-form-page .jsc-public-form .jsc-primary,
body.jsc-public-form-page .jsc-public-form .btn,
body.jsc-public-form-page .jsc-public-form button {
    font-family:var(--jsc-fe-body-font) !important;
    font-size:var(--jsc-fe-button-size) !important;
}

/*
 * Shell typography must remain global.
 * A Complaint/Form page override must never change the header navigation font.
 */
body.cust-help .jsh-nav__item,
body.cust-help .jsc-mobile-menu-toggle {
    font-family:var(--jsc-public-font) !important;
    font-size:var(--jsc-fe-nav-size) !important;
}

/* ============================================================
   JSC HOMEPAGE TYPOGRAPHY AUTHORITY
   Frontend Appearance controls homepage typography.
   Homepage Builder retains content/layout/imagery/card geometry.
   ============================================================ */

/* Hero display heading */
body.j26-home .j26-hero h1 {
    font-family:var(--jsc-fe-heading-font) !important;
    font-size:var(--jsc-fe-h1-size) !important;
    font-weight:var(--jsc-fe-heading-weight) !important;
    line-height:var(--jsc-fe-heading-line-height) !important;
}

/* Homepage section heading */
body.j26-home .j26-kb-card h2,
body.j26-home .j26-simple h2 {
    font-family:var(--jsc-fe-heading-font) !important;
    font-size:var(--jsc-fe-h2-size) !important;
    font-weight:var(--jsc-fe-heading-weight) !important;
    line-height:var(--jsc-fe-heading-line-height) !important;
}

/* Service-card headings */
body.j26-home .j26-card h3 {
    font-family:var(--jsc-fe-heading-font) !important;
    font-size:var(--jsc-fe-h3-size) !important;
    font-weight:var(--jsc-fe-heading-weight) !important;
    line-height:var(--jsc-fe-heading-line-height) !important;
}

/* Main homepage descriptive text */
body.j26-home .j26-hero__copy p,
body.j26-home .j26-simple p {
    font-family:var(--jsc-fe-body-font) !important;
    font-size:var(--jsc-fe-base-size) !important;
    line-height:var(--jsc-fe-line-height) !important;
}

/* Supporting/card text */
body.j26-home .j26-card p,
body.j26-home .j26-kb-card p {
    font-family:var(--jsc-fe-body-font) !important;
    font-size:var(--jsc-fe-small-size) !important;
    line-height:var(--jsc-fe-line-height) !important;
}

/* Homepage actions */
body.j26-home .j26-card__button,
body.j26-home .j26-kb-card__button,
body.j26-home .j26-button {
    font-family:var(--jsc-fe-body-font) !important;
    font-size:var(--jsc-fe-button-size) !important;
    font-weight:var(--jsc-fe-button-weight) !important;
}

/*
 * Unified public footer follows GLOBAL frontend font.
 * Page overrides must not change institutional shell typography.
 */
body.cust-help .jsc-unified-footer {
    font-family:var(--jsc-fe-global-body-font, Lato, Arial, sans-serif) !important;
}
