/* CONTACT専用。共通ページのスタイルには影響しない。 */
.contact-page { --color-bg:#101112; --color-text:#efede7; --color-muted:#aaa9a5; --color-line:#343638; --color-surface:#191b1d; background:var(--color-bg); color:var(--color-text); color-scheme:dark; -webkit-font-smoothing:antialiased; }
.contact-page .site-header { background:#101112f2; border-color:#ffffff16; }
.contact-page .nav-list a { font-size:.75rem; font-weight:400; letter-spacing:.1em; }
.contact-page .menu-toggle { color:var(--color-text); background:transparent; }
.contact-page .site-footer { background:#0b0c0d; border-color:var(--color-line); }
.contact-page .breadcrumb { color:var(--color-muted); font-size:.75rem; margin-bottom:48px; }
.contact-page h1 { font-family:'Bodoni MT',Didot,'Times New Roman',serif; font-weight:400; letter-spacing:-.045em; font-size:clamp(2.7rem,7.5vw,6.5rem); line-height:1.1; margin-bottom:48px; }
.contact-page h2 { font-size:1.4rem; font-weight:400; margin-bottom:32px; }
.contact-shell { max-width:760px; margin:0 auto; }
.contact-steps { display:flex; padding:24px 0; margin:0 0 32px; gap:32px; list-style:none; border-block:1px solid var(--color-line); font-size:.85rem; color:var(--color-muted); }
.contact-steps [aria-current] { color:var(--color-text); }
#contact-status { color:var(--color-muted); font-size:.875rem; line-height:1.8; margin-bottom:28px; }
#contact-status:empty { display:none; }
.contact-page .contact-form { max-width:none; }
.contact-page fieldset { border:0; padding:0; margin:0; min-width:0; }
#contact-inputs, #reservation-fields { display:grid; gap:28px; }
.contact-page [hidden] { display:none !important; }
.contact-page .field input, .contact-page .field select, .contact-page .field textarea { background:#191b1d; color:var(--color-text); border:1px solid #505255; border-radius:0; width:100%; padding:13px; font:inherit; font-size:16px; }
.contact-page .field textarea { resize:vertical; min-height:180px; }
.contact-page .field label { font-size:.9375rem; font-weight:400; }
.contact-page .required { color:var(--color-muted); font-size:.75rem; margin-left:8px; }
#reservation-fields { padding:24px; border-left:1px solid #747575; background:#ffffff03; }
.reservation-note, .reservation-empty { font-size:.875rem; line-height:1.9; color:var(--color-muted); margin:0; }
.contact-page button:not(.menu-toggle) { background:transparent; color:var(--color-text); border:1px solid #727477; padding:14px 24px; font:inherit; font-size:.9rem; cursor:pointer; transition:background .25s ease; }
.contact-page button:not(.menu-toggle):hover:not(:disabled) { background:#ffffff10; }
.contact-page button:disabled { opacity:.45; cursor:not-allowed; }
.contact-page :focus-visible { outline:2px solid #e7dfc9; outline-offset:4px; }
.contact-page .skip-link { color:#111; }
.contact-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
#confirmation-values { margin:0 0 32px; }
#confirmation-values dt { border-top:1px solid var(--color-line); padding-top:20px; font-size:.8rem; color:var(--color-muted); }
#confirmation-values dd { margin:8px 0 24px; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.9; }
.contact-actions { display:flex; flex-wrap:wrap; gap:16px; margin-top:32px; }
.contact-page .page { padding-bottom:100px; }
@media(max-width:599px) { .contact-page h1 { margin-bottom:32px; } .contact-steps { gap:24px; } #reservation-fields { padding:18px; } .contact-actions { flex-direction:column; } .contact-actions button { width:100%; } }
@media(prefers-reduced-motion:reduce) { .contact-page button { transition:none !important; } }
