/* 和信 PGY2-內科組 招募導覽 — deep-green editorial, minimalist */
:root{
  --green:#2f4a2f;        /* deep forest */
  --green-2:#3a5a40;      /* primary */
  --olive:#4a5d23;        /* accent */
  --cream:#f7f5ee;        /* page bg */
  --cream-2:#efebe0;      /* alt bg */
  --ink:#22281f;          /* text */
  --muted:#5d655a;        /* secondary text */
  --line:#d9d4c5;         /* hairlines */
  --gold:#b08d3a;         /* subtle accent */
  --max:1080px;
  --serif:"Noto Serif TC",Georgia,"Songti TC",serif;
  --sans:"Noto Sans TC",-apple-system,"PingFang TC","Microsoft JhengHei",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);color:var(--ink);background:var(--cream);
  line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;
  letter-spacing:.01em;
}
a{color:inherit;text-decoration:none}
strong{font-weight:700;color:var(--green)}
code{font-family:"SF Mono",ui-monospace,monospace;background:#e7e2d4;padding:.1em .4em;border-radius:4px;font-size:.86em}
small{font-size:.5em;font-weight:500;margin-left:.12em;letter-spacing:0}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:14px clamp(18px,5vw,40px);background:rgba(247,245,238,.86);
  backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);
}
.brand{font-family:var(--serif);font-weight:700;font-size:1.05rem;display:flex;align-items:center;gap:.5em;color:var(--green)}
.brand-mark{display:grid;place-items:center;width:1.9em;height:1.9em;background:var(--green-2);color:var(--cream);border-radius:7px;font-size:.78em}
.nav-links{display:flex;align-items:center;gap:clamp(10px,2.4vw,26px);font-size:.92rem}
.nav-links a{color:var(--muted);transition:color .2s}
.nav-links a:hover{color:var(--green)}
.nav-cta{padding:.5em 1.1em;border:1px solid var(--green-2);border-radius:999px;color:var(--green-2)!important}
.nav-cta:hover{background:var(--green-2);color:var(--cream)!important}
@media(max-width:640px){.nav-links a:not(.nav-cta){display:none}}

/* ---------- shared ---------- */
section{padding:clamp(56px,9vw,110px) clamp(20px,6vw,40px)}
.block,.apply,.numbers,.hero,.faq{max-width:var(--max);margin:0 auto}
.block.alt{max-width:none;background:var(--cream-2);border-block:1px solid var(--line)}
.block.alt>.block-head,.block.alt>.cards,.block.alt>.path{max-width:var(--max);margin-inline:auto}
.block-head{margin-bottom:clamp(28px,4vw,48px)}
.block-head.center{text-align:center}
.kicker{font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--olive);font-weight:500;margin-bottom:.8em}
.kicker.light{color:#cdbb8a}
h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,3.6vw,2.3rem);color:var(--green);line-height:1.3}
h3{font-family:var(--serif);font-weight:600;font-size:1.12rem;color:var(--green-2);margin-bottom:.3em}

/* ---------- hero ---------- */
.hero{text-align:center;padding-top:clamp(60px,10vw,120px);padding-bottom:clamp(50px,7vw,90px)}
.eyebrow{font-size:.86rem;letter-spacing:.16em;color:var(--olive);margin-bottom:1.4em}
h1{font-family:var(--serif);font-weight:700;font-size:clamp(2.6rem,8vw,5rem);line-height:1.08;color:var(--green);letter-spacing:.01em}
h1 .dot{color:var(--gold)}
.lede{margin:1.2em auto 0;font-size:clamp(1rem,2.2vw,1.22rem);color:var(--muted);max-width:32ch}
.hero-stat{margin-top:1.8em;font-size:clamp(.98rem,2vw,1.15rem);color:var(--ink)}
.hero-stat strong{color:var(--olive)}
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:2.2em}
.hero-note{margin-top:1.6em;font-size:.85rem;color:var(--muted)}
@media(max-width:520px){.br-d{display:none}}

