.contact { position: relative; padding: var(--space-8) 0; background: var(--c-ink); color: var(--c-white); text-align: center; }
.contact__bg { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.contact::after { content: ""; position: absolute; inset: 0; background: var(--c-veil); }
.contact__inner { position: relative; z-index: var(--z-1); }
.contact .h2 { margin-top: 0; }
.btn { display: inline-block; margin-top: var(--space-5); padding: var(--space-3) var(--space-6); border: var(--bd) solid var(--c-white); border-radius: var(--r-pill); transition: background var(--t-1), color var(--t-1); }
.btn:hover { background: var(--c-white); color: var(--c-ink); }
.btn:focus-visible { outline: var(--bd) solid var(--c-white); outline-offset: var(--space-1); }
.btn-dark { display: inline-flex; align-items: center; justify-content: center; min-width: calc(var(--space-2) * 28); min-height: var(--space-7); padding: var(--space-3) var(--space-6); border: var(--bd) solid var(--c-ink); border-radius: var(--r-pill); background: var(--c-ink); color: var(--c-white); font: inherit; font-size: var(--fs-3); letter-spacing: var(--ls-4); cursor: pointer; transition: background var(--t-1), color var(--t-1); }
.btn-dark:hover { background: var(--c-white); color: var(--c-ink); }
.btn-dark:focus-visible { outline: var(--bd) solid var(--c-accent); outline-offset: var(--space-1); }
.anchor-nav { position: sticky; top: calc(var(--space-2) * 14); z-index: var(--z-2); height: var(--space-8); margin-bottom: var(--space-7); border-bottom: var(--bd) solid var(--c-line); background: var(--c-bg); }
@media (max-width: 1024px) { .anchor-nav { top: var(--space-8); } }
.anchor-nav__list { display: flex; justify-content: center; flex-wrap: wrap; height: 100%; }
@media (max-width: 768px) { .anchor-nav__list { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; } }
.anchor-nav__list li { display: flex; align-items: center; }
.anchor-nav__list li + li::before { content: ""; width: var(--bd); height: var(--space-4); background: var(--c-line); }
.anchor-nav__list a { padding: var(--space-4) var(--space-5); color: var(--c-ink-sub); white-space: nowrap; }
@media (max-width: 768px) { .anchor-nav__list a { padding: var(--space-4); } }
.section--tint { padding: var(--space-8) 0; background: var(--c-white); }
@media (max-width: 768px) { .section--tint { padding: var(--space-7) 0; } }
.sec-head .h2 { margin-top: var(--space-2); }
.statement { font-family: var(--ff-serif); font-size: var(--fs-7); letter-spacing: var(--ls-2); }
@media (max-width: 768px) { .statement { font-size: var(--fs-6); } }
.text-block p + p { margin-top: var(--space-4); }
.note { margin-top: var(--space-4); font-size: var(--fs-2); color: var(--c-ink-sub); }
.area__head { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; column-gap: var(--space-6); row-gap: var(--space-2); padding-bottom: var(--space-5); border-bottom: var(--bd) solid var(--c-line); }
@media (max-width: 768px) { .area__head { column-gap: var(--space-4); row-gap: var(--space-1); } }
.area__head::after { content: ""; position: absolute; bottom: calc(var(--bd) * -1); width: calc(var(--space-2) * 15); height: var(--bd-2); background: var(--c-accent); }
.area__num { grid-row: 1 / 3; min-width: var(--em-5); font-family: var(--ff-serif); font-size: var(--fs-10); line-height: 1; color: var(--c-accent); }
@media (max-width: 768px) { .area__num { font-size: var(--fs-9); } }
.area__kicker { display: flex; align-items: center; gap: var(--space-2); font-weight: var(--fw-medium); letter-spacing: var(--ls-6); color: var(--c-ink-sub); }
@media (max-width: 768px) { .area__kicker { font-size: var(--fs-2); } }
.area__kicker-logo { width: auto; height: var(--space-5); margin-bottom: var(--bd-2); }
@media (max-width: 768px) { .area__kicker-logo { height: var(--space-4); } }
.area__name { font-family: var(--ff-serif); font-size: var(--fs-8); font-weight: var(--fw-medium); line-height: 1; letter-spacing: var(--ls-4); }
@media (max-width: 768px) { .area__name { font-size: var(--fs-6); } }
.area__body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7); margin-top: var(--space-6); }
@media (max-width: 1024px) { .area__body { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); } }
.grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-6); }
@media (max-width: 768px) { .grid3 { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } }
.grid3--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .grid3--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) { .grid3--4 { grid-template-columns: minmax(0, 1fr); } }
.grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7); margin-top: var(--space-6); }
@media (max-width: 768px) { .grid2 { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } }
.work-card picture { display: block; overflow: hidden; }
.work-card img { aspect-ratio: 3 / 2; object-fit: cover; transition: transform var(--t-2) var(--ease); }
.work-card a:hover img { transform: scale(var(--scale)); }
.work-card a:focus-visible { outline: var(--bd) solid var(--c-accent); outline-offset: var(--space-1); }
.work-card__cap { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-3); }
.work-card__cap .pill-link__icon { flex-shrink: 0; }
.work-card__text { margin-top: var(--space-2); font-size: var(--fs-2); color: var(--c-ink-sub); }
.media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7); align-items: center; }
@media (max-width: 768px) { .media { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); } }
.media + .media { margin-top: var(--space-8); }
@media (max-width: 768px) { .media + .media { margin-top: var(--space-7); } }
.media--rev .media__img { order: 2; }
@media (max-width: 768px) { .media--rev .media__img { order: 0; } }
.media__img picture { display: block; overflow: hidden; }
.media__img img { aspect-ratio: 3 / 2; object-fit: cover; }
.media__num { font-family: var(--ff-serif); font-size: var(--fs-7); line-height: 1; letter-spacing: var(--ls-4); color: var(--c-accent); }
.media__title { margin-top: var(--space-2); font-family: var(--ff-serif); font-size: var(--fs-6); font-weight: var(--fw-medium); letter-spacing: var(--ls-2); }

