/* Figma 428:466。アクセスページ本文だけに適用。FVは共通CSSを利用。 */
body.access-page { min-width: 0; }
body.access-page > main.access-page { width: 100%; margin: 0; background: #fff; }
.access-page .site-header { position: absolute; z-index: 5; top: 0; left: 0; width: 100%; }
.access-page__content { width: min(1180px, calc(100% - 48px)); margin: 90px auto 0; padding-bottom: 140px; }
.access-overview { display: grid; grid-template-columns: minmax(0,737fr) minmax(0,410fr); gap: 33px; align-items: center; }
.access-overview__map { display: block; width: 100%; height: 387px; border: 0; border-radius: 10px; }
body.access-page .access-overview h2 { margin: 0 0 24px; font-size: 30px; line-height: 45px; letter-spacing: .9px; font-weight: var(--font-weight-heading); }
.access-overview__address { display: flex; align-items: flex-start; gap: 26px; font-size: 20px; font-weight: 500; }
.access-overview__address > img, .access-overview__phone > img { flex: none; }
.access-overview__phone { display: flex; align-items: center; gap: 28px; min-height: 52.571px; font-size: 35px; font-weight: 700; white-space: nowrap; margin-top: 3px; }
.access-overview__booking { display: flex; width: calc(100% - 19px); min-height: 64px; margin: 7px auto 0; gap: 17px; font-size: 20px; font-weight: 700; letter-spacing: 1.8px; }
.access-overview__divider { height: 1px; margin: 25px 11px 16px; background: url('../images/access-contact-rule.svg') center / 100% 100% no-repeat; }
.access-overview__bus { position: relative; display: flex; align-items: center; justify-content: center; gap: 15px; width: calc(100% - 26px); min-height: 96px; margin-inline: auto; padding: 8px 15px; background: #fef7f1; border-radius: 10px; }
body.access-page .access-overview__bus p { margin: 0; font-size: 20px; line-height: 35px; font-weight: 700; letter-spacing: 1px; }
.access-overview__accent { position: absolute; right: 20px; top: 8px; }
.access-directions { margin-top: 64px; }
body.access-page .access-page__heading { margin: 0 0 25px; font-size: 30px; line-height: 30px; letter-spacing: .9px; font-weight: var(--font-weight-heading); }
.access-page__heading::after { content: ''; display: block; width: 42px; height: 2px; margin-top: 21px; background: url('../images/access-rule.svg') center no-repeat; }
.access-directions__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px; }
body.access-page main .access-directions__card { margin: 0; min-width: 0; min-height: 429px; padding: 26px 20px 24px; border-radius: 10px; background: #fef7f1; }
.access-directions__card h3 { display: flex; align-items: center; gap: 24px; min-height: 49px; padding-inline: 16px; margin-bottom: 18px; font-size: 25px; line-height: 30px; letter-spacing: .75px; font-weight: var(--font-weight-heading); }
.access-directions__card h3 img { flex: none; }
.access-directions__body { min-height: 306px; border-radius: 10px; background: white; padding: 20px 16px 12px; }
body.access-page .access-directions__body p { margin: 0; font-size: 20px; font-weight: 500; line-height: 35px; letter-spacing: 1px; text-wrap: pretty; }
.access-directions__divider { height: 1px; margin-block: 21px; background: url('../images/access-divider.svg') center / 100% 100% no-repeat; }
.access-directions__parking { padding-top: 13px; padding-bottom: 0; }
body.access-page .access-directions__parking > p { line-height: 30px; letter-spacing: .6px; }
.access-directions__photo { position: relative; aspect-ratio: 495/175; margin-top: 18px; overflow: hidden; mask: url('../images/access-photo-mask.svg') center / 100% 100% no-repeat; }
.access-directions__photo img { position: absolute; width: 100.404%; height: 189.143%; max-width: none; left: -.404%; top: -40.571%; object-fit: cover; }
body.access-page .access-directions__parking .access-directions__note { margin-top: 10px; font-size: 18px; line-height: 18px; letter-spacing: 0; }
.access-hours { margin-top: 47px; }
.access-hours .schedule--large { display: grid; grid-template-columns: minmax(0,802fr) minmax(0,316fr); align-items: end; gap: 61px; width: 100%; }
.access-hours .schedule__table { width: 100%; height: 251px; font-size: 23px; }
.access-hours .schedule__table th:first-child { width: 20%; font-size: 23px; border-right: 1px solid #c8b29766; }
.access-hours .schedule__table thead { height: 72px; }
.access-hours .schedule__table tbody tr { height: 89px; border-top: 1px solid #c8b29766; }
.access-hours .schedule__table-wrap { border-radius: 16px; }
.access-hours .schedule__vertical-rule, .access-hours .schedule__horizontal-rule { display: none; }
.access-hours .schedule__table td img { transform: scale(1.266); }
.access-hours .schedule--large .schedule__notes { display: block; margin: 0; font-size: 20px; line-height: 1.5; }
body.access-page .access-hours .schedule__notes p { width: auto; margin: 0; white-space: normal; }
@media (max-width: 767px) {
 .access-page .site-header { position: relative; }
 .access-page__content { margin-top: 44px; padding-bottom: 64px; }
 .access-overview, .access-directions__grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
 .access-overview__map { height: 260px; }
 body.access-page .access-overview h2 { font-size: 25px; line-height: 1.5; margin-bottom: 20px; }
 .access-overview__address { font-size: 15px; gap: 12px; }
 .access-overview__phone { gap: 12px; font-size: 28px; }
 .access-overview__booking { width: 100%; font-size: 16px; gap: 10px; letter-spacing: .5px; }
 .access-overview__bus { width: 100%; }
 body.access-page .access-overview__bus p { font-size: 16px; line-height: 1.8; letter-spacing: 0; }
 .access-directions, .access-hours { margin-top: 48px; }
 body.access-page .access-page__heading { font-size: 25px; }
 body.access-page main .access-directions__card { min-height: 0; padding: 20px 12px; }
 .access-directions__card h3 { font-size: 19px; line-height: 1.6; gap: 10px; padding-inline: 0; letter-spacing: 0; }
 .access-directions__body { min-height: 0; padding: 16px 12px; }
 body.access-page .access-directions__body p { font-size: 15px; line-height: 1.9; letter-spacing: 0; }
 body.access-page .access-directions__parking .access-directions__note { font-size: 13px; line-height: 1.7; }
 .access-hours .schedule--large { display: block; }
 .access-hours .schedule__table { height: auto; font-size: 12px; }
 .access-hours .schedule__table th:first-child { width: 82px; font-size: 11px; }
 .access-hours .schedule__table thead { height: 40px; }
 .access-hours .schedule__table tbody tr { height: 44px; }
 .access-hours .schedule__table td img { transform: none; }
 .access-hours .schedule--large .schedule__notes { margin-top: 16px; font-size: 13px; }
}
