/* お問い合わせ(/contact/)と、退去・更新・管理・総合の各フォーム */
.page-contact .hero-inline-link {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
  font-weight: 700;
}
.page-contact .contact-container {
  max-width: 880px;
}
.page-contact .contact-form {
  gap: 26px;
}
.page-contact .form-field {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.page-contact legend.form-label {
  padding: 0;
  margin-bottom: 8px;
}
.page-contact .form-group-title {
  margin: 18px 0 0;
  padding-top: 4px;
}
.page-contact .form-choices label {
  font-weight: 400;
}
.page-contact .form-choices input,
.page-contact .form-consent input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--color-primary);
}
.page-contact .form-purpose {
  background: var(--color-soft);
}
.page-contact .form-purpose a {
  font-weight: 700;
}
.page-contact .form-consent {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.page-contact .form-actions {
  margin-top: 0;
}
.page-contact .form-error {
  font-size: 13px;
  color: var(--color-text);
}
@media (max-width: 760px) {
  .page-contact .contact-form {
    gap: 22px;
  }
  .page-contact .form-consent {
    justify-content: flex-start;
    align-items: flex-start;
  }
  .page-contact .form-consent input {
    margin-top: 4px;
    flex-shrink: 0;
  }
}
.page-contact .keep {
  white-space: nowrap;
}

/* 送信の仕組み(/site.js)用。入力の誤りは .field.bad のときだけ出す / 見えない欄 / 人間確認 / 送信結果 */
.page-contact .form-error {
  display: none;
  font-weight: 700;
  color: #b3261e;
}
.page-contact .field.bad .form-error {
  display: block;
}
.page-contact .field.bad input,
.page-contact .field.bad select,
.page-contact .field.bad textarea {
  border-color: #b3261e;
  background: #fff8f7;
}
.page-contact .form-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.page-contact .form-turnstile {
  display: grid;
  justify-items: center;
  gap: 6px;
}
.page-contact .form-turnstile [data-turnstile] {
  width: 100%;
  max-width: 400px;
}
.page-contact .form-turnstile [data-turnstile-status] {
  font-size: 13px;
  color: var(--color-text-sub);
  text-align: center;
}
.page-contact .form-turnstile [data-turnstile-status]:empty {
  display: none;
}
.page-contact .form-actions .btn[disabled] {
  opacity: 0.6;
  pointer-events: none;
}
.page-contact .status {
  display: none;
  padding: 16px 20px;
  font-size: 14px;
  line-height: 1.85;
}
.page-contact .status.show {
  display: block;
}
.page-contact .status.ng {
  background: #fdecea;
  color: #7a1c14;
  border-left: 4px solid #b3261e;
}
.page-contact .status.wait {
  background: var(--color-soft);
}

/* 退去・更新の通知フォーム(/contact/taikyo/・/contact/koshin/) */
.page-contact .form-intro {
  margin-bottom: 32px;
  background: var(--color-card);
  font-size: 14.5px;
  line-height: 1.9;
}
.page-contact .form-warning {
  color: #b3261e;
  font-weight: 700;
}
.page-contact .form-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
}
/* 退去立会いの日付と時間: 狭い時は縦に並べる(Android の日付の欄が広がって時間の欄が「14:」まで細るため。2026-11-10 再総点検 g5-forms-1) */
@media (max-width: 600px) {
  .page-contact fieldset[data-inspection-rank] .form-pair {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* 欄を押した時・誤りの欄へ送った時に、上の固定の帯(ヘッダーと題の帯)の下に出す(2026-11-10 再総点検 g5-forms-9・13) */
.page-contact .form :is(input, select, textarea) {
  scroll-margin-top: calc(var(--header-height) + var(--page-pin-height) + 16px);
}
.page-contact .form-address {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 12px;
}
.page-contact .form-address-wide {
  grid-column: 1 / -1;
}
.page-contact .form-sub-field {
  display: grid;
  gap: 4px;
}
.page-contact .form-sub-label {
  font-size: 13px;
  color: var(--color-text-sub);
}
.page-contact .form-note-list p + p {
  margin-top: 2px;
}
.page-contact .form-group-note {
  margin-top: -14px;
}
.page-contact .form-group {
  display: grid;
  gap: 26px;
}
.page-contact .form-group[hidden] {
  display: none;
}
.page-contact .form-person {
  display: grid;
  gap: 22px;
  padding: 24px;
  background: var(--color-soft);
}
.page-contact .form-terms {
  padding: 16px 20px;
  background: var(--color-soft);
  font-size: 13.5px;
  line-height: 1.85;
  color: var(--color-text-sub);
  white-space: pre-wrap;
}
.page-contact .form-terms.is-scroll {
  max-height: 240px;
  overflow-y: auto;
}
.page-contact .form-agree {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.page-contact .form-agree input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--color-primary);
}
.page-contact .resident-form .form-label {
  flex-wrap: wrap;
}
/* 札で開いたフォームの住所: タブレット幅では左に項目名の列があって狭いので、都道府県などを1列に(2026-11-10 再総点検 g5-forms-12) */
@media (min-width: 761px) and (max-width: 1100px) {
  .page-contact .contact-panel .form-address {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 760px) {
  .page-contact .form-person {
    padding: 18px 16px;
  }
  .page-contact .form-address {
    grid-template-columns: 1fr;
  }
}

/* ===== お問い合わせ(/contact/)の札とフォーム(2026-11-08 たいちの見本どおり) =====
   札: 白いカードを横一列。左上に線の印、太字の題、灰色の説明、右下に「>」。選んだ札は黒地に白文字・黄緑の枠・右上に黄緑の丸のチェック
   フォーム: 白い大きな箱。頭に黄緑の縦線と題。まとまりの見出しは灰色の帯と黄緑の縦線。入力欄は表の形(左に項目名、右に入力欄) */
.page-contact .contact-hub {
  max-width: 1120px;
}
.page-contact .contact-choice-title {
  margin: 0 0 22px;
  border-left: 4px solid var(--brand-green);
  font-size: 22px;
}
.page-contact .contact-choices {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
/* 札の下の一言(2026-11-10): 管理をお任せいただいているオーナー様の入口 */
.page-contact .contact-choices-note {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--color-text-sub);
}
.page-contact .contact-choices > li {
  display: grid;
}
.page-contact .contact-choice {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-height: 160px;
  padding: 22px 20px 40px;
  border: 1px solid var(--color-line);
  border-radius: 10px;
  background: #fff;
  color: var(--color-text);
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(20, 21, 22, 0.05);
  transition:
    border-color 0.2s,
    box-shadow 0.2s,
    transform 0.2s;
}
.page-contact .contact-choice:is(:hover, :focus-visible) {
  border-color: var(--brand-green);
  box-shadow: var(--nx-lift-shadow);
  transform: translateY(var(--nx-lift-y));
}
.page-contact .contact-choice:focus-visible {
  outline: 3px solid var(--brand-green);
  outline-offset: 3px;
}
.page-contact .contact-choice-icon {
  width: 34px;
  height: 34px;
  margin-bottom: 6px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.page-contact .contact-choice h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
}
.page-contact .contact-choice p {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--color-text-sub);
}
.page-contact .contact-choice-note {
  font-size: 12px;
  color: var(--color-text-sub);
}
/* 右下の「>」 */
.page-contact .contact-choice-arrow {
  position: absolute;
  right: 18px;
  bottom: 18px;
  width: 8px;
  height: 8px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
}
/* 選んだ札: 黒地に白文字・黄緑の枠・右上に黄緑の丸のチェック */
.page-contact .contact-choice.is-selected {
  background: #1f2021;
  border: 2px solid var(--brand-green);
  color: #fff;
}
.page-contact .contact-choice.is-selected p {
  color: rgba(255, 255, 255, 0.82);
}
.page-contact .contact-choice-check {
  display: none;
}
.page-contact .contact-choice.is-selected .contact-choice-check {
  position: absolute;
  top: 12px;
  right: 12px;
  display: block;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--brand-green);
}
.page-contact .contact-choice.is-selected .contact-choice-check::after {
  content: "";
  position: absolute;
  top: 5px;
  left: 8px;
  width: 6px;
  height: 11px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}
