.btn { padding: var(--space-3) var(--space-6); border: var(--bd) solid var(--c-bg); font-size: var(--fs-3); transition: background var(--t-1), color var(--t-1); }
.btn:hover { background: var(--c-bg); color: var(--c-ink); }
.btn:focus-visible { outline: var(--bd) solid var(--c-bg); outline-offset: var(--space-1); }
.anchor-nav { position: sticky; z-index: var(--z-2); }

.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); } }

.sec-head .h2 { margin-top: var(--space-2); }

.media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }

.media__img picture { display: block; overflow: hidden; }
.media__img img { aspect-ratio: 3 / 2; object-fit: cover; }
.media__title { font-family: var(--ff-serif); font-weight: var(--fw-medium); letter-spacing: calc(var(--fs-7) * 7 / 100); }

.media__text { margin-top: var(--space-5); }
.media__body { position: relative; display: flex; flex-direction: column; justify-content: center; align-self: stretch; }
@media (max-width: 768px) { .media__body { display: block; } }
.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); padding: var(--space-5) 0; border-bottom: var(--bd) solid var(--c-line); }
@media (max-width: 768px) { .tbl__row { padding: var(--space-4) 0; } }
.tbl__row dt { font-weight: var(--fw-medium); }

.tbl__row dd { margin: 0; }
.tbl--short .tbl__row { grid-template-columns: calc(var(--space-2) * 15) minmax(0, 1fr); }

.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-7); font-weight: var(--fw-medium); line-height: var(--lh-2); letter-spacing: calc(var(--fs-7) * 7 / 100); }
@media (max-width: 768px) { .policy h2 { margin: var(--space-7) 0 var(--space-4); font-size: var(--fs-6); } }
.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 { text-align: right; font-size: var(--fs-3); color: var(--c-ink-sub); }
.policy__sign { text-align: right; }
.data-tbl { width: 100%; margin-top: var(--space-4); border-collapse: collapse; font-size: var(--fs-3); line-height: var(--lh-2); }
.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; }
.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); color: var(--c-accent-2); font-weight: var(--fw-regular); }
.form__opt { display: inline-block; margin-left: var(--space-2); font-size: var(--fs-2); color: var(--c-ink-sub); font-weight: var(--fw-regular); }
.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); 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__err { margin-top: var(--space-2); font-size: var(--fs-2); line-height: var(--lh-2); color: var(--c-accent-2); }
.form__hp { position: absolute; left: calc(var(--space-9) * -100); }
.form__agree { display: grid; gap: var(--space-4); margin-top: var(--space-7); }
.form__box { border: var(--bd) solid var(--c-line); background: var(--c-bg); }
.form__box p { font-size: var(--fs-3); line-height: var(--lh-2); }
.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; }
.form__submit { margin-top: var(--space-7); text-align: center; }
.form__after { margin-top: var(--space-5); text-align: center; font-size: var(--fs-3); line-height: var(--lh-2); }
.form__recaptcha { margin-top: var(--space-6); font-size: var(--fs-2); line-height: var(--lh-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-accent-2); color: var(--c-accent-2); font-size: var(--fs-3); }
.form__summary:focus { outline: var(--bd) solid var(--c-accent-2); outline-offset: var(--bd-2); }
.article { max-width: calc(var(--space-2) * 94); margin: var(--space-8) auto var(--space-9); }

.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__tel { font-family: var(--ff-serif); display: inline-block; margin-top: var(--space-1);  font-size: var(--fs-6); letter-spacing: calc(var(--fs-6) * 7 / 100); }
.tel-list__note { margin-top: var(--space-4); font-size: var(--fs-2); line-height: var(--lh-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 { margin-top: var(--space-6); }
.center { text-align: center; }
.sec-head + .media { margin-top: var(--space-7); }
.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); line-height: var(--lh-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; }
.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); } }
.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; } }
.fmap__dot.fmap__dot--mn { background: var(--m-mn); }
@media (max-width: 768px) { .sp-swipe { position: relative; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; } }
@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; } }
p, li, dt, dd { text-wrap: pretty; line-break: strict; word-break: auto-phrase; }
h1, h2, h3 { text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; }
th { word-break: keep-all; }
.gnav__link, .gnav__cta { font-family: var(--ff-serif); }

.gnav__cta { display: inline-flex; align-items: center; justify-content: center; border: var(--bd) solid var(--c-accent); letter-spacing: calc(var(--fs-3) * 7 / 100); white-space: nowrap; transition: background var(--t-1), color var(--t-1); }
.gnav__cta:hover, .gnav__cta[aria-current="page"] { background: var(--c-accent); color: var(--c-bg); }
.gnav__cta--fill:hover { background: var(--c-bg); color: var(--c-accent); }

