/* =========================================================
   事前相談受付 / Front-end
   2026-08-10
   ========================================================= */
.consultation-page{background:var(--paper)}
.consultation-shell{width:min(100%,var(--max));margin:auto}
.consultation-hero{padding:170px var(--side) 110px;background:radial-gradient(circle at 78% 20%,color-mix(in srgb,var(--mark) 10%,transparent),transparent 30%),linear-gradient(145deg,var(--paper),#f2f4ef)}
.consultation-eyebrow{display:flex;flex-direction:column;gap:7px}
.consultation-eyebrow span{font-size:11px;letter-spacing:.14em}.consultation-eyebrow small{font-size:8px;letter-spacing:.18em;color:var(--muted-ink)}
.consultation-hero h1{margin-top:52px;max-width:1000px;font-size:clamp(48px,6vw,88px);line-height:1.48;letter-spacing:.05em}
.consultation-hero h1 span{white-space:nowrap}
.consultation-lead{max-width:760px;margin:54px 0 0;font-size:14px;line-height:2.15;color:var(--soft-ink)}
.consultation-note{max-width:760px;margin-top:40px;padding:24px 26px;background:var(--film);border-left:2px solid var(--mark)}
.consultation-note p{margin:0;font-size:12px;line-height:1.9}.consultation-note p+p{margin-top:5px}
.consultation-form-section{padding:90px var(--side) 150px;background:#fff}
.consultation-progress{margin-bottom:70px}.consultation-progress ol{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:0;padding:0;list-style:none}
.consultation-progress li{color:var(--muted-ink)}.consultation-progress li span,.consultation-progress li b{display:block}
.consultation-progress li span{font-size:9px;letter-spacing:.14em}.consultation-progress li b{margin-top:6px;font-size:11px;font-weight:500}
.consultation-progress li[aria-current=step]{color:var(--ink)}
.consultation-progress-line{height:2px;margin-top:16px;background:var(--hairline);overflow:hidden}.consultation-progress-line i{display:block;width:20%;height:100%;background:var(--mark);transition:width .25s}
#consultationForm{max-width:940px}
.consultation-step{border:0;padding:0;margin:0}.consultation-step[hidden]{display:none!important}
.consultation-step legend{width:100%;padding:0 0 24px;border-bottom:1px solid var(--hairline);font-family:var(--serif)}
.consultation-step legend small,.consultation-step legend span{display:block}.consultation-step legend small{font-family:var(--sans);font-size:9px;letter-spacing:.14em;color:var(--mark)}.consultation-step legend span{margin-top:8px;font-size:34px}
.step-intro{max-width:720px;margin:26px 0 44px;font-size:13px;line-height:2;color:var(--soft-ink)}
.field-grid{display:grid;gap:26px 32px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-wide{grid-column:1/-1}
.field,.field-group{display:block;margin-bottom:30px}.field>span,.field-label{display:block;margin-bottom:9px;font-size:13px;font-weight:600}.field em,.field-label em{margin-left:6px;font-size:10px;font-style:normal;color:#6a5b39}
.field input,.field textarea,.field select{width:100%;padding:13px 14px;border:1px solid #bcc8c4;background:white;border-radius:0;color:var(--ink);font:inherit;font-size:15px;line-height:1.6}.field textarea{resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid color-mix(in srgb,var(--mark) 38%,transparent);outline-offset:2px;border-color:var(--mark)}
.choice-row{display:flex;flex-wrap:wrap;gap:12px 24px}.choice-row label{display:inline-flex;align-items:center;gap:8px;min-height:38px;font-size:14px}.choice-row input,.service-choice-grid input,.consent-box input{width:18px;height:18px;accent-color:var(--mark)}
.service-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.service-choice-grid label{display:flex;gap:12px;align-items:flex-start;min-height:82px;padding:15px 17px;border:1px solid #d3dbd8;background:white;cursor:pointer}
.service-choice-grid label:has(input:checked){background:var(--film);border-color:var(--mark)}.service-choice-grid span{display:flex;flex-direction:column;gap:4px}.service-choice-grid b{font-size:14px}.service-choice-grid small{font-size:8px;letter-spacing:.1em;color:var(--muted-ink)}
.service-detail{margin:0 0 40px;padding:28px 28px 2px;border-top:2px solid var(--mark);background:#fbfcfa}.service-detail h2,.consultation-subtitle{margin:0 0 26px;font-size:24px}
.common-conditions{padding-top:14px;border-top:1px solid var(--hairline)}
.fixed-condition{display:flex;justify-content:space-between;gap:24px;margin:8px 0 32px;padding:17px 19px;background:var(--film);font-size:13px}
.consultation-review{margin-bottom:38px;border-top:1px solid var(--hairline)}.review-section{padding:24px 0;border-bottom:1px solid var(--hairline)}.review-section h2{margin:0 0 14px;font-size:19px}.review-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;padding:6px 0;font-size:13px;line-height:1.75}.review-row dt{color:var(--muted-ink)}.review-row dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.consent-box{padding:26px;border:1px solid #d3dbd8;background:#fbfcfa}.consent-box p{margin:0 0 20px;font-size:12px;line-height:1.9}.consent-box label{display:flex;align-items:flex-start;gap:10px;margin-top:13px;font-size:13px;line-height:1.8}
.form-actions{display:flex;gap:12px;margin-top:44px}.consultation-button{min-height:50px;padding:12px 24px;border-radius:0;font:inherit;font-size:14px;cursor:pointer}.consultation-button.primary{border:1px solid var(--ink);background:var(--ink);color:#fff}.consultation-button.secondary{border:1px solid #aeb9b5;background:transparent;color:var(--ink)}.consultation-button:hover,.consultation-button:focus-visible{filter:opacity(.82)}
.form-status{min-height:1.8em;margin:18px 0 0;font-size:13px;line-height:1.8}.form-status.is-error{color:#7b332e}.form-status.is-info{color:#4e5e58}
.consultation-mail-fallback{max-width:940px;margin-top:70px;padding-top:26px;border-top:1px solid var(--hairline);font-size:12px;line-height:1.9}.consultation-mail-fallback p{margin:0 0 4px}.consultation-mail-fallback a{text-decoration:underline;text-underline-offset:4px}
.consultation-honeypot{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0!important}

.consultation-primary-link,.service-consultation-link{display:inline-flex;align-items:center;gap:8px;margin-top:28px;padding:13px 20px;border:1px solid var(--ink);font-size:12px;text-decoration:none}
.service-consultation-link{grid-column:2;justify-self:start}
.consultation-primary-link:hover,.consultation-primary-link:focus-visible,.service-consultation-link:hover,.service-consultation-link:focus-visible{background:var(--ink);color:#fff}

@media(max-width:900px){
  .consultation-hero{padding-top:145px}
  .consultation-hero h1{font-size:clamp(42px,9vw,64px)}
  .service-consultation-link{grid-column:1}
}
@media(max-width:560px){
  .consultation-hero{padding:128px var(--side) 82px}
  .consultation-hero h1{margin-top:38px;font-size:clamp(27px,8.3vw,38px);line-height:1.68;letter-spacing:.025em}
  .consultation-hero h1 span{display:inline-block;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
  .consultation-form-section{padding:64px var(--side) 110px}
  .consultation-progress{margin-bottom:50px}.consultation-progress li b{display:none}.consultation-progress li span{font-size:8px}
  .consultation-step legend span{font-size:28px}
  .field-grid.two,.service-choice-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}
  .service-detail{padding:23px 19px 1px}
  .review-row{grid-template-columns:1fr;gap:2px}.review-row dt{font-size:11px}
  .form-actions{flex-wrap:wrap}.consultation-button{width:100%}
  .consultation-primary-link,.service-consultation-link{width:100%;justify-content:center;text-align:center}
}


/* Turnstile / Stage 3 preview */
.consultation-turnstile{
  width:100%;
  max-width:100%;
  margin:28px 0 8px;
  min-height:1px;
}
.consultation-turnstile .cf-turnstile{
  max-width:100%;
}
