
.dt2 *, .dt2 *::before, .dt2 *::after{box-sizing:border-box}.dt2{
  --dt2-brand:#1a56db; --dt2-brand-dark:#1340a8; --dt2-brand-deep:#0f2a5c; --dt2-brand-soft:#eaf1ff;
  --dt2-accent:#ff8a00; --dt2-accent-dark:#e07800; --dt2-accent-soft:#fff4e6; --dt2-accent-ink:#b45309;
  --dt2-ink:#101828; --dt2-text:#1f2937; --dt2-muted:#6b7280; --dt2-faint:#98a2b3;
  --dt2-line:#e5e7eb; --dt2-line-2:#eef1f5; --dt2-surface:#ffffff; --dt2-page:#f5f7fb; --dt2-soft:#f2f5fa;
  --dt2-green:#0f8a4f; --dt2-green-soft:#e8f7ef; --dt2-red:#dc2626;
  --dt2-r-sm:10px; --dt2-r:14px; --dt2-r-lg:18px;
  --dt2-sd-1:0 1px 2px rgba(16,24,40,.06);
  --dt2-sd-2:0 2px 10px -2px rgba(16,40,90,.12), 0 1px 2px rgba(16,24,40,.05);
  --dt2-sd-3:0 18px 44px -20px rgba(9,30,80,.45), 0 2px 10px rgba(16,40,90,.08);
  --dt2-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,"Helvetica Neue",Arial,
    "Hiragino Sans","Noto Sans JP","Noto Sans KR","Noto Sans Thai","Naskh Arabic",sans-serif;
  --dt2-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  
  --dt2-f-disp:var(--dt2-font);
  --dt2-f-mono:var(--dt2-mono);
  --dt2-f-zh:"Noto Serif SC","Songti SC",STSong,SimSun,serif;
  --dt2-shell:1180px;
  --dt2-hair:#e1e7f0; --dt2-hair-2:#eef1f6;
  --dt2-dur:.22s; --dt2-ease:cubic-bezier(.2,.7,.3,1);
  --dt2-tap:44px;
}.dt2{margin:0; background:transparent; color:var(--dt2-text);
  font-family:var(--dt2-f-disp); font-size:15px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:clip}.dt2 h1, .dt2 h2, .dt2 h3, .dt2 h4{margin:0; color:var(--dt2-ink); letter-spacing:-.02em; line-height:1.24}.dt2 a{color:var(--dt2-brand-deep); text-decoration:none}.dt2 img{display:block; max-width:100%}.dt2 button{font:inherit; cursor:pointer}.dt2-sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
  white-space:nowrap; border:0; padding:0; margin:-1px}.dt2 :focus-visible{outline:2px solid var(--dt2-brand); outline-offset:2px; border-radius:3px}.dt2-preview{font-size:12px; color:var(--dt2-accent-ink); background:var(--dt2-accent-soft);
  border:1px solid #ffd9a8; border-radius:var(--dt2-r-sm); padding:9px 12px; margin-bottom:14px}.dt2-dhero{position:relative; border-radius:var(--dt2-r-lg); overflow:hidden; min-height:400px;
  display:flex; align-items:flex-end; background:#0b2a6b}.dt2-dhero > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:center 46%; z-index:0}.dt2-dhero::before{content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(5,13,32,.30) 0%, rgba(5,13,32,.52) 42%, rgba(5,13,32,.92) 100%)}.dt2-dhero-in{position:relative; z-index:2; padding:26px 30px 24px; width:100%; color:#fff}.dt2-chips{display:flex; gap:7px; flex-wrap:wrap; margin-bottom:13px}.dt2-chip{font-size:11px; font-weight:600; letter-spacing:.02em; color:#fff;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.30);
  border-radius:3px; padding:4px 9px; backdrop-filter:blur(3px); font-family:var(--dt2-font)}.dt2-dhero h1{font-size:clamp(23px,3.3vw,36px); line-height:1.16; letter-spacing:-.03em; color:#fff;
  text-shadow:0 2px 16px rgba(0,0,0,.4); max-width:900px}.dt2-dhero .dt2-cn{font-family:var(--dt2-f-zh); font-size:13px; color:rgba(255,255,255,.74);
  margin-top:9px; letter-spacing:.04em}.dt2-dhero .dt2-dsub{font-size:14px; line-height:1.62; color:rgba(255,255,255,.9); margin:10px 0 0;
  max-width:760px; text-shadow:0 1px 10px rgba(0,0,0,.4); font-family:var(--dt2-font)}.dt2-dmeta{display:flex; flex-wrap:wrap; align-items:center; margin-top:18px;
  border-top:1px solid rgba(255,255,255,.22); padding-top:13px}.dt2-dmeta > div{font-size:12.5px; color:rgba(255,255,255,.78); padding:0 16px;
  border-right:1px solid rgba(255,255,255,.16); font-family:var(--dt2-font)}.dt2-dmeta > div:first-child{padding-left:0}.dt2-dmeta > div:last-child{border-right:0}.dt2-dmeta b{color:#fff; font-weight:600}.dt2-dmeta .dt2-rate i{color:#ffc257; font-style:normal; margin-right:3px}.dt2-strip{display:grid; grid-template-columns:repeat(var(--dt2-strip-n,6),1fr); gap:6px; margin-top:6px}.dt2-strip button{padding:0; border:0; background:#eef2f8; border-radius:2px; overflow:hidden;
  aspect-ratio:4/3; transition:opacity var(--dt2-dur)}.dt2-strip img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--dt2-ease)}.dt2-strip button[aria-current="true"]{outline:2px solid var(--dt2-accent); outline-offset:-2px}@media(hover:hover){.dt2-strip button:hover img{transform:scale(1.07)}}.dt2-layout{display:grid; grid-template-columns:minmax(0,1fr) 372px; gap:0 40px;
  align-items:start; margin-top:32px}.dt2-col-main{min-width:0}.dt2-sec{margin-bottom:36px}.dt2-sec-head{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  border-bottom:2px solid var(--dt2-ink); padding-bottom:9px}.dt2-sec-head .dt2-n{font-family:var(--dt2-f-mono); font-size:11px; font-weight:600; letter-spacing:.1em;
  color:var(--dt2-accent-ink); background:var(--dt2-accent-soft); border-radius:2px; padding:2px 5px;
  align-self:center; flex:none}.dt2-sec-head h2{font-size:19px; letter-spacing:-.022em; flex:1 1 auto; min-width:0}.dt2-sec-head .dt2-hint{font-family:var(--dt2-f-mono); font-size:11px; color:var(--dt2-faint);
  letter-spacing:.02em; flex:none}.dt2-sec-lead{font-size:13.5px; color:var(--dt2-muted); line-height:1.68; margin:12px 0 0; max-width:70ch}.dt2-board{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); overflow:hidden; margin-top:16px;
  background:var(--dt2-surface); box-shadow:var(--dt2-sd-1)}.dt2-board-head{display:grid; grid-template-columns:74px 20px minmax(0,1fr) auto; gap:0 12px;
  align-items:center; padding:9px 14px; background:var(--dt2-ink); color:#fff}.dt2-board-head span{font-family:var(--dt2-f-mono); font-size:9.5px; font-weight:500; letter-spacing:.11em;
  text-transform:uppercase; color:rgba(255,255,255,.6)}.dt2-board-head span:first-child{color:rgba(255,255,255,.42)}.dt2-board-head .dt2-hr{text-align:right}.dt2-stop{display:grid; grid-template-columns:74px 20px minmax(0,1fr) auto; gap:0 12px;
  align-items:center; padding:11px 14px; border-bottom:1px solid var(--dt2-hair-2);
  background:var(--dt2-surface); transition:background var(--dt2-dur)}.dt2-stop:last-child{border-bottom:0}.dt2-stop .dt2-t{font-family:var(--dt2-f-mono); font-size:13px; font-weight:500; color:var(--dt2-ink);
  letter-spacing:-.01em; white-space:nowrap}.dt2-stop .dt2-dot{position:relative; height:100%; display:grid; place-items:center}.dt2-stop .dt2-dot::before{content:''; position:absolute; top:-11px; bottom:-11px; width:1.5px;
  background:#d7dfec}.dt2-stop:first-of-type .dt2-dot::before{top:50%}.dt2-stop:last-of-type .dt2-dot::before{bottom:50%}.dt2-stop .dt2-dot i{position:relative; width:7px; height:7px; border-radius:50%;
  background:var(--dt2-surface); border:1.5px solid #a9b6c9}.dt2-stop .dt2-place{min-width:0}.dt2-stop .dt2-place b{display:block; font-size:13.5px; font-weight:600; color:var(--dt2-ink); letter-spacing:-.01em}.dt2-stop .dt2-place em{display:block; font-style:normal; font-size:11.5px; color:var(--dt2-faint);
  line-height:1.45; margin-top:1px; font-family:var(--dt2-font)}.dt2-stop .dt2-tagx{font-family:var(--dt2-f-mono); font-size:9.5px; font-weight:600; letter-spacing:.07em;
  text-transform:uppercase; color:var(--dt2-muted); background:var(--dt2-soft);
  border:1px solid var(--dt2-hair-2); border-radius:2px; padding:3px 6px; white-space:nowrap}.dt2-stop.dt2-is-hsr{background:var(--dt2-brand-deep); border-bottom-color:rgba(255,255,255,.1)}.dt2-stop.dt2-is-hsr .dt2-t{color:#fff}.dt2-stop.dt2-is-hsr .dt2-dot::before{background:rgba(255,255,255,.24)}.dt2-stop.dt2-is-hsr .dt2-dot i{background:var(--dt2-accent); border-color:var(--dt2-accent);
  box-shadow:0 0 0 4px rgba(255,138,0,.22)}.dt2-stop.dt2-is-hsr .dt2-place b{color:#fff}.dt2-stop.dt2-is-hsr .dt2-place em{color:rgba(255,255,255,.72)}.dt2-stop.dt2-is-hsr .dt2-tagx{background:var(--dt2-accent); border-color:var(--dt2-accent); color:#3b2404}.dt2-board-foot{display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:10px 14px; background:#fcfdff; border-top:1px solid var(--dt2-hair)}.dt2-board-foot .dt2-k{font-family:var(--dt2-f-mono); font-size:10px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--dt2-faint)}.dt2-board-foot .dt2-v{font-family:var(--dt2-f-mono); font-size:11.5px; font-weight:600; color:var(--dt2-brand-deep)}.dt2-board-foot .dt2-sep{width:1px; height:12px; background:var(--dt2-hair)}.dt2-board-foot .dt2-r{margin-left:auto; font-size:11.5px; color:var(--dt2-muted); font-family:var(--dt2-font)}.dt2-run{margin-top:16px; border-top:1px solid var(--dt2-hair)}.dt2-rrow{display:grid; grid-template-columns:96px 26px minmax(0,1fr); border-bottom:1px solid var(--dt2-hair-2)}.dt2-rrow .dt2-t{font-family:var(--dt2-f-mono); font-size:11.5px; color:var(--dt2-muted); padding:13px 0;
  letter-spacing:-.01em; white-space:nowrap; line-height:1.5}.dt2-rrow .dt2-tlrail{position:relative; top:auto}.dt2-rrow .dt2-tlrail::before{content:''; position:absolute; left:50%; top:0; bottom:0; width:1.5px;
  background:#d7dfec; transform:translateX(-.75px)}.dt2-rrow:last-child .dt2-tlrail::before{bottom:auto; height:26px}.dt2-rrow .dt2-tlrail i{position:absolute; left:50%; top:18px; width:9px; height:9px; border-radius:50%;
  transform:translateX(-50%); background:var(--dt2-surface); border:2px solid #a9b6c9; z-index:1}.dt2-rrow .dt2-body{padding:11px 0 13px 12px; min-width:0}.dt2-rrow .dt2-body h4{font-size:13.5px; font-weight:600; letter-spacing:-.008em}.dt2-rrow .dt2-body p{margin:3px 0 0; font-size:12.5px; line-height:1.6; color:var(--dt2-muted);
  font-family:var(--dt2-font)}.dt2-rrow .dt2-kind{display:inline-block; font-family:var(--dt2-f-mono); font-size:9px; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; border-radius:2px; padding:2px 5px;
  margin-left:7px; vertical-align:2px}.dt2-k-pickup{background:var(--dt2-brand-soft); color:var(--dt2-brand-dark)}.dt2-k-drive{background:var(--dt2-soft); color:#61708a}.dt2-k-sight{background:var(--dt2-brand-deep); color:#fff}.dt2-k-meal{background:var(--dt2-accent-soft); color:var(--dt2-accent-ink)}.dt2-k-back{background:#eef1f6; color:#5b6472}.dt2-rrow[data-kind="pickup"] .dt2-tlrail i{border-color:var(--dt2-brand)}.dt2-rrow[data-kind="sight"]  .dt2-tlrail i{border-color:var(--dt2-brand-deep); background:var(--dt2-brand-deep)}.dt2-rrow[data-kind="meal"]   .dt2-tlrail i{border-color:var(--dt2-accent)}.dt2-rrow[data-kind="back"]   .dt2-tlrail i{border-color:#8b95a6}.dt2-rrow.dt2-is-hsr{background:linear-gradient(90deg, rgba(255,138,0,.07), transparent 62%)}.dt2-rrow.dt2-is-hsr .dt2-tlrail i{border-color:var(--dt2-accent); background:var(--dt2-accent);
  box-shadow:0 0 0 4px rgba(255,138,0,.18)}.dt2-run-more{margin-top:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap}.dt2-run-more button{font-size:12px; font-weight:600; color:var(--dt2-brand-dark);
  background:var(--dt2-brand-soft); border:1px solid #cfdefe; border-radius:4px; padding:8px 13px;
  min-height:38px; transition:background var(--dt2-dur)}.dt2-run-more button:hover{background:#dbe8ff}.dt2-rail{position:sticky; top:76px}.dt2-book{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r); background:var(--dt2-surface);
  box-shadow:var(--dt2-sd-3); overflow:hidden}.dt2-book-hd{display:flex; align-items:flex-start; gap:10px; padding:14px 16px 12px;
  border-bottom:1px solid var(--dt2-hair-2)}.dt2-book-hd .dt2-n{font-family:var(--dt2-f-mono); font-size:10px; font-weight:600; letter-spacing:.1em;
  color:var(--dt2-accent-ink); background:var(--dt2-accent-soft); border-radius:2px; padding:2px 5px;
  margin-top:2px}.dt2-book-hd h2{font-size:16px; letter-spacing:-.02em}.dt2-book-hd .dt2-sub{font-family:var(--dt2-f-mono); font-size:10px; color:var(--dt2-faint); margin-top:2px}.dt2-mode{display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--dt2-hair)}.dt2-mode button{border:0; background:var(--dt2-soft); color:var(--dt2-muted); font-size:12.5px; font-weight:700;
  padding:11px 8px; min-height:52px; position:relative; text-align:center;
  transition:background var(--dt2-dur), color var(--dt2-dur)}.dt2-mode button + button{border-left:1px solid var(--dt2-hair)}.dt2-mode button small{display:block; font-size:10px; font-weight:500; color:var(--dt2-faint);
  margin-top:2px; font-family:var(--dt2-font)}.dt2-mode button[aria-selected="true"]{background:var(--dt2-surface); color:var(--dt2-ink)}.dt2-mode button[aria-selected="true"]::after{content:''; position:absolute; left:0; right:0; bottom:-1px;
  height:2px; background:var(--dt2-accent)}.dt2-mode button[aria-selected="true"] small{color:var(--dt2-muted)}.dt2-bpane{padding:13px 16px 4px}.dt2-bpane[hidden]{display:none}.dt2-frow{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:11px}.dt2-fld{min-width:0}.dt2-fld label{display:block; font-family:var(--dt2-f-mono); font-size:9px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--dt2-faint); margin-bottom:5px}.dt2-fld select{width:100%; height:40px; padding:0 28px 0 10px; font-family:var(--dt2-font);
  font-size:13.5px; color:var(--dt2-ink); background:var(--dt2-surface); border:1px solid var(--dt2-line);
  border-radius:8px; appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.dt2-w3.dt2-org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2398a2b3' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center; text-overflow:ellipsis}.dt2-fld select:hover{border-color:#c7d2fe}.dt2-fld .dt2-hintx{font-family:var(--dt2-f-mono); font-size:10px; color:var(--dt2-faint); margin-top:4px;
  display:block; line-height:1.4}.dt2-stepper{display:flex; align-items:center; justify-content:space-between; gap:10px;
  border:1px solid var(--dt2-line); border-radius:8px; height:40px; padding:0 4px 0 11px}.dt2-stepper .dt2-lab{font-size:12.5px; color:var(--dt2-muted); font-family:var(--dt2-font)}.dt2-stepper .dt2-c{display:flex; align-items:center; gap:0}.dt2-stepper button{width:32px; height:30px; border:1px solid var(--dt2-line); background:var(--dt2-surface);
  color:var(--dt2-ink); border-radius:6px; font-size:15px; line-height:1;
  transition:background var(--dt2-dur), border-color var(--dt2-dur)}.dt2-stepper button:hover:not(:disabled){background:var(--dt2-brand-soft); border-color:#c7d2fe}.dt2-stepper button:disabled{color:#cbd3e0; cursor:not-allowed}.dt2-stepper output{min-width:34px; text-align:center; font-family:var(--dt2-f-mono); font-size:14px;
  font-weight:600; color:var(--dt2-ink)}.dt2-bd{border-top:1px solid var(--dt2-hair-2); margin-top:4px}.dt2-bd .dt2-line{display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  font-size:12px; padding:7px 16px; color:var(--dt2-muted); font-family:var(--dt2-font)}.dt2-bd .dt2-line:first-child{padding-top:11px}.dt2-bd .dt2-line b{font-family:var(--dt2-font); font-weight:600; color:var(--dt2-green); font-size:11.5px;
  white-space:nowrap}.dt2-bd .dt2-line b.dt2-extra{color:var(--dt2-accent-ink)}.dt2-bd .dt2-line b.dt2-na{color:var(--dt2-faint); font-weight:500}.dt2-bd .dt2-line .dt2-q{font-family:var(--dt2-f-mono); color:var(--dt2-ink); font-weight:600; white-space:nowrap}.dt2-tot{display:flex; align-items:flex-end; gap:10px; padding:12px 16px 13px;
  background:var(--dt2-soft); border-top:1px solid var(--dt2-hair); border-bottom:1px solid var(--dt2-hair)}.dt2-tot .dt2-lab{font-family:var(--dt2-font); font-size:11px; font-weight:600; color:var(--dt2-muted)}.dt2-tot .dt2-lab em{display:block; font-style:normal; font-family:var(--dt2-f-mono); font-size:10px;
  color:var(--dt2-faint); margin-top:2px; font-weight:400}.dt2-tot .dt2-amt{margin-left:auto; text-align:right}.dt2-tot .dt2-amt strong{display:block; font-size:30px; font-weight:800; color:var(--dt2-ink);
  letter-spacing:-.04em; line-height:1}.dt2-tot .dt2-amt strong small{font-size:13px; font-weight:600; color:var(--dt2-faint); letter-spacing:0;
  margin-left:2px}.dt2-pay{padding:13px 16px 14px}.dt2-cta{display:flex; align-items:center; justify-content:center; gap:8px; width:100%; height:50px;
  border:0; border-radius:9px; background:var(--dt2-accent); color:#101828;
  font-family:var(--dt2-font); font-size:15px; font-weight:800; letter-spacing:-.01em;
  transition:background var(--dt2-dur), transform var(--dt2-dur), box-shadow var(--dt2-dur)}.dt2-cta:hover{background:var(--dt2-accent-dark); box-shadow:0 10px 22px -12px rgba(255,138,0,.95)}.dt2-cta:active{transform:translateY(1px)}.dt2-cta svg{transition:transform var(--dt2-dur); flex:none}.dt2-cta:hover svg{transform:translateX(2px)}.dt2-cta .dt2-amtin{font-family:var(--dt2-f-mono); font-weight:700; letter-spacing:-.02em}.dt2-payways{display:flex; align-items:center; justify-content:center; gap:6px; margin-top:9px;
  font-family:var(--dt2-font); font-size:10.5px; color:var(--dt2-faint); flex-wrap:wrap}.dt2-payways svg{color:var(--dt2-faint); flex:none}.dt2-payways .dt2-dot{width:2px; height:2px; border-radius:50%; background:#cbd3e0}.dt2-cancel{display:flex; align-items:flex-start; gap:6px; margin-top:10px; font-size:11px;
  line-height:1.55; color:var(--dt2-faint); font-family:var(--dt2-font)}.dt2-cancel svg{color:var(--dt2-green); flex:none; margin-top:1.5px}.dt2-cancel b{color:var(--dt2-ink); font-weight:600}.dt2-trust{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--dt2-hair);
  border-top:1px solid var(--dt2-hair)}.dt2-trust div{background:var(--dt2-surface); padding:8px 10px; font-family:var(--dt2-font); font-size:10px;
  color:var(--dt2-faint); line-height:1.4; text-align:center}.dt2-trust b{display:block; color:var(--dt2-muted); font-weight:600; font-size:10.5px}.dt2-inout{display:grid; grid-template-columns:1fr 1fr; margin-top:16px;
  border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); overflow:hidden; background:var(--dt2-surface)}.dt2-inout > section{padding:15px 16px}.dt2-inout > section + section{border-left:1px solid var(--dt2-hair)}.dt2-inout h3{font-family:var(--dt2-f-mono); font-size:9.5px; font-weight:600; letter-spacing:.11em;
  text-transform:uppercase; color:var(--dt2-faint); margin-bottom:10px; display:flex;
  align-items:center; gap:6px}.dt2-inout h3 i{width:6px; height:6px; border-radius:50%; flex:none}.dt2-inout .dt2-y h3 i{background:var(--dt2-green)}.dt2-inout .dt2-n h3 i{background:var(--dt2-red)}.dt2-inout ul{list-style:none; margin:0; padding:0}.dt2-inout li{font-size:12.5px; line-height:1.6; color:var(--dt2-text); padding:5px 0 5px 17px;
  position:relative; font-family:var(--dt2-font)}.dt2-inout .dt2-y li::before{content:''; position:absolute; left:2px; top:11px; width:7px; height:4px;
  border-left:1.5px solid var(--dt2-green); border-bottom:1.5px solid var(--dt2-green);
  transform:rotate(-45deg)}.dt2-inout .dt2-n li::before{content:'×'; position:absolute; left:2px; top:5px; font-size:12px;
  color:var(--dt2-red); font-weight:600}.dt2-revsum{display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:14px;
  padding:14px 16px; border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); background:var(--dt2-soft)}.dt2-revsum .dt2-big{font-size:38px; font-weight:800; letter-spacing:-.05em; line-height:1; color:var(--dt2-ink)}.dt2-revsum .dt2-stars{font-size:14px; color:var(--dt2-accent); letter-spacing:.06em; line-height:1}.dt2-revsum .dt2-cnt{font-family:var(--dt2-f-mono); font-size:11px; color:var(--dt2-faint); margin-top:4px}.dt2-revsum .dt2-note{font-size:12px; color:var(--dt2-muted); line-height:1.5; flex:1 1 200px; min-width:0;
  font-family:var(--dt2-font)}.dt2-rev{border-bottom:1px solid var(--dt2-hair-2); padding:15px 0}.dt2-rev:last-child{border-bottom:0}.dt2-rev .dt2-top{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:7px}.dt2-rev .dt2-top .dt2-s{color:var(--dt2-accent); font-size:12.5px; letter-spacing:.06em}.dt2-rev .dt2-top .dt2-who{font-family:var(--dt2-f-mono); font-size:10.5px; color:var(--dt2-faint);
  letter-spacing:.03em; text-transform:uppercase}.dt2-rev p{margin:0; font-size:13px; line-height:1.66; color:var(--dt2-text); font-family:var(--dt2-font)}.dt2-rev .dt2-zh{margin-top:7px; font-family:var(--dt2-f-zh); font-size:12.5px; line-height:1.8;
  color:#7c8494; padding-left:11px; border-left:2px solid var(--dt2-hair-2)}.dt2-trains{margin-top:14px; border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); overflow:hidden}.dt2-train{display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:0 14px; align-items:center;
  padding:12px 15px; background:var(--dt2-surface); border-bottom:1px solid var(--dt2-hair-2);
  transition:background var(--dt2-dur)}.dt2-train:last-child{border-bottom:0}.dt2-train:hover{background:var(--dt2-brand-soft)}.dt2-train .dt2-to b{font-size:13.5px; font-weight:600; color:var(--dt2-ink); display:block}.dt2-train .dt2-to span{font-family:var(--dt2-f-mono); font-size:10.5px; color:var(--dt2-faint)}.dt2-train .dt2-dur{font-family:var(--dt2-f-mono); font-size:11.5px; color:var(--dt2-muted); white-space:nowrap}.dt2-train .dt2-price{font-family:var(--dt2-f-mono); font-size:12.5px; font-weight:600; color:var(--dt2-brand-deep);
  white-space:nowrap; text-align:right}.dt2-keep{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px}.dt2-kcard{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); overflow:hidden;
  background:var(--dt2-surface); transition:border-color var(--dt2-dur), box-shadow var(--dt2-dur),
  transform var(--dt2-dur)}.dt2-kcard .dt2-ki{aspect-ratio:16/10; overflow:hidden; background:#eef2f8; display:block}.dt2-kcard img{width:100%; height:100%; object-fit:cover; transition:transform .55s var(--dt2-ease)}.dt2-kcard .dt2-kb{padding:10px 11px 11px; display:block}.dt2-kcard .dt2-kb b{display:block; font-size:12.5px; font-weight:600; color:var(--dt2-ink); line-height:1.4;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}.dt2-kcard .dt2-kb span{display:block; font-family:var(--dt2-f-mono); font-size:10.5px; color:var(--dt2-faint);
  margin-top:5px}@media(hover:hover){.dt2-kcard:hover{transform:translateY(-2px); box-shadow:var(--dt2-sd-2); border-color:#c9d8f7}.dt2-kcard:hover img{transform:scale(1.05)}}@media(max-width:1080px){.dt2-layout{grid-template-columns:minmax(0,1fr); gap:0}.dt2-rail{position:static}.dt2-book{position:fixed; left:0; right:0; bottom:0; z-index:55; border-radius:var(--dt2-r) var(--dt2-r) 0 0;
    border-bottom:0; box-shadow:0 -18px 44px -20px rgba(9,30,80,.45);
    max-height:88vh; overflow-y:auto; overscroll-behavior:contain;
    transform:translateY(calc(100% - 62px)); transition:transform .32s var(--dt2-ease)}.dt2-book.dt2-open{transform:translateY(0)}.dt2-book-hd{position:sticky; top:0; z-index:2; background:var(--dt2-surface); cursor:pointer;
    padding:12px 16px; align-items:center; min-height:62px}.dt2-book-hd .dt2-n{display:none}.dt2-book-hd h2{font-size:15px}.dt2-book-hd .dt2-sub{font-size:10px}.dt2-book-hd .dt2-sh{display:flex !important; align-items:center; gap:10px; margin-left:auto}.dt2-book-hd .dt2-sh .dt2-price{font-family:var(--dt2-f-mono); font-size:19px; font-weight:700; color:var(--dt2-ink);
    letter-spacing:-.03em}.dt2-book-hd .dt2-sh .dt2-chev{transition:transform .3s var(--dt2-ease); color:var(--dt2-faint)}.dt2-book.dt2-open .dt2-book-hd .dt2-sh .dt2-chev{transform:rotate(180deg)}.dt2-book-hd .dt2-sh .dt2-mini{padding:0; border:0; background:var(--dt2-accent); color:#101828;
    font-family:var(--dt2-font); font-size:13px; font-weight:800; height:38px; padding:0 16px;
    border-radius:8px}}.dt2-book-hd .dt2-sh{display:none}@media(max-width:860px){.dt2-wrap, .dt2-foot-in{padding:0 16px}.dt2-dhero{min-height:0}.dt2-dhero-in{padding:20px 18px 18px}.dt2-dhero .dt2-dsub{font-size:13.5px}.dt2-dmeta{gap:6px 0}.dt2-dmeta > div{padding:0 12px 0 0; margin-right:12px; border-right:0; font-size:12px}.dt2-sec-head h2{font-size:17.5px}.dt2-inout{grid-template-columns:1fr}.dt2-inout > section + section{border-left:0; border-top:1px solid var(--dt2-hair)}.dt2-keep{grid-template-columns:repeat(2,1fr)}.dt2-rrow{grid-template-columns:82px 22px minmax(0,1fr)}}@media(max-width:640px){.dt2-preview{font-size:11.5px; padding:7px 10px; margin-bottom:11px}.dt2-dhero h1{font-size:23px; line-height:1.2}.dt2-dhero .dt2-cn{font-size:12px}.dt2-dmeta{margin-top:13px; padding-top:11px}.dt2-strip{grid-template-columns:repeat(3,1fr)}.dt2-board-head{grid-template-columns:64px minmax(0,1fr) auto; padding:8px 11px}.dt2-board-head span:nth-child(2){display:none}.dt2-stop{grid-template-columns:64px minmax(0,1fr) auto; padding:10px 11px; row-gap:2px}.dt2-stop .dt2-dot{display:none}.dt2-stop .dt2-t{font-size:12px}.dt2-stop .dt2-place b{font-size:13px}.dt2-stop .dt2-place em{font-size:11px}.dt2-board-foot{display:grid; grid-template-columns:1fr auto; gap:5px 10px; align-items:center;
    padding:9px 11px}.dt2-board-foot .dt2-k, .dt2-board-foot .dt2-v{white-space:nowrap}.dt2-board-foot .dt2-sep{display:none}.dt2-board-foot .dt2-r{grid-column:1/-1; margin:7px 0 0; width:auto}.dt2-rrow{grid-template-columns:70px 20px minmax(0,1fr)}.dt2-rrow .dt2-t{font-size:10.5px; padding:11px 0}.dt2-rrow .dt2-body{padding:9px 0 11px 10px}.dt2-rrow .dt2-body h4{font-size:13px}.dt2-rrow .dt2-body p{font-size:12px}.dt2-frow{grid-template-columns:1fr; gap:10px}.dt2-keep{grid-template-columns:1fr; gap:8px}.dt2-kcard{display:grid; grid-template-columns:104px minmax(0,1fr); align-items:center}.dt2-kcard .dt2-ki{aspect-ratio:1/1; height:100%}.dt2-revsum{padding:12px 13px; gap:12px}.dt2-revsum .dt2-big{font-size:32px}.dt2-train{grid-template-columns:minmax(0,1fr) auto; padding:11px 13px; row-gap:0}.dt2-train .dt2-to{grid-column:1; grid-row:1}.dt2-train .dt2-dur{display:block; grid-column:1; grid-row:2; font-size:10.5px; margin-top:1px}.dt2-train .dt2-price{grid-column:2; grid-row:1 / span 2; align-self:center}.dt2 select, .dt2 input{font-size:16px !important}.dt2-stepper{height:44px}.dt2-stepper button{width:34px; height:34px}.dt2{padding-bottom:70px}}@media(max-width:430px){.dt2-dhero h1{font-size:21px}.dt2-dmeta > div{font-size:11.5px; padding-right:10px; margin-right:10px}.dt2-stop{grid-template-columns:56px minmax(0,1fr)}.dt2-stop .dt2-tagx{grid-column:2; justify-self:start; margin-top:4px}.dt2-board-head{grid-template-columns:56px minmax(0,1fr)}.dt2-board-head .dt2-hr{display:none}.dt2-book-hd{padding:10px 13px}.dt2-book-hd h2{font-size:14px}.dt2-book-hd .dt2-sh .dt2-mini{padding:0 13px; font-size:12.5px}}@media(prefers-reduced-motion:reduce){.dt2 *, .dt2 *::before, .dt2 *::after{animation:none!important; transition:none!important}}@media(max-width:700px){.dt2-foot-in{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.dt2 *{-webkit-tap-highlight-color:transparent}}.dt2-sheet-mask{position:fixed; inset:0; z-index:54; background:rgba(9,30,80,.34); opacity:0;
  pointer-events:none; transition:opacity .3s var(--dt2-ease)}.dt2-sheet-mask.dt2-on{opacity:1; pointer-events:auto}@media(min-width:1081px){.dt2-sheet-mask{display:none}}
/* ---------- 本页容器：**不再自带宽高** ----------
   原型是独立页面，自己有 max-width + padding；搬进站点后外层已经有
   <main>{max-width:1180px; padding:24px 20px}，再套一层就变成双重内边距：
   1440 下内容从 180 开始（应为 150），1080 下从 40 开始（应为 20），
   看起来就是「比顶部导航窄一截、往右缩了一点」。
   现在这一层只留 min-width:0（防止 grid/flex 撑破），宽高全交给 main。 */
.dt2-shell{min-width:0}

/* ---------- 日期输入：与 select 同一外观（原型里没有日期，但我们下单必须选） ---------- */
.dt2-fld input[type="date"]{width:100%; height:40px; padding:0 10px; font-family:var(--dt2-font);
  font-size:13.5px; color:var(--dt2-ink); background:var(--dt2-surface);
  border:1px solid var(--dt2-line); border-radius:8px; appearance:none; cursor:pointer}
.dt2-fld input[type="date"]:hover{border-color:#c7d2fe}
.dt2-fld input[type="date"]:focus-visible{outline:2px solid var(--dt2-brand); outline-offset:1px}

/* ---------- Heads-up ---------- */
.dt2-tips{margin-top:14px; border:1px solid #f3ddb8; border-left:3px solid var(--dt2-accent);
  border-radius:var(--dt2-r-sm); background:var(--dt2-accent-soft); padding:13px 15px}
.dt2-tips > b{display:block; font-family:var(--dt2-f-mono); font-size:9.5px; font-weight:600;
  letter-spacing:.11em; text-transform:uppercase; color:var(--dt2-accent-ink); margin-bottom:7px}
.dt2-tips ul{list-style:none; margin:0; padding:0}
.dt2-tips li{position:relative; padding:4px 0 4px 14px; font-size:12.5px; line-height:1.62;
  color:var(--dt2-text); font-family:var(--dt2-font)}
.dt2-tips li::before{content:''; position:absolute; left:2px; top:12px; width:5px; height:5px;
  border-radius:50%; background:var(--dt2-accent)}

/* ---------- 2026-10-25 新增：折扣角标 / 面板 icon / 折扣行 ---------- */
/* Private 页签右上角的促销角标（.dt2-mode button 本身已是 position:relative） */
.dt2-taboff{position:absolute; top:6px; right:7px; font-family:var(--dt2-f-mono); font-size:9px;
  font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#3b2404;
  background:var(--dt2-accent); border-radius:3px; padding:1px 5px; line-height:1.5}
/* 「Book this route」前面那个位置：原稿放的是正文序号 03，这里换成票券图标 */
.dt2-book-ico{display:inline-grid; place-items:center; width:26px; height:26px; border-radius:8px;
  background:var(--dt2-accent-soft); color:var(--dt2-accent-ink); flex:none; margin-top:1px}
/* 折扣行（私家团 Subtotal 下面那一行，绿色） */
.dt2-bd .dt2-line b.dt2-save{color:var(--dt2-green); font-weight:700}
@media(max-width:430px){ .dt2-taboff{font-size:8.5px; top:5px; right:5px; padding:1px 4px} }

/* Pick-up 单独占一行（原来和 Licensed operator 两列并排，运营方那格已删） */
.dt2-trust.dt2-trust-one{grid-template-columns:1fr}
.dt2-trust.dt2-trust-one > div{text-align:left; padding:9px 14px}
/* 桌面吸顶：面板比视口高时内部滚动，别让底部的按钮被切在屏幕外 */
@media(min-width:1081px){
  .dt2-book{max-height:calc(100vh - 96px); overflow:auto; overscroll-behavior:contain}
}

/* 日期与人数并排；切到私家团时人数收起、日期占满整行 */
.dt2-frow.dt2-one{grid-template-columns:1fr}
/* 计数器现在没有左侧文案（只剩 −/数字/+），左右内边距对称一点 */
.dt2-stepper{padding:0 4px}

/* ---------- 私家团说明页：亮点条 / 车队照片 / 小标题 ---------- */
.dt2-hl{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--dt2-hair);
  border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); overflow:hidden; margin-top:14px}
