/* Shared secondary landing and content styles. */
.tao-inner-header {
  position: relative;
  z-index: 30;
  color: var(--tao-color-paper);
  background: var(--tao-color-brand-dark);
}

.tao-inner-header__inner {
  min-height: 5.25rem;
  display: flex;
  align-items: center;
  gap: 2.5rem;
}

.tao-inner-hero {
  position: relative;
  min-height: 34rem;
  display: flex;
  align-items: end;
  overflow: hidden;
  color: var(--tao-color-paper);
  background: var(--tao-color-brand-dark);
}

.tao-inner-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(31,18,15,.74), rgba(31,18,15,.28) 65%, rgba(31,18,15,.08));
}

.tao-inner-hero__image,
.tao-inner-hero__image .elementor-widget-container,
.tao-inner-hero__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.tao-inner-hero__image img { object-fit: cover; }
.tao-inner-hero__content { position: relative; z-index: 2; padding-block: 7rem 4.5rem; }
.tao-inner-hero__title .elementor-heading-title {
  max-width: 15ch;
  margin: 0;
  color: inherit;
  font-family: var(--tao-font-display);
  font-size: clamp(3.3rem, 6vw, 5.6rem);
  font-weight: 600;
  line-height: .94;
  letter-spacing: -.04em;
}
.tao-inner-hero__intro { max-width: 44rem; margin-top: 1.4rem; color: rgba(255,254,252,.86); font-size: 1.06rem; }
.tao-inner-hero__intro p { margin: 0; }

.tao-editorial-intro { background: var(--tao-color-cream); }
.tao-editorial-split { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(3rem,7vw,6rem); align-items: start; }
.tao-editorial-copy { color: var(--tao-color-muted); }
.tao-editorial-copy .tao-lead { color: var(--tao-color-ink); font-family: var(--tao-font-display); font-size: 1.65rem; line-height: 1.4; }
.tao-editorial-copy p { margin: 0 0 1rem; }

.tao-listing-section { background: var(--tao-color-paper); }
.tao-archive-title { margin: 0; font-family: var(--tao-font-display); font-size: clamp(3rem,6vw,5rem); line-height: 1; font-weight: 600; }
.tao-archive-card-title { margin: 0; font-family: var(--tao-font-display); font-size: 2rem; line-height: 1.05; }
.tao-archive-card-title a { color: inherit; text-decoration: none; }
.tao-listing-section--blog { padding-top: 1rem; }
.tao-listing-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; margin-top: 3rem; }
.tao-listing-card { overflow: hidden; border: 1px solid var(--tao-color-line); border-radius: var(--tao-radius-card); background: var(--tao-color-paper); box-shadow: var(--tao-shadow-soft); }
.tao-listing-card__image { margin: 0; overflow: hidden; }
.tao-listing-card__image img { display: block; width: 100%; height: 18rem; object-fit: cover; border-radius: 0; }
.tao-listing-card__body { padding: 1.8rem; }
.tao-listing-card__title .elementor-heading-title { margin: 0; font-family: var(--tao-font-display); font-size: clamp(1.7rem,2.4vw,2.2rem); line-height: 1.05; font-weight: 600; }
.tao-listing-card__excerpt { margin-top: .75rem; color: var(--tao-color-muted); font-size: .92rem; }
.tao-listing-card__excerpt p { margin: 0; }
.tao-text-link { display: inline-block; margin-top: 1.15rem; color: var(--tao-color-brand); font-size: .8rem; font-weight: 750; text-decoration: none; }

.tao-three-principles { background: var(--tao-color-sand); }
.tao-principle-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.2rem; margin-top: 2.5rem; }
.tao-principle-grid > * { padding: 1.75rem; border: 1px solid var(--tao-color-line); background: var(--tao-color-paper); }
.tao-principle-grid span { color: var(--tao-color-brand); font-family: var(--tao-font-display); font-size: 2rem; }
.tao-principle-grid h3 { margin: 1rem 0 .5rem; font-family: var(--tao-font-display); font-size: 1.55rem; }
.tao-principle-grid p { margin: 0; color: var(--tao-color-muted); font-size: .9rem; }

.tao-inner-cta { text-align: center; background: var(--tao-color-cream); }
.tao-inner-cta__content { align-items: center; }
.tao-inner-cta .tao-section-title .elementor-heading-title { max-width: 18ch; }
.tao-inner-cta p { max-width: 42rem; margin: 1.2rem auto 1.6rem; color: var(--tao-color-muted); }
.tao-inner-cta .tao-button { width: auto; }
.tao-cta-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.tao-route-budget-btn--outline {
  border: 1px solid var(--tao-color-brand);
  background: transparent;
  color: var(--tao-color-brand);
  box-shadow: none;
}
.tao-route-budget-btn--outline:hover,
.tao-route-budget-btn--outline:focus-visible {
  background: var(--tao-color-brand);
  color: #fff;
}

.tao-blog-welcome { text-align: center; background: var(--tao-color-paper); }
.tao-blog-welcome__content { align-items: center; }
.tao-blog-welcome .tao-section-title .elementor-heading-title { max-width: 19ch; }
.tao-blog-welcome .tao-section-intro { margin-inline: auto; }
.tao-growing-note { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.6rem; margin-top: 2rem; background: var(--tao-color-cream); }
.tao-growing-note p { margin: 0; color: var(--tao-color-muted); }
.tao-growing-note .tao-button { width: auto; flex: 0 0 auto; }

