@charset "UTF-8";
:root {
  --global--border: 1px solid var(--wp--preset--color--contrast);
  --global--section-padding: 8rem;
  --header-height: 6rem;
  --header-padding-top: 2rem;
  --link-color: #13ae67;
  --hover-color: #029351;
  --cursor-normal: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><circle cx="7" cy="7" r="7" fill="%23005096"/></svg>') 7 7, default;
  --cursor-pointer: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><circle cx="7" cy="7" r="7" fill="%2319dc83"/></svg>') 7 7, default;
}
@media screen and (min-width: 961px) {
  :root {
    --header-padding-top: 4rem;
    --header-height: 8rem;
  }
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
  outline: none;
}

body > .wp-site-blocks {
  padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right);
  margin-inline: auto;
  position: relative;
  padding-block-start: calc(var(--header-height) + var(--header-padding-top));
}
body > .wp-site-blocks > header,
body > .wp-site-blocks > .global_nav,
body > .wp-site-blocks > footer {
  --wp--style--root--padding-top: var(--header-padding-top);
  --wp--style--root--padding-bottom: var(--header-padding-top);
}
body > .wp-site-blocks > header {
  margin-block-start: var(--wp--style--root--padding-top);
  height: var(--header-height);
  position: fixed;
  z-index: 9;
  top: 0;
  left: 0;
  right: 0;
  padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right);
}
@media screen and (min-width: 961px) {
  body > .wp-site-blocks > header {
    z-index: 11;
  }
}
body > .wp-site-blocks > .global_nav {
  position: fixed;
  top: 0;
  right: var(--wp--style--root--padding-right);
  z-index: 10;
}
body > .wp-site-blocks > main {
  padding-inline: 1.4rem;
}
body > .wp-site-blocks > footer {
  position: fixed;
  z-index: 4;
  top: 0;
  bottom: 0;
  right: calc(var(--wp--style--root--padding-right) - 0.5em);
}

@media screen and (min-width: 961px) {
  body > .wp-site-blocks {
    display: grid;
    grid-template-columns: 10rem auto 10rem;
    column-gap: 3rem;
    grid-template-areas: "nav main footer";
  }
  body > .wp-site-blocks > .global_nav {
    position: static;
    grid-area: nav;
    margin-block-start: 0;
  }
  body > .wp-site-blocks > .global_nav > main {
    grid-area: main;
  }
  body > .wp-site-blocks > footer {
    grid-area: footer;
    position: static;
    margin-block: 0;
  }
}
html {
  font-size: 62.5%;
}
@media screen and (min-width: 1921px) {
  html {
    font-size: 75%;
  }
}

.global_menu {
  font-weight: 400;
}
@media screen and (max-width: 960px) {
  .global_menu button.wp-block-navigation__responsive-container-open {
    display: flex !important;
  }
  .global_menu .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
}
@media screen and (min-width: 961px) {
  .global_menu {
    position: fixed;
    top: calc(var(--header-height) + var(--header-padding-top) + var(--wp--style--root--padding-top));
  }
}
@media screen and (max-width: 960px) {
  .global_menu {
    font-size: var(--wp--preset--font-size--large) !important;
  }
  .global_menu ul {
    padding-inline-end: var(--wp--style--root--padding-right);
    gap: 3rem !important;
  }
}
.global_menu:not(.has-background) .wp-block-navigation__responsive-container {
  width: auto;
  left: auto;
  bottom: 0;
  padding-inline-end: var(--wp--style--root--padding-right);
  padding-block-start: calc(1rem + env(safe-area-inset-top));
  padding-block-end: calc(1rem + env(safe-area-inset-bottom));
}
.global_menu:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
  background-color: rgba(28, 246, 15, 0.8);
}
@media screen and (min-width: 961px) {
  .global_menu:not(.has-background) .wp-block-navigation__responsive-container {
    padding-inline: 0;
  }
  .global_menu:not(.has-background) .wp-block-navigation__responsive-container .wp-block-navigation {
    row-gap: 4rem;
  }
}