@media (prefers-reduced-motion: reduce) {
  .page-contact .contact-choice:is(:hover, :focus-visible) {
    transform: none;
  }
}

/* 選ぶまではフォームを出さない。JS が無い時も、住所の # で選んだフォームは出る */
.page-contact .contact-panel {
  display: none;
  margin-top: 36px;
  padding: 44px 48px 48px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(20, 21, 22, 0.07);
  scroll-margin-top: calc(var(--header-height) + 16px);
}
/* JS で切り替える間(.is-js)は :target を使わない。住所を書き換えても :target は変わらないため */
.page-contact [data-contact-hub]:not(.is-js) .contact-panel:target,
.page-contact .contact-panel.is-open {
  display: block;
}
.page-contact .contact-panel:focus {
  outline: none;
}
.page-contact .contact-panel-head {
  margin-bottom: 28px;
  padding-left: 20px;
  border-left: 4px solid var(--brand-green);
}
.page-contact .contact-panel-title {
  margin: 0;
  font-size: 26px;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
.page-contact .contact-panel-lead {
  margin: 6px 0 0;
  font-size: 14px;
  color: var(--color-text-sub);
}

/* 箱の中のフォームは、外の枠と上の線を外して箱になじませる */
.page-contact .contact-panel .form {
  gap: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
}
/* ご注意ください: 灰色の箱。左に i の印と見出し、右に箇条書き */
.page-contact .contact-panel .form-intro {
  position: relative;
  margin: 0 0 32px;
  padding: 24px 28px 24px 220px;
  border: 0;
  border-radius: 8px;
  background: #f1f2f4;
  font-size: 14px;
  line-height: 1.85;
}
.page-contact .contact-panel .form-intro::before {
  content: "i";
  position: absolute;
  top: 25px;
  left: 28px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1.5px solid var(--brand-green);
  border-radius: 50%;
  color: var(--brand-green);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}
.page-contact .contact-panel .form-intro::after {
  content: "ご注意ください";
  position: absolute;
  top: 21px;
  left: 58px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.page-contact .contact-panel .form-intro p {
  position: relative;
  padding-left: 1em;
}
.page-contact .contact-panel .form-intro p::before {
  content: "・";
  position: absolute;
  left: 0;
}
/* 退去の注意の1行目「ご注意ください」は、箱の左の見出しと同じなので、お問い合わせのページでは出さない(単独のページでは出す) */
.page-contact .contact-panel .form-intro p:first-child.form-warning {
  display: none;
}
.page-contact .contact-panel .form-intro p:first-child.form-warning,
.page-contact #koshin .form-intro p {
  padding-left: 0;
}
.page-contact .contact-panel .form-intro p:first-child.form-warning::before,
.page-contact #koshin .form-intro p::before {
  content: none;
}
/* まとまりの見出し: 灰色の帯と黄緑の縦線 */
.page-contact .contact-panel .form-group-title {
  margin: 32px 0 0;
  padding: 12px 18px;
  border-left: 4px solid var(--brand-green);
  border-radius: 4px;
  background: #eceef1;
  font-size: 18px;
}
.page-contact .contact-panel .form > .form-group-title:first-child {
  margin-top: 0;
}
.page-contact .contact-panel .form-group-note {
  margin: 10px 0 0;
}
/* 入力欄は表の形: 左に項目名・必須の札・補足、右に入力欄。行ごとに細い線 */
.page-contact .contact-panel .form-field {
  display: flow-root;
  min-width: 0;
  margin: 0;
  padding: 18px 24px;
  border: 1px solid var(--color-line);
  border-top: 0;
  background: #fff;
}
.page-contact .contact-panel :is(.form-group-title, .form-group-note) + .form-field,
.page-contact .contact-panel :is(.form-group, .form-person) > .form-field:first-child {
  margin-top: 14px;
  border-top: 1px solid var(--color-line);
}
.page-contact .contact-panel div.form-field {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  grid-auto-flow: row dense;
  align-items: start;
  gap: 10px 32px;
}
.page-contact .contact-panel div.form-field > :is(.form-label, .form-note) {
  grid-column: 1;
  margin: 0;
}
.page-contact .contact-panel div.form-field > :not(.form-label, .form-note) {
  grid-column: 2;
  margin: 0;
}
.page-contact .contact-panel .form-field > .form-label {
  padding-top: 10px;
}
.page-contact .contact-panel .form-field > .form-note {
  font-size: 12.5px;
}
.page-contact .contact-panel fieldset.form-field > :is(.form-label, .form-note) {
  float: left;
  clear: left;
  width: 240px;
  margin: 0;
}
.page-contact .contact-panel fieldset.form-field > .form-note {
  margin-top: 6px;
}
.page-contact .contact-panel fieldset.form-field > :not(.form-label, .form-note) {
  margin-left: 272px;
}
/* fieldset の中で直に置いた入力欄(総合の「その他」の内容)は、左の項目名の分だけ幅を縮める */
.page-contact .contact-panel fieldset.form-field > :is(input, select, textarea) {
  width: calc(100% - 272px);
}
.page-contact
  .contact-panel
  fieldset.form-field
  > :not(.form-label, .form-note)
  ~ :not(.form-label, .form-note) {
  margin-top: 10px;
}
.page-contact .contact-panel .form-required {
  padding: 1px 10px;
  border-radius: 2px;
}
/* 表の外の部品(入居者の箱・同意・規約・送信)は、行の間を空ける */
.page-contact .contact-panel .form > :not(.form-field, .form-group-title, .form-group-note) {
  margin-top: 24px;
}
.page-contact .contact-panel .form > .form-actions {
  margin-top: 32px;
}

