/* 모든 VIBA 홈페이지가 같이 쓰는 바탕 — 디자인을 정하지 않는 것만 둔다.
   색 · 글꼴 · 여백 · 모서리 · 첫 화면 모양은 전부 site.css 에서 사이트마다 새로 정한다. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; min-height: 100vh; overflow-x: hidden; text-rendering: optimizeLegibility; word-break: keep-all; overflow-wrap: anywhere; }
img, svg, video { display: block; max-width: 100%; height: auto; }
input, textarea, select, button { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, p, figure, blockquote, ul, ol { margin: 0; }
[id] { scroll-margin-top: 80px; }

.skip { position: absolute; left: -9999px; top: 0; }
.skip:focus { left: 12px; top: 12px; z-index: 100; padding: 8px 12px; background: #fff; color: #000; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* 문의 폼 — 동작에 필요한 것만 */
.contact-form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.contact-form label { display: block; }
.contact-form input:not([type="checkbox"]), .contact-form textarea { display: block; width: 100%; }
.contact-form[data-state="sending"] button { opacity: 0.6; pointer-events: none; }