@media (max-width: 1024px) { .gnav.is-open .gnav__cta { width: 100%; min-height: var(--space-7); }  }
.h2, .page-head__title, h3 { color: var(--c-accent); }
.hist__badge--mannen { background: var(--c-badge-mannen); color: var(--c-badge-mannen-ink); }
.tbl__row dd a:not([class]):hover { color: var(--c-accent); }
.gtree__parent { display: flex; justify-content: center; margin-top: var(--space-7); }
.gtree__parent .gtree__card { display: grid; grid-template-columns: calc(var(--space-2) * 40) minmax(0, 1fr); }

.gtree__card { border: var(--bd) solid var(--c-line); }
.gtree__img picture, .gtree__img img { display: block; width: 100%; height: 100%; object-fit: cover; }

.gtree__name { margin-top: var(--space-1); font-weight: var(--fw-medium); line-height: var(--lh-2); }
.gtree__name a:hover { color: var(--c-accent-2); }
.gtree__text { margin-top: var(--space-2); font-size: var(--fs-2); line-height: var(--lh-2); color: var(--c-ink-sub); }
.gtree__body .gcard__data { margin-top: var(--space-3); }
.gtree__line { position: relative; height: var(--space-6); }
.gtree__line::before { position: absolute; left: 50%; top: 0; bottom: 0; border-left: var(--bd) solid var(--c-ink-sub); }
.gtree__line::after { position: absolute; left: calc(100% / 6); right: calc(100% / 6); bottom: 0; border-top: var(--bd) solid var(--c-ink-sub); }
@media (max-width: 768px) { .gtree__line { display: none; } }
.gtree__kids { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
@media (max-width: 768px) { .gtree__kids { display: flex; margin-top: var(--space-5); } }
.cta-band { background: var(--c-accent); text-align: center; }
.cta-band .h2 { margin-top: 0; }
.cta-band__ja { display: block; margin-top: var(--space-2); font-size: var(--fs-3); letter-spacing: calc(var(--fs-3) * 7 / 100); }
.cta-band .btn { margin-top: var(--space-6); }
.btn-line, .btn-fill { min-width: calc(var(--space-2) * 28); }
.btn-line:hover, .btn-fill { background: var(--c-accent); color: var(--c-bg); }
.btn-fill:hover { background: var(--c-bg); color: var(--c-accent); }
.media__kicker { color: var(--c-accent-2); }
.media .tbl { margin-top: var(--space-5); }
.media-list .media { scroll-margin-top: calc(var(--h-header) + var(--h-anchor-nav) + var(--space-5)); }
.tel-list__note a { text-decoration: underline; text-underline-offset: var(--space-1); }
.tel-list__role { font-size: var(--fs-2); color: var(--c-ink-sub); }
.article { max-width: calc(var(--space-2) * 111); margin: 0 auto; }
.article__meta { color: var(--c-ink-sub); }

.article__body { margin-top: var(--space-6); }
.article__body p + p, .thanks p + p { margin-top: var(--space-4); }
.nf-list { display: grid; gap: var(--space-3); margin: var(--space-6) 0; }

.tbl__row dd, .data-tbl td { overflow-wrap: anywhere; }
.site-footer__inner > div { max-width: 100%; }
.gtree__img img[data-pos="50% 100%"] { object-position: bottom; }

:where(.tbl__row dd, .data-tbl td, .media__text, .tel-list__note, .form__box, .form__after, .form__recaptcha, .policy, .article, .thanks, .page-head__lead, .message) a:where(:not(.btn):not(.pill-link)) { text-decoration-line: underline; text-decoration-thickness: var(--bd); text-underline-offset: var(--space-1); }

.gtree__kids { letter-spacing: calc(calc(var(--fs-4) / 5) / 5); }

.gtree .gtree__parent .gtree__card, .gtree .gtree__kids .gtree__card { border-color: transparent; border-bottom-color: var(--c-line); }
.gtree .gtree__parent .gtree__card { border-bottom-color: var(--c-accent); }
.gtree .gtree__parent .gtree__img { clip-path: polygon(0 0,100% 0,calc(100% - var(--space-5)) 100%,0 100%); }
.gtree .gtree__body { position: relative; }
.gtree .gtree__body::before { content: ""; position: absolute; top: var(--space-3); width: var(--space-6); height: var(--bd-2); background: var(--c-accent-2); }
.gtree .gtree__name { position: relative; padding-right: var(--space-5); color: var(--c-accent); font-family: var(--ff-serif); }
.gtree .gtree__name a { color: var(--c-accent); }
.gtree .gtree__name a::after { content: "→"; position: absolute; right: 0; top: 0; color: var(--c-accent-2); }
.gtree .gtree__name a:is(:hover,:focus-visible) { color: var(--c-accent-2); text-decoration: underline; text-underline-offset: var(--space-1); }
@media (max-width: 768px) { .gtree .gtree__parent .gtree__img { clip-path: none; } }
:is(.form__input, .form__textarea)::placeholder { color: var(--c-ink-sub); font-size: var(--fs-3); opacity: 1; }
.nil { display: inline-block; width: var(--space-5); height: var(--bd); background: currentColor; vertical-align: middle; }
