/* Additions for the PHP site: new form elements and hidden-state fixes.
   The visual design itself lives in app.css and is unchanged. */
[hidden] { display: none !important; }
.home-slot { display: contents; }
.menu-toggle .icon-close { display: none; }
.menu-toggle[aria-expanded="true"] .icon-menu { display: none; }
.menu-toggle[aria-expanded="true"] .icon-close { display: block; }
.inline-form { display: contents; }
.inline-form .icon-button { margin-left: auto; color: var(--muted); }
.sidebar-profile > a, .sidebar-profile .icon-button { margin-left: auto; }
.segmented-tabs a { text-decoration: none; }
.workspace-sidebar nav > a, .sidebar-bottom > a, .task-row > a, .your-plan-card > a, .inquiry-actions a { text-decoration: none; cursor: pointer; }
.guide-prompt { text-decoration: none; }
.avatar-small { display: grid; place-items: center; text-decoration: none; }
.footer-small > a { color: var(--muted); font-size: 9px; }
.demo-banner { font-size: 10px; }

.notice-panel {
  padding: 14px 18px;
  border: 1px solid #cfd9c6;
  border-radius: 8px;
  background: #eef3e6;
  color: #3f5a3d;
  font-size: 12px;
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  gap: 9px;
}
.welcome-panel { margin-bottom: 26px; }
.label-optional { font-weight: 400; color: var(--muted); }
.field-links { display: block; margin-top: 7px; font-size: 10px; color: var(--muted); line-height: 1.6; }
.field-links a { text-decoration: underline; text-underline-offset: 2px; }
.consent-check {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-size: 10.5px;
  line-height: 1.7;
  color: var(--muted);
  margin: 0 0 16px;
}
.consent-check input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 3px;
  accent-color: var(--plum);
}
.consent-check a { text-decoration: underline; text-underline-offset: 2px; color: var(--ink); }
.onboarding-privacy a { text-decoration: underline; text-underline-offset: 2px; }
.auth-form { margin-top: 10px; }
.auth-wrap .onboarding-privacy { margin-top: 18px; }
.contact-form .panel-description { margin-bottom: 18px; }
.danger-form .button { border-color: #d7b2b9; color: #8b3a50; }
.settings-grid > div > .workspace-panel + .workspace-panel { margin-top: 18px; }
.pick-list { display: flex; flex-direction: column; gap: 9px; margin-top: 22px; }
.pick-row {
  display: flex;
  align-items: center;
  gap: 13px;
  width: 100%;
  text-align: left;
  border: 1px solid var(--line);
  background: var(--paper);
  border-radius: 9px;
  padding: 10px 12px;
}
.pick-row:hover { border-color: #cdb8d1; background: #f7f1f6; }
.pick-row img { width: 62px; height: 48px; object-fit: cover; border-radius: 5px; }
.pick-row span { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.pick-row strong { font-size: 13px; font-weight: 500; }
.pick-row small { font-size: 9.5px; color: var(--muted); }
.workspace-footer a { text-decoration: underline; text-underline-offset: 2px; }
.section-disclaimer .text-button { font-size: inherit; }

/* Legal pages */
.legal-page { max-width: 760px; margin: 0 auto; padding: 60px 0 90px; }
.legal-page h1 { font-family: "Instrument Serif"; font-weight: 400; font-size: 54px; line-height: 1.05; letter-spacing: -0.6px; margin: 14px 0 10px; }
.legal-page h1 em { font-style: italic; color: var(--plum); }
.legal-page .updated { font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--muted); font-weight: 700; margin-bottom: 36px; }
.legal-page h2 { font-family: "Manrope"; font-size: 19px; font-weight: 700; letter-spacing: -0.2px; margin: 38px 0 10px; }
.legal-page h3 { font-size: 14px; font-weight: 700; margin: 24px 0 8px; }
.legal-page p, .legal-page li { font-size: 13.5px; line-height: 1.8; color: #5e5260; }
.legal-page p + p { margin-top: 12px; }
.legal-page ul { padding-left: 20px; margin: 8px 0; }
.legal-page li { margin: 6px 0; }
.legal-page a { text-decoration: underline; text-underline-offset: 2px; color: var(--ink); }
.legal-page .highlight { border-left: 3px solid var(--peach); padding: 12px 16px; background: var(--peach-pale); border-radius: 0 8px 8px 0; margin: 16px 0; }
.legal-page .highlight p { color: var(--ink); }
.legal-toc { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 10px; }
.legal-toc a { font-size: 11px; color: var(--muted); }
@media (max-width: 750px) {
  .legal-page { padding: 36px 0 60px; }
  .legal-page h1 { font-size: 40px; }
}

/* Live listings */
.home-search input[type="text"] { outline: none; font-family: inherit; }
.home-search input[type="text"]::placeholder { color: #a79aa8; }
.home-search input[type="text"]:focus { color: var(--plum); }
.location-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.location-form select.small-select { min-width: 130px; }
.location-form input.small-select { min-width: 150px; }
.place-row { display: grid; grid-template-columns: minmax(120px, 0.8fr) 1.2fr; gap: 8px; }
.place-row .form-input { width: 100%; }
.home-search .place-row { display: flex; gap: 10px; align-items: stretch; }
.home-search .place-row select,
.home-search .place-row input[type="text"] { height: 30px; line-height: 30px; padding-top: 0; padding-bottom: 0; margin: 0; box-sizing: border-box; }
.home-search .place-row select { flex: 0 0 auto; width: auto; max-width: 46%; border-right: 1px solid var(--line); padding-right: 10px; border-radius: 0; }
.home-search .place-row input[type="text"] { flex: 1 1 auto; }
.location-form button { white-space: nowrap; }
.listing-source { font-size: 9px; color: var(--muted); display: flex; gap: 6px; align-items: center; margin-top: 10px; }
.starting-point { border: 1px solid #d9cadd; background: #f6eff6; border-radius: 10px; padding: 16px 18px; display: flex; gap: 12px; align-items: flex-start; margin: 18px 0 0; }
.starting-point > svg { flex: 0 0 auto; color: var(--plum); margin-top: 2px; }
.starting-point strong { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.starting-point p { font-size: 11px; line-height: 1.7; color: var(--muted); margin: 0; }
.starting-point.is-ready { background: #eef3e6; border-color: #cfd9c6; }
.starting-point.is-ready > svg { color: #3f5a3d; }
.field-hint { display: block; margin-top: 6px; font-size: 10px; color: var(--muted); line-height: 1.6; }
.field-error { display: block; margin-top: 6px; font-size: 10.5px; color: #8b3a50; }
.choice-row.five > button { padding-inline: 6px; font-size: 11px; }
.detail-terms-note { font-size: 10.5px; color: var(--muted); line-height: 1.7; }

/* Mobile search form: stack the fields so bedrooms stay available on small screens. */
@media (max-width: 620px) {
  .home-search {
    grid-template-columns: 1fr 1fr;
    gap: 10px 0;
    padding: 12px;
  }
  .home-search > label {
    padding: 6px 12px;
    border-right: 0;
  }
  .home-search > label.location-field {
    grid-column: 1 / -1;
    border-bottom: 1px solid var(--line);
    padding-bottom: 10px;
  }
  .home-search > label:nth-of-type(2) {
    border-right: 1px solid var(--line);
  }
  .home-search .bedroom-field {
    display: block;
  }
  .home-search .button {
    grid-column: 1 / -1;
    margin-left: 0;
    justify-content: center;
    padding: 14px;
    font-size: 11px;
  }
  .header-actions .login-link {
    white-space: nowrap;
  }
  .header-actions {
    gap: 8px;
  }
  .header-actions .button.small {
    padding: 11px 10px;
    gap: 8px;
  }
}
@media (max-width: 420px) {
  .site-header .brand {
    font-size: 28px;
  }
  .site-header .brand-icon {
    width: 28px;
    height: 28px;
  }
}
