

.page-pamphlet .visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.pam-top { padding-top: calc(var(--vh) * 24); padding-bottom: 6vw; row-gap: 0; text-shadow: 0 0 .5em rgba(0, 0, 8, .9), 0 0 1.4em rgba(0, 0, 8, .75); }
.pam-top > * { grid-column: 1 / -1; }
.pam-top__title { margin-top: .5em; font-size: clamp(1.7rem, 3.4vw, 5.2rem); line-height: 1.4; font-weight: 500; letter-spacing: -.005em; }
.pam-top__lead { margin-top: .9em; font-size: clamp(.86rem, 1.05vw, 1.6rem); line-height: 1.9; }
.page-pamphlet .pam-list { padding-top: 7vw; }

.pam-contact { padding-top: 8vw; padding-bottom: 9vw; }
.pam-contact p { grid-column: 1 / -1; font-size: clamp(.9rem, 1.05vw, 1.6rem); line-height: 1.9; color: var(--c-sub); }

.pam-index { grid-column: 1 / -1; margin: 3vw 0 0; padding: 0; list-style: none; }
.pam-index li { border-top: 1px solid rgba(0, 0, 0, .16); }
.pam-index li:last-child { border-bottom: 1px solid rgba(0, 0, 0, .16); }
.pam-index a { display: grid; grid-template-columns: 3.2em minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.2fr) 1.2em; align-items: baseline; column-gap: var(--gap); padding: 1.05em 0 1.1em; font-size: clamp(.95rem, 1.15vw, 1.8rem); line-height: 1.7; transition: color .3s, padding-left .5s var(--ease); }
.pam-index__no { font-family: var(--font-mono); font-size: .78em; letter-spacing: .08em; color: var(--c-sub); }
.pam-index__name { font-size: 1.15em; font-weight: 500; }
.pam-index__meta { color: var(--c-sub); }
.pam-index__fee { font-variant-numeric: tabular-nums; }
.pam-index__fee small { display: block; font-size: .72em; color: var(--c-sub); }
.pam-index a svg { align-self: center; width: 1.1em; height: 1.1em; transform: rotate(90deg); color: var(--c-sub); }
@media (hover: hover) { .pam-index a:hover { color: var(--c-blue); padding-left: .6em; } .pam-index a:hover svg { color: var(--c-blue); } }

.pam-pdf { grid-column: 1 / -1; justify-self: start; display: inline-flex; align-items: center; gap: .6em; margin-top: 2.2em; font-size: clamp(.9rem, 1.05vw, 1.6rem); font-weight: 500; line-height: 1.6; }
.pam-pdf span { border-bottom: 1px solid currentColor; }
.pam-pdf svg { width: 1em; height: 1em; transform: rotate(-45deg); transition: transform .5s var(--ease); }
@media (hover: hover) { .pam-pdf:hover { color: var(--c-blue); } .pam-pdf:hover svg { transform: rotate(-45deg) translate3d(.2em, 0, 0); } }

.pam { scroll-margin-top: 2rem; }
.pam__title { font-size: clamp(1.5rem, 2.5vw, 4rem); line-height: 1.4; }
.pam__title .l { display: block; }
.pam__schedule { margin-top: .5em; font-size: clamp(.9rem, 1.15vw, 1.8rem); line-height: 1.7; letter-spacing: .04em; color: var(--c-sub); }