@media (max-width: 1100px) {
  .page-contact .contact-choices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .page-contact .contact-choice-title {
    font-size: 19px;
  }
  .page-contact .contact-choices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .page-contact .contact-choice {
    min-height: 0;
    padding: 18px 14px 34px;
  }
  .page-contact .contact-choice-icon {
    width: 28px;
    height: 28px;
  }
  .page-contact .contact-choice h3 {
    font-size: 14.5px;
  }
  .page-contact .contact-choice p {
    font-size: 12px;
  }
  .page-contact .contact-panel {
    margin-top: 28px;
    padding: 26px 16px 32px;
    border-radius: 12px;
  }
  .page-contact .contact-panel-head {
    padding-left: 14px;
  }
  .page-contact .contact-panel-title {
    font-size: 21px;
  }
  .page-contact .contact-panel .form-intro {
    padding: 58px 18px 20px;
  }
  .page-contact .contact-panel .form-intro::before {
    top: 21px;
    left: 18px;
  }
  .page-contact .contact-panel .form-intro::after {
    top: 17px;
    left: 48px;
  }
  .page-contact .contact-panel .form-group-title {
    font-size: 16px;
    padding: 10px 14px;
  }
  /* スマホでは表の形をやめ、項目名の下に入力欄を縦に積む */
  .page-contact .contact-panel .form-field {
    padding: 16px;
  }
  .page-contact .contact-panel div.form-field {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-flow: row;
    gap: 8px;
  }
  /* 左右の列の指定(:not で強くなっている)と同じ強さで、全部1列目に戻す */
  .page-contact .contact-panel div.form-field > :is(.form-label, .form-note),
  .page-contact .contact-panel div.form-field > :not(.form-label, .form-note) {
    grid-column: 1;
  }
  /* fieldset の項目名(legend)は浮かせたまま幅いっぱいにする(浮かせないと枠の線の上に乗るため) */
  .page-contact .contact-panel fieldset.form-field > :is(.form-label, .form-note) {
    float: left;
    width: 100%;
  }
  .page-contact .contact-panel fieldset.form-field > :is(input, select, textarea) {
    width: 100%;
  }
  .page-contact .contact-panel fieldset.form-field > :not(.form-label, .form-note) {
    clear: left;
  }
  .page-contact .contact-panel .form-field > .form-label {
    padding: 0 0 8px;
  }
  .page-contact .contact-panel fieldset.form-field > .form-note {
    margin: 0 0 8px;
  }
  .page-contact .contact-panel fieldset.form-field > :not(.form-label, .form-note) {
    margin-left: 0;
  }
}
/* 退去立会い(第一希望)の注意書き: パソコンでは右の広い所に、入力欄の上へ横に続けて並べる(2026-11-13 yuki「文字横に2・3行にしたら？」)。
   ※の後ろでは折らない(MoveOutForm の ※ の後に語をつなぐ見えない字 U+2060)。スマホは今のまま縦に並べる */
