:root { --ink:#173f3d; --teal:#197a76; --teal-dark:#0c5350; --aqua:#e4f3ef; --cream:#fffaf0; --orange:#cf5b24; --line:rgba(23,63,61,.16); --muted:#5a716f; font-family:"Yu Gothic UI","Hiragino Sans","Noto Sans JP",sans-serif; color:var(--ink); }
* { box-sizing:border-box; }
body { margin:0; background:#f8fbfa; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.contact-header { height:82px; padding:0 max(5vw,24px); display:flex; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:11px; font-size:22px; font-weight:900; }
.brand img { width:48px; height:48px; object-fit:contain; }
.back-link { padding:11px 18px; border:1px solid var(--teal); border-radius:999px; color:var(--teal-dark); font-weight:800; }
.contact-hero { padding:68px 24px 112px; text-align:center; color:#fff; background:linear-gradient(135deg,#0d5753,#276f68); }
.kicker { margin:0 0 12px; color:#f3c36e; font-size:13px; font-weight:900; letter-spacing:.14em; }
.contact-hero h1 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(36px,5vw,56px); }
.contact-hero p:last-child { margin:20px auto 0; max-width:720px; font-size:18px; line-height:1.8; }
.contact-layout { width:min(860px,calc(100% - 40px)); margin:-62px auto 80px; }
.contact-guide,.consultation-form { background:#fff; border:1px solid var(--line); border-radius:26px; box-shadow:0 22px 52px rgba(12,83,80,.10); }
.contact-guide { position:sticky; top:20px; padding:30px 26px; }
.guide-label { margin:0; color:var(--orange); font-size:13px; font-weight:900; letter-spacing:.08em; }
.contact-guide h2 { margin:8px 0 24px; font-size:23px; }
.contact-guide ol { list-style:none; margin:0; padding:0; }
.contact-guide li { display:flex; gap:11px; align-items:center; padding:14px 0; border-top:1px solid var(--line); font-weight:800; line-height:1.45; }
.contact-guide li span { width:30px; height:30px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; color:#fff; background:var(--teal); }
.safety-note { margin-top:24px; padding:17px; border-radius:16px; background:#fff3e8; color:#61321d; }
.safety-note strong { color:#bd4b19; }
.safety-note p { margin:7px 0 0; font-size:13px; line-height:1.65; }
.consultation-form { padding:10px 42px 38px; }
.form-section { padding:36px 0; border-bottom:1px solid var(--line); }
.section-title { display:flex; align-items:center; gap:14px; margin-bottom:23px; }
.section-title>span { width:40px; height:40px; display:grid; place-items:center; flex:0 0 auto; color:#fff; background:var(--teal); border-radius:50%; font-weight:900; }
.section-title h2,.section-title .form-heading { margin:0; font-size:24px; font-weight:800; }
.section-title p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.section-title b,.field-grid b { display:inline-block; padding:2px 7px; border-radius:6px; color:#fff; background:var(--orange); font-size:11px; }
.checkbox-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.checkbox-grid label,.radio-row label { position:relative; cursor:pointer; }
.checkbox-grid input,.radio-row input { position:absolute; opacity:0; }
.checkbox-grid span,.radio-row span { min-height:62px; display:flex; align-items:center; padding:14px 16px 14px 48px; border:2px solid var(--line); border-radius:14px; font-weight:700; line-height:1.45; transition:.16s ease; }
.checkbox-grid span::before,.radio-row span::before { content:""; position:absolute; left:16px; width:20px; height:20px; border:2px solid #8ba5a2; background:#fff; }
.checkbox-grid span::before { border-radius:5px; }
.radio-row span::before { border-radius:50%; }
.checkbox-grid input:checked+span,.radio-row input:checked+span { border-color:var(--teal); background:var(--aqua); }
.checkbox-grid input:checked+span::before { content:"✓"; display:grid; place-items:center; color:#fff; background:var(--teal); border-color:var(--teal); font-size:14px; }
.radio-row input:checked+span::before { box-shadow:inset 0 0 0 5px #fff; background:var(--teal); border-color:var(--teal); }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field-grid label,.message-field { display:flex; flex-direction:column; gap:8px; font-weight:800; }
.field-grid .wide { grid-column:1/-1; }
input,select,textarea { width:100%; border:2px solid #d7e1df; border-radius:11px; padding:13px 14px; color:var(--ink); background:#fff; font:inherit; }
input:focus,select:focus,textarea:focus { outline:3px solid rgba(25,122,118,.15); border-color:var(--teal); }
.field-grid small,.field-error { min-height:18px; margin:0; color:#b33c22; font-size:12px; }
.radio-row { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.message-field { margin-top:22px; }
.message-field small { color:#b33c22; font-weight:700; }
textarea { resize:vertical; line-height:1.7; }
.consent { display:flex; align-items:flex-start; gap:10px; margin:28px 0 14px; padding:17px; border-radius:14px; background:#f0f7f5; font-weight:800; line-height:1.6; }
.consent input { width:20px; height:20px; margin-top:3px; accent-color:var(--teal); flex:0 0 auto; }
.honeypot { position:absolute; left:-9999px; }
.form-status { min-height:24px; color:#b33c22; font-weight:800; text-align:center; }
.form-status.success { padding:14px; border-radius:12px; color:#155b50; background:#e5f4ef; }
.submit-button,.secondary-button { min-height:58px; padding:14px 26px; border-radius:14px; border:2px solid var(--teal); font:inherit; font-weight:900; cursor:pointer; }
.submit-button { width:100%; color:#fff; background:var(--teal); box-shadow:0 12px 24px rgba(25,122,118,.20); }
.submit-button:disabled { opacity:.55; cursor:wait; }
.secondary-button { color:var(--teal-dark); background:#fff; }
.destination-note { margin:12px 0 0; color:var(--muted); font-size:12px; text-align:center; }
footer { padding:32px 20px; display:flex; justify-content:center; align-items:center; gap:34px; color:#dbe9e6; background:#143f3c; text-align:center; font-size:13px; }
footer nav { display:flex; gap:22px; }
footer a:hover,footer a:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:4px; }
dialog { width:min(660px,calc(100% - 30px)); padding:0; border:0; border-radius:24px; box-shadow:0 28px 90px rgba(0,0,0,.24); }
dialog::backdrop { background:rgba(10,38,36,.55); backdrop-filter:blur(3px); }
.dialog-card { padding:32px; }
.dialog-card h2 { margin:0 0 20px; font-size:26px; }
#confirm-summary { max-height:52vh; overflow:auto; padding:18px; border-radius:14px; background:#f3f7f6; line-height:1.7; }
#confirm-summary dl { margin:0; }
#confirm-summary dt { margin-top:12px; color:var(--muted); font-size:12px; font-weight:900; }
#confirm-summary dt:first-child { margin-top:0; }
#confirm-summary dd { margin:2px 0 0; font-weight:800; }
.dialog-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px; }
.dialog-actions .submit-button { min-height:54px; }
@media (max-width:760px) {
  .contact-header { height:auto; padding:13px 16px; }
  .brand { font-size:18px; }
  .brand img { width:40px; height:40px; }
  .back-link { padding:9px 12px; font-size:12px; }
  .contact-hero { padding:48px 20px 94px; }
  .contact-hero p:last-child { font-size:16px; }
  .contact-layout { width:calc(100% - 24px); grid-template-columns:1fr; margin-top:-52px; }
  .contact-guide { position:static; }
  .contact-guide ol { display:none; }
  .consultation-form { padding:4px 20px 28px; }
  .form-section { padding:30px 0; }
  .checkbox-grid,.field-grid,.radio-row { grid-template-columns:1fr; }
  .field-grid .wide { grid-column:auto; }
  .checkbox-grid span { min-height:56px; }
  .dialog-card { padding:25px 20px; }
  .dialog-actions { grid-template-columns:1fr; }
  footer { flex-direction:column; gap:18px; }
  footer nav { flex-direction:column; gap:12px; }
}
