/* Parent-first editorial refinements: retain the Nanjing identity, reduce visual weight. */
:root {
  --sans: "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif;
  --wrap: min(1180px, calc(100vw - 56px));
}
body { color: #142c3d; }
h1, h2 { font-family: var(--sans); font-weight: 650; letter-spacing: -.045em; }
h2 { font-size: clamp(30px, 3.5vw, 46px); line-height: 1.3; }
section[id], details[id] { scroll-margin-top: 100px; }
.site-header { position: sticky; top: 0; height: 76px; background: rgba(10,26,41,.97); backdrop-filter: blur(12px); border-bottom-color: rgba(255,255,255,.12); }
.desktop-nav { font-size: 14px; gap: 22px; }
.header-cta { font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; border-radius: 6px; }
.eyebrow { font-size: 12px; letter-spacing: .09em; }
.hero { min-height: 660px; }
.hero-copy { max-width: none; padding-top: 68px; padding-bottom: 160px; }
h1 { max-width: 750px; font-size: clamp(50px, 6.4vw, 84px); line-height: 1.11; margin-bottom: 20px; }
h1 span { display: inline-block; }
.hero-camp-name { font-size: 18px; font-weight: 500; }
.hero-text { max-width: 480px; font-size: 16px; line-height: 1.8; margin-bottom: 23px; }
.hero-quick-price { max-width: 510px; padding: 14px 18px; border-radius: 0 9px 9px 0; }
.hero-quick-price b { font-size: 21px; }
.hero-quick-price span { font-size: 14px; }
.hero-actions { gap: 13px; }
.button { min-height: 48px; border-radius: 7px; font-size: 14px; gap: 15px; padding: 0 20px; }
.button-ghost { border-color: rgba(255,255,255,.36); }
.hero-metrics { bottom: 34px; }
.hero-metrics b { font-family: var(--sans); font-size: 24px; font-weight: 600; }
.hero-metrics span { font-size: 12px; }
.hero-scroll { display: none; }
.price-ticker .wrap { min-height: 58px; }
.price-ticker span { font-size: 13px; }
.price-ticker b { font-family: var(--sans); font-size: 16px; font-weight: 600; }
.section-shortcuts { border-bottom: 1px solid var(--line); background: var(--paper); }
.section-shortcuts .wrap { display: flex; justify-content: space-between; gap: 24px; padding: 15px 0; overflow-x: auto; }
.section-shortcuts a { white-space: nowrap; font-size: 14px; color: #314a5a; padding: 7px 3px; min-height: 40px; }
.section-shortcuts a:hover { color: var(--red); }
.organizer-row { grid-template-columns: 1fr .85fr; gap: 40px; }
.organizer-row h2 { font-size: 28px; }
.organizer-logos figure { border: 0; border-radius: 8px; }
.organizer-logos img { height: 94px; }
.organizers { padding: 28px 0; }
.partner-environment { width: var(--wrap); margin: 22px auto 0; border-top: 1px solid var(--line); color: #49606b; }
.partner-environment > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 0; cursor: pointer; font-size: 14px; }
.partner-environment summary span { font-size: 12px; }
.partner-environment > p { font-size: 13px; padding-top: 8px; }
.partner-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.partner-photos figure { margin: 0; }
.partner-photos img { height: 230px; object-fit: contain; background: #e8e4d9; border-radius: 8px; }
.partner-photos figcaption { font-size: 12px; padding-top: 7px; }
.promise, .journey, .coaches, .choice, .fees, .practical, .faq, .register, .flight, .destinations { padding-top: 70px; padding-bottom: 70px; }
.stay { padding-top: 70px; }
.promise-intro, .heading-split { gap: 5vw; }
.promise-copy { padding-top: 12px; }
.promise-grid { margin-top: 38px; }
.promise-grid article { min-height: 170px; }
.promise-grid h3 { font-family: var(--sans); font-size: 21px; margin-top: 18px; }
.promise-grid p { color: rgba(255,255,255,.83); }
.learning-fold { margin-top: 22px; padding-top: 12px; border-top: 1px solid var(--light-line); }
.learning-fold summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 10px 0; color: var(--gold-light); font-size: 15px; }
.learning-fold > div { max-width: 830px; padding-top: 15px; }
.learning-fold p { font-size: 14px; color: rgba(255,255,255,.83); }
.section-heading { margin-bottom: 30px; }
.heading-split > p { font-size: 15px; color: #52616a; }
.light-heading > p { color: rgba(255,255,255,.83); }
.itinerary-controls { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 12px; }
.itinerary-controls span { font-size: 13px; color: #596a71; }
.itinerary-controls button { min-height: 44px; padding: 9px 15px; border: 1px solid #b6b8ac; border-radius: 6px; background: transparent; color: #243f4d; font-size: 14px; }
.itinerary-day summary { grid-template-columns: 45px 115px minmax(220px,1fr) minmax(160px,.55fr) 22px; min-height: 85px; }
.day-no { font-family: var(--sans); font-size: 24px; }
.day-title { font-family: var(--sans); font-size: 20px; font-weight: 600; }
.day-date, .day-label { font-size: 12px; letter-spacing: 0; }
.itinerary-body { padding-left: 175px; gap: 20px; }
.itinerary-body b { font-size: 13px; }
.itinerary-body p { color: #3e5663; }
.schedule-note { font-size: 12px; color: #52616a; align-items: flex-start; }
.schedule-note span { margin-top: 6px; }
.coach-card { border-radius: 12px; }
.coach-photo img { object-position: center; }
.coach-title { font-size: 14px; }
.coach-role { font-size: 12px; }
.coach-badges span, .coach-results span { font-size: 12px; }
.coach-badges span { border-radius: 5px; }
.coach-content > p:not(.coach-role):not(.coach-title) { color: rgba(255,255,255,.87); }
.coach-results { margin-top: 12px; }
.credential-panel summary { font-family: var(--sans); font-size: 16px; min-height: 54px; }
.credential-list li, .credential-list > p { font-size: 14px; }
.credential-list h4 { font-size: 14px; }
.destination-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.destination-grid article { overflow: hidden; border-radius: 12px; background: #eeeade; }
.destination-grid img { height: 235px; }
.destination-grid h3 { font-family: var(--sans); font-size: 24px; font-weight: 600; }
.destination-grid article > div { padding: 22px; }
.choice-card { min-height: 0; padding: 28px; border-radius: 12px; }
.choice-card h3 { font-family: var(--sans); font-size: 28px; font-weight: 600; }
.choice-letter { font-family: var(--sans); font-size: 55px; }
.choice-kicker { font-size: 12px; }
.choice-days b { font-family: var(--sans); font-size: 17px; }
.choice-card li, .choice-days span { font-size: 14px; }
.choice-intro { font-size: 15px; }
.choice-note p { font-size: 14px; }
.choice-note b { font-size: 13px; }
.fees-layout { gap: 5vw; }
.fee-cards { gap: 10px; }
.fee-cards article { border-radius: 0 0 8px 8px; min-height: 130px; }
.fee-cards span { font-size: 12px; }
.fee-cards b { font-family: var(--sans); font-size: 25px; font-weight: 600; }
.fee-cards p { font-size: 12px; }
.calculator { border-radius: 12px; box-shadow: 0 12px 32px rgba(10,26,41,.1); }
.calculator h3 { font-family: var(--sans); font-size: 24px; font-weight: 600; }
.calculator-heading { font-size: 12px; }
.counter-row > span small { display: block; font-size: 12px; color: rgba(255,255,255,.67); }
.counter button { border-radius: 6px; }
.grand-total strong { font-family: var(--sans); font-size: 30px; font-weight: 650; }
.plan-day { border-radius: 7px; }
.plan-day label { min-height: 44px; }
.calculator-preview-link { display: block; margin-top: 12px; text-align: center; font-size: 13px; text-decoration: underline; color: var(--gold-light); }
.calculator a[hidden] { display: none; }
.hotel-facts, .flight-card, .registration-form { border-radius: 12px; }
.hotel-gallery button { border-radius: 8px; }
.hotel-disclaimer { margin-bottom: 14px; }
.place-tags { padding-bottom: 35px; }
.place-tags b { font-family: var(--sans); font-size: 15px; }
.flight-card > b { font-family: var(--sans); font-weight: 600; }
.flight-times strong { font-family: var(--sans); font-weight: 600; }
.faq-list summary { font-family: var(--sans); font-size: 17px; }
.faq-list p { font-size: 15px; color: #3e5663; }
.faq-filters button { border-radius: 6px; }
.register { background: linear-gradient(115deg,#204b5a,#102d43); }
.registration-form { box-shadow: 0 12px 30px rgba(0,0,0,.12); }
.form-heading span { font-family: var(--sans); font-size: 22px; font-weight: 600; }
.payment-info { border-radius: 12px; margin-top: 35px; }
.mobile-action-bar { display: none; }
.form-success { color: #214939; border-radius: 7px; }
@media (max-width: 980px) {
  :root { --wrap: min(calc(100vw - 36px), 700px); }
  body { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .site-header { height: 68px; padding: 0 18px; }
  .mobile-nav { max-height: calc(100svh - 68px); overflow-y: auto; }
  .menu-button { min-width: 44px; min-height: 44px; align-content: center; justify-content: end; }
  .hero { min-height: 650px; }
  .hero-copy { padding-top: 45px; padding-bottom: 150px; }
  .hero-text { max-width: 520px; }
  .hero-metrics { bottom: 28px; }
  .hero-metrics > div { min-height: 48px; }
  .organizer-row { grid-template-columns: 1fr; gap: 18px; }
  .organizer-logos img { height: 88px; }
  .promise, .journey, .coaches, .choice, .fees, .practical, .faq, .register, .flight, .destinations { padding: 52px 0; }
  .stay { padding-top: 52px; }
  .promise-intro, .heading-split { gap: 20px; }
  .promise-grid { margin-top: 26px; }
  .itinerary-day summary { grid-template-columns: 36px 1fr 22px; gap: 9px; }
  .itinerary-body { padding: 0 8px 24px 45px; }
  .destination-grid { grid-template-columns: 1fr; }
  .destination-grid article { display: grid; grid-template-columns: .85fr 1.15fr; }
  .destination-grid img { height: 100%; min-height: 245px; }
  .coach-featured { grid-template-columns: .36fr .64fr; }
  .mobile-action-bar { display: flex; position: fixed; right: 0; bottom: 0; left: 0; z-index: 35; gap: 10px; padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); background: rgba(247,244,236,.97); border-top: 1px solid var(--line); backdrop-filter: blur(12px); }
  .mobile-action-bar a { display: flex; justify-content: center; align-items: center; flex: 1; min-height: 44px; border-radius: 6px; font-size: 14px; font-weight: 600; background: #e9e2d4; }
  .mobile-action-bar a:last-child { color: white; background: #164f42; }
  .floating-cta { display: none; }
}
@media (max-width: 560px) {
  h1 { font-size: 44px; line-height: 1.13; letter-spacing: -.045em; }
  .hero { min-height: 615px; }
  .hero-copy { padding-top: 30px; }
  .hero .eyebrow { font-size: 12px; flex-wrap: wrap; letter-spacing: .03em; gap: 8px; }
  .hero .eyebrow span { width: 12px; }
  .hero-camp-name { font-size: 16px; line-height: 1.7; }
  .hero-text { font-size: 15px; line-height: 1.8; margin-bottom: 17px; }
  .hero-quick-price b { font-size: 17px; }
  .hero-quick-price { padding: 11px 13px; }
  .hero-quick-price span { font-size: 13px; }
  .hero-actions { gap: 9px; }
  .hero-actions .button { padding: 0 12px; font-size: 13px; gap: 8px; }
  .hero-metrics b { font-size: 19px; }
  .hero-metrics span { font-size: 11px; }
  .price-ticker span { font-size: 12px; }
  .section-shortcuts .wrap { width: 100%; padding: 9px 18px; gap: 18px; }
  .section-shortcuts a { font-size: 13px; }
  .partner-environment summary { align-items: flex-start; flex-direction: column; gap: 3px; }
  .partner-photos { gap: 10px; }
  .partner-photos img { height: 155px; }
  .promise-grid article { padding: 14px 0; }
  .promise-grid h3 { margin-top: 10px; }
  .itinerary-controls { align-items: flex-start; flex-direction: column; gap: 8px; }
  .itinerary-controls button { width: 100%; }
  .day-title { font-size: 17px; line-height: 1.6; }
  .coach-featured { grid-template-columns: 1fr; }
  .coach-featured .coach-photo { height: 300px; min-height: 0; }
  .coach-featured .coach-photo img { object-position: 50% 32%; }
  .coach-content { padding: 25px 21px; }
  .coach-badges span { font-size: 12px; }
  .destination-grid article { display: block; }
  .destination-grid img { height: 210px; min-height: 0; }
  .destination-grid article > div { padding: 20px; }
  .choice-card { padding: 25px 21px; }
  .choice-days { grid-template-columns: 1fr; gap: 18px; }
  .choice-note { gap: 10px; }
  .fee-cards b { font-size: 24px; }
  .counter-row { font-size: 15px; }
  .calc-result > div { gap: 10px; font-size: 13px; }
  .grand-total strong { font-size: 28px; }
  .calculator { padding: 23px; }
  .plan-days { grid-template-columns: 1fr; }
  .registration-form { padding: 21px; }
  .form-heading { align-items: flex-start; gap: 8px; flex-wrap: wrap; }
  .form-heading small { font-size: 12px; }
  .footer-bottom { font-size: 12px; }
}

@media(max-width:980px) { .header-cta { display: none; } }