/* ---------- buttons ---------- */
.btn{display:inline-block;padding:.85em 1.6em;border-radius:999px;font-weight:500;font-size:.98rem;transition:transform .15s,box-shadow .2s,background .2s;border:1px solid transparent}
.btn-primary{background:var(--green-2);color:var(--cream);box-shadow:0 6px 18px -8px rgba(47,74,47,.6)}
.btn-primary:hover{background:var(--green);transform:translateY(-2px);box-shadow:0 12px 26px -10px rgba(47,74,47,.65)}
.btn-ghost{border-color:var(--line);color:var(--green-2);background:transparent}
.btn-ghost:hover{border-color:var(--green-2);background:#fff}

/* ---------- numbers ---------- */
.numbers{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(8px,2vw,28px);text-align:center;
  border-block:1px solid var(--line);padding-block:clamp(36px,5vw,56px)!important}
.stat{display:flex;flex-direction:column;gap:.3em}
.stat .n{font-family:var(--serif);font-weight:700;font-size:clamp(1.7rem,4.6vw,2.9rem);color:var(--green);line-height:1}
.stat .l{font-size:.82rem;color:var(--muted);letter-spacing:.04em}
@media(max-width:680px){.numbers{grid-template-columns:repeat(2,1fr);gap:26px 14px}.stat:last-child{grid-column:1/-1}}

/* ---------- timeline ---------- */
.timeline{list-style:none;display:grid;gap:2px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.timeline li{display:grid;grid-template-columns:130px 1fr;gap:clamp(14px,3vw,30px);padding:clamp(18px,3vw,26px) clamp(18px,3vw,30px);background:var(--cream);align-items:start}
.timeline li:nth-child(even){background:#fff}
.t-tag{font-family:var(--serif);font-weight:600;color:var(--olive);font-size:1.02rem;padding-top:.15em}
.timeline p{color:var(--muted);font-size:.95rem}
@media(max-width:560px){.timeline li{grid-template-columns:1fr;gap:6px}.t-tag{font-size:.92rem}}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2.4vw,22px)}
.card{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:clamp(22px,3vw,30px)}
.card p{color:var(--muted);font-size:.95rem}
@media(max-width:760px){.cards{grid-template-columns:1fr}}

/* ---------- perks ---------- */
.perks{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2.4vw,24px)}
.perk{display:flex;gap:14px;align-items:flex-start}
.perk .ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:var(--cream-2);border:1px solid var(--line);color:var(--olive)}
.perk .ico svg{width:21px;height:21px}
.perk strong{display:block;color:var(--green);font-weight:700;margin-bottom:.15em}
.perk p{color:var(--muted);font-size:.9rem}
@media(max-width:760px){.perks{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.perks{grid-template-columns:1fr}}

/* ---------- career path ---------- */
.path{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;justify-content:center}
.path-step{flex:1 1 180px;max-width:240px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 18px;text-align:center}
.path-step.hl{border-color:var(--green-2);box-shadow:0 8px 24px -14px rgba(47,74,47,.55)}
.step-i{display:block;font-family:var(--serif);font-weight:600;color:var(--green-2);font-size:1.15rem;margin-bottom:.4em}
.path-step p{color:var(--muted);font-size:.88rem}
.path-arrow{display:grid;place-items:center;color:var(--olive)}
.path-arrow svg{width:22px;height:22px}
@media(max-width:760px){.path-arrow{transform:rotate(90deg)}.path-step{flex-basis:100%;max-width:420px}}

/* ---------- apply ---------- */
.apply{max-width:var(--max);margin:0 auto}
.apply-sub{margin-top:.7em;color:var(--muted);font-size:1.02rem}
.checklist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:clamp(28px,4vw,42px) 0}
.checklist li{display:flex;gap:16px;align-items:flex-start;background:var(--cream-2);border:1px solid var(--line);border-radius:14px;padding:20px 22px}
.checklist span{font-family:var(--serif);font-weight:700;color:var(--gold);font-size:1.3rem;line-height:1.1}
.checklist p{color:var(--muted);font-size:.9rem;margin-top:.2em}
@media(max-width:680px){.checklist{grid-template-columns:1fr}}

.skill-card{background:linear-gradient(155deg,var(--green) 0%,var(--green-2) 70%,#436046 100%);color:var(--cream);border-radius:20px;padding:clamp(28px,5vw,52px);margin:clamp(16px,3vw,28px) 0}
.skill-card h3{color:#fff;font-size:clamp(1.3rem,3vw,1.7rem);margin-bottom:.5em}
.skill-card p{color:#e8ecdf;font-size:1rem;max-width:62ch}
.skill-card code{background:rgba(255,255,255,.16);color:#fff}
.skill-card .btn-primary{background:var(--cream);color:var(--green)}
.skill-card .btn-primary:hover{background:#fff}
.skill-card .btn-ghost{border-color:rgba(255,255,255,.4);color:#fff}
.skill-card .btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.skill-mini{margin-top:1.3em;font-size:.82rem;color:#c7d0bb!important}

.contact{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;border-top:1px solid var(--line);padding-top:clamp(24px,4vw,38px);margin-top:clamp(20px,3vw,34px)}
.contact a{color:var(--green-2);border-bottom:1px solid var(--line)}
.contact a:hover{border-color:var(--green-2)}
.c-label{display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);margin-bottom:.4em}
@media(max-width:680px){.contact{grid-template-columns:1fr 1fr}}

/* ---------- faq ---------- */
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{font-family:var(--serif);font-weight:600;color:var(--green);font-size:1.05rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::after{content:"+";color:var(--olive);font-weight:300;font-size:1.5rem;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--muted);margin-top:.8em;font-size:.96rem}

/* ---------- footer ---------- */
.footer{background:var(--green);color:#d4ddcb;padding:clamp(40px,6vw,64px) clamp(20px,6vw,40px);text-align:center}
.footer .disclaim{max-width:64ch;margin:0 auto 1.4em;font-size:.9rem;line-height:1.8}
.footer .disclaim strong{color:#fff}
.footer .links{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:1.2em}
.footer .links a{color:#eef2e8;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px;display:inline-flex;align-items:center;gap:5px}
.footer .links a .ext{width:14px;height:14px}
.footer .links a:hover{border-color:#fff}
.footer .copy{font-size:.78rem;color:#9fb098}
