@charset "UTF-8";
/* 由 tools/www_sync.py 合併自 assets/css/ 的 11 個模組，請勿手改；要改樣式請編輯各模組後重跑工具 */
:root{--ink:#142e43;--blue:#105477;--muted:#637686;--line:#dfe7e9;--serif:"Noto Serif TC","PMingLiU","Songti TC",serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:#fff;font-family:"Microsoft JhengHei","PingFang TC",sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e39f45;outline-offset:5px}picture{display:contents}picture>source{display:none}img{display:block;width:100%;object-fit:cover}h1,h2,h3,h4,p{margin:0}h2,h3,h4{font-family:var(--serif)}[hidden]{display:none!important}.wrap{max-width:1320px;width:calc(100% - 88px);margin:auto}.skip{position:fixed;top:-80px;left:20px;z-index:20;padding:10px;background:white}.skip:focus{top:10px}
.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 3.4%;gap:25px;background:#ffffffed;position:relative;z-index:10;border-bottom:1px solid #e4ebef}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand strong{font:700 26px var(--serif);letter-spacing:2px;display:block}.brand small{font-size:12px;letter-spacing:5px;display:block;margin-top:7px;color:#607787}.brand-mark{font:700 45px var(--serif);color:#649279;line-height:.6;text-align:center;display:block;width:65px;transform:skew(-8deg)}.brand-mark span{display:block;color:#1987a8;font:700 55px/.55 Georgia;margin-top:8px}.site-header nav{display:flex;align-items:center;gap:27px;font-size:14px;font-weight:600}.site-header nav a:hover{color:#1684a4}.pill,.reset-filter{background:var(--blue);color:white;border:0;border-radius:30px;padding:11px 24px;font-size:14px;white-space:nowrap}.pill span{margin-left:18px}.menu-toggle{display:none}
.hero{position:relative;min-height:630px;background:#c3e4ef;padding-top:62px;padding-bottom:220px}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-image{object-position:center 52%}.hero-shade{background:linear-gradient(90deg,rgba(236,249,255,.94) 0%,rgba(236,249,255,.68) 33%,rgba(236,249,255,.04) 70%),linear-gradient(0deg,rgba(11,82,117,.25),transparent 40%)}.hero-content{position:relative}.eyebrow{font-size:11px;letter-spacing:3px;font-weight:600;color:#42748b;margin-bottom:17px}.handwriting{font:italic 27px var(--serif);letter-spacing:5px;margin-bottom:13px}.hero h1{font:700 clamp(30px,3.2vw,46px)/1.4 var(--serif);letter-spacing:3px;color:#0e2a41}.hero h1 span{font-size:clamp(52px,5.5vw,78px);letter-spacing:5px}.hero-intro{margin-top:20px;font-size:16px;line-height:1.9;letter-spacing:1px}.hero-note{position:absolute;right:7%;top:100px;color:white;text-shadow:0 2px 12px #244f63;font:italic 28px/1.7 var(--serif);letter-spacing:5px;transform:rotate(-8deg)}.hero-note span{margin-left:28px}.search-panel{position:absolute;bottom:32px;right:max(44px,calc((100% - 1320px)/2));width:min(860px,calc(100% - 88px));padding:20px 22px 16px;background:#fff;border-radius:12px;box-shadow:0 8px 30px #133b4f25}#town-search{display:flex;align-items:stretch;gap:14px}#town-search label{display:block;border:1px solid var(--line);border-radius:5px;flex:1;padding:6px 14px;background:#f9fcfd}#town-search label>span{font-size:12px;display:block;color:var(--muted)}select{width:100%;border:0;background:transparent;color:var(--ink);padding:5px 0;font-weight:600;font-size:16px;cursor:pointer}.search-description{display:flex;flex-direction:column;justify-content:center;padding:0 8px;font-size:14px}.search-description span{font-size:12px;color:var(--muted);margin-top:4px}.search-button{background:linear-gradient(120deg,#337d9b,#07496d);border:0;border-radius:6px;padding:12px 22px;color:white;font-size:18px;font-weight:bold;letter-spacing:2px}.search-button>span:first-child{font-size:28px;line-height:1}.hot-links{display:flex;gap:10px;align-items:center;margin-top:13px;font-size:13px}.hot-links strong{white-space:nowrap;font-size:13px}.hot-links a{background:#edf5f7;color:#285b72;padding:6px 14px;border-radius:4px;flex:1;text-align:center}.hot-links a:hover{background:#d6e9ef}
.preferences-section{background:#fafaf6;padding:32px 0 26px;border-bottom:1px solid #eef0eb}.section-heading{display:flex;align-items:center;gap:22px;margin-bottom:24px}.section-heading h2{font-size:30px;letter-spacing:2px;white-space:nowrap;line-height:1.4}.section-heading p{font-size:14px;color:var(--muted)}.section-heading .eyebrow{font-size:10px;margin-bottom:5px}.preferences{display:grid;grid-template-columns:repeat(8,1fr);gap:20px}.preference{border:0;background:transparent;color:var(--ink);padding:0;display:flex;align-items:center;flex-direction:column}.pref-icon{display:grid;place-items:center;border-radius:50%;width:77px;height:77px;font:48px Georgia;color:#227fad;background:#d9effe;transition:transform .2s}.c1{background:#e2eed7;color:#608e54}.c2{background:#e3f0df;color:#789350}.c3{background:#fde6d2;color:#aa6552}.c4{background:#fadbd5;color:#b56c62}.c5{background:#d4eef4;color:#287d98}.c6{background:#ffecd0;color:#ad794b}.c7{background:#d8ecfa;color:#246989}.preference strong{font:700 19px var(--serif);letter-spacing:1px;margin-top:12px}.preference small{font-size:12px;color:var(--muted);margin-top:5px;white-space:nowrap}.preference:hover .pref-icon,.preference[aria-pressed=true] .pref-icon{transform:translateY(-5px);box-shadow:0 0 0 3px white,0 0 0 5px #68a5b9}
.explore{padding-top:40px;padding-bottom:22px}.reset-filter{margin-left:auto}.filter-status{font-size:13px;color:#637b85;margin-top:-14px;margin-bottom:16px}.regions{display:flex;flex-wrap:wrap;gap:16px;align-items:stretch}.region{display:flex;flex-direction:column;min-width:0;padding:10px;border-radius:8px;background:#e8f2f6;overflow:hidden}.city{flex:1.2 1 0}.coast{flex:3 1 0}.suburb{flex:2 1 0}.valley{flex:1 1 100%}.region>header{min-height:112px;margin:-10px -10px 10px;padding:20px 20px 16px;background:linear-gradient(90deg,#146181ce,#1a638879),url('../towns/xincheng-960.webp') center/cover;color:white}.region>header h3{font-size:24px;letter-spacing:1px}.region>header h3 span{font-size:20px;margin-left:12px;padding-left:12px;border-left:1px solid #ffffff77}.region>header p{font-size:12px;letter-spacing:1px;margin-top:5px;color:#f0fbff}.city>header{background-image:linear-gradient(90deg,#146181ce,#1a638879),url('../towns/hualien-960.webp')}.city>header h3 span{display:block;font-size:16px;margin:2px 0 0;padding-left:0;border-left:0}.suburb{background:#f0f3e2}.suburb>header{background-image:linear-gradient(90deg,#2b7c7fbc,#42653c55),url('../towns/shoufeng-960.webp')}.valley{background:#f5f3df}.valley>header{background-image:linear-gradient(90deg,#526e30cc,#385d3188),url('../towns/fuli-960.webp')}.town-grid{display:grid;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.city .town-grid{grid-template-columns:minmax(0,1fr)}.coast .town-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.valley .town-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.town{display:flex;flex-direction:column;padding:5px;background:white;border-radius:7px;border:1px solid #fff;transition:transform .2s,box-shadow .2s;min-width:0}.town:hover{transform:translateY(-4px);box-shadow:0 7px 18px #20445a22}.town img{height:105px;border-radius:4px}.city .town img,.coast .town img,.suburb .town img{height:190px}.valley .town img{height:120px}.town-copy{padding:7px 4px 2px;display:flex;flex:1;flex-direction:column}.town:target{border-color:#e39f45;box-shadow:0 0 0 3px #e39f45,0 7px 18px #20445a22}.town h4{font-size:19px;letter-spacing:1px;line-height:1.4}.town p{font-size:12px;color:var(--muted);margin:3px 0 9px;line-height:1.7}.town-copy>span{border:1px solid #e6ebed;border-radius:20px;font-size:11px;font-weight:600;padding:3px 6px;text-align:center;margin-top:auto;white-space:nowrap}.town-copy b{font-weight:400;margin-left:8px}.travel-note{font-size:12px;color:#77848b;padding-top:13px}
.transport-section{background:linear-gradient(110deg,#edf6fa,#f8fbfb 60%,#e4f0f5);padding:29px 0}.transport-section .section-heading{margin-bottom:20px}.transport-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:25px}.transport-grid>a{display:flex;gap:13px;align-items:center;border-right:1px solid #cbdde4}.transport-grid>a:last-child{border:0}.transport-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:white;border:1px solid #c7dce5;color:#1a6a8c;font-size:27px;flex-shrink:0}.transport-grid h3{font-size:20px}.transport-grid p{font-size:13px;color:var(--muted)}.transport-grid small{font-size:12px;color:#226584}
.themes-section{padding:34px 0 28px}.themes{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.theme{position:relative;height:164px;padding:0;border:0;border-radius:5px;overflow:hidden;text-align:left;color:white;background:#205974}.theme:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 15%,#082b3bdd 100%)}.theme img{height:100%;transition:transform .3s}.theme:hover img{transform:scale(1.06)}.theme>span{position:absolute;z-index:1;bottom:13px;left:12px;right:12px}.theme strong{font:700 19px var(--serif);display:block;letter-spacing:1px}.theme small{font-size:11px;display:block;margin-top:5px}.theme>b{position:absolute;right:9px;bottom:12px;z-index:1;font-size:17px;font-weight:400}
.faq-section{padding-bottom:38px}.faq-section .section-heading{margin-bottom:17px}.latin{font:24px Georgia;letter-spacing:1px;margin-left:5px}.faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 17px;align-items:start}details{background:#f4f4f0;border-radius:6px;font-size:14px}summary{list-style:none;cursor:pointer;padding:11px 38px 11px 17px;position:relative}summary::-webkit-details-marker{display:none}summary:before{content:"·";font-weight:bold;margin-right:10px}summary:after{content:"+";position:absolute;right:17px;font-size:21px;top:5px}details[open] summary:after{content:"−"}details[open]{background:#edf4f6}details p{padding:0 20px 16px;line-height:1.9;color:#536b78}
footer{color:#ece5d6;background:#0f2f3c;font-size:14px}.ft-top{padding:40px 0 32px;background:radial-gradient(760px 300px at 92% 0%,rgba(25,135,168,.22),transparent 70%)}.ft-top-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:start}.footer-brand strong{font-size:23px;color:#f6f1e6}.footer-brand small{color:#a9bcc4}.footer-brand .brand-mark,.footer-brand .brand-mark span{color:white}.ft-company{margin-top:14px;font-size:13px;letter-spacing:1px;color:#a9bcc4}.ft-contact{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px}.ft-contact li{display:flex;gap:14px;align-items:baseline}.ft-contact span{flex:0 0 5em;font-size:12px;letter-spacing:1px;color:#d9b978}.ft-actions{display:flex;flex-direction:column;align-items:flex-end;gap:26px}.ft-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}.ft-buttons a{padding:8px 26px;border-radius:22px;border:1px solid rgba(217,185,120,.55);background:rgba(217,185,120,.12);color:#f6f1e6;font-size:14px;font-weight:700;letter-spacing:2px}.footer-message{font:italic 27px/1.8 var(--serif);letter-spacing:3px;color:#f6f1e6;margin-right:30px;transform:rotate(-6deg)}.footer-message span{margin-left:20px}.ft-bottom{padding:22px 0 16px;background:#0b232d;color:rgba(255,255,255,.72);font-size:13px;line-height:1.8}.ft-trust{padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.08)}.ft-trust h3{font:700 15px sans-serif;letter-spacing:.5px;color:white;margin-bottom:8px}.ft-trust p{line-height:1.9}.ft-trust strong{color:#d9b978;font-weight:600}.ft-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.ft-badges span{display:inline-flex;align-items:center;gap:5px;padding:3px 12px;border-radius:20px;border:1px solid rgba(217,185,120,.35);background:rgba(217,185,120,.1);color:rgba(255,255,255,.85);font-size:11.5px;line-height:1.6;white-space:nowrap}.ft-badges span:before{content:"✓";color:#d9b978;font-size:10px;font-weight:700}.ft-links{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06);text-align:center}.ft-links-label{font-size:11px;font-weight:700;letter-spacing:2px;color:rgba(217,185,120,.8);margin-bottom:6px}.ft-links-row{display:flex;flex-wrap:wrap;justify-content:center;line-height:1.9}.ft-links-row a{padding:1px 0;color:rgba(255,255,255,.7);font-size:12.5px}.ft-links-row .sep{padding:0 8px;color:rgba(255,255,255,.2);font-size:11px;user-select:none}.ft-copy{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 24px;padding-top:14px;font-size:12px;color:rgba(255,255,255,.58)}.ft-copy p{text-align:center}.ft-copy a{color:rgba(255,255,255,.75)}.ft-webview{line-height:0}.ft-webview img{width:76px;height:41px}.ft-contact a:hover,.ft-links-row a:hover,.ft-copy a:hover{color:#d9b978}.ft-buttons a:hover{background:#d9b978;color:#0f2f3c}
a:hover,summary:hover{color:#197b9c}footer a:hover{color:white}.search-button:hover,.pill:hover,.reset-filter:hover{background:#0a3d58;color:white}
@media(min-width:1600px){.hero{min-height:690px}.hero-content{padding-top:15px}.hero-note{right:14%}}@media(max-width:1200px){.site-header{gap:18px;padding:0 25px}.brand strong{font-size:22px}.site-header nav{gap:18px;font-size:13px}.header-cta{padding:10px 17px}.wrap{width:calc(100% - 50px)}.preferences{gap:10px}.preference small{font-size:11px}.regions{gap:12px}.region>header{padding:18px 12px}.region>header h3{font-size:21px}.region>header h3 span{font-size:18px;margin-left:8px;padding-left:8px}.city>header h3 span{font-size:15px;margin-left:0;padding-left:0}.town-grid{gap:6px}.town h4{font-size:17px}.town p{font-size:11px}.section-heading{gap:18px}.section-heading h2{font-size:27px}.section-heading p{font-size:13px}.theme strong{font-size:17px}.theme small{font-size:10px}.ft-top-grid{gap:25px}}@media(max-width:980px){.header-cta{display:none}.site-header nav{gap:20px}.hero h1{font-size:33px}.hero-note{font-size:24px;right:5%;top:155px}.preferences{grid-template-columns:repeat(4,1fr);gap:23px}.regions .region{flex:1 1 100%}.region>header{min-height:auto;padding:20px}.city>header h3 span{display:inline;font-size:20px;margin:0 0 0 12px;padding-left:12px;border-left:1px solid #ffffff77}.valley .town-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.city .town{display:grid;grid-template-columns:1fr 1fr}.town img,.city .town img,.coast .town img,.suburb .town img{height:170px}.valley .town img{height:140px}.town p{font-size:13px}.town h4{font-size:21px}.town-copy{padding:9px}.town-copy>span{font-size:12px}.section-heading{flex-wrap:wrap;gap:10px 18px}.section-heading p{max-width:100%}.transport-grid{gap:20px;grid-template-columns:repeat(2,1fr)}.transport-grid>a:nth-child(2){border:0}.themes{grid-template-columns:repeat(3,1fr)}.theme strong{font-size:20px}.theme small{font-size:12px}.ft-top-grid{grid-template-columns:1fr;gap:22px}.ft-actions{align-items:flex-start}.ft-buttons{justify-content:flex-start}.footer-message{display:none}.search-description{display:none}.search-panel{right:25px;width:calc(100% - 50px)}.search-panel label{max-width:none}}@media(max-width:640px){html{scroll-padding-top:20px}.wrap{width:calc(100% - 36px)}.site-header{height:78px;padding:0 18px}.brand{gap:7px}.brand strong{font-size:21px;letter-spacing:1px}.brand small{font-size:10px;letter-spacing:3px;margin-top:5px}.brand-mark{font-size:36px;width:46px}.brand-mark span{font-size:43px}.menu-toggle{display:block;border:1px solid #e0e9ee;background:white;border-radius:5px;color:var(--blue);padding:4px 11px;font-size:23px}.site-header nav{display:none;position:absolute;top:78px;left:0;right:0;padding:15px 23px;background:white;box-shadow:0 12px 20px #183c4b20;font-size:16px}.site-header nav.is-open{display:flex;align-items:stretch;flex-direction:column;gap:0}.site-header nav a{padding:10px 0;border-bottom:1px solid #edf1f3}.hero{min-height:655px;padding-top:36px;padding-bottom:245px}.hero-shade{background:linear-gradient(90deg,#ecf9ffee,#edf9ff96 72%,#edf9ff15),linear-gradient(0deg,#0d668d44,transparent)}.hero-image{object-position:65% center}.eyebrow{font-size:9px;letter-spacing:2px}.handwriting{font-size:21px;letter-spacing:3px;margin-top:22px}.hero h1{font-size:25px;letter-spacing:1px;line-height:1.6}.hero h1 span{font-size:43px;letter-spacing:1px}.hero-intro{font-size:14px;letter-spacing:0;margin-top:17px}.hero-note{display:none}.search-panel{bottom:20px;right:18px;width:calc(100% - 36px);padding:14px;border-radius:9px}#town-search{flex-wrap:wrap;gap:9px}#town-search label{width:100%;flex:auto}.search-button{width:100%;padding:7px 14px;font-size:16px}.hot-links{gap:6px;flex-wrap:wrap;margin-top:10px}.hot-links strong{width:100%;font-size:11px}.hot-links a{font-size:11px;padding:5px 6px;flex:auto}.preferences-section{padding:26px 0}.section-heading{display:block;margin-bottom:22px}.section-heading h2{font-size:24px;letter-spacing:1px;white-space:normal}.section-heading p{font-size:12px;margin-top:7px}.preferences{gap:20px 6px}.pref-icon{height:56px;width:56px;font-size:36px}.preference strong{font-size:15px;letter-spacing:0;margin-top:9px}.preference small{font-size:10px;white-space:normal;line-height:1.5}.explore{padding-top:28px}.reset-filter{font-size:12px;padding:8px 15px;margin-top:15px}.filter-status{font-size:12px}.town-grid{gap:8px}.coast .town-grid,.valley .town-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.coast .town:first-child,.valley .town:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.town img,.coast .town img,.suburb .town img,.valley .town img{height:120px}.city .town img,.coast .town:first-child img,.valley .town:first-child img{height:155px}.town h4{font-size:19px}.town p{font-size:12px}.town-copy{padding:8px 4px}.town-copy>span{font-size:12px}.region>header h3{font-size:23px}.region>header h3 span{font-size:19px}.travel-note{font-size:11px}.transport-section{padding:25px 0}.transport-grid{gap:22px 10px}.transport-grid>a{border:0;gap:8px}.transport-icon{width:35px;height:35px;font-size:20px}.transport-grid h3{font-size:17px}.transport-grid p{font-size:11px}.transport-grid small{font-size:10px}.themes-section{padding-top:27px}.themes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme{height:150px}.theme strong{font-size:18px}.theme small{font-size:10px}.faq-grid{grid-template-columns:1fr}.faq-section{padding-bottom:28px}.ft-top{padding:28px 0 24px}.ft-buttons{width:100%}.ft-buttons a{flex:1;padding:8px 10px;text-align:center}.ft-trust h3{text-align:center}.ft-badges{justify-content:center}.footer-brand strong{font-size:22px}.ft-copy{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
