/* Shared, readable arrival and stay information. No additional scripts. */
.yoruya-access { container: yoruya-access / inline-size; margin: 80px 0; padding-top: 40px; border-top: 1px solid #bcb2a7; color: #332e28; }
.yoruya-access > h1, .yoruya-access > h2 { font-size: clamp(28px, 4cqi, 40px); line-height: 1.4; margin: 10px 0 32px; }
.yoruya-access-grid h2, .yoruya-stay-info h2, .yoruya-access h3 { font-size: 23px; line-height: 1.5; margin: 0 0 18px; }
.yoruya-access p, .yoruya-access address, .yoruya-access dd { font-size: 15px; line-height: 1.9; }
.yoruya-access address { font-style: normal; margin-bottom: 16px; }
.yoruya-access-grid { display: grid; gap: 32px; }
.yoruya-access-grid > *, .yoruya-stay-info dl > * { min-width: 0; }
.yoruya-access a:not(.yoruya-primary-link) { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; color: inherit; overflow-wrap: anywhere; }
.yoruya-access-address a { display: flex !important; width: fit-content; }
.yoruya-access dl { margin: 0; }
.yoruya-access dl > div { padding: 20px 0; border-top: 1px solid #d4c9be; }
.yoruya-access dt { font-size: 17px; line-height: 1.6; margin-bottom: 8px; }
.yoruya-access dd { margin: 0; overflow-wrap: anywhere; white-space: normal; }
.yoruya-access .yoruya-access-note { font-size: 13px; margin-top: 14px; }
.yoruya-route-map { border-top: 1px solid #d4c9be; border-bottom: 1px solid #d4c9be; margin: 28px 0 40px; }
.yoruya-route-map summary { cursor: pointer; min-height: 56px; padding: 14px 0; box-sizing: border-box; font-size: 16px; line-height: 1.7; }
.yoruya-route-map a { display: block !important; }
.yoruya-route-map img { display: block; width: 100%; height: auto; }
.yoruya-stay-info dl { display: grid; column-gap: 36px; margin-bottom: 20px; }
.yoruya-access-links { display: flex; flex-wrap: wrap; gap: 0 24px; margin: 12px 0 24px; }
.yoruya-arrival-booking { padding: 24px; background: #eee5dc; }
.yoruya-arrival-booking p { margin: 0 0 18px; }
.yoruya-access a:focus-visible, .yoruya-route-map summary:focus-visible { outline: 2px solid #70523b; outline-offset: 4px; }
#your-stay { scroll-margin-top: calc(var(--yoruya-header-height) + var(--yoruya-admin-offset) + 24px); }
.yoruya-stay-info-link { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; margin-top: 12px; }
@container yoruya-access (min-width: 760px) {
 .yoruya-access-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; }
 .yoruya-stay-info dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.yoruya-access-page .yoruya-access { margin: 36px 0 64px; padding-top: 0; border-top: 0; }
.yoruya-access-teaser { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; padding: 36px 0; margin: 64px 0; border-block: 1px solid #bcb2a7; }
.yoruya-access-teaser > div { flex: 1 1 360px; }
.yoruya-access-teaser h2 { font-size: 26px; line-height: 1.6; margin: 8px 0 12px; }
.yoruya-access-teaser p { font-size: 15px; line-height: 1.8; }
.yoruya-access-teaser a { display: inline-flex; min-height: 48px; align-items: center; text-decoration: underline; text-underline-offset: 5px; }
.yoruya-access-teaser a:focus-visible { outline: 2px solid #70523b; outline-offset: 4px; }
.yoruya-access-teaser > span { width: 0; height: 0; }
