.consultation { margin-top: 48px; display: grid; grid-template-columns: minmax(0, 0.32fr) minmax(0, 1fr); border: 1px solid rgba(26,26,26,.14); background: #fff; scroll-margin-top: 110px; }
.consult-intro { padding: 40px 32px; border-right: 1px solid rgba(26,26,26,.1); background: #f1eee7; }
.consult-eyebrow { color: #8c6d3c; font: 13px/1.5 "Cormorant Garamond", serif; letter-spacing: .18em; margin-bottom: 18px; }
.consult-intro h2 { font-size: clamp(24px, 2.4vw, 32px); font-weight: 500; letter-spacing: .08em; line-height: 1.6; margin-bottom: 16px; }
.consult-intro > p:not(.consult-eyebrow) { font-size: 15px; color: #625b52; line-height: 2; margin-top: 16px; }
.consult-form { min-width: 0; padding: 28px 32px 30px; font-family: system-ui, -apple-system, "Noto Sans JP", "Microsoft YaHei", sans-serif; }
.consult-required-note { font-size: 12px; color: #776e62; text-align: right; }
.consult-section { padding: 18px 0 20px; border-bottom: 1px solid #e6e1d8; }
.consult-section h3 { font-family: "Shippori Mincho", "Yu Mincho", serif; font-size: 19px; font-weight: 500; letter-spacing: .08em; margin-bottom: 16px; }
.consult-section h3 > span { margin-right: 12px; font: 19px "Cormorant Garamond", serif; color: #9d804c; }
.consult-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.consult-field { min-width: 0; }
.consult-field > label, .consult-fieldset legend { display: block; font-size: 14px; font-weight: 500; margin-bottom: 10px; }
.consult-required { color: var(--seal); margin-left: 4px; }
.consult-field input:not([type=file]), .consult-field textarea { width: 100%; min-width: 0; border: 1px solid #d8d2c8; background: #fcfbf8; border-radius: 0; color: var(--ink); padding: 12px 14px; font: inherit; font-size: 16px; line-height: 1.6; }
.consult-field textarea { resize: vertical; min-height: 96px; }
.consult-field input::placeholder, .consult-field textarea::placeholder { color: #958c80; font-size: 14px; }
.consult-field input:focus-visible, .consult-field textarea:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; background: #fff; }
.consult-fieldset { padding: 0; border: 0; margin: 0 0 16px; min-width: 0; }
.consult-fieldset:last-child { margin-bottom: 0; }
.consult-options { display: flex; flex-wrap: wrap; gap: 10px; }
.consult-option { display: inline-flex; align-items: center; gap: 9px; padding: 8px 12px; border: 1px solid #ded8cd; font-size: 14px; line-height: 1.6; cursor: pointer; background: #fff; }
.consult-option:has(input:checked) { background: #f8f1e9; border-color: #a98550; }
.consult-option input { width: 16px; height: 16px; flex-shrink: 0; accent-color: var(--seal); }
.consult-option:focus-within { outline: 2px solid var(--gold); outline-offset: 2px; }
.consult-file { margin-top: 0; padding: 12px; border: 1px dashed #cfc6b6; background: #fcfbf8; }
.consult-file input { width: 100%; font: inherit; font-size: 14px; }
.consult-file input::file-selector-button { border: 1px solid #cfc6b6; padding: 8px 12px; background: #fff; color: var(--ink); margin-right: 12px; font: inherit; cursor: pointer; }
.consult-file:has(input:disabled) input { display: none; }
.consult-file p { font-size: 12px; color: #776e62; margin-top: 8px; }
.consult-privacy { font-size: 12px; color: #776e62; line-height: 1.8; margin: 0 0 8px; padding-bottom: 12px; border-bottom: 1px solid #e6e1d8; }
.consult-submit { margin-top: 20px; display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; min-height: 50px; padding: 14px 28px; border: 1px solid var(--seal); border-radius: 0; background: var(--seal); color: #fff; font: inherit; font-size: 14px; letter-spacing: .12em; cursor: pointer; }
.consult-submit:hover { background: #7d1f20; }
.consult-submit:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.consult-submit:disabled { cursor: wait; opacity: .6; }
.consult-status { font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.consult-status:not(:empty) { margin-top: 20px; padding: 14px 16px; border: 1px solid #d9d1c2; background: #faf7f1; }
.consult-status[data-state=error] { color: #8b2525; border-color: #d9aaaa; }
.consult-status[data-state=success] { color: #365340; border-color: #a8baab; }
.consult-honey { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 1100px) { .consultation { grid-template-columns: minmax(0,.32fr) minmax(0,1fr); } .consult-intro { padding: 32px 24px; } .consult-form { padding: 28px; } }
@media (max-width: 900px) { .consultation { grid-template-columns: 1fr; margin-top: 32px; scroll-margin-top: 85px; } .consult-intro { border-right: 0; border-bottom: 1px solid #ded8cd; padding: 28px 22px; } .consult-intro h2 { margin-bottom: 14px; } .consult-intro > p:not(.consult-eyebrow) { margin-top: 10px; } .consult-form { padding: 24px 20px 28px; } }
@media (max-width: 560px) { .consult-fields { grid-template-columns: 1fr; gap: 20px; } .consult-options { display: grid; grid-template-columns: 1fr; } .consult-option { padding: 11px 12px; } .consult-submit { width: 100%; } .consult-file { padding: 16px; } }

/* Keep supplementary information compact without removing any fields. */
.consult-supplement { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 20px; align-items: start; }
.consult-supplement h3 { grid-column: 1 / -1; }
.consult-file > label { margin-bottom: 8px; }
.consult-supplement .consult-file { align-self: stretch; }
.consult-file p { line-height: 1.7; }
@media (max-width: 560px) {
  .consult-supplement { grid-template-columns: 1fr; gap: 14px; }
  .consult-supplement h3 { margin-bottom: 0; }
  .consult-supplement .consult-file { padding: 12px; }
  .consult-option { padding: 9px 12px; }
}