.media__text { margin-top: var(--space-5); }
.media__body { position: relative; display: flex; flex-direction: column; justify-content: center; align-self: stretch; }
.media__note { position: absolute; right: 0; bottom: 0; left: 0; margin-top: 0; }
@media (max-width: 768px) { .media__body { display: block; } .media__note { position: static; margin-top: var(--space-4); } }
.media .more { justify-content: flex-start; margin-top: var(--space-5); }
.tbl { margin-top: var(--space-6); border-top: var(--bd) solid var(--c-line); }
.tbl__row { display: grid; grid-template-columns: calc(var(--space-2) * 30) minmax(0, 1fr); gap: var(--space-5); padding: var(--space-5) 0; border-bottom: var(--bd) solid var(--c-line); }
@media (max-width: 768px) { .tbl__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); padding: var(--space-4) 0; } }
.tbl__row dt { font-weight: var(--fw-medium); }
@media (max-width: 768px) { .tbl__row dt { color: var(--c-ink-sub); } }
.tbl__row dd { margin: 0; }
.park-keys { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); margin-top: var(--space-6); }
@media (max-width: 1024px) { .park-keys { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) { .park-keys { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); } }
.park-key { display: grid; grid-template-areas: "i l" "i v"; grid-template-columns: auto minmax(0, 1fr); align-content: center; column-gap: var(--space-4); padding: var(--space-4); border: var(--bd) solid var(--c-line); border-left: calc(var(--bd-2) * 2) solid var(--c-accent); background: var(--c-white); }
.park-key dt { display: contents; }
.park-key__l { grid-area: l; font-size: var(--fs-2); color: var(--c-ink-sub); }
.park-key__icon { grid-area: i; align-self: center; width: var(--space-7); height: var(--space-7); color: var(--c-accent); }
.park-key dd { grid-area: v; margin: 0; font-weight: var(--fw-medium); }
@media (max-width: 768px) { .park-key { padding: var(--space-3) var(--space-4); } .park-key__icon { width: var(--space-6); height: var(--space-6); } }
.tbl--icon dt { display: flex; align-items: center; gap: var(--space-2); }
.tbl__icon { flex: none; width: var(--space-5); height: var(--space-5); color: var(--c-accent); }
.tbl__row--ev { grid-template-columns: calc(var(--space-2) * 30 - var(--space-4) - var(--bd-2) * 2) minmax(0, 1fr); padding-left: var(--space-4); padding-right: var(--space-4); border-left: calc(var(--bd-2) * 2) solid var(--c-accent); background: var(--c-accent-tint); }
@media (max-width: 768px) { .tbl__row--ev { grid-template-columns: minmax(0, 1fr); } }
.tbl__row--ev dd { font-weight: var(--fw-medium); }
.tbl--short .tbl__row { grid-template-columns: calc(var(--space-2) * 15) minmax(0, 1fr); }
@media (max-width: 768px) { .tbl--short .tbl__row { grid-template-columns: minmax(0, 1fr); } }
.tbl--logo .tbl__row { grid-template-columns: calc(var(--space-2) * 57) minmax(0, 1fr); }
@media (max-width: 768px) { .tbl--logo .tbl__row { grid-template-columns: minmax(0, 1fr); } }
.tbl--logo dt { display: flex; align-items: center; }
.tbl--logo dd { display: grid; grid-template-columns: var(--space-9) minmax(0, 1fr); align-content: start; }
.tbl__logo { flex: none; width: var(--space-8); height: var(--space-6); margin-right: var(--space-3); object-fit: contain; }
.faq { margin-top: var(--space-6); border-top: var(--bd) solid var(--c-line); }
.faq__item { border-bottom: var(--bd) solid var(--c-line); }
.faq__q { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-5) 0; font-weight: var(--fw-medium); cursor: pointer; list-style: none; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after { content: "+"; flex-shrink: 0; width: var(--space-5); height: var(--space-5); border: var(--bd) solid var(--c-line); border-radius: 50%; text-align: center; font-weight: normal; }
.faq__item[open] .faq__q::after { content: "−"; }
.faq__q:focus-visible { outline: var(--bd) solid var(--c-accent); outline-offset: var(--space-1); }
.faq__a { padding: 0 0 var(--space-5); color: var(--c-ink-sub); }
:is(.text-block, .note, .faq__a, .policy, .article, .page-head__lead, .media__info, .tbl dd, .flow-steps__text, .form__box, .form__after, .form__recaptcha, .tel-list__web, .err__links) a:not([class]) { text-decoration-line: underline; text-decoration-thickness: var(--bd); text-underline-offset: var(--space-1); }
.narrow { max-width: calc(var(--space-2) * 111); margin: 0 auto; }
.policy { max-width: calc(var(--space-2) * 111); margin: 0 auto; }
.policy h2 { margin: var(--space-7) 0 var(--space-5); font-size: var(--fs-6); font-weight: var(--fw-medium); letter-spacing: var(--ls-2); }
@media (max-width: 768px) { .policy h2 { margin: var(--space-7) 0 var(--space-4); font-size: var(--fs-5); } }
.policy p + p, .policy p + ul, .policy ul + p, .policy p + .data-tbl, .policy .data-tbl + p { margin-top: var(--space-4); }
.policy ul { padding-left: var(--space-5); }
.policy ul { list-style: disc; }
.policy li + li { margin-top: var(--space-2); }
.policy__date { margin-top: var(--space-7); text-align: right; color: var(--c-ink-sub); }
.policy__sign { text-align: right; }
.policy .tbl { margin-top: var(--space-4); }
.policy .tbl__row { padding: var(--space-4) 0; }
.data-tbl { width: 100%; border-collapse: collapse; }
.data-tbl th, .data-tbl td { padding: var(--space-3) var(--space-3) var(--space-3) 0; border-bottom: var(--bd) solid var(--c-line); text-align: left; vertical-align: top; overflow-wrap: break-word; }
.data-tbl thead th { border-bottom-color: var(--c-ink); font-weight: var(--fw-medium); }
@media (max-width: 768px) { .data-tbl thead { position: absolute; width: var(--bd); height: var(--bd); overflow: hidden; clip: rect(0 0 0 0); } }
@media (max-width: 768px) { .data-tbl tr { display: block; padding: var(--space-3) 0; border-bottom: var(--bd) solid var(--c-line); } }
@media (max-width: 768px) { .data-tbl th, .data-tbl td { display: block; padding: var(--bd-2) 0; border: 0; } }
@media (max-width: 768px) { .data-tbl td::before { content: attr(data-th) "："; color: var(--c-ink-sub); } }
.form { max-width: calc(var(--space-2) * 111); margin: var(--space-6) auto 0; }
.form__row { display: grid; grid-template-columns: calc(var(--space-2) * 30) minmax(0, 1fr); gap: var(--space-6); padding: var(--space-6) 0; border-bottom: var(--bd) solid var(--c-line); }
@media (max-width: 768px) { .form__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); padding: var(--space-5) 0; } }
.form__label { padding-top: var(--space-3); font-weight: var(--fw-medium); }
@media (max-width: 768px) { .form__label { padding-top: 0; } }
.form__req { display: inline-block; margin-left: var(--space-2); font-size: var(--fs-2); color: var(--c-error); font-weight: normal; }
.form__opt { display: inline-block; margin-left: var(--space-2); font-size: var(--fs-2); color: var(--c-ink-sub); font-weight: normal; }
.form__input, .form__select, .form__textarea { width: 100%; min-height: var(--space-7); padding: var(--space-3) var(--space-4); border: var(--bd) solid var(--c-line); background: var(--c-white); color: var(--c-ink); font: inherit; }
.form__textarea { min-height: calc(var(--space-2) * 22); resize: vertical; }
.form__input:focus, .form__select:focus, .form__textarea:focus { outline: var(--bd) solid var(--c-ink); outline-offset: 0; border-color: var(--c-ink); }
.form__input[aria-invalid="true"], .form__textarea[aria-invalid="true"] { border-color: var(--c-error); }
@media (max-width: 1024px) { .form__input, .form__select, .form__textarea { font-size: var(--fs-4); } }
.form__err { margin-top: var(--space-2); font-size: var(--fs-2); color: var(--c-error); }
.form__agree { display: grid; gap: var(--space-4); margin-top: var(--space-7); }
.form__box { padding: var(--space-5); border: var(--bd) solid var(--c-line); background: var(--c-white); }
.form__box p { font-size: var(--fs-3); }
.form__check { display: inline-flex; align-items: center; gap: var(--space-3); margin-top: var(--space-4); font-weight: var(--fw-medium); cursor: pointer; }
.form__check input { width: var(--space-5); height: var(--space-5); margin: 0; accent-color: var(--c-ink); }
.form__submit { margin-top: var(--space-7); text-align: center; }
.form__after { margin-top: var(--space-5); text-align: center; }
.form__recaptcha { margin-top: var(--space-6); font-size: var(--fs-2); color: var(--c-ink-sub); text-align: center; }
.grecaptcha-badge { visibility: hidden; }
.form__summary { margin-top: var(--space-5); padding: var(--space-4) var(--space-5); border: var(--bd) solid var(--c-error); color: var(--c-error); }
.form__summary:focus { outline: var(--bd) solid var(--c-error); outline-offset: var(--bd-2); }
.news-date { display: block; margin-top: var(--space-3); font-size: var(--fs-2); color: var(--c-ink-sub); }
.news-title { margin-top: var(--space-1); font-size: var(--fs-2); }
.article-hero { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: end; }
@media (max-width: 1024px) { .article-hero { grid-template-columns: minmax(0, 1fr); } }
.article-hero__img { height: calc(var(--space-2) * 79); overflow: hidden; }
@media (max-width: 1024px) { .article-hero__img { height: calc(var(--space-2) * 52); } }
@media (max-width: 768px) { .article-hero__img { height: calc(var(--space-2) * 32); } }
.article-hero__img img { height: 100%; object-fit: cover; }
.news__item img { aspect-ratio: 3 / 2; object-fit: cover; }
.news__thumb { position: relative; display: block; overflow: hidden; }
.news__frame { position: absolute; inset: 0; z-index: var(--z-1); pointer-events: none; }
.news__frame::before, .news__frame::after { content: ""; position: absolute; border: var(--bd) solid transparent; transition: top var(--t-2) ease, right var(--t-2) ease, bottom var(--t-2) ease, left var(--t-2) ease; }
.news__frame::before { top: var(--space-2); left: var(--space-2); right: calc(100% * 0.8); bottom: calc(100% * 0.8); border-top-color: var(--c-white); border-left-color: var(--c-white); }
.news__frame::after { bottom: var(--space-2); right: var(--space-2); top: calc(100% * 0.8); left: calc(100% * 0.8); border-bottom-color: var(--c-white); border-right-color: var(--c-white); }
.news__item a:hover .news__frame::before, .news__item a:focus-visible .news__frame::before { right: var(--space-2); bottom: var(--space-2); }
.news__item a:hover .news__frame::after, .news__item a:focus-visible .news__frame::after { top: var(--space-2); left: var(--space-2); }
@media (prefers-reduced-motion: reduce) { .news__frame::before, .news__frame::after { transition: none; } }
.news__thumb::after { content: ""; position: absolute; top: 0; right: 0; z-index: var(--z-1); width: var(--space-7); aspect-ratio: 1; background: var(--img-mark-mannen) center / contain no-repeat; pointer-events: none; }
.news__badge { display: inline-flex; align-items: center; gap: var(--space-1); position: absolute; left: var(--space-2); bottom: var(--space-2); z-index: var(--z-1); padding: var(--space-1) var(--space-3); background: var(--c-white); font-size: var(--fs-1); font-weight: var(--fw-medium); letter-spacing: var(--ls-7); }
.news__badge .news__icon { flex: none; width: var(--em-6); aspect-ratio: 1; object-fit: contain; }
@media (max-width: 768px) { .news__frame::before { top: var(--space-1); left: var(--space-1); } .news__frame::after { bottom: var(--space-1); right: var(--space-1); } .news__item a:hover .news__frame::before, .news__item a:focus-visible .news__frame::before { right: var(--space-1); bottom: var(--space-1); } .news__item a:hover .news__frame::after, .news__item a:focus-visible .news__frame::after { top: var(--space-1); left: var(--space-1); } .news__thumb::after { width: var(--space-4); } .news__badge { left: var(--space-1); bottom: var(--space-1); padding: 0 var(--space-2); letter-spacing: var(--ls-5); } }
.article-hero__panel { position: relative; margin-left: calc(var(--space-8) * -1); padding: var(--space-7) var(--space-7) 0; background: var(--c-bg); }
@media (max-width: 1024px) { .article-hero__panel { margin: 0; padding: var(--space-7) 0 0; } }
@media (max-width: 768px) { .article-hero__panel { padding: var(--space-6) var(--space-5) 0; } }
.article-hero__title { margin-top: var(--space-2); font-family: var(--ff-serif); font-size: var(--fs-7); font-weight: normal; letter-spacing: var(--ls-4); }
@media (max-width: 768px) { .article-hero__title { font-size: var(--fs-6); } }
.article-hero__date { display: block; margin-top: var(--space-5); font-size: var(--fs-2); color: var(--c-ink-sub); }
.article { max-width: calc(var(--space-2) * 94); margin: var(--space-8) auto var(--space-9); }
@media (max-width: 768px) { .article { margin: var(--space-7) auto var(--space-8); } }
.article p + p { margin-top: var(--space-4); }
.article .more { justify-content: flex-start; }
.back-link { display: inline-flex; align-items: center; gap: var(--space-3); transition: opacity var(--t-1); }
.tel-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--space-5); margin-top: var(--space-6); border-top: var(--bd) solid var(--c-line); }
@media (max-width: 1024px) { .tel-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) { .tel-list { grid-template-columns: minmax(0, 1fr); } }
.tel-list li { padding: var(--space-5) 0; border-bottom: var(--bd) solid var(--c-line); }
.tel-list__name { font-weight: var(--fw-medium); }
.tel-list .card__logo--none { display: none; }
@media (max-width: 1024px) { .tel-list .card__logo--none { display: block; } }
@media (max-width: 768px) { .tel-list .card__logo--none { display: none; } }
.tel-list__tel { display: inline-block; margin-top: var(--space-1); font-family: var(--ff-serif); font-size: var(--fs-5); letter-spacing: var(--ls-4); }
.tel-list__web { margin-top: var(--space-1); font-size: var(--fs-2); color: var(--c-ink-sub); }
.tel-list__note { margin-top: var(--space-4); font-size: var(--fs-2); color: var(--c-ink-sub); }
.map-frame { margin-top: var(--space-6); height: calc(var(--space-2) * 52); background: var(--c-tint); }
@media (max-width: 768px) { .map-frame { height: calc(var(--space-2) * 38); } }
.map-frame iframe { width: 100%; height: 100%; border: 0; }
.map-sec, .map-sec + .access-cols { margin-top: var(--space-6); }
.cards-link { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-6); }
@media (max-width: 768px) { .cards-link { grid-template-columns: minmax(0, 1fr); } }
.cards-link a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-5); border: var(--bd) solid var(--c-accent-2-dark); background: var(--c-accent-2-dark); color: var(--c-white); transition: background var(--t-1), border-color var(--t-1); }
.cards-link a:hover { border-color: var(--c-ink); background: var(--c-ink); }
.cards-link .pill-link__icon { flex-shrink: 0; background: var(--c-white); color: var(--c-accent); }
.cards-link:first-child { margin-top: 0; }
.cards-link__t { font-weight: var(--fw-medium); }
.cards-link__s { display: block; margin-top: var(--space-1); font-size: var(--fs-2); }
.steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-5); margin: var(--space-6) 0 0; padding: 0; list-style: none; counter-reset: step; }
@media (max-width: 1024px) { .steps { grid-template-columns: minmax(0, 1fr); gap: 0; border-top: var(--bd) solid var(--c-line); } }
.steps li { padding-top: var(--space-4); border-top: var(--bd) solid var(--c-ink); }
@media (max-width: 1024px) { .steps li { display: grid; grid-template-columns: var(--space-7) minmax(0, 1fr); padding: var(--space-4) 0; border-top: 0; border-bottom: var(--bd) solid var(--c-line); } }
.steps li::before { counter-increment: step; content: "0" counter(step); display: block; font-family: var(--ff-serif); font-size: var(--fs-5); }
.steps p { margin-top: var(--space-2); }
@media (max-width: 1024px) { .steps p { margin-top: 0; } }
.center { text-align: center; }
.center .more { justify-content: center; }
.media--tall { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
@media (max-width: 768px) { .media--tall { grid-template-columns: minmax(0, 1fr); } }
.media--tall.media--rev { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
@media (max-width: 768px) { .media--tall.media--rev { grid-template-columns: minmax(0, 1fr); } }
.media--tall .media__img img { aspect-ratio: 4 / 5; }
.media__info { font-size: var(--fs-2); color: var(--c-ink-sub); }
.media__body > .media__info { margin-top: auto; padding-top: var(--space-5); }
@media (max-width: 768px) { .media__body > .media__info { margin-top: var(--space-5); padding-top: 0; } }
.contact__lead { max-width: var(--em-9); margin: var(--space-5) auto 0; }
.contact__tel { display: inline-block; margin-top: var(--space-4); font-family: var(--ff-serif); font-size: var(--fs-8); letter-spacing: var(--ls-4); }
@media (max-width: 768px) { .contact__tel { font-size: var(--fs-7); } }
.contact__time { margin-top: var(--space-1); font-size: var(--fs-2); }
.contact-pre { padding-bottom: var(--space-7); text-align: center; }
.contact-pre__lead { max-width: var(--em-9); margin: 0 auto; }
.contact-pre__notes { margin-top: var(--space-4); }
.recruit__visual { position: relative; margin-top: var(--space-5); }
.recruit__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, var(--c-veil), transparent 50%); pointer-events: none; }
.recruit__ph { display: block; height: calc(var(--space-2) * 84); }
.recruit__ph img { height: 100%; object-fit: cover; object-position: center bottom; }
@media (max-width: 768px) { .recruit__ph { height: calc(var(--space-2) * 44); } }
.recruit__letter { position: absolute; left: 0; right: 0; padding-inline: var(--space-5); bottom: var(--space-8); z-index: var(--z-1); color: var(--c-white); font-family: var(--ff-serif); font-size: var(--fs-9); font-weight: var(--fw-medium); line-height: 1; letter-spacing: var(--ls-1); text-align: center; text-shadow: var(--shadow); padding-block: var(--space-5); margin-bottom: calc(var(--space-5) * -1); background: linear-gradient(to bottom, transparent, var(--c-veil), var(--c-veil), transparent); }
@media (max-width: 1024px) { .recruit__letter { font-size: var(--fs-8); bottom: var(--space-7); } }
@media (max-width: 768px) { .recruit__letter { padding-inline: var(--space-3); bottom: var(--space-6); font-size: var(--fs-6); } }
.err { padding: var(--space-9) 0; text-align: center; }
.err__code { font-family: var(--ff-serif); font-size: var(--fs-9); line-height: 1; letter-spacing: var(--ls-4); color: var(--c-ink-sub); }
.err__links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3) var(--space-5); margin-top: var(--space-6); }
.sec-head + .media { margin-top: var(--space-7); }
.article-hero--text { grid-template-columns: minmax(0, 1fr); }
.article-hero--text .article-hero__panel { max-width: calc(var(--space-2) * 94); margin: 0 auto; padding: var(--space-8) 0 0; }
@media (max-width: 768px) { .article-hero--text .article-hero__panel { padding: var(--space-7) 0 0; } }
.section--tint:has(+ .contact) { margin-bottom: 0; }
.more--left { justify-content: flex-start; }
.text-block .more { margin-top: var(--space-5); }
.contact__ja { display: block; margin-top: var(--space-2); font-size: var(--fs-5); letter-spacing: var(--ls-2); }
.gcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-6); }
@media (max-width: 768px) { .gcards { grid-template-columns: minmax(0, 1fr); } }
.gcard { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; }
.gcard .work-card__text { padding-bottom: var(--space-4); }
.gcard__data { display: grid; grid-row: span 3; grid-template-rows: subgrid; border-top: var(--bd) solid var(--c-line); font-size: var(--fs-2); }
.gcard__row { display: grid; grid-template-columns: var(--space-8) minmax(0, 1fr); gap: var(--space-2); padding: var(--space-2) 0; border-bottom: var(--bd) solid var(--c-line); }
.gcard__row dt { color: var(--c-ink-sub); }
.gcard__row dd { margin: 0; }
.flow-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-4); margin: var(--space-6) 0 0; padding: 0; list-style: none; }
@media (max-width: 768px) { .flow-steps { grid-template-columns: minmax(0, 1fr); gap: 0; } }
.flow-steps__item { position: relative; text-align: center; }
@media (max-width: 768px) { .flow-steps__item { display: grid; grid-template-columns: var(--space-7) minmax(0, 1fr); column-gap: var(--space-4); padding-bottom: var(--space-5); text-align: left; } }
.flow-steps__item:not(:last-child)::after { content: ""; position: absolute; top: calc(var(--space-7) / 2); left: calc(50% + var(--space-7) / 2); width: calc(100% - var(--space-7) + var(--space-4)); height: var(--bd-2); background: var(--c-accent); }
@media (max-width: 768px) { .flow-steps__item:not(:last-child)::after { top: var(--space-7); left: calc(var(--space-7) / 2 - var(--bd-2) / 2); width: var(--bd-2); height: calc(100% - var(--space-7)); } }
.flow-steps__num { display: grid; place-items: center; width: var(--space-7); height: var(--space-7); margin: 0 auto; border-radius: 50%; background: var(--c-accent); color: var(--c-white); font-family: var(--ff-serif); font-size: var(--fs-5); font-weight: bold; }
@media (max-width: 768px) { .flow-steps__num { grid-row: span 2; } }
.flow-steps__title { margin-top: var(--space-3); font-weight: var(--fw-medium); }
@media (max-width: 768px) { .flow-steps__title { margin-top: var(--space-2); } }
.flow-steps__text { margin-top: var(--space-1); font-size: var(--fs-2); color: var(--c-ink-sub); }
.map-sec--sticky .fmap__stage { position: sticky; top: calc(calc(var(--space-2) * 14) + var(--h-anchor-nav) + var(--space-5)); height: min(calc(var(--space-2) * 78), calc(var(--h-view) - calc(var(--space-2) * 14) - var(--h-anchor-nav) - var(--space-7))); }
@media (max-width: 1024px) { .map-sec--sticky .fmap__stage { position: relative; top: auto; height: calc(var(--space-2) * 70); } }
@media (max-width: 768px) { .map-sec--sticky .fmap__stage { height: calc(var(--space-2) * 60); } }
.venue-cards { margin: var(--space-6) 0 var(--space-7); }
.venue-cards img { aspect-ratio: 4 / 3; object-fit: cover; }
.venue-cards .card__name { display: block; min-height: calc(var(--lh-1) * var(--em-7)); }
.grid4--cap2 > .work-card .work-card__cap { min-height: calc(var(--lh-1) * var(--em-7)); }
@media (max-width: 768px) { .grid4--cap2 > .work-card .work-card__cap { min-height: 0; } }
.card__floor { margin-top: var(--space-3); font-size: var(--fs-2); letter-spacing: var(--ls-7); color: var(--c-ink-sub); }
.card__floor + .card__title { margin-top: var(--space-1); }
.note--price { margin-top: var(--space-3); }
.media__info .note { margin-top: var(--space-2); }
.access-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7); align-items: start; }
@media (max-width: 768px) { .access-cols { grid-template-columns: minmax(0, 1fr); gap: 0; } }
.work-card__num { margin-right: var(--space-3); }
.entry-links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-5); margin-top: var(--space-6); }
.entry-links__btn { display: flex; align-items: center; justify-content: center; width: calc(var(--space-2) * 45); max-width: 100%; min-height: var(--space-7); padding: var(--space-4) var(--space-5); border: var(--bd) solid var(--c-ink); background: var(--c-white); text-align: center; transition: background var(--t-1), color var(--t-1); }
.entry-links__btn:hover { background: var(--c-ink); color: var(--c-white); }
.entry-links__btn:focus-visible { outline: var(--bd) solid var(--c-accent); outline-offset: var(--space-1); }
.fmap__dot.fmap__dot--mn { background: var(--m-mn); }
.ext-nw { white-space: nowrap; }
.freedial { display: inline-block; width: auto; height: var(--em-4); margin-right: var(--em-2); vertical-align: calc(var(--em-1) * -1); }
@media (max-width: 768px) { .sp-swipe { position: relative; display: flex; gap: var(--space-4); margin-right: calc(var(--space-5) * -1); padding-right: var(--space-5); overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; } }
@media (max-width: 768px) { .sp-swipe::-webkit-scrollbar { display: none; } }
@media (max-width: 768px) { .sp-swipe > li { position: relative; flex: 0 0 var(--w-slide-sp); scroll-snap-align: start; } }
.job { border: var(--bd) solid var(--c-line); border-left: calc(var(--bd-2) * 2) solid var(--c-accent); background: var(--c-white); transition: border-color var(--t-1); }
.job:hover { border-color: var(--c-ink); border-left-color: var(--c-accent); }
.job__link { display: block; height: 100%; padding: var(--space-6); }
@media (max-width: 768px) { .job__link { padding: var(--space-5); } }
.job__place { font-size: var(--fs-2); color: var(--c-ink-sub); }
@media (max-width: 1024px) { .job__place { min-height: calc(var(--lh-1) * var(--em-7)); } }
.job__title { margin-top: var(--space-2); font-family: var(--ff-serif); font-size: var(--fs-5); font-weight: normal; }
.job__time { margin-top: var(--space-1); }
.job__text { margin-top: var(--space-4); padding-top: var(--space-4); border-top: var(--bd) solid var(--c-line); color: var(--c-ink-sub); }
.ej-svc > li + li { margin-top: var(--space-8); }
@media (max-width: 768px) { .ej-svc > li + li { margin-top: 0; } }
.card__logo, .card img.card__logo { display: block; height: var(--space-7); width: auto; max-width: 100%; margin-bottom: var(--space-2); object-fit: contain; object-position: left center; transition: none; }
.card a:hover img.card__logo { transform: none; }
.card__logo--none { width: 0; }
.media__logo { height: var(--space-8); margin-bottom: var(--space-3); }
.work-card img.card__logo { aspect-ratio: auto; object-fit: contain; transition: none; }
.work-card a:hover img.card__logo { transform: none; }
.page-head__logo { height: var(--space-8); width: auto; margin: var(--space-4) auto 0; }

