/* ============================================================
   人師教育協會 My Culture Connect — 報名表共用樣式
   字體與配色對齊 MCC Wix 站（mycultureconnect.org）
   ============================================================ */

:root{
  --brand:#0e6b60;
  --brand-deep:#0a4f47;
  --gold:#d99a2b;
  --ink:#16302c;
  --ink-soft:#3c534d;
  --ink-muted:#6E6E6E;
  --line:#e3ddcf;
  --bg-subtle:#fcfbf7;
  --max:680px;
  --shadow:0 18px 50px -22px rgba(22,48,44,.22);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:'Manrope','PingFang TC','Apple LiGothic Medium','Microsoft JhengHei',sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  padding:0 18px 60px;
}
.serif{font-family:'Fraunces','PingFang TC',serif;font-weight:400;}
.sans-display{font-family:'Manrope','PingFang TC',sans-serif;}

/* ---------- MCC Header (mini hero with MCC navy gradient + signature curve) ---------- */
.mcc-header{
  position:relative;
  margin:0 -18px 36px;
  padding:60px 24px 96px;
  text-align:center;
  background:
    radial-gradient(800px 400px at 88% -10%, rgba(217,154,43,.24) 0%, transparent 55%),
    radial-gradient(700px 400px at -10% 110%, rgba(42,161,146,.32) 0%, transparent 55%),
    linear-gradient(160deg, #0b3d38 0%, #0e6b60 60%, #138275 100%);
  color:#fff;
  overflow:hidden;
}
.mcc-header::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:54px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 100 1920 200' preserveAspectRatio='none'><path d='M1920 300v-4.067c-455.162 0-690.876-51.203-1082.65-129.288C490.044 97.423 0 100.013 0 100.013V300h1920z' fill='%23ffffff'/></svg>") no-repeat bottom / 100% 100%;
}
.mcc-header .logo{
  display:none;
}
.mcc-header .brand-name{
  position:relative;
  z-index:2;
  font-family:'PingFang TC','Apple LiGothic Medium','Microsoft JhengHei',sans-serif;
  font-weight:700;
  font-size:clamp(28px,5.8vw,42px);
  color:#fff;
  line-height:1.2;
  letter-spacing:.06em;
}
.mcc-header .brand-name .en{
  display:block;
  font-family:'Manrope','PingFang TC',sans-serif;
  font-weight:400;
  font-size:clamp(11.5px,2.6vw,14px);
  letter-spacing:.22em;
  color:rgba(255,255,255,.85);
  margin-top:10px;
  text-transform:uppercase;
}
.mcc-header .form-title{
  position:relative;
  z-index:2;
  font-family:'Manrope','PingFang TC',sans-serif;
  font-size:15.5px;
  color:rgba(255,255,255,.92);
  margin-top:20px;
  letter-spacing:.02em;
  padding:0 16px;
  line-height:1.5;
}
.mcc-header .rule{
  position:relative;
  z-index:2;
  width:48px;height:3px;border-radius:3px;
  background:var(--gold);
  margin:18px auto 0;
}

/* ---------- Intro note (Google Chat 行動指示) ---------- */
.note{
  max-width:var(--max);
  margin:0 auto 26px;
  background:var(--bg-subtle);
  border:1px solid var(--line);
  border-left:4px solid var(--brand);
  border-radius:12px;
  padding:20px 22px;
  font-size:15.5px;
  color:var(--ink-soft);
  line-height:1.75;
}
.note h3{
  font-family:'Manrope','PingFang TC',sans-serif;
  font-size:13.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--brand-deep);
  margin-bottom:10px;
  font-weight:400;
}
.note strong{color:var(--ink);}
.note ol{padding-left:22px;margin-top:10px;}
.note ol li{margin-bottom:6px;}
.note code{
  font-family:'SF Mono','Menlo','Consolas',monospace;
  font-size:13.5px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:4px;
  padding:1px 6px;
  color:var(--brand-deep);
}
.note .en{display:block;font-size:13px;margin-top:10px;opacity:.85;}

