.public-footer { flex-wrap: wrap; }

/* Operator pages share one visual identity; tenant signup pages stay separate. */
body.operator-site {
  background: var(--paper);
  background-image: url('/static/images/home-light.webp');
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
body.operator-site .public-header {
  width: 88%;
  max-width: 1100px;
  padding: 20px 0;
  flex: 0 0 auto;
}
body.operator-site .brand {
  font-family: Arial, sans-serif;
  font-size: 16px;
  gap: 12px;
}
body.operator-site .brand-mark {
  font-family: Georgia, serif;
  width: 38px;
  height: 38px;
  flex-basis: 38px;
  font-size: 29px;
}
body[data-page="home"] .public-main {
  width: 62%;
  max-width: 760px;
  padding: clamp(48px, 6.4vw, 82px) 0 64px;
  min-height: 0;
  margin: 0 auto;
  flex: 1 0 auto;
}
body[data-page="home"]:has(.contact-details[open]) .public-main {
  width: 72%;
  max-width: 840px;
  padding-top: clamp(36px, 4.6vw, 58px);
  padding-bottom: 32px;
}
.home-entry h1 {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -.045em;
  margin: 0 0 22px;
}
.home-entry:has(.contact-details[open]) h1 { font-size: clamp(36px, 4.6vw, 58px); }
.home-intro {
  color: var(--muted);
  font-size: clamp(14px, 1.3vw, 16px);
  line-height: 1.5;
  margin: 0 0 24px;
}
.home-entry .button {
  border-radius: 3px;
  min-height: 42px;
  font-size: 13px;
  font-weight: 600;
  padding: 10px 20px;
  box-shadow: none;
}
.home-entry .home-login { width: 190px; min-height: 36px; padding: 8px 18px; justify-content: space-between; }
.home-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  background-color: currentColor;
  mask: var(--icon) center / contain no-repeat;
  -webkit-mask: var(--icon) center / contain no-repeat;
}
.home-icon-arrow { --icon: url('/static/icons/arrow-right.svg'); }
.home-icon-chevron { --icon: url('/static/icons/chevron-down.svg'); }
.contact-details { margin-top: 38px; border-top: 1px solid var(--line); }
.contact-details[open] { margin-top: 22px; }
.contact-details summary {
  display: flex;
  align-items: center;
  gap: 18px;
  color: var(--primary);
  cursor: pointer;
  font-size: 13px;
  line-height: 1.5;
  padding: 24px 0;
  list-style: none;
}
.contact-details summary::-webkit-details-marker { display: none; }
.contact-details[open] summary { padding: 20px 0; }
.contact-details[open] .home-icon-chevron { transform: rotate(180deg); }
.contact-details summary:hover { color: var(--secondary); }
.contact-details summary:focus-visible { outline: 3px solid var(--primary); outline-offset: 4px; }
#contact-form { margin: 0; }
#contact-form .contact-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
#contact-form .contact-kind { width: calc(50% - 12px); }
#contact-form label { font-size: 12px; line-height: 1.5; margin-bottom: 12px; }
#contact-form input, #contact-form select, #contact-form textarea {
  background: transparent;
  border: 1px solid #d8cfc7;
  border-radius: 2px;
  font-size: 14px;
  margin-top: 5px;
  min-height: 36px;
  padding: 7px 10px;
}
#contact-form textarea { min-height: 80px; }
#contact-form input:focus, #contact-form select:focus, #contact-form textarea:focus { border-color: var(--primary); }
#contact-form .help { font-size: 11px; line-height: 1.65; margin: 0 0 12px; }
#contact-form .contact-alternative { font-size: 12px; margin: 6px 0 0; }
#contact-form .contact-submit { min-height: 36px; padding: 8px 18px; }
#contact-form .form-message { max-width: 65ch; }
@media (min-width: 641px) {
  body[data-page="home"]:has(.contact-details[open]) .public-main {
    width: 68%;
    margin-left: max(14%, calc((100% - 990px) / 2));
    margin-right: auto;
    padding-bottom: 20px;
  }
  .home-entry:has(.contact-details[open]) h1 { margin-bottom: 6px; }
  .home-entry:has(.contact-details[open]) .home-intro { margin-bottom: 10px; }
  .home-entry:has(.contact-details[open]) .home-login { width: 180px; min-height: 34px; font-size: 12px; }
  .contact-details[open] { margin-top: 16px; }
  .contact-details[open] summary { padding: 16px 0; font-size: 12px; }
  #contact-form label { font-size: 11px; margin-bottom: 8px; }
  #contact-form input, #contact-form select, #contact-form textarea { min-height: 28px; padding: 4px 10px; font-size: 12px; }
  #contact-form textarea { height: 66px; min-height: 66px; }
  #contact-form .help { font-size: 10px; margin-bottom: 8px; }
  #contact-form .contact-submit { min-height: 30px; padding: 6px 16px; font-size: 12px; }
  #contact-form .contact-alternative { font-size: 11px; margin: 4px 0 0; }
  body[data-page="home"]:has(.contact-details[open]) .public-footer { padding-top: 20px; padding-bottom: 20px; }
}
body.operator-site .public-footer {
  width: 79%;
  max-width: 980px;
  margin: 0 auto;
  padding: 28px 0 46px;
  border-top: 1px solid var(--line);
  gap: 22px;
  font-size: 11px;
  line-height: 1.5;
}
body.operator-site .public-footer a { text-decoration: none; }
body.operator-site .public-footer a:hover { text-decoration: underline; }
body.operator-site .public-footer > span { font-size: 0; height: 9px; border-left: 1px solid var(--line); }
@media (max-width: 640px) {
  body.operator-site .public-header { width: calc(100% - 48px); padding: 24px 0; }
  body[data-page="home"] .public-main,
  body[data-page="home"]:has(.contact-details[open]) .public-main { width: calc(100% - 48px); padding: 48px 0 56px; }
  .home-entry h1, .home-entry:has(.contact-details[open]) h1 { font-size: clamp(34px, 9vw, 44px); letter-spacing: -.04em; }
  .home-entry .home-login { width: 216px; min-height: 44px; }
  .home-intro { font-size: 14px; max-width: 32ch; }
  #contact-form .contact-row { grid-template-columns: 1fr; gap: 0; }
  #contact-form .contact-kind { width: 100%; }
  #contact-form label { font-size: 13px; margin-bottom: 18px; }
  #contact-form input, #contact-form select, #contact-form textarea { font-size: 16px; min-height: 44px; }
  #contact-form .help { font-size: 12px; }
  #contact-form .contact-submit { min-height: 44px; }
  body.operator-site .public-footer { width: calc(100% - 48px); gap: 12px 20px; padding: 24px 0 32px; font-size: 12px; }
  body.operator-site .public-footer > span { display: none; }
}

