*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scrollbar-gutter: stable; }
body { margin: 0; font-family: var(--ff-sans); font-weight: var(--fw-medium); line-height: var(--lh-2); background: var(--c-bg); text-wrap: pretty; line-break: strict; }

img { max-width: 100%; height: auto; vertical-align: middle; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
p, dl, dd { margin: 0; }
h1, h2, h3 { margin: 0; font-weight: normal; }
:focus-visible { outline: var(--bd-3) solid var(--c-focus); outline-offset: var(--bd-2); }
.skip-link { position: absolute; transform: translateX(-100%); z-index: var(--z-3); padding: var(--space-2) var(--space-5); background: var(--c-bg); color: var(--c-accent); }
.skip-link:focus { left: var(--space-2); transform: none; }
.sr-only { position: absolute; width: var(--bd); height: var(--bd); overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.inner { position: relative; max-width: var(--w-inner); margin: 0 auto; }
@media screen and (max-width: 1024px) {
  .inner { padding: 0 var(--space-4); }
}
.inner--narrow { max-width: var(--w-narrow); }
.nw { white-space: nowrap; }
.hd { position: absolute; left: 0; right: 0; z-index: var(--z-2); }
.hd .logo--color { display: none; }
.is-top .hd .logo--color { display: block; filter: none; }
.is-top .hd .logo--white { display: none; }
.hd::after { content: ""; display: block; clear: both; }
.hd__logo { float: left; margin: var(--space-2) 0 0 var(--space-2); }
.hd__logo a { display: block; padding: var(--space-3) var(--space-5); }
@media screen and (max-width: 1024px) {
  .hd__logo a { padding: var(--space-2) var(--space-3); }
}
.hd__logo img { display: block; width: auto; height: var(--space-7); filter: var(--shadow-2); }
.subttl { margin-bottom: var(--space-7); font-size: var(--fs-3); color: var(--c-accent); text-align: center; line-height: var(--lh-1); background: var(--shine) no-repeat; background-size: calc(100% * 3) 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.subttl .en { display: block; font-family: var(--ff-en); font-size: var(--fs-6); }
@media screen and (max-width: 768px) {
  .subttl .en { font-size: var(--fs-5); }
}
.subttl.is-shine { animation: sw-shine var(--t-3) ease-out var(--t-1) 1 both; }
@keyframes sw-shine {
  from { background-position: 100% 0; }
  to { background-position: 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .subttl.is-shine { animation: none; }
}
.button { padding: var(--em-7) 0; background: var(--c-accent); border: 1px solid var(--c-accent); color: var(--c-bg); transition: background var(--t-1), color var(--t-1); }
.button:hover { background: none; color: var(--c-accent); }
.text-link { color: var(--c-accent); }
.co-tbl dd a, .contents p a, .text-link { text-decoration: underline; text-decoration-thickness: var(--bd); text-underline-offset: var(--space-1); }
.pageTitle { position: relative; z-index: 0; padding: calc(100% * 0.13) calc(100% * 0.04) calc(100% * 0.08); background: url("../img/page-title.jpg?v=23b1c85f") no-repeat center / cover; background: image-set(url("../img/page-title.webp?v=beb57ae5") type("image/webp"), url("../img/page-title.jpg?v=23b1c85f") type("image/jpeg")) no-repeat center / cover; color: var(--c-bg); text-align: center; }
@media screen and (max-width: 768px) {
  .pageTitle { padding: calc(var(--space-8) * 2) calc(100% * 0.04) calc(var(--space-5) + var(--space-6)); }
}
.pageTitle--legal { background: url("../img/pt-legal.jpg?v=2eaeb12f") no-repeat center / cover; background: image-set(url("../img/pt-legal.webp?v=aa3ef4db") type("image/webp"), url("../img/pt-legal.jpg?v=2eaeb12f") type("image/jpeg")) no-repeat center / cover; }
.pageTitle::before { content: ""; position: absolute; inset: 0; z-index: calc(var(--z-1) * -1); background: var(--veil-top); }
@media screen and (max-width: 1024px) {
  .pageTitle::before { background: var(--veil-top-sp); }
}
.pageTitle__lead { position: relative; display: inline-block; min-width: calc(100% * 0.4); padding: var(--em-11) var(--em-13) var(--em-9); border: var(--space-2) solid transparent; background: var(--veil-title-box) border-box; }
@media screen and (max-width: 768px) {
  .pageTitle__lead { padding: var(--em-7) var(--em-8); min-width: calc(100% * 0.8); }
}
.pageTitle__lead::before, .pageTitle__lead::after { content: ""; position: absolute; border: var(--bd) solid transparent; animation: var(--t-2) ease var(--t-2) both; }
.pageTitle__lead::before { top: 0; left: 0; border-top-color: var(--c-bg); border-left-color: var(--c-bg); animation-name: sw-frame-a; }
.pageTitle__lead::after { bottom: 0; right: 0; border-bottom-color: var(--c-bg); border-right-color: var(--c-bg); animation-name: sw-frame-b; }
@keyframes sw-frame-a {
  from { right: calc(100% * 0.8); bottom: calc(100% * 0.8); }
  to { right: 0; bottom: 0; }
}
@keyframes sw-frame-b {
  from { top: calc(100% * 0.8); left: calc(100% * 0.8); }
  to { top: 0; left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .pageTitle__lead::before, .pageTitle__lead::after { animation: none; inset: 0; }
}
.pageTitle__lead .en { display: block; font-family: var(--ff-en); font-size: var(--em-12); letter-spacing: var(--ls-1); line-height: var(--lh-1); }
@media screen and (max-width: 768px) {
  .pageTitle__lead .en { font-size: var(--em-9); }
}
.pageTitle__lead .ja { display: block; margin-top: var(--space-2); font-size: var(--fs-2); }
.pan { padding: var(--space-2) var(--space-4); }
.pan ol { max-width: var(--w-inner); }
.pan li { font-size: var(--em-5); }
.pan li + li::before { content: ">"; padding: 0 var(--space-2); }
.pan a:hover { text-decoration: underline; }
.contents { padding: calc(100% * 0.05) 0 var(--space-9); }
@media screen and (max-width: 768px) {
  .contents { padding: calc(100% * 0.05) 0 var(--space-8); }
}
.ft { padding: var(--space-8) 0 var(--space-6); background: var(--c-tint); border-top: 1px solid var(--c-line); }
.ft__inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ft__group { margin-top: var(--space-7); }
.ft__brand img { display: block; width: auto; height: var(--space-7); }
.ft__addr { margin-top: var(--space-5); font-size: var(--fs-1); }
.ft__nav-list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2) var(--space-5); margin-top: var(--space-5); }
.ft__nav-list a { font-size: var(--fs-1); }
.ft__group-logo img { display: block; margin: 0 auto; width: auto; height: calc(var(--space-6) + var(--space-7)); }
.ft__group-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 var(--space-6); margin-top: var(--space-3); }
.ft__group-list a { font-size: var(--fs-1); }
.ft__nav-list a:hover, .ft__group-list a:hover, .ft__legal a:hover { color: var(--c-accent); }
.ft__bottom { margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--c-line); font-size: var(--fs-1); text-align: center; }
.ft__copy { display: block; font-size: inherit; }
.ft__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2) var(--space-5); margin-top: var(--space-2); }
.totop { position: fixed; right: var(--space-5); bottom: var(--space-5); z-index: var(--z-3); display: flex; align-items: center; justify-content: center; width: calc(var(--space-1) * 13); height: calc(var(--space-1) * 13); border: 1px solid var(--c-accent); border-radius: 50%; background: var(--c-bg); color: var(--c-accent); opacity: 0; visibility: hidden; transition: opacity var(--t-1), visibility var(--t-1), background var(--t-1), color var(--t-1); }
@media screen and (max-width: 768px) {
  .ft { padding-bottom: calc(var(--space-6) + calc(var(--space-1) * 11) + var(--space-4)); }
  .totop { right: var(--space-4); bottom: var(--space-4); width: calc(var(--space-1) * 11); height: calc(var(--space-1) * 11); }
}
.totop.is-show { opacity: 1; visibility: visible; }
.totop:hover, .totop:focus-visible { background: var(--c-accent); color: var(--c-bg); }
.totop__i { width: calc(var(--space-1) * 5.5); height: calc(var(--space-1) * 5.5); }

.breadcrumb {
  padding-top: var(--space-4);
  padding-bottom: var(--space-4);
  font-size: var(--fs-2);
  line-height: var(--lh-1);
}

@media screen and (max-width: 768px) {
  .breadcrumb {
    font-size: var(--fs-1);
  }
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
}

.breadcrumb li + li::before {
  content: "／";
  margin: 0 var(--space-2);
}