@media (min-width: 761px) {
  .page-contact .contact-panel fieldset.form-field[data-inspection-rank] > .form-note-list {
    float: none;
    clear: none;
    width: auto;
    margin: 0 0 10px 272px;
    line-height: 1.8;
  }
  .page-contact .contact-panel fieldset[data-inspection-rank] > .form-note-list p:not([hidden]) {
    display: inline;
    margin: 0;
  }
  .page-contact
    .contact-panel
    fieldset[data-inspection-rank]
    > .form-note-list
    p:not([hidden])
    + p:not([hidden])::before {
    content: "\3000";
  }
  .page-contact .contact-panel fieldset[data-inspection-rank] > .form-note-list br {
    display: none;
  }
}
@media (max-width: 380px) {
  .page-contact .contact-choices {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ===== 明るいお問い合わせ(2026-11-08 たいち「やっぱ暗いから」。見本の画像どおり、白っぽい帯と淡い色の札・箱) ===== */
/* 帯: 写真を明るくし、左から白くぼかして、黒い文字にする。題の左に黄緑の縦線 */
.page-contact .page-hero.is-light {
  color: var(--color-text);
  background: #f4f5f3;
}
.page-contact .page-hero.is-light .page-hero-photo img {
  filter: brightness(1.32) saturate(0.85) contrast(0.9);
}
.page-contact .page-hero.is-light .page-hero-photo::after {
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.97) 0%,
    rgba(255, 255, 255, 0.9) 36%,
    rgba(255, 255, 255, 0.45) 60%,
    rgba(255, 255, 255, 0.05) 85%
  );
}
.page-contact .page-hero.is-light .page-hero-lead {
  color: #333;
  font-weight: 500;
}