/* ---------- Form card ---------- */
form{
  position:relative;
  max-width:var(--max);
  margin:0 auto;
  background:#fff;
  border:1px solid var(--line);
  border-top:5px solid var(--brand);
  border-radius:18px;
  box-shadow:0 30px 80px -30px rgba(20,40,80,.22);
  padding:34px 26px 34px;
}
.field{margin-bottom:22px;}
.field:last-of-type{margin-bottom:8px;}
label{
  display:block;
  font-size:17px;
  font-weight:600;
  color:var(--ink);
  margin-bottom:8px;
}
label .en{
  font-family:'Manrope','PingFang TC',sans-serif;
  font-weight:400;
  font-size:13.5px;
  color:var(--ink-muted);
  margin-left:7px;
}
label .req{color:var(--brand);margin-left:3px;}
label .optional{
  font-size:12.5px;
  color:var(--ink-muted);
  font-weight:400;
  margin-left:6px;
}
input[type="text"],
input[type="email"],
input[type="number"],
select,
textarea{
  width:100%;
  font-family:inherit;
  font-size:16.5px;
  color:var(--ink);
  background:#fff;
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:13px 14px;
  transition:border-color .15s ease, box-shadow .15s ease;
  -webkit-appearance:none;appearance:none;
}
textarea{
  min-height:130px;
  resize:vertical;
  line-height:1.6;
}
select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230a4f47' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 15px center;
  padding-right:40px;
  cursor:pointer;
}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(14,107,96,.18);
}
input[readonly]{background:var(--bg-subtle);color:var(--ink-soft);cursor:default;}
.hint{font-size:13px;color:var(--ink-muted);margin-top:6px;line-height:1.55;}

.grid2{display:grid;gap:22px;}
@media (min-width:540px){
  .grid2{grid-template-columns:1fr 1fr;}
  .grid2 .field{margin-bottom:0;}
}

/* ---------- Radio / Checkbox option rows ---------- */
.opt-grid{display:flex;flex-direction:column;gap:10px;}
@media (min-width:540px){
  .opt-grid.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;}
  .opt-grid.cols-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 12px;}
}
.opt-row{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;
  border:1.5px solid var(--line);border-radius:10px;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
  font-weight:400;font-size:15.5px;
  margin:0;
}
.opt-row input[type="radio"],
.opt-row input[type="checkbox"]{
  width:18px;height:18px;
  accent-color:var(--brand);
  cursor:pointer;flex-shrink:0;
}
.opt-row:hover{background:var(--bg-subtle);}
.opt-row:has(input:checked){
  border-color:var(--brand);
  background:#ecf6f4;
}
.opt-row .en{font-size:12.5px;color:var(--ink-muted);margin-left:6px;font-weight:400;}

.section-label{
  font-family:'Manrope','PingFang TC',sans-serif;
  font-size:13px;font-weight:600;letter-spacing:.20em;text-transform:uppercase;
  color:var(--brand-deep);
  margin:34px 0 18px;
  padding:6px 0 6px 14px;
  border-left:4px solid var(--brand);
}

/* ---------- Submit button ---------- */
button{
  width:100%;
  font-family:'Manrope','PingFang TC',sans-serif;
  font-size:16px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;
  color:#fff;
  background:var(--brand);
  border:none;border-radius:12px;
  padding:18px;
  margin-top:28px;
  cursor:pointer;
  transition:background .15s ease, transform .05s ease;
}
button:hover{background:var(--brand-deep);}
button:active{transform:translateY(1px);}
button:disabled{background:#c9a89e;cursor:progress;}

.errbox{
  display:none;
  margin-top:16px;
  background:#fdecea;border:1px solid #e7a99c;border-radius:10px;
  padding:12px 14px;font-size:14.5px;color:var(--brand-deep);
}

/* ---------- Success screen ---------- */
.success{
  display:none;
  max-width:var(--max);margin:0 auto;
  background:#fff;border:1px solid var(--line);border-radius:18px;
  box-shadow:var(--shadow);
  padding:40px 28px;
}
.success .check{
  width:60px;height:60px;border-radius:50%;
  background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:30px;margin:0 auto 20px;
}
.success h2{
  font-family:'Fraunces','PingFang TC',serif;
  font-weight:400;
  font-size:26px;color:var(--brand-deep);
  text-align:center;
  margin-bottom:6px;
  line-height:1.3;
}
.success h2 .en{
  display:block;
  font-family:'Manrope','PingFang TC',sans-serif;
  font-size:13.5px;
  color:var(--ink-muted);
  margin-top:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.success .next{
  background:var(--bg-subtle);
  border:1px solid var(--line);
  border-left:4px solid var(--brand);
  border-radius:12px;
  padding:22px 24px;
  margin-top:26px;
  font-size:15.5px;
  color:var(--ink-soft);
  line-height:1.8;
}
.success .next h3{
  font-family:'Manrope','PingFang TC',sans-serif;
  font-weight:400;
  font-size:13.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--brand-deep);
  margin-bottom:12px;
}
.success .next ol{padding-left:22px;}
.success .next ol li{margin-bottom:8px;}
.success .next strong{color:var(--ink);}
.success .next code{
  font-family:'SF Mono','Menlo','Consolas',monospace;
  font-size:14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:4px;
  padding:1px 6px;
  color:var(--brand-deep);
}
.success .note-line{
  text-align:center;
  font-size:14.5px;
  color:var(--ink-muted);
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--line);
}

footer{
  max-width:var(--max);margin:32px auto 0;text-align:center;
  font-size:12.5px;color:#9a938b;
}