.dt2-hl > div{background:var(--dt2-surface); padding:13px 14px; display:flex; gap:10px; align-items:flex-start}
.dt2-hl .dt2-ic{flex:none; width:26px; height:26px; border-radius:8px; display:grid; place-items:center;
  background:var(--dt2-brand-soft); color:var(--dt2-brand-dark)}
.dt2-hl > div > div > b{display:block; font-size:12.5px; color:var(--dt2-ink); margin-bottom:3px; letter-spacing:-.01em}
.dt2-hl > div > div > span{display:block; font-size:11.5px; line-height:1.55; color:var(--dt2-muted);
  font-family:var(--dt2-font)}
@media(max-width:1080px){ .dt2-hl{grid-template-columns:repeat(2,1fr)} }
@media(max-width:600px){ .dt2-hl{grid-template-columns:1fr} }

.dt2-fleet{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:16px}
.dt2-fleet figure{margin:0; border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm);
  overflow:hidden; background:var(--dt2-surface)}
.dt2-fleet .dt2-ph{display:block; aspect-ratio:16/10; overflow:hidden; background:#eef2f8}
.dt2-fleet img{width:100%; height:100%; object-fit:cover; display:block}
.dt2-fleet figcaption{padding:11px 13px 12px}
.dt2-fleet figcaption b{display:block; font-size:13px; color:var(--dt2-ink); letter-spacing:-.01em}
.dt2-fleet .dt2-seats{display:block; font-family:var(--dt2-f-mono); font-size:10.5px;
  color:var(--dt2-faint); margin-top:3px}
.dt2-fleet .dt2-price{display:flex; align-items:baseline; gap:5px; margin-top:8px;
  font-family:var(--dt2-f-mono); font-size:13px; font-weight:700; color:var(--dt2-brand-deep)}
.dt2-fleet .dt2-price em{font-style:normal; font-size:10px; font-weight:500; color:var(--dt2-faint)}
@media(max-width:860px){ .dt2-fleet{grid-template-columns:repeat(2,1fr)} }
@media(max-width:560px){ .dt2-fleet{grid-template-columns:1fr} }

/* 车队最后一格：帮客户选车的入口（顺便把 5 张卡留下的空格填上） */
.dt2-fleet .dt2-fleet-ask{border-style:dashed; border-color:#d5dced; display:flex;
  flex-direction:column; justify-content:center; gap:7px; padding:16px 15px}
.dt2-fleet .dt2-fleet-ask b{font-size:13px; color:var(--dt2-ink)}
.dt2-fleet .dt2-fleet-ask span{font-size:12px; line-height:1.6; color:var(--dt2-muted);
  font-family:var(--dt2-font)}
.dt2-fleet .dt2-fleet-ask a{font-family:var(--dt2-f-mono); font-size:11px; font-weight:600;
  color:var(--dt2-brand-dark); text-decoration:none}
.dt2-fleet .dt2-fleet-ask a:hover{text-decoration:underline}

/* 还没有照片的车型：线稿占位，不摆一张不对的车 */
.dt2-fleet .dt2-ph-empty{display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:7px; background:#f6f8fc; color:#b9c4d4}
.dt2-fleet .dt2-phart{width:92px; height:auto}
.dt2-fleet .dt2-ph-empty em{font-style:normal; font-family:var(--dt2-f-mono); font-size:9px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--dt2-faint)}

/* Total 里的划线原价（私家团展示折扣前后的对比） */
.dt2-tot .dt2-amt s{display:block; font-family:var(--dt2-f-mono); font-size:12px;
  color:var(--dt2-faint); text-align:right; margin-bottom:1px; text-decoration:line-through}

/* ---------- 预订页 / 订单页 ---------- */
.dt2-checkhead{margin:2px 0 16px}
.dt2-checkhead h1{font-size:24px; letter-spacing:-.02em}
.dt2-checkhead p{font-size:13px; color:var(--dt2-muted); margin-top:5px; font-family:var(--dt2-font)}
.dt2-checkout{display:grid; grid-template-columns:1.55fr 1fr; gap:16px; align-items:start}
.dt2-form{display:grid; gap:12px}
.dt2-fset{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); background:var(--dt2-surface);
  padding:16px 16px 18px}