/* 帯の下の一言: 淡い灰色の角丸の箱。左にネハヤスの葉の印と縦の区切り線 */
.page-contact .contact-welcome {
  display: flex;
  align-items: center;
  gap: 32px;
  margin: 0 0 52px;
  padding: 26px 40px;
  border-radius: 14px;
  background: #f3f5f4;
}
.page-contact .contact-welcome-mark {
  flex: none;
  width: auto;
  height: 38px;
  padding-right: 32px;
  border-right: 1px solid var(--color-line-strong);
  box-sizing: content-box;
}
.page-contact .contact-welcome-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--font-display-weight);
  font-size: 23px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.page-contact .contact-welcome-title em {
  font-style: normal;
  font-size: 1.3em;
  color: var(--brand-green);
}
.page-contact .contact-welcome-lead {
  margin: 4px 0 0;
  font-size: 14px;
  color: var(--color-text-sub);
}

/* 札: 選んだ札は淡い黄緑の地・黄緑の枠・右上に黄緑の丸のチェック(黒地はやめる) */
.page-contact .contact-choice.is-selected {
  background: #f3f9e8;
  border: 2px solid var(--brand-green);
  color: var(--color-text);
}
.page-contact .contact-choice.is-selected p {
  color: var(--color-text-sub);
}

/* フォームの箱: 淡い灰色の地に、白い入力の表 */
.page-contact .contact-panel {
  background: #f6f7f8;
  box-shadow: none;
  border: 1px solid #eceef0;
}
.page-contact .contact-panel .form-intro {
  background: #fff;
}
.page-contact .contact-panel .form-group-title {
  background: #fff;
}

@media (max-width: 760px) {
  /* スマホは写真の上に文字が重なるので、全体を白くして読みやすくする */
  .page-contact .page-hero.is-light .page-hero-photo::after {
    background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.93) 0%,
      rgba(255, 255, 255, 0.86) 52%,
      rgba(255, 255, 255, 0.25) 100%
    );
  }
  .page-contact .contact-welcome {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 36px;
    padding: 20px;
  }
  .page-contact .contact-welcome-mark {
    height: 30px;
    padding: 0 0 14px;
    border-right: 0;
    border-bottom: 1px solid var(--color-line-strong);
  }
  .page-contact .contact-welcome-title {
    font-size: 18px;
  }
  .page-contact .contact-welcome-lead {
    font-size: 13px;
  }
}

/* 札の題の2行(新規オーナー様/お問い合わせ、現入居者様/お問い合わせ)。どの幅でも「様」の後で折り、3行にしない(2026-11-12 たいち) */
.page-contact .contact-choice-line {
  display: block;
  white-space: nowrap;
}