#global_footer {
  height: 100%;
  width: auto;
  margin: 0;
  writing-mode: vertical-lr;
  gap: 3rem;
  position: relative;
}
#global_footer > p {
  margin: 0;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
#global_footer a {
  color: #13ae67 !important;
  text-decoration: underline !important;
  text-underline-position: left;
  text-underline-offset: 0;
}
#global_footer .vertical-copyright {
  gap: 0;
  margin-block-start: 0;
  position: absolute;
  right: 0;
  bottom: calc(var(--wp--style--root--padding-bottom) + 1em);
}
@media screen and (min-width: 961px) {
  #global_footer {
    position: sticky;
    height: calc(100svh - var(--header-padding-top) - var(--header-height));
    top: calc(var(--header-padding-top) + var(--header-height));
    padding-bottom: calc(var(--header-padding-top) + var(--header-height));
    display: grid;
    place-items: end center;
    width: 100%;
  }
  #global_footer > p {
    position: static;
    transform: none;
  }
}

#back_to_top {
  display: block;
  position: fixed;
  left: 50%;
  bottom: 1em;
  width: 3em;
  aspect-ratio: 50/27;
  z-index: 5;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(20px);
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
}
#back_to_top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0); /* 元の位置に戻す */
}
#back_to_top svg {
  fill: transparent;
  stroke-width: 2px;
  stroke: #005096;
  width: 100%;
  height: 100%;
  transition: stroke 0.3s ease-in;
}
#back_to_top:hover svg {
  stroke: #003d73;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 8rem;
}

@media screen and (max-width: 960px) {
  .wp-block-site-title {
    font-size: 1.4em !important;
  }
}

body {
  cursor: var(--cursor-normal);
}

a {
  cursor: var(--cursor-pointer);
}

main:is(.is-layout-flow, .is-layout-constrained) {
  padding-block-end: var(--global--section-padding);
}
main:is(.is-layout-flow, .is-layout-constrained) div, main:is(.is-layout-flow, .is-layout-constrained) p, main:is(.is-layout-flow, .is-layout-constrained) li, main:is(.is-layout-flow, .is-layout-constrained) a {
  overflow-wrap: anywhere;
}
main:is(.is-layout-flow, .is-layout-constrained) img {
  max-width: 100%;
  vertical-align: bottom;
  height: auto;
}
main:is(.is-layout-flow, .is-layout-constrained) :where(a:where(:not(.wp-element-button))) {
  transition: all 0.3s ease-in;
  color: var(--link-color);
  text-decoration: underline; /* 明示的にアンダーラインを表示 */
}
main:is(.is-layout-flow, .is-layout-constrained) :where(a:where(:not(.wp-element-button))):has(> img) {
  display: inline-block;
  position: relative;
  text-decoration: none;
}
main:is(.is-layout-flow, .is-layout-constrained) :where(a:where(:not(.wp-element-button))):has(> img)::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: transparent;
  transition: all 0.3s ease-in;
}
main:is(.is-layout-flow, .is-layout-constrained) :where(a:where(:not(.wp-element-button))):has(> img):hover::after {
  background: rgba(255, 255, 255, 0.4);
}
main:is(.is-layout-flow, .is-layout-constrained) :where(a:where(:not(.wp-element-button))):hover {
  text-decoration: underline;
  text-decoration-color: currentColor;
  color: var(--hover-color);
}
main:is(.is-layout-flow, .is-layout-constrained) h3:not(.normal) {
  font-size: var(--wp--preset--font-size--medium);
  border-bottom: var(--global--border);
  padding-bottom: 1em;
  margin-block-end: 1em;
}
@media screen and (min-width: 961px) {
  main:is(.is-layout-flow, .is-layout-constrained) h3:not(.normal) {
    padding-bottom: 1.5em;
    margin-block-end: 2em;
  }
}
main:is(.is-layout-flow, .is-layout-constrained) section:not(:last-child) {
  margin-block-end: var(--global--section-padding);
}
main:is(.is-layout-flow, .is-layout-constrained) hr {
  border: none;
  border-bottom: var(--global--border);
}

/*# sourceMappingURL=custom.css.map */
