/* The cross-section cards are separate from editorial prose and reader typography. */
.ho-cross-reading{--ho-cross-ink:#2d3524;--ho-cross-line:#d5d5c1;--ho-cross-paper:#eeeee1;box-sizing:border-box;margin:46px 0 0;padding:24px 0;color:var(--ho-cross-ink);font:400 14px/1.5 'Avenir Next','HO Chinese UI','Hiragino Sans',Arial,sans-serif;border-top:1px solid var(--ho-cross-line);letter-spacing:normal}
.ho-cross-reading[data-section=history]{--ho-cross-ink:#21180f;--ho-cross-line:#bda88c;--ho-cross-paper:#e6d3b7;margin:0 0 26px;padding:0 0 24px;border-top:0;border-bottom:1px solid var(--ho-cross-line)}
.ho-cross-reading *{box-sizing:border-box}
.ho-cross-reading .ho-cross-heading h2{font:500 19px/1.4 'Avenir Next','HO Chinese UI','Hiragino Sans',Arial,sans-serif;color:inherit;letter-spacing:0;margin:0 0 20px;padding:0;border:0}
.ho-cross-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ho-cross-reading .ho-cross-card{display:flex;gap:15px;color:inherit;text-decoration:none!important;border:0;background:transparent;box-shadow:none;padding:0;min-width:0;transition:transform .18s ease,filter .18s ease}
.ho-cross-reading .ho-cross-card img{width:95px;height:105px;object-fit:contain;flex:none;background:var(--ho-cross-paper);border:0;border-radius:2px;margin:0}
.ho-cross-reading .ho-cross-card small{display:block;font:500 10px/1.4 'Avenir Next','HO Chinese UI',Arial,sans-serif;letter-spacing:.08em;margin:0 0 7px;opacity:.75}
.ho-cross-reading .ho-cross-card h3{font:500 16px/1.4 'Avenir Next','HO Chinese UI','Hiragino Sans',Arial,sans-serif;letter-spacing:0;margin:0 0 7px;padding:0;color:inherit;border:0;word-break:normal;overflow-wrap:break-word}
.ho-cross-reading .ho-cross-card p{font:400 12px/1.65 'Avenir Next','HO Chinese UI','Hiragino Sans',Arial,sans-serif;color:inherit;letter-spacing:0;margin:0;padding:0;opacity:.8}
.ho-reader__rail .ho-cross-grid,.ho-place-guide__history .ho-cross-grid,.ho-cross-side .ho-cross-grid,.collection-sidebar .ho-cross-grid,.city-entry__guide-browser .ho-cross-grid{grid-template-columns:1fr;gap:20px}
.ho-reader__rail .ho-cross-card img,.ho-place-guide__history .ho-cross-card img,.ho-cross-side .ho-cross-card img,.collection-sidebar .ho-cross-card img{width:64px;height:76px}
.ho-reader__rail .ho-cross-card h3,.ho-cross-side .ho-cross-card h3{font-size:14px}
.ho-cross-reading .ho-cross-more{font:400 12px/1.4 'Avenir Next','HO Chinese UI',Arial,sans-serif;min-height:44px;color:inherit;background:transparent;border:0;border-bottom:1px solid var(--ho-cross-line);border-radius:0;padding:10px 0;margin-top:16px;cursor:pointer}
.ho-cross-reading .ho-cross-card:focus-visible,.ho-cross-more:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.ho-cross-reading--end{max-width:1080px;margin:48px auto!important;padding:24px 0!important}
@media(hover:hover){.ho-cross-reading .ho-cross-card:hover{transform:translateY(-3px);filter:brightness(1.03)}}
.ho-cross-reading .ho-cross-card:active{transform:translateY(-2px) scale(1.015)}
@media(max-width:760px){.ho-cross-grid{grid-template-columns:1fr;gap:22px}.ho-cross-reading .ho-cross-card img{width:75px;height:85px}.ho-cross-reading .ho-cross-heading h2{font-size:18px}.ho-cross-reading .ho-cross-card h3{font-size:15px}.ho-cross-reading--end{margin:30px 20px!important}}
@media(prefers-reduced-motion:reduce){.ho-cross-reading .ho-cross-card{transition:none;transform:none!important}}
.ho-cross-reading.ho-cross-side{max-width:340px;margin:30px 0 0 auto;padding:22px 0;border-top:1px solid var(--ho-cross-line)}
@media(max-width:760px){.ho-cross-reading.ho-cross-side{max-width:none}}
.ho-cross-reading .ho-cross-card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ho-cross-reading .ho-cross-card p.ho-cross-reason{margin-top:7px;font-size:11px;opacity:.9;-webkit-line-clamp:2}
.ho-reader__rail .ho-cross-reading{padding:16px 0 24px}

.ho-cross-reading[data-section=history] .ho-cross-grid[hidden]{display:none}
.ho-cross-reading[data-section=history] .ho-cross-card h3{margin:0;align-self:center}
.ho-culture-stack{display:block;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:18px 12px 20px;cursor:pointer;font:inherit}
.ho-culture-stack-images{display:block;position:relative;height:210px;margin:12px 14px 24px}
.ho-culture-stack-images>span{position:absolute;left:0;top:8px;width:80%;height:80%;box-sizing:border-box;padding:10px 10px 25px;background:#f7f3e9;border:1px solid #c9bda8;box-shadow:0 7px 16px #21180f18;transform-origin:50% 50%;transform:translateX(calc(var(--stack-i)*4px)) rotate(calc(-5deg + var(--stack-i)*3deg));transition:transform 220ms cubic-bezier(.2,.7,.3,1)}
.ho-culture-stack-images img{width:100%;height:100%;object-fit:contain}
.ho-culture-stack-title{display:block;font-size:14px;line-height:1.5}
@media(hover:hover){.ho-culture-stack:hover .ho-culture-stack-images>span{transform:translate(calc(var(--stack-i)*5px),-8px) rotate(calc(-6deg - var(--stack-i)*2deg)) scale(1.025)}}
.ho-culture-stack:is(:active,:focus-visible,[aria-expanded=true]) .ho-culture-stack-images>span{transform:translate(calc(var(--stack-i)*5px),-8px) rotate(calc(-6deg - var(--stack-i)*2deg)) scale(1.025)}
@media(prefers-reduced-motion:reduce){.ho-culture-stack-images>span{transition:none;transform:none!important}}

.ho-cross-reading[data-section=history] .ho-culture-stack{max-width:340px}
.ho-cross-reading[data-section=history] .ho-cross-grid{grid-template-columns:1fr;gap:18px}
.ho-cross-reading[data-section=history] a.ho-cross-card{display:block;background:#f7f3e9;border:1px solid #d5d5c1;border-radius:3px;overflow:hidden;padding:0;color:#2d3524}
.ho-cross-reading[data-section=history] a.ho-cross-card img{display:block;width:100%;height:150px;object-fit:contain;background:#eeeee4;padding:10px;box-sizing:border-box}
.ho-cross-reading[data-section=history] a.ho-cross-card h3{font:400 15px/1.5 'Avenir Next','Hiragino Sans',sans-serif;padding:14px 16px;margin:0}
.ho-place-culture-slot{list-style:none;min-width:0}.ho-place-culture-slot .ho-cross-reading{padding:18px 0;margin:0}
.ho-place-guide__trail[hidden],.city-entry__trail[hidden]{display:none!important}
.ho-city-history-card{margin-bottom:24px}.ho-city-history-card img{max-width:100%;object-fit:cover}

/* Japan Essentials recommendations belong after the illustrated article. */
.ho-cross-reading.ho-cross-essentials{clear:both;width:auto;max-width:none;margin:40px 32px!important;padding:28px 0!important;border-top:1px solid var(--ho-line)}
.ho-cross-reading.ho-cross-essentials .ho-cross-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ho-cross-reading.ho-cross-essentials .ho-cross-grid[hidden]{display:none}
.ho-cross-reading.ho-cross-essentials .ho-cross-more{grid-column:1/-1}
@media(max-width:760px){.ho-cross-reading.ho-cross-essentials{margin:30px 20px!important}.ho-cross-reading.ho-cross-essentials .ho-cross-grid{grid-template-columns:1fr}}

/* Keep the city reading card within the actual right-hand grid column. */
.city-entry .ho-city-sidebar{grid-column:2;grid-row:1;min-width:0;align-self:start;display:flex;flex-direction:column;gap:24px}
.city-entry .ho-city-sidebar>.topic-panel{width:100%;margin:0;min-width:0}
.city-entry .ho-city-history-card{width:100%;height:auto;min-height:0;display:block;align-self:start;margin:0;background:var(--today-panel);color:var(--today-ink);overflow:hidden;border-radius:0 28px 0 0}
.city-entry .ho-city-history-card .city-guide-entry-link{display:block;height:auto;min-height:0}
.city-entry .ho-city-history-card .city-entry__guide-visual{display:block;width:100%;height:170px;overflow:hidden}
.city-entry .ho-city-history-card img{display:block;width:100%;height:100%;object-fit:cover}
.city-entry .ho-city-history-card .city-entry__guide-copy{display:block;min-height:0;padding:18px 20px;background:var(--today-panel)}
.city-entry .ho-city-history-card strong{display:block;font:400 20px/1.4 var(--ho-font-reading);color:var(--today-ink)}
@media(max-width:900px){.city-entry .ho-city-sidebar{grid-column:1/-1;grid-row:auto}}

/* City recommendations must not participate in the attraction-card rows. */
body .city-entry .city-card-flow:has(.ho-city-sidebar){display:grid!important;grid-template-columns:minmax(0,4fr) minmax(220px,1fr)!important;gap:24px;align-items:start;grid-auto-flow:row}
body .city-entry .city-card-flow:has(.ho-city-sidebar) .city-entry__guide-browser{display:block!important;grid-column:1;grid-row:1;min-width:0;margin:0}
body .city-entry .city-card-flow:has(.ho-city-sidebar) .city-entry__guide-pages{display:block!important}
body .city-entry .city-card-flow:has(.ho-city-sidebar) .city-entry__guide-page{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
body .city-entry .city-card-flow:has(.ho-city-sidebar) .city-entry__guide-page[hidden]{display:none!important}
body .city-entry .city-card-flow .ho-city-sidebar{grid-column:2;grid-row:1;align-self:start}
body .city-entry .ho-city-sidebar>*{grid-area:auto!important;min-width:0;max-width:100%}
body .city-entry .ho-city-sidebar .ho-cross-reading{margin:0;padding:20px 0}
@media(max-width:1100px){body .city-entry .city-card-flow:has(.ho-city-sidebar){grid-template-columns:minmax(0,2fr) minmax(210px,1fr)!important}body .city-entry .city-card-flow:has(.ho-city-sidebar) .city-entry__guide-page{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){body .city-entry .city-card-flow:has(.ho-city-sidebar){grid-template-columns:minmax(0,1fr)!important}body .city-entry .city-card-flow .ho-city-sidebar{grid-column:1;grid-row:auto}}

/* Map and city history share the top row; attractions start immediately below. */
body .city-entry .city-entry__atlas:has(>.ho-city-sidebar){display:grid!important;grid-template-columns:minmax(0,4fr) minmax(240px,1fr)!important;align-items:start;gap:24px}
body .city-entry .city-entry__atlas:has(>.ho-city-sidebar)>.city-entry__map-shell{grid-column:1!important;grid-row:1!important;margin:0;width:100%}
body .city-entry .city-entry__atlas>.ho-city-sidebar{grid-column:2!important;grid-row:1/span 2!important;display:flex;align-self:start}
body .city-entry .city-entry__atlas:has(>.ho-city-sidebar)>.city-card-flow{grid-column:1!important;grid-row:2!important;display:block!important}
body .city-entry .city-entry__atlas:has(>.ho-city-sidebar) .city-entry__guide-browser,body .city-entry .city-entry__atlas:has(>.ho-city-sidebar) .city-entry__guide-pages{display:block!important;margin:0}
body .city-entry .city-entry__atlas:has(>.ho-city-sidebar) .city-entry__guide-page{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0}
body .city-entry .city-entry__atlas:has(>.ho-city-sidebar) .city-entry__guide-page[hidden]{display:none!important}
body .city-entry .ho-city-topics-restored{display:block!important;visibility:visible!important;height:auto!important;max-height:none!important}
@media(max-width:1100px){body .city-entry .city-entry__atlas:has(>.ho-city-sidebar){grid-template-columns:minmax(0,2fr) minmax(220px,1fr)!important}body .city-entry .city-entry__atlas:has(>.ho-city-sidebar) .city-entry__guide-page{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){body .city-entry .city-entry__atlas:has(>.ho-city-sidebar){grid-template-columns:1fr!important}body .city-entry .city-entry__atlas>.ho-city-sidebar{grid-column:1!important;grid-row:3!important}}

body .city-entry .city-entry__atlas:has(>.ho-city-sidebar){grid-template-rows:300px auto}
@media(max-width:767px){body .city-entry .city-entry__atlas:has(>.ho-city-sidebar){grid-template-rows:auto auto auto}}

.ho-cross-reading[data-section=history] .ho-cross-heading{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.ho-cross-reading[data-section=history] .ho-cross-heading h2{font:600 22px/1.2 var(--ho-font-reading);color:var(--ho-ink);margin:0}
.ho-cross-reading[data-section=history] .ho-cross-heading>span{font:500 12px var(--ho-font-ui);color:var(--ho-ink-muted)}
.ho-culture-stack-title{display:none}

/* Shared inset for related content, including retained native reader groups. */
.ho-reader__rail .ho-reader__rail-inner{box-sizing:border-box;padding-inline:clamp(16px,2vw,28px)!important}
.ho-reader__rail .reader-related,.ho-reader__rail .ho-cross-reading{max-width:100%;box-sizing:border-box}
:is(.ho-place-guide__history,.collection-sidebar,.ho-cross-side) .reader-related{box-sizing:border-box;padding-inline:20px;max-width:100%}
.reader-related-card{box-sizing:border-box;max-width:100%}

/* All cities, with or without an editorial sidebar: keep attraction cards inside a grid. */
body .city-entry .city-card-flow .city-entry__guide-browser{display:block!important;grid-column:1/-1;min-width:0;width:100%;margin:0}
body .city-entry .city-card-flow .city-entry__guide-pages{display:block!important}
body .city-entry .city-card-flow .city-entry__guide-page{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}
body .city-entry .city-card-flow .city-entry__guide-page[hidden]{display:none!important}
body .city-entry .city-card-flow .city-entry__guide-page>li{min-width:0;width:auto!important;grid-column:auto!important;justify-self:stretch}
body .city-entry .city-card-flow .city-entry__guide-card{width:100%;min-width:0;overflow:hidden}
body .city-entry .city-card-flow .city-entry__guide-visual{display:block;height:170px;overflow:hidden}
body .city-entry .city-card-flow .city-entry__guide-visual img{width:100%;height:100%;object-fit:cover}
@media(max-width:1100px){body .city-entry .city-card-flow .city-entry__guide-page{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){body .city-entry .city-card-flow .city-entry__guide-visual{height:125px}}

/* Compact topic cards are a separate grid, never flattened into city-card-flow. */
body .city-entry .city-card-flow .city-compact-topics{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0 0;min-width:0}
body .city-entry .city-compact-topics .city-topic-preview-card{width:100%;min-width:0;margin:0;overflow:hidden;align-self:stretch}
body .city-entry .city-compact-topics .city-topic-preview-image{display:block;position:relative;height:160px!important;min-height:0!important;aspect-ratio:auto!important;overflow:hidden}
@media(max-width:1100px){body .city-entry .city-card-flow .city-compact-topics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){body .city-entry .city-compact-topics .city-topic-preview-image{height:125px!important}}
