[hidden] { display: none !important; }
.site-header { padding: 32px 24px 28px; }
.site-header__logo-img { max-width: 150px; margin-bottom: 20px; }
.site-header__eyebrow { font-size: 18px; line-height: 1.5; margin: 0 0 16px; letter-spacing: .04em; }
.site-header__title { font-size: clamp(22px, 4.5vw, 28px); line-height: 1.6; letter-spacing: .04em; margin: 0; }
.site-header .deco-line { height: 24px; margin: 18px auto; }
.site-header__desc { font-size: 13px; line-height: 1.9; letter-spacing: .02em; }
.site-header__note { display: inline-block; margin-top: 8px; color: #526849; }
.appointment-choice, .appointment-dates { border: 0; padding: 0; margin: 0 0 24px; min-width: 0; }
.appointment-choice legend, .appointment-dates legend { padding: 0; }
.appointment-choice .form-radio-group { flex-direction: column; gap: 10px; }
.appointment-choice .form-radio-item { width: 100%; }
.appointment-choice .form-hint { margin: 4px 0 16px; line-height: 1.8; color: #596259; font-size: 12px; }
.appointment-dates { background: #f7f8f4; border: 1px solid #e1e6da; padding: 20px 16px 8px; }
.appointment-dates legend { padding: 0 8px; }
.optional { color: #6e6e6e; font-weight: 400; font-size: 11px; margin-left: 6px; }
.privacy-consent { margin-top: 28px; }
.step-nav--stack .btn-skip { min-height: 48px; color: #1a1a1a; border: 1px solid #d4d1c9; text-decoration: none; background: #fff; padding: 12px 18px; }
.step-nav--stack .btn-skip:hover { background: #f6f5f1; }
.btn--submit__main { font-size: 15px; }
.form-error { scroll-margin-top: 24px; }
@media (max-width: 480px) {
  .site-header { padding-left: 20px; padding-right: 20px; }
  .site-header__desc { font-size: 12px; }
  .appointment-choice .form-radio-text { font-size: 13px; }
  .step-nav--stack .btn { font-size: 13px; }
  .btn--submit__main { font-size: 13px; }
  .appointment-dates .schedule-row { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
  .appointment-dates .schedule-row .form-input, .appointment-dates .schedule-row .form-select { width: 100%; min-width: 0; }
}

/* Two independent consultation routes: LINE is a link, not a form submission. */
.consult-options { width: min(100% - 40px, 960px); margin: 0 auto 48px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.consult-option { background: #fff; border: 1px solid #dcded8; padding: 28px; display: flex; flex-direction: column; align-items: stretch; }
.consult-option--line { background: #f4f8f3; border-color: #aebfae; }
.consult-option__eyebrow { font-size: 12px; color: #536757; letter-spacing: .08em; margin-bottom: 12px; }
.consult-option h2 { font-size: 21px; line-height: 1.7; letter-spacing: .02em; margin-bottom: 16px; }
.consult-option > p:not([class]) { font-size: 13px; line-height: 1.9; margin-bottom: 24px; }
.consult-option__button { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 16px; min-height: 54px; background: #254552; color: #fff; font-size: 14px; font-weight: 600; margin-top: auto; }
.consult-option__button--line { background: #246544; }
.consult-option__qr { text-decoration: underline; text-underline-offset: 3px; font-size: 12px; text-align: center; margin-top: 14px; color: #32573d; }
.consult-option__note { font-size: 11px; line-height: 1.9; color: #5c645d; margin-top: 18px; }
.survey-form-heading { text-align: center; padding: 32px 20px 12px; scroll-margin-top: 20px; border-top: 1px solid #e0e2da; }
.survey-form-heading > p { font-size: 12px; color: #5c6d61; margin-bottom: 12px; }
.survey-form-heading h2 { font-size: 24px; line-height: 1.65; }
@media (max-width: 700px) { .consult-options { grid-template-columns: 1fr; max-width: 520px; gap: 16px; } .consult-option { padding: 24px; } .consult-option h2 { font-size: 20px; } .survey-form-heading h2 { font-size: 22px; } }