/* Native single/archive fallback, intentionally data-driven until Elementor Pro Theme Builder is licensed. */
.tao-native-page { margin: 0; color: var(--tao-color-ink); background: var(--tao-color-paper); }
.tao-native-header { color: var(--tao-color-paper); background: var(--tao-color-brand-dark); }
.tao-native-header__inner { min-height: 5.25rem; display: flex; align-items: center; gap: 2.5rem; }
.tao-native-nav { display: flex; gap: 1.5rem; margin-left: auto; }
.tao-native-nav a { color: inherit; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.tao-native-hero { position: relative; min-height: 35rem; display: flex; align-items: end; overflow: hidden; color: var(--tao-color-paper); background: var(--tao-color-brand-dark); }
.tao-native-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(31,18,15,.75),rgba(31,18,15,.25) 70%); }
.tao-native-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tao-native-hero__content { position:relative; z-index:2; padding-block:6.5rem 4.5rem; }
.tao-native-hero h1 { max-width:min(18ch, 900px); margin:0; font-family:var(--tao-font-display); font-size:clamp(3.2rem,6vw,5.8rem); line-height:.94; font-weight:600; letter-spacing:-.04em; }
.tao-native-hero p { max-width:44rem; color:rgba(255,254,252,.86); font-size:1.05rem; }
.tao-native-meta { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem; }
.tao-native-meta span { padding:.5rem .75rem; border:1px solid rgba(255,255,255,.35); border-radius:999px; font-size:.72rem; }
.tao-native-main { width:min(54rem,calc(100% - 2.5rem)); padding-block:5rem; margin-inline:auto; }
.tao-native-main > p,
.tao-native-main li { color:#463d39; font-size:1.03rem; line-height:1.82; }
.tao-native-main .tao-lead { color:var(--tao-color-ink); font-family:var(--tao-font-display); font-size:1.65rem; line-height:1.42; }
.tao-native-main h2 { margin:3.2rem 0 1rem; font-family:var(--tao-font-display); font-size:clamp(2.3rem,4vw,3.4rem); line-height:1.07; }
.tao-native-main blockquote { padding:1.5rem 1.8rem; margin:2rem 0; border-left:4px solid var(--tao-color-brand); background:var(--tao-color-cream); font-family:var(--tao-font-display); font-size:1.45rem; }
.tao-callout { display:block; padding:1.5rem; margin:2rem 0; border-left:4px solid var(--tao-color-brand); background:var(--tao-color-cream); }
.tao-callout strong { display:block; margin-bottom:.4rem; color:var(--tao-color-brand); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }
.tao-callout p { margin:0; font-family:var(--tao-font-display); font-size:1.25rem; }
.tao-callout--warning { border-left-color:#b36a21; background:#fff5e7; }
.tao-fact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding-block:2rem; }
.tao-fact { padding:1.2rem; border-top:1px solid var(--tao-color-line); }
.tao-fact strong { display:block; color:var(--tao-color-brand); }
.tao-itinerary-list { display:grid; gap:.8rem; margin-top:2rem; }
.tao-itinerary-day { display:grid; grid-template-columns:4.5rem 1fr; gap:1rem; padding:1.3rem; border:1px solid var(--tao-color-line); background:var(--tao-color-cream); }
.tao-itinerary-day__number { color:var(--tao-color-brand); font-family:var(--tao-font-display); font-size:2rem; }
.tao-itinerary-day h3 { margin:0; font-family:var(--tao-font-display); font-size:1.45rem; }
.tao-itinerary-day small { display:block; color:var(--tao-color-brand); font-weight:700; }
.tao-itinerary-day p { margin:.5rem 0 0; color:var(--tao-color-muted); font-size:.9rem; }
.tao-native-cta { padding:2.5rem; margin-top:3.5rem; color:var(--tao-color-paper); background:var(--tao-color-brand); }
.tao-native-cta h2 { margin-top:0; color:inherit; }
.tao-native-cta p { color:rgba(255,254,252,.8); }
.tao-native-cta a { display:inline-block; padding:.8rem 1.2rem; color:var(--tao-color-brand); border-radius:999px; background:var(--tao-color-paper); font-weight:750; text-decoration:none; }

@media(max-width:960px){
  .tao-editorial-split{grid-template-columns:1fr;}
  .tao-listing-grid{grid-template-columns:1fr;}
  .tao-principle-grid{grid-template-columns:1fr;}
  .tao-native-nav{display:none;}
}
@media(max-width:680px){
  .tao-inner-hero{min-height:29rem;}
  .tao-inner-hero__content{padding-block:5.5rem 3.5rem;}
  .tao-inner-hero__title .elementor-heading-title{font-size:clamp(3rem,14vw,4rem);}
  .tao-listing-card__image img{height:14rem;}
  .tao-growing-note{align-items:stretch;flex-direction:column;}
  .tao-growing-note .tao-button,.tao-growing-note .elementor-button{width:100%;}
  .tao-fact-grid{grid-template-columns:1fr;}
  .tao-itinerary-day{grid-template-columns:3.5rem 1fr;}
  .tao-native-hero{min-height:30rem;}
  .tao-native-hero__content{padding-block:5rem 3.5rem;}
}

/* Trip single: route map, itinerary, detail cards and CTA box. */
.tao-trip-map { padding: 100px 0; background: var(--tao-color-cream, #fbf8f4); color: var(--tao-color-ink); }
.tao-trip-map__grid { width: min(1180px, calc(100% - 48px)); display: grid; grid-template-columns: minmax(260px,.64fr) minmax(0,1.36fr); gap: 56px; align-items: center; margin-inline: auto; }
.tao-eyebrow { display: inline-block; color: var(--tao-color-brand); font-weight: 700; letter-spacing: .15em; text-transform: uppercase; font-size: .7rem; }
.tao-trip-map__copy h2, .tao-section-title-xl { font-family: var(--tao-font-display), serif; font-size: clamp(2.4rem,4.4vw,3.9rem); line-height: 1.04; letter-spacing: -.025em; color: var(--tao-color-ink); margin: 0 0 20px; font-weight: 600; }
.tao-trip-map h2 { color: var(--tao-color-ink); }
.tao-trip-map__copy p { color: var(--tao-color-muted); max-width: 480px; margin: 0 0 22px; line-height: 1.72; }
.tao-map-citylist { display: inline-flex; flex-wrap: wrap; gap: 8px; padding: 12px 17px; border-radius: 999px; background: var(--tao-color-sand); color: var(--tao-color-brand); font-size: .76rem; font-weight: 700; letter-spacing: .05em; }
.tao-map-card { padding: 14px; border: 1px solid var(--tao-color-line); border-radius: 30px; background: linear-gradient(145deg,#fbf6f1 0%,#f4ebe3 100%); box-shadow: var(--tao-shadow-soft); }
.china-route-svg { display: block; width: 100%; height: auto; aspect-ratio: 920/620; border-radius: 20px; }
.map-grid { stroke: rgba(122,32,26,.07); stroke-width: 1; }
.china-land { fill: #fff; stroke: rgba(122,32,26,.18); stroke-width: 2.5; filter: drop-shadow(0 7px 12px rgba(123,25,20,.12)); }
.route-halo { fill: none; stroke: rgba(255,255,255,.92); stroke-width: 13; stroke-linecap: round; stroke-linejoin: round; }
.route-path { fill: none; stroke: var(--tao-color-brand); stroke-width: 5.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 2 12; }
.city-marker .outer { fill: #fff; stroke: var(--tao-color-brand); stroke-width: 3; }
.city-marker .inner { fill: var(--tao-color-brand); }
.city-marker .number { fill: #fff; font-family: var(--tao-font-body), sans-serif; font-size: 13px; font-weight: 700; text-anchor: middle; dominant-baseline: central; }
.city-label rect { fill: rgba(251,246,241,.95); stroke: rgba(122,32,26,.16); rx: 10; }
.city-label text { font-family: var(--tao-font-body), sans-serif; font-size: 15px; font-weight: 700; fill: var(--tao-color-ink); paint-order: stroke; stroke: #fbf6f1; stroke-width: 6; stroke-linejoin: round; }
.map-caption { margin-top: 10px; padding: 0 8px 4px; color: var(--tao-color-muted); font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; text-align: right; }

@media (max-width: 900px) {
  .tao-trip-map { padding: 64px 0; }
  .tao-trip-map__grid { grid-template-columns: 1fr; gap: 34px; width: calc(100% - 42px); }
}
@media (max-width: 640px) {
  .tao-trip-map__grid { width: calc(100% - 30px); }
  .tao-map-card { padding: 8px; border-radius: 22px; }
  .city-label text { font-size: 13px; }
  .route-halo { stroke-width: 9; }
  .route-path { stroke-width: 4.2; }
}

/* Trip single: itinerary timeline, intro facts, Beijing extension, planning CTA. */
.tao-trip-intro { padding: 88px 0; background: #fff; }
.tao-trip-intro__grid { width: min(1180px, calc(100% - 48px)); display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); gap: 70px; align-items: start; margin-inline: auto; }
.tao-trip-intro__copy p { color: var(--tao-color-muted); font-size: 1.06rem; line-height: 1.8; margin: 18px 0 0; max-width: 680px; }
.tao-trip-facts { padding: 28px; border: 1px solid var(--tao-color-line); border-radius: 26px; background: var(--tao-color-sand); }
.tao-trip-facts .tao-fact { padding: 15px 0; border-bottom: 1px solid var(--tao-color-line); }
.tao-trip-facts .tao-fact:last-child { border-bottom: 0; padding-bottom: 0; }
.tao-trip-facts small { display: block; margin-bottom: 5px; color: var(--tao-color-brand); font-size: .66rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.tao-trip-facts strong { font-size: .95rem; line-height: 1.5; color: var(--tao-color-ink); }
.tao-route-budget-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 20px;
  padding: 12px 24px;
  border-radius: 999px;
  background: var(--tao-color-brand, #771d18);
  color: #fff;
  font-weight: 700;
  font-size: .86rem;
  text-decoration: none;
  box-shadow: 0 10px 26px rgba(122, 32, 26, .15);
  transition: background-color .22s ease-out, color .22s ease-out, transform .22s ease-out, box-shadow .22s ease-out;
}
.tao-route-budget-btn:hover,
.tao-route-budget-btn:focus-visible {
  background: var(--tao-color-brand-dark, #56100e);
  color: #fff !important;
  transform: translateY(-2px);
}
/* 已加入 shortlist：浅底，悬停保持品牌字色 */
.tao-route-budget-btn.add-experience.is-added:hover,
.tao-route-budget-btn.add-experience.is-added:focus-visible {
  background: #fff;
  color: var(--tao-color-brand) !important;
  border-color: var(--tao-color-brand);
  box-shadow: none;
  transform: none;
}

/* Itinerary: continuous vertical timeline with day thumbnails. */
.tao-trip-itinerary { padding: 88px 0; background: #fffaf7; }
.tao-trip-itinerary__head { width: min(1080px, calc(100% - 48px)); margin: 0 auto 54px; }
.tao-trip-days { position: relative; width: min(1080px, calc(100% - 48px)); margin-inline: auto; }
.tao-trip-days::before { content: ""; position: absolute; left: 29px; top: 16px; bottom: 34px; width: 1px; background: linear-gradient(180deg, var(--tao-color-brand) 0%, rgba(139,29,22,.18) 100%); }
.tao-day { position: relative; display: grid; grid-template-columns: minmax(280px,360px) minmax(0,1fr); gap: 42px; align-items: center; padding: 0 0 52px 78px; margin-bottom: 52px; border-bottom: 1px solid rgba(139,29,22,.14); }
.tao-day:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.tao-day::before { content: ""; position: absolute; left: 18px; top: 50%; width: 22px; height: 22px; border-radius: 50%; background: var(--tao-color-brand); border: 5px solid #fffaf7; box-shadow: 0 0 0 1px rgba(139,29,22,.24); transform: translateY(-50%); }
.tao-day__image { aspect-ratio: 4/3; overflow: hidden; border-radius: 24px; background: var(--tao-color-sand); box-shadow: 0 14px 30px rgba(91,11,8,.08); }
.tao-day__image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.tao-day:hover .tao-day__image img { transform: scale(1.025); }
.tao-day__copy { padding-top: 0; }
.tao-day__meta { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 18px; }
.tao-day__number { display: inline-flex; align-items: flex-end; gap: 7px; color: var(--tao-color-brand); line-height: 1; font-weight: 700; }
.tao-day__prefix { font-family: var(--tao-font-body), sans-serif; font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; padding-bottom: 5px; }
.tao-day__digits { font-family: var(--tao-font-display), serif; font-size: clamp(2.25rem, 3.7vw, 3.05rem); font-weight: 600; letter-spacing: -.025em; line-height: .86; font-variant-numeric: lining-nums; }
.tao-day__place { color: var(--tao-color-muted); font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.tao-day h3 { margin: 0 0 15px; color: var(--tao-color-ink); font-family: var(--tao-font-display), serif; font-size: clamp(1.8rem,2.9vw,2.55rem); line-height: 1.05; font-weight: 600; }
.tao-day p { max-width: 680px; color: var(--tao-color-muted); font-size: 1rem; line-height: 1.85; margin: 0; text-align: justify; hyphens: auto; }
.tao-day p strong { color: var(--tao-color-ink); }
.tao-flex-note { max-width: 930px; margin: 44px auto 0; padding-top: 18px; border-top: 1px solid rgba(116,29,24,.14); color: var(--tao-color-muted); font-size: .82rem; font-style: italic; line-height: 1.65; text-align: center; }

@media (max-width: 900px) {
  .tao-trip-intro__grid { grid-template-columns: 1fr; gap: 38px; }
  .tao-trip-days::before { left: 20px; }
  .tao-day { grid-template-columns: 1fr; gap: 24px; padding-left: 58px; align-items: start; }
  .tao-day::before { left: 9px; top: 18px; transform: none; }
  .tao-day__image { aspect-ratio: 16/10; }
}
@media (max-width: 640px) {
  .tao-trip-intro, .tao-trip-itinerary { padding: 64px 0; }
  .tao-trip-intro__grid, .tao-trip-days, .tao-trip-itinerary__head { width: calc(100% - 30px); }
  .tao-trip-days::before { left: 12px; }
  .tao-day { padding-left: 38px; padding-bottom: 38px; margin-bottom: 38px; }
  .tao-day::before { left: 1px; top: 15px; width: 18px; height: 18px; border-width: 4px; transform: none; }
  .tao-day__image { border-radius: 18px; }
  /* 窄屏取消两端对齐，避免字距被拉散 */
  .tao-day p { text-align: left; hyphens: none; }
}

/* Planning：纸感壳 + 品牌数字口音，不再用酒红墙漆 */
.tao-planning { padding: 88px 0; background: var(--tao-color-paper, #fffefc); }
.tao-planning__shell {
  position: relative;
  overflow: hidden;
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
  padding: 64px 58px 58px;
  border-radius: 0;
  border: 1px solid var(--tao-color-line);
  background: var(--tao-color-cream, #fbf8f4);
  color: var(--tao-color-ink);
  box-shadow: none;
}
.tao-planning__shell::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  border-radius: 0;
  background: var(--tao-color-brand);
}
.tao-planning__head { position: relative; z-index: 1; max-width: 42rem; margin-bottom: 56px; }
.tao-planning__head .tao-eyebrow { color: var(--tao-color-brand); letter-spacing: .16em; }
.tao-planning__head h2 {
  margin: 0 0 16px;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(2.3rem, 4vw, 3.45rem);
  line-height: 1.05;
  font-weight: 600;
  text-wrap: balance;
}
.tao-planning__head p {
  max-width: 38rem;
  margin: 0;
  color: var(--tao-color-muted);
  font-size: .98rem;
  line-height: 1.7;
}
.tao-planning__track {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  align-items: start;
}
/* 连线改由每个步骤自绘：2 列 / 1 列断点下不再整体消失（客户 9.18：paso a paso 此处缺线） */
.tao-planning-step::before {
  content: "";
  position: absolute;
  top: 27px;
  left: 54px;
  right: -14px;
  height: 1px;
  background: color-mix(in srgb, var(--tao-color-brand) 32%, transparent);
}
.tao-planning-step:last-child::before {
  display: none;
}
.tao-planning-step {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 11.5rem;
  padding-top: 72px;
}
.tao-planning-step span {
  position: absolute;
  top: 0;
  left: 0;
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--tao-color-brand);
  border: 1px solid color-mix(in srgb, var(--tao-color-brand) 28%, transparent);
  font-family: var(--tao-font-display), serif;
  font-size: 1.28rem;
  font-weight: 700;
  box-shadow: none;
}
.tao-planning-step h3 {
  margin: 0 0 12px;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.2rem, 1.5vw, 1.45rem);
  line-height: 1.2;
  font-weight: 600;
}
.tao-planning-step p {
  margin: 0;
  color: var(--tao-color-muted);
  font-size: .86rem;
  line-height: 1.65;
}

@media (max-width: 900px) {
  .tao-planning__shell { padding: 44px 34px; }
  .tao-planning__head { margin-bottom: 40px; }
  .tao-planning__track { grid-template-columns: 1fr 1fr; gap: 32px 22px; }
  /* 每行最后一个不再向右画线 */
  .tao-planning-step:nth-child(2n)::before { display: none; }
  .tao-planning-step { min-height: 0; }
}
@media (max-width: 640px) {
  .tao-planning { padding: 64px 0; }
  .tao-planning__shell { width: calc(100% - 30px); padding: 36px 25px; border-radius: 27px; }
  .tao-planning__track { grid-template-columns: 1fr; }
  .tao-planning-step { min-height: 0; padding-top: 68px; }
  /* 单列：改为竖向时间线 */
  .tao-planning-step::before,
  .tao-planning-step:nth-child(2n)::before {
    display: block;
    top: 60px;
    left: 27px;
    right: auto;
    bottom: -30px;
    width: 1px;
    height: auto;
  }
  .tao-planning-step:last-child::before { display: none; }
}

/* Guide singles: tip callout, service box, related guides. */
.tao-guide-tip {
  max-width: 760px;
  margin: 34px auto;
  padding: 28px 30px;
  border-left: 4px solid var(--tao-color-brand);
  border-radius: 0 22px 22px 0;
  background: var(--tao-color-sand);
}
.tao-guide-tip strong {
  display: block;
  margin-bottom: 8px;
  color: var(--tao-color-brand);
  font-size: .78rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.tao-guide-tip p {
  margin: 0;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: 1.34rem;
  line-height: 1.42;
}

.tao-service-box {
  width: min(820px, calc(100% - 48px));
  margin: 58px auto 0;
  padding: 1.6rem;
  border: 1px solid var(--tao-color-line);
  border-radius: 0;
  background: var(--tao-color-cream);
  color: var(--tao-color-ink);
  box-shadow: none;
}
.tao-service-box .tao-eyebrow { color: var(--tao-color-brand); }
.tao-service-box h2 {
  margin: 0 0 12px;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.9rem,3.4vw,2.6rem);
  line-height: 1.06;
  font-weight: 600;
}
.tao-service-box p {
  max-width: 680px;
  margin: 0 0 23px;
  color: var(--tao-color-muted);
  line-height: 1.7;
}
.tao-service-box .tao-route-budget-btn { margin-top: 0; }

/* 指南正文：壳 930（原型 .guide-shell）；文字栏 760 由后部「Layout pass 2」统一控制 */
.tao-native-main--guide {
  width: min(930px, calc(100% - 48px));
  padding-block: 4.5rem 5.5rem;
}
.tao-guide-updated {
  margin: 0 0 28px;
  color: var(--tao-color-muted);
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tao-guide-intro { margin-bottom: 36px; }
.tao-guide-intro .tao-lead { margin-bottom: 20px; }
.tao-guide-image {
  overflow: hidden;
  height: clamp(240px, 42vw, 485px);
  margin: 34px 0 52px;
  border-radius: 30px;
}
.tao-guide-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
}
.tao-fact-strip {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin: 28px 0;
}
.tao-fact {
  padding: 18px 0;
  border-top: 1px solid var(--tao-color-line);
}
.tao-fact strong {
  display: block;
  margin-bottom: 5px;
  color: var(--tao-color-brand);
}
.tao-fact span {
  color: var(--tao-color-muted);
  font-size: .94rem;
}
.tao-native-main--guide .tao-guide-service {
  flex-direction: column;
  align-items: stretch;
  margin-top: 58px;
  width: min(820px, calc(100% - 48px)) !important; /* 原型 .service-box: 820px；双类特异性压过 .tao-growing-note */
  max-width: calc(100% - 48px);
}
.tao-guide-service__copy h2 {
  margin: 8px 0 12px;
  max-width: none;
}
.tao-guide-service .tao-route-budget-btn {
  align-self: flex-start;
}
@media (max-width: 640px) {
  .tao-fact-strip { grid-template-columns: 1fr; }
  .tao-guide-image { height: 310px; margin-block: 28px 40px; }
}

.tao-related-guides { padding: 72px 0 84px; background: var(--tao-color-sand); }
/* 体验页相关行程：与上方预算表单拉开间距——cream 与 sand 过于接近，露出白底分界带（参考 guide 页白→沙切换） */
.tao-related-guides--trips { background: var(--tao-color-sand); margin-top: clamp(56px, 8vw, 96px); }
/* 体验页文章壳（.tao-native-main > *）默认把子元素限宽 1180px；相关行程段与 PLANIFICA 一致做全幅 sand 带 */
.tao-native-main > .tao-related-guides--trips { width: 100%; }
.tao-related-guides__head { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.tao-related-guides__grid {
  width: min(1180px, calc(100% - 48px));
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 34px auto 0;
}
.tao-related-card {
  display: block;
  padding: 24px;
  border: 1px solid var(--tao-color-line);
  border-radius: 22px;
  background: #fff;
  text-decoration: none;
  transition: transform .22s ease-out, box-shadow .22s ease-out;
}
.tao-related-card:hover, .tao-related-card:focus-visible { transform: translateY(-3px); box-shadow: var(--tao-shadow-lift); }
.tao-related-card span {
  color: var(--tao-color-brand);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.tao-related-card h3 {
  margin: 10px 0 6px;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: 1.42rem;
  font-weight: 600;
}
.tao-related-card p { margin: 0; color: var(--tao-color-muted); font-size: .89rem; line-height: 1.62; }

/* 体验页相关行程：全宽编辑列表（非两格浮空白卡） */
.tao-related-trips {
  padding: 88px 0 96px;
  background: var(--tao-color-cream, #fbf8f4);
}
.tao-related-trips__inner {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
}
.tao-related-trips__head {
  max-width: 38rem;
  margin-bottom: 40px;
}
.tao-related-trips__head h2,
.tao-related-trips__head .tao-section-title-xl {
  margin: 0;
  max-width: 18ch;
  text-wrap: balance;
}
.tao-related-trips__head p {
  margin: 14px 0 0;
  color: var(--tao-color-muted);
  font-size: 1rem;
  line-height: 1.7;
}
.tao-related-trips__list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--tao-color-line);
}
.tao-related-trip {
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr) auto;
  gap: 22px 28px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--tao-color-line);
  color: inherit;
  text-decoration: none;
  transition: background-color .2s ease;
}
.tao-related-trip:hover,
.tao-related-trip:focus-visible {
  background: color-mix(in srgb, #fff 70%, transparent);
}
.tao-related-trip:focus-visible {
  outline: 2px solid var(--tao-color-brand);
  outline-offset: 3px;
}
.tao-related-trip__media {
  display: block;
  overflow: hidden;
  width: 168px;
  height: 112px;
  background: var(--tao-color-sand);
}
.tao-related-trip__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.22, 1, .36, 1);
}
.tao-related-trip:hover .tao-related-trip__media img {
  transform: scale(1.04);
}
.tao-related-trip__media--empty {
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--tao-color-brand) 12%, transparent), transparent 60%),
    var(--tao-color-sand);
}
.tao-related-trip__copy {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.tao-related-trip__days {
  color: var(--tao-color-brand);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.tao-related-trip__title {
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  font-weight: 600;
  line-height: 1.15;
  text-wrap: balance;
}
.tao-related-trip__cities {
  color: var(--tao-color-muted);
  font-size: .9rem;
  line-height: 1.55;
}
.tao-related-trip__go {
  color: var(--tao-color-brand);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .02em;
  white-space: nowrap;
}
.tao-related-trip:hover .tao-related-trip__go {
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 900px) {
  .tao-related-guides__grid { grid-template-columns: 1fr; width: calc(100% - 42px); }
  .tao-related-guides__head { width: calc(100% - 42px); }
  .tao-related-trips__inner { width: calc(100% - 42px); }
  .tao-related-trip {
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 16px 18px;
  }
  .tao-related-trip__media {
    width: 120px;
    height: 90px;
  }
  .tao-related-trip__go {
    grid-column: 2;
  }
}
@media (max-width: 640px) {
  .tao-guide-tip { width: calc(100% - 30px); padding: 22px; }
  .tao-service-box { width: calc(100% - 30px); padding: 32px 25px; }
  .tao-related-trips { padding: 68px 0 76px; }
  .tao-related-trips__inner { width: calc(100% - 30px); }
  .tao-related-trip {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 20px 0;
  }
  .tao-related-trip__media {
    width: 100%;
    height: 180px;
  }
  .tao-related-trip__go {
    grid-column: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tao-related-trip__media img {
    transition: none;
  }
  .tao-related-trip:hover .tao-related-trip__media img {
    transform: none;
  }
}

/* Experience singles: story split, terms, CTA band, related trips. */
.tao-exp-story { padding: 88px 0; background: #fff; }
.tao-exp-story__grid {
  width: min(1180px, calc(100% - 48px));
  display: grid;
  grid-template-columns: minmax(300px,.85fr) minmax(0,1.15fr);
  gap: 64px;
  align-items: start;
  margin-inline: auto;
}
.tao-exp-story__media { position: relative; }
.tao-exp-story__media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: 26px; box-shadow: var(--tao-shadow-soft); }
.tao-exp-story__note {
  position: absolute;
  right: -18px;
  bottom: 28px;
  max-width: 235px;
  padding: 22px 24px;
  border-radius: 18px 18px 18px 4px;
  background: var(--tao-color-brand);
  color: #fff;
  font-family: var(--tao-font-display), serif;
  font-size: 1rem;
  line-height: 1.45;
  box-shadow: 0 16px 34px rgba(87,18,15,.22);
}
.tao-exp-story__copy h2 { margin-bottom: 20px; }
.tao-exp-story__copy p { margin: 15px 0; color: var(--tao-color-muted); font-size: 1rem; line-height: 1.78; }
.tao-exp-terms { display: grid; gap: 14px; margin-top: 28px; }
.tao-exp-term { padding-top: 14px; border-top: 1px solid var(--tao-color-line); }
.tao-exp-term strong { display: block; margin-bottom: 3px; color: var(--tao-color-ink); font-size: .95rem; }
.tao-exp-term span { color: var(--tao-color-muted); font-size: .9rem; line-height: 1.65; }

.tao-exp-cta { padding: 96px 0 88px; background: #fff !important; text-align: center; }
.tao-exp-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 48rem;
  margin-inline: auto;
  width: calc(100% - 48px);
}
.tao-exp-cta .tao-eyebrow {
  margin-bottom: 18px;
}
.tao-exp-cta h2,
.tao-exp-cta .tao-section-title-xl {
  max-width: 34rem;
  margin: 0 0 20px;
  text-wrap: balance;
  text-align: center;
}
.tao-exp-cta p {
  max-width: 34rem;
  margin: 0 0 32px;
  color: var(--tao-color-muted);
  font-size: 1.02rem;
  line-height: 1.72;
  text-wrap: pretty;
}
.tao-exp-cta .tao-route-budget-btn {
  margin-top: 0;
  color: #fff;
}
.tao-exp-cta .tao-route-budget-btn:hover,
.tao-exp-cta .tao-route-budget-btn:focus-visible {
  color: #fff !important;
}

@media (max-width: 900px) {
  .tao-exp-story { padding: 64px 0; }
  .tao-exp-story__grid { grid-template-columns: 1fr; gap: 42px; width: calc(100% - 42px); }
  .tao-exp-story__note { right: 12px; bottom: 14px; max-width: 210px; }
  .tao-exp-story__media img { aspect-ratio: 16/10; }
}
@media (max-width: 640px) {
  .tao-exp-story__grid { width: calc(100% - 30px); }
  .tao-exp-cta__inner { width: calc(100% - 30px); }
}

/* Planifica hub: intro photo band under the two-column intro. */
.tao-plan-intro__photo { margin-top: 42px; }
.tao-plan-intro__photo img { width: 100%; height: 470px; object-fit: cover; border-radius: 30px; }
@media (max-width: 900px) { .tao-plan-intro__photo img { height: 330px; } }
@media (max-width: 640px) { .tao-plan-intro__photo img { height: 240px; } }

/* Blog hub: card grid polish to match prototype rhythm. */
.tao-listing-section--blog .tao-listing-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 28px; margin-top: 3rem; }
.tao-listing-section--blog .tao-listing-card { padding: 0; background: #fff; border-radius: 28px; overflow: hidden; box-shadow: var(--tao-shadow-soft); transition: transform .25s ease-out, box-shadow .25s ease-out; }
.tao-listing-section--blog .tao-listing-card:hover { transform: translateY(-4px); box-shadow: var(--tao-shadow-lift); }
.tao-listing-section--blog .tao-listing-card .elementor-widget-image { margin: 0; }
.tao-listing-section--blog .tao-listing-card .elementor-widget-image img { display: block; width: 100%; height: 260px; object-fit: cover; border-radius: 0; }
@media (max-width: 900px) { .tao-listing-section--blog .tao-listing-grid { grid-template-columns: 1fr; } }
/* Full-width photo band inside the boxed intro section. */
.tao-shell .tao-plan-intro__photo { width: 100%; }
.tao-plan-intro__photo .elementor-widget-container,
.tao-plan-intro__photo { max-width: none; }
.tao-edited > .tao-plan-intro__photo,
.tao-plan-intro__photo.elementor-widget-image { width: 100%; }

/* ===== Polish pass: unified editorial hero for all native singles ===== */
.tao-native-hero { min-height: 620px; align-items: flex-end; }
.tao-native-hero::after { background: linear-gradient(90deg, rgba(27,14,12,.68) 0%, rgba(27,14,12,.38) 52%, rgba(27,14,12,.10) 100%); }
.tao-native-hero__content { width: min(1180px, calc(100% - 64px)); padding-block: 96px 74px; }
.tao-native-hero__content {
  width: min(1160px, calc(100% - 48px));
  text-align: center !important;
}
.tao-native-hero h1 { max-width: 1050px; margin-left: auto; margin-right: auto; }
.tao-native-hero--trip .tao-native-hero__content {
  width: min(1160px, calc(100% - 48px));
}
.tao-native-hero--trip h1 { max-width: 1050px; }
.tao-native-hero h1,
.tao-native-hero p,
.tao-native-hero .tao-eyebrow--light,
.tao-native-hero--trip h1,
.tao-native-hero--trip p,
.tao-native-hero--trip .tao-eyebrow--light,
.tao-hero-price,
.tao-hero-subtitle,
.tao-native-meta { margin-left: auto; margin-right: auto; }
.tao-native-hero .tao-eyebrow--light { justify-content: center; }
.tao-native-hero h1 { max-width: 850px; font-size: clamp(3.3rem, 6.4vw, 5.9rem); font-weight: 700; text-wrap: balance; }
.tao-native-hero p { margin-top: 18px; font-size: 1.08rem; line-height: 1.7; }
.tao-eyebrow--light {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 13px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  background: #721c17;
  color: #fff;
  backdrop-filter: blur(4px);
}
.tao-eyebrow--light::before { content: ""; display: block; width: 0; height: 0; }

/* Trip hero price/days meta row. */
.tao-native-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 26px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.24); }
.tao-native-meta span { color: rgba(255,255,255,.88); font-size: .82rem; font-weight: 600; letter-spacing: .04em; }
@media (max-width: 900px) {
  .tao-native-hero { min-height: 560px; }
  .tao-native-hero__content { width: calc(100% - 42px); padding-block: 72px 56px; }
}
@media (max-width: 640px) {
  .tao-native-hero { min-height: 500px; }
  .tao-native-hero__content { width: calc(100% - 34px); padding-block: 62px 48px; }
  .tao-native-hero h1 { font-size: clamp(2.9rem, 11vw, 3.6rem); }
}

/* Native main reading rhythm. */
.tao-native-main > * { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.tao-native-main h2 { font-size: clamp(1.9rem, 3vw, 2.5rem); }
.tao-native-main { padding-block: 8px; }

/* Focus visibility on dark hero buttons and links. */
.tao-native-hero a:focus-visible,
.th-nav a:focus-visible { outline-offset: 3px; }

/* Related cards: equal-height rows regardless of copy length. */
.tao-related-guides__grid { align-items: stretch; }
.tao-related-card { height: 100%; box-sizing: border-box; }

/* ===== Polish pass 2: editorial article typography (blog singles) ===== */
.single-post .tao-native-main {
  --tao-article-w: min(860px, calc(100% - 48px));
}
.single-post .tao-native-main .entry-content,
.single-post .tao-native-main article > .tao-shell,
.single-post .tao-native-main { max-width: var(--tao-article-w); }
.single-post .tao-native-main p {
  color: #443d39;
  font-size: 1.04rem;
  line-height: 1.82;
  margin: 0 0 20px;
}
.single-post .tao-native-main p strong { color: var(--tao-color-ink); }
.single-post .tao-native-main h2 {
  margin: 54px 0 18px;
  max-width: none;
  font-size: clamp(2rem, 3.6vw, 3.1rem);
  line-height: 1.06;
}
.single-post .tao-native-main > p:first-of-type,
.single-post .tao-native-main .tao-lead,
.single-post .tao-native-main .tao-article-lead {
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.4rem, 2.2vw, 1.65rem);
  line-height: 1.42;
  color: var(--tao-color-ink);
}
.single-post .tao-article-end {
  margin-top: 3rem;
}
.single-post .tao-native-main h3 {
  margin: 30px 0 10px;
  color: var(--tao-color-brand);
}
.single-post .tao-native-main ul, .single-post .tao-native-main ol { margin: 0 0 20px; color: #443d39; }
.single-post .tao-native-main li { margin: 8px 0; line-height: 1.7; }

/* Lead paragraph: first <p> after the hero reads as display serif. */
.tao-article-lead {
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.4rem, 2.2vw, 1.65rem);
  line-height: 1.42;
  color: var(--tao-color-ink);
}
.tao-article-lead strong { color: var(--tao-color-ink); }

/* Pull quote block (matches prototype .quote). */
.tao-article-quote {
  margin: 34px 0;
  padding: 28px 32px;
  border-left: 4px solid var(--tao-color-brand);
  border-radius: 0 22px 22px 0;
  background: var(--tao-color-sand);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  line-height: 1.4;
}

/* In-article images. */
.tao-native-main .entry-content img,
.single-post .tao-native-main img:not(.custom-logo) {
  height: auto;
  border-radius: 26px;
  margin: 34px 0 26px;
}

@media (max-width: 640px) {
  .single-post .tao-native-main p { font-size: 1rem; }
  .single-post .tao-native-main h2 { margin-top: 40px; }
}

/* ===== Polish pass 3: reveal stagger for native template blocks ===== */
.tao-trip-map, .tao-trip-intro, .tao-trip-itinerary__head, .tao-day, .tao-planning,
.tao-guide-tip, .tao-service-box, .tao-related-guides, .tao-related-trips,
.tao-exp-story, .tao-exp-cta {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .6s ease-out, transform .6s ease-out;
}
html.tao-js.no-io .tao-trip-map, html.tao-js.no-io .tao-trip-intro, html.tao-js.no-io .tao-trip-itinerary__head,
html.tao-js.no-io .tao-day, html.tao-js.no-io .tao-planning, html.tao-js.no-io .tao-guide-tip,
html.tao-js.no-io .tao-service-box, html.tao-js.no-io .tao-related-guides, html.tao-js.no-io .tao-related-trips,
html.tao-js.no-io .tao-exp-story, html.tao-js.no-io .tao-exp-cta {
  opacity: 1; transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .tao-trip-map, .tao-trip-intro, .tao-trip-itinerary__head, .tao-day, .tao-planning,
  .tao-guide-tip, .tao-service-box, .tao-related-guides, .tao-related-trips, .tao-exp-story, .tao-exp-cta {
    opacity: 1 !important; transform: none !important;
  }
}

/* Reveal completion state. */
.tao-trip-map.is-visible, .tao-trip-intro.is-visible, .tao-trip-itinerary__head.is-visible, .tao-day.is-visible,
.tao-planning.is-visible, .tao-guide-tip.is-visible, .tao-service-box.is-visible, .tao-related-guides.is-visible, .tao-related-trips.is-visible,
.tao-exp-story.is-visible, .tao-exp-cta.is-visible { opacity: 1; transform: none; }

/* ===== Polish pass 5: route map draw-in animation ===== */
@media (prefers-reduced-motion: no-preference) {
  .china-route-svg .route-path {
    stroke-dasharray: 2 12;
  }
  .tao-trip-map.is-visible .route-path {
    animation: tao-route-draw 1.6s ease-out both;
  }
  @keyframes tao-route-draw {
    from { stroke-dashoffset: 240; opacity: .2; }
    to { stroke-dashoffset: 0; opacity: 1; }
  }
  .tao-trip-map .city-marker {
    opacity: 0;
    transform: scale(.4);
    transform-origin: center;
    transform-box: fill-box;
    transition: opacity .35s ease-out, transform .35s cubic-bezier(.22,1,.36,1);
  }
  .tao-trip-map.is-visible .city-marker { opacity: 1; transform: scale(1); }
  .tao-trip-map.is-visible .city-marker:nth-of-type(odd) { transition-delay: .45s; }
  .tao-trip-map.is-visible .city-marker:nth-of-type(3n) { transition-delay: .75s; }
  .tao-trip-map .city-label { opacity: 0; transition: opacity .4s ease-out .55s; }
  .tao-trip-map.is-visible .city-label { opacity: 1; }
}

/* ===== Polish pass 6: contrast refinements ===== */
/* Muted text on sand backgrounds: darken for WCAG AA. */
.tao-trip-facts, .tao-guide-tip, .tao-exp-cta, .tao-related-guides, .tao-related-trips {
  --tao-color-muted: #5d544e;
}
.tao-service-box p { color: var(--tao-color-muted); }
.tao-planning-step p { color: var(--tao-color-muted); }
.tao-planning__head p { color: var(--tao-color-muted); }

/* ===== 1:1 对齐当前二级原型最终视觉 ===== */
body.single-tao_trip .tao-native-hero--trip .tao-native-hero__content,
.tao-native-hero--trip .tao-native-hero__content {
  width: 100%;
  max-width: none;
  text-align: center;
}
.tao-native-hero--trip h1 {
  max-width: 1050px;
  margin-left: auto;
  margin-right: auto;
  font-weight: 700;
}
.tao-hero-price {
  margin: 0 auto 10px;
  color: #fff;
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  font-weight: 600;
}
.tao-hero-subtitle {
  margin: 0 auto 17px;
  color: #f5e6de;
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.4rem, 2.6vw, 2.15rem);
}
.tao-native-hero--trip p {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.tao-native-hero--trip .tao-eyebrow--light { margin-inline: auto; }

.tao-route-strip {
  background: var(--tao-color-paper, #fffefc);
  color: var(--tao-color-ink);
  border-block: 1px solid var(--tao-color-line);
  border-bottom: 2px solid var(--tao-color-brand);
}
.tao-route-strip__inner {
  width: min(1160px, calc(100% - 48px));
  display: flex;
  align-items: center;
  gap: 0;
  padding: 18px 0;
  margin-inline: auto;
  overflow: auto;
}
.tao-city-stop {
  display: flex;
  align-items: center;
  white-space: nowrap;
  color: var(--tao-color-ink);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.tao-city-stop:not(:last-child)::after {
  content: "";
  width: 40px;
  height: 1px;
  margin: 0 12px;
  background: color-mix(in srgb, var(--tao-color-brand) 55%, transparent);
}

.tao-trip-map .tao-eyebrow { color: var(--tao-color-brand); }
.tao-trip-map h2 { color: var(--tao-color-ink); }
.tao-trip-map p { color: var(--tao-color-muted); }
.tao-map-citylist {
  background: var(--tao-color-sand);
  color: var(--tao-color-brand);
  border: 1px solid var(--tao-color-line);
}
.tao-map-card {
  background: var(--tao-color-paper, #fffefc);
  border: 1px solid var(--tao-color-line);
  box-shadow: none;
}
.china-land { fill: #f0e4d8; stroke: #7b1914; }

.tao-quick { position: relative; z-index: 3; margin-top: -42px; padding: 0 24px 0; }
.tao-quick__grid {
  width: min(1180px, 100%);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  overflow: hidden;
  margin-inline: auto;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(46,28,23,.12);
}
.tao-quick__item { padding: 25px 28px; border-right: 1px solid var(--tao-color-line); }
.tao-quick__item:last-child { border-right: 0; }
.tao-quick__label { color: var(--tao-color-brand); font-size: .66rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.tao-quick__value { margin-top: 6px; font-family: var(--tao-font-display), serif; font-size: 1.35rem; font-weight: 600; }

.tao-native-main--wide { width: 100%; max-width: none; padding-block: 0; }
.tao-native-main--wide > p,
.tao-native-main--wide > .tao-lead { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }

.tao-trip-includes { padding: 96px 0; background: var(--tao-color-cream, #f7f1ea); }
.tao-trip-includes__inner { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.tao-trip-includes__head { max-width: 42rem; margin-bottom: 52px; }
.tao-trip-includes__head p { margin-top: 14px; color: var(--tao-color-muted); font-size: 1.02rem; line-height: 1.7; }
.tao-include-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.tao-include-item,
.tao-include-item--basic,
.tao-include-item--featured {
  position: relative;
  display: flex;
  flex-direction: column;
  grid-column: auto;
  min-height: 0;
  margin: 0;
  padding: 26px 24px 28px;
  border: 1px solid var(--tao-color-line);
  border-radius: 0;
  background: var(--tao-color-paper, #fffefc);
  box-shadow: none;
  transition: border-color .2s ease, background-color .2s ease;
}
/* 图标取代 01–09 序号，与首页「Qué incluye」同一套语言（客户 9.18 行程页意见） */
.tao-include-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 15px;
  border-radius: 15px;
  color: var(--tao-color-brand);
  background: color-mix(in srgb, var(--tao-color-brand) 8%, transparent);
}
.tao-include-icon svg {
  width: 26px;
  height: 26px;
  stroke-width: 1.9;
}
.tao-include-item:hover,
.tao-include-item--basic:hover,
.tao-include-item--featured:hover {
  border-color: color-mix(in srgb, var(--tao-color-brand) 28%, var(--tao-color-line));
  background: #fff;
}
.tao-include-item h3,
.tao-include-item--basic h3,
.tao-include-item--featured h3 {
  margin: 0;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-body), sans-serif;
  font-size: .96rem;
  font-weight: 700;
  line-height: 1.35;
}
.tao-include-item p,
.tao-include-item--basic p,
.tao-include-item--featured p {
  margin: 9px 0 0;
  color: var(--tao-color-muted);
  font-size: .84rem;
  line-height: 1.62;
}
@media (max-width: 900px) {
  .tao-include-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

.tao-inner-hero > .e-con-inner,
.tao-editorial-intro > .e-con-inner,
.tao-listing-section > .e-con-inner { display: contents; }
.tao-inner-hero.e-con,
.tao-inner-hero {
  position: relative;
  min-height: 520px;
  display: flex !important;
  align-items: flex-end;
  overflow: hidden;
  color: #fff;
}
.tao-inner-hero__image,
.tao-inner-hero__image .elementor-widget-container {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  max-width: none !important;
  height: 100%;
  margin: 0 !important;
}
.tao-inner-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tao-inner-hero__content { position: relative; z-index: 2; }
.tao-inner-hero__title .elementor-heading-title,
.tao-inner-hero .elementor-heading-title {
  color: #fff !important;
  font-family: var(--tao-font-display), serif !important;
  font-weight: 700 !important;
}
.tao-inner-hero__intro,
.tao-inner-hero__intro p { color: rgba(255,254,252,.92) !important; }

.tao-plan-cover-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.tao-plan-cover {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  border-radius: 28px;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 18px 44px rgba(53,29,24,.08);
}
.tao-plan-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tao-plan-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(27,16,14,.06) 10%, rgba(27,16,14,.82) 100%);
}
.tao-plan-cover__copy { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 34px; }
.tao-plan-cover__num { font-family: var(--tao-font-display), serif; font-size: 2.8rem; line-height: 1; color: #f2d6cc; }
.tao-plan-cover h3 { margin-top: 12px; font-family: var(--tao-font-display), serif; font-size: 2.2rem; color: #fff; }
.tao-plan-cover p { margin-top: 10px; max-width: 520px; color: rgba(255,255,255,.84); }
.tao-plan-cover span { display: inline-block; margin-top: 18px; font-size: .82rem; font-weight: 700; }
@media (max-width: 900px) { .tao-plan-cover-grid { grid-template-columns: 1fr; } }
.tao-plan-hub .tao-listing-card__image,
.tao-plan-hub .tao-listing-card__image .elementor-widget-container,
.tao-plan-hub .tao-listing-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tao-plan-hub .tao-listing-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(27,16,14,.06) 10%, rgba(27,16,14,.82) 100%);
}
.tao-plan-hub .tao-listing-card__body {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 34px;
  background: transparent;
}
.tao-plan-hub .tao-listing-card__body,
.tao-plan-hub .tao-listing-card__excerpt,
.tao-plan-hub .tao-listing-card__excerpt p,
.tao-plan-hub .tao-listing-card__title .elementor-heading-title,
.tao-plan-hub .tao-text-link,
.tao-plan-hub .tao-eyebrow { color: #fff !important; }

@media (max-width: 900px) {
  .tao-quick__grid { grid-template-columns: 1fr 1fr; }
  .tao-include-grid { grid-template-columns: 1fr 1fr; }
  .tao-plan-hub .tao-listing-card { min-height: 360px; }
}
@media (max-width: 640px) {
  .tao-quick { margin-top: -25px; }
  .tao-quick__grid { grid-template-columns: 1fr; }
  .tao-quick__item { border-right: 0; border-bottom: 1px solid var(--tao-color-line); }
  .tao-include-grid { grid-template-columns: 1fr; }
}

/* ===== Pass: 行程 Hero 居中 + 地图红底对比度 + 体验完整区块 ===== */
.tao-native-hero.tao-native-hero--trip {
  justify-content: center;
  min-height: 630px;
}
.tao-native-hero.tao-native-hero--exp { min-height: 680px; }
.tao-native-hero.tao-native-hero--trip::after {
  background: linear-gradient(180deg, rgba(20,13,12,.4) 0%, rgba(20,13,12,.58) 100%);
}
.tao-native-hero.tao-native-hero--trip .tao-native-hero__content {
  width: min(1160px, calc(100% - 48px)) !important;
  margin-inline: auto;
  text-align: center !important;
}
.tao-native-hero.tao-native-hero--trip h1 {
  max-width: 1050px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: clamp(3.15rem, 6.2vw, 5.8rem) !important;
  font-weight: 700 !important;
  line-height: .92 !important;
}
.tao-native-hero.tao-native-hero--trip .tao-eyebrow--light,
.tao-native-hero.tao-native-hero--trip .tao-hero-price,
.tao-native-hero.tao-native-hero--trip .tao-hero-subtitle,
.tao-native-hero.tao-native-hero--trip p {
  margin-left: auto !important;
  margin-right: auto !important;
}
.tao-native-hero.tao-native-hero--trip p {
  max-width: 760px !important;
  color: rgba(255,255,255,.9);
  font-size: 1.07rem;
}
/* 行程 Hero：价格方框（客户 9.18 · 例图 image18），顺序改为 城市 → 说明 → 价格 */
.tao-hero-price {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 26px;
  margin-bottom: 0;
  padding: 13px 26px;
  border-radius: 999px;
  background: var(--tao-color-paper, #fffefc);
  color: var(--tao-color-ink);
  box-shadow: 0 18px 44px rgba(20, 13, 12, .22);
}
.tao-hero-price__label {
  color: var(--tao-color-muted);
  font-family: var(--tao-font-body), sans-serif;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.tao-hero-price__value {
  padding-left: 14px;
  border-left: 1px solid var(--tao-color-line-strong, rgba(119, 29, 24, .24));
  color: var(--tao-color-brand);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.6rem, 2.6vw, 2.15rem);
  font-weight: 600;
  line-height: 1;
}
.tao-hero-price__unit {
  color: var(--tao-color-muted);
  font-family: var(--tao-font-body), sans-serif;
  font-size: .78rem;
}
.tao-hero-subtitle {
  margin-bottom: 17px;
  color: #f5e6de;
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.4rem, 2.6vw, 2.15rem);
}

.tao-trip-map .tao-trip-map__copy .tao-eyebrow { color: var(--tao-color-brand) !important; }
.tao-trip-map .tao-trip-map__copy h2 {
  color: var(--tao-color-ink) !important;
  font-family: var(--tao-font-display), serif;
  font-size: clamp(2.4rem, 4.4vw, 3.9rem);
  line-height: 1.04;
  margin: 0 0 20px;
}
.tao-trip-map .tao-trip-map__copy p { color: var(--tao-color-muted) !important; }
.tao-trip-map .tao-map-citylist {
  background: var(--tao-color-sand) !important;
  color: var(--tao-color-brand) !important;
  border: 1px solid var(--tao-color-line);
}
.tao-trip-map .tao-map-card {
  background: var(--tao-color-paper, #fffefc) !important;
  border: 1px solid var(--tao-color-line);
  box-shadow: none;
}
.tao-trip-map .china-land { fill: #f0e4d8 !important; stroke: #7b1914 !important; }

.tao-exp-intro { padding: 88px 0; background: #fff; }
.tao-exp-intro__grid {
  width: min(1180px, calc(100% - 48px));
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 82px;
  align-items: start;
  margin-inline: auto;
}
.tao-exp-intro__copy .tao-lead {
  margin: 0 0 17px;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: 1.62rem;
  line-height: 1.38;
}
.tao-exp-intro__copy p { margin: 0 0 17px; color: var(--tao-color-muted); font-size: 1.01rem; }

.tao-exp-highlights { padding: 88px 0; background: #fff; }
.tao-exp-highlights__inner { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.tao-exp-highlights__head { max-width: 760px; margin-bottom: 44px; }
.tao-exp-highlights__head p { margin-top: 16px; color: var(--tao-color-muted); }
.tao-exp-highlight-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tao-exp-highlight {
  overflow: hidden;
  border-radius: 26px;
  background: var(--tao-color-cream);
}
.tao-exp-highlight img { width: 100%; height: 220px; object-fit: cover; display: block; }
.tao-exp-highlight__copy { padding: 24px; }
.tao-exp-highlight__copy h3 {
  margin: 0 0 9px;
  font-family: var(--tao-font-display), serif;
  font-size: 1.62rem;
  line-height: 1.05;
  font-weight: 600;
}
.tao-exp-highlight__copy p { margin: 0; color: var(--tao-color-muted); font-size: .92rem; }

.tao-exp-surprise {
  padding: 88px 0;
  color: var(--tao-color-ink);
  background: var(--tao-color-paper, #fffefc);
  border-block: 1px solid var(--tao-color-line);
}
.tao-exp-surprise__inner { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.tao-exp-surprise .tao-eyebrow { color: var(--tao-color-brand) !important; }
.tao-exp-surprise h2 {
  max-width: 28rem;
  margin: 0;
  color: var(--tao-color-ink) !important;
  font-family: var(--tao-font-display), serif;
  font-size: clamp(2.2rem, 3.8vw, 3.2rem);
  line-height: 1.08;
  font-weight: 600;
  text-wrap: balance;
}
.tao-exp-surprise__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-top: 48px;
  padding-top: 0;
  border-top: 0;
  counter-reset: tao-surprise;
}
.tao-exp-surprise__item {
  counter-increment: tao-surprise;
  padding-top: 22px;
  border-top: 1px solid var(--tao-color-line);
}
.tao-exp-surprise__item::before {
  content: counter(tao-surprise, decimal-leading-zero);
  display: block;
  margin-bottom: 14px;
  color: var(--tao-color-brand);
  font-family: var(--tao-font-display), serif;
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.02em;
}
.tao-exp-surprise__item h3 {
  margin: 0 0 10px;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.25;
}
.tao-exp-surprise__item p {
  margin: 0;
  color: var(--tao-color-muted);
  font-size: .92rem;
  line-height: 1.65;
}

.tao-exp-practical { padding: 88px 0; background: var(--tao-color-cream); }
.tao-exp-practical__grid {
  width: min(1180px, calc(100% - 48px));
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 74px;
  align-items: center;
  margin-inline: auto;
}
.tao-exp-practical__media img {
  width: 100%;
  height: 480px;
  object-fit: cover;
  border-radius: 30px;
}
.tao-exp-practical__copy p { margin-top: 16px; color: var(--tao-color-muted); }
.tao-exp-practical__list { margin-top: 23px; border-top: 1px solid var(--tao-color-line); }
.tao-exp-practical__row {
  display: grid;
  grid-template-columns: 145px 1fr;
  gap: 22px;
  padding: 15px 0;
  border-bottom: 1px solid var(--tao-color-line);
}
.tao-exp-practical__row strong {
  color: var(--tao-color-brand);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tao-exp-practical__row span { color: var(--tao-color-muted); font-size: .92rem; }

.tao-exp-story { background: var(--tao-color-cream) !important; }

/* ===== 体验页预算表单 + shortlist ===== */
.tao-exp-budget { padding: 94px 0; background: var(--tao-color-cream); }
.tao-exp-budget__inner { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.tao-exp-budget__head { max-width: 790px; margin: 0 auto 44px; text-align: center; }
.tao-exp-budget__head .tao-eyebrow,
.tao-exp-budget__head h2,
.tao-exp-budget__head .tao-section-title-xl,
.tao-exp-budget__head p {
  text-align: center;
}
.tao-exp-budget__head h2,
.tao-exp-budget__head .tao-section-title-xl {
  /* 覆盖 .tao-native-main h2 { max-width:22ch } 左贴：块级需 margin auto 才能居中 */
  max-width: 20ch;
  margin: 0 auto;
  text-wrap: balance;
}
.tao-exp-budget__head p {
  max-width: 40rem;
  margin: 17px auto 0;
  color: var(--tao-color-muted);
  font-size: 1rem;
}
.tao-exp-budget__box {
  max-width: 720px;
  margin: 0 auto;
  padding: 8px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.tao-saved-block {
  margin: 0 auto 40px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--tao-color-line);
  text-align: center;
}
.tao-saved-title {
  margin-bottom: 14px;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -.01em;
}
.tao-selected-experiences {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  min-height: 1.5rem;
}
.tao-exp-chip {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px 8px 14px;
  border-radius: 999px;
  background: var(--tao-color-brand);
  color: #fff;
  font-size: .79rem;
  font-weight: 600;
}
.tao-exp-chip button {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .16);
  color: #fff;
  font: inherit;
  line-height: 1;
  cursor: pointer;
}
.tao-exp-chip button:hover { background: rgba(255, 255, 255, .28); }
.tao-saved-empty { color: var(--tao-color-muted); font-size: .95rem; line-height: 1.55; }
.tao-saved-help { margin-top: 12px; color: var(--tao-color-muted); font-size: .82rem; line-height: 1.6; max-width: 36rem; margin-inline: auto; }
.tao-budget-form__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 21px 24px;
}
.tao-field--full,
.tao-interest-box,
.tao-consent,
.tao-budget-form__submit { grid-column: 1 / -1; }
/* 字段/勾选/兴趣控件样式见 forms.css */
.tao-budget-form__submit {
  width: auto;
  max-width: 280px;
  margin-top: 8px;
  margin-inline: auto;
  border: 0;
  cursor: pointer;
}
.tao-route-budget-btn.add-experience.is-added {
  background: #fff;
  color: var(--tao-color-brand);
  border: 1px solid var(--tao-color-brand);
  box-shadow: none;
}

@media (max-width: 760px) {
  .tao-exp-budget { padding: 72px 0; }
  .tao-exp-budget__box { padding: 4px 0 0; }
  .tao-budget-form__grid { grid-template-columns: 1fr; }
  .tao-field--full,
  .tao-interest-box,
  .tao-consent,
  .tao-budget-form__submit { grid-column: auto; }
  .tao-budget-form__submit { max-width: none; width: 100%; }
}

@media (max-width: 900px) {
  .tao-exp-intro__grid,
  .tao-exp-practical__grid { grid-template-columns: 1fr; gap: 44px; }
  .tao-exp-highlight-grid,
  .tao-exp-surprise__grid { grid-template-columns: 1fr; }
  .tao-exp-practical__media img { height: 380px; }
}
@media (max-width: 640px) {
  .tao-native-hero.tao-native-hero--trip { min-height: 590px; }
  .tao-exp-practical__row { grid-template-columns: 1fr; gap: 3px; }
  .tao-exp-highlight img { height: 205px; }
}

/* =========================================================
   Phase 4 收官：二级页纸感 / 焦点 / 间距
   ========================================================= */
.tao-native-main > p,
.tao-native-main li {
  color: var(--tao-color-muted, #6f625c);
}
.tao-listing-card {
  box-shadow: none;
  background: var(--tao-color-paper);
  transition: border-color .2s ease, background-color .2s ease;
}
.tao-listing-card:hover {
  border-color: color-mix(in srgb, var(--tao-color-brand) 28%, var(--tao-color-line));
  background: var(--tao-color-cream, #f7f1ea);
}
.tao-listing-card__image img {
  transition: transform .55s cubic-bezier(.22, 1, .36, 1);
}
@media (prefers-reduced-motion: no-preference) {
  .tao-listing-card:hover .tao-listing-card__image img {
    transform: scale(1.03);
  }
}
.tao-text-link:focus-visible,
.tao-archive-card-title a:focus-visible,
.tao-native-nav a:focus-visible,
.tao-button:focus-visible,
.th-nav-cta .elementor-button:focus-visible,
.th-menu-item > a:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--tao-color-brand) 70%, transparent);
  outline-offset: 3px;
}

/* 二级页品牌底按钮：悬停保持白字（避免被 a:hover 继承成深色） */
.tao-native-page a.tao-route-budget-btn:hover,
.tao-native-page a.tao-route-budget-btn:focus-visible,
.tao-native-page button.tao-route-budget-btn:hover,
.tao-native-page button.tao-route-budget-btn:focus-visible,
.tao-exp-budget .tao-route-budget-btn:hover,
.tao-exp-budget .tao-route-budget-btn:focus-visible,
.tao-exp-cta a.tao-route-budget-btn:hover,
.tao-exp-cta a.tao-route-budget-btn:focus-visible {
  color: #fff !important;
}
.tao-native-page a.tao-route-budget-btn.add-experience.is-added:hover,
.tao-native-page a.tao-route-budget-btn.add-experience.is-added:focus-visible {
  color: var(--tao-color-brand) !important;
}
.tao-principle-grid > * {
  border-radius: 0;
  box-shadow: none;
}
.tao-growing-note {
  border: 1px solid var(--tao-color-line);
}
.tao-native-main h2 {
  max-width: 22ch;
}
.tao-native-main--guide h2 {
  max-width: none;
}
.tao-native-main .tao-callout p {
  margin: 0;
  color: var(--tao-color-muted);
}

/* ===== Layout pass 2: Hero 垂直居中、内容宽度、相关模块统一 ===== */
.tao-native-hero {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: clamp(520px, 72vh, 640px) !important;
}

.tao-native-hero--exp {
  min-height: clamp(560px, 74vh, 680px) !important;
}

.tao-native-hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: var(--tao-content-shell) !important;
  max-width: calc(100% - 48px);
  margin-inline: auto !important;
  padding-block: clamp(2.5rem, 6vh, 4rem) !important;
  text-align: center !important;
}

.tao-native-hero h1,
.tao-native-hero p,
.tao-native-hero .tao-eyebrow--light,
.tao-native-hero .tao-hero-price,
.tao-native-hero .tao-hero-subtitle {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.tao-native-hero .tao-eyebrow--light {
  justify-content: center;
}

.tao-native-meta,
.tao-native-meta--pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px 14px;
  width: 100%;
  margin-top: 1.35rem;
}

.tao-native-meta--pills {
  padding-top: 0;
  border-top: 0;
}

.tao-native-meta--pills span {
  padding: 8px 13px;
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 999px;
  background: rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .88);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: none;
}

/* 正文宽度：长文 860px，指南 760px，区块壳 1180px */
.tao-native-main {
  width: 100%;
  max-width: none;
  padding-block: clamp(4rem, 8vw, 5.5rem);
  margin-inline: auto;
}

.tao-native-main > :not(.tao-growing-note):not(.tao-related-guides):not(.tao-guide-service):not(.tao-article-end) {
  width: var(--tao-content-reading);
  max-width: calc(100% - 48px);
  margin-inline: auto;
}

.single-post .tao-native-main,
.single-post .tao-native-main > :not(.tao-growing-note):not(.tao-article-end) {
  width: var(--tao-content-reading);
  max-width: calc(100% - 48px);
}

/* 指南页：壳 930（原型 .guide-shell），文字元素 760（原型 .guide-intro/.text-col/.updated）；
   figure 图、fact-strip 保持壳宽，service CTA 820（原型 .service-box） */
.tao-native-main--guide {
  width: var(--tao-content-guide-shell);
  max-width: calc(100% - 48px);
}
.tao-native-main--guide > :not(.tao-growing-note):not(.tao-related-guides):not(.tao-guide-service):not(.tao-fact-strip):not(figure):not(.tao-article-end) {
  width: var(--tao-content-guide);
  max-width: calc(100% - 48px);
  margin-inline: auto;
}
/* 图与 fact-strip 用满 930 壳宽（原型 .guide-image/.fact-strip 在 .guide-shell 内全宽）；
   !important 压过上方 .tao-native-main > :not(...) 全局限宽 (0,5,0) */
.tao-native-main--guide > figure,
.tao-native-main--guide > .tao-fact-strip {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto;
}
.tao-native-main--guide > .tao-guide-service {
  width: min(820px, calc(100% - 48px));
}

.tao-native-main--wide {
  width: 100%;
  max-width: none;
}
/* 体验页区块（intro/story/highlights/practical/budget/related 的全宽色带）自带 1180px 设计宽度；
   !important 压过上方 (0,5,0) 全局限宽；p/h2 等正文元素仍保持 reading 宽 */
.tao-native-main--wide > *:not(p):not(.tao-lead):not(.tao-callout):not(h2) {
  width: auto !important;
  max-width: none !important;
}

.tao-native-main--wide > p,
.tao-native-main--wide > .tao-lead,
.tao-native-main--wide > .tao-callout,
.tao-native-main--wide > h2 {
  width: var(--tao-content-reading);
  max-width: calc(100% - 48px);
  margin-inline: auto;
}

.tao-growing-note,
.tao-article-end {
  width: var(--tao-content-reading) !important;
  max-width: calc(100% - 48px);
  margin-inline: auto;
}
.tao-listing-section .tao-growing-note,
.tao-blog-page .tao-growing-note {
  width: 100% !important;
  max-width: none;
}
.tao-growing-note .tao-route-budget-btn {
  flex: 0 0 auto;
  white-space: nowrap;
  margin-top: 0;
}

.single-post .tao-native-main h2,
.tao-native-main--guide h2,
.tao-native-main--wide h2 {
  max-width: none;
}

/* 相关推荐：指南 / 体验行程共用 sand + 三列卡 */
.tao-related-guides__head {
  width: var(--tao-content-shell);
  max-width: calc(100% - 48px);
  margin-inline: auto;
}

.tao-related-guides__head p {
  max-width: 42rem;
  margin-top: .85rem;
  color: var(--tao-color-muted);
  font-size: 1rem;
  line-height: 1.65;
}

.tao-related-guides__grid {
  width: var(--tao-content-shell);
  max-width: calc(100% - 48px);
}

/* 博客正文组件（原型 article） */
.tao-article-image,
.single-post .tao-native-main .tao-article-image {
  display: block;
  width: 100%;
  height: clamp(220px, 42vw, 440px);
  margin: 34px 0 26px;
  border-radius: 30px;
  object-fit: cover;
}

.tao-article-quote {
  margin: 34px 0;
  padding: 28px 32px;
  border-left: 4px solid var(--tao-color-brand);
  border-radius: 0 22px 22px 0;
  background: var(--tao-color-sand);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  line-height: 1.4;
  color: var(--tao-color-ink);
}

.sources-note {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--tao-color-line);
  color: var(--tao-color-muted);
  font-size: .82rem;
  line-height: 1.6;
}

.sources-note a {
  color: var(--tao-color-brand);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.simple-list {
  display: grid;
  gap: 0;
  margin: 24px 0;
}

.simple-row {
  padding: 18px 0;
  border-top: 1px solid var(--tao-color-line);
}

.simple-row:last-child {
  border-bottom: 1px solid var(--tao-color-line);
}

.simple-row strong {
  display: block;
  margin-bottom: 4px;
  color: var(--tao-color-brand);
}

@media (max-width: 900px) {
  .tao-native-hero__content {
    max-width: calc(100% - 42px);
  }

  .tao-related-guides__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .tao-native-hero {
    min-height: 480px !important;
  }

  .tao-native-hero__content {
    max-width: calc(100% - 34px);
    padding-block: 2.5rem !important;
  }
}

/* ===== 法律页(Aviso legal / Privacidad / Cookies):Elementor 模板化 =====
   hero + 提示条 + 正文容器全部由 _elementor_data 输出;此处只管正文容器内排版 */
/* Hero 导语纯白:!important 压过 Elementor kit 的 .elementor-widget-text-editor{color:var(--e-global-color-text)}(灰) */
.tao-legal-hero .elementor-widget-text-editor,
.tao-legal-hero .elementor-widget-text-editor p {
  color: #FFFFFF !important;
}
.tao-legal-body .elementor-widget-text-editor {
  color: #463d39;
  font-size: 1.01rem;
  line-height: 1.78;
}
.tao-legal-body h2 {
  margin: 2.4rem 0 .85rem;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.6rem, 2.6vw, 2.1rem);
  font-weight: 600;
}
.tao-legal-body p { margin: 0 0 1.05rem; }
.tao-legal-body ul {
  margin: 0 0 1.2rem 1.3rem;
  list-style: disc;
}
.tao-legal-body li { margin-bottom: .45rem; }
.tao-legal-body .tao-lead {
  margin-bottom: 1.5rem;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: 1.26rem;
  line-height: 1.55;
}

/* ===== 法律页模板 (page-legal.php):深红 hero + 纸感正文,与 Elementor 版同视觉 ===== */
.tao-legal-hero--template {
  padding: 84px 0 72px;
  background-color: #771d18;
  color: #ffffff;
  text-align: center;
}
.tao-legal-hero--template .tao-legal-title {
  margin: 0;
  color: #ffffff;
  font-family: var(--tao-font-display), serif;
  font-size: clamp(2.6rem, 5vw, 3.9rem);
  font-weight: 600;
  line-height: 1.06;
  letter-spacing: -0.02em;
}
.tao-legal-hero--template .tao-legal-reviewed {
  margin: 18px 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.tao-legal-body {
  padding: 72px 0 88px;
  background-color: var(--tao-color-cream, #fbf8f4);
}
.tao-legal-body .tao-legal-content {
  max-width: 860px;
  margin-inline: auto;
  color: #463d39;
  font-size: 1.01rem;
  line-height: 1.78;
}
.tao-legal-body h3 {
  margin: 2.2rem 0 0.85rem;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  font-weight: 600;
  line-height: 1.2;
}
.tao-legal-body h4 {
  margin: 1.9rem 0 0.7rem;
  color: var(--tao-color-ink);
  font-family: var(--tao-font-display), serif;
  font-size: clamp(1.15rem, 1.9vw, 1.4rem);
  font-weight: 600;
  line-height: 1.25;
}
.tao-legal-body a {
  color: var(--tao-color-brand, #771d18);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 640px) {
  .tao-legal-hero--template { padding: 64px 0 52px; }
  .tao-legal-body { padding: 52px 0 64px; }
}

