/* Contact form shares the approved site chrome; only the page body is styled here. */
.contact-page {
  --contact-ink: var(--public-ink, #24252a);
  --contact-muted: var(--public-muted, #646773);
  --contact-line: var(--public-line, rgba(0, 0, 0, .16));
  --contact-surface: var(--public-page-canvas, #fff);
  --contact-error: #bd3535;
  color: var(--contact-ink);
  background: var(--contact-surface);
  font-family: var(--font, Inter, Pretendard, sans-serif);
}
html[data-theme="dark"] .contact-page { --contact-ink: var(--public-ink, #ededf0); --contact-muted: var(--public-muted, #aaaab2); --contact-line: var(--public-line, rgba(255,255,255,.18)); --contact-error:#ff9e9e; }
.contact-page * { box-sizing:border-box; }
.contact-page [hidden] { display:none!important; }
.contact-page .contact-shell { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); gap:clamp(48px,7vw,120px); width:min(calc(100% - 2 * clamp(20px,3vw,48px)),1400px); margin-inline:auto; padding:64px 0 100px; }
.contact-page .contact-intro { max-width:460px; }
.contact-page .contact-kicker { margin:0 0 16px; color:var(--contact-muted); font-size:13px; font-weight:500; letter-spacing:.01em; }
.contact-page .contact-intro h1 { margin:0 0 22px; font-size:clamp(32px,3.6vw,48px); font-weight:600; line-height:1.18; letter-spacing:-.035em; color:var(--contact-ink); }
.contact-page .contact-intro>p { max-width:430px; font-size:16px; line-height:1.8; letter-spacing:0; color:var(--contact-muted); }
.contact-page .contact-route { margin-top:34px; padding-top:22px; border-top:1px solid var(--contact-line); }
.contact-page .contact-route h2 { margin:0 0 8px; font-size:16px; font-weight:600; line-height:1.5; letter-spacing:0; color:var(--contact-ink); }
.contact-page .contact-route p { margin:0 0 10px; font-size:14px; line-height:1.75; color:var(--contact-muted); }
.contact-page .contact-route a { color:var(--contact-ink); font-size:14px; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.contact-page .contact-compose { min-width:0; }
.contact-page .contact-compose>h2 { margin:0 0 8px; font-size:22px; font-weight:600; line-height:1.4; letter-spacing:-.015em; color:var(--contact-ink); }
.contact-page .contact-required { margin:0 0 28px; color:var(--contact-muted); font-size:12px; line-height:1.6; }
.contact-page .contact-availability { margin:0 0 18px; color:var(--contact-muted); font-size:14px; line-height:1.75; }
.contact-page fieldset { min-width:0; border:0; padding:0; margin:0; }
.contact-page .contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-page .contact-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.contact-page .contact-field--wide { grid-column:1/-1; }
.contact-page .contact-field label { display:block; color:var(--contact-ink); font-size:13px; font-weight:500; line-height:1.5; }
.contact-page .contact-optional { margin-left:6px; color:var(--contact-muted); font-size:12px; font-weight:400; }
.contact-page :is(input:not([type=checkbox]),textarea,select) { width:100%; min-width:0; min-height:46px; margin:0; border:1px solid var(--contact-line); border-radius:6px; padding:11px 12px; background:var(--contact-surface); color:var(--contact-ink); font:inherit; font-size:15px; line-height:1.5; box-shadow:none; }
.contact-page textarea { min-height:192px; resize:vertical; }
.contact-page select { cursor:pointer; padding-right:28px; }
.contact-page fieldset:disabled :is(input,textarea,select) { opacity:.58; cursor:not-allowed; }
.contact-page :is(input,textarea,select,button,a):focus-visible { outline:2px solid var(--contact-ink); outline-offset:3px; }
.contact-page [aria-invalid=true] { border-color:var(--contact-error); }
.contact-page .contact-field-error { color:var(--contact-error); font-size:12px; line-height:1.65; }
.contact-page .contact-field-error:empty { display:none; }
.contact-page .contact-field-hint { color:var(--contact-muted); font-size:12px; line-height:1.7; margin:0; }
.contact-page .contact-error-summary { padding:12px 14px; border:1px solid var(--contact-error); border-radius:6px; margin:0 0 22px; color:var(--contact-error); font-size:14px; line-height:1.7; }
.contact-page .contact-privacy { display:flex; flex-direction:column; align-items:flex-start; gap:9px; margin:22px 0 24px; }
.contact-page .contact-privacy label { display:flex; align-items:flex-start; gap:10px; color:var(--contact-muted); font-size:13px; font-weight:400; line-height:1.7; }
.contact-page .contact-privacy input { appearance:auto; width:16px; height:16px; flex:0 0 16px; margin:3px 0 0; accent-color:var(--contact-ink); }
.contact-page .contact-privacy a { margin-left:26px; color:var(--contact-ink); font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.contact-page .contact-verification { max-width:100%; min-height:0; margin-bottom:8px; }
.contact-page .contact-verification iframe { max-width:100%; }
.contact-page .contact-submit,.contact-page .contact-success button { min-height:44px; margin-top:20px; padding:12px 23px; border:1px solid var(--contact-ink); border-radius:6px; background:var(--contact-ink); color:var(--contact-surface); font:inherit; font-size:14px; font-weight:550; line-height:1.4; cursor:pointer; }
.contact-page .contact-submit:hover:not(:disabled),.contact-page .contact-success button:hover { opacity:.85; }
.contact-page .contact-submit:disabled { opacity:.4; cursor:not-allowed; }
.contact-page .contact-retry { margin:0 0 24px; padding:0; border:0; background:transparent; color:var(--contact-ink); font:inherit; font-size:13px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.contact-page .contact-success { padding:30px 0; border-top:1px solid var(--contact-line); }
.contact-page .contact-success h2 { margin:0 0 12px; color:var(--contact-ink); font-size:24px; font-weight:600; line-height:1.4; letter-spacing:-.015em; }
.contact-page .contact-success p { font-size:15px; line-height:1.7; color:var(--contact-muted); }
.contact-page .contact-success dl { margin:24px 0 0; }
.contact-page .contact-success dt { color:var(--contact-muted); font-size:12px; }
.contact-page .contact-success dd { margin:7px 0 0; overflow-wrap:anywhere; font-family:var(--font,Inter,Pretendard,sans-serif); font-size:14px; color:var(--contact-ink); }
@media(max-width:900px) { .contact-page .contact-shell { gap:40px; grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr); padding-top:42px; } .contact-page .contact-fields { grid-template-columns:1fr; gap:18px; } .contact-page .contact-intro h1 { font-size:34px; } }
@media(max-width:680px) { .contact-page .contact-shell { display:flex; flex-direction:column; gap:38px; padding-top:32px; padding-bottom:64px; } .contact-page .contact-intro { max-width:none; } .contact-page .contact-intro>p { max-width:none; } .contact-page .contact-route { margin-top:22px; padding-top:18px; } .contact-page .contact-intro h1 { font-size:32px; } .contact-page .contact-submit { width:100%; } }
