:root {
  --color-primary: var(--wp--preset--color--primary, #1a712a);
  --color-secondary: var(--wp--preset--color--secondary, #2d953e);
  --color-accent: var(--wp--preset--color--accent, #fb4933);
  --color-contrast: var(--wp--preset--color--contrast, #111);
  --color-neutral-strong: var(--wp--preset--color--neutral-strong, #282828);
  --color-neutral-medium: var(--wp--preset--color--neutral-medium, #ccc);
  --color-neutral-soft: var(--wp--preset--color--neutral-soft, #eaeaea);
  --color-base-primary: var(--wp--preset--color--base-primary, #e3f3e5);
  --color-base-accent: var(--wp--preset--color--base-accent, #fdecea);
  --color-base-body: var(--wp--preset--color--base-body, #fff);
  --color-primary-active: #2d953e;
  --color-accent-active: #de3d2b;
  --color-line: #4cc764;
  --color-line-active: #3db254;
  --color-contrast-active: #464646;
  --gradient-primary: var(--wp--preset--gradient--primary, linear-gradient(180deg, #2d953e 0%, #0d531a 100%));
  --gradient-base-primary: var(--wp--preset--gradient--base-primary, linear-gradient(180deg, #a8deb200 0%, #a8deb266 100%));
  --font-family-ja: var(--wp--preset--font-family--noto-sans-jp, "Noto Sans JP", sans-serif);
  --font-family-en: var(--wp--preset--font-family--geist, "Geist", sans-serif);
  --font-size-xxs: 10px;
  --font-size-xs: 12px;
  --font-size-s: 14px;
  --font-size-m: 16px;
  --font-size-l: 20px;
  --font-size-xl: 24px;
  --font-size-2xl: 28px;
  --font-size-3xl: 32px;
  --font-size-4xl: 40px;
  --font-size-5xl: 48px;
  --font-size-6xl: 56px;
  --font-size-7xl: 64px;
  --border-radius-0: var(--wp--preset--border-radius--0, 0);
  --border-radius-4: var(--wp--preset--border-radius--4, 4px);
  --border-radius-8: var(--wp--preset--border-radius--8, 8px);
  --border-radius-16: var(--wp--preset--border-radius--16, 16px);
  --border-radius-full: var(--wp--preset--border-radius--full, 9999px);
  --spacing-0: 0;
  --spacing-4: 4px;
  --spacing-8: 8px;
  --spacing-12: 12px;
  --spacing-16: 16px;
  --spacing-20: 20px;
  --spacing-24: 24px;
  --spacing-32: 32px;
  --spacing-36: 36px;
  --spacing-40: 40px;
  --spacing-48: 48px;
  --spacing-56: 56px;
  --spacing-64: 64px;
  --spacing-80: 80px;
  --content-size: var(--wp--style--global--content-size, 1067px);
  --wide-size: var(--wp--style--global--wide-size, 1280px);
  --full-size: 1760px;
  --breakpoint-sm: 640px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-xxl: 1440px;
  --z-index-drawer: 110;
  --z-index-header: 100;
  --z-index-floating: 90;
  --clip-path-parallelogram: polygon(41% 0%, 100% 0%, 59% 100%, 0% 100%);
  --fluid-min-viewport: 375;
  --fluid-max-viewport: 1440;
  --fluid-slope: calc((100vw - var(--fluid-min-viewport) * 1px) / (var(--fluid-max-viewport)  - var(--fluid-min-viewport)));
  --header-height-corporate-desktop: 120px;
  --header-height-corporate-mobile: 56px;
  --header-height-recruit-desktop: 114px;
  --header-height-recruit-mobile: 64px;
  --icon-hamburger-duration: .3s;
  --icon-hamburger-delay: 0s;
  --animation-duration-heading-cover: .5s;
  --animation-delay-heading-cover: 0s;
  --animation-duration-image-cover: .5s;
  --animation-delay-image-cover: 0s;
  --animation-timing-function-cover: ease-in-out;
  --animation-delay-char-up-in: .2s;
  --animation-delay-interval-char-up-in: .1s;
  --animation-duration-char-up-in: .4s;
  --animation-timing-function-char-up-in: ease-in-out;
  --animation-transform-y-fade-up-in: 24px;
  --animation-duration-fade-up-in: .5s;
  --animation-timing-function-fade-up-in: ease-in-out;
  --animation-duration-zoom-up-in: .6s;
  --animation-timing-function-zoom-up-in: ease-in-out;
  --animation-duration-fade-in: .5s;
  --animation-timing-function-fade-in: ease-in-out;
  --animation-delay-text1: 0s;
  --animation-duration-text2: .5s;
  --animation-delay-text2: .5s;
  --animation-timing-function-text2: ease-in-out;
}

.wp-block-heading:where(h1) {
  column-gap: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  color: var(--color-contrast);
  font-size: var(--wp--preset--font-size--4-xl);
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  font-weight: 700;
  line-height: 1.5;
  display: grid;
}

.wp-block-heading:where(h1):before {
  content: "";
  aspect-ratio: 55 / 58;
  background: var(--gradient-primary);
  clip-path: polygon(66% 0, 100% 0%, 34% 100%, 0% 100%);
  grid-column: 1;
  inline-size: 1em;
  margin-block-start: .14em;
  display: block;
}

.wp-block-heading:where(h2) {
  border-block-start: 2px solid var(--color-neutral-medium);
  font-size: var(--wp--preset--font-size--3-xl);
  margin-block-start: 2em;
  padding: .75em 0 0;
  font-weight: 700;
  line-height: 1.5;
  display: block;
  position: relative;
}

.wp-block-heading:where(h2):before {
  content: "";
  background: var(--color-primary);
  block-size: 2px;
  inline-size: 25%;
  position: absolute;
  inset-block-end: 100%;
  inset-inline-start: 0;
}

.wp-block-heading:where(h3) {
  font-size: var(--wp--preset--font-size--2-xl);
  border: none;
  align-items: center;
  gap: .57em;
  padding: 0;
  font-weight: 700;
  line-height: 1.5;
  display: flex;
}

.wp-block-heading:where(h3):before {
  content: "";
  background: var(--gradient-primary);
  block-size: 1.3em;
  inline-size: 6px;
  position: static;
  transform: translateY(-.08em);
}

.wp-block-heading:where(h4) {
  font-size: var(--wp--preset--font-size--xl);
  font-weight: 700;
  line-height: 1.5;
}

.wp-block-heading:where(h5) {
  font-size: var(--wp--preset--font-size--l);
  font-weight: 700;
  line-height: 1.5;
}

.wp-block-heading:where(h6) {
  font-size: var(--wp--preset--font-size--m);
  font-weight: 700;
  line-height: 1.5;
}

.wp-block-heading {
  position: relative;
}

.wp-block-heading:not(:first-child) {
  margin-block-start: 2em;
}

.wp-block-heading .ez-toc-section, .wp-block-heading .ez-toc-section-end {
  pointer-events: none;
  width: 0;
  height: 0;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
}

.wp-block-heading.is-style-heading-level1 {
  column-gap: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  color: var(--color-contrast);
  font-size: var(--wp--preset--font-size--4-xl);
  border: none;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  padding: 0;
  font-weight: 700;
  line-height: 1.5;
  display: grid;
}

.wp-block-heading.is-style-heading-level1:before {
  content: "";
  aspect-ratio: 55 / 58;
  background: var(--gradient-primary);
  clip-path: polygon(66% 0, 100% 0%, 34% 100%, 0% 100%);
  grid-column: 1;
  block-size: auto;
  inline-size: 1em;
  margin-block-start: .14em;
  display: block;
  position: static;
}

.wp-block-heading.is-style-heading-level2 {
  padding: var(--spacing-48) 0 0;
  border: none;
  border-block-start: 2px solid var(--color-neutral-medium);
  font-size: var(--wp--preset--font-size--3-xl);
  font-weight: 700;
  line-height: 1.5;
  position: relative;
}

.wp-block-heading.is-style-heading-level2:before {
  content: "";
  background: var(--color-primary);
  block-size: 2px;
  inline-size: 25%;
  position: absolute;
  inset-block-end: 100%;
  inset-inline-start: 0;
}

.wp-block-heading.is-style-heading-level3 {
  font-size: var(--wp--preset--font-size--2-xl);
  border: none;
  align-items: center;
  gap: .57em;
  padding: 0;
  font-weight: 700;
  line-height: 1.5;
  display: flex;
}

.wp-block-heading.is-style-heading-level3:before {
  content: "";
  background: var(--gradient-primary);
  block-size: 1.3em;
  inline-size: 6px;
  position: static;
  transform: translateY(-.08em);
}

.wp-block-heading.is-style-heading-simple {
  color: var(--color-contrast);
  font-size: var(--wp--preset--font-size--3-xl);
  border: none;
  padding: 0;
  font-weight: 700;
  line-height: 1.5;
  display: block;
  position: static;
}

.wp-block-heading.is-style-heading-simple:before, .wp-block-heading.is-style-heading-simple:after {
  content: "";
  display: none;
}

.wp-block-heading.is-style-heading-recruit-sub {
  gap: clamp(var(--spacing-8), calc(var(--spacing-8)  + var(--fluid-slope) * 8), var(--spacing-16));
  font-size: clamp(var(--font-size-xl), calc(var(--font-size-xl)  + var(--fluid-slope) * 4), var(--font-size-2xl));
  word-break: keep-all;
  overflow-wrap: anywhere;
  border: none;
  align-items: center;
  padding: 0;
  font-weight: 700;
  line-height: 1.5;
  display: flex;
  position: static;
}

.wp-block-heading.is-style-heading-recruit-sub:before {
  content: "";
  aspect-ratio: 30 / 24;
  background: var(--color-primary);
  clip-path: polygon(36% 0, 100% 0%, 64% 100%, 0% 100%);
  block-size: auto;
  inline-size: 1.072em;
  display: block;
  position: static;
  transform: none;
}

.wp-block-heading.is-style-heading-recruit-sub:after {
  display: none;
}

.wp-block-list:where(ul) {
  padding-inline-start: 0;
  list-style: none;
}

.wp-block-list:where(ul) li {
  padding-inline-start: var(--spacing-16);
  position: relative;
}

.wp-block-list:where(ul) li:before {
  content: "";
  background: var(--color-primary);
  block-size: 8px;
  inline-size: 8px;
  position: absolute;
  inset-block-start: calc(.5lh - 4px);
  inset-inline-start: 0;
}

.wp-block-list:where(ul) li + li {
  margin-block-start: var(--spacing-16);
}

.wp-block-button .wp-block-button__link {
  padding: var(--wp--preset--spacing--24) var(--wp--preset--spacing--64);
  border-radius: var(--wp--preset--border-radius--8);
  background: var(--wp--preset--color--accent);
  color: var(--wp--preset--color--base-body);
  text-align: center;
  font-weight: 700;
  text-decoration: none;
}

.wp-block-button.is-style-button-secondary {
  width: 320px;
  max-width: 100%;
}

@media (max-width: 640px) {
  .wp-block-button.is-style-button-secondary {
    width: 100%;
  }
}

.wp-block-button.is-style-button-secondary .wp-block-button__link {
  --icon-size-desktop: 24px;
  --icon-size-mobile: 24px;
  --icon-size-fluid: clamp(var(--icon-size-mobile), var(--icon-size-mobile)  + var(--fluid-slope) * 0, var(--icon-size-desktop));
  --icon-size-fluid-half: calc(var(--icon-size-fluid) / 2);
  grid-template-columns: minmax(0, 1fr) var(--icon-size-fluid);
  padding: var(--wp--preset--spacing--24) 20px var(--wp--preset--spacing--24) 52px;
  border-radius: var(--wp--preset--border-radius--8);
  border: 1px solid var(--wp--preset--color--neutral-medium);
  background: var(--wp--preset--color--base-body);
  color: var(--wp--preset--color--contrast);
  font-size: var(--wp--preset--font-size--m);
  text-align: center;
  align-items: center;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  transition: border-color .3s, background-color .3s, color .3s;
  display: inline-grid;
  position: relative;
}

.wp-block-button.is-style-button-secondary .wp-block-button__link:before, .wp-block-button.is-style-button-secondary .wp-block-button__link:after {
  content: "";
  grid-area: 1 / -1 / 2 / -2;
  justify-self: center;
}

.wp-block-button.is-style-button-secondary .wp-block-button__link:before {
  inline-size: var(--icon-size-fluid);
  aspect-ratio: 1;
  border-radius: var(--border-radius-4);
  background: var(--color-primary);
}

.wp-block-button.is-style-button-secondary .wp-block-button__link:after {
  inline-size: var(--icon-size-fluid-half);
  aspect-ratio: 1;
  background: var(--color-base-body);
  -webkit-mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
  mask: url("../../assets/images/common/icon-arrow.svg") center / contain no-repeat;
}

@media (any-hover: hover) {
  .wp-block-button.is-style-button-secondary .wp-block-button__link:hover {
    border-color: var(--wp--preset--color--primary);
    background-color: var(--wp--preset--color--base-primary);
    color: var(--wp--preset--color--primary);
    opacity: 1;
  }
}

.wp-block-button.is-style-button-download .wp-block-button__link {
  inline-size: 320px;
  max-inline-size: 100%;
  padding: var(--spacing-24) var(--spacing-64);
  justify-content: center;
  align-items: center;
  gap: var(--spacing-8);
  border-radius: var(--border-radius-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-base-body);
  color: var(--color-primary);
  font-size: var(--font-size-m);
  font-weight: 400;
  line-height: normal;
  transition: background-color .3s, border-color .3s;
  display: inline-flex;
}

.wp-block-button.is-style-button-download .wp-block-button__link:after {
  content: "";
  aspect-ratio: 1;
  background: url("../../assets/images/common/icon-download.svg") center / contain no-repeat;
  inline-size: 24px;
}

@media (any-hover: hover) {
  .wp-block-button.is-style-button-download .wp-block-button__link:hover {
    background: var(--color-base-primary);
    border-color: var(--color-primary);
  }
}

:where(.wp-block-post-content) p {
  line-height: 2;
}

#ez-toc-container {
  border-radius: var(--radius-0, 0);
}

#ez-toc-container ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#ez-toc-container li {
  border-bottom: 1px dashed var(--color-neutral-medium);
}

#ez-toc-container a {
  padding: var(--spacing-24) var(--spacing-16);
  justify-content: space-between;
  align-items: center;
  gap: var(--spacing-24);
  background: var(--color-base-body);
  font-size: var(--font-size-s);
  line-height: normal;
  text-decoration: none;
  transition: background-color .3s, color .3s;
  display: flex;
}

#ez-toc-container a:after {
  content: "";
  aspect-ratio: 1;
  background: url("../../assets/images/common/icon-primary-arrow.svg") center / contain no-repeat;
  flex-shrink: 0;
  inline-size: 16px;
}

#ez-toc-container a:hover {
  background: var(--color-base-primary);
  color: var(--color-primary);
}

.wp-block-embed.wp-embed-aspect-16-9 iframe {
  aspect-ratio: 16 / 9;
  width: 100%;
  height: auto;
}

.wp-block-file .wp-block-file__button {
  inline-size: 320px;
  max-inline-size: 100%;
  padding: var(--spacing-24) var(--spacing-64);
  justify-content: center;
  align-items: center;
  gap: var(--spacing-8);
  border-radius: var(--border-radius-8);
  border: 1px solid var(--color-neutral-medium);
  background: var(--color-base-body);
  color: var(--color-primary);
  font-size: var(--font-size-m);
  font-weight: 400;
  line-height: normal;
  transition: background-color .3s, border-color .3s;
  display: inline-flex;
}

.wp-block-file .wp-block-file__button:after {
  content: "";
  aspect-ratio: 1;
  background: url("../../assets/images/common/icon-download.svg") center / contain no-repeat;
  inline-size: 24px;
}

@media (any-hover: hover) {
  .wp-block-file .wp-block-file__button:hover {
    background: var(--color-base-primary);
    border-color: var(--color-primary);
  }
}

.wp-element-caption {
  margin-block: var(--spacing-16) 0;
  font-size: var(--font-size-s);
  line-height: 1.42;
}

.wp-block-flexible-table-block-table figcaption {
  margin-block: var(--spacing-16) 0;
  font-size: var(--font-size-s);
  line-height: 1.42;
}

.wp-block-table.is-style-table-recruit table {
  border-collapse: collapse;
  table-layout: fixed;
  inline-size: 100%;
}

.wp-block-table.is-style-table-recruit table small {
  color: #646464;
  font-size: .75em;
}

.wp-block-table.is-style-table-recruit th, .wp-block-table.is-style-table-recruit td {
  padding: var(--spacing-24) var(--spacing-16);
  border: none;
  border-block-start: 1px solid var(--color-neutral-medium);
  border-block-end: 1px solid var(--color-neutral-medium);
}

.wp-block-table.is-style-table-recruit th {
  text-align: left;
  font-weight: 700;
  line-height: 1.75;
}

.wp-block-table.is-style-table-recruit td {
  line-height: 1.75;
}

.wp-block-table.is-style-table-recruit th:first-child, .wp-block-table.is-style-table-recruit td:first-child {
  inline-size: clamp(100px, calc(100px + var(--fluid-slope) * 60), 160px);
  border-block-start: 1px solid var(--color-primary);
  border-block-end: 1px solid var(--color-primary);
}

.l-recruit-form-box {
  padding-block: clamp(32px, calc(32px + var(--fluid-slope) * 32), 64px);
  padding-inline: clamp(20px, calc(20px + var(--fluid-slope) * 44), 64px);
  background: #f6f6f6;
  margin-block-start: var(--spacing-48);
}

.wp-block-group.is-style-group-speech-bubble-bottom {
  padding: var(--wp--preset--spacing--48, 48px);
  background: var(--wp--style--color--base-primary, #e3f3e5);
  position: relative;
}

.wp-block-group.is-style-group-speech-bubble-bottom:after {
  content: "";
  background: inherit;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  block-size: 24px;
  inline-size: 56px;
  margin-inline: auto;
  display: block;
  position: absolute;
  inset-block-start: calc(100% - 1px);
  inset-inline: 0;
}
