/* Keep the first painted font when a slow connection misses the preload. */
@font-face{font-family:NomiRestaurantRubik;src:url('/fonts/Rubik-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:optional}
@font-face{font-family:NomiRestaurantRubik;src:url('/fonts/Rubik-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600 900;font-display:optional}
/* Selected-language startup: never reveal the untranslated page on a slow connection. */
html{scrollbar-gutter:stable}
html[data-nomi-loading] body>:not(.nomi-startup-status){visibility:hidden!important}
html[data-nomi-loading]::before{content:"Nomi Food";position:fixed;inset:0;z-index:2147482999;display:grid;place-items:center;background:#fff8f2;color:#c82f08;font:700 1.8rem/1.2 system-ui,sans-serif}
.nomi-startup-status{position:fixed;inset:0;z-index:2147483000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;background:#fff8f2;color:#181411;text-align:center;font:400 1rem/1.5 system-ui,sans-serif}
.nomi-startup-status strong{color:#c82f08;font-size:1.8rem}
.nomi-startup-status p{max-width:28rem;margin:0}
.nomi-startup-status button{border:0;border-radius:.85rem;padding:.85rem 1.25rem;background:#c82f08;color:#fff;font:700 1rem/1.4 system-ui,sans-serif;cursor:pointer}
.nomi-startup-status button:focus-visible{outline:3px solid #24720c;outline-offset:4px}
/* End selected-language startup. */
.nomi-language-select {
  min-height: 44px;
  max-width: 156px;
  min-width: 112px;
  padding: 8px 28px 8px 12px;
  border: 1px solid #dfe3db;
  border-radius: 12px;
  color: #ad3706;
  background: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
}
.nomi-language-select:focus-visible { outline: 3px solid #ff6b2b; outline-offset: 2px; }
.dialog-language { display: flex; justify-content: flex-end; margin-bottom: 12px; }
.locale-save-notice { max-width: 1180px; margin: 0 auto; padding: 0 20px; text-align: right; font-size: 12px; }
.locale-save-notice:has(#localeSaveStatus:empty) { display: none; }
.locale-save-notice button { color: #ad3706; background: #fff; border: 1px solid #dfe3db; border-radius: 8px; min-height: 40px; }
@media (max-width: 420px) {
  .nomi-language-select { min-width: 104px; max-width: 124px; padding-inline: 8px; }
  .site-header .brand { min-width: 0; flex: 1; }
  .site-header .brand img { max-width: 100%; height: auto; }
  .site-header .header-actions { flex-shrink: 0; }
  .site-header .api-health { display: none; }
}

:root {
  --orange: #fd5516;
  --orange-dark: #d9410c;
  --orange-pale: #fff0ea;
  --green: #40ac1b;
  --green-dark: #27810b;
  --green-pale: #eaf7e6;
  --ink: #171a1f;
  --gray: #747a82;
  --line: #dfe2dc;
  --off-white: #f7f8f5;
  --white: #ffffff;
  --danger: #b42318;
  --danger-pale: #fff2f0;
  --shadow: 0 22px 55px rgba(23, 26, 31, 0.1);
  --radius-lg: 24px;
  --radius-md: 15px;
  --radius-sm: 10px;
  color-scheme: light;
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--off-white);
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background: var(--off-white);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

button,
input,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  color: inherit;
}

.brand-strip {
  display: grid;
  grid-template-columns: minmax(72px, 36%) 1fr;
  height: 7px;
  background: var(--orange);
}

.brand-strip span:last-child {
  background: var(--green);
}

.site-header {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 26px 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
}

.brand img {
  display: block;
  width: clamp(148px, 17vw, 208px);
  height: auto;
}

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}

.api-health {
  min-height: 36px;
  padding: 7px 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--gray);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.health-dot,
.preview-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #a8adb3;
  box-shadow: 0 0 0 4px rgba(116, 122, 130, 0.12);
}

.api-health.is-ok {
  color: var(--green-dark);
  border-color: rgba(64, 172, 27, 0.28);
  background: var(--green-pale);
}

.api-health.is-ok .health-dot {
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(64, 172, 27, 0.13);
}

.api-health.is-error {
  color: var(--danger);
  border-color: rgba(180, 35, 24, 0.24);
  background: var(--danger-pale);
}

.api-health.is-error .health-dot {
  background: var(--danger);
  box-shadow: 0 0 0 4px rgba(180, 35, 24, 0.1);
}

.language-switch {
  padding: 3px;
  display: flex;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
}

.language-switch button {
  min-width: 43px;
  height: 36px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--gray);
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
}

.language-switch button[aria-pressed="true"] {
  color: var(--ink);
  background: var(--orange);
}

.page-shell {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 22px 0 54px;
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(520px, 1.14fr);
  align-items: start;
  gap: clamp(38px, 7vw, 90px);
}

.hero {
  padding: clamp(22px, 4vw, 48px) 0 0;
  position: sticky;
  top: 0;
}

.preview-badge {
  width: fit-content;
  min-height: 32px;
  margin-bottom: 24px;
  padding: 6px 11px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--green-dark);
  background: var(--green-pale);
  border: 1px solid rgba(64, 172, 27, 0.22);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.preview-dot {
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(64, 172, 27, 0.12);
}

.eyebrow,
.form-kicker {
  margin: 0 0 9px;
  color: var(--orange-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.hero h1 {
  max-width: 590px;
  margin: 0;
  font-size: clamp(40px, 5.2vw, 68px);
  line-height: 0.99;
  letter-spacing: -0.055em;
}

.hero-copy {
  max-width: 590px;
  margin: 25px 0 0;
  color: #555b63;
  font-size: clamp(17px, 1.7vw, 20px);
  line-height: 1.58;
}

.journey {
  max-width: 570px;
  margin-top: 38px;
  display: grid;
  gap: 0;
}

.journey article {
  min-height: 84px;
  padding: 12px 0;
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 16px;
  position: relative;
}

.journey article:not(:last-child)::after {
  content: "";
  width: 1px;
  position: absolute;
  top: 54px;
  bottom: -6px;
  left: 22px;
  background: var(--line);
}

.journey article > span {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  font-size: 12px;
  font-weight: 800;
}

.journey h2 {
  margin: 1px 0 3px;
  font-size: 17px;
  letter-spacing: -0.01em;
}

.journey p {
  margin: 0;
  color: var(--gray);
  font-size: 14px;
}

.security-note {
  max-width: 570px;
  margin-top: 27px;
  padding: 15px 17px;
  display: flex;
  gap: 13px;
  color: #4f555c;
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid var(--line);
  border-radius: 15px;
  font-size: 13px;
}

.security-note svg {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  fill: var(--green);
}

.security-note strong,
.security-note span {
  display: block;
}

.security-note strong {
  margin-bottom: 2px;
  color: var(--ink);
}

.security-note .maps-data-copy {
  display: block;
  margin-top: 5px;
  color: var(--gray);
  font-size: 11px;
  line-height: 1.45;
}

.security-note .maps-data-copy span,
.security-note .maps-data-copy a {
  display: inline;
}

.security-note .maps-data-copy a {
  color: var(--green-dark);
  font-weight: 700;
}

.form-card {
  min-height: 650px;
  padding: clamp(25px, 3.4vw, 40px);
  background: var(--white);
  border: 1px solid rgba(23, 26, 31, 0.08);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}

.application-bootstrap {
  min-height: 570px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: var(--gray);
  text-align: left;
}

.application-bootstrap-loader {
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  border: 3px solid rgba(64, 172, 27, 0.2);
  border-top-color: var(--green);
  border-radius: 50%;
  animation: spin 700ms linear infinite;
}

.application-bootstrap h2 {
  margin: 0 0 5px;
  color: var(--ink);
  font-size: clamp(20px, 2vw, 25px);
}

.application-bootstrap p {
  margin: 0;
  font-size: 14px;
}

.form-card-head {
  min-height: 66px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.form-card-head h2 {
  margin: 0;
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.18;
  letter-spacing: -0.035em;
}

.time-chip {
  flex: 0 0 auto;
  padding: 7px 10px;
  color: var(--gray);
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.stepper {
  margin: 30px 0 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  position: relative;
}

.progress-line {
  height: 3px;
  position: absolute;
  top: 18px;
  left: 12.5%;
  right: 12.5%;
  z-index: 0;
  overflow: hidden;
  background: var(--line);
}

.progress-line span {
  width: 0;
  height: 100%;
  display: block;
  background: var(--green);
  transition: width 220ms ease;
}

.progress-line span[data-progress="2"] { width: 33.333%; }
.progress-line span[data-progress="3"] { width: 66.666%; }
.progress-line span[data-progress="4"] { width: 100%; }

.step {
  min-width: 0;
  padding: 0 4px;
  position: relative;
  z-index: 1;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.step:disabled {
  cursor: default;
}

.step > span {
  width: 38px;
  height: 38px;
  margin: 0 auto 7px;
  display: grid;
  place-items: center;
  color: var(--gray);
  background: var(--white);
  border: 2px solid var(--line);
  border-radius: 50%;
  font-size: 13px;
  font-weight: 800;
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}

.step small {
  display: block;
  overflow: hidden;
  color: var(--gray);
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.step.is-active > span {
  color: var(--ink);
  border-color: var(--orange);
  background: var(--orange);
}

.step.is-active small {
  color: var(--ink);
}

.step.is-complete > span {
  color: var(--white);
  border-color: var(--green);
  background: var(--green);
}

.resume-notice {
  margin: -8px 0 26px;
  padding: 13px 15px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: var(--green-pale);
  border: 1px solid rgba(64, 172, 27, 0.24);
  border-radius: var(--radius-sm);
  font-size: 13px;
}

.resume-notice:not([hidden]) {
  display: flex;
}

.resume-notice strong,
.resume-notice span {
  display: block;
}

.resume-notice span {
  color: #52624e;
}

.text-button {
  padding: 6px 0;
  flex: 0 0 auto;
  color: var(--green-dark);
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.form-step[hidden],
.application-bootstrap[hidden],
.form-card-head[hidden],
.stepper[hidden],
#restaurantForm[hidden],
.success-panel[hidden],
.form-error[hidden],
.button[hidden],
.resume-notice[hidden] {
  display: none !important;
}

.form-step.is-active {
  animation: form-in 180ms ease-out;
}

@keyframes form-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.step-heading {
  margin-bottom: 24px;
}

.step-heading > span {
  color: var(--orange-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.step-heading h3 {
  margin: 5px 0 5px;
  font-size: 22px;
  letter-spacing: -0.025em;
}

.step-heading p {
  margin: 0;
  color: var(--gray);
  font-size: 14px;
}

.field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.field {
  margin-bottom: 18px;
  display: block;
}

.field > span:first-child {
  margin-bottom: 7px;
  display: block;
  color: #3e434a;
  font-size: 13px;
  font-weight: 750;
}

.field b {
  margin-left: 3px;
  color: var(--orange-dark);
}

.field input,
.field textarea,
.field select {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #cdd1ca;
  border-radius: var(--radius-sm);
  outline: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.field textarea {
  min-height: 102px;
  resize: vertical;
}

.field input::placeholder,
.field textarea::placeholder {
  color: #a0a5aa;
}

.field input:hover,
.field textarea:hover,
.field select:hover {
  border-color: #aeb3aa;
}

.field input:focus,
.field textarea:focus,
.field select:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 4px rgba(253, 85, 22, 0.12);
}

.field input[aria-invalid="true"],
.field textarea[aria-invalid="true"],
.field select[aria-invalid="true"] {
  border-color: var(--danger);
  background: var(--danger-pale);
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.08);
}

.nomi-place-input-shell {
  position: relative;
  width: 100%;
  min-width: 0;
}

.field .nomi-place-input-shell.has-place-icon > input {
  padding-left: 43px;
}

.nomi-place-input-icon {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 15px;
  display: grid;
  width: 18px;
  height: 22px;
  place-items: center;
  transform: translateY(-50%);
  color: var(--green-dark);
  pointer-events: none;
}

.nomi-place-input-icon::before {
  width: 14px;
  height: 14px;
  transform: rotate(45deg);
  border: 3px solid currentColor;
  border-radius: 50% 50% 50% 0;
  content: "";
}

.nomi-place-input-icon::after {
  position: absolute;
  width: 4px;
  height: 4px;
  top: 9px;
  left: 7px;
  border-radius: 50%;
  background: currentColor;
  content: "";
}

.nomi-places-provider-frame {
  position: fixed;
  width: 1px;
  height: 1px;
  inset: auto auto 0 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.nomi-place-listbox {
  position: absolute;
  z-index: 80;
  top: calc(100% + 7px);
  right: 0;
  left: 0;
  max-height: min(340px, 52vh);
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid rgba(31, 56, 43, 0.2);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 20px 48px rgba(16, 35, 25, 0.22);
}

.nomi-place-listbox[hidden] {
  display: none !important;
}

.nomi-place-option {
  display: grid;
  width: 100%;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  border: 0;
  border-bottom: 1px solid #e8ece7;
  color: var(--ink);
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.nomi-place-option:hover,
.nomi-place-option.is-active {
  background: #eef8f1;
}

.nomi-place-pin {
  position: relative;
  display: block;
  width: 17px;
  height: 17px;
  margin: -4px 0 0 4px;
  transform: rotate(45deg);
  border: 3px solid var(--green-dark);
  border-radius: 50% 50% 50% 0;
}

.nomi-place-pin::after {
  position: absolute;
  width: 5px;
  height: 5px;
  inset: 3px;
  border-radius: 50%;
  background: var(--green-dark);
  content: "";
}

.nomi-place-option-copy,
.nomi-place-option-copy strong,
.nomi-place-option-copy small {
  display: block;
  min-width: 0;
}

.nomi-place-option-copy strong,
.nomi-place-option-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nomi-place-option-copy strong {
  font-size: 13px;
  line-height: 1.35;
}

.nomi-place-option-copy small {
  margin-top: 3px;
  color: var(--gray);
  font-size: 11px;
  font-weight: 500;
}

.nomi-place-status {
  padding: 14px;
  color: var(--gray);
  font-size: 12px;
  line-height: 1.45;
}

.nomi-place-status.is-error {
  color: #8d3d26;
  background: #fff7f2;
}

.nomi-place-attribution {
  padding: 7px 13px 8px;
  color: #5e5e5e;
  background: #fafafa;
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: normal;
  text-align: right;
  white-space: nowrap;
}

.field small {
  margin-top: 5px;
  display: block;
  color: var(--gray);
  font-size: 11px;
}

.vat-code-field[hidden] {
  display: none !important;
}

.vat-status-choice {
  min-width: 0;
  margin: 0 0 18px;
  padding: 0;
  border: 0;
}

.vat-status-choice > legend {
  margin-bottom: 8px;
  padding: 0;
  color: #3e434a;
  font-size: 13px;
  font-weight: 750;
}

.vat-status-choice > legend b {
  margin-left: 3px;
  color: var(--orange-dark);
}

.vat-status-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.vat-status-options > label {
  min-width: 0;
  padding: 13px 14px;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.vat-status-options > label:hover {
  border-color: #aeb3aa;
}

.vat-status-options > label:has(input:checked) {
  background: #fff7f2;
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(253, 85, 22, 0.08);
}

.vat-status-options > label:has(input[aria-invalid="true"]) {
  background: var(--danger-pale);
  border-color: var(--danger);
}

.vat-status-options input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: var(--orange);
}

.vat-status-options strong,
.vat-status-options small {
  display: block;
}

.vat-status-options strong {
  color: var(--ink);
  font-size: 12px;
}

.vat-status-options small {
  margin-top: 3px;
  color: var(--gray);
  font-size: 10px;
  line-height: 1.45;
}

.form-subsection {
  min-width: 0;
  margin: 2px 0 20px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
}

.form-subsection > legend {
  padding: 0 7px;
  color: #353a40;
  font-size: 14px;
  font-weight: 850;
}

.form-subsection > p,
.profile-hours-block > p {
  margin: 0 0 14px;
  color: var(--gray);
  font-size: 11px;
  line-height: 1.55;
}

.kitchen-hours-editor {
  display: grid;
  gap: 9px;
}

.hours-day {
  padding: 12px;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 11px;
}

.hours-day-header {
  margin-bottom: 9px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.hours-day-header strong {
  font-size: 12px;
}

.hours-closed-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--gray);
  cursor: pointer;
  font-size: 11px;
  font-weight: 750;
}

.hours-closed-toggle input {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--green);
}

.hours-intervals {
  display: grid;
  gap: 8px;
}

.hours-interval {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
}

.hours-interval label > span {
  margin-bottom: 4px;
  display: block;
  color: var(--gray);
  font-size: 9px;
  font-weight: 750;
  text-transform: uppercase;
}

.hours-interval select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 8px 10px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #cdd1ca;
  border-radius: 9px;
  outline: none;
  font: inherit;
  font-variant-numeric: tabular-nums;
}

.hours-interval select:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(253, 85, 22, 0.1);
}

.hours-interval select[aria-invalid="true"],
.hours-closed-toggle input[aria-invalid="true"] {
  border-color: var(--danger);
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.08);
}

.hours-remove,
.hours-add {
  color: var(--green-dark);
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.hours-remove {
  min-height: 42px;
  padding: 8px 3px;
  color: var(--danger);
}

.hours-add {
  margin-top: 8px;
  padding: 3px 0;
}

.hours-add::before {
  content: "+ ";
}

.hours-add:disabled,
.hours-remove:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.hours-day.is-closed .hours-intervals {
  opacity: 0.45;
}

.profile-hours-block {
  margin: 0 0 17px;
  padding: 14px;
  background: #fafbf8;
  border: 1px solid var(--line);
  border-radius: 11px;
}

.profile-hours-block > strong {
  margin-bottom: 3px;
  display: block;
  font-size: 11px;
}

.profile-hours-block .hours-day {
  padding: 9px 10px;
}

.profile-hours-block .hours-interval input {
  min-height: 37px;
  font-size: 11px;
}

.review-card {
  margin-bottom: 20px;
  display: grid;
  gap: 10px;
}

.review-group {
  padding: 15px 16px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 9px 14px;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 12px;
}

.review-group h4 {
  margin: 0;
  font-size: 13px;
}

.review-group button {
  padding: 0;
  color: var(--orange-dark);
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.review-group dl {
  margin: 0;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 4px 12px;
  font-size: 12px;
}

.review-group dt {
  color: var(--gray);
}

.review-group dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: #34383e;
  font-weight: 700;
  text-align: right;
  white-space: pre-line;
}

.confirm-row {
  margin: 4px 0 18px;
  padding: 15px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  cursor: pointer;
}

.confirm-row:has(input:focus-visible) {
  border-color: var(--orange);
  box-shadow: 0 0 0 4px rgba(253, 85, 22, 0.1);
}

.confirm-row:has(input[aria-invalid="true"]) {
  border-color: var(--danger);
  background: var(--danger-pale);
}

.confirm-row input {
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  flex: 0 0 auto;
  accent-color: var(--green);
}

.confirm-row strong,
.confirm-row small {
  display: block;
}

.confirm-row strong {
  margin-bottom: 2px;
  font-size: 13px;
}

.confirm-row small {
  color: var(--gray);
  font-size: 12px;
}

.terms-note {
  padding: 14px 16px;
  background: var(--orange-pale);
  border-left: 4px solid var(--orange);
  border-radius: 4px 12px 12px 4px;
  font-size: 12px;
}

.terms-note strong {
  display: block;
  margin-bottom: 3px;
}

.terms-note p {
  margin: 0;
  color: #5f4d46;
}

.form-error {
  margin-top: 18px;
  padding: 12px 14px;
  color: var(--danger);
  background: var(--danger-pale);
  border: 1px solid rgba(180, 35, 24, 0.22);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  white-space: pre-line;
}

.form-actions {
  margin-top: 27px;
  padding-top: 20px;
  display: flex;
  justify-content: flex-end;
  gap: 11px;
  border-top: 1px solid var(--line);
}

.button {
  min-height: 50px;
  padding: 12px 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 11px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 800;
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.button:hover:not(:disabled) {
  transform: translateY(-1px);
}

.button:active:not(:disabled) {
  transform: translateY(0);
}

.button:focus-visible,
.language-switch button:focus-visible,
.step:focus-visible,
.text-button:focus-visible,
.review-group button:focus-visible {
  outline: 3px solid rgba(253, 85, 22, 0.35);
  outline-offset: 2px;
}

.button:disabled {
  cursor: wait;
  opacity: 0.7;
}

.button-primary {
  color: var(--ink);
  background: var(--orange);
  border-color: var(--orange);
  box-shadow: 0 8px 18px rgba(253, 85, 22, 0.2);
}

.button-primary:hover:not(:disabled) {
  background: #ff6328;
  box-shadow: 0 11px 24px rgba(253, 85, 22, 0.25);
}

.button-secondary {
  color: var(--ink);
  background: var(--white);
  border-color: #cdd1ca;
}

.button-loader {
  width: 17px;
  height: 17px;
  display: none;
  border: 2px solid rgba(23, 26, 31, 0.3);
  border-top-color: var(--ink);
  border-radius: 50%;
  animation: spin 700ms linear infinite;
}

.button.is-loading .button-loader {
  display: block;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.success-panel {
  padding: 28px 0 6px;
  text-align: center;
  animation: form-in 220ms ease-out;
}

.success-icon {
  width: 68px;
  height: 68px;
  margin: 0 auto 21px;
  display: grid;
  place-items: center;
  color: var(--white);
  background: var(--green);
  border-radius: 22px;
  box-shadow: 0 10px 24px rgba(64, 172, 27, 0.22);
  font-size: 34px;
  font-weight: 800;
}

.success-panel h2 {
  margin: 4px auto 10px;
  max-width: 470px;
  font-size: 29px;
  line-height: 1.18;
  letter-spacing: -0.035em;
}

/* View-change announcements keep focus without looking like editable controls.
   Limit this to static headings; keyboard focus on links and inputs is unchanged. */
.form-card :is(.step-heading h3, #successTitle, #portalTitle, #correctionSubmissionReceiptTitle)[tabindex="-1"]:focus {
  outline: none;
}

.success-panel > p:not(.form-kicker):not(.status-message) {
  max-width: 500px;
  margin: 0 auto;
  color: var(--gray);
}

.success-panel .confirmation-email {
  margin-top: 16px;
  padding: 12px 16px;
  color: var(--ink);
  background: var(--green-pale);
  border: 1px solid rgba(64, 172, 27, 0.2);
  border-radius: 11px;
  font-size: 13px;
}

.confirmation-email strong {
  margin-left: 4px;
  overflow-wrap: anywhere;
}

.application-receipt {
  margin: 30px auto 24px;
  padding: 18px;
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: 12px;
  text-align: left;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 14px;
}

.application-receipt div {
  min-width: 0;
}

.application-receipt span,
.application-receipt strong {
  display: block;
}

.application-receipt span {
  margin-bottom: 4px;
  color: var(--gray);
  font-size: 11px;
}

.application-receipt strong {
  overflow: hidden;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.status-badge {
  width: fit-content;
  padding: 5px 9px;
  color: var(--green-dark);
  background: var(--green-pale);
  border-radius: 999px;
}

.status-badge.is-warning {
  color: #9a5a00;
  background: #fff5d7;
}

.status-badge.is-danger {
  color: var(--danger);
  background: var(--danger-pale);
}

.success-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}

.status-message {
  min-height: 22px;
  margin: 16px 0 0;
  color: var(--gray);
  font-size: 12px;
}

/* Partner onboarding portal */

.page-shell.has-portal {
  display: block;
}

.page-shell.has-portal .hero {
  display: none;
}

.form-card.is-portal {
  width: 100%;
  max-width: none;
  padding: clamp(24px, 3.5vw, 44px);
}

.partner-portal[hidden],
[data-correction-fields][hidden],
[data-correction-fields] [hidden],
.document-type-field[hidden],
#documentUploadArea[hidden],
#documentUploadStatus[hidden],
.portal-locked-message[hidden],
.required-documents[hidden],
.portal-alert[hidden],
.partner-portal form[hidden],
.portal-card[hidden],
.terms-signing-actions[hidden],
.terms-signing-error[hidden],
.terms-signing-meta[hidden],
.terms-signing-meta [hidden],
.revision-chip[hidden],
.commercial-empty[hidden],
.correction-request-summary[hidden] {
  display: none !important;
}

.partner-portal {
  animation: form-in 180ms ease-out;
}

/* The portal title receives programmatic focus when the authenticated view
   opens so screen-reader users hear the new page context. It is not an
   interactive control, therefore the browser's large default focus rectangle
   is misleading and visually breaks the heading. */
#portalTitle:focus,
#portalTitle:focus-visible {
  outline: none;
}

.portal-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
}

.portal-heading h2 {
  margin: 0;
  font-size: clamp(27px, 3.6vw, 42px);
  line-height: 1.05;
  letter-spacing: -0.045em;
}

.portal-heading > div:first-child > p:last-child {
  max-width: 650px;
  margin: 11px 0 0;
  color: var(--gray);
}

.portal-status-box {
  min-width: 205px;
  padding: 15px 17px;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 14px;
}

.portal-status-box > span,
.portal-status-box > strong,
.portal-status-box > small {
  display: block;
}

.portal-status-box > span {
  margin-bottom: 6px;
  color: var(--gray);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.portal-status-box > small {
  margin-top: 7px;
  color: var(--gray);
  font-size: 10px;
}

.portal-reference {
  margin: 25px 0 22px;
  padding: 12px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: #fbfcfa;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.portal-reference > span {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--gray);
  font-size: 11px;
}

.portal-reference strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 11px;
  text-overflow: ellipsis;
}

.text-button {
  padding: 0;
  color: var(--orange-dark);
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}

.portal-alert {
  margin-bottom: 20px;
  padding: 15px 17px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: #6a4d00;
  background: #fff7d9;
  border: 1px solid #ebd174;
  border-radius: 13px;
}

.portal-alert > span {
  width: 25px;
  height: 25px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #fff;
  background: #a66d00;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 900;
}

.portal-alert strong,
.portal-alert p {
  display: block;
}

.portal-alert p {
  margin: 2px 0 0;
  font-size: 12px;
  white-space: pre-wrap;
}

.portal-workflow {
  margin: 0 0 25px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
  border: 1px solid var(--line);
  border-radius: 15px;
  overflow: hidden;
}

.portal-workflow li {
  min-width: 0;
  min-height: 82px;
  padding: 15px 13px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--white);
  border-right: 1px solid var(--line);
}

.portal-workflow li:last-child {
  border-right: 0;
}

.portal-workflow li > span {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: var(--gray);
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 10px;
  font-weight: 900;
}

.portal-workflow strong,
.portal-workflow small {
  display: block;
}

.portal-workflow strong {
  overflow: hidden;
  font-size: 10px;
  line-height: 1.25;
}

.portal-workflow small {
  margin-top: 3px;
  color: var(--gray);
  font-size: 8px;
  line-height: 1.3;
}

.portal-workflow li.is-done > span {
  color: var(--white);
  background: var(--green);
  border-color: var(--green);
}

.portal-workflow li.is-current {
  background: var(--orange-pale);
}

.portal-workflow li.is-current > span {
  color: var(--ink);
  background: var(--orange);
  border-color: var(--orange);
}

.portal-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  align-items: start;
  gap: 18px;
}

.portal-main-column,
.portal-side-column {
  min-width: 0;
  display: grid;
  gap: 18px;
}

.portal-side-column {
  position: sticky;
  top: 18px;
}

.portal-card,
.timeline-card,
.portal-help {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 15px;
}

.portal-card {
  overflow: hidden;
}

.portal-card-header {
  padding: 17px 19px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  background: #fbfcfa;
  border-bottom: 1px solid var(--line);
}

.portal-card-header > div {
  display: flex;
  align-items: flex-start;
  gap: 11px;
}

.section-number {
  width: 31px;
  height: 31px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: var(--orange-dark);
  background: var(--orange-pale);
  border-radius: 9px;
  font-size: 10px;
  font-weight: 900;
}

.portal-card-header h3,
.portal-card-header p {
  margin: 0;
}

.portal-card-header h3 {
  font-size: 15px;
}

.portal-card-header p {
  max-width: 570px;
  margin-top: 3px;
  color: var(--gray);
  font-size: 10px;
}

.profile-state,
.readonly-chip {
  flex: 0 0 auto;
  padding: 5px 8px;
  color: var(--gray);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 8px;
  font-weight: 850;
}

.profile-state-partner_submitted,
.profile-state-under_review {
  color: #155899;
  background: #edf6ff;
  border-color: #bcd7f1;
}

.profile-state-completed {
  color: var(--green-dark);
  background: var(--green-pale);
  border-color: #bee0b4;
}

.profile-state-changes_requested {
  color: #8a5700;
  background: #fff7d9;
  border-color: #ebd174;
}

.portal-locked-message {
  margin: 19px;
  padding: 18px;
  color: #4d535a;
  background: var(--off-white);
  border: 1px dashed #cbd0c8;
  border-radius: 12px;
}

.portal-locked-message strong,
.portal-locked-message p {
  display: block;
}

.portal-locked-message p {
  margin: 4px 0 0;
  font-size: 12px;
}

.correction-request-summary {
  margin: 18px 19px 0;
  padding: 15px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 11px;
  color: #654900;
  background: #fff8df;
  border: 1px solid #e8cb68;
  border-radius: 12px;
}

.correction-request-summary > span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #a16b00;
  border-radius: 9px;
  font-weight: 900;
}

.correction-request-summary strong,
.correction-request-summary p,
.correction-request-summary small {
  display: block;
}

.correction-request-summary p {
  margin: 4px 0;
  font-size: 11px;
  line-height: 1.5;
  white-space: pre-wrap;
}

.correction-request-summary small {
  color: #7a6225;
  font-size: 9px;
}

.correction-field-links {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.correction-field-links button {
  padding: 6px 8px;
  color: #684900;
  background: #fff;
  border: 1px solid #dbc268;
  border-radius: 8px;
  cursor: pointer;
  font-size: 9px;
  font-weight: 800;
}

.correction-field-links button.is-addressed {
  color: var(--green-dark);
  border-color: #afd2a5;
}

.profile-section {
  margin: 0;
  padding: 22px 19px 5px;
  border: 0;
  border-bottom: 1px solid var(--line);
}

.profile-section legend {
  width: 100%;
  padding: 0 0 15px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 15px;
  font-size: 13px;
  font-weight: 850;
}

.profile-section legend small {
  color: var(--gray);
  font-size: 8px;
  font-weight: 650;
}

.profile-section .field {
  margin-bottom: 14px;
}

.profile-section .field > span:first-child {
  font-size: 11px;
}

.profile-section .field input,
.profile-section .field textarea,
.profile-section .field select {
  min-height: 45px;
  padding: 10px 12px;
  font-size: 12px;
}

.profile-section .field textarea {
  min-height: 84px;
}

.profile-section input:disabled,
.profile-section textarea:disabled,
.profile-section select:disabled {
  color: #4e5359;
  background: #f4f5f2;
  cursor: not-allowed;
  opacity: 1;
}

.is-correction-requested {
  position: relative;
  padding: 10px;
  background: #fffaf0;
  border: 2px solid #d69b1c;
  border-radius: 11px;
  scroll-margin-top: 18px;
}

.is-correction-requested.is-correction-addressed {
  background: #f2faef;
  border-color: #8dbe7d;
}

.correction-field-note {
  margin-top: 8px;
  padding: 8px 9px;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 7px;
  color: #684900;
  background: #fff2bf;
  border-radius: 8px;
  font-size: 9px;
}

.is-correction-addressed .correction-field-note {
  color: var(--green-dark);
  background: #dff1d9;
}

.correction-field-note > span {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #a16b00;
  border-radius: 50%;
  font-weight: 900;
}

.is-correction-addressed .correction-field-note > span {
  background: var(--green);
}

.correction-field-note p {
  margin: 2px 0 0;
  line-height: 1.45;
  white-space: pre-wrap;
}

.correction-responses-section > p {
  margin: 0 0 13px;
  color: var(--gray);
  font-size: 10px;
  line-height: 1.5;
}

#correctionResponses {
  display: grid;
  gap: 10px;
}

.correction-response-card {
  padding: 13px;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 11px;
}

.correction-response-card header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.correction-response-card header span,
.correction-response-card header small {
  color: var(--gray);
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
}

.correction-response-card > strong {
  margin-top: 5px;
  display: block;
  font-size: 12px;
}

.correction-response-card > p,
.correction-response-card > label {
  margin: 6px 0 0;
  display: block;
  font-size: 10px;
  line-height: 1.5;
}

.correction-response-card > label span {
  margin-bottom: 5px;
  display: block;
  font-weight: 800;
}

.correction-response-card textarea,
.correction-response-card input[type="url"] {
  width: 100%;
  min-height: 82px;
  padding: 10px 11px;
  border: 1px solid #cdd1ca;
  border-radius: 9px;
  resize: vertical;
  font: inherit;
}

.correction-response-card input[type="url"] {
  min-height: 46px;
  background: #fff;
  color: var(--ink);
  font-size: 16px;
}

.correction-response-card input[type="url"]:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

.correction-upload-state {
  color: #7f5800;
}

.correction-upload-state.is-clean {
  color: var(--green-dark);
  font-weight: 800;
}

.correction-submit-status {
  margin: 14px 19px 0;
  padding: 10px 12px;
  border-radius: 9px;
  font-size: 10px;
}

.correction-submit-status.is-blocked {
  color: #745200;
  background: #fff8df;
  border: 1px solid #e8cb68;
}

.correction-submit-status.is-ready {
  color: var(--green-dark);
  background: var(--green-pale);
  border: 1px solid #afd2a5;
}

.field-wide {
  grid-column: 1 / -1;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.feature-grid label {
  min-height: 43px;
  padding: 10px 11px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 10px;
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
}

.feature-grid input {
  width: 17px;
  height: 17px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: var(--green);
}

.profile-grid-spaced {
  margin-top: 16px;
}

.terms-acceptance-summary {
  margin: 0 0 17px;
  padding: 14px 15px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 11px;
  color: #46525a;
  background: #f4f7f8;
  border: 1px solid #d5dfe3;
  border-radius: 11px;
}

.terms-acceptance-summary > span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #315968;
  background: #e5f0f4;
  border-radius: 9px;
  font-size: 12px;
  font-weight: 900;
}

.terms-acceptance-summary strong,
.terms-acceptance-summary p,
.terms-acceptance-summary code,
.terms-acceptance-summary dl {
  display: block;
}

.terms-acceptance-summary strong {
  font-size: 12px;
}

.terms-acceptance-summary p {
  margin: 3px 0 0;
  font-size: 10px;
  line-height: 1.55;
}

.terms-acceptance-summary code {
  margin-top: 7px;
  overflow-wrap: anywhere;
  color: inherit;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 8px;
}

.terms-acceptance-summary.is-warning {
  color: #6a4d00;
  background: #fff8df;
  border-color: #ebd174;
}

.terms-acceptance-summary.is-warning > span {
  color: #7a5400;
  background: #ffedaa;
}

.terms-acceptance-summary.is-accepted {
  color: var(--green-dark);
  background: var(--green-pale);
  border-color: #bee0b4;
}

.terms-acceptance-summary.is-accepted > span {
  color: var(--green-dark);
  background: #d5efcc;
}

.terms-signing-meta {
  margin: 9px 0 0;
  padding-top: 7px;
  border-top: 1px solid currentColor;
  opacity: 0.92;
}

.terms-signing-meta > div {
  display: grid;
  grid-template-columns: minmax(110px, 0.7fr) minmax(0, 1.3fr);
  gap: 9px;
  padding-top: 4px;
}

.terms-signing-meta dt,
.terms-signing-meta dd {
  margin: 0;
  font-size: 9px;
  line-height: 1.4;
}

.terms-signing-meta dt {
  font-weight: 800;
}

.terms-signing-meta dd {
  overflow-wrap: anywhere;
}

.terms-signing-actions {
  margin: -4px 0 17px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.terms-signer-restriction {
  margin: -4px 0 12px;
  padding: 11px 12px;
  color: #5f4600;
  background: #fff8df;
  border: 1px solid #ebd174;
  border-radius: 10px;
  font-size: 10px;
  line-height: 1.5;
}

.terms-signer-restriction strong,
.terms-signer-restriction span,
.terms-signer-restriction small {
  display: block;
}

.terms-signer-restriction span {
  margin-top: 3px;
  color: #231f1c;
  font-size: 13px;
  font-weight: 800;
}

.terms-signer-restriction small {
  margin-top: 3px;
}

.terms-signing-error {
  margin: -5px 0 17px;
  padding: 10px 12px;
  color: var(--danger);
  background: var(--danger-pale);
  border: 1px solid rgba(180, 35, 24, 0.23);
  border-radius: 10px;
  font-size: 10px;
  line-height: 1.45;
}

.signer-authority-dialog {
  width: min(680px, calc(100vw - 28px));
  max-height: calc(100vh - 28px);
  padding: 0;
  overflow: auto;
  color: var(--ink);
  background: var(--white);
  border: 0;
  border-radius: 18px;
  box-shadow: var(--shadow);
}

.signer-authority-dialog::backdrop {
  background: rgba(23, 26, 31, 0.58);
  backdrop-filter: blur(3px);
}

.signer-authority-dialog form {
  padding: 22px;
}

.signer-authority-dialog header,
.signer-authority-dialog footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.signer-authority-dialog h2 {
  margin: 2px 0 5px;
  font-size: 21px;
  line-height: 1.25;
}

.signer-authority-dialog header p:last-child {
  margin: 0;
  color: var(--gray);
  font-size: 11px;
  line-height: 1.5;
}

.dialog-close {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  padding: 0;
  color: var(--gray);
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 50%;
  cursor: pointer;
  font-size: 21px;
}

.signer-authority-expected {
  margin-top: 18px;
  padding: 12px 14px;
  display: grid;
  gap: 3px;
  background: var(--green-pale);
  border: 1px solid #afd2a5;
  border-radius: 11px;
}

.signer-authority-expected span {
  color: var(--green-dark);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}

.signer-authority-expected strong {
  font-size: 14px;
}

.signer-authority-options {
  margin: 18px 0 0;
  padding: 0;
  display: grid;
  gap: 9px;
  border: 0;
}

.signer-authority-options legend {
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 850;
}

.signer-authority-options label {
  padding: 12px;
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr);
  gap: 10px;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 11px;
  cursor: pointer;
}

.signer-authority-options label:has(input:checked) {
  background: #fff8df;
  border-color: #d9b641;
}

.signer-authority-options input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: var(--orange);
}

.signer-authority-options strong,
.signer-authority-options small {
  display: block;
}

.signer-authority-options strong {
  font-size: 11px;
}

.signer-authority-options small {
  margin-top: 2px;
  color: var(--gray);
  font-size: 9px;
  line-height: 1.45;
}

.signer-authority-upload {
  margin-top: 13px;
  padding: 13px;
  background: #fff8df;
  border: 1px solid #ebd174;
  border-radius: 11px;
}

.signer-authority-upload > strong {
  font-size: 12px;
}

.signer-authority-upload > p {
  margin: 4px 0 10px;
  font-size: 10px;
  line-height: 1.5;
}

.signer-authority-upload #powerOfAttorneyStatus {
  margin-bottom: 0;
  color: #6d5100;
  font-weight: 750;
}

.signer-authority-confirm {
  margin-top: 15px;
}

.signer-authority-submit {
  margin-top: 14px;
}

.signer-authority-receipt:not([hidden]) {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-top: 14px;
  padding: 16px;
  color: var(--green-dark);
  background: var(--green-pale);
  border: 1px solid #bee0b4;
  border-radius: 12px;
}

.signer-authority-receipt > span {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  height: 30px;
  border-radius: 50%;
  background: #d5efcc;
  font-size: 18px;
  font-weight: 800;
}

.signer-authority-receipt strong { font-size: 15px; }
.signer-authority-rejection { margin: 16px 0; padding: 16px; border: 1px solid #e5a893; border-radius: 12px; background: #fff3ee; color: #612b20; overflow-wrap: anywhere; }
.signer-authority-rejection[hidden] { display: none; }
.signer-authority-rejection strong { font-size: 16px; }
.signer-authority-rejection p { margin: 10px 0 0; line-height: 1.6; }
#powerOfAttorneyRejectionReason { white-space: pre-wrap; font-weight: 600; }
.signer-authority-receipt p { margin: 5px 0 0; font-size: 12px; line-height: 1.55; }

#partnerSignerAuthorityConfirmation[hidden],
#partnerSignerAuthoritySubmit[hidden],
#submitPowerOfAttorneyButton[hidden] { display: none; }

.signer-authority-file-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
  margin: 12px 0;
}

.signer-authority-remove-confirmation {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #e5bda8;
  border-radius: 10px;
  background: #fffaf5;
  font-size: 12px;
  line-height: 1.5;
}

.signer-authority-remove-confirmation p {
  margin: 0;
}

.signer-authority-remove-confirmation .signer-authority-file-actions {
  margin-bottom: 0;
}

#powerOfAttorneyFilename {
  overflow-wrap: anywhere;
  font-weight: 700;
}

.signer-authority-dialog .terms-signing-error {
  margin: 12px 0 0;
}

.signer-authority-dialog footer {
  margin-top: 18px;
  justify-content: flex-end;
}

@media (max-width: 560px) {
  .signer-authority-dialog form {
    padding: 17px;
  }

  .signer-authority-dialog footer {
    flex-direction: column-reverse;
  }

  .signer-authority-dialog footer .button {
    width: 100%;
  }
}

.portal-form-error {
  margin: 17px 19px 0;
  padding: 12px 14px;
  color: var(--danger);
  background: var(--danger-pale);
  border: 1px solid rgba(180, 35, 24, 0.23);
  border-radius: 10px;
  font-size: 11px;
  white-space: pre-line;
}

.portal-form-actions {
  padding: 17px 19px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  background: #fbfcfa;
}

.save-state {
  min-width: 0;
  margin-right: auto;
  color: var(--gray);
  font-size: 9px;
}

.commercial-grid {
  margin: 0;
  padding: 17px 19px;
  display: grid;
  grid-template-columns: minmax(160px, 0.8fr) 1.2fr;
  gap: 0;
}

.commercial-grid dt,
.commercial-grid dd {
  margin: 0;
  padding: 9px 0;
  border-bottom: 1px solid #eceeea;
  font-size: 10px;
}

.commercial-grid dt {
  padding-right: 14px;
  color: var(--gray);
}

.commercial-grid dd {
  overflow-wrap: anywhere;
  font-weight: 750;
  text-align: right;
  white-space: pre-wrap;
}

.commercial-grid > :nth-last-child(-n + 2) {
  border-bottom: 0;
}

.commercial-header-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px;
}

.revision-chip {
  padding: 5px 8px;
  color: #6a4d00;
  background: #fff7d9;
  border: 1px solid #ebd174;
  border-radius: 9px;
  font-size: 8px;
  font-weight: 850;
}

.commercial-empty {
  margin: 0;
  padding: 18px 19px;
  color: var(--gray);
  font-size: 10px;
}

.required-documents {
  margin: 17px 19px 0;
  padding: 13px 15px;
  color: #6a4d00;
  background: #fff7d9;
  border: 1px solid #ebd174;
  border-radius: 11px;
  font-size: 10px;
}

.required-documents strong {
  display: block;
  margin-bottom: 5px;
}

.required-documents ul {
  margin: 0;
  padding-left: 17px;
}

.document-type-field {
  margin: 17px 19px -6px;
  display: grid;
  grid-template-columns: minmax(120px, 0.5fr) minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  color: #4a5056;
  font-size: 10px;
  font-weight: 750;
}

.document-type-field select {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #cdd1ca;
  border-radius: 9px;
  outline: 0;
  font-size: 11px;
}

.document-type-field select:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(253, 85, 22, 0.1);
}

.document-type-field select:disabled {
  color: var(--gray);
  background: var(--off-white);
}

.document-list {
  margin: 17px 19px 0;
  display: grid;
  gap: 8px;
}

.document-list article {
  min-width: 0;
  padding: 10px 11px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 10px;
}

.document-list article > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: var(--orange-dark);
  background: var(--orange-pale);
  border-radius: 9px;
  font-size: 8px;
  font-weight: 900;
}

.document-list strong,
.document-list small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.document-list strong {
  font-size: 10px;
}

.document-list small {
  margin-top: 2px;
  color: var(--gray);
  font-size: 8px;
}

.document-list article > div:last-child {
  display: flex;
  align-items: center;
  gap: 9px;
}

.document-remove {
  color: var(--danger);
}

.document-empty {
  margin: 0;
  padding: 11px 13px;
  color: var(--gray);
  background: var(--off-white);
  border-radius: 9px;
  font-size: 9px;
}

.upload-placeholder {
  margin: 17px 19px;
  padding: 18px;
  display: grid;
  grid-template-columns: 38px 1fr auto;
  align-items: center;
  gap: 12px;
  background: var(--off-white);
  border: 1px dashed #bfc5bc;
  border-radius: 12px;
}

.upload-placeholder.is-disabled {
  opacity: 0.64;
}

.upload-placeholder > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: var(--orange-dark);
  background: var(--orange-pale);
  border-radius: 10px;
  font-weight: 900;
}

.upload-placeholder strong,
.upload-placeholder small {
  display: block;
}

.upload-placeholder strong {
  font-size: 11px;
}

.upload-placeholder small {
  color: var(--gray);
  font-size: 9px;
}

.upload-status {
  min-height: 17px;
  margin: -8px 19px 17px;
  color: #7a5400;
  font-size: 9px;
}

.timeline-card {
  overflow: hidden;
}

.timeline-card header {
  padding: 17px;
  background: #fbfcfa;
  border-bottom: 1px solid var(--line);
}

.timeline-card h3 {
  margin: 0;
  font-size: 15px;
}

.event-timeline {
  margin: 0;
  padding: 17px;
  list-style: none;
}

.event-timeline li {
  display: grid;
  grid-template-columns: 12px 1fr;
  gap: 10px;
  position: relative;
}

.event-timeline li:not(:last-child) {
  padding-bottom: 18px;
}

.event-timeline li:not(:last-child)::after {
  content: "";
  width: 1px;
  position: absolute;
  top: 10px;
  bottom: -1px;
  left: 4px;
  background: var(--line);
}

.event-timeline li > span {
  width: 9px;
  height: 9px;
  margin-top: 3px;
  position: relative;
  z-index: 1;
  background: var(--orange);
  border: 2px solid var(--white);
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--orange);
}

.event-timeline strong,
.event-timeline time {
  display: block;
}

.event-timeline strong {
  font-size: 10px;
}

.event-timeline time {
  margin-top: 2px;
  color: var(--gray);
  font-size: 8px;
}

.event-timeline p {
  margin: 6px 0 0;
  padding: 7px 8px;
  color: #5f4b14;
  background: #fff8df;
  border-radius: 7px;
  font-size: 8px;
  white-space: pre-wrap;
}

.event-timeline .is-empty {
  display: block;
  color: var(--gray);
  font-size: 10px;
}

.portal-help {
  padding: 17px;
  color: var(--white);
  background: var(--ink);
  border-color: var(--ink);
}

.portal-help strong {
  font-size: 12px;
}

.portal-help p {
  margin: 5px 0 10px;
  color: #b9bec5;
  font-size: 9px;
}

.portal-help a {
  color: var(--orange);
  font-size: 10px;
  font-weight: 800;
}

/* Approved partner menu-material handoff */

.menu-intake-card {
  border-color: rgba(253, 85, 22, 0.38);
  box-shadow: 0 16px 40px rgba(217, 65, 12, 0.1);
}

.menu-intake-header {
  background: linear-gradient(135deg, #fff8f4 0%, #fffdfb 58%, #f1faed 100%);
}

.menu-intake-header > div {
  align-items: center;
}

.menu-intake-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: var(--white);
  background: var(--orange);
  border-radius: 11px;
  box-shadow: 0 8px 18px rgba(217, 65, 12, 0.23);
  font-size: 19px;
  font-weight: 900;
}

.menu-intake-header .form-kicker {
  margin-bottom: 3px;
  color: var(--orange-dark);
  font-size: 8px;
}

.menu-intake-state.is-submitted,
.menu-intake-state.is-received,
.menu-intake-state.is-building {
  color: var(--green-dark);
  background: var(--green-pale);
  border-color: #bee0b4;
}

.menu-intake-state.is-requested {
  color: #8a5700;
  background: #fff7d9;
  border-color: #ebd174;
}

.menu-intake-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 245px;
  align-items: stretch;
}

.menu-intake-main {
  min-width: 0;
  padding: 19px;
}

.menu-materials-checklist {
  padding: 18px;
  background: var(--off-white);
  border: 1px solid var(--line);
  border-radius: 12px;
}

.menu-materials-title {
  display: block;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.35;
}

.menu-materials-intro {
  margin: 6px 0 0;
  color: #545a61;
  font-size: 11px;
  line-height: 1.55;
}

.menu-materials-steps {
  display: grid;
  gap: 11px;
  margin: 15px 0 0;
  padding: 0;
  list-style: none;
}

.menu-materials-steps > li {
  display: grid;
  grid-template-columns: 29px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 12px;
  background: var(--white);
  border: 1px solid #e1e4e0;
  border-radius: 10px;
}

.menu-materials-step-number {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  color: var(--white);
  background: var(--green);
  border-radius: 50%;
  font-size: 11px;
  font-weight: 900;
}

.menu-materials-steps strong {
  display: block;
  color: var(--ink);
  font-size: 11.5px;
  line-height: 1.4;
}

.menu-materials-steps p {
  margin: 4px 0 0;
  color: #545a61;
  font-size: 10.5px;
  line-height: 1.55;
}

.menu-materials-fields {
  margin: 8px 0 0;
  padding-left: 17px;
  color: #454b51;
  font-size: 10.5px;
  line-height: 1.5;
}

.menu-materials-fields li + li {
  margin-top: 6px;
}

.menu-materials-critical {
  padding: 8px 10px;
  color: #6a4200 !important;
  background: #fff7d9;
  border: 1px solid #ebd174;
  border-radius: 8px;
  font-weight: 750;
}

.menu-materials-example {
  margin-top: 11px;
  padding: 12px;
  color: #343a40;
  background: #eef7ea;
  border: 1px solid #c7e1bd;
  border-radius: 10px;
}

.menu-materials-example strong,
.menu-materials-example small {
  display: block;
}

.menu-materials-example strong {
  font-size: 11px;
}

.menu-materials-example code {
  display: block;
  margin-top: 7px;
  padding: 9px 10px;
  overflow-x: auto;
  color: #263126;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(111, 155, 82, 0.22);
  border-radius: 7px;
  font: 600 10px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace;
  white-space: pre;
}

.menu-materials-example small {
  margin-top: 7px;
  color: #4d5a4a;
  font-size: 9.5px;
  line-height: 1.5;
}

.menu-template-download {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding: 12px;
  background: #fff;
  border: 1px solid #d9dfd6;
  border-radius: 10px;
}

.menu-template-download-button {
  flex: 0 0 auto;
  min-height: 44px;
  text-decoration: none;
}

.menu-template-download small {
  color: #545a61;
  font-size: 9.5px;
  line-height: 1.5;
}

@media (max-width: 640px) {
  .menu-template-download {
    align-items: stretch;
    flex-direction: column;
  }

  .menu-template-download-button {
    width: 100%;
    justify-content: center;
  }
}

.menu-intake-form {
  margin-top: 17px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 13px;
}

.menu-intake-form .field {
  margin: 0;
}

.menu-intake-replace-note {
  margin: -2px 0 0;
  padding: 10px 12px;
  color: #6a4d00;
  background: #fff7d9;
  border: 1px solid #ebd174;
  border-radius: 9px;
  font-size: 10px;
}

.menu-intake-replace-note[hidden],
.menu-intake-locked[hidden],
.menu-intake-form[hidden],
#menuIntakeError[hidden] {
  display: none !important;
}

.menu-intake-main > .portal-form-error {
  margin: 14px 0 0;
}

.menu-intake-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.menu-intake-actions .save-state {
  margin-right: 0;
}

.menu-intake-locked {
  margin: 17px 0 0;
  color: #275d17;
  background: var(--green-pale);
  border-color: #bee0b4;
  border-style: solid;
}

.menu-intake-progress {
  padding: 19px 17px;
  background: #fbfcfa;
  border-left: 1px solid var(--line);
}

.menu-intake-progress > strong {
  display: block;
  font-size: 11px;
}

.menu-intake-progress ol {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.menu-intake-progress li {
  position: relative;
  min-height: 53px;
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr);
  gap: 9px;
}

.menu-intake-progress li:not(:last-child)::after {
  content: "";
  width: 1px;
  position: absolute;
  top: 24px;
  bottom: 2px;
  left: 12px;
  background: var(--line);
}

.menu-intake-progress li > span {
  width: 25px;
  height: 25px;
  z-index: 1;
  display: grid;
  place-items: center;
  color: var(--gray);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 9px;
  font-weight: 900;
}

.menu-intake-progress li.is-done > span {
  color: var(--white);
  background: var(--green);
  border-color: var(--green);
}

.menu-intake-progress li.is-current > div strong {
  color: var(--orange-dark);
}

.menu-intake-progress li strong,
.menu-intake-progress li small {
  display: block;
}

.menu-intake-progress li strong {
  font-size: 10px;
  line-height: 1.3;
}

.menu-intake-progress li small {
  margin-top: 2px;
  color: var(--gray);
  font-size: 8px;
}

body > footer .provider-policy-links {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem;
}

footer {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 0 0 30px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: var(--gray);
  font-size: 11px;
  flex-wrap: wrap;
}

/* Keep the initial application useful within a desktop viewport. Let the
   document grow for validation, larger text and longer later steps; never
   hide overflow or introduce a second scroll area inside the form. */
@media (min-width: 981px) {
  body:has(.page-shell:not(.has-portal)) .site-header {
    width: min(1380px, calc(100% - 48px));
    padding: 8px 0;
  }

  .page-shell:not(.has-portal) {
    width: min(1380px, calc(100% - 48px));
    padding: 8px 0 16px;
    grid-template-columns: minmax(260px, .75fr) minmax(0, 1.65fr);
    gap: clamp(24px, 3vw, 44px);
  }

  .page-shell:not(.has-portal) .hero { padding-top: 20px; }
  .page-shell:not(.has-portal) .preview-badge { margin-bottom: 16px; }
  .page-shell:not(.has-portal) .hero h1 { font-size: clamp(36px, 3.4vw, 48px); line-height: 1.04; }
  .page-shell:not(.has-portal) .hero-copy { margin-top: 16px; font-size: 16px; line-height: 1.5; }
  .page-shell:not(.has-portal) .journey { margin-top: 20px; }
  .page-shell:not(.has-portal) .journey article { min-height: 68px; padding: 8px 0; grid-template-columns: 36px 1fr; gap: 12px; }
  .page-shell:not(.has-portal) .journey article > span { width: 36px; height: 36px; border-radius: 11px; }
  .page-shell:not(.has-portal) .journey article:not(:last-child)::after { top: 44px; left: 17px; }
  .page-shell:not(.has-portal) .journey h2 { font-size: 15px; }
  .page-shell:not(.has-portal) .journey p { font-size: 13px; }
  .page-shell:not(.has-portal) .security-note { margin-top: 16px; padding: 12px; gap: 10px; }

  .form-card:not(.is-portal) { min-height: 0; padding: 20px 24px; }
  .form-card:not(.is-portal) .form-card-head { min-height: 0; align-items: center; }
  .form-card:not(.is-portal) .form-card-head .form-kicker { margin-bottom: 4px; }
  .form-card:not(.is-portal) .form-card-head h2 { font-size: 23px; }
  .form-card:not(.is-portal) .stepper { margin: 12px 0; }
  .form-card:not(.is-portal) .step { display: flex; align-items: center; justify-content: center; gap: 7px; }
  .form-card:not(.is-portal) .step > span { width: max(28px, 1.6em); height: max(28px, 1.6em); margin: 0; flex: 0 0 auto; }
  .form-card:not(.is-portal) .step small { padding: 2px 4px; background: var(--white); }
  .form-card:not(.is-portal) .progress-line { top: 13px; }
  .form-card:not(.is-portal) .step-heading { margin-bottom: 12px; }
  .form-card:not(.is-portal) .step-heading > span { display: none; } /* The stepper already exposes the current step. */
  .form-card:not(.is-portal) .step-heading h3 { margin: 0 0 3px; font-size: 20px; }
  .form-card:not(.is-portal) .field { min-width: 0; margin-bottom: 10px; }
  .form-card:not(.is-portal) .field > span:first-child { margin-bottom: 4px; }
  .form-card:not(.is-portal) .field input,
  .form-card:not(.is-portal) .field select { min-height: 42px; padding-top: 8px; padding-bottom: 8px; }
  .form-card:not(.is-portal) .field-grid { gap: 12px; }
  .form-card:not(.is-portal) .form-actions { margin-top: 12px; padding-top: 12px; }
  .form-card:not(.is-portal) .form-actions .button { min-height: 44px; padding: 10px 20px; }

  #restaurantForm [data-step-panel="1"] {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: 14px;
  }
  #restaurantForm [data-step-panel="1"] > .step-heading,
  #restaurantForm [data-step-panel="1"] > .field-wide { grid-column: 1 / -1; }
  #restaurantForm [data-step-panel="1"] > .field-grid { display: contents; }
  #restaurantForm [data-step-panel="1"] .field:has([name="legal_name"]) { grid-column: 1 / 7; }
  #restaurantForm [data-step-panel="1"] .field:has([name="company_code"]) { grid-column: 7 / -1; }
  #restaurantForm [data-step-panel="1"] .vat-status-choice { grid-column: 1 / -1; margin-bottom: 10px; }
  #restaurantForm [data-step-panel="1"]:has(.vat-code-field:not([hidden])) .vat-status-choice { grid-column: 1 / 9; }
  #restaurantForm [data-step-panel="1"] .vat-code-field { grid-column: 9 / -1; }
  #restaurantForm [data-step-panel="1"] .vat-status-choice > legend { margin-bottom: 4px; }
  #restaurantForm [data-step-panel="1"] .vat-status-options > label { min-height: 52px; padding: 8px 10px; gap: 7px; }
  #restaurantForm [data-step-panel="1"] .field:has([name="representative"]) { grid-column: 1 / 7; }
  #restaurantForm [data-step-panel="1"] .field:has([name="notification_email"]) { grid-column: 7 / -1; }
  #restaurantForm [data-step-panel="1"] .field:has([name="registered_address"]) { grid-column: 1 / 7; }
  #restaurantForm [data-step-panel="1"] .field:has([name="iban"]) { grid-column: 7 / -1; }

  body:has(.page-shell:not(.has-portal)) > footer {
    width: min(1380px, calc(100% - 48px));
    padding-bottom: 10px;
  }
}

