/* contact.css — page-specific styles for contact/index.html */
.contact-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--c-line);border:1px solid var(--c-line);border-radius:12px;overflow:hidden;margin-top:48px}
@media(max-width:760px){.contact-tabs{grid-template-columns:1fr}}
.tab-btn{background:#FAFBFD;padding:24px 28px;border:none;text-align:left;cursor:pointer;transition:all .25s var(--ease);display:flex;flex-direction:column;gap:6px;font-family:inherit}
.tab-btn .en{font-family:var(--f-en);font-size:11px;letter-spacing:.22em;color:var(--c-text-sub);text-transform:uppercase}
.tab-btn h3{font-size:16px;font-weight:500;margin:0;color:var(--c-text-sub)}
.tab-btn.active{background:#fff}
.tab-btn.active .en{color:var(--c-accent)}
.tab-btn.active h3{color:var(--c-primary)}
.tab-btn p{font-size:13px;color:var(--c-text-sub);margin:0;line-height:1.7}
.form-wrap{margin-top:48px;background:#fff;border:1px solid var(--c-line);border-radius:12px;padding:48px}
@media(max-width:700px){.form-wrap{padding:28px}}
.form-row{display:grid;grid-template-columns:200px 1fr;gap:32px;padding:24px 0;border-bottom:1px solid var(--c-line);align-items:start}
@media(max-width:700px){.form-row{grid-template-columns:1fr;gap:8px}}
.form-row:last-of-type{border-bottom:none}
.form-row label{font-size:13px;color:var(--c-primary);font-weight:500;letter-spacing:.04em;padding-top:14px}
.form-row label .req{display:inline-block;margin-left:8px;font-size:10px;color:#fff;background:var(--c-accent);padding:2px 8px;border-radius:4px;letter-spacing:.12em;font-weight:400;vertical-align:middle}
.form-row label .opt{display:inline-block;margin-left:8px;font-size:10px;color:var(--c-text-sub);background:var(--c-line-soft);padding:2px 8px;border-radius:4px;letter-spacing:.12em;font-weight:400;vertical-align:middle}
.form-row input[type=text],.form-row input[type=email],.form-row input[type=tel],.form-row textarea,.form-row select{width:100%;padding:14px 16px;border:1px solid var(--c-line);border-radius:8px;font-family:inherit;font-size:14px;color:var(--c-text);background:#fff;transition:border-color .2s var(--ease)}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:none;border-color:var(--c-accent)}
.form-row textarea{min-height:140px;resize:vertical}
.checkbox-group{display:flex;flex-direction:column;gap:10px}
.checkbox-group label{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--c-text);font-weight:400;cursor:pointer;padding:0}
.checkbox-group input[type=checkbox]{width:16px;height:16px;accent-color:var(--c-accent)}
.form-submit{margin-top:32px;text-align:center}
.form-submit button{padding:18px 48px;background:var(--c-primary);color:#fff;border:none;border-radius:999px;font-size:14px;letter-spacing:.06em;cursor:pointer;transition:all .25s var(--ease);display:inline-flex;align-items:center;gap:12px;font-family:inherit}
.form-submit button:hover{background:var(--c-accent);transform:translateY(-2px)}
.form-submit button .arrow{font-family:var(--f-en);font-size:16px}
.contact-info{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:700px){.contact-info{grid-template-columns:1fr}}
.info-card{background:#fff;border:1px solid var(--c-line);border-radius:12px;padding:28px;text-align:left}
.info-card .en{font-family:var(--f-en);font-size:11px;letter-spacing:.22em;color:var(--c-accent);text-transform:uppercase;display:block;margin-bottom:8px}
.info-card h4{font-size:15px;font-weight:500;margin:0 0 8px;color:var(--c-primary)}
.info-card p{font-size:13px;color:var(--c-text-sub);margin:0;line-height:1.85}
.info-card .val{font-family:var(--f-en);font-size:18px;color:var(--c-primary);letter-spacing:.02em;margin-top:8px;font-weight:300}

/* Consultation Calendar */
.consultation-only{display:none}
.form-row.consultation-only#calendarRow{grid-template-columns:1fr;gap:14px}
.form-row.consultation-only#calendarRow > label{padding-top:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}
.form-row.consultation-only#calendarRow > label br{display:none}
.form-row.consultation-only#calendarRow > label small{display:inline-block!important;margin:0!important;padding:3px 10px;background:var(--c-line-soft);border-radius:999px;font-size:11px;color:var(--c-text-sub)!important}
.cal-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}
@media(max-width:900px){.cal-layout{grid-template-columns:1fr}}
.calendar-card{background:#FAFBFD;border:1px solid var(--c-line);border-radius:12px;padding:20px}
.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.nav-btn{background:#fff;border:1px solid var(--c-line);width:34px;height:34px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-en);font-size:18px;color:var(--c-text);transition:all .2s var(--ease)}
.nav-btn:hover:not(:disabled){border-color:var(--c-accent);color:var(--c-accent)}
.nav-btn:disabled{opacity:.3;cursor:not-allowed}
.month-label{font-family:var(--f-en);font-weight:300;font-size:18px;color:var(--c-primary);letter-spacing:.06em}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{font-family:var(--f-en);font-size:10px;color:var(--c-text-sub);text-align:center;padding:8px 0;letter-spacing:.12em;text-transform:uppercase}
.cal-dow.sun{color:#D9534F}
.cal-dow.sat{color:#2E6BE6}
.cal-day{aspect-ratio:1;background:#fff;border:1px solid var(--c-line);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:var(--f-en);font-size:13px;color:var(--c-text);transition:all .15s var(--ease);padding:0;font-weight:400;position:relative}
.cal-day:hover:not(:disabled):not(.empty){border-color:var(--c-accent);color:var(--c-accent);transform:translateY(-1px)}
.cal-day.selected{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.cal-day.has-slot{border-color:var(--c-accent);color:var(--c-accent);font-weight:500}
.cal-day.has-slot::after{content:"";position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:4px;height:4px;background:var(--c-accent);border-radius:50%}
.cal-day.selected.has-slot::after{background:#fff}
.cal-day:disabled{opacity:.3;cursor:not-allowed;background:#F4F5F8;color:#9aa3b3}
.cal-day.empty{visibility:hidden;cursor:default;background:transparent;border:none}
.time-section{margin-top:16px;padding-top:16px;border-top:1px dashed var(--c-line)}
.time-prompt{font-size:12px;color:var(--c-text-sub);margin:0;line-height:1.7}
.time-slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.time-slot{padding:8px 14px;background:#fff;border:1px solid var(--c-line);border-radius:999px;cursor:pointer;font-size:12px;font-family:var(--f-en);color:var(--c-text);transition:all .15s var(--ease);font-weight:400}
.time-slot:hover:not(.selected){border-color:var(--c-accent);color:var(--c-accent)}
.time-slot.selected{background:var(--c-accent);border-color:var(--c-accent);color:#fff}
.candidates-card{background:#FCFDFF;border:1px solid var(--c-line);border-radius:12px;padding:20px}
.candidates-card h4{font-size:12px;color:var(--c-primary);font-weight:500;margin:0 0 12px;letter-spacing:.06em;text-transform:uppercase;font-family:var(--f-en)}
.candidate-item{display:flex;align-items:center;padding:12px 14px;background:#fff;border:1px solid var(--c-line);border-radius:8px;margin-bottom:8px}
.candidate-item .num{font-family:var(--f-en);font-weight:200;font-size:18px;color:var(--c-accent);margin-right:12px;min-width:24px}
.candidate-item .when{flex:1;font-size:13px;color:var(--c-primary);line-height:1.4}
.candidate-item .when small{font-size:11px;color:var(--c-text-sub);display:block;font-family:var(--f-en);margin-top:2px;letter-spacing:.04em}
.candidate-item .remove{background:none;border:none;color:var(--c-text-sub);cursor:pointer;font-size:18px;padding:4px 8px;border-radius:4px;transition:all .2s var(--ease);line-height:1}
.candidate-item .remove:hover{background:#FEE;color:#D9534F}
.candidates-empty{font-size:12px;color:var(--c-text-sub);padding:24px 8px;text-align:center;line-height:1.85}
.candidates-empty .icon{font-family:var(--f-en);font-size:36px;font-weight:200;display:block;color:var(--c-line);margin-bottom:6px}
.candidates-meta{margin-top:12px;font-size:11px;color:var(--c-text-sub);letter-spacing:.04em;line-height:1.7}
.candidates-meta .count{color:var(--c-accent);font-family:var(--f-en);font-weight:500}
.meeting-tools{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(max-width:700px){.meeting-tools{grid-template-columns:1fr}}
.meeting-tool{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border:1px solid var(--c-line);border-radius:8px;cursor:pointer;transition:all .2s var(--ease);font-size:13px}
.meeting-tool:hover{border-color:var(--c-accent)}
.meeting-tool input[type=radio]{accent-color:var(--c-accent);margin:0}
.meeting-tool .tool-name{font-family:var(--f-en);font-size:11px;font-weight:500;letter-spacing:.08em;color:var(--c-primary);text-transform:uppercase}
.meeting-tool .tool-name .jp{font-family:var(--f-jp,inherit);font-size:13px;color:var(--c-text);margin-left:6px;letter-spacing:.04em;text-transform:none;font-weight:400}
.notice-box{margin-top:16px;padding:14px 16px;background:#E8EFFD;border:1px solid #C8DBFA;border-radius:8px;font-size:12px;color:var(--c-primary);line-height:1.85}
.notice-box .label-sm{font-family:var(--f-en);font-size:10px;letter-spacing:.18em;color:var(--c-accent);font-weight:500;display:block;margin-bottom:4px}
