[hidden] { display: none !important; }
:root { --bg: #fbfaf7; --fg: #222; --accent: #2f7d4f; --error: #c0392b; --border: #d9d6cf; --card: #fff; --soft: #f4f2ec; }
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 17px; line-height: 1.6; color: var(--fg); background: var(--bg); }
.hero-img { display: block; width: 100%; max-height: 320px; object-fit: cover; }
.hero h1 { margin: 0 auto; max-width: 720px; padding: 16px; font-size: 1.5rem; }
main { max-width: 720px; margin: 0 auto; padding: 0 16px 48px; }
.block, .result, .notice, .error { white-space: pre-line; }
.tabs { display: flex; gap: 8px; margin: 16px 0; }
.tab { flex: 1; padding: 12px 8px; font-size: 1rem; border: 1px solid var(--border); background: var(--card); border-radius: 8px; cursor: pointer; color: var(--fg); }
.tab.active { background: var(--accent); color: #fff; border-color: var(--accent); }
form { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 16px; }
h2 { font-size: 1.15rem; margin: 24px 0 8px; border-bottom: 1px solid var(--border); padding-bottom: 4px; }
form > h2:first-child { margin-top: 0; }
fieldset { border: 0; padding: 0; margin: 0; }
.field { margin: 12px 0; }
.field label, .field .label { display: block; font-weight: 600; margin-bottom: 4px; }
.field label.inline { display: inline-flex; align-items: flex-start; gap: 8px; font-weight: 400; margin-right: 16px; }
.field label.inline input { margin-top: 6px; }
input[type=text], input[type=email], input[type=tel], input[type=date], select, textarea {
  width: 100%; padding: 10px; font-size: 16px; border: 1px solid var(--border); border-radius: 6px; background: #fff; color: var(--fg); }
textarea { min-height: 80px; resize: vertical; }
.phone-row { display: flex; gap: 8px; flex-wrap: wrap; }
.phone-row select { flex: 0 0 140px; }
.phone-row .code-other { flex: 0 0 90px; }
.phone-row input[type=tel] { flex: 1 1 160px; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: var(--error); }
.error, .error-msg { color: var(--error); }
.error { margin: 4px 0 0; font-size: .9rem; }
.privacy { background: var(--soft); border-radius: 8px; padding: 12px; font-size: .9rem; max-height: 260px; overflow: auto; margin-top: 16px; }
.privacy h3 { margin-top: 0; font-size: 1rem; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.turnstile { margin: 16px 0; min-height: 65px; }
button[type=submit] { width: 100%; padding: 14px; font-size: 1.05rem; background: var(--accent); color: #fff; border: 0; border-radius: 8px; cursor: pointer; }
button[disabled] { opacity: .6; cursor: wait; }
.result, .notice { background: var(--card); border: 1px solid var(--border); border-radius: 8px; padding: 16px; margin-top: 16px; }
