.itinerary-section { overflow: hidden; padding: clamp(84px, 10vw, 144px) 0 clamp(94px, 11vw, 156px); background: #fffaf5; }
.itinerary-head { width: min(1180px, calc(100% - 44px)); margin: 0 auto 68px; }
.itinerary-head h2 { max-width: 760px; }
.itinerary-head p:last-child { max-width: 650px; margin-bottom: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.62; }
.itinerary-stage { position: relative; display: grid; grid-template-columns: minmax(280px, .43fr) minmax(550px, .57fr); align-items: center; width: min(1320px, calc(100% - 44px)); min-height: 610px; margin: 0 auto clamp(86px, 11vw, 150px); }
.itinerary-stage:last-child { margin-bottom: 0; }
.itinerary-city { position: absolute; z-index: 0; top: -58px; left: 25%; margin: 0; color: rgba(78, 31, 86, .055); font-size: clamp(5.6rem, 13vw, 12rem); font-weight: 800; letter-spacing: -.09em; line-height: .8; pointer-events: none; white-space: nowrap; }
.itinerary-photo { z-index: 1; grid-column: 1; width: 100%; height: 610px; overflow: hidden; background: var(--deep); }
.itinerary-photo img { width: 100%; height: 100%; object-fit: cover; }
.itinerary-photo--bangkok img { object-position: 46% center; }
.itinerary-photo--north img, .itinerary-photo--islands img { object-position: center; }
.itinerary-days { z-index: 2; grid-column: 2; display: grid; gap: 13px; width: calc(100% + 10px); margin-left: -72px; }
.itinerary-day { position: relative; display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 26px; min-height: 124px; padding: 23px 34px 23px 28px; border: 1px solid transparent; border-radius: 13px; color: #fff; background: #4e1f56; box-shadow: 0 17px 31px rgba(49, 17, 55, .16); cursor: default; transition: transform 220ms cubic-bezier(.2,.8,.2,1), box-shadow 220ms ease, border-color 220ms ease, background-color 220ms ease; }
.itinerary-day:nth-child(even) { background: #55225c; }
.itinerary-day--feature { background: #612665; }
.itinerary-day:hover { z-index: 3; border-color: rgba(255, 189, 24, .72); background: #612665; box-shadow: 0 25px 44px rgba(49, 17, 55, .29); transform: translateX(10px) translateY(-3px); }
.itinerary-day:hover .itinerary-date { border-color: var(--sun); }
.itinerary-day:hover .itinerary-copy h3 { color: var(--sun); }
.itinerary-date { display: grid; align-content: center; gap: 5px; padding-right: 25px; border-right: 3px solid rgba(255, 255, 255, .94); text-align: center; }
.itinerary-date strong { color: #fff; font-size: 1.6rem; font-weight: 500; letter-spacing: -.05em; line-height: 1; }
.itinerary-date span { color: rgba(255, 255, 255, .96); font-size: .95rem; font-weight: 500; line-height: 1; }
.itinerary-copy { align-self: center; }
.itinerary-copy h3 { margin: 0 0 8px; color: #fff; font-size: clamp(1.33rem, 1.9vw, 1.72rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.08; }
.itinerary-copy p { margin: 0; color: rgba(255, 255, 255, .92); font-size: 1rem; line-height: 1.43; }
@media (max-width: 940px) { .itinerary-stage { grid-template-columns: minmax(250px, .43fr) minmax(450px, .57fr); } .itinerary-days { margin-left: -48px; } .itinerary-day { grid-template-columns: 102px minmax(0,1fr); gap: 20px; padding-right: 24px; } .itinerary-date { padding-right: 19px; } }
@media (max-width: 700px) { .itinerary-section { padding: 76px 0 92px; } .itinerary-head { width: calc(100% - 44px); margin-bottom: 47px; } .itinerary-head h2 { font-size: clamp(2.42rem, 11vw, 3.25rem); line-height: 1.01; } .itinerary-head p:last-child { font-size: 1rem; } .itinerary-stage { display: block; width: 100%; min-height: 0; margin: 0 0 75px; padding: 0 22px; } .itinerary-city { top: -24px; left: 13px; font-size: clamp(4.3rem, 20vw, 6.5rem); } .itinerary-photo { width: 100%; height: 318px; } .itinerary-photo--bangkok img { object-position: 43% center; } .itinerary-days { width: calc(100% - 26px); gap: 11px; margin: -38px 0 0 13px; } .itinerary-day { grid-template-columns: 79px minmax(0,1fr); gap: 14px; min-height: 0; padding: 20px 16px 20px 14px; border-radius: 11px; } .itinerary-date { padding-right: 13px; border-width: 2px; } .itinerary-date strong { font-size: 1.27rem; } .itinerary-date span { font-size: .78rem; } .itinerary-copy h3 { margin-bottom: 6px; font-size: 1.16rem; line-height: 1.12; } .itinerary-copy p { font-size: .91rem; line-height: 1.45; } }
@media (max-width: 700px), (prefers-reduced-motion: reduce) { .itinerary-day { transition: border-color 160ms ease, background-color 160ms ease; } .itinerary-day:hover { transform: none; } }

@media (max-width: 700px) {
  .itinerary-stage { margin-bottom: 68px; padding: 0; }
  .itinerary-city { display: none; }
  .itinerary-photo { width: calc(100% - 44px); height: 248px; margin: 0 auto; border-radius: 2px; }
  .itinerary-photo--bangkok img { object-position: center 57%; }
  .itinerary-days { width: calc(100% - 44px); margin: -24px auto 0; }
  .itinerary-day { padding: 19px 17px 19px 15px; border-radius: 13px; box-shadow: 0 13px 27px rgba(49, 17, 55, .16); }
  .itinerary-day + .itinerary-day { margin-top: 1px; }
}

.campaign-inclusions { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: clamp(34px, 8vw, 112px); padding: clamp(78px, 10vw, 126px) max(22px, calc((100% - var(--max)) / 2)); background: var(--sand); }
.campaign-inclusions > div:first-child { max-width: 490px; }
.campaign-page .campaign-inclusions h2 { margin-bottom: 18px; font-size: clamp(2.35rem, 4.5vw, 4.5rem); }
.campaign-inclusions > div:first-child > p:last-child { margin: 0; color: var(--muted); font-size: 1.05rem; line-height: 1.58; }
.inclusions-grid { display: grid; gap: 16px; }
.inclusion-card { padding: 28px 30px; border-radius: 16px; background: #fff; box-shadow: 0 14px 30px rgba(43, 14, 49, .07); }
.inclusion-card h3 { margin: 0 0 18px; font-size: 1.02rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.inclusion-card ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.inclusion-card li { position: relative; padding-left: 27px; color: var(--deep); font-size: 1rem; line-height: 1.45; }
.inclusion-card li::before { position: absolute; left: 0; font-weight: 800; }
.inclusion-card--yes h3 { color: #c36f00; }
.inclusion-card--yes li::before { color: var(--plum); content: "✓"; }
.inclusion-card--no { border: 1px solid rgba(78, 31, 86, .12); background: rgba(255,255,255,.58); }
.inclusion-card--no h3 { color: var(--plum); }
.inclusion-card--no li::before { color: var(--plum); content: "×"; font-size: 1.35rem; line-height: .85; }
.inclusion-card em { color: var(--muted); font-style: normal; }
.campaign-price .inclusion-jump { width: 100%; margin-top: 2px; border: 1px solid var(--plum); color: var(--plum); background: transparent; }
.campaign-price .inclusion-jump:hover { border-color: var(--sun); color: var(--deep); background: var(--sun); }
@media (max-width: 700px) { .campaign-inclusions { grid-template-columns: 1fr; gap: 33px; padding: 72px 22px; } .campaign-page .campaign-inclusions h2 { font-size: clamp(2.42rem, 11vw, 3.25rem); line-height: 1.01; } .inclusion-card { padding: 24px 20px; } .inclusion-card li { font-size: .96rem; } }
.guide-section { display: grid; grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr); gap: clamp(42px, 9vw, 136px); align-items: start; padding: clamp(88px, 11vw, 156px) max(22px, calc((100% - var(--max)) / 2)); background: #fff; }
.guide-photo { position: sticky; top: 112px; width: min(100%, 480px); aspect-ratio: .72; justify-self: center; margin: 0; overflow: hidden; border: 10px solid #eee6da; border-radius: 48% 48% 7% 7% / 24% 24% 4% 4%; background: var(--sand); box-shadow: 0 24px 55px rgba(43,14,49,.2); }
.guide-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; }
.guide-copy { max-width: 645px; }
.campaign-page .guide-section h2 { margin-bottom: 5px; color: var(--deep); font-size: clamp(3.4rem, 6vw, 6.5rem); font-weight: 700; letter-spacing: -.075em; }
.guide-role { margin-bottom: 31px; color: var(--plum); font-size: 1.1rem; font-weight: 700; }
.guide-copy > p:not(.section-kicker):not(.guide-role):not(.guide-signature):not(.guide-closing) { margin-bottom: 18px; color: var(--muted); font-size: 1.05rem; line-height: 1.66; }
.guide-signature { margin: 24px 0 13px; color: var(--plum); font-size: 1.1rem; font-weight: 800; letter-spacing: .12em; }
.guide-copy blockquote { margin: 34px 0; padding: 25px 28px; border-left: 4px solid var(--sun); color: #fff; background: var(--deep); font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 600; letter-spacing: -.05em; line-height: 1.06; }
.guide-closing { margin: 31px 0 23px; color: var(--deep); font-size: clamp(1.28rem, 2vw, 1.65rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.18; }
.guide-copy .button { margin-top: 0; }
@media (max-width: 850px) { .guide-section { grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr); gap: 44px; } }
@media (max-width: 700px) { .guide-section { grid-template-columns: 1fr; gap: 34px; padding: 74px 22px; } .guide-photo { position: static; width: min(100%, 390px); margin: 0 auto; } .guide-photo img { object-position: 50% 13%; } .campaign-page .guide-section h2 { font-size: clamp(3.2rem, 14vw, 4.5rem); } .guide-role { margin-bottom: 25px; } .guide-copy > p:not(.section-kicker):not(.guide-role):not(.guide-signature):not(.guide-closing) { font-size: 1rem; line-height: 1.62; } .guide-copy blockquote { margin: 28px 0; padding: 23px 21px; font-size: 1.75rem; } .guide-copy .button { width: 100%; } }
.campaign-next .waitlist-group-cta { width: fit-content; margin-top: 16px; }
.waitlist-alternative { margin: 0 0 5px; padding: 13px 14px; border-radius: 10px; color: var(--deep); background: var(--sand); font-size: .88rem; font-weight: 600; line-height: 1.45; }
@media (max-width: 700px) { .campaign-next .waitlist-group-cta { width: 100%; } }
