:root{--paper:#f3efe5;--ink:#283b32;--olive:#65734a;--line:#c8c8b7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Microsoft JhengHei",sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:5px}header{max-width:1320px;margin:auto;padding:26px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-family:serif;font-size:19px;letter-spacing:2px}.brand small{display:block;font-family:Arial,sans-serif;font-size:9px;letter-spacing:2px;margin-top:7px}.seal{border:1px solid var(--ink);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-size:27px}nav{display:flex;gap:32px;align-items:center;font-size:13px}.nav-cta{border:1px solid var(--ink);padding:12px 20px}.hero{max-width:1320px;margin:auto;display:grid;grid-template-columns:1fr 1fr;min-height:670px;padding:68px 7% 55px;gap:40px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--olive);font-weight:bold}h1,h2,h3{font-family:"Noto Serif TC","PMingLiU",serif;font-weight:500}h1{font-size:clamp(44px,4.8vw,72px);line-height:1.35;letter-spacing:3px;margin:26px 0}h1 span{color:var(--olive)}p{line-height:1.95} .hero-copy>p{color:#666d60;line-height:2.1;margin-bottom:30px}.button{display:inline-flex;justify-content:space-between;gap:45px;align-items:center;background:var(--ink);border:1px solid var(--ink);color:var(--paper);padding:18px 25px;font-size:14px;cursor:pointer}.button:hover{background:var(--olive)}.hero-foot{display:flex;gap:20px;font-size:10px;letter-spacing:1px;margin-top:38px;color:#7b7e6d}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#dce0cb 0%,#e9e9dc 50%,transparent 70%);min-height:530px}.orbit{position:absolute;top:15px;right:8px;writing-mode:vertical-rl;letter-spacing:5px;font-family:serif;font-size:13px}.ticket{width:205px;background:#c8d8d3;color:#233b39;padding:15px 17px;box-shadow:12px 16px 25px #283b3220;transform:rotate(-8deg);background-image:repeating-linear-gradient(55deg,transparent 0 9px,#ffffff30 9px 10px);border:7px solid #eceddf;outline:1px solid #afbaac;position:relative}.ticket-no{font:10px monospace;border-bottom:1px solid;padding-bottom:9px;display:flex;justify-content:space-between}.ticket-top{text-align:center;font:12px serif;margin-top:18px}.ticket h2{font-size:34px;text-align:center;font-weight:bold;letter-spacing:3px;margin:18px 0}.ticket h2 small{font-size:13px}.ticket h2 span{display:block;font:22px serif;margin:8px}.ticket-rule{border-block:1px solid;padding:8px 0;text-align:center;font-size:10px}.ticket p{font-size:11px;text-align:center}.ticket-bottom{font:11px serif;border-top:1px solid;padding-top:10px;display:flex;justify-content:space-between}.ticket-back{position:absolute;transform:rotate(13deg) translate(92px,-15px);background-color:#d9bc9c;height:343px;text-align:center;padding-top:65px}.ticket-back strong{display:block;border-block:2px solid;font-size:28px;padding:15px 0;margin-top:20px}.ticket-back b{display:block;font:22px serif;margin:20px 0}.ticket-back>div{font-size:10px}.round-stamp{position:absolute;left:8%;bottom:45px;border:2px solid #927258;color:#927258;border-radius:50%;width:94px;height:94px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;transform:rotate(-15deg);font-size:15px;line-height:1.5;letter-spacing:3px}.round-stamp b{font:7px Arial;letter-spacing:1px;margin-top:3px}.art-caption{position:absolute;bottom:4px;right:8%;font:11px serif;letter-spacing:2px}.ticker{border-block:1px solid var(--line);padding:19px;white-space:nowrap;overflow:hidden;text-align:center;letter-spacing:3px;font-size:11px;color:#667057}.section{max-width:1160px;margin:auto;padding:90px 30px}.story{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.photo{height:380px;position:relative;overflow:hidden;background:#c7ad9e}.photo img{width:100%;height:100%;object-fit:cover;object-position:50% 100%;clip-path:inset(0);transform:scale(2.2);transform-origin:50% 100%}.photo span{position:absolute;bottom:15px;left:20px;color:white;font-size:10px;letter-spacing:3px;background:#283b3280;padding:8px}.section h2{font-size:36px;line-height:1.5;letter-spacing:2px;margin:20px 0}.story p{color:#727568;font-size:14px}.text-link{display:inline-block;margin-top:15px;font-size:12px;border-bottom:1px solid;padding-bottom:8px}.plans{border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.section-head p{font-size:12px;color:#747b6d}.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.plan{border:1px solid var(--line);padding:30px;text-align:left;background:transparent;color:inherit;cursor:pointer;transition:.2s}.plan:hover,.plan.active{background:#e5e8d9;border-color:var(--olive)}.plan-index{font-size:10px;letter-spacing:2px}.plan h3{font-size:29px;margin:23px 0}.plan h3 span{float:right}.plan p{font-size:13px;color:#6b7264}.price{display:flex;align-items:baseline;gap:9px;margin:25px 0}.price b{font-weight:400;font-family:serif;font-size:58px}.price>span{margin-left:auto;font-size:11px}.plan-bottom{border-top:1px solid var(--line);padding-top:18px;font-size:11px;display:flex;justify-content:space-between}.note{font-size:11px;color:#7b7e70}.booking{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;border-top:1px solid var(--line)}.booking-intro>p{color:#727568;font-size:13px}.booking ol{padding:15px 0;list-style:none;font-size:12px}.booking li{padding:14px 0;border-bottom:1px solid var(--line)}.booking li b{margin-right:17px;font:14px serif;color:var(--olive)}.mini-preview{border:1px solid #a8b3a3;background:#dce4db;margin-top:35px;padding:22px;text-align:center}.mini-preview>span{font-size:10px;letter-spacing:3px}.mini-preview h3{font-size:25px;letter-spacing:3px}.mini-preview p{font-size:12px}.mini-preview small{font-size:10px;color:#66705f}.form-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:25px;padding-bottom:16px}.form-heading h3{margin:0;font-size:24px}.form-heading>span{font-size:10px;color:#7b7e70}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}label{font-size:12px;display:flex;flex-direction:column;gap:9px}.wide{grid-column:1/-1}input,select,textarea{width:100%;background:#faf8f1;color:var(--ink);border:1px solid #c8ccbd;padding:12px;border-radius:0;min-width:0}label small{font-size:10px;color:#828575}.form-notice{font-size:11px;line-height:1.8;background:#e6e6d9;padding:14px;margin:24px 0 16px}.submit{width:100%}#status{font-size:12px}.faq{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.1fr;gap:55px}.faq h2{font-size:27px}details{border-bottom:1px solid var(--line);padding:20px 0}summary{cursor:pointer;font-size:14px}details p{font-size:12px;color:#707767}footer{padding:40px 6%;background:var(--ink);color:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:20px}footer .seal{border-color:var(--paper)}footer>span,footer>a:last-child{font-size:11px;line-height:2}footer small{font-size:9px;letter-spacing:1px}@media(max-width:760px){header{padding:18px 5%}.brand{font-size:15px}.brand small{font-size:7px}nav{gap:12px}nav>a:not(.nav-cta){display:none}.nav-cta{padding:10px}.hero{grid-template-columns:1fr;padding:45px 7% 30px;gap:0}.hero h1{font-size:48px}.hero-art{min-height:450px}.hero-foot{margin-top:25px}.ticket-back{transform:rotate(13deg) translate(55px,-15px)}.round-stamp{left:0;bottom:15px}.section{padding:55px 6%}.story,.booking,.faq{grid-template-columns:1fr;gap:35px}.photo{height:300px}.section-head{display:block}.plan-grid{grid-template-columns:1fr}.section h2{font-size:31px}.price>span{font-size:10px}footer{flex-wrap:wrap;padding:35px 6%}footer>span{display:none}.hero-art .orbit{right:-8px}.form-grid{gap:20px 12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* 僅車票與車票文字預覽使用楷書。 */
:root{--font-kai:"DFKai-SB","BiauKai","KaiTi","STKaiti","楷體",serif}
.ticket,.ticket *,.mini-preview h3,.mini-preview h3 *,.mini-preview p{font-family:var(--font-kai)}
/* 依 01.jpg 重建固定票面，可編輯火車名稱及兩站站名。 */
.sample-ticket{width:270px;aspect-ratio:308/585;background:#d9f1f8;border:1px solid #292929;color:#171717;text-align:center;padding:45px 16px 35px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;box-shadow:none}
.sample-ticket,.sample-ticket *{font-family:"DFKai-SB","BiauKai","KaiTi","STKaiti",serif;font-weight:400;line-height:1.25}
.sample-date{font-size:23px;letter-spacing:4px;white-space:nowrap}.sample-venue,.sample-memory{font-size:22px;letter-spacing:2px;white-space:nowrap}.sample-ticket .sample-train{font-family:"Microsoft JhengHei","Noto Sans TC",sans-serif;font-size:37px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.sample-station{display:flex;align-items:baseline;justify-content:center;gap:12px;padding-left:20px}.sample-station>[data-ticket]{font-family:"DFKai-SB","BiauKai","KaiTi",serif;font-size:43px;font-weight:bold;display:inline-block;min-width:145px;max-width:170px;letter-spacing:0;white-space:nowrap;text-align:justify;text-align-last:justify}.sample-station small{font-size:29px}.sample-via{font-size:24px}.sample-valid{font-size:24px;letter-spacing:2px}.sample-fare{font-size:23px;letter-spacing:1px}#hero-ticket{position:relative;transform:rotate(-5deg);box-shadow:12px 16px 25px #283b321a}.hero-art{min-height:570px}.hero-art .round-stamp{left:0;bottom:5px}.mini-preview{background:transparent;border:0;padding:0;text-align:center}.mini-preview>.sample-ticket{margin:20px auto;width:min(100%,290px)}.mini-preview>small{display:block;line-height:1.7}.mini-preview .sample-ticket .sample-station [data-ticket]{font-family:var(--font-kai)}@media(max-width:760px){.hero-art{min-height:590px}.hero-art .orbit{top:45px}.hero-art .art-caption{bottom:0}.sample-ticket{width:270px}}
/* 新版車票：淺藍色車站建築重複底紋。 */
.sample-ticket{background-color:#daf2fa;background-image:url('station-pattern.svg');background-size:150px 92px;background-position:center top;border:1px solid #343434;outline:4px solid #daf2fa;outline-offset:-6px}
/* 車票字體：站名黑體，其餘細黑體。 */
.sample-ticket,.sample-ticket *,.sample-ticket .sample-train,.mini-preview .sample-ticket .sample-station [data-ticket]{font-family:"Microsoft JhengHei","Noto Sans TC","PingFang TC","Heiti TC",sans-serif;font-weight:300}
.sample-ticket .sample-station>[data-ticket],.mini-preview .sample-ticket .sample-station>[data-ticket]{font-family:"Microsoft JhengHei","Noto Sans TC","PingFang TC","Heiti TC",sans-serif;font-weight:700}
/* 最新樣板：淺藍與白色斜紋底。 */
.sample-ticket{background-color:#ddf1f9;background-image:repeating-linear-gradient(135deg,#ddf1f9 0px,#ddf1f9 14px,#f6f8fb 14px,#f6f8fb 22px);background-size:auto;background-position:center;outline-color:#e5f2f8}
/* 火車名稱使用粗黑體。 */
.sample-ticket .sample-train{font-weight:700}

.service-hours{border-left:3px solid #65734a;background:#e5e8d9;padding:16px 18px;margin-bottom:24px;font-size:13px;line-height:1.9}.service-hours strong{font-size:15px}

.download-booking{margin-top:12px;background:transparent;border:1px solid #65734a;color:#283b32;padding:12px;width:100%;cursor:pointer}
