:root{--ink:#263b33;--green:#194e41;--muted:#68736b;--cream:#f8f9f4;--white:#fff;--line:#e2e7df;--pale:#ecf2e9;--gold:#edc562;--radius:12px;--sans:'Avenir Next','PingFang TC','Noto Sans TC','Microsoft JhengHei',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a,select,summary{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b38120;outline-offset:4px}button:disabled{cursor:default}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;z-index:20;top:-100px;left:16px;background:var(--green);color:#fff;padding:12px}.skip-link:focus{top:16px}.site-header{background:rgba(248,249,244,.96);border-bottom:1px solid var(--line)}.header-inner{max-width:1360px;padding:0 48px;margin:auto;display:flex;align-items:center;justify-content:space-between;height:94px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{background:var(--green);color:var(--gold);width:44px;height:44px;border-radius:12px;display:grid;place-items:center;transform:rotate(-5deg)}.brand-mark .icon{width:28px;height:28px;transform:rotate(5deg)}.brand strong{font-size:23px;letter-spacing:.7px;line-height:1.2;display:block;font-weight:800}.brand-dot{color:#ac8a37}.brand small{font-size:11px;letter-spacing:3px;color:var(--muted);display:block;margin-top:4px}.header-inner nav{display:flex;gap:36px;height:100%;align-items:stretch;margin-left:20px}.header-inner nav a{display:flex;align-items:center;font-size:13px;color:#68756c;position:relative}.header-inner nav a:hover{color:var(--green)}.header-inner nav .nav-active{color:var(--green);font-weight:700}.nav-active:after{position:absolute;content:'';height:3px;background:var(--green);bottom:0;width:100%;border-radius:3px 3px 0 0}.source-link{display:flex;gap:10px;align-items:center;border:1px solid #d4ded3;border-radius:7px;padding:9px 13px;font-size:12px;background:rgba(255,255,255,.4)}.source-link .icon{width:14px;height:14px}.source-link:hover{background:var(--pale)}.page-wrap{max-width:1360px;margin:auto;padding:0 48px}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;min-height:346px;align-items:center;padding:36px 0 24px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;margin:0 0 14px;color:#627465}.hero-copy>.eyebrow{display:flex;align-items:center;gap:9px;font-size:11px}.hero-copy>.eyebrow>span{width:6px;height:6px;border-radius:50%;background:#99a778}.hero h1{font-weight:650;font-size:45px;line-height:1.42;letter-spacing:1.5px;margin:0 0 16px;white-space:nowrap}.hero h1 span{color:var(--green)}.hero-description{font-size:13px;line-height:1.95;color:#6b7169;margin:0 0 23px;letter-spacing:.5px}.hero-facts{display:flex;align-items:center;gap:17px;font-size:11px;color:#647367}.hero-facts>span{display:flex;align-items:center;gap:6px}.hero-facts .icon{width:14px;height:14px}.hero-facts i{height:12px;width:1px;background:#d4dccf}.hero-map{height:300px;position:relative;display:flex;justify-content:center;align-items:center;background-image:radial-gradient(#c9d3c7 1px,transparent 1px);background-size:18px 18px;mask-image:linear-gradient(to right,transparent,#000 16%,#000 88%,transparent)}.hero-map img{width:100%;height:100%;object-fit:contain}.map-caption{position:absolute;top:6px;left:16px;font-size:9px;letter-spacing:2px;color:#697366}.map-note{position:absolute;bottom:8px;right:30px;font-size:11px;letter-spacing:2px;color:#798774}.map-note>span{display:inline-block;background:#d7a95e;width:5px;height:5px;border-radius:50%;margin-right:8px}.source-note{display:flex;align-items:center;gap:11px;padding:12px 17px;background:#edf2e9;border:1px solid #e2e9da;border-radius:8px;margin:4px 0 38px;font-size:11px;color:#616f5b}.source-icon{width:19px;height:19px;display:grid;place-items:center;background:#dce6d4;border-radius:50%;color:#5c7455}.source-icon .icon{width:13px;height:13px}.source-note p{margin:0;flex:1}.source-note p>span{font-weight:600;color:#56714f;margin:0 3px}.source-note a{font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:10px}.source-note a .icon{width:14px;height:14px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:30px;align-items:start}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:0 0 21px}.section-heading .eyebrow{font-size:10px;letter-spacing:1.8px;margin-bottom:5px}.section-heading h2{font-size:24px;letter-spacing:.5px;margin:0;font-weight:650}.currency-note{font-size:11px;color:#697366;padding-bottom:3px}.search-wrap{background:var(--white);border:1px solid #d9e0d5;border-radius:8px;display:flex;align-items:center;padding:0 16px;height:49px;gap:11px;transition:border-color .15s}.search-wrap:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #194e4110}.search-wrap>.icon{width:19px;height:19px;color:#80907f}.search-wrap input{border:none;outline:none;min-width:0;width:100%;background:transparent;font-size:12px;height:100%}.search-wrap input::placeholder{color:#98a092}.search-wrap kbd{color:#8e988a;font-size:12px;background:#f5f7f1;border:1px solid #e3e8de;border-radius:4px;padding:0 6px}.region-filters{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 22px}.region-filters button{border-radius:5px;padding:5px 9px;color:#697262;font-size:11px;white-space:nowrap;transition:background .15s}.region-filters button:hover{background:#e9eee5}.region-filters button.active{background:var(--green);color:#fff}.list-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.view-tabs{display:flex;gap:20px}.view-tabs button{padding:0 0 12px;font-size:12px;position:relative;color:#697266;white-space:nowrap}.view-tabs button.active{color:var(--green);font-weight:600}.view-tabs button.active:after{content:'';height:2px;background:var(--green);position:absolute;left:0;right:0;bottom:-1px}.view-tabs button span{background:#e8eee3;border-radius:4px;font-size:10px;padding:1px 5px;margin-left:4px;font-weight:600}.sort-wrap select{font-size:11px;color:#6a7267;background:transparent;border:none;padding:0 20px 10px 0;max-width:160px}.fare-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left}.fare-table th{font-weight:400;font-size:11px;color:#6b7365;padding:14px 10px;white-space:nowrap;border-bottom:1px solid var(--line)}.fare-table th:first-child{width:35%;padding-left:3px}.fare-table th:nth-child(2){width:19%}.fare-table th:nth-child(3){width:21%}.fare-table th:nth-child(4){width:20%}.fare-table th:last-child{width:5%;padding:0}.estimate-th span{font-size:11px;cursor:help}.fare-table td{height:85px;padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}.fare-table td:first-child{padding-left:2px}.fare-table td:last-child{padding:0}.fare-table tr:hover td{background:#f0f4ec}.city-cell{display:flex;align-items:center;gap:12px;min-width:0}.city-stamp{width:38px;height:42px;flex-shrink:0;border-radius:6px;display:grid;place-items:center;font-family:'Hiragino Mincho ProN','Songti TC',serif;font-size:20px;color:#637862;background:#e8eee1;position:relative}.city-stamp:after{content:'';border:1px solid currentColor;opacity:.14;border-radius:3px;position:absolute;inset:4px}.stamp-1{color:#9a7a51;background:#f1ebdd}.stamp-2{color:#947879;background:#efe5e2}.stamp-3{color:#668787;background:#e5eeeb}.city-name{display:flex;align-items:center;gap:7px;text-align:left;font-size:14px;font-weight:650;padding:0}.city-name:hover{text-decoration:underline;text-underline-offset:4px}.city-english{font-size:9px;color:#667060;letter-spacing:.8px;font-weight:500;margin-top:1px}.city-scope{font-size:10px;color:#696e63;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}.fee-value{font-size:17px;letter-spacing:.1px;font-weight:600;line-height:1.4}.fee-value .yen{font-size:11px;font-weight:400;margin-right:2px;color:#778470}.fee-sub{display:block;font-size:10px;color:#696e64;margin-top:4px;white-space:nowrap}.extra-value{font-size:12px;font-weight:500}.extra-value>small{font-size:11px;font-weight:400;color:#8b9584}.estimate-fee{font-size:16px;color:var(--green);font-weight:600;white-space:nowrap}.estimate-fee>.yen{font-size:11px;font-weight:400}.row-arrow{height:42px;width:28px;display:grid;place-items:center;color:#899782}.row-arrow .icon{width:13px;height:13px}.row-arrow:hover{color:var(--green)}.list-footer{display:flex;justify-content:space-between;color:#6b7264;font-size:10px;margin-top:14px;gap:15px}.small-note{display:flex;align-items:flex-start;gap:8px;margin-top:19px;color:#6c7266;font-size:11px;line-height:1.8}.small-note .icon{width:14px;height:14px;margin-top:2px}.small-note p{margin:0}.calculator{border:1px solid #dce3d4;border-radius:var(--radius);background:var(--white);overflow:hidden;box-shadow:0 5px 20px #354c3210}.calculator-header{padding:22px 22px 21px;display:flex;align-items:center;justify-content:space-between;background:var(--green);color:#fff}.calculator-header .eyebrow{font-size:9px;letter-spacing:1.6px;color:#b0c6b0;margin-bottom:7px}.calculator-header h2{font-size:19px;margin:0;letter-spacing:.5px;font-weight:500}.calc-car{color:var(--gold);border:1px solid #618272;width:36px;height:36px;border-radius:8px;display:grid;place-items:center}.calc-car .icon{width:23px;height:23px}.calculator-body{padding:22px}.field-label{display:block;font-size:11px;font-weight:600;margin-bottom:8px}.select-city{position:relative}.select-city>.icon{position:absolute;top:12px;left:12px;width:16px;height:16px;color:#7c8d74;pointer-events:none}.select-city select{height:42px;width:100%;border:1px solid #dde3d6;border-radius:6px;background:#fff;padding:0 30px 0 37px;font-size:12px}.field-hint{font-size:10px;color:#6f756b;margin:7px 0 22px}.distance-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.distance-label>.field-label{margin:0}.distance-value{border:1px solid #dbe2d3;border-radius:5px;padding:3px 8px;display:flex;align-items:center;gap:5px}.distance-value input{width:43px;text-align:right;border:0;background:transparent;font-size:15px;font-weight:500;padding:0;appearance:textfield;-moz-appearance:textfield}.distance-value input::-webkit-inner-spin-button{appearance:none}.distance-value span{font-size:11px;color:#6e7667}.range{width:100%;height:4px;margin:0;appearance:none;background:linear-gradient(to right,var(--green) 16.4%,#e6ebdf 16.4%);border-radius:5px;cursor:pointer;display:block}.range::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;background:var(--green);border:3px solid #fff;box-shadow:0 0 0 1px var(--green)}.range::-moz-range-thumb{width:9px;height:9px;border-radius:50%;background:var(--green);border:3px solid #fff;box-shadow:0 0 0 1px var(--green)}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:#707669;margin-top:9px}.day-badge{display:flex;align-items:center;gap:7px;margin:20px 0;padding:10px 11px;border-radius:6px;background:#f5f6ed;color:#7a6e43;font-size:11px}.day-badge .icon{width:15px;height:15px}.day-badge small{margin-left:auto;font-size:10px;color:#766d4e}.estimate-result{border-top:1px dashed #d7dfce;padding-top:18px}.estimate-label{font-size:11px;color:#69785d;display:flex;align-items:center;justify-content:space-between}.estimate-label span{font-size:10px;letter-spacing:1px;color:#6e7666}.estimate-total{font-size:43px;line-height:1.3;letter-spacing:-1.5px;font-weight:600;margin:9px 0;color:var(--green);font-variant-numeric:tabular-nums}.estimate-total span{font-size:23px;font-weight:400;letter-spacing:0;margin-right:4px}.estimate-breakdown{font-size:10px;color:#6d7765;margin:0;min-height:17px}.split-row{display:flex;gap:6px;align-items:center;margin-top:15px;padding:12px 0 16px;font-size:11px;border-top:1px solid #eef1e7}.split-row label{display:flex;align-items:center;gap:5px;white-space:nowrap}.split-row .icon{width:14px;height:14px;color:#7c8b71}.split-row select{font-size:11px;border:0;background:#f1f4eb;border-radius:4px;padding:4px}.split-row>span{margin-left:auto;color:#68795c;font-size:11px;white-space:nowrap}.primary-button{width:100%;background:var(--green);color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;font-size:11px;transition:background .15s}.primary-button:hover{background:#28664f}.primary-button .icon{width:16px;height:16px}.calculator-disclaimer{font-size:10px;line-height:1.9;color:#70766a;margin:13px 0 0}.calculator-bottom{background:#f3f5ed;padding:14px 22px;display:flex;gap:11px;align-items:center;border-top:1px solid #e8ecdf}.calculator-bottom>span{font-size:10px;color:#776c4f;writing-mode:vertical-rl;white-space:nowrap;letter-spacing:1px}.calculator-bottom p{font-size:11px;color:#657159;margin:0}.travel-guide{margin-top:52px;padding:33px 0;border-top:1px solid #dbe2d4;display:grid;grid-template-columns:1fr 1.4fr;gap:45px}.guide-heading .eyebrow{font-size:10px;margin-bottom:8px}.guide-heading h2{font-size:21px;font-weight:600;margin:0}.guide-heading>p:last-child{font-size:11px;color:#6b7163;margin:10px 0}.guide-items details{border-bottom:1px solid var(--line)}.guide-items summary{list-style:none;display:flex;align-items:center;gap:18px;cursor:pointer;padding:14px 0;font-size:12px}.guide-items summary::-webkit-details-marker{display:none}.guide-number{font-size:11px;color:#69735c}.expand{margin-left:auto;color:#9da88d;font-size:20px;font-weight:300;line-height:1}.guide-items details[open] .expand{transform:rotate(45deg)}.guide-items details p{font-size:11px;line-height:1.9;color:#7a8870;margin:0 15px 17px 32px}.data-note{background:#edf1e7;border:1px solid #e4eadb;border-radius:8px;display:flex;gap:40px;padding:21px 25px;align-items:center;margin:0 0 38px}.data-note h2{font-size:13px;font-weight:600;margin:0 0 7px}.data-note p{font-size:11px;color:#626e58;line-height:1.8;margin:0;max-width:790px}.data-note>a{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:11px}.data-note .icon{width:14px;height:14px}.site-footer{max-width:1360px;margin:auto;border-top:1px solid var(--line);padding:25px 48px 32px;display:flex;justify-content:space-between;align-items:center;color:#6a7360;font-size:10px}.site-footer>div{display:flex;align-items:center;gap:20px}.footer-brand{font-weight:700;font-size:17px;color:var(--green);letter-spacing:.5px}.site-footer>span{letter-spacing:1.4px;font-size:9px}.empty-state{padding:65px 15px;text-align:center;color:#8b9780}.empty-state>.icon{width:32px;height:32px}.empty-state h3{font-size:16px;color:var(--ink);margin:12px 0 4px}.empty-state p{font-size:12px}.text-button{font-size:12px;color:var(--green);padding:8px;text-decoration:underline;text-underline-offset:5px}.directory-item{padding:17px 5px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.directory-item h3{font-size:13px;font-weight:600;margin:0 0 3px}.directory-item p{font-size:11px;color:#8a957f;margin:0}.directory-item>a{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--green);flex-shrink:0;border:1px solid #d9e2d1;border-radius:5px;padding:6px 10px}.directory-item .icon{width:12px;height:12px}.directory-item>a:hover{background:var(--pale)}[hidden]{display:none!important}dialog{padding:28px;border:1px solid var(--line);border-radius:16px;background:var(--cream);max-width:540px;width:calc(100% - 32px);max-height:85vh;color:var(--ink);box-shadow:0 20px 80px #18312730}dialog::backdrop{background:#142c2470;backdrop-filter:blur(4px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dialog-top .eyebrow{margin:0}.icon-button{border:1px solid var(--line);border-radius:50%;width:32px;height:32px;display:grid;place-items:center}.icon-button .icon{width:16px;height:16px}.dialog-title{font-size:30px;font-weight:600;margin:6px 0}.dialog-scope{font-size:12px;color:#7f8b75;margin:0 0 22px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.detail-stat{background:#edf2e7;border:1px solid #e0e7d8;padding:15px;border-radius:8px}.detail-stat>span{font-size:11px;color:#7f8f71}.detail-stat strong{font-size:27px;color:var(--green);display:block;font-weight:550;margin-top:3px}.detail-stat small{font-size:11px;color:#849578}.detail-note{font-size:11px;color:#7a8870;line-height:1.9;margin:15px 0}.detail-calculation{border:1px dashed #d4dfc8;border-radius:8px;padding:16px;font-size:12px;line-height:1.8}.detail-calculation strong{color:var(--green);font-size:17px}.dialog-links{display:flex;gap:10px;margin-top:20px}.dialog-links button,.dialog-links a{flex:1;padding:10px 12px;border-radius:6px;border:1px solid #d3dfc9;text-align:center;font-size:12px}.dialog-links button{background:var(--green);color:#fff;border-color:var(--green)}
@media(min-width:1500px){.page-wrap,.header-inner,.site-footer{max-width:1430px}.hero{min-height:365px}.workspace{grid-template-columns:minmax(0,1fr) 355px;gap:40px}.hero h1{font-size:49px}.calculator-body{padding:25px}}
@media(max-width:1100px){.page-wrap,.header-inner,.site-footer{padding-left:32px;padding-right:32px}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:22px}.hero h1{font-size:36px}.hero-map{height:275px}.hero{min-height:320px}.header-inner nav{gap:26px}.city-cell{gap:8px}.city-stamp{width:31px;height:36px;font-size:17px}.city-name{font-size:12px}.city-english{font-size:8px}.fee-value{font-size:15px}.extra-value{font-size:11px}.fare-table th,.fare-table td{padding-left:6px;padding-right:6px}.estimate-fee{font-size:14px}.calculator-body{padding:20px}.calculator-header{padding:20px}.calculator-header h2{font-size:17px}.calculator-bottom{padding:14px 20px}.source-note p{font-size:11px}.region-filters{gap:3px}.region-filters button{padding:5px 7px;font-size:11px}}
@media(max-width:900px){.source-link{font-size:0;padding:10px}.source-link .icon{width:18px;height:18px}.header-inner{height:82px}.header-inner nav{margin:0;gap:24px}.hero h1{font-size:31px}.hero-description{font-size:12px}.hero-map{height:260px}.workspace{grid-template-columns:minmax(0,1fr) 285px;gap:18px}.currency-note{display:none}.section-heading h2{font-size:22px}.fare-table th:first-child{width:39%}.fare-table th:nth-child(2){width:28%}.fare-table th:nth-child(3){width:28%}.fare-table th:nth-child(4),.fare-table td:nth-child(4){display:none}.sort-wrap select{max-width:115px;font-size:10px}.view-tabs{gap:12px}.view-tabs button{font-size:11px}.city-stamp{display:none}.city-name{font-size:14px}.city-scope{max-width:120px}.source-note{margin-bottom:28px}.travel-guide{gap:25px;grid-template-columns:1fr 1.2fr}.guide-heading h2{font-size:19px}.data-note{gap:20px}.data-note>a{font-size:10px}}
@media(max-width:740px){.page-wrap,.header-inner,.site-footer{padding-left:22px;padding-right:22px}.header-inner{height:77px}.brand strong{font-size:19px}.brand-mark{width:38px;height:38px}.brand small{font-size:9px;letter-spacing:2px}.header-inner nav{gap:18px}.header-inner nav a{font-size:11px}.header-inner nav a:last-child{display:none}.source-link{display:none}.hero{grid-template-columns:1fr .9fr;min-height:290px;padding:30px 0 18px;gap:0}.hero h1{font-size:29px;letter-spacing:.2px}.hero-description{font-size:11px;margin-bottom:18px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:1.2px}.hero-facts{font-size:10px;gap:8px}.hero-facts .icon{width:12px;height:12px}.hero-map{height:245px}.map-caption{display:none}.map-note{font-size:9px;right:5px;letter-spacing:1px}.source-note{padding:11px 13px;margin-top:0;gap:8px}.source-note a{display:none}.source-note p{font-size:10px}.workspace{grid-template-columns:1fr;gap:30px}.currency-note{display:block;font-size:11px}.region-filters{gap:5px;margin-bottom:20px}.region-filters button{font-size:11px;padding:5px 8px}.fare-table th:first-child{width:34%}.fare-table th:nth-child(2){width:20%}.fare-table th:nth-child(3){width:22%}.fare-table th:nth-child(4){width:19%}.fare-table th:nth-child(4),.fare-table td:nth-child(4){display:table-cell}.city-stamp{display:grid;width:34px;height:39px}.city-cell{gap:11px}.city-name{font-size:14px}.city-scope{max-width:150px}.city-english{font-size:9px}.view-tabs button{font-size:12px}.sort-wrap select{max-width:180px;font-size:11px}.view-tabs{gap:24px}.fee-value{font-size:17px}.extra-value{font-size:12px}.estimate-fee{font-size:16px}.calculator-header h2{font-size:20px}.calculator-header .eyebrow{font-size:10px}.calculator-body{padding:23px}.field-label,.estimate-label{font-size:12px}.field-hint,.range-labels,.estimate-breakdown{font-size:11px}.select-city select{height:45px;font-size:13px}.calculator-disclaimer{font-size:11px}.day-badge{font-size:11px}.day-badge small{font-size:11px}.primary-button{font-size:12px}.split-row{font-size:11px}.split-row select,.split-row>span{font-size:11px}.calculator-bottom p{font-size:11px}.calculator-bottom>span{writing-mode:initial;font-size:11px}.travel-guide{margin-top:35px;grid-template-columns:1fr;gap:12px;padding:28px 0}.guide-heading h2{font-size:21px}.data-note{display:block;padding:20px}.data-note>a{margin-top:14px;font-size:11px}.site-footer{display:block;padding-top:20px;padding-bottom:25px}.site-footer>span{display:block;margin-top:12px}.site-footer>div{gap:15px}}
@media(max-width:480px){html{scroll-padding-top:20px}.page-wrap,.header-inner,.site-footer{padding-left:18px;padding-right:18px}.header-inner nav{gap:15px}.brand{gap:9px}.brand strong{font-size:18px}.brand small{font-size:9px}.brand-mark{width:34px;height:36px;border-radius:9px}.brand-mark .icon{width:24px;height:24px}.hero{position:relative;display:block;min-height:315px;padding-top:30px;overflow:hidden}.hero-copy{position:relative;z-index:1;pointer-events:none}.hero h1{font-size:32px;letter-spacing:.5px;margin-bottom:15px}.hero-description{font-size:11px;line-height:1.9;max-width:250px}.hero-facts{font-size:10px;gap:11px;margin-top:20px}.hero-map{position:absolute;right:-83px;top:42px;width:250px;height:250px;opacity:.18;z-index:0;mask-image:linear-gradient(to right,transparent,#000 28%)}.map-note{display:none}.source-note{margin-bottom:26px}.source-note p{line-height:1.9}.source-icon{flex-shrink:0}.section-heading{margin-bottom:18px}.section-heading h2{font-size:23px}.section-heading .eyebrow{font-size:9px}.currency-note{font-size:9px;max-width:80px;text-align:right}.search-wrap{height:47px;padding:0 12px}.search-wrap input{font-size:11px}.region-filters{gap:4px;margin:12px 0 22px}.region-filters button{font-size:11px;padding:4px 7px}.view-tabs{gap:15px}.view-tabs button{font-size:11px}.sort-wrap select{max-width:124px;font-size:10px;padding-right:0}.fare-table th{font-size:10px;padding:13px 4px}.fare-table td{padding:10px 4px;height:82px}.fare-table th:first-child{width:38%}.fare-table th:nth-child(2){width:25%}.fare-table th:nth-child(3){width:30%}.fare-table th:last-child{width:7%}.fare-table th:nth-child(4),.fare-table td:nth-child(4){display:none}.city-stamp{display:none}.city-name{font-size:14px}.city-scope{max-width:115px;font-size:9px}.city-english{font-size:8px}.fee-value{font-size:17px}.fee-sub{font-size:10px}.extra-value{font-size:12px}.extra-value>small{font-size:10px}.list-footer{font-size:9px}.small-note{font-size:10px;margin-top:15px}.directory-item>a{font-size:11px;padding:6px 8px}.directory-item h3{font-size:12px}.directory-item p{font-size:10px}.travel-guide .eyebrow{font-size:9px}.data-note p{font-size:10px}.site-footer>div>span{font-size:9px}.footer-brand{font-size:16px}.dialog-links{flex-direction:column}.detail-grid{gap:8px}.detail-stat{padding:13px}.detail-stat strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.pagination{display:flex;align-items:center;gap:9px;font-size:11px;color:#66735e}.pagination button{width:28px;height:28px;border:1px solid #d8e0d0;border-radius:5px;display:grid;place-items:center;font-size:19px;line-height:1;background:#fff;color:var(--green)}.pagination button:hover:not(:disabled){background:var(--pale)}.pagination button:disabled{opacity:.35}.list-footer{align-items:center}.list-footer>span:last-child{font-size:10px}.city-english{max-width:180px}.source-note p{line-height:1.8}@media(max-width:480px){.list-footer>span:last-child{display:none}.pagination{margin-left:auto}.city-english{max-width:115px;font-size:8px}.list-footer{min-height:30px}.site-footer>div>span{font-size:9px}}
/* Fare-area hierarchy: all regions are explicit and selectable. */
.prefecture-control{display:flex;gap:18px;align-items:center;margin:0 0 22px;padding:14px;background:#edf2e9;border:1px solid #dde6d7;border-radius:8px}.prefecture-control label{font-size:11px;font-weight:600;display:flex;align-items:center;gap:12px;flex-shrink:0}.prefecture-control select{height:34px;min-width:140px;padding:0 25px 0 10px;border:1px solid #d2dccb;border-radius:5px;background:#fff;font-size:12px}.prefecture-control p{margin:0;font-size:11px;line-height:1.8;color:#5e7255}.fare-table th:first-child{width:42%}.fare-table th:nth-child(2){width:18%}.fare-table th:nth-child(3){width:19%}.fare-table th:nth-child(4){width:17%}.fare-table th:last-child{width:4%}.fare-table td{height:112px}.area-identity{min-width:0}.city-name{font-size:13px;line-height:1.65;white-space:normal}.area-prefecture{font-size:10px;color:#5f7156;line-height:1.5;margin-top:2px}.scope-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:4px 0 0;font-size:10px;line-height:1.7;color:#68745e;overflow-wrap:anywhere}.city-stamp{align-self:flex-start;margin-top:4px}.selected-area td{background:#ecf3e8}.selected-label{font-size:9px;color:#194e41;background:#dce9d4;display:inline-block;padding:0 5px;border-radius:3px;margin-top:5px}.plain-select{height:42px;width:100%;border:1px solid #dde3d6;border-radius:6px;background:#fff;padding:0 12px;font-size:12px;margin-bottom:18px}.select-city select{font-size:11px;padding-left:30px}.select-city select:disabled{background:#f4f6f0;color:#68745e}.field-hint{line-height:1.8;margin-bottom:18px}.field-hint.has-selection{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:4px}.scope-button{font-size:10px;color:#194e41;padding:4px 0 0;text-decoration:underline;text-underline-offset:3px;margin-bottom:18px}.scope-detail{background:#eaf1e4;border:1px solid #d9e4d0;border-radius:7px;padding:16px;line-height:1.9;margin-bottom:18px}.scope-detail>strong{font-size:12px;color:#194e41}.scope-detail>p{font-size:12px;white-space:pre-line;overflow-wrap:anywhere;margin:6px 0;color:#52644a}.dialog-title{font-size:24px}.source-detail{border-top:1px solid #dce5d4;padding-top:12px}.coverage-item{border-bottom:1px solid #dce3d3;padding:19px 2px}.coverage-heading{display:flex;align-items:baseline;gap:15px;justify-content:space-between}.coverage-heading h3{font-size:14px;margin:0;line-height:1.7;font-weight:600}.coverage-heading>span{font-size:10px;color:#64765a;flex-shrink:0}.coverage-item>p{font-size:12px;line-height:1.9;color:#65765b;white-space:pre-line;overflow-wrap:anywhere;margin:10px 0}.coverage-actions{display:flex;gap:22px;font-size:11px;color:#194e41}.coverage-actions button,.coverage-actions a{display:flex;gap:7px;align-items:center;padding:4px 0}.coverage-actions .icon{width:13px;height:13px}.primary-button:disabled{background:#6b7d64;cursor:not-allowed}.hero-facts{flex-wrap:wrap}.calculator-disclaimer{line-height:1.9}
@media(max-width:1100px){.city-stamp{display:none}.prefecture-control{display:block}.prefecture-control p{margin-top:9px}.city-name{font-size:12px}.prefecture-control label{justify-content:space-between}.prefecture-control select{min-width:170px}}
@media(max-width:900px) and (min-width:741px){.fare-table th:first-child{width:46%}.fare-table th:nth-child(2){width:25%}.fare-table th:nth-child(3){width:25%}.coverage-heading{display:block}.coverage-heading>span{display:block;margin-top:4px}}
@media(max-width:740px){.prefecture-control{display:flex}.prefecture-control label{display:block}.prefecture-control select{display:block;min-width:150px;margin-top:5px}.prefecture-control p{margin:0}.fare-table th:first-child{width:42%}.fare-table th:nth-child(2){width:18%}.fare-table th:nth-child(3){width:19%}.fare-table th:nth-child(4){width:17%}.city-name{font-size:13px}.scope-preview{font-size:11px}.plain-select{font-size:13px}.field-hint,.scope-button{font-size:11px}.select-city select{font-size:12px}.coverage-heading{display:block}.coverage-heading>span{display:block;margin-top:4px}}
@media(max-width:480px){.prefecture-control{gap:12px;padding:12px}.prefecture-control select{min-width:136px;max-width:145px}.prefecture-control p{font-size:10px}.fare-table th:first-child{width:48%}.fare-table th:nth-child(2){width:23%}.fare-table th:nth-child(3){width:24%}.fare-table th:last-child{width:5%}.fare-table td{height:119px}.city-name{font-size:12px}.scope-preview{font-size:10px}.area-prefecture{font-size:9px}.fee-value{font-size:16px}.extra-value{font-size:11px}.fee-sub{font-size:9px}.fare-table th{font-size:9px}.row-arrow{width:20px}.view-tabs{gap:13px}.view-tabs button{font-size:11px}.sort-wrap select{max-width:118px}.coverage-actions{gap:15px;font-size:10px}.hero-facts{gap:7px;font-size:8px}.hero-facts i{display:none}.hero h1{font-size:30px}.section-heading h2{font-size:22px}}
.scope-detail .scope-caution{font-weight:600;border-top:1px dashed #bacbad;padding-top:10px;margin-top:10px}.scope-source{display:inline-block;color:#194e41;font-size:11px;text-decoration:underline;text-underline-offset:3px;margin-top:8px}
.scope-preview{color:#5c6c52}

/* Comfortable reading sizes across desktop, tablet and phone. */
:root {
  --text-body: 1rem;
  --text-support: .875rem;
  --text-label: .9375rem;
}
body { font-size: var(--text-body); line-height: 1.75; }
.page-wrap, .header-inner, .site-footer { max-width: 1480px; padding-left: 40px; padding-right: 40px; }
.header-inner { min-height: 100px; height: auto; }
.header-inner nav { min-height: 100px; }
.header-inner nav a, .source-link { font-size: 1rem; }
.brand strong { font-size: 26px; }
.brand small { font-size: 12px; letter-spacing: 2px; }
.hero { padding-top: 40px; padding-bottom: 32px; }
.hero h1 { font-size: clamp(28px, 4vw, 52px); line-height: 1.5; white-space: normal; }
.hero-description { font-size: 18px; line-height: 1.9; max-width: none; }
.hero-facts, .source-note, .source-note p, .source-note a { font-size: var(--text-support); }
.hero-facts { row-gap: 10px; }
.hero-facts .icon { width: 18px; height: 18px; }
.eyebrow, .hero-copy > .eyebrow, .section-heading .eyebrow,
.calculator-header .eyebrow, .guide-heading .eyebrow, .travel-guide .eyebrow { font-size: 12px; }
.map-caption, .map-note { font-size: 12px; }
.source-note { padding: 16px 20px; }
.workspace { grid-template-columns: minmax(0, 1fr) 390px; gap: 32px; }
.section-heading { align-items: baseline; flex-wrap: wrap; gap: 8px 18px; }
.section-heading h2, .guide-heading h2 { font-size: 28px; line-height: 1.6; }
.currency-note { display: block; font-size: 14px; max-width: none; text-align: left; }
.search-wrap { min-height: 56px; height: 56px; }
.search-wrap input { font-size: 16px; }
.search-wrap input::placeholder { color: #68745e; }
.search-wrap kbd { font-size: 14px; }
.region-filters { gap: 8px; }
.region-filters button { font-size: 16px; padding: 8px 12px; min-height: 44px; }
.prefecture-control { align-items: center; gap: 20px; padding: 18px; }
.prefecture-control label { font-size: 16px; }
.prefecture-control select { font-size: 16px; height: 46px; min-width: 166px; }
.prefecture-control p { font-size: 14px; line-height: 1.8; }
.list-toolbar { gap: 12px; flex-wrap: wrap; }
.view-tabs { gap: 24px; }
.view-tabs button { font-size: 16px; padding-bottom: 14px; }
.view-tabs button span { font-size: 13px; }
.sort-wrap select { font-size: 14px; max-width: 230px; padding-right: 8px; }
.fare-table th { font-size: 14px; white-space: normal; padding: 16px 10px; }
.fare-table td { height: auto; padding: 22px 10px; }
.fare-table th:first-child { width: 42%; }
.fare-table th:nth-child(2) { width: 18%; }
.fare-table th:nth-child(3) { width: 19%; }
.fare-table th:nth-child(4) { width: 17%; }
.fare-table th:last-child { width: 4%; }
.fare-table th:nth-child(4), .fare-table td:nth-child(4) { display: table-cell; }
.city-stamp { display: none; }
.city-name { font-size: 18px; line-height: 1.6; }
.area-prefecture { font-size: 14px; margin-top: 6px; }
.scope-preview { font-size: 14px; line-height: 1.8; margin-top: 8px; }
.selected-label { font-size: 12px; margin-top: 8px; padding: 2px 7px; }
.fee-value, .estimate-fee { font-size: 24px; font-variant-numeric: tabular-nums; }
.fee-value .yen, .estimate-fee > .yen { font-size: 16px; color: #617055; }
.fee-sub { font-size: 14px; line-height: 1.8; white-space: normal; }
.extra-value { font-size: 17px; }
.extra-value > small { font-size: 14px; color: #617055; }
.estimate-th span { font-size: 14px; }
.row-arrow { width: 32px; height: 44px; }
.row-arrow .icon { width: 18px; height: 18px; }
.mobile-cell-label { display: none; }
.list-footer { font-size: 14px; flex-wrap: wrap; }
.list-footer > span:last-child { font-size: 13px; }
.pagination { font-size: 15px; }
.pagination button { width: 40px; height: 40px; font-size: 24px; }
.small-note { font-size: 14px; line-height: 1.9; }
.small-note .icon { width: 18px; height: 18px; margin-top: 4px; }
.calculator-header { padding: 24px; }
.calculator-header h2 { font-size: 24px; line-height: 1.6; }
.calculator-body { padding: 24px; }
.field-label { font-size: 16px; margin-bottom: 10px; }
.plain-select, .select-city select { height: 50px; font-size: 16px; min-width: 0; }
.select-city select { padding-left: 36px; }
.select-city > .icon { top: 16px; }
.field-hint { font-size: 14px; line-height: 1.9; }
.scope-button { font-size: 14px; min-height: 36px; }
.distance-value { padding: 5px 10px; }
.distance-value input { font-size: 22px; width: 58px; }
.distance-value span, .range-labels { font-size: 14px; }
.range-labels { margin-top: 12px; }
.range::-webkit-slider-thumb { width: 20px; height: 20px; }
.range::-moz-range-thumb { width: 14px; height: 14px; }
.day-badge { font-size: 15px; flex-wrap: wrap; }
.day-badge small { font-size: 14px; }
.estimate-label { font-size: 16px; }
.estimate-label span { font-size: 14px; }
.estimate-total { font-size: 54px; }
.estimate-total span { font-size: 30px; }
.estimate-breakdown { font-size: 14px; line-height: 1.9; }
.split-row { flex-wrap: wrap; gap: 10px; font-size: 15px; }
.split-row select { font-size: 16px; padding: 6px; min-height: 44px; }
.split-row > span { font-size: 14px; }
.primary-button { min-height: 52px; font-size: 16px; }
.calculator-disclaimer { font-size: 14px; line-height: 1.9; }
.calculator-bottom { padding: 18px 24px; flex-wrap: wrap; }
.calculator-bottom > span { font-size: 13px; writing-mode: initial; }
.calculator-bottom p { font-size: 14px; }
.guide-heading > p:last-child { font-size: 16px; }
.guide-items summary { font-size: 17px; padding: 20px 0; }
.guide-number { font-size: 14px; }
.guide-items details p { font-size: 16px; line-height: 1.9; color: #617055; }
.data-note h2 { font-size: 18px; }
.data-note p, .data-note > a { font-size: 14px; }
.site-footer { font-size: 14px; flex-wrap: wrap; gap: 18px; }
.site-footer > div { flex-wrap: wrap; gap: 10px 20px; }
.site-footer > div > span { font-size: 14px; }
.site-footer > span { font-size: 12px; }
.footer-brand { font-size: 22px; }
.empty-state h3 { font-size: 22px; }
.empty-state p, .text-button { font-size: 16px; }
.coverage-heading { flex-wrap: wrap; }
.coverage-heading h3 { font-size: 20px; }
.coverage-heading > span { font-size: 14px; }
.coverage-item > p { font-size: 16px; line-height: 1.9; }
.coverage-actions { font-size: 15px; flex-wrap: wrap; gap: 12px 24px; }
.coverage-actions button, .coverage-actions a { min-height: 44px; }
dialog { max-width: 700px; padding: 28px; }
.dialog-title { font-size: 30px; line-height: 1.6; }
.dialog-scope { font-size: 15px; line-height: 1.8; color: #617055; }
.scope-detail > strong, .scope-detail > p { font-size: 16px; }
.scope-source { font-size: 14px; }
.detail-stat > span, .detail-stat small { font-size: 15px; color: #617055; }
.detail-stat strong { font-size: 34px; }
.detail-note { font-size: 15px; line-height: 1.9; color: #617055; }
.detail-calculation { font-size: 16px; }
.detail-calculation strong { font-size: 24px; }
.dialog-links button, .dialog-links a { font-size: 16px; min-height: 50px; }
.icon-button { width: 44px; height: 44px; }

@media (max-width: 1199px) {
  .workspace { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .calculator { width: 100%; max-width: 680px; justify-self: center; }
  .header-inner nav { gap: 24px; }
  .source-link { display: flex; font-size: 14px; }
  .prefecture-control { display: flex; }
  .prefecture-control label { display: flex; }
  .prefecture-control p { margin: 0; }
  .select-city select { font-size: 16px; }
  .data-note { flex-wrap: wrap; gap: 20px; }
}
@media (max-width: 740px) {
  .page-wrap, .header-inner, .site-footer { padding-left: 22px; padding-right: 22px; }
  .header-inner { min-height: 88px; flex-wrap: wrap; gap: 8px; padding-top: 12px; }
  .brand strong { font-size: 23px; }
  .brand small { font-size: 12px; }
  .header-inner nav { min-height: 64px; gap: 24px; }
  .header-inner nav a { font-size: 16px; }
  .header-inner nav a:last-child { display: flex; }
  .source-link { display: none; }
  .hero-description { font-size: 16px; }
  .hero-facts { font-size: 14px; }
  .hero-facts i { display: none; }
  .source-note p, .source-note a { font-size: 14px; }
  .section-heading h2 { font-size: 26px; }
  .currency-note { font-size: 14px; }
  .prefecture-control { flex-wrap: wrap; gap: 12px; }
  .prefecture-control label { width: 100%; justify-content: space-between; }
  .prefecture-control select { margin: 0; max-width: none; min-width: 166px; }
  .prefecture-control p { font-size: 14px; }
  .sort-wrap select { font-size: 16px; max-width: 260px; }
  .list-toolbar { align-items: start; gap: 12px; }
  .source-note { padding: 16px; }
  .coverage-heading > span { white-space: normal; }
}
@media (max-width: 600px) {
  .header-inner { display: block; }
  .header-inner nav { min-height: 58px; margin-top: 4px; justify-content: space-between; gap: 12px; }
  .hero { display: block; position: relative; min-height: 0; padding: 30px 0; }
  .hero-copy { position: relative; z-index: 1; }
  .hero h1 { font-size: clamp(28px, 7.4vw, 36px); letter-spacing: 0; }
  .hero-map { position: absolute; right: -15px; top: 44px; width: 240px; height: 260px; opacity: .12; z-index: 0; }
  .map-caption, .map-note { display: none; }
  .hero-description { max-width: none; }
  .hero-facts { gap: 10px 16px; font-size: 14px; }
  .source-note { margin-bottom: 28px; }
  .search-wrap input { font-size: 16px; }
  .search-wrap kbd { display: none; }
  .region-filters button { font-size: 16px; padding: 8px 10px; }
  .list-toolbar { display: block; }
  .view-tabs { gap: 24px; }
  .view-tabs button { font-size: 16px; }
  .sort-wrap { display: block; padding: 12px 0 0; }
  .sort-wrap select { font-size: 16px; padding-bottom: 12px; width: 100%; max-width: none; }
  .fare-table, .fare-table tbody { display: block; width: 100%; }
  .fare-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); }
  .fare-table tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); position: relative; border: 1px solid #dce3d3; border-radius: 10px; margin: 16px 0; overflow: hidden; background: #fff; }
  .fare-table td, .fare-table td:nth-child(4) { display: block; border: 0; padding: 14px 12px 18px; height: auto; }
  .fare-table td:first-child { grid-column: 1 / -1; padding: 18px 48px 18px 16px; border-bottom: 1px solid #e1e7dc; }
  .fare-table td:last-child { position: absolute; top: 12px; right: 4px; padding: 0; }
  .city-name { font-size: 18px; }
  .area-prefecture { font-size: 14px; }
  .scope-preview { font-size: 14px; -webkit-line-clamp: 3; }
  .selected-label { font-size: 13px; }
  .mobile-cell-label { display: block; font-size: 14px; line-height: 1.7; color: #5f7156; margin-bottom: 6px; }
  .fee-value, .estimate-fee { font-size: 23px; }
  .fee-value .yen, .estimate-fee > .yen { font-size: 15px; }
  .extra-value { font-size: 16px; }
  .extra-value > small { font-size: 14px; }
  .fee-sub { font-size: 14px; }
  .row-arrow { width: 40px; height: 44px; }
  .row-arrow .icon { width: 20px; height: 20px; }
  .list-footer { font-size: 14px; }
  .list-footer > span:last-child { display: none; }
  .small-note { font-size: 14px; }
  .calculator-header, .calculator-body { padding: 20px; }
  .calculator-header h2 { font-size: 23px; }
  .calc-car { width: 32px; flex-shrink: 0; margin-left: 8px; }
  .field-label, .plain-select, .select-city select { font-size: 16px; }
  .field-hint, .scope-button, .calculator-disclaimer { font-size: 14px; }
  .distance-label { gap: 10px; flex-wrap: wrap; }
  .day-badge small { margin-left: 0; }
  .split-row > span { flex-basis: 100%; margin: 0; }
  .calculator-bottom { padding: 18px 20px; }
  .guide-items summary { gap: 12px; font-size: 17px; }
  .guide-items details p { font-size: 16px; margin-left: 0; }
  .data-note h2 { font-size: 18px; }
  .data-note p, .data-note > a { font-size: 14px; }
  .site-footer > div > span { font-size: 14px; }
  .coverage-item > p { font-size: 16px; }
  .coverage-actions { font-size: 15px; }
  dialog { padding: 20px; max-height: 90vh; }
  .dialog-title { font-size: 26px; }
  .detail-grid { gap: 12px; }
  .detail-stat { padding: 14px; }
  .detail-stat strong { font-size: 30px; }
}
@media (max-width: 360px) {
  .page-wrap, .header-inner, .site-footer { padding-left: 16px; padding-right: 16px; }
  .prefecture-control { padding: 14px; }
  .prefecture-control label { flex-wrap: wrap; gap: 8px; }
  .prefecture-control select { width: 100%; }
  .fare-table td, .fare-table td:nth-child(4) { padding-left: 8px; padding-right: 8px; }
  .fee-value, .estimate-fee { font-size: 21px; }
  .calculator-header h2 { font-size: 21px; }
  .detail-grid { grid-template-columns: 1fr; }
}
.selected-area-name { font-size: 16px; line-height: 1.8; font-weight: 600; margin: 12px 0 4px; overflow-wrap: anywhere; }
