[hidden] { display: none !important; }
.floating-contact { transition: opacity .2s, transform .2s; }
.floating-contact.is-at-consultation { opacity: 0; pointer-events: none; visibility: hidden; transform: translate(-50%, 130%); }
.contact-flow { max-width: 880px; margin-top: 40px; text-align: left; }
.contact-flow .flow-list { gap: 28px; }
.contact-flow .flow-list li { padding-top: 17px; }
.contact-flow .flow-list h3 { font-size: 17px; margin-top: 10px; }
.contact-flow .flow-list p { margin-top: 10px; font-size: 11px; }
.contact-faq { max-width: 880px; margin-top: 58px; text-align: left; }
.contact-faq>h3 { font: 500 22px/1.7 var(--serif); }
.contact-faq .faq { margin-top: 20px; }
.consultation-wrap { max-width: 880px; margin-top: 42px; }
.consultation-form { position: relative; background: #fffdfcf7; border: 1px solid #fff; border-radius: 12px; padding: 40px 44px 30px; box-shadow: 0 24px 70px #76505b0d; text-align: left; scroll-margin-top: 112px; }
.consultation-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 22px; }
.consultation-heading>p { font: 500 20px/1.7 var(--serif); }
.consultation-heading>span { color: var(--rose-deep); font-size: 11px; letter-spacing: .1em; }
.consultation-progress { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; gap: 10px; margin-bottom: 35px; }
.consultation-progress li { display: flex; align-items: center; gap: 8px; font-size: 11px; padding-bottom: 12px; color: #787178; border-bottom: 2px solid #ece3e1; white-space: nowrap; }
.consultation-progress li>span { font-family: var(--roman); font-size: 19px; }
.consultation-progress li[aria-current] { color: var(--rose-dark); border-color: var(--rose-deep); font-weight: 600; }
.consultation-progress li.is-complete { border-color: #c5a29f; }
.consultation-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.consultation-step>legend { float: left; width: 100%; font: 500 23px/1.65 var(--serif); margin-bottom: 9px; }
.consultation-step>legend+* { clear: both; }
.question-hint { font-size: 12px; color: var(--muted); line-height: 1.85; margin-bottom: 22px; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.choice { position: relative; display: flex; align-items: center; gap: 11px; cursor: pointer; padding: 17px 15px; border: 1px solid #e4d9d6; border-radius: 6px; background: #fffdfc; transition: background .18s, border-color .18s, box-shadow .18s; }
.choice:hover { border-color: #aa7c85; }
.choice:has(input:checked) { background: #f8edef; border-color: var(--rose-deep); box-shadow: inset 0 0 0 1px var(--rose-deep); }
.choice:has(input:focus-visible) { outline: 3px solid #cfa8b4; outline-offset: 3px; }
.choice input, .consent-choice input { accent-color: var(--rose-deep); width: 17px; height: 17px; flex: 0 0 17px; margin: 0; }
.choice strong { display: block; font-size: 13px; font-weight: 500; line-height: 1.7; }
.choice small { display: block; font-size: 10px; color: #74686d; line-height: 1.7; margin-top: 3px; }
.compact-choices .choice { padding: 12px 14px; min-height: 49px; font-size: 12px; }
.question-group { clear: both; }
.consultation-form .question-group+.question-group { margin-top: 26px; }
.question-group>legend { font-size: 14px; font-weight: 500; padding-bottom: 10px; }
.question-group .question-hint { margin-top: -3px; margin-bottom: 12px; font-size: 11px; }
.field-required, .field-optional { font: 400 10px var(--sans); margin-left: 8px; vertical-align: middle; letter-spacing: .02em; }
.field-required { color: var(--rose-deep); }
.field-optional { color: #797275; }
.text-field { display: block; margin-top: 22px; }
.text-field>span { display: block; font-size: 14px; font-weight: 500; margin-bottom: 9px; }
.text-field input, .text-field textarea { width: 100%; padding: 12px 14px; border: 1px solid #d9cecc; border-radius: 5px; background: #fff; color: var(--ink); font: 400 16px/1.7 var(--sans); }
.text-field textarea { resize: vertical; min-height: 130px; }
.text-field input::placeholder, .text-field textarea::placeholder { color: #8a8083; font-size: 12px; }
.text-field small { display: block; font-size: 11px; color: var(--muted); margin-top: 7px; }
.text-field+.question-group { margin-top: 26px; }
.consultation-error { border-left: 3px solid #a84360; background: #fff1f4; color: #8c2946; padding: 12px 15px; font-size: 13px; margin-bottom: 22px; }
.consultation-form [aria-invalid="true"] { outline: 2px solid #a84360; outline-offset: 3px; }
.consultation-navigation { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 30px; }
.consultation-primary { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; border: 1px solid var(--rose-deep); background: var(--rose-deep); color: #fff; border-radius: 4px; min-height: 52px; padding: 13px 24px; font: 500 13px/1.7 var(--sans); cursor: pointer; transition: background .2s; text-align: center; }
.consultation-primary:hover { background: var(--rose-dark); }
#consultation-next { margin-left: auto; }
.consultation-back { padding: 10px 0; border: 0; background: transparent; color: #66595f; font-size: 13px; cursor: pointer; min-height: 44px; }
.consultation-back:hover { color: var(--rose-dark); }
.consultation-noscript a { text-decoration: underline; text-underline-offset: 3px; color: var(--rose-deep); }
.review-label { display: block; font-size: 11px; font-weight: 500; margin-bottom: 10px; }
.inquiry-message { box-sizing: border-box; width: 100%; padding: 20px; border: 1px solid #e5d8d5; border-radius: 5px; background: #f8f3f2; color: #493f43; font: 400 13px/1.9 var(--sans); resize: vertical; min-height: 270px; }
.privacy-note { font-size: 11px; line-height: 1.9; color: #776b70; margin-top: 18px; }
.consent-choice { display: flex; align-items: start; gap: 10px; font-size: 12px; margin-top: 15px; cursor: pointer; }
.consent-choice input { margin-top: 4px; }
.line-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 24px; }
.line-actions .consultation-primary { flex: 1 1 250px; }
.line-actions [aria-disabled="true"] { opacity: .55; }
.copy-inquiry { border: 1px solid #cbb5b8; padding: 12px 17px; min-height: 50px; border-radius: 4px; background: transparent; color: var(--rose-dark); font-size: 12px; cursor: pointer; }
.copy-inquiry:hover { background: #f8edef; }
.copy-inquiry:disabled { opacity: .55; cursor: not-allowed; }
.line-send-note, .copy-status { font-size: 11px; line-height: 1.9; margin-top: 13px; color: #76696f; }
.copy-status { color: var(--rose-dark); font-weight: 500; }
.copy-status:empty { display: none; }
.desktop-handoff { margin-top: 20px; padding-top: 15px; border-top: 1px solid #e8dddb; }
.desktop-handoff summary { font-size: 12px; color: var(--rose-dark); cursor: pointer; padding-block: 8px; }
.qr-handoff { padding-top: 12px; font-size: 12px; color: #76696f; }
#inquiry-qr img { width: min(100%, 360px); height: auto; margin: 18px auto 0; image-rendering: pixelated; }
.consultation-noscript { background: white; padding: 25px; font-size: 14px; }
@media (max-width: 740px) {
  .consultation-wrap { width: calc(100% - 40px); }
  .consultation-form { padding: 30px 24px 25px; scroll-margin-top: 90px; }
  .consultation-progress { gap: 7px; }
  .consultation-progress li { gap: 5px; font-size: 10px; }
  .consultation-step>legend { font-size: 21px; }
}
@media (max-width: 520px) {
  .contact h2 { font-size: clamp(26px, 7vw, 35px); }
  .contact-flow { margin-top: 30px; }
  .contact-flow .flow-list { gap: 18px; }
  .contact-flow .flow-list h3 { margin-top: 0; }
  .contact-flow .flow-list p { margin-top: 5px; }
  .contact-faq { margin-top: 40px; }
  .consultation-wrap { margin-top: 30px; }
  .consultation-form { padding: 23px 18px; scroll-margin-top: 82px; border-radius: 8px; }
  .consultation-heading>p { font-size: 17px; }
  .consultation-heading>span { font-size: 10px; }
  .consultation-progress { margin-bottom: 25px; gap: 7px; }
  .consultation-progress li { display: block; font-size: 9px; letter-spacing: -.04em; text-align: center; }
  .consultation-progress li>span { display: block; font-size: 19px; }
  .consultation-step>legend { font-size: 20px; }
  .question-hint { font-size: 12px; }
  .service-choices { grid-template-columns: 1fr; gap: 9px; }
  .choice { padding: 13px 12px; }
  .choice strong { font-size: 13px; }
  .choice small { font-size: 10px; }
  .compact-choices { grid-template-columns: 1fr; gap: 8px; }
  .compact-choices .choice { min-height: 46px; font-size: 12px; padding: 10px 12px; }
  .consultation-primary { padding-inline: 18px; font-size: 12px; gap: 12px; }
  .consultation-navigation { gap: 12px; }
  .inquiry-message { padding: 13px; font-size: 12px; }
  .line-actions { gap: 12px; }
  .line-actions .consultation-primary { flex-basis: 100%; }
  .copy-inquiry { width: 100%; }
  .consent-choice { font-size: 11px; }
}