@media (min-width: 981px) and (max-height: 850px) {
  .page-shell:not(.has-portal) .hero { padding-top: 8px; }
  .page-shell:not(.has-portal) .preview-badge { display: none; } /* Header keeps the live staging status. */
  .page-shell:not(.has-portal) .hero h1 { font-size: 38px; }
  .page-shell:not(.has-portal) .journey { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .page-shell:not(.has-portal) .journey article { display: block; min-height: 0; }
  .page-shell:not(.has-portal) .journey h2 { overflow-wrap: anywhere; }
  .page-shell:not(.has-portal) .journey article > span { margin-bottom: 8px; }
  .page-shell:not(.has-portal) .journey article::after { display: none; }
  .form-card:not(.is-portal) { padding-top: 12px; padding-bottom: 12px; }
  .form-card:not(.is-portal) .stepper { margin: 8px 0; }
  .form-card:not(.is-portal) .field { margin-bottom: 8px; }
  .form-card:not(.is-portal) .field small { margin-top: 3px; line-height: 1.4; }
  .form-card:not(.is-portal) .form-actions { margin-top: 6px; padding-top: 10px; }
  body:has(.page-shell:not(.has-portal)) > footer { padding-bottom: 6px; }
}

@media (max-width: 980px) {
  .page-shell {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .hero {
    padding-top: 15px;
    position: static;
  }

  .hero h1,
  .hero-copy,
  .journey,
  .security-note {
    max-width: 760px;
  }

  .form-card {
    max-width: 760px;
    width: 100%;
    margin: 0 auto;
  }

  .page-shell.has-portal .form-card {
    max-width: none;
  }

  .portal-layout {
    grid-template-columns: 1fr;
  }

  .menu-intake-layout {
    grid-template-columns: minmax(0, 1fr) 230px;
  }

  .portal-side-column {
    position: static;
    grid-template-columns: minmax(0, 1fr) 260px;
  }
}

@media (max-width: 640px) {
  .site-header,
  .page-shell,
  footer {
    width: min(100% - 28px, 1180px);
  }

  .site-header {
    padding-top: 18px;
    align-items: flex-start;
  }

  .brand img {
    width: 138px;
  }

  .header-actions {
    gap: 8px;
  }

  .api-health {
    width: 36px;
    padding: 0;
    justify-content: center;
  }

  .api-health > span:last-child {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .language-switch button {
    min-width: 38px;
  }

  .page-shell {
    padding-top: 8px;
  }

  .hero h1 {
    font-size: clamp(38px, 12vw, 52px);
  }

  .journey,
  .security-note {
    display: none;
  }

  .hero-copy {
    font-size: 16px;
  }

  .form-card {
    min-height: 600px;
    padding: 24px 18px;
    border-radius: 19px;
  }

  .form-card.is-portal {
    padding: 20px 14px;
  }

  .portal-heading,
  .portal-reference {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-status-box {
    min-width: 0;
  }

  .portal-workflow {
    grid-template-columns: 1fr;
  }

  .portal-workflow li {
    min-height: 64px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .portal-workflow li:last-child {
    border-bottom: 0;
  }

  .portal-side-column {
    grid-template-columns: 1fr;
  }

  .portal-card-header,
  .portal-form-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .terms-signing-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .terms-signing-actions .button {
    width: 100%;
  }

  .terms-signing-meta > div {
    grid-template-columns: 1fr;
    gap: 1px;
  }

  .portal-card-header > .profile-state,
  .portal-card-header > .readonly-chip {
    width: fit-content;
  }

  .menu-intake-layout {
    grid-template-columns: 1fr;
  }

  .menu-intake-progress {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .menu-intake-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .menu-intake-actions .button {
    width: 100%;
  }

  .feature-grid {
    grid-template-columns: 1fr;
  }

  .commercial-grid {
    grid-template-columns: 1fr;
  }

  .commercial-grid dt {
    padding-bottom: 1px;
    border-bottom: 0;
  }

  .commercial-grid dd {
    padding-top: 1px;
    text-align: left;
  }

  .upload-placeholder {
    grid-template-columns: 38px 1fr;
  }

  .upload-placeholder .button {
    grid-column: 1 / -1;
  }

  .document-type-field {
    grid-template-columns: 1fr;
  }

  .document-list article {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .document-list article > div:last-child {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }

  .form-card-head {
    min-height: 60px;
  }

  .time-chip {
    display: none;
  }

  .stepper {
    margin: 26px -4px 28px;
  }

  .step small {
    font-size: 10px;
  }

  .field-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .vat-status-options {
    grid-template-columns: 1fr;
  }

  .form-subsection {
    padding: 13px 11px;
  }

  .hours-day {
    padding: 10px;
  }

  .hours-interval {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .hours-remove {
    min-height: auto;
    padding: 2px 0;
    grid-column: 1 / -1;
    justify-self: end;
  }

  .review-group dl {
    grid-template-columns: 1fr;
    gap: 1px;
  }

  .review-group dd {
    margin-bottom: 7px;
    text-align: left;
  }

  .form-actions {
    display: grid;
    grid-template-columns: auto 1fr;
  }

  .form-actions .button-primary {
    width: 100%;
  }

  .form-actions .button-primary:first-child:last-child {
    grid-column: 1 / -1;
  }

  .application-receipt {
    grid-template-columns: 1fr;
  }

  .success-actions {
    display: grid;
  }

  footer {
    flex-direction: column;
    gap: 4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* r359 — restaurant partner landing; the existing application and private portal
   keep their original controls and state. Marketing never covers portal work. */
.restaurant-landing-page{--ink:#241e1a;--gray:#756b64;--line:#eadfd6;--off-white:#fff8f2;--orange-dark:#cb3506;--green-pale:#eaf6e4;background:var(--off-white);font-family:NomiRestaurantRubik,Arial,sans-serif}
.restaurant-landing-page .brand-strip{height:4px}
.restaurant-landing-page:has(.page-shell) .site-header{width:min(1240px,calc(100% - 64px));padding:22px 0;gap:24px}
.restaurant-landing-page .brand img{width:174px}
.restaurant-landing-page .page-shell,.restaurant-landing-page .page-shell:not(.has-portal){display:block;width:min(1240px,calc(100% - 64px));padding:26px 0 80px}
.restaurant-landing-nav{display:flex;align-items:center;justify-content:center;gap:26px;margin-left:auto}
.restaurant-landing-nav a,.restaurant-portal-link{color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;line-height:1.35;padding:12px 0}
.restaurant-landing-nav a:hover,.restaurant-portal-link:hover{color:var(--orange-dark)}
.restaurant-landing-page .header-actions{gap:20px}
.restaurant-landing-page .language-switch{background:#fffaf6}
.restaurant-landing-page .eyebrow{color:var(--orange-dark);font-size:12px;letter-spacing:.13em;line-height:1.5;font-weight:600}
.restaurant-landing-page .button-primary{color:white;background:var(--orange-dark);box-shadow:0 12px 24px #ce36051a}
.restaurant-landing-page .button-primary:hover{background:#ae2f08}
.restaurant-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px;align-items:center;padding:30px 0 70px}
.restaurant-hero-copy{padding:6px 0 12px;min-width:0}
.restaurant-hero h1{margin:18px 0 24px;font-size:clamp(42px,5.1vw,70px);font-weight:600;line-height:1.06;letter-spacing:-.055em;max-width:650px;text-wrap:balance}
.restaurant-lead{font-size:18px;line-height:1.65;color:var(--gray);max-width:540px;margin:0}
.restaurant-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:30px 0 20px}
.restaurant-hero-actions .button,.restaurant-bottom-cta .button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:54px;padding:15px 22px;text-decoration:none;border-radius:15px;font-weight:600;font-size:15px;line-height:1.4}
.restaurant-text-link{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#c1afa1;font-size:14px;padding:12px 0;display:inline-block}
.restaurant-text-link:hover{color:var(--orange-dark)}
.restaurant-hero-note{font-size:12px;line-height:1.6;max-width:420px;color:var(--gray);margin:0}
.restaurant-hero-photos{min-width:0;height:450px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;padding:12px;background:#f7e7dc;border:1px solid #eed7c8;border-radius:38px 38px 100px 38px;overflow:hidden;box-shadow:0 24px 50px #723a1312}
.restaurant-hero-photo{min-width:0;min-height:0;margin:0;overflow:hidden;border-radius:20px;background:#ead8c8}
.restaurant-hero-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.restaurant-hero-photo-interior{grid-column:1 / 3}
.restaurant-hero-photo-interior img{object-position:50% 67%}
.restaurant-hero-photo-food img{object-position:50% 48%}
.restaurant-hero-photo-flowers img{object-position:50% 45%}
.restaurant-hero-photo-perfume{grid-column:2 / 4}
.restaurant-hero-photo-perfume img{object-position:50% 52%}
@media(hover:hover){.restaurant-hero-photo:hover img{transform:scale(1.055)}}
@media(prefers-reduced-motion:reduce){.restaurant-hero-photo img{transition:none}}
@media(max-width:1100px){.restaurant-hero-photos{height:400px}}
@media(max-width:850px){.restaurant-hero-photos{height:330px;border-radius:28px 28px 75px 28px}}
@media(max-width:640px){.restaurant-hero-photos{height:320px;max-width:510px;width:100%;margin:0 auto;gap:8px;padding:9px}.restaurant-hero-photo{border-radius:15px}}
.restaurant-section{padding:64px 0;scroll-margin-top:28px}
.restaurant-section-heading{max-width:790px;text-align:center;margin:0 auto 38px}
.restaurant-section-logo{display:block;width:148px;max-width:46%;height:auto;margin:0 auto 14px;object-fit:contain}
.restaurant-section-heading h2,.restaurant-bottom-cta h2{font-size:clamp(32px,3.6vw,48px);line-height:1.12;letter-spacing:-.04em;font-weight:600;text-wrap:balance;margin:10px 0 20px}
.restaurant-section-heading>p:not(.eyebrow),.restaurant-bottom-cta>p:not(.eyebrow){margin:0;color:var(--gray);font-size:16px;line-height:1.65}
.restaurant-heading-left{text-align:left;margin-left:0;max-width:800px}
.restaurant-business-grid,.restaurant-tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.restaurant-business-card,.restaurant-start-card,.restaurant-tool-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--line);border-radius:28px;padding:30px;min-width:0}
.restaurant-card-apricot{background:#ffead7}
.restaurant-card-green{background:#e8f5e0}
.restaurant-card-cream{background:#fff0d8}
.restaurant-card-index{display:grid;place-items:center;width:37px;height:30px;margin-bottom:19px;border:1px solid #9b7e67;border-radius:100px;font-size:11px;font-weight:600;line-height:1}
.restaurant-business-card h3,.restaurant-start-card h3,.restaurant-tool-card h3{margin:0 0 13px;font-size:26px;font-weight:600;line-height:1.15;letter-spacing:-.03em;text-wrap:balance}
.restaurant-business-card p,.restaurant-start-card p,.restaurant-tool-card p{margin:0;font-size:14px;line-height:1.65;color:#66584e}
.restaurant-business-card{min-height:465px;display:flex;flex-direction:column}
.restaurant-business-art{margin-top:auto;padding-top:20px;display:flex;align-items:center;justify-content:center;min-height:230px}
.restaurant-business-art img{width:100%;height:240px;object-fit:contain;display:block}
.restaurant-storefront-art,.restaurant-cafe-art{margin-top:auto;min-height:230px;display:grid;place-items:end center}
.restaurant-storefront-art svg,.restaurant-cafe-art svg{display:block;width:100%;height:auto;max-height:240px}
@media(min-width:851px){.restaurant-business-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.restaurant-business-grid>.restaurant-business-card{grid-column:span 2}.restaurant-business-grid>.restaurant-business-card:nth-last-child(2){grid-column:2/span 2}.restaurant-business-grid>.restaurant-business-card:last-child{grid-column:4/span 2}}
@media(min-width:641px) and (max-width:850px){.restaurant-business-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.restaurant-business-grid>.restaurant-business-card{grid-column:span 2}.restaurant-business-grid>.restaurant-business-card:last-child{grid-column:2/span 2}}
.restaurant-retail-art{margin-top:auto;padding-top:22px;min-height:230px;display:grid;place-items:end center}
.restaurant-retail-art svg{display:block;width:100%;height:auto;max-height:240px}
.restaurant-business-card :is(.restaurant-storefront-art,.restaurant-cafe-art,.restaurant-retail-art){width:100%;height:230px;min-height:0;margin-top:22px;padding:0;display:block;overflow:hidden;border-radius:20px;background:#f6e5d5}
.restaurant-business-card :is(.restaurant-storefront-art,.restaurant-cafe-art,.restaurant-retail-art) img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.restaurant-business-card .restaurant-flower-photo{object-position:50% 50%}
.restaurant-business-card:hover :is(.restaurant-storefront-art,.restaurant-cafe-art,.restaurant-retail-art) img{transform:scale(1.045)}
.restaurant-business-card :is(.restaurant-storefront-art,.restaurant-cafe-art,.restaurant-retail-art) svg{display:none}
@media(max-width:640px){.restaurant-business-card :is(.restaurant-storefront-art,.restaurant-cafe-art,.restaurant-retail-art){height:220px}}
.restaurant-shops-contact{margin-top:26px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 30px;background:#fffdf9;border:1px solid var(--line);border-radius:22px}
.restaurant-shops-contact p{max-width:650px;margin:0;color:#756456;font-size:15px;line-height:1.7}
.restaurant-shops-contact .button{flex-shrink:0;text-align:center}
#restaurantShops{scroll-margin-top:24px}
@media(max-width:850px){.restaurant-shops-contact{flex-direction:column;align-items:flex-start}.restaurant-shops-contact .button{white-space:normal;max-width:100%}.restaurant-retail-art{min-height:190px}}
.restaurant-start-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.restaurant-start-card{min-height:430px;display:flex;flex-direction:column;padding:34px}
.restaurant-start-card h3{max-width:430px}
.restaurant-start-card p{max-width:440px;font-size:15px}
.restaurant-brand-logo{display:block;width:132px;max-width:100%;height:auto;object-fit:contain;flex-shrink:0}
.restaurant-phone-preview>.restaurant-brand-logo{width:116px}
.restaurant-start-photo,.restaurant-menu-photo{width:100%;height:230px;margin:24px 0 0;overflow:hidden;border-radius:20px;background:#dfead7}
.restaurant-start-photo>img,.restaurant-menu-photo>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:640px){.restaurant-start-photo,.restaurant-menu-photo{height:220px}}
.restaurant-start-wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:center;gap:35px;min-height:320px;padding:32px 42px}
.restaurant-start-wide>img{height:280px;width:100%;object-fit:cover;display:block;border-radius:20px}
.restaurant-start-wide>.restaurant-start-delivery-photo{object-fit:contain;width:100%;max-width:280px;height:auto;aspect-ratio:400/408;justify-self:center;background:transparent}
.restaurant-start-wide .restaurant-text-link{margin-top:14px}
@media(max-width:640px){.restaurant-start-card.restaurant-start-wide{gap:24px;padding-bottom:27px}}
.restaurant-readiness{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr);gap:30px;padding:30px 32px;border:1px solid var(--line);border-radius:24px;background:white;margin-top:22px;align-items:center}
.restaurant-readiness h3{margin:0;font-size:21px;line-height:1.3;letter-spacing:-.025em;font-weight:600;max-width:250px}
.restaurant-readiness ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:18px 28px}
.restaurant-readiness li{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.5}
.restaurant-readiness li>span:first-child{flex:0 0 24px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;color:#287e10;background:#edf8e7;font-size:15px}
.restaurant-tool-card{min-height:460px;background:#fff;display:flex;flex-direction:column;padding:30px 28px 0}
.restaurant-tool-card h3{font-size:25px}
/* Static, deliberately cropped excerpt of the real partner portal's visual language.
   No embedded portal, private data, controls or live API connection. */
.restaurant-panel-showcase{margin:0 0 26px;min-width:0}
.restaurant-panel-crop{position:relative;height:490px;overflow:hidden;border:1px solid #EADFD9;border-radius:26px;background:#FFF8F4;box-shadow:0 22px 60px #6f41290f}
.restaurant-panel-crop:after{content:'';position:absolute;inset:auto 0 0;height:108px;background:linear-gradient(transparent,#FFF8F4);pointer-events:none}
.restaurant-panel-fragment{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:610px;color:#201A18;background:#FFFDFA;font-size:13px;line-height:1.4;user-select:none;pointer-events:none}
.restaurant-panel-sidebar{padding:26px 16px;background:linear-gradient(#FFFFFF,#FFF8F4 210px);border-right:1px solid #EDD8CE}
.restaurant-panel-brand{padding:0 8px 24px;display:flex;flex-direction:column;gap:8px}
.restaurant-panel-brand small{color:#786A63;font-size:10px;letter-spacing:.06em}
.restaurant-panel-venue{display:flex;align-items:center;gap:9px;padding:12px 10px;border:1px solid #F0D9CD;border-radius:13px;background:#FFF0E8;font-size:11px}
.restaurant-panel-venue strong{min-width:0;overflow-wrap:anywhere;font-size:11px;font-weight:600}
.restaurant-panel-venue>span:last-child{margin-left:auto}
.restaurant-panel-venue-icon{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border-radius:8px;background:#FFDFCB;color:#C93806;font-size:18px}
.restaurant-panel-nav{display:grid;gap:7px;margin-top:19px}
.restaurant-panel-nav>div{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;padding:13px 10px;border-radius:11px;color:#786A63;font-size:12px}
.restaurant-panel-nav>div>span:first-child{font-size:19px;line-height:1;text-align:center}
.restaurant-panel-nav>.is-selected{color:#fff;background:#201A18;box-shadow:inset 3px 0 #FD5516}
.restaurant-panel-nav>.is-selected>span:first-child{color:#FF7C43}
.restaurant-panel-sidebar-tail{display:grid;gap:26px;margin:29px 12px}
.restaurant-panel-sidebar-tail i{display:block;width:75%;height:7px;border-radius:9px;background:#EDE3DD}
.restaurant-panel-sidebar-tail i:nth-child(2){width:56%}
.restaurant-panel-content{min-width:0;padding:27px 30px;background:radial-gradient(ellipse at 100% 0,#FFF0E5,transparent 50%),#FFFDFA}
.restaurant-panel-topline{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}
.restaurant-panel-topline p{margin:0 0 6px;font-size:10px;letter-spacing:.1em;color:#C93806}
.restaurant-panel-topline>div>strong{display:block;font-size:32px;font-weight:600;letter-spacing:-.04em;line-height:1.1}
.restaurant-panel-period{display:flex;align-items:center;gap:9px;width:max-content;max-width:100%;padding:8px 11px;border:1px solid #EADFD9;border-radius:9px;background:#fff;font-size:11px;margin-bottom:18px}
.restaurant-panel-period>span:first-child{color:#C93806;font-size:15px}
.restaurant-panel-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.restaurant-panel-kpis>div{min-width:0;min-height:100px;padding:14px 12px;border:1px solid #EADFD9;border-radius:14px;background:#FFFDFA}
.restaurant-panel-kpis>div>span{display:block;font-size:11px;line-height:1.45;min-height:32px}
.restaurant-panel-kpis strong{display:block;margin:7px 0;font-size:27px;font-weight:600;line-height:1.2;letter-spacing:-.035em;white-space:nowrap}
.restaurant-panel-kpis strong small{font-size:16px;color:#E69B22}
.restaurant-panel-kpis i{display:block;width:49%;height:4px;border-radius:3px;background:#EADFD9}
.restaurant-panel-kpis>.is-selected{border-color:#FD5516;box-shadow:0 0 0 1px #FD5516,0 8px 22px #FD551612}
.restaurant-panel-chart{margin-top:17px;padding:18px 19px 12px;border:1px solid #EADFD9;border-radius:15px;background:#FFFDFA}
.restaurant-panel-chart>div{display:flex;justify-content:space-between;gap:12px;align-items:center}
.restaurant-panel-chart strong{font-size:15px;font-weight:600}
.restaurant-panel-chart>div>span{color:#A08D80;font-size:12px}
.restaurant-panel-chart svg{display:block;width:100%;height:133px;margin-top:18px;overflow:hidden}
.restaurant-panel-recent{margin-top:17px;padding:18px;border:1px solid #EADFD9;border-radius:15px;background:#FFFDFA}
.restaurant-panel-recent>strong{font-size:14px;font-weight:600}
.restaurant-panel-recent>div{display:flex;align-items:center;gap:18px;padding:12px 0;border-bottom:1px solid #F2EAE5;font-size:11px}
.restaurant-panel-recent>div>i{height:5px;width:25%;background:#EADFD9;border-radius:4px}
.restaurant-panel-recent>div>strong{margin-left:auto;font-weight:600;white-space:nowrap}
.restaurant-panel-recent .is-delivered,.restaurant-panel-recent .is-preparing{padding:5px 8px;border-radius:20px;background:#EAF5E3;color:#377C22;font-size:10px}
.restaurant-panel-recent .is-preparing{background:#FFF0DA;color:#A16A16}
.restaurant-panel-showcase figcaption{margin-top:13px;text-align:center;color:#8B7769;font-size:12px;line-height:1.5}
.restaurant-tools-grid>.restaurant-tool-summary{display:flex;flex-direction:row;gap:14px;align-items:flex-start;min-height:0;padding:23px 22px;background:#FFFDFA;border-radius:20px}
.restaurant-tool-summary h3{font-size:21px}
.restaurant-tool-summary p{font-size:13px}
.restaurant-tool-check{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#EAF5E3;color:#388B19;font-size:17px}
@media(max-width:1050px) and (min-width:641px){.restaurant-panel-fragment{grid-template-columns:168px minmax(0,1fr)}.restaurant-panel-sidebar{padding:23px 10px}.restaurant-panel-brand{padding-inline:6px}.restaurant-panel-content{padding:25px 20px}.restaurant-panel-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.restaurant-panel-kpis>div:nth-child(n+3){display:none}.restaurant-panel-crop{height:470px}.restaurant-panel-nav>div{font-size:11px;padding-inline:8px}.restaurant-panel-topline>div>strong{font-size:29px}}
@media(max-width:640px){.restaurant-panel-crop{height:430px;border-radius:20px}.restaurant-panel-fragment{grid-template-columns:minmax(0,1fr);min-height:590px}.restaurant-panel-sidebar{padding:15px 17px;border-right:0;border-bottom:1px solid #EADFD9}.restaurant-panel-brand{padding:0;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.restaurant-panel-brand .restaurant-brand-logo{width:120px}.restaurant-panel-brand small{font-size:9px;letter-spacing:0}.restaurant-panel-sidebar .restaurant-panel-venue,.restaurant-panel-sidebar .restaurant-panel-nav,.restaurant-panel-sidebar .restaurant-panel-sidebar-tail{display:none}.restaurant-panel-content{padding:20px 17px}.restaurant-panel-topline{margin-bottom:15px}.restaurant-panel-topline>div>strong{font-size:27px}.restaurant-panel-topline p{font-size:9px;letter-spacing:.06em}.restaurant-panel-period{font-size:10px;margin-bottom:16px}.restaurant-panel-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.restaurant-panel-kpis>div{padding:12px 10px;min-height:102px}.restaurant-panel-kpis>div:nth-child(n+3){display:none}.restaurant-panel-kpis strong{font-size:26px}.restaurant-panel-kpis>div>span{font-size:10px;min-height:29px}.restaurant-panel-chart{padding:15px 12px}.restaurant-panel-chart strong{font-size:13px}.restaurant-panel-chart svg{height:110px}.restaurant-panel-showcase figcaption{font-size:11px}.restaurant-tools-grid>.restaurant-tool-summary{padding:22px 20px;gap:12px}.restaurant-tools-grid>.restaurant-tool-summary h3{font-size:23px}.restaurant-tools-grid>.restaurant-tool-summary p{font-size:14px}}
.restaurant-orders-preview,.restaurant-report-preview{width:calc(100% + 22px);margin:32px 0 0 -11px;padding:24px;border:1px solid #dedbd5;border-radius:20px 20px 0 0;background:#fffcf8;box-shadow:0 0 0 6px #f8f3ec;margin-top:auto;position:relative;top:32px}
.restaurant-preview-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}
.restaurant-preview-top>span{font-size:23px;color:#695b50}
.restaurant-preview-row{display:flex;gap:12px;align-items:center;border-top:1px solid #ece6de;padding:16px 0}
.restaurant-preview-dot{width:30px;height:30px;background:#ffdfc1;border-radius:10px;flex-shrink:0}
.restaurant-preview-row i{height:8px;background:#e3dad0;border-radius:4px;width:55%}
.restaurant-preview-row em{margin-left:auto;font-size:14px;background:#e7f6dc;color:#328b13;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-style:normal}
.restaurant-phone-preview{width:210px;max-width:100%;height:280px;flex-shrink:0;padding:36px 18px 0;border:7px solid #366a25;border-radius:34px 34px 0 0;background:#fff8ef;margin:32px auto -15px;position:relative;transform:rotate(-5deg)}
.restaurant-phone-camera{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:58px;height:7px;border-radius:10px;background:#366a25}
.restaurant-phone-preview>.restaurant-phone-food{width:100%;height:140px;object-fit:contain;display:block;margin-top:8px;background:#eaf5e1;border-radius:14px}
.restaurant-phone-preview>i{display:block;height:7px;background:#dfd7c9;border-radius:4px;width:70%;margin-top:13px}
.restaurant-phone-preview>i:nth-of-type(2){width:42%}
.restaurant-phone-button{position:absolute;right:14px;bottom:24px;background:#d5450f;border-radius:10px;width:32px;height:32px;display:grid;place-items:center;color:white;font-size:22px}
.restaurant-report-preview{height:273px;top:22px}
.restaurant-preview-bars{height:110px;display:flex;align-items:end;gap:9px;padding:0 2px;border-bottom:1px solid #dfdace}
.restaurant-preview-bars i{flex:1;background:#a7d68d;border-radius:6px 6px 0 0;height:55%}
.restaurant-preview-bars i:nth-child(2){height:75%;background:#79c854}.restaurant-preview-bars i:nth-child(3){height:42%}.restaurant-preview-bars i:nth-child(4){height:62%;background:#fd9963}.restaurant-preview-bars i:nth-child(5){height:83%;background:#55ac2f}.restaurant-preview-bars i:nth-child(6){height:68%;background:#fd9963}.restaurant-preview-bars i:nth-child(7){height:95%;background:#3b9b1b}
.restaurant-report-line{height:6px;background:#e8e1d8;border-radius:6px;width:78%;margin-top:14px}.restaurant-report-line+.restaurant-report-line{width:53%}
.restaurant-report-download{position:absolute;right:15px;bottom:9px;border:1px solid #ddded3;border-radius:9px;padding:8px 10px;background:white;font-size:9px;color:#5c604e}.restaurant-report-download>span{color:#3b881b;margin:0 6px}
.restaurant-partner-story{position:relative;isolation:isolate;margin:58px 0 28px;border-radius:30px;overflow:hidden;background:#ecddca;min-height:500px}
.restaurant-partner-story>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 53%;display:block}
.restaurant-partner-caption{position:relative;float:right;width:min(370px,40%);margin:58px 40px 58px 0;padding:30px;background:#fffaf2f5;border:1px solid #fffaf2;border-radius:24px;box-shadow:0 20px 60px #251a1712}
.restaurant-partner-caption h2{font-size:40px;font-weight:600;line-height:1.05;letter-spacing:-.045em;margin:10px 0 24px}
.restaurant-partner-rule{height:3px;width:46px;background:#40ac1b;display:block;margin-bottom:28px}
.restaurant-partner-quote{margin:0 0 28px;font-size:18px;font-weight:400;font-style:normal;line-height:1.65;color:#493d34;overflow-wrap:break-word}
.restaurant-partner-name{font-weight:600;font-size:21px;line-height:1.3;margin:0 0 9px;letter-spacing:-.02em}
.restaurant-partner-role{font-size:13px;line-height:1.6;color:#766558;margin:0}
.restaurant-faq{max-width:1060px;margin:auto}
.restaurant-faq-list{display:grid;gap:12px}
.restaurant-faq details{background:#fffdf9;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.restaurant-faq summary{list-style:none;display:flex;gap:20px;align-items:center;justify-content:space-between;cursor:pointer;min-height:75px;padding:20px 24px;font-size:16px;font-weight:600;line-height:1.5}
.restaurant-faq summary::-webkit-details-marker{display:none}
.restaurant-faq summary::marker{content:''}
.restaurant-faq summary:hover{background:#fff4e8}
.restaurant-faq-toggle{display:block;flex-shrink:0;width:30px;height:30px;border:1px solid #d0bfae;border-radius:50%;position:relative;color:var(--orange-dark)}
.restaurant-faq-toggle:before,.restaurant-faq-toggle:after{content:'';position:absolute;left:50%;top:50%;background:currentColor;transform:translate(-50%,-50%);width:12px;height:2px;border-radius:2px}
.restaurant-faq-toggle:after{width:2px;height:12px}
.restaurant-faq details[open] .restaurant-faq-toggle:after{display:none}
.restaurant-faq details[open]{background:#fff6eb;border-color:#e8c8aa}
.restaurant-faq details>p{margin:0;padding:0 76px 24px 24px;line-height:1.75;color:#756356;font-size:15px}
.restaurant-bottom-cta{text-align:center;max-width:1060px;margin:25px auto 48px;padding:52px 35px;border-radius:30px;background:#eaf6e4;border:1px solid #daebd0}
.restaurant-bottom-logo{display:block;width:148px;max-width:46%;height:auto;margin:0 auto 15px;object-fit:contain}
.restaurant-bottom-cta h2{max-width:780px;margin:10px auto 18px}
.restaurant-bottom-cta>.button{margin-top:28px}
.restaurant-landing-page .form-card:not(.is-portal){width:100%;max-width:1060px;margin:0 auto;padding:30px;background:#fffdf9;border-radius:26px;scroll-margin-top:30px;box-shadow:0 14px 45px #3d251309}
.restaurant-landing-page .form-card-head h2{font-size:27px;letter-spacing:-.035em}
.restaurant-landing-page .form-card:not(.is-portal) .field input,.restaurant-landing-page .form-card:not(.is-portal) .field select{min-height:46px}
.restaurant-landing-page .page-shell.has-portal>[data-restaurant-landing],.restaurant-landing-page:has(.page-shell.has-portal) [data-restaurant-landing]{display:none}
.restaurant-landing-page:has(.page-shell.has-portal) .page-shell{padding-top:10px}
.restaurant-landing-page :is(a,summary):focus-visible{outline:3px solid #277a0b;outline-offset:5px;border-radius:8px}
.restaurant-landing-page #restaurantApplication:focus{outline:none}
.restaurant-landing-page a[data-legal-document]{color:#277a0b;text-decoration:underline;text-underline-offset:.2em;overflow-wrap:anywhere}.restaurant-landing-page a[data-legal-document]:hover{color:#c53600}
.restaurant-landing-page #restaurantApplication:focus-visible{outline:3px solid #277a0b;outline-offset:5px}
.restaurant-landing-page>footer{width:min(1240px,calc(100% - 64px));padding-bottom:30px;font-size:11px;color:var(--gray)}
@media(max-width:1100px){.restaurant-landing-nav{gap:16px}.restaurant-portal-link{display:none}.restaurant-hero{gap:35px}.restaurant-hero-art{min-height:400px}.restaurant-hero-art>img{height:380px}.restaurant-business-card,.restaurant-tool-card{padding-inline:23px}.restaurant-business-card h3{font-size:24px}.restaurant-partner-caption{margin-right:25px}}
@media(max-width:850px){.restaurant-landing-page:has(.page-shell) .site-header{width:calc(100% - 40px);flex-wrap:wrap;gap:10px 20px;padding:17px 0}.restaurant-landing-nav{order:3;width:100%;justify-content:flex-start;margin:0;gap:22px;border-top:1px solid var(--line);padding-top:7px}.restaurant-landing-nav a{font-size:13px}.restaurant-landing-page .header-actions{margin-left:auto}.restaurant-landing-page .page-shell,.restaurant-landing-page .page-shell:not(.has-portal){width:calc(100% - 40px);padding-top:24px}.restaurant-hero{grid-template-columns:1fr 1fr;gap:24px;padding-top:10px}.restaurant-hero h1{font-size:46px}.restaurant-lead{font-size:16px}.restaurant-hero-art{min-height:330px;border-radius:28px 28px 75px 28px}.restaurant-hero-art>img{height:320px}.restaurant-art-sticker{font-size:15px;bottom:20px}.restaurant-hero-actions{gap:10px 20px}.restaurant-business-grid,.restaurant-tools-grid{gap:14px}.restaurant-business-card,.restaurant-tool-card{padding:22px 20px}.restaurant-business-card h3,.restaurant-tool-card h3{font-size:22px}.restaurant-business-card p,.restaurant-tool-card p{font-size:13px}.restaurant-business-art img{height:190px}.restaurant-business-card{min-height:420px}.restaurant-business-art,.restaurant-cafe-art{min-height:190px}.restaurant-start-card{padding:27px}.restaurant-readiness{grid-template-columns:1fr}.restaurant-readiness h3{max-width:none}.restaurant-partner-story{min-height:470px}.restaurant-partner-caption{width:43%;padding:25px}.restaurant-partner-caption h2{font-size:34px}.restaurant-orders-preview,.restaurant-report-preview{width:100%;margin-inline:0;padding:18px}.restaurant-phone-preview{border-width:5px;padding-inline:12px}.restaurant-tool-card{min-height:455px;padding-bottom:0}}
@media(max-width:640px){.restaurant-landing-page:has(.page-shell) .site-header{width:calc(100% - 32px)}.restaurant-landing-page .brand img{width:145px}.restaurant-landing-page .page-shell,.restaurant-landing-page .page-shell:not(.has-portal){width:calc(100% - 32px);padding:20px 0 46px}.restaurant-landing-nav{gap:20px;justify-content:space-between}.restaurant-landing-nav a{font-size:11px;padding:11px 0}.restaurant-hero{grid-template-columns:1fr;gap:25px;padding:12px 0 25px}.restaurant-hero h1{font-size:clamp(39px,10.8vw,57px);max-width:530px;margin:13px 0 19px}.restaurant-hero-copy{padding:0}.restaurant-lead{font-size:16px}.restaurant-hero-actions{gap:16px;margin:23px 0 14px}.restaurant-hero-actions .button{font-size:14px;min-height:51px;padding:14px 17px;gap:13px}.restaurant-hero-note{font-size:11px;max-width:380px}.restaurant-hero-art{min-height:0;height:320px;max-width:510px;width:100%;margin:0 auto}.restaurant-hero-art>img{height:310px;width:90%}.restaurant-section{padding:43px 0}.restaurant-section-heading{margin-bottom:26px}.restaurant-section-heading h2,.restaurant-bottom-cta h2{font-size:32px;letter-spacing:-.045em;margin-bottom:16px}.restaurant-section-heading>p:not(.eyebrow),.restaurant-bottom-cta>p:not(.eyebrow){font-size:14px}.restaurant-business-grid,.restaurant-tools-grid,.restaurant-start-grid{grid-template-columns:1fr;gap:17px}.restaurant-business-card{min-height:390px;padding:26px;max-width:510px;width:100%;margin:0 auto}.restaurant-business-card h3{font-size:27px}.restaurant-business-card p{font-size:14px}.restaurant-business-art{min-height:190px;padding-top:10px}.restaurant-business-art img{height:230px}.restaurant-cafe-art{height:210px}.restaurant-card-index{margin-bottom:16px}.restaurant-start-card{padding:27px;min-height:400px}.restaurant-start-card h3{font-size:25px}.restaurant-start-card p{font-size:14px}.restaurant-start-wide{grid-column:auto;grid-template-columns:1fr;gap:4px;padding-bottom:14px}.restaurant-start-wide>img{height:225px}.restaurant-readiness{padding:25px;gap:22px}.restaurant-readiness ul{grid-template-columns:1fr;gap:16px}.restaurant-readiness h3{font-size:23px}.restaurant-readiness li{font-size:13px}.restaurant-tool-card{max-width:510px;width:100%;margin:0 auto;min-height:400px;padding:27px 27px 0}.restaurant-tool-card h3{font-size:26px}.restaurant-tool-card p{font-size:14px}.restaurant-orders-preview,.restaurant-report-preview{max-width:310px;margin:30px auto 0;top:16px;padding:22px}.restaurant-phone-preview{margin-top:28px;width:235px;height:285px}.restaurant-phone-preview>.restaurant-phone-food{height:145px}.restaurant-partner-story{margin:26px 0 3px;min-height:0;display:flex;flex-direction:column;border:1px solid #ead4bd;border-radius:24px;background:#fff0dd}.restaurant-partner-story>img{position:static;height:330px;object-position:38% center}.restaurant-partner-caption{float:none;width:auto;margin:0;padding:28px;background:transparent;border:0;border-radius:0;box-shadow:none}.restaurant-partner-caption h2{font-size:38px;margin-bottom:21px}.restaurant-partner-rule{margin-bottom:21px}.restaurant-partner-name{font-size:21px}.restaurant-partner-role{font-size:13px}.restaurant-faq summary{font-size:14px;min-height:74px;padding:19px 17px;gap:16px}.restaurant-faq-toggle{width:28px;height:28px}.restaurant-faq details>p{padding:0 18px 21px;font-size:14px}.restaurant-faq details{border-radius:15px}.restaurant-bottom-cta{padding:34px 23px;margin:15px 0 30px;border-radius:24px}.restaurant-bottom-cta .button{font-size:14px;padding-inline:16px;gap:13px;max-width:100%}.restaurant-landing-page .form-card:not(.is-portal){padding:24px 18px;border-radius:23px}.restaurant-landing-page .form-card-head h2{font-size:25px}.restaurant-landing-page>footer{width:calc(100% - 32px)}.restaurant-landing-page .restaurant-portal-link{display:none}}
@media(prefers-reduced-motion:reduce){.restaurant-landing-page *{scroll-behavior:auto!important}}

/* Keep the header geometry unchanged while the language control mounts. */
.restaurant-landing-page #languagePicker{width:149px;height:52px;flex:0 0 149px}
.restaurant-landing-page #languagePicker .nomi-language-select{width:100%;min-width:0;max-width:none}
@media(max-width:640px){.restaurant-landing-page #languagePicker{width:125px;flex-basis:125px}}

/* Shared public-site footer: grouped, readable and responsive. */
.restaurant-landing-page>.restaurant-site-footer{display:block;width:min(1240px,calc(100% - 64px));margin:14px auto 38px;padding:32px 34px 22px;background:#fffdf9;border:1px solid #eadfd8;border-radius:24px;box-shadow:0 16px 44px rgba(60,35,19,.07);color:var(--gray);font-size:12px}
.restaurant-footer-main{display:grid;grid-template-columns:minmax(230px,1.15fr) minmax(150px,.65fr) minmax(300px,1fr);gap:34px;align-items:start}
.restaurant-footer-main>*{min-width:0}
.restaurant-footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:15px;max-width:330px;color:var(--gray);text-decoration:none}
.restaurant-footer-brand img{display:block;width:172px;height:auto}
.restaurant-footer-brand span{line-height:1.55}
.restaurant-footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.restaurant-footer-contact strong{margin-bottom:4px;color:var(--ink);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.restaurant-footer-contact a,.restaurant-footer-links a,.restaurant-footer-provider-links a{min-width:0;color:var(--gray);text-decoration:none;overflow-wrap:anywhere}
.restaurant-footer-contact a:hover,.restaurant-footer-links a:hover,.restaurant-footer-provider-links a:hover{color:#c53600}
.restaurant-footer-links{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:11px 24px;justify-self:end;width:min(100%,390px)}
.restaurant-footer-links a:first-child{grid-column:1/-1}
.restaurant-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;margin-top:28px;padding-top:19px;border-top:1px solid #eadfd8;color:#85776f;font-size:11px}
.restaurant-footer-made{color:#655850}
.restaurant-footer-provider-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%}
@media(min-width:641px) and (max-width:900px){.restaurant-footer-main{grid-template-columns:1fr 1fr}.restaurant-footer-links{grid-column:1/-1;justify-self:stretch;width:100%;grid-template-columns:repeat(3,1fr)}.restaurant-footer-links a:first-child{grid-column:auto}}
@media(max-width:640px){.restaurant-landing-page>.restaurant-site-footer{width:calc(100% - 32px);max-width:calc(100vw - 32px);margin-bottom:24px;padding:25px 21px 19px}.restaurant-footer-main{grid-template-columns:minmax(0,1fr);gap:25px}.restaurant-footer-brand img{width:154px}.restaurant-footer-links{justify-self:stretch;grid-template-columns:minmax(0,1fr);gap:12px;width:100%}.restaurant-footer-links a:first-child{grid-column:auto}.restaurant-footer-bottom{align-items:flex-start;flex-direction:column;gap:10px}.restaurant-footer-provider-links{width:100%;gap:6px 8px}}