.dt2-fset > h2{font-family:var(--dt2-f-mono); font-size:10px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dt2-faint); margin-bottom:12px}
.dt2-fset-cta{padding:14px 16px 16px}
.dt2-inp{width:100%; height:40px; border:1px solid var(--dt2-line); border-radius:9px; padding:0 11px;
  font-family:var(--dt2-font); font-size:13.5px; color:var(--dt2-ink); background:#fff; appearance:none}
.dt2-inp:focus{outline:none; border-color:var(--dt2-brand); box-shadow:0 0 0 3px rgba(26,86,219,.13)}
textarea.dt2-inp{height:auto; padding:9px 11px; line-height:1.55; resize:vertical}
select.dt2-inp{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%238a93a5' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 11px center; padding-right:30px}
.dt2-err{background:#fff4f4; border:1px solid #f5c9c9; color:#a3231d; border-radius:9px;
  padding:10px 12px; font-size:12.5px; font-family:var(--dt2-font)}
.dt2-sum{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); background:var(--dt2-surface);
  padding:16px; position:sticky; top:76px}
.dt2-sumhd{font-family:var(--dt2-f-mono); font-size:10px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dt2-faint); margin-bottom:10px}
.dt2-sumname{font-size:14px; font-weight:600; color:var(--dt2-ink); line-height:1.4; letter-spacing:-.01em}
.dt2-sumzh{font-family:var(--dt2-f-zh); font-size:11.5px; color:var(--dt2-faint); margin:3px 0 12px}
.dt2-srow{display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  padding:7px 0; border-top:1px solid var(--dt2-hair-2); font-size:12.5px; font-family:var(--dt2-font)}
.dt2-srow > span{color:var(--dt2-muted)}
.dt2-srow > span em{display:block; font-style:normal; font-size:10.5px; color:var(--dt2-faint); margin-top:2px}
.dt2-srow > b{font-family:var(--dt2-f-mono); font-size:12.5px; color:var(--dt2-ink); white-space:nowrap}
.dt2-srow.dt2-stot{border-top:1px solid var(--dt2-line); margin-top:6px; padding-top:11px; align-items:baseline}
.dt2-srow.dt2-stot > span{font-family:var(--dt2-f-mono); font-size:10px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--dt2-faint)}
.dt2-srow.dt2-stot > b{font-size:20px; color:var(--dt2-brand-deep); letter-spacing:-.02em}
.dt2-scny{text-align:right; font-family:var(--dt2-f-mono); font-size:10.5px; color:var(--dt2-faint); margin-top:1px}
.dt2-snote{font-size:11px; line-height:1.6; color:var(--dt2-faint); font-family:var(--dt2-font);
  margin-top:13px; padding-top:12px; border-top:1px solid var(--dt2-hair-2)}