.media-notes { margin-top: var(--space-7); }
.finder { width: min(calc(100% - var(--space-6)), calc(var(--space-2) * 80)); max-height: var(--h-finder-max); padding: 0; overflow-y: auto; overscroll-behavior: contain; border: 0; background: var(--c-bg); color: var(--c-ink); box-shadow: 0 var(--space-3) var(--space-6) var(--c-shadow); }
.finder::backdrop { background: var(--c-veil); }
.finder__inner { padding: var(--space-7) var(--space-7) var(--space-6); }
@media (max-width: 768px) { .finder__inner { padding: var(--space-6) var(--space-5) var(--space-5); } }
.finder__head { position: relative; padding-right: var(--space-7); }
.finder__title { margin-top: var(--space-2); font-family: var(--ff-serif); font-size: var(--fs-5); font-weight: normal; letter-spacing: var(--ls-2); }

.finder__close { position: absolute; top: calc(var(--space-3) * -1); right: calc(var(--space-3) * -1); width: var(--space-7); height: var(--space-7); padding: 0; border: 0; background: none; cursor: pointer; }
.finder__close::before, .finder__close::after { content: ""; position: absolute; top: 50%; left: 50%; width: var(--space-5); height: var(--bd); background: var(--c-ink); }
.finder__close:focus-visible, .finder__opt:focus-visible, .finder__back:focus-visible { outline: var(--bd) solid var(--c-accent); outline-offset: var(--bd-2); }
.finder__prog { display: flex; gap: var(--space-2); margin: var(--space-5) 0 0; padding: 0; list-style: none; }
.finder__prog li { flex: 1; height: var(--bd-2); background: var(--c-line); }
.finder__prog li.is-on { background: var(--c-accent); }
.finder__body { margin-top: var(--space-5); }
.finder__step { margin: 0; padding: 0; border: 0; }
.finder__q { padding: 0; font-family: var(--ff-serif); font-size: var(--fs-6); letter-spacing: var(--ls-2); }
.finder__q:focus { outline: none; }
.finder__qnum { display: block; margin-bottom: var(--space-1); font-size: var(--fs-2); letter-spacing: var(--ls-7); color: var(--c-accent); }
.finder__opts { display: grid; gap: var(--space-2); margin-top: var(--space-4); }
.finder__opt { width: 100%; padding: var(--space-4) var(--space-5); border: var(--bd) solid var(--c-line); background: var(--c-white); color: var(--c-ink); font: inherit; font-size: var(--fs-3); line-height: var(--lh-1); text-align: left; cursor: pointer; transition: border-color var(--t-1), color var(--t-1); }
.finder__opt:hover { border-color: var(--c-accent); color: var(--c-accent); }
.finder__nav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-5); font-size: var(--fs-2); color: var(--c-ink-sub); }
.finder__back { padding: var(--space-1) 0; border: 0; background: none; color: var(--c-ink); font: inherit; cursor: pointer; }
.finder__back:hover { color: var(--c-accent); }
.finder__arrow { margin-right: var(--space-1); }
.finder__count { margin-left: auto; }
.finder__sum { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-4) 0 0; }
.finder__sum li { padding: var(--space-1) var(--space-3); border: var(--bd) solid var(--c-line); border-radius: var(--r-pill); font-size: var(--fs-2); line-height: var(--lh-1); color: var(--c-ink-sub); }
.finder__cards { display: flex; flex-direction: column; gap: var(--space-3); margin: var(--space-5) 0 0; }
.finder__card { padding: var(--space-5) var(--space-5); border: var(--bd) solid var(--c-line); background: var(--c-white); }
.finder__card { position: relative; }
.finder__card.is-main { padding-top: calc(var(--space-6) + var(--space-3)); border-color: var(--c-accent); }
.finder__tag { display: flex; align-items: center; gap: var(--space-1); font-size: var(--fs-2); font-weight: var(--fw-medium); color: var(--c-accent); }
.finder__crown { display: none; width: var(--space-3); height: var(--space-3); }
.finder__card.is-main .finder__tag { position: absolute; top: calc(var(--bd) * -1); left: calc(var(--bd) * -1); padding: var(--space-1) var(--space-3); background: var(--c-accent-2-dark); color: var(--c-white); }
.finder__card.is-main .finder__crown { display: block; }
.finder__card .card__floor { margin-top: var(--space-2); }
.finder__name { margin-top: var(--space-1); font-weight: var(--fw-medium); }
.finder__text { margin-top: var(--space-2); font-size: var(--fs-2); color: var(--c-ink-sub); }
.finder__card .more, .finder__path .more { justify-content: flex-start; }
.finder__card .more { margin-top: var(--space-3); }
.finder__paths { display: grid; gap: var(--space-3); margin-top: var(--space-6); padding-top: var(--space-5); border-top: var(--bd) solid var(--c-line); }
.finder__path { padding: var(--space-5); border: var(--bd) solid var(--c-line); background: var(--c-white); }
.finder__path.is-main { border-color: var(--c-accent); box-shadow: inset 0 0 0 var(--bd) var(--c-accent); }
.finder__path-h { display: flex; align-items: center; gap: var(--space-2); font-size: var(--fs-4); font-weight: var(--fw-medium); }
.finder__path-n { align-items: center; justify-content: center; flex-shrink: 0; width: var(--space-5); height: var(--space-5); border-radius: 50%; background: var(--c-ink); color: var(--c-white); font-size: var(--fs-2); }
.finder__path-n:empty { display: none; }
.finder__path-t { margin-top: var(--space-2); font-size: var(--fs-2); color: var(--c-ink-sub); }
.finder__path .more { margin-top: var(--space-3); }
.finder__path-btns { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.finder__net { flex-direction: column; gap: 0; text-align: center; padding: var(--space-2) var(--space-4); letter-spacing: var(--ls-2); }
.finder__net[hidden] { display: none; }
.finder__net small { font-size: var(--fs-1); }
@media (max-width: 768px) { .finder__net { width: 100%; } }
.finder__notes { margin: var(--space-4) 0 0; }
.finder__notes li { position: relative; padding-left: 1em; font-size: var(--fs-2); line-height: var(--lh-1); color: var(--c-ink-sub); }
.finder__notes li + li { margin-top: var(--space-1); }
.finder__notes li::before { content: "※"; position: absolute; left: 0; }
.finder-banner { margin-top: var(--space-7); }
.finder-banner + .sec-head { margin-top: var(--space-7); }
.finder:focus, .finder:focus-visible { outline: none; }
picture.logo-pic { display: contents; }
.finder__logo { margin-top: var(--space-3); }
:is(.form__input, .form__textarea)::placeholder { color: var(--c-ink-sub); font-size: var(--fs-2); opacity: 1; }