body.operator-site:not([data-page="home"]) .public-main {
  width: 62%;
  max-width: 760px;
  min-height: 0;
  margin: 0 auto;
  padding: 46px 0 72px;
  flex: 1 0 auto;
}
.operator-site h1 {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: -.045em;
}
.operator-legal .legal-back { display: inline-block; font-size: 13px; margin-bottom: 36px; }
.operator-legal .legal-heading { border-bottom: 1px solid var(--line); padding-bottom: 30px; margin-bottom: 28px; }
.operator-legal .eyebrow { margin: 0 0 14px; font-size: 11px; letter-spacing: .14em; }
.operator-legal h1 { margin: 0; font-size: clamp(36px, 4.7vw, 60px); line-height: 1.1; hyphens: auto; overflow-wrap: anywhere; }
.legal-document { max-width: 68ch; font-size: 15px; line-height: 1.85; overflow-wrap: anywhere; }
.legal-document h2 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 26px; line-height: 1.3; letter-spacing: -.02em; margin: 36px 0 14px; }
.legal-document h3 { font-family: Arial, sans-serif; font-size: 15px; line-height: 1.5; font-weight: 600; margin: 26px 0 12px; }
.legal-document p { margin: 0 0 18px; }
.legal-document .legal-document-title { color: var(--muted); font-size: 13px; }
.legal-document ul { margin: 0 0 20px; padding-left: 22px; }
.legal-document li { padding-left: 4px; margin-bottom: 6px; }
.legal-document li::marker { color: var(--primary); }
.legal-table-wrap { margin: 18px 0 28px; }
.legal-document table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; font-size: 13px; }
.legal-document th, .legal-document td { padding: 12px 10px; white-space: normal; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.legal-document th { color: var(--ink); background: transparent; text-transform: none; letter-spacing: 0; font-weight: 600; }
.legal-document th:first-child { width: 24%; }
.legal-document th:nth-child(2) { width: 46%; }
.legal-bottom-nav { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding-top: 28px; margin-top: 40px; border-top: 1px solid var(--line); font-size: 13px; }
.login-entry { max-width: 500px; margin: 20px 0 0; }
.login-entry h1 { font-size: clamp(38px, 4.5vw, 56px); line-height: 1.08; margin: 14px 0 22px; }
.login-entry form { margin: 30px 0 26px; max-width: 420px; }
.login-entry label { font-size: 13px; }
.login-entry input { background: transparent; border-radius: 3px; min-height: 44px; }
.login-entry .button { border-radius: 3px; min-height: 44px; }
.login-entry .quiet-link { font-size: 13px; }
.demo-banner { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; padding: 14px 42px; border-bottom: 1px solid var(--line); background: var(--paper); color: var(--muted); font-size: 13px; }
.demo-banner strong { color: var(--primary); font-size: 12px; letter-spacing: .06em; }
@media (max-width: 640px) {
  body.operator-site:not([data-page="home"]) .public-main { width: calc(100% - 48px); padding: 30px 0 48px; }
  .operator-site .public-header > .quiet-link { font-size: 12px; }
  .operator-legal .legal-back { margin-bottom: 28px; }
  .operator-legal h1 { font-size: clamp(32px, 8.6vw, 42px); }
  .legal-document { font-size: 14px; line-height: 1.8; }
  .legal-document h2 { font-size: 24px; }
  .legal-document table { font-size: 12px; }
  .legal-document th, .legal-document td { padding: 10px 5px; }
  .login-entry { margin-top: 0; }
  .login-entry h1 { font-size: clamp(34px, 8.9vw, 44px); }
  .login-entry input { font-size: 16px; }
  .demo-banner { padding: 12px 16px; }
}