@media(max-width:900px){ .dt2-checkout{grid-template-columns:1fr} .dt2-sum{position:static} }
/* 订单页头部与付款通道 */
.dt2-orderhd{display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin:2px 0 16px}
.dt2-orderhd h1{font-size:21px; letter-spacing:-.01em; font-family:var(--dt2-f-mono)}
.dt2-k{font-family:var(--dt2-f-mono); font-size:9.5px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dt2-faint); margin-bottom:4px}
.dt2-pill{font-family:var(--dt2-f-mono); font-size:10.5px; font-weight:700; letter-spacing:.06em;
  padding:5px 11px; border-radius:999px; white-space:nowrap}
.dt2-pill-ok{background:#effaf3; color:#0b6b3d}
.dt2-pill-wait{background:#fff8ee; color:#92400e}.dt2-pill-bad{background:#fdf1f1; color:#b91c1c}.dt2-pill-mute{background:#f2f4f8; color:#4b5563}
.dt2-notice{border:1px solid var(--dt2-hair); background:var(--dt2-soft); color:var(--dt2-ink);
  border-radius:var(--dt2-r-sm); padding:12px 14px; font-size:12.5px; line-height:1.6;
  font-family:var(--dt2-font); margin-top:14px}
.dt2-notice-ok{background:#effaf3; border-color:#c8ecd8; color:#0b6b3d}
.dt2-notice-warn{background:#fff8ee; border-color:#f3ddb8; color:#92400e}
.dt2-payhead{font-family:var(--dt2-f-mono); font-size:10px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dt2-faint); margin:18px 0 10px}
.dt2-chans{display:grid; gap:9px}
.dt2-chan{display:flex; align-items:center; justify-content:space-between; gap:12px;
  border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); background:var(--dt2-surface);
  padding:13px 16px; text-decoration:none; transition:border-color var(--dt2-dur), background var(--dt2-dur)}
.dt2-chan:hover{border-color:#c9d8f7; background:#fbfcff}
.dt2-chan b{display:block; font-size:13.5px; color:var(--dt2-ink); font-weight:600}
.dt2-chan em{display:block; font-style:normal; font-size:11.5px; color:var(--dt2-faint); margin-top:2px;
  font-family:var(--dt2-font)}
.dt2-chan svg{color:var(--dt2-faint)}

/* ---------- 列表页（省份 / 索引） ---------- */
.dt2-two{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px}
.dt2-two > div{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); background:var(--dt2-surface); padding:16px}
.dt2-two .dt2-k{font-family:var(--dt2-f-mono); font-size:9.5px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dt2-accent-ink)}
.dt2-two > div > b{display:block; font-size:14.5px; color:var(--dt2-ink); margin:6px 0 8px; letter-spacing:-.01em}
.dt2-two ul{list-style:none; margin:0; padding:0}
.dt2-two li{position:relative; padding:4px 0 4px 14px; font-size:12.5px; line-height:1.55;
  color:var(--dt2-muted); font-family:var(--dt2-font)}
.dt2-two li::before{content:''; position:absolute; left:2px; top:11px; width:5px; height:5px;
  border-radius:50%; background:var(--dt2-brand)}
.dt2-two li b{display:inline; margin:0; font-size:inherit; color:var(--dt2-ink)}
.dt2-two a{color:var(--dt2-brand-dark); text-decoration:underline}
@media(max-width:760px){ .dt2-two{grid-template-columns:1fr} }

.dt2-cityhead{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:12px}
.dt2-cityhead h2{font-size:19px; letter-spacing:-.02em}
.dt2-cityhead > span{font-family:var(--dt2-f-mono); font-size:11.5px; color:var(--dt2-faint)}
.dt2-cityhead .dt2-station{font-family:var(--dt2-font); font-size:11.5px; color:var(--dt2-brand-deep);
  background:var(--dt2-brand-soft); border-radius:6px; padding:3px 8px}

.dt2-citylink{text-decoration:none}
.dt2-citylink h2:hover{color:var(--dt2-brand-dark)}
.dt2-citylink-txt{margin-left:auto; font-family:var(--dt2-f-mono); font-size:10.5px; font-weight:600;
  color:var(--dt2-brand-dark); text-decoration:none; white-space:nowrap}
.dt2-citylink-txt:hover{text-decoration:underline}
.dt2-tours{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.dt2-tc{display:flex; flex-direction:column; border:1px solid var(--dt2-hair); border-radius:var(--dt2-r);
  overflow:hidden; background:var(--dt2-surface); text-decoration:none;
  transition:border-color var(--dt2-dur), box-shadow var(--dt2-dur), transform var(--dt2-dur)}
.dt2-tc:hover{border-color:#c9d8f7; box-shadow:var(--dt2-sd-2); transform:translateY(-2px)}
.dt2-tc-img{position:relative; display:block; aspect-ratio:16/10; overflow:hidden; background:#eef2f8}
.dt2-tc-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--dt2-ease)}
.dt2-tc:hover .dt2-tc-img img{transform:scale(1.04)}
.dt2-tc-img::after{content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,15,35,.30), transparent 40%, transparent 56%, rgba(6,15,35,.74))}
.dt2-tc-tag{position:absolute; left:11px; top:11px; z-index:2; font-family:var(--dt2-f-mono);
  font-size:9.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:#3b2404; background:var(--dt2-accent); border-radius:4px; padding:3px 7px}
.dt2-tc-rate{position:absolute; right:11px; top:11px; z-index:2; font-family:var(--dt2-f-mono);
  font-size:11px; font-weight:700; color:#fff; background:rgba(8,16,32,.62); border-radius:5px; padding:3px 7px}
.dt2-tc-rate i{font-style:normal; color:#ffc257; margin-right:3px}
.dt2-tc-dur{position:absolute; left:12px; bottom:10px; z-index:2; font-size:11.5px; font-weight:600;
  color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.55); font-family:var(--dt2-font)}
.dt2-tc-body{display:flex; flex-direction:column; gap:5px; padding:13px 14px 14px}
.dt2-tc-body > b{font-size:14.5px; line-height:1.36; color:var(--dt2-ink); letter-spacing:-.015em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.dt2-tc-zh{font-family:var(--dt2-f-zh); font-size:12px; color:var(--dt2-faint)}
.dt2-tc-pick{font-family:var(--dt2-f-mono); font-size:10.5px; color:var(--dt2-muted)}
.dt2-tc-foot{display:flex; align-items:flex-end; gap:16px; margin-top:4px; padding-top:10px;
  border-top:1px solid var(--dt2-hair-2)}
.dt2-tc-p small{display:block; font-family:var(--dt2-f-mono); font-size:9px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--dt2-faint); margin-bottom:1px}
.dt2-tc-p b{font-family:var(--dt2-f-mono); font-size:16px; color:var(--dt2-brand-deep); letter-spacing:-.02em}
.dt2-tc-p em{font-style:normal; font-family:var(--dt2-f-mono); font-size:10px; color:var(--dt2-faint); margin-left:2px}
.dt2-tc-p2 b{color:var(--dt2-ink)}
.dt2-tc-go{margin-left:auto; display:inline-flex; align-items:center; gap:4px;
  font-family:var(--dt2-f-mono); font-size:10.5px; font-weight:600; color:var(--dt2-brand-dark); white-space:nowrap}
.dt2-tc:hover .dt2-tc-go{color:var(--dt2-brand)}
@media(max-width:900px){ .dt2-tours{grid-template-columns:1fr} }

/* 省份页：城市矩阵（省会 + 旅游城市，无线路的也列） */
.dt2-citymatrix{display:grid; gap:0; border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); overflow:hidden}
.dt2-cmrow{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,1fr); gap:12px;
  align-items:center; padding:11px 14px; border-top:1px solid var(--dt2-hair-2); background:var(--dt2-surface)}
