/* Shared editorial standard, loaded only by reviewed guide pages.
   Map components, their containers, typography and .shell rules are excluded.
   Apply gsSection only to sections without maps, or to their text sibling. */
:root {
  --mtr-standard-heading-font: Georgia, "Times New Roman", serif;
  --mtr-standard-body-font: Arial, Helvetica, sans-serif;
  --mtr-standard-content-width: 1120px;
  --mtr-standard-copy-width: 44rem;
  --mtr-standard-section-space: clamp(2.75rem, 5.5vw, 5rem);
  --mtr-standard-rule: rgba(23, 53, 45, .18);
  --mtr-standard-card-radius: 12px;
}

.guideStandard[data-guide-standard] .gsSection { padding-block: var(--mtr-standard-section-space); }
.guideStandard[data-guide-standard] .gsSection.shell {
  width: min(var(--mtr-standard-content-width), calc(100% - 48px));
  margin-inline: auto;
}
.guideStandard[data-guide-standard] .gsSection > .shell,
.guideStandard[data-guide-standard] .guideSectionNav:not(.guideMapEditorial *).shell {
  width: min(var(--mtr-standard-content-width), calc(100% - 48px));
  margin-inline: auto;
}
.guideStandard[data-guide-standard] .bangkokChapterArticle > .gsSection,
.guideStandard[data-guide-standard] .masterContentGroup > .gsSection,
.guideStandard[data-guide-standard] .bangkokChapterArticle > .guideSectionNav:not(.guideMapEditorial *) {
  max-width: var(--mtr-standard-content-width); margin-inline: auto;
}
.guideStandard[data-guide-standard] .gsSection :is(h2,h3),
.guideStandard[data-guide-standard] .gsHero h1 {
  font-family: var(--mtr-standard-heading-font);
  font-weight: 400;
  letter-spacing: -.025em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.guideStandard[data-guide-standard] .gsHero h1 { font-size: clamp(2.625rem, 5.5vw, 4.75rem); line-height: 1.08; max-width: 18ch; }
.guideStandard[data-guide-standard] .gsHero .shell > p:not(.eyebrow):not(.kicker):not(.transportKicker) {
  max-width: 42rem; font-size: 1.125rem; line-height: 1.65;
}
.guideStandard[data-guide-standard] .gsSection h2 { font-size: clamp(1.875rem, 3.2vw, 3rem); line-height: 1.15; margin-block: 0 1.25rem; max-width: 28ch; }
.guideStandard[data-guide-standard] .gsSection h3 { font-size: clamp(1.25rem, 1.75vw, 1.625rem); line-height: 1.25; margin-block: 0 .8rem; }
.guideStandard[data-guide-standard] .gsSection p:not(:is(.kicker,.phaseKicker,.transportKicker,.kcHotelMeta,.transportSignature)) {
  font-family: var(--mtr-standard-body-font); font-size: 1rem; line-height: 1.75; max-width: var(--mtr-standard-copy-width);
}
.guideStandard[data-guide-standard] .gsSection p + p { margin-top: 1rem; }
.guideStandard[data-guide-standard] .gsSection :is(.kicker,.phaseKicker,.transportKicker) {
  font-family: var(--mtr-standard-body-font); font-size: .8125rem; line-height: 1.5;
  font-weight: 700; letter-spacing: .13em; margin-block: 0 .8rem;
}
.guideStandard[data-guide-standard] .gsSection :is(li,dt,dd) { font-size: 1rem; line-height: 1.65; }
.guideStandard[data-guide-standard] .gsSection :is(small,figcaption,.kcHotelMeta,.kcDisclosure) { font-size: .875rem; line-height: 1.6; }
.guideStandard[data-guide-standard] .gsSection :is(p,li,dt,dd,small) { overflow-wrap: anywhere; }
.guideStandard[data-guide-standard] .gsSection :is(a,button,summary,select):focus-visible,
.guideStandard[data-guide-standard] .guideSectionNav:not(.guideMapEditorial *) :is(a,button):focus-visible {
  outline: 3px solid var(--orange); outline-offset: 4px;
}
.guideStandard[data-guide-standard] .gsSection [id],
.guideStandard[data-guide-standard] .gsSection[id] { scroll-margin-top: calc(var(--site-header-height, 76px) + 108px); }

/* One jump menu, using the existing keyboard, mobile and active-section behaviour. */
.guideStandard[data-guide-standard] .guideSectionNav:not(.guideMapEditorial *) {
  z-index: 20; border: 0; border-block: 1px solid var(--mtr-standard-rule);
  border-radius: 0; background: #fcfaf5; box-shadow: none;
  padding: .65rem 0; gap: 1.5rem; margin-block: 1.5rem 2.5rem;
}
.guideStandard[data-guide-standard] .guideSectionNavLabel:not(.guideMapEditorial *) { font: 700 .8125rem/1.5 var(--mtr-standard-body-font); letter-spacing: .09em; color: var(--muted); }
.guideStandard[data-guide-standard] .guideJumpLinks:not(.guideMapEditorial *) { gap: .25rem 1.25rem; flex-wrap: wrap; }
.guideStandard[data-guide-standard] .guideJumpLinks:not(.guideMapEditorial *) a {
  min-height: 44px; padding: .65rem .15rem; border: 0; border-bottom: 2px solid transparent;
  border-radius: 0; background: transparent; box-shadow: none;
  color: var(--ink); font: 600 .9375rem/1.5 var(--mtr-standard-body-font); text-decoration: none;
}
.guideStandard[data-guide-standard] .guideJumpLinks:not(.guideMapEditorial *) a:is(:hover,.isActive) { color: var(--orange); background: transparent; border-bottom-color: currentColor; }

/* Primary actions share one shape. Ordinary reading links keep their quieter role. */
.guideStandard[data-guide-standard] :is(.gsHero,.gsSection) :is(.primaryBtn,.northPrimaryCta,.phaseButton,.guidePrimaryAction,.button.primary,.transportBookingActions > .primary,.transportFinal a,.bangkokChapterBack > a:first-of-type) {
  display: inline-flex; align-items: center; justify-content: center; gap: .8rem;
  min-height: 48px; max-width: 100%; padding: .875rem 1.4rem;
  border: 1px solid transparent; border-radius: 6px; background: var(--orange); color: #fff;
  box-shadow: none; font: 700 .9375rem/1.4 var(--mtr-standard-body-font); text-align: center;
  text-transform: none; letter-spacing: 0; text-decoration: none; white-space: normal;
}
.guideStandard[data-guide-standard] :is(.gsHero,.gsSection) :is(.primaryBtn,.northPrimaryCta,.phaseButton,.guidePrimaryAction,.button.primary,.transportBookingActions > .primary,.transportFinal a,.bangkokChapterBack > a:first-of-type):hover { background: #a83e25; }
.guideStandard[data-guide-standard] .gsSection :is(.guideActions,.editorialStopLinks) a { min-height: 44px; align-content: center; font-size: .9375rem; }

/* Hotel and destination cards: image, title, useful detail, reason, link. */
.guideStandard[data-guide-standard] :is(.kcHotelGrid,.northFeaturedGrid,.monthDestinationGrid) { gap: 1.75rem; }
.guideStandard[data-guide-standard] :is(.kcHotelGrid,.northFeaturedGrid) > :is(article,a) {
  overflow: hidden; background: transparent; border: 0; border-radius: 0; box-shadow: none;
  display: flex; flex-direction: column;
}
.guideStandard[data-guide-standard] :is(.kcHotelGrid,.northFeaturedGrid) > :is(article,a) > :is(img,a:has(img),.northFeaturedImage) { border-radius: var(--mtr-standard-card-radius); overflow: hidden; }
.guideStandard[data-guide-standard] .kcHotelGrid > article > img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.guideStandard[data-guide-standard] :is(.kcHotelGrid,.northFeaturedGrid) > :is(article,a) > div:not(.northFeaturedImage) { padding: 1.25rem 0 0; flex: 1; }
.guideStandard[data-guide-standard] .kcHotelGrid > article > div { display: flex; flex-direction: column; align-items: flex-start; }
.guideStandard[data-guide-standard] .kcHotelGrid > article > div > a { margin-top: auto; min-height: 44px; padding-block: .75rem; }
.guideStandard[data-guide-standard] .kcHotelGrid .kcPersonalHotel { background: transparent; border-left: 2px solid var(--orange); border-radius: 0; padding: .2rem 0 .2rem 1rem; }
.guideStandard[data-guide-standard] .monthDestinationGrid > article {
  border: 0; border-top: 2px solid var(--mtr-standard-rule); border-radius: 0;
  padding: 1.5rem 0; background: transparent; box-shadow: none;
}
.guideStandard[data-guide-standard] .monthDestinationGrid > article > a { min-height: 44px; display: inline-flex; align-items: center; }
.guideStandard[data-guide-standard] .monthDestinationGrid > article > small { color: var(--ink); font-weight: 700; }
.guideStandard[data-guide-standard] .editorialRouteHotel {
  border: 0; border-top: 1px solid var(--mtr-standard-rule); border-radius: 0;
  background: transparent; padding: 1.5rem 0 0; box-shadow: none;
}
.guideStandard[data-guide-standard] .editorialRouteHotel > img { border-radius: var(--mtr-standard-card-radius); }

/* Open editorial sections; framing is reserved for useful choices and warnings. */
.guideStandard[data-guide-standard] :is(.northQuick,.kcQuick,.bangkokChapterQuick,.monthTenSeconds,.transportQuick) {
  border: 0; border-block: 1px solid var(--mtr-standard-rule); border-radius: 0;
  box-shadow: none; background: transparent;
}
.guideStandard[data-guide-standard] :is(.northQuick > div > span,.kcQuick > div > p,.bangkokChapterQuick > div > p,.monthTenSeconds > div > article,.transportQuickGrid > article) {
  background: transparent; border: 0; border-radius: 0; box-shadow: none;
}
.guideStandard[data-guide-standard] :is(.northQuick,.kcQuick,.bangkokChapterQuick) > div:last-of-type {
  background: transparent; border: 0; border-block: 1px solid var(--mtr-standard-rule);
  border-radius: 0; box-shadow: none;
}
.guideStandard[data-guide-standard] .tenSecondSection > .kicker,
.guideStandard[data-guide-standard] .bangkokChapterQuick > div > .kicker {
  background: transparent; color: var(--orange); padding: 0; border-radius: 0;
}
.guideStandard[data-guide-standard] .tenSecondSection::before { display: none; }
.guideStandard[data-guide-standard] .bangkokChapterQuick { padding-inline: 0; }
.guideStandard[data-guide-standard] .bangkokChapterQuick > div:last-of-type {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.5rem;
}
.guideStandard[data-guide-standard] .bangkokChapterQuick > div:last-of-type > p { margin: 0; padding: 1.25rem 0; }
.guideStandard[data-guide-standard] .bangkokChapterQuick > div:last-of-type > p > span,
.guideStandard[data-guide-standard] .kcQuick > div > p > b { display: block; font-size: .875rem; line-height: 1.5; }
.guideStandard[data-guide-standard] .bangkokChapterQuick > div:last-of-type > p > b { display: block; margin-top: .5rem; font-size: 1rem; line-height: 1.6; }
.guideStandard[data-guide-standard] :is(.northSeasonGrid,.kcAreaGrid,.kcTransportGrid,.coastCards,.monthTypes > div,.transportLocalGrid) > article {
  border: 0; border-top: 1px solid var(--mtr-standard-rule); border-radius: 0;
  background: transparent; box-shadow: none; padding: 1.5rem 0;
}
.guideStandard[data-guide-standard] :is(.bangkokChapterBodySection,.bangkokChapterStory,.bangkokChapterIntro) {
  background: transparent; border: 0; border-radius: 0; box-shadow: none;
}
.guideStandard[data-guide-standard] :is(.bangkokChapterQuick,.monthTenSeconds) > blockquote,
.guideStandard[data-guide-standard] .monthTenSeconds > aside {
  background: transparent; border: 0; border-left: 2px solid var(--orange);
  border-radius: 0; padding: .25rem 0 .25rem 1.25rem; color: var(--ink);
}
.guideStandard[data-guide-standard] .monthTenSeconds > aside :is(b,p) { color: var(--ink); }
.guideStandard[data-guide-standard] .gsSection .tipbox { box-shadow: none; border-radius: 0; border: 0; border-left: 2px solid var(--orange); }
.guideStandard[data-guide-standard] .editorialStopCopy { min-width: 0; }
.guideStandard[data-guide-standard] .monthTenSeconds > div { grid-template-columns: repeat(4,minmax(0,1fr)); }
.guideStandard[data-guide-standard] .monthTenSeconds > div > article { min-width: 0; overflow-wrap: anywhere; }
.guideStandard[data-guide-standard] .weatherRegionStrip { grid-template-columns: repeat(7,minmax(0,1fr)); }
.guideStandard[data-guide-standard] .weatherRegionStrip article { min-width: 0; overflow-wrap: anywhere; }
.guideStandard[data-guide-standard][data-month="0"] .monthRegionList article > div { flex-wrap: wrap; gap: .5rem 1rem; }

/* Phase 3: reusable prose and choice layouts; never target map parents. */
.guideStandard[data-guide-standard] .guideEditorialEntries { display: grid; gap: 1.75rem; margin-block: 1.5rem; }
.guideStandard[data-guide-standard] .guideEditorialEntries > :is(div,article) { min-width: 0; padding-block: 1.25rem 0; border-top: 1px solid var(--mtr-standard-rule); }
.guideStandard[data-guide-standard] .guideEditorialEntries h3 { max-width: 35ch; }
.guideStandard[data-guide-standard] .guideEditorialEntries a { display: inline-flex; align-items: center; min-height: 44px; margin-top: .5rem; overflow-wrap: anywhere; }
.guideTruth {
  border-block: 1px solid var(--mtr-standard-rule);
  margin-block: clamp(2.5rem, 5vw, 4.5rem);
}
.guideTruth > header { max-width: var(--mtr-standard-copy-width); }
.guideTruth > header .kicker { color: var(--orange); }
.guideTruthGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2.5rem;
  margin-top: 1.5rem;
}
.guideTruthGrid > article {
  min-width: 0;
  padding: 1.4rem 0 1.55rem;
  border-top: 1px solid var(--mtr-standard-rule);
}
.guideTruthGrid h3 { color: var(--ink); }
.guideTruthGrid p { margin: 0; }
.guideTruthGrid a {
  color: var(--orange); font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: .16em;
}
.guideStandard[data-guide-standard] .guideMonthIndex { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem 2rem; }
.guideStandard[data-guide-standard] .guideMonthIndex > a { color: var(--ink); text-decoration: none; border-top: 1px solid var(--mtr-standard-rule); padding-block: 1.5rem; }
.guideStandard[data-guide-standard] .guideMonthIndex > a > span { color: var(--orange); text-decoration: underline; }
.guideStandard[data-guide-standard] .routeEditorialDetails > div + div { margin-top: 2rem; }
.guideStandard[data-guide-standard] .routeEditorialDetails details { margin-top: 1.75rem; border-top: 1px solid var(--mtr-standard-rule); padding-top: 1rem; }
.guideStandard[data-guide-standard] .gsSection :is(.premiumHotelGrid,.isanHotelGrid) { gap: 1.75rem; }
.guideStandard[data-guide-standard] .gsSection :is(.premiumHotelGrid,.isanHotelGrid) > article { min-width: 0; border: 0; background: transparent; border-radius: 0; box-shadow: none; display: flex; flex-direction: column; }
.guideStandard[data-guide-standard] .gsSection .premiumHotelGrid > article > :is(img,picture) { width: 100%; aspect-ratio: 3/2; height: auto; object-fit: cover; border-radius: var(--mtr-standard-card-radius); overflow: hidden; }
.guideStandard[data-guide-standard] .gsSection .premiumHotelGrid > article > div { padding: 1.25rem 0 0; display: flex; flex-direction: column; flex: 1; align-items: flex-start; }
.guideStandard[data-guide-standard] .gsSection .premiumHotelGrid > article > div > a { margin-top: auto; min-height: 44px; align-content: center; }
.guideStandard[data-guide-standard] .gsSection .contentCompareScroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.guideStandard[data-guide-standard] .gsSection table { border-collapse: collapse; line-height: 1.65; }
.guideStandard[data-guide-standard] .gsSection :is(th,td) { font-size: 1rem; vertical-align: top; padding: 1rem; white-space: normal; overflow-wrap: break-word; }
.guideStandard[data-guide-standard] .practicalArticle > article { min-width: 0; }
.guideStandard[data-guide-standard] .practicalArticle > article > .gsSection { padding-block: 2rem; }
.guideStandard[data-guide-standard] .gsHero .phaseKicker { font-size: .875rem; }

/* Keep supporting text and actions legible on the month guides' coloured sections. */
.guideStandard[data-guide-standard] .monthRoutes :is(header .phaseKicker,aside > small) { color: #f1c2a9; }
.guideStandard[data-guide-standard] .monthRoutes article a { min-height: 44px; align-items: center; font-size: .9375rem; }
.guideStandard[data-guide-standard] :is(.monthFinalCta,.practicalPlanner) .phaseKicker { color: #fff; }
.guideStandard[data-guide-standard] :is(.monthFinalCta,.practicalPlanner).gsSection .phaseButton { background: #fff; color: var(--ink); }
.guideStandard[data-guide-standard] :is(.monthFinalCta,.practicalPlanner).gsSection .phaseButton:hover { background: #f3efe5; }
.guideStandard[data-guide-standard] .bangkokChapterBack .kicker { color: #f1c2a9; }
.guideStandard[data-guide-standard] .kcTransport.gsSection > .shell > .kicker { color: #f1c2a9; }
.guideStandard[data-guide-standard] .grandPalaceMorningAdvice p { color: var(--ink); }

@media (max-width: 700px) {
  .guideStandard[data-guide-standard] .gsSection.shell,
  .guideStandard[data-guide-standard] .gsSection > .shell,
  .guideStandard[data-guide-standard] .guideSectionNav:not(.guideMapEditorial *).shell { width: calc(100% - 36px); }
  .guideStandard[data-guide-standard] .guideSectionNav:not(.guideMapEditorial *) { padding: 0; top: calc(var(--site-header-height, 72px) + 4px); }
  .guideStandard[data-guide-standard] .guideJumpToggle:not(.guideMapEditorial *) { border-radius: 0; background: #fcfaf5; min-height: 48px; font-size: 1rem; }
  .guideStandard[data-guide-standard] .guideJumpLinks:not(.guideMapEditorial *) { padding: .25rem 1rem .75rem; }
  .guideStandard[data-guide-standard] .guideJumpLinks:not(.guideMapEditorial *) a { min-height: 48px; }
  .guideStandard[data-guide-standard] :is(.kcHotelGrid,.northFeaturedGrid,.monthDestinationGrid) { grid-template-columns: minmax(0,1fr); }
  .guideStandard[data-guide-standard] .monthTenSeconds > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .guideStandard[data-guide-standard] .bangkokChapterQuick > div:last-of-type { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .guideStandard[data-guide-standard] .weatherRegionStrip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .guideStandard[data-guide-standard] .gsSection h2 { max-width: 100%; }
  .guideStandard[data-guide-standard] .phaseFooterGrid > * { min-width: 0; overflow-wrap: anywhere; }
  .guideStandard[data-guide-standard] .guideMonthIndex { grid-template-columns: minmax(0,1fr); }
  .guideStandard[data-guide-standard] .gsSection :is(.premiumHotelGrid,.isanHotelGrid) { grid-template-columns: minmax(0,1fr); }
  .guideStandard[data-guide-standard] .guideEditorialEntries { gap: 1rem; }
  .guideTruthGrid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .guideStandard[data-guide-standard] .gsSection :is(.primaryBtn,.northPrimaryCta,.phaseButton,.guidePrimaryAction,.button.primary,.transportBookingActions > .primary,.transportFinal a,.bangkokChapterBack > a:first-of-type) { width: 100%; }
}
