/* Layout adapters only; all presentation colours and fonts come from the shared site tokens. */
.village-page .village-flow { display: grid; gap: 24px; }
.village-page .village-flow.grid { display: grid; }
.village-page .lede { max-width: 70ch; }
.village-page .village-photo { min-height: 160px; aspect-ratio: 16 / 10; background: var(--sand); color: var(--muted); display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; }
.village-page .hero-media.village-photo { aspect-ratio: auto; background: var(--night); }
.village-page .village-image { margin: 0; min-width: 0; }
.village-page .village-image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.village-page .village-image figcaption { padding: 8px 12px; font-size: 12px; line-height: 1.6; color: var(--muted); background: var(--surface); }
.village-page .village-image figcaption a { color: inherit; }
.village-page .village-hero-image img { height: 100%; aspect-ratio: auto; }
.village-page .village-hero-credit { padding-block: 10px; font-size: 12px; line-height: 1.6; color: var(--muted); }
.village-page .village-hero-credit a { color: inherit; }
.village-page .card > .village-photo { width: 100%; }
.village-page .card > p, .village-page .card > h3 { margin: 16px 20px; }
.village-page a.card { padding: 20px; color: var(--ink); text-decoration: none; }
.village-page .table-wrap { overflow-x: auto; max-width: 100%; }
.village-page table { width: 100%; border-collapse: collapse; background: var(--surface); }
.village-page th, .village-page td { padding: 14px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.village-page .itinerary { display: grid; gap: 32px; }
.village-page .village-plan { padding: 20px; border-block: 1px solid var(--line); }
.village-page .village-plan summary { cursor: pointer; font-weight: 700; margin-bottom: 16px; }
.village-page .btn { white-space: normal; text-align: center; }
.village-page h1 { overflow-wrap: anywhere; }
.village-page .section > .wrap > div:not(.grid):not(.table-wrap):not(.faq) { display: grid; gap: 20px; }
.village-page .section:first-child { padding-block: 48px; }
.village-page .section:first-child .grid-2 { align-items: center; }
.village-page .section:first-child .grid-2 > div:first-child { display: grid; gap: 20px; }
.village-page .section:first-child .grid-2 > div:first-child > div { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.village-page .grid .card:not(:has(.card-body)):not(:has(.village-image)) { padding: 22px; }
.village-page li svg { display: none; }
@media (max-width:620px) { .village-page h1 { font-size: 2.5rem; } .village-page h2 { font-size: 2rem; } }