.dt2-cmrow:first-child{border-top:0}
.dt2-cmname b{font-size:13.5px; color:var(--dt2-ink); font-weight:600}
.dt2-cmname span{font-family:var(--dt2-f-zh); font-size:11.5px; color:var(--dt2-faint); margin-left:6px}
.dt2-cmname em{font-style:normal; font-family:var(--dt2-f-mono); font-size:9px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--dt2-brand-dark); background:var(--dt2-brand-soft);
  border-radius:4px; padding:2px 6px; margin-left:7px}
.dt2-cmstation{font-family:var(--dt2-f-mono); font-size:11px; color:var(--dt2-muted)}
.dt2-cmstate{font-size:12px; color:var(--dt2-muted); text-align:right}
.dt2-cmstate a{color:var(--dt2-brand-dark); font-weight:600; text-decoration:none}
.dt2-cmstate a:hover{text-decoration:underline}
@media(max-width:700px){
  .dt2-cmrow{grid-template-columns:1fr; gap:3px; padding:11px 13px}
  .dt2-cmstate{text-align:left}
}

/* 索引页：4 列特色 / 3 列全部 / 「显示全部」按钮 */
@media(min-width:1100px){
  .dt2-tours.dt2-tours-4{grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px}
  .dt2-tours.dt2-tours-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* 只有 900–1099 这一段用两列；≤900 交给上面那条「单列」规则，别把手机挤成两列 */
@media(min-width:900px) and (max-width:1099px){ .dt2-tours.dt2-tours-4{grid-template-columns:repeat(2,minmax(0,1fr))} }
.dt2-morewrap{display:flex; justify-content:center; margin-top:20px}
.dt2-morebtn{font-family:var(--dt2-f-mono); font-size:12px; font-weight:600; letter-spacing:.02em;
  color:var(--dt2-ink); background:var(--dt2-surface); border:1px solid var(--dt2-line);
  border-radius:999px; padding:11px 22px; cursor:pointer; transition:all var(--dt2-dur)}
.dt2-morebtn:hover{border-color:var(--dt2-brand); color:var(--dt2-brand-dark)}

/* 暂无实拍图的线路（询价制新产品）：用排版块代替图片位，不要空一块 */
.dt2-tc-img.is-empty{display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#1a56db 0%,#0f3a94 60%,#0b2b6f 100%)}
.dt2-tc-ph{font-size:15px; font-weight:650; color:#fff; text-align:center; line-height:1.35;
  padding:0 18px; letter-spacing:-.01em}
.dt2-dhero.is-empty{background:linear-gradient(135deg,#0f3a94 0%,#1a56db 55%,#3b7bf0 100%); min-height:320px}

/* 详情页「The honest version」：一段立场文字 + 适合/劝退 两栏 */
.dt2-honest{font-size:15px; line-height:1.7; color:var(--dt2-ink); max-width:70ch; margin:0 0 14px;
  font-family:var(--dt2-font)}
.dt2-who{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.dt2-who > div{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); padding:13px 15px;
  background:var(--dt2-surface)}
.dt2-who h3{display:flex; align-items:center; gap:7px; font-size:11px; font-weight:700;
  font-family:var(--dt2-f-mono); letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px}
.dt2-who .dt2-y h3{color:#0b6b3d}
.dt2-who .dt2-n h3{color:#92400e}
.dt2-who ul{margin:0; padding-left:16px; font-size:13px; line-height:1.65; color:var(--dt2-muted)}
.dt2-who li{margin-bottom:3px}
.dt2-who p{font-size:13px; line-height:1.65; color:var(--dt2-muted); margin:0}
@media(max-width:700px){ .dt2-who{grid-template-columns:1fr} }

/* Quick answers（GEO 层）：问句当小标题，答案一句实打实的话 */
.dt2-qa{display:grid; gap:10px}
.dt2-qarow{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); background:var(--dt2-surface);
  padding:14px 16px}
.dt2-qarow h3{font-size:14px; font-weight:650; color:var(--dt2-ink); letter-spacing:-.01em; line-height:1.4}
.dt2-qarow p{font-size:13px; line-height:1.65; color:var(--dt2-muted); margin-top:6px; font-family:var(--dt2-font)}

/* 详情页 hero 里的「这条线路会去的景点」一行 */
.dt2-sights{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px}
.dt2-sights > span{font-family:var(--dt2-font); font-size:11.5px; color:rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:3px 9px;
  background:rgba(255,255,255,.08); backdrop-filter:blur(2px)}

/* 关键：.dt2 里很多元素自己写了 display:grid/flex，浏览器默认的 [hidden]{display:none}
   会被作者样式盖掉 —— 结果 hidden 完全不起作用（筛选和搜索都白做）。这里强制生效。 */
.dt2 [hidden]{display:none !important}

/* 索引页：搜索框 / 筛选组标签 / 结果提示 */
.dt2-srch{position:relative; display:flex; align-items:center; gap:9px; margin:0 0 14px;
  border:1px solid var(--dt2-line); border-radius:999px; background:var(--dt2-surface);
  padding:0 14px; height:44px; transition:border-color var(--dt2-dur), box-shadow var(--dt2-dur)}
.dt2-srch:focus-within{border-color:var(--dt2-brand); box-shadow:0 0 0 3px rgba(26,86,219,.12)}
.dt2-srch > svg{flex:none; color:var(--dt2-faint)}
.dt2-srch input{flex:1; min-width:0; border:0; outline:none; background:transparent; height:100%;
  font-family:var(--dt2-font); font-size:13.5px; color:var(--dt2-ink)}
.dt2-srch input::placeholder{color:var(--dt2-faint)}
.dt2-srch input::-webkit-search-cancel-button{display:none}
.dt2-srch #tourQClear{flex:none; width:22px; height:22px; border-radius:50%; border:0;
  background:var(--dt2-soft); color:var(--dt2-muted); font-size:15px; line-height:1; cursor:pointer}
.dt2-srch #tourQClear:hover{background:#e8edf6; color:var(--dt2-ink)}
.dt2-flab{font-family:var(--dt2-f-mono); font-size:9.5px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dt2-faint); align-self:center; margin-right:2px; min-width:74px}
.dt2-searchinfo{font-size:13px; color:var(--dt2-muted); font-family:var(--dt2-font); margin:0 0 12px}
.dt2-searchinfo b{color:var(--dt2-ink); font-family:var(--dt2-f-mono)}
@media(max-width:640px){ .dt2-flab{display:none} }

/* 索引页：筛选按钮 + 省份药丸 */
.dt2-filter{display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 16px}
.dt2-fbtn{font-family:var(--dt2-f-mono); font-size:11px; font-weight:600; letter-spacing:.03em;
  color:var(--dt2-muted); background:var(--dt2-surface); border:1px solid var(--dt2-line);
  border-radius:999px; padding:7px 12px; cursor:pointer; transition:all var(--dt2-dur)}
.dt2-fbtn em{font-style:normal; color:var(--dt2-faint); margin-left:3px}
.dt2-fbtn:hover{border-color:#c9d8f7; color:var(--dt2-brand-dark)}
.dt2-fbtn.is-on{background:var(--dt2-ink); border-color:var(--dt2-ink); color:#fff}
.dt2-fbtn.is-on em{color:rgba(255,255,255,.6)}
.dt2-empty{font-size:13px; color:var(--dt2-faint); font-family:var(--dt2-font); padding:20px 0}

.dt2-provrow{display:flex; flex-wrap:wrap; gap:8px; margin-top:4px}
.dt2-provpill{display:inline-flex; align-items:baseline; gap:7px; text-decoration:none;
  border:1px solid var(--dt2-hair); border-radius:999px; padding:7px 13px; background:var(--dt2-surface);
  transition:border-color var(--dt2-dur), background var(--dt2-dur)}
.dt2-provpill:hover{border-color:#c9d8f7; background:#fbfcff}
.dt2-provpill b{font-size:12.5px; color:var(--dt2-ink); font-weight:600}
.dt2-provpill span{font-family:var(--dt2-f-mono); font-size:10px; color:var(--dt2-faint)}

.dt2-provgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:6px}
.dt2-prov{display:flex; flex-direction:column; gap:6px; border:1px solid var(--dt2-hair);
  border-radius:var(--dt2-r-sm); padding:15px 16px; background:var(--dt2-surface); text-decoration:none;
  transition:border-color var(--dt2-dur), box-shadow var(--dt2-dur), transform var(--dt2-dur)}
.dt2-prov:hover{border-color:#c9d8f7; box-shadow:var(--dt2-sd-2); transform:translateY(-1px)}
.dt2-prov-top b{font-size:15px; color:var(--dt2-ink); letter-spacing:-.01em}
.dt2-prov-top span{font-family:var(--dt2-f-zh); font-size:11.5px; color:var(--dt2-faint); margin-left:6px}
.dt2-prov-tag{font-size:12px; line-height:1.55; color:var(--dt2-muted); font-family:var(--dt2-font)}
.dt2-prov-foot{display:flex; align-items:center; justify-content:space-between; margin-top:6px;
  font-family:var(--dt2-f-mono); font-size:10.5px; color:var(--dt2-faint)}
@media(max-width:900px){ .dt2-provgrid{grid-template-columns:1fr 1fr} }
@media(max-width:600px){ .dt2-provgrid{grid-template-columns:1fr} }

/* 车型 / 司导价目表（dt2-vlist） */
.dt2-vlist{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm); overflow:hidden; margin-top:14px}
.dt2-vrow{display:grid; grid-template-columns:minmax(0,1.1fr) 104px minmax(0,1.5fr) auto;
  gap:14px; align-items:center; padding:12px 15px; background:var(--dt2-surface);
  border-bottom:1px solid var(--dt2-hair-2)}
.dt2-vrow:last-child{border-bottom:0}
.dt2-vrow .dt2-nm b{display:block; font-size:13.5px; color:var(--dt2-ink); letter-spacing:-.01em}
.dt2-vrow .dt2-nm span{display:block; font-family:var(--dt2-f-mono); font-size:10.5px; color:var(--dt2-faint); margin-top:2px}
.dt2-vrow .dt2-seats{font-family:var(--dt2-f-mono); font-size:11.5px; color:var(--dt2-muted); white-space:nowrap}
.dt2-vrow .dt2-for{font-size:12.5px; line-height:1.5; color:var(--dt2-muted); font-family:var(--dt2-font)}
.dt2-vrow .dt2-pr{text-align:right; font-family:var(--dt2-f-mono); font-size:13px; font-weight:700;
  color:var(--dt2-brand-deep); white-space:nowrap}
.dt2-vrow .dt2-pr small{display:block; font-size:10px; font-weight:500; color:var(--dt2-faint); margin-top:1px}
/* 司导表没有「人数」列，三列布局 */
.dt2-vrow.dt2-vrow-g{grid-template-columns:minmax(0,1.1fr) minmax(0,2fr) auto}
@media(max-width:760px){
  .dt2-vrow{grid-template-columns:minmax(0,1fr) auto; row-gap:5px}
  .dt2-vrow .dt2-seats{grid-column:1; grid-row:2}
  .dt2-vrow .dt2-for{grid-column:1/-1; grid-row:3}
  .dt2-vrow .dt2-pr{grid-column:2; grid-row:1 / span 2; align-self:start}
  .dt2-vrow.dt2-vrow-g{grid-template-columns:minmax(0,1fr) auto}
  .dt2-vrow.dt2-vrow-g .dt2-for{grid-row:2}
}

/* 手机上把「中文原版」浮层缩成圆点：原来那个长条压在正文和底栏之间，遮挡太多。
   只作用于 v2 页面（<html class="dt2-page">），老页面不受影响。 */
@media(max-width:1080px){
  .dt2-page .tt-zhbtn{width:38px; height:38px; padding:0; border-radius:50%;
    justify-content:center; font-size:0; gap:0; right:12px;}
  .dt2-page .tt-zhbtn .dot{display:none;}
  .dt2-page .tt-zhbtn::after{content:'中文'; font-size:11px; font-weight:700; color:#fff; letter-spacing:0;}
}

/* 页面底部「下一步」卡片（原来是两个大橙色按钮，太重） */
.dt2-next{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; margin-top:14px}
.dt2-nextcard{position:relative; display:block; border:1px solid var(--dt2-hair);
  border-radius:var(--dt2-r-sm); padding:15px 42px 15px 16px; background:var(--dt2-surface);
  text-decoration:none; transition:border-color var(--dt2-dur), box-shadow var(--dt2-dur), transform var(--dt2-dur)}
.dt2-nextcard:hover{border-color:#c9d8f7; box-shadow:var(--dt2-sd-2); transform:translateY(-1px)}
.dt2-nextcard .dt2-k{font-family:var(--dt2-f-mono); font-size:9.5px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--dt2-accent-ink)}
.dt2-nextcard b{display:block; font-size:14px; color:var(--dt2-ink); margin-top:5px; letter-spacing:-.01em}
.dt2-nextcard .dt2-d{display:block; font-size:12px; line-height:1.55; color:var(--dt2-muted);
  margin-top:4px; font-family:var(--dt2-font)}
.dt2-nextcard > svg{position:absolute; right:15px; top:50%; transform:translateY(-50%); color:var(--dt2-faint)}
.dt2-nextcard:hover > svg{color:var(--dt2-brand)}
@media(max-width:640px){ .dt2-next{grid-template-columns:1fr} }

/* 图片来源那一行小字（CC BY-SA 要求署名） */
.dt2-credit{font-family:var(--dt2-font); font-size:10.5px; line-height:1.55; color:var(--dt2-faint);
  margin:9px 0 0}

.dt2-minihead{font-family:var(--dt2-f-mono); font-size:10px; font-weight:600; letter-spacing:.11em;
  text-transform:uppercase; color:var(--dt2-faint); margin:22px 0 0}

/* 时间线按钮旁边那句时间说明 */
.dt2-runnote{font-family:var(--dt2-font); font-size:11.5px; color:var(--dt2-faint); line-height:1.5}

/* 面板里指向说明页的小链接（新窗口） */
.dt2-morelink{display:inline-flex; align-items:center; gap:5px; margin:10px 0 0;
  font-family:var(--dt2-f-mono); font-size:10.5px; font-weight:600; color:var(--dt2-brand-dark);
  text-decoration:none; border-bottom:1px dashed rgba(26,86,219,.35); padding-bottom:1px}
.dt2-morelink:hover{color:var(--dt2-brand); border-bottom-color:var(--dt2-brand)}

/* 三栏说明卡（私家团说明页用） */
.dt2-cards3{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px}
.dt2-cards3 > div{border:1px solid var(--dt2-hair); border-radius:var(--dt2-r-sm);
  padding:14px 15px; background:var(--dt2-surface)}
.dt2-cards3 b{display:block; font-size:13.5px; color:var(--dt2-ink); margin-bottom:5px; letter-spacing:-.01em}
.dt2-cards3 span{display:block; font-size:12.5px; color:var(--dt2-muted); line-height:1.6; font-family:var(--dt2-font)}
@media(max-width:860px){ .dt2-cards3{grid-template-columns:1fr} }

/* 竖线从第一颗圆点开始，别顶到段落上沿（原稿只裁了最后一行） */
.dt2-rrow:first-child .dt2-tlrail::before{top:26px}

/* ≤1080 面板是固定底栏，页面底部要留出 62px，否则最后一段被压住（原稿只在 ≤640 留了） */
@media(max-width:1080px){ .dt2{padding-bottom:78px} }

/* ---------- 手机折叠态：标题栏只留「Book this route + 价格 + Book」 ---------- */
@media(max-width:1080px){
  .dt2-book:not(.dt2-open) .dt2-book-hd .dt2-sub{display:none}
  .dt2-book:not(.dt2-open) .dt2-book-hd h2{font-size:14.5px; white-space:nowrap}
}

/* ---------- CTA 下面那行小字（说明下一步是填资料，不是直接扣款） ---------- */
.dt2-ctasub{font-family:var(--dt2-f-mono); font-size:10px; color:var(--dt2-faint);
  text-align:center; margin-top:7px; line-height:1.5}