.pam__fee { margin-top: 1.5em; padding: 1.2em 1.4em 1.3em; border-radius: var(--radius); background: #fff; font-size: clamp(.9rem, 1.05vw, 1.6rem); line-height: 1.7; }
.pam__fee-sub { font-size: .82em; color: var(--c-sub); }
.pam__fee-main { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .9em; }
.pam__fee-label { font-weight: 500; }
.pam__fee-amount { font-size: 1.6em; font-weight: 500; line-height: 1.4; letter-spacing: -.005em; color: var(--c-blue); font-variant-numeric: tabular-nums; white-space: nowrap; }

.pam__course { display: inline-flex; flex-direction: column; align-items: flex-start; margin-top: 1em; padding: .6em 1.2em .65em; border: 1px solid rgba(0, 0, 0, .3); border-radius: var(--radius-card); font-size: clamp(.9rem, 1.05vw, 1.6rem); line-height: 1.6; }
.pam__course-sub { font-size: .82em; color: var(--c-sub); }
.pam__course-main { font-weight: 700; }

.pam-table { width: 100%; border-collapse: collapse; font-size: clamp(.95rem, 1.15vw, 1.8rem); line-height: 1.7; }
.pam-table th, .pam-table td { padding: 1em 0 1.05em; border-top: 1px solid rgba(0, 0, 0, .16); text-align: left; vertical-align: baseline; font-weight: 400; }
.pam-table tbody tr:last-child th, .pam-table tbody tr:last-child td { border-bottom: 1px solid rgba(0, 0, 0, .16); }
.pam-table__no { width: 3.2em; font-family: var(--font-mono); font-size: .86em; letter-spacing: .04em; color: var(--c-blue); font-variant-numeric: tabular-nums; }
.pam-table th.pam-table__no { font-weight: 500; }
.pam-table__title { padding-right: 1.2em !important; font-weight: 500 !important; word-break: auto-phrase; text-wrap: pretty; }
.pam-table__sub { display: block; margin-top: .1em; font-size: .78em; font-weight: 400; color: var(--c-sub); }
.pam-table__hours { width: 5.2em; white-space: nowrap; }
.pam-table__hours .h { display: inline-block; min-width: 3.4em; padding: .05em .8em .1em; border: 1px solid rgba(0, 0, 0, .3); border-radius: 5em; font-family: var(--font-mono); font-size: .82em; text-align: center; background: #fff; }
.pam-table__time { width: 9.5em; font-family: var(--font-mono); font-size: .86em; letter-spacing: .01em; color: var(--c-sub); white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right !important; }

.pam-lunch { margin-top: 1.6em; padding: 1.1em 1.4em 1.2em; border-radius: var(--radius); background: #fff; font-size: clamp(.9rem, 1.05vw, 1.6rem); line-height: 1.8; }
.pam-lunch__label { font-weight: 500; }
.pam-lunch__line { font-variant-numeric: tabular-nums; color: var(--c-sub); }
.pam-note { margin-top: 1em; font-size: clamp(.74rem, .85vw, 1.2rem); line-height: 1.8; color: var(--c-sub); text-align: right; }

@media (max-width: 812px) {
	.pam-top { padding-top: calc(var(--vh) * 20); padding-bottom: 12vw; }
	.page-pamphlet .pam-list { padding-top: 14vw; }
	.pam-contact { padding-top: 16vw; padding-bottom: 18vw; }
	.pam-index { margin-top: 1.8rem; }
	.pam-index a { grid-template-columns: 2.4em minmax(0, 1fr) 1.1em; row-gap: .1em; padding: 1em 0 1.05em; font-size: .96rem; }
	.pam-index__no { grid-row: 1 / span 3; }
	.pam-index__name, .pam-index__meta, .pam-index__fee { grid-column: 2; }
	.pam-index__meta, .pam-index__fee { font-size: .9em; }
	.pam-index a svg { grid-column: 3; grid-row: 1 / span 3; }
	.pam-pdf { margin-top: 1.6rem; font-size: .92rem; }

	.pam__title { font-size: 1.6rem; }
	.pam__schedule { font-size: .92rem; }
	.pam__fee { padding: 1em 1.1em 1.1em; font-size: .92rem; }
	.pam__course { font-size: .92rem; }

	.pam-table { font-size: .96rem; }
	.pam-table tbody tr { display: grid; grid-template-columns: 2.4em auto minmax(0, 1fr); column-gap: .8em; row-gap: .45em; align-items: baseline; padding: 1em 0 1.05em; border-top: 1px solid rgba(0, 0, 0, .16); }
	.pam-table tbody tr:last-child { border-bottom: 1px solid rgba(0, 0, 0, .16); }
	.pam-table tbody th, .pam-table tbody td { display: block; width: auto; padding: 0 !important; border: 0 !important; }
	.pam-table__no { grid-column: 1; grid-row: 1 / span 2; }
	.pam-table__title { grid-column: 2 / -1; }
	.pam-table__hours { grid-column: 2; }
	.pam-table__time { grid-column: 3; text-align: left !important; }
	.pam-table__time br { display: none; }
	.pam-table__time .pam-table__t + br + .pam-table__t { margin-left: 1em; }
	.pam-lunch { padding: 1em 1.1em 1.1em; font-size: .92rem; }
	.pam-note { font-size: .74rem; }
}
