/* Shared typography and responsive layout for every tourism guide. */
html:root body main#tourism-guide { font: 400 14px/1.65 "DM Sans", sans-serif; color: #536575; }
html:root body main#tourism-guide * { box-sizing: border-box; min-width: 0; }
html:root body main#tourism-guide .tourism-container { width: calc(100% - 48px) !important; max-width: 1280px !important; margin-inline: auto !important; }
html:root body main#tourism-guide :is(h1,h2,h3,h4) { font-family: "Manrope", sans-serif !important; font-weight: 500 !important; letter-spacing: -.015em !important; overflow-wrap: anywhere; }
html:root body main#tourism-guide h1 { font-size: clamp(28px, 3.4vw, 44px) !important; line-height: 1.25 !important; margin: 12px 0 18px !important; }
html:root body main#tourism-guide h2 { font-size: clamp(22px, 2.2vw, 29px) !important; line-height: 1.35 !important; margin: 10px 0 16px !important; }
html:root body main#tourism-guide h3 { font-size: 18px !important; line-height: 1.4 !important; margin: 12px 0 !important; }
html:root body main#tourism-guide :is(p,li,dd,blockquote) { font: 400 14px/1.7 "DM Sans", sans-serif !important; letter-spacing: normal !important; overflow-wrap: anywhere; }
html:root body main#tourism-guide :is(strong,b,dt) { font: 500 14px/1.55 "DM Sans", sans-serif !important; overflow-wrap: anywhere; }
html:root body main#tourism-guide :is(span,small,time) { font-family: "DM Sans", sans-serif !important; font-weight: 400 !important; line-height: 1.6 !important; overflow-wrap: anywhere; }
html:root body main#tourism-guide .tourism-kicker,
html:root body main#tourism-guide :is(aside,article) > span,
html:root body main#tourism-guide .destination-band span,
html:root body main#tourism-guide time { color: #707985 !important; font-size: 11px !important; letter-spacing: .06em !important; }
html:root body main#tourism-guide .tourism-detail-hero { padding: 42px 0 !important; min-height: 0 !important; }
html:root body main#tourism-guide .tourism-detail-hero :is(.tourism-kicker,p) { color: #e5e7eb !important; }
html:root body main#tourism-guide :is(.tourism-destination,.tourism-detail-content) { padding-block: 32px !important; background: #fff !important; }
html:root body main#tourism-guide :is(article,aside,.tourism-detail-main,.tourism-detail-aside > section,.culture-pillars,.culture-etiquette,.destination-related a) {
  border-radius: 10px !important; box-shadow: 0 3px 16px rgba(25,40,55,.045) !important;
  transform: none !important; transition: none !important;
}
html:root body main#tourism-guide .tourism-container > :is(article,aside),
html:root body main#tourism-guide :is(.tourism-detail-main,.culture-etiquette,.tourism-detail-aside > section) { padding: 24px !important; height: auto !important; min-height: 0 !important; }
html:root body main#tourism-guide :is(.culture-story,.destination-band,.statistics-destination-grid > aside,.safety-destination-grid > aside) { background: #f5f6f8 !important; color: #536575 !important; }
html:root body main#tourism-guide :is(.culture-story,.destination-band,.statistics-destination-grid > aside,.safety-destination-grid > aside) :is(h2,h3,p,span,strong,blockquote) { color: #536575 !important; -webkit-text-fill-color: #536575 !important; }
html:root body main#tourism-guide :is(.destination-map-tools p,.destination-feature-grid > div,.statistics-principles > div,.safety-checklist > div,.tourism-detail-features li) { background: #f5f6f8 !important; color: #536575 !important; }
html:root body main#tourism-guide .tourism-button { font: 400 13px/1.5 "DM Sans", sans-serif !important; letter-spacing: normal !important; white-space: normal !important; max-width: 100%; min-height: 42px; padding: 11px 16px !important; border-radius: 6px !important; transform: none !important; margin-top: 16px; }
html:root body main#tourism-guide .map-compass { position: static; margin: 0 0 16px auto; width: 32px; height: 32px; font-size: 12px; }
html:root body main#tourism-guide .destination-related a { padding: 18px !important; }
html:root body main#tourism-guide .destination-related a span { font-size: 13px !important; }
html:root body main#tourism-guide .tourism-detail-main dd { margin-inline-start: 0; }
html:root body main#tourism-guide img { max-width: 100%; }
html:root body main#tourism-guide :is(.tourism-destination aside,.directory-contact-band,.dining-notice) { background: #f5f6f8 !important; color: #536575 !important; }
html:root body main#tourism-guide :is(.tourism-destination aside,.directory-contact-band,.dining-notice) :is(h3,p,li,span,strong,dt,dd) { color: #536575 !important; -webkit-text-fill-color: #536575 !important; }
@media(max-width: 900px) {
  html:root body main#tourism-guide .tourism-container { width: calc(100% - 32px) !important; }
  html:root body main#tourism-guide :is(.destination-intro-grid,.destination-map-layout,.culture-story-grid,.itinerary-layout,.tourism-detail-grid,.event-destination-grid,.directory-destination-grid,.statistics-destination-grid,.safety-destination-grid,.transport-destination-grid,.charter-destination-grid,.dining-destination-grid) { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 18px !important; }
  html:root body main#tourism-guide :is(.destination-feature-grid,.culture-pillars,.destination-related > div,.destination-band,.culture-etiquette ul,.directory-check-grid,.permit-guide-grid,.event-readiness,.tourism-detail-features ul) { grid-template-columns: minmax(0,1fr) !important; }
  html:root body main#tourism-guide .tourism-container > * { max-width: 100% !important; }
  html:root body main#tourism-guide .culture-pillars article + article { border-left: 0; border-top: 1px solid #eef0f3; }
  html:root body main#tourism-guide :is(.dining-destination-layout,.shopping-destination-header,.civic-tourism-grid,.festival-destination-grid,.shopping-guide-grid,.dining-guide-list) { grid-template-columns: minmax(0,1fr) !important; gap: 18px !important; }
}
@media(max-width: 520px) {
  html:root body main#tourism-guide .tourism-detail-hero { padding-block: 30px !important; }
  html:root body main#tourism-guide .tourism-container > :is(article,aside),
  html:root body main#tourism-guide :is(.tourism-detail-main,.culture-etiquette,.tourism-detail-aside > section) { padding: 18px !important; }
  html:root body main#tourism-guide .itinerary-timeline > div { grid-template-columns: 60px minmax(0,1fr) !important; gap: 10px !important; }
  html:root body main#tourism-guide .itinerary-timeline section { padding-left: 16px; }
  html:root body main#tourism-guide :is(.event-action-row,.festival-actions,.directory-contact-band) { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 12px; }
}
/* Readable editorial rhythm for the mobile visitor guides. */
@media (max-width: 767.98px) {
  html:root body main#tourism-guide.tourism-detail-page h1 {
    font: 500 clamp(28px, 6.5vw, 34px)/1.25 "Manrope", sans-serif !important;
    letter-spacing: -.025em !important;
  }
  html:root body main#tourism-guide.tourism-detail-page h2 {
    font: 500 22px/1.4 "Manrope", sans-serif !important;
    letter-spacing: -.02em !important;
  }
  html:root body main#tourism-guide.tourism-detail-page h3 {
    font: 500 18px/1.45 "Manrope", sans-serif !important;
    letter-spacing: -.01em !important;
  }
  html:root body main#tourism-guide.tourism-detail-page > section :is(h2,h3,p,li,dl,dt,dd,strong,span,small,blockquote) {
    text-align: left !important;
  }
  html:root body main#tourism-guide.tourism-detail-page > section :is(article,aside,section,div) {
    text-align: left !important;
  }
  html:root body main#tourism-guide.tourism-detail-page :is(p,li,dd) {
    font: 400 14px/1.75 "DM Sans", sans-serif !important;
    letter-spacing: 0 !important;
  }
  html:root body main#tourism-guide.tourism-detail-page .tourism-detail-hero p {
    font-size: 14px !important;
    line-height: 1.65 !important;
    max-width: 42ch !important;
    margin-inline: auto !important;
  }
  html:root body main#tourism-guide.tourism-detail-page :is(.destination-feature-grid strong,.destination-related strong) {
    font: 500 15px/1.5 "Manrope", sans-serif !important;
  }
  html:root body main#tourism-guide.tourism-detail-page :is(.destination-feature-grid span,.destination-related a span) {
    font: 400 13px/1.65 "DM Sans", sans-serif !important;
    margin-top: 7px !important;
  }
  html:root body main#tourism-guide.tourism-detail-page :is(ul,ol) {
    padding-inline: 20px 0 !important;
    margin: 14px 0 !important;
    list-style-position: outside !important;
  }
  html:root body main#tourism-guide.tourism-detail-page li {
    padding: 4px 0 4px 3px !important;
  }
  html:root body main#tourism-guide.tourism-detail-page .destination-band > div {
    padding: 16px 20px !important;
  }
  html:root body main#tourism-guide.tourism-detail-page .tourism-detail-main dl > div {
    border-top: 1px solid #e8ebef;
    padding-block: 14px;
  }
  html:root body main#tourism-guide.tourism-detail-page .tourism-detail-main dt {
    font-size: 12px !important;
    color: #6b7480 !important;
    margin-bottom: 4px;
  }
  html:root body main#tourism-guide.tourism-detail-page .tourism-button {
    font-size: 13px !important;
    min-height: 44px;
    width: fit-content !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
}
