@charset "UTF-8";
/*! kiso.css v1.2.4 | MIT License | https://github.com/tak-dcxi/kiso.css */
/* ======================================================
//  MARK: Universal
// ====================================================== */
*,
::before,
::after {
  /*
  * Includes `padding` and `border` in the element's specified dimensions.
  * It is highly recommended to set `box-sizing: border-box;` by default, as it makes styling much easier, especially when specifying `width: 100%;`.
  */
  box-sizing: border-box;
}

/* ======================================================
//  MARK: Document and Body Elements
// ====================================================== */
:where(:root) {
  /* In Safari, if `font-family` is not specified, a serif font is applied by default, so `sans-serif` is set as the default here. */
  font-family: sans-serif;
  /*
  * For accessibility, it is recommended to set the `line-height` to at least 1.5 times the text size within paragraphs.
  * @see https://waic.jp/translations/WCAG21/#visual-presentation
  */
  line-height: 1.5;
  /* Remove space when punctuation marks are adjacent, and also remove leading spaces in a line. */
  text-spacing-trim: trim-start;
  /* Improves readability by inserting a small space between Japanese and alphanumeric characters. */
  text-autospace: normal;
  /* Prevents misreading by applying strict line-breaking rules. */
  line-break: strict;
  /* Wraps English words mid-word. Specifying `anywhere` also prevents content from overflowing in layouts like `flex` or `grid`. */
  overflow-wrap: anywhere;
  /*
  * Mobile browsers have an algorithm that automatically adjusts font sizes to prevent text from becoming too small.
  * This controls the auto-adjustment feature to prevent unwanted resizing.
  */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  /*
  * Prevents layout shift caused by the appearance or disappearance of the scrollbar.
  * Starting with Chrome 145, specifying `scrollbar-gutter: stable` will cause vw to be calculated without considering the scrollbar, which will also prevent horizontal scrolling.
  */
  scrollbar-gutter: stable;
  /* Suppresses the tap highlight on iOS. */
  -webkit-tap-highlight-color: transparent;
}

:where(body) {
  /*
  * When creating a sticky footer, a minimum height is often required.
  * Setting the `min-block-size` to the dynamic viewport height ensures enough space for the footer.
  */
  min-block-size: 100dvb;
  /* The `margin` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  margin: unset;
}

/* ======================================================
// MARK: Sections
// ------------------------------------------------------ */
:where(:is(h1, h2, h3, h4, h5, h6):lang(en)) {
  /* Prevents the last line of text from ending with a single word, which can look awkward (known as an orphan). */
  text-wrap: pretty;
}

:where(h1) {
  /*
  * Adjusts user agent (UA) styles for `h1` elements within sectioning content.
  * This addresses DevTools warnings that appear when `h1` elements nested within sectioning content lack `font-size` and `margin` properties.
  * @see https://html.spec.whatwg.org/#sections-and-headings
  */
  margin-block: 0.67em;
  font-size: 2em;
}

:where(h2, h3, h4, h5, h6) {
  /* The `margin-block` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;
}

:where(search) {
  /*
  * The `<search>` element is supported from Safari 17.
  * This prevents it from being displayed as an inline element in unsupported environments.
  */
  display: block flow;
}

/* ======================================================
//  MARK: Grouping content
// ====================================================== */
:where(p, blockquote, figure, pre, address, ul, ol, dl, menu) {
  /* The `margin-block` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;
}

:where(blockquote, figure) {
  /* The `margin-inline` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-inline: unset;
}

:where(p:lang(en)) {
  /*
  * In English, a single word on the last line is called a "widow" or "orphan" and is considered something to avoid as it makes the text harder to read.
  * Therefore, when lang="en", this prevents the last line from ending with a single word.
  */
  text-wrap: pretty;
}

:where(address:lang(ja)) {
  /* Italic style is not common in Japanese, so the `font-style` is reset. */
  font-style: unset;
}

:where(ul, ol, menu) {
  /* The `padding-inline-start` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  padding-inline-start: unset;
  /*
  * In Safari, using `list-style: none` prevents screen readers from announcing lists.
  * `list-style-type: ""` is used to hide markers without affecting accessibility.
  * @see https://matuzo.at/blog/2023/removing-list-styles-without-affecting-semantics
  */
  list-style-type: "";
}

:where(dt) {
  /* It is common to display `<dt>` elements in bold, so `font-weight: bolder;` is set by default. */
  font-weight: bolder;
}

:where(dd) {
  /* The `margin-inline-start` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-inline-start: unset;
}

:where(pre) {
  /*
  * Since `text-spacing-trim` can affect spacing in `<pre>` elements even with its initial value, the final rendering may depend on the user's font settings.
  * To ensure consistent alignment, `space-all` is explicitly specified and inheritance is prevented.
  */
  text-spacing-trim: space-all;
  /* Set to `no-autospace` as it can cause misalignment with monospaced fonts. */
  text-autospace: no-autospace;
}

@media print {
  :where(pre) {
    /* Prevent text wrapping in print media. */
    text-wrap-mode: unset;
  }
}
/* ======================================================
//  MARK: Text-level semantics
// ====================================================== */
:where(em:lang(ja)) {
  /* In Japanese, emphasis is commonly represented by bold text, so `font-weight: bolder;` is set by default. */
  font-weight: bolder;
}

:where(:is(i, cite, em, dfn):lang(ja)) {
  /* Italic style is not common in Japanese, so the `font-style` is reset. */
  font-style: unset;
}

:where(u, s, del, ins) {
  /* Set the underline inset to `auto` and separate only the horizontal lines when underlines are consecutive. */
  text-decoration-inset: auto;
}

:where(code, kbd, samp) {
  /*
  * Set a monospace font family referencing Tailwind.
  * @see https://tailwindcss.com/docs/font-family
  */
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* Font feature settings can have adverse effects on monospaced fonts, so their values are explicitly set to `initial` to prevent inheritance. */
  font-feature-settings: initial;
  font-variation-settings: initial;
  /* Resets the `font-size` specified in the UA stylesheet to allow inheritance. */
  font-size: unset;
  /*
  * Disables font ligatures for programming fonts (like Fira Code)
  * to prevent character combinations like `=>` from being rendered as a single symbol (e.g., `⇒`).
  */
  font-variant-ligatures: none;
}

:where(abbr[title]) {
  /*
  * The `<abbr>` element with the `title` attribute isn't helpful regarding accessibility because support is inconsistent, and it's only accessible to some users.
  * This rule shows a dotted underline on abbreviations in all browsers (there's a bug in Safari) and changes the cursor.
  * @see https://adrianroselli.com/2024/01/using-abbr-element-with-title-attribute.html
  */
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-inset: auto;
  cursor: help;
}

:where(time) {
  /* Set to `no-autospace` because date notations in typography do not include spaces. */
  text-autospace: no-autospace;
}

@media (forced-colors: active) {
  :where(mark) {
    /*
    * In forced-colors mode, the color of the mark element may not change, which can be problematic. Use system colors in forced-colors mode.
    * @see https://adrianroselli.com/2017/12/tweaking-text-level-styles.html#MarkWHCM
    */
    background-color: Highlight;
    color: HighlightText;
  }
}
@media print {
  :where(mark) {
    /*
    * Not all printers support color, and users might print in grayscale.
    * It's worth adding a non-disruptive style that scales with the text, as an alternative to relying only on background color.
    * @see https://adrianroselli.com/2017/12/tweaking-text-level-styles.html#MarkPrint
    */
    border-width: 1px;
    border-style: dotted;
  }
}
/* ======================================================
//  MARK: Links
// ====================================================== */
:where(a) {
  /*
  * The default `color` from the UA stylesheet is rarely used as is, so it's reset to allow inheritance.
  * In Firefox on iOS, the user agent stylesheet’s text color is applied even when the text is not a link.
  * @see https://github.com/darkreader/darkreader/issues/9836
  */
  color: unset;
}

:where(a:any-link) {
  /*
  * While link underlines can be useful, they are often obstructive.
  * They are disabled by default.
  * If needed, restore them using `text-decoration-line: revert;`.
  */
  text-decoration-line: unset;
  /* Set the underline thickness to the font's default thickness. */
  text-decoration-thickness: from-font;
  /* Set the underline inset to `auto` and separate only the horizontal lines when underlines are consecutive. */
  text-decoration-inset: auto;
}

/* ======================================================
//  MARK: Embedded content
// ====================================================== */
:where(img, svg, picture, video, audio, canvas, model, iframe, embed, object) {
  /* Prevents overflow by setting the maximum width to `100%`. */
  max-inline-size: 100%;
  /* Prevents extra space from appearing at the bottom of the element. */
  vertical-align: bottom;
}

:where(img, svg, picture, video, canvas, model, iframe, embed, object) {
  /*
  * Automatically adjust block size based on content.
  * Exclude the <audio> element as it disappears when block-size is auto.
  * @see https://github.com/tak-dcxi/kiso.css/issues/5
  */
  block-size: auto;
}

:where(iframe) {
  /* The `border` specified in the UA stylesheet is often unnecessary, so it is reset. */
  border: unset;
}

/* ======================================================
//  MARK: Tabular data
// ====================================================== */
:where(table) {
  /* Collapse borders for a more refined table design. */
  border-collapse: collapse;
}

:where(caption, th) {
  /* The `text-align` specified in the UA stylesheet is often unnecessary, so it is reset. */
  text-align: unset;
}

:where(caption:lang(en)) {
  /* Prevents the last line of text from ending with a single word, which can look awkward (known as an orphan). */
  text-wrap: pretty;
}

/* ======================================================
//  MARK: Forms
// ====================================================== */
:where(button, input, select, textarea),
::file-selector-button {
  /*
  * These elements are often styled with a border, so a `1px` border is applied by default for consistency.
  * This ensures readability even for unstyled elements.
  * When resetting, it's recommended to use `border-color: transparent` instead of `border: none` to account for forced color modes.
  */
  border-width: 1px;
  border-style: solid;
  /* These styles specified in the UA stylesheet are often unnecessary, so they are reset to allow for inheritance. */
  border-color: unset;
  border-radius: unset;
  color: unset;
  font: unset;
  letter-spacing: unset;
  text-align: unset;
}

:where(input:is([type=radio i], [type=checkbox i])) {
  /* The `margin` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  margin: unset;
}

:where(input[type=file i]) {
  /* The `border` is often unnecessary, so it is reset here. */
  border: unset;
}

:where(input[type=search i]) {
  /* Remove the rounded corners of search inputs on macOS and normalize the background color. */
  -webkit-appearance: textfield;
}

@supports (-webkit-touch-callout: none) {
  :where(input[type=search i]) {
    /* normalize the background color on iOS. */
    background-color: Canvas;
  }
}
:where(input:is([type=tel i],
[type=url i],
[type=email i],
[type=number i]):not(:placeholder-shown)) {
  /*
  * Certain input types need to maintain left alignment even in right-to-left (RTL) languages.
  * However, this only applies when the value is not empty, as the placeholder should be right-aligned.
  * @see https://rtlstyling.com/posts/rtl-styling#form-inputs
  */
  direction: ltr;
}

:where(textarea) {
  /* The `margin-block` specified in Firefox's UA stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;
  /* Allows vertical resizing for `<textarea>` elements. */
  resize: block;
}

:where(input:not([type=button i], [type=submit i], [type=reset i]),
textarea,
[contenteditable]) {
  /* Set to `no-autospace` because `text-autospace` can insert spaces during input, potentially causing erratic behavior. */
  text-autospace: no-autospace;
}

:where(button,
input:is([type=button i], [type=submit i], [type=reset i])),
::file-selector-button {
  /* The `background-color` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  background-color: unset;
}

:where(button,
input:is([type=button i], [type=submit i], [type=reset i]),
[role=tab i],
[role=button i],
[role=option i]),
::file-selector-button {
  /*
  * On iOS, double-tapping a button can cause zooming, which harms usability.
  * `touch-action: manipulation` is specified to disable zooming on double-tap.
  * Third-party plugins such as Swiper sometimes use div elements with these roles as buttons, since double-tapping a div can still trigger zooming, it's advisable to specify this property.
  */
  touch-action: manipulation;
}

:where(button:enabled,
label[for],
select:enabled,
input:is([type=button i],
[type=submit i],
[type=reset i],
[type=radio i],
[type=checkbox i]):enabled,
[role=tab i],
[role=button i],
[role=option i]),
:where(:enabled)::file-selector-button {
  /* Indicate clickable elements with a pointer cursor. */
  cursor: pointer;
}

:where(fieldset) {
  /*
  * Prevent fieldset from causing overflow.
  * Reset the default `min-inline-size: min-content` to prevent children from stretching fieldset.
  * @see https://github.com/twbs/bootstrap/issues/12359
  */
  min-inline-size: 0;
  /* The following default styles are often unnecessary, so they are reset. */
  margin-inline: unset;
  padding: unset;
  border: unset;
}

:where(legend) {
  /* The default `padding-inline` is often unnecessary, so it is reset. */
  padding-inline: unset;
}

:where(progress) {
  /* Resets the vertical alignment of the `<progress>` element to its initial value. */
  vertical-align: unset;
}

::placeholder {
  /* Standardize the opacity of placeholder text (it may be set lower by default in Firefox). */
  opacity: unset;
}

/* ======================================================
//  MARK: Interactive elements
// ====================================================== */
:where(summary) {
  /* The default triangle marker is often unnecessary, so it is disabled. */
  list-style-type: "";
  /* Changing the cursor to a pointer clarifies the clickability of the element. */
  cursor: pointer;
}

:where(summary)::-webkit-details-marker {
  /* In Safari versions earlier than 18.4 (released in April 2025), a triangle icon is displayed using the -webkit-details-marker CSS pseudo-element, so it should be removed. */
  display: none;
}

:where(dialog, [popover]) {
  /*
  * When these fixed-position elements are scrolled, preventing scroll chaining on the underlying page and bounce effects on mobile improves usability.
  * Disabling block-direction scroll chaining is recommended.
  */
  overscroll-behavior-block: contain;
  /* The following default styles are often unnecessary, so they are reset. */
  padding: unset;
  border: unset;
}

:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  /*
  * These elements can be easily displayed by explicitly setting their `display` property.
  * To prevent them from appearing when not in an open state, they are forcibly hidden.
  */
  display: none !important;
}

:where(dialog) {
  /*
  * The max width and height of a `<dialog>` element are typically determined by the design.
  * These UA stylesheet properties are reset as they can be obstructive, especially when trying to make the dialog full-screen.
  */
  max-inline-size: unset;
  max-block-size: unset;
}

:where(dialog)::backdrop {
  /* Normalize the background color of the `::backdrop` element. */
  background-color: oklch(0% 0 0deg/30%);
}

:where([popover]) {
  /*
  * While the UA stylesheet's `margin` for `<dialog>` elements is useful for centering with `inset: 0`,
  * but `margin` for `popover` elements is often obstructive as they frequently use Anchor Positioning.
  */
  margin: unset;
}

/* ======================================================
//  MARK: Focus Styles
// ====================================================== */
:where(:focus-visible) {
  /* Add space between the content and the focus outline. */
  outline-offset: 3px;
}

[tabindex="-1"]:focus {
  /* Prevent programmatically focused elements from displaying an outline unless they are naturally focusable. */
  outline: none !important;
}

/* ======================================================
//  MARK: Misc
// ====================================================== */
:where(:disabled, [aria-disabled=true i]) {
  /* Display the default cursor on disabled elements to reflect their non-interactive state. */
  cursor: default;
}

[hidden]:not([hidden=until-found i]) {
  /* Ensure that elements intended to be hidden are not displayed, improving clarity and layout control. */
  display: none !important;
}

:root {
  --breakpoint: 768px;
  --breakpoint-lg: 1040px;
  --header-height: 64px;
  --container-width: 100%;
  --container-width-lg: 100%;
  --font-sansserif: 'Zen Kaku Gothic New', sans-serif;
  --color-white: #fff;
  --color-black: #000;
  --color-gray1: #333;
  --color-gray2: #707070;
  --color-gray3: #FCFCFC;
  --color-gray4: #CCC;
  --color-gray5: #C1C1C1;
  --color-gray6: #D8D8D8;
  --color-blue: #0E67DE;
  --color-blue-dark1: #1C67DE;
  --color-blue-dark2: #3387F7;
  --color-blue-dark3: #2D4EA0;
  --color-blue-light1: #8DB0DE;
  --color-blue-light2: #CFE0F5;
  --color-blue-light3: #CAD8EA;
  --color-blue-light4: #DFE6EF;
  --color-blue-light5: #E2F1F7;
  --color-blue-light6: #EFF4FD;
  --color-blue-light7: #E9EBF2;
  --color-blue-light8: #F0F8FF;
  --color-blue-light9: #F4F9FF;
  --color-blue-light10: #F5F9FF;
  --color-orange: #FD831F;
  --color-yellow: #EDFD70;
  --color-red: #FF4040;
  --color-text: var(--color-gray1);
  --color-link: var(--color-blue);
  --color-corporate: var(--color-blue);
  --color-primary: var(--color-blue);
  --color-secondary: var(--color-orange);
  --color-marker: var(--color-yellow);
  --color-error: var(--color-red);
  --color-error-light: color-mix(in srgb, var(--color-red) 10%, transparent);
  --color-success: #0da77c;
  --color-success-light: #dff6ee;
  --border-radius-xs: 2px;
  --border-radius-sm: 4px;
  --border-radius-md: 5px;
  --border-radius-lg: 6px;
  --border-radius-xlg: 8px;
  --border-radius-pill: 100px;
  --border-radius-full: 50%;
  --box-shadow1: 0 3px 6px rgba(0, 0, 0, 0.16);
  --gradation1: linear-gradient(115deg, #eff4fa 0%, #c4e6ff 100%);
  --easing-cubic: cubic-bezier(0, 0, 0, 1);
}

@media (width >= 768px) {
  :root {
    --container-width: 576px;
    --container-width-lg: 576px;
  }
}
@media (width >= 1040px) {
  :root {
    --header-height: 90px;
    --container-width: 1000px;
    --container-width-lg: 1200px;
    --gradation1: linear-gradient(-29.301deg, #eff4fa 0%, #c4e6ff 100%);
  }
}
html {
  font-size: 100%;
  scroll-padding-top: var(--header-height);
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}
html.is-gnav-open, html.is-modal-open {
  overflow: hidden;
  overscroll-behavior: none;
}

body {
  font-family: var(--font-sansserif);
  font-optical-sizing: auto;
  font-style: normal;
  color: var(--color-text);
  line-height: 1.875;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body:has(dialog[open]) {
  overflow: hidden;
}

.main {
  max-width: calc(var(--container-width) + 20px);
  margin-inline: auto;
  padding-inline: 10px;
}
@media (width >= 375px) {
  .main {
    max-width: calc(var(--container-width) + 40px);
    padding-inline: 20px;
  }
}
.home .main {
  max-width: 100%;
  padding-block-start: calc(var(--header-height) + 32px);
  overflow-x: clip;
}
@media (width >= 1040px) {
  .home .main {
    padding-block-start: calc(var(--header-height) + 60px);
  }
}
.main-footer {
  display: flex;
  justify-content: center;
  padding-block-start: 48px;
}
@media (width >= 1040px) {
  .main-footer {
    padding-block-start: 64px;
  }
}
.main-footer[aria-hidden=true] {
  display: none;
}

a {
  color: inherit;
  text-decoration: none;
}

.header {
  width: 100%;
  background-color: var(--color-white);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
}

.header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-left: 10px;
  min-height: var(--header-height);
}
@media (width >= 375px) {
  .header-container {
    padding-left: 20px;
  }
}

.header-block {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 24px;
}

.header-logo {
  flex: 0 0 auto;
  display: block;
  width: 176px;
  height: 29px;
  margin: 0;
  padding: 0;
  translate: 0 -2px;
}
@media (width >= 1040px) {
  .header-logo {
    width: 200px;
    height: 33px;
  }
}
.header-logo--link {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s var(--easing-cubic);
}
.header-logo--link:focus-visible {
  opacity: 0.7;
}
@media (any-hover: none) {
  .header-logo--link:active {
    opacity: 0.7;
  }
}
@media (any-hover: hover) {
  .header-logo--link:hover {
    opacity: 0.7;
  }
}

.header-navtrigger {
  flex: 0 0 auto;
  display: block;
  width: var(--header-height);
  height: var(--header-height);
  margin: 0;
  padding: 0;
  border: 1px solid var(--color-primary);
  background: var(--color-primary);
  border-end-start-radius: var(--border-radius-md);
  position: relative;
  cursor: pointer;
  transition: background-color 0.3s var(--easing-cubic);
}
.header-navtrigger:focus-visible {
  background: var(--color-white);
}
.header-navtrigger:focus-visible .line, .header-navtrigger:focus-visible::after {
  background-color: var(--color-primary);
}
@media (any-hover: none) {
  .header-navtrigger:active {
    background: var(--color-white);
  }
  .header-navtrigger:active .line, .header-navtrigger:active::after {
    background-color: var(--color-primary);
  }
}
@media (any-hover: hover) {
  .header-navtrigger:hover {
    background: var(--color-white);
  }
  .header-navtrigger:hover .line, .header-navtrigger:hover::after {
    background-color: var(--color-primary);
  }
}
.header-navtrigger .line, .header-navtrigger::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  background-color: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  transition: translate 0.3s 0.3s var(--easing-cubic), rotate 0.3s var(--easing-cubic), background-color 0.3s var(--easing-cubic);
}
.header-navtrigger::after {
  translate: -50% calc(-50% + 8px);
}
.header-navtrigger .line {
  translate: -50% calc(-50% - 8px);
}

.modal.gnav-modal {
  background: var(--color-primary);
}

.gnav {
  display: grid;
  grid-template-columns: 1fr;
  align-items: flex-start;
  gap: 32px;
  max-width: var(--container-width-lg);
  width: 100%;
  margin-inline: auto;
}
@media (width >= 1040px) {
  .gnav {
    margin-block-start: 12px;
    grid-template-areas: "service company" "service works" "service recruit" "discovery contact";
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(5, auto);
  }
  .gnav .gnav-service {
    grid-area: service;
  }
  .gnav .gnav-company {
    grid-area: company;
  }
  .gnav .gnav-works {
    grid-area: works;
  }
  .gnav .gnav-discovery {
    grid-area: discovery;
  }
  .gnav .gnav-recruit {
    grid-area: recruit;
  }
  .gnav .gnav-contact {
    grid-area: contact;
  }
}

.gnav-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (width >= 1040px) {
  .gnav-list {
    gap: 24px;
  }
}
.gnav-list--link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.1em;
  color: var(--color-white);
}
@media (width >= 1040px) {
  .gnav-list--link {
    font-size: 1.625rem;
  }
}
.gnav-list--link:focus-visible .arrow::before {
  translate: -50% -50%;
}
.gnav-list--link:focus-visible .arrow::after {
  translate: 100% -50%;
}
@media (any-hover: none) {
  .gnav-list--link:active .arrow::before {
    translate: -50% -50%;
  }
  .gnav-list--link:active .arrow::after {
    translate: 100% -50%;
  }
}
@media (any-hover: hover) {
  .gnav-list--link:hover .arrow::before {
    translate: -50% -50%;
  }
  .gnav-list--link:hover .arrow::after {
    translate: 100% -50%;
  }
}
.gnav-list--link .arrow {
  flex: 0 0 auto;
  display: block;
  width: 24px;
  height: 24px;
  background-color: var(--color-white);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
}
.gnav-list--link .arrow::before, .gnav-list--link .arrow::after {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  background: url("../images/common/icon-arrow1.svg") no-repeat 60% 50%/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: translate 0.3s var(--easing-cubic);
}
.gnav-list--link .arrow::before {
  translate: -200% -50%;
}

.gnav-child {
  display: grid;
  grid-template-columns: 1fr;
  margin-block-start: 14px;
  gap: 24px;
}
@media (width >= 1040px) {
  .gnav-child {
    margin-block-start: 20px;
  }
}
.gnav-child--link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.03em;
  color: var(--color-white);
}
@media (width >= 1040px) {
  .gnav-child--link {
    font-size: 1.25rem;
  }
}
.gnav-child--link:focus-visible::after {
  translate: 5px 0;
}
@media (any-hover: none) {
  .gnav-child--link:active::after {
    translate: 5px 0;
  }
}
@media (any-hover: hover) {
  .gnav-child--link:hover::after {
    translate: 5px 0;
  }
}
.gnav-child--link::after {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center/contain;
  background-color: var(--color-white);
  transition: translate 0.3s var(--easing-cubic);
}

.gnav-grandchild {
  display: grid;
  grid-template-columns: 1fr;
  margin-block-start: 10px;
  gap: 8px;
}
@media (width >= 1040px) {
  .gnav-grandchild {
    gap: 10px;
  }
}
.gnav-grandchild--link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.03em;
  color: var(--color-white);
}
@media (width >= 1040px) {
  .gnav-grandchild--link {
    font-size: 1.125rem;
  }
}
.gnav-grandchild--link:focus-visible::after {
  translate: 5px 0;
}
@media (any-hover: none) {
  .gnav-grandchild--link:active::after {
    translate: 5px 0;
  }
}
@media (any-hover: hover) {
  .gnav-grandchild--link:hover::after {
    translate: 5px 0;
  }
}
.gnav-grandchild--link::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center/contain;
  background-color: var(--color-white);
  transition: translate 0.3s var(--easing-cubic);
}

.gnav-pc {
  display: none;
}
@media (width >= 1040px) {
  .gnav-pc {
    display: flex;
    justify-content: flex-end;
  }
}
.gnav-pc--sublist {
  display: none;
}
@media (width >= 1040px) {
  .gnav-pc--sublist {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 24px;
  }
}
.gnav-pc--sublink {
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: var(--color-text);
  transition: color 0.3s var(--easing-cubic);
}
.gnav-pc--sublink .label {
  position: relative;
}
.gnav-pc--sublink .label::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-gray2);
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.gnav-pc--sublink:focus-visible .label::after {
  scale: 1 1;
}
@media (any-hover: none) {
  .gnav-pc--sublink:active .label::after {
    scale: 1 1;
  }
}
@media (any-hover: hover) {
  .gnav-pc--sublink:hover .label::after {
    scale: 1 1;
  }
}

.footer {
  padding-inline: 10px;
  padding-block: 0 16px;
  overflow-x: clip;
}
@media (width >= 375px) {
  .footer {
    padding-inline: 20px;
    padding-block: 0 20px;
  }
}
@media (width >= 1040px) {
  .footer {
    padding-block: 0 30px;
  }
  .footer:has([data-pagetop=fixed]) .footer-container {
    padding-block-start: 92px;
  }
}
.footer:not(body.home .footer) {
  padding-block: 24px 16px;
}
@media (width >= 375px) {
  .footer:not(body.home .footer) {
    padding-block: 32px 20px;
  }
}
@media (width >= 1040px) {
  .footer:not(body.home .footer) {
    padding-block: 40px 30px;
  }
}

.footer-container {
  display: flex;
  flex-direction: column;
  max-width: var(--container-width-lg);
  margin-inline: auto;
  gap: 40px;
}
@media (width >= 1040px) {
  .footer-container {
    gap: 24px;
  }
}

.footer-ligolist {
  display: flex;
  justify-content: center;
  gap: clamp(0.75rem, -3.6136rem + 21.8182vw, 1.5rem);
}
@media (width >= 1040px) {
  .footer-ligolist {
    justify-content: flex-end;
  }
}

.footer-contents {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
@media (width >= 1040px) {
  .footer-contents {
    grid-template-areas: "logo-address contactus" "copyright contactus";
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 0 24px;
  }
}

.footer-address {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 335px;
  width: 100%;
  margin-inline: auto;
  margin-block-start: 32px;
  gap: 16px;
}
@media (width >= 1040px) {
  .footer-address {
    margin-block-start: 0;
    gap: 24px;
    grid-area: logo-address;
    align-items: flex-start;
  }
}
.footer-address--text {
  font-size: 1rem;
  font-weight: 400;
}

.footer-contactus {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 14px;
}
@media (width >= 1040px) {
  .footer-contactus {
    grid-area: contactus;
    justify-content: flex-end;
    flex-direction: row;
    align-items: flex-end;
  }
}

.footer-tel {
  display: flex;
  align-items: center;
  gap: 5px;
}
.footer-tel::before {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 58px;
  height: 58px;
  background: url("../images/common/icon-call.svg") no-repeat center/contain;
}
.footer-tel:has(.footer-tel--link:hover)::after {
  scale: 1 1;
}
.footer-tel--link {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
@media (width >= 1040px) {
  .footer-tel--link {
    pointer-events: none;
  }
}
.footer-tel--link .sublabel {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.03em;
}
.footer-tel--link .phonenumber {
  font-size: 2.3125rem;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}

.footer-contact--link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 8px 24px;
  max-width: 274px;
  min-height: 40px;
  color: var(--color-white);
  background-color: var(--color-primary);
  border-radius: var(--border-radius-pill);
  border: 1px solid var(--color-primary);
  transition: color 0.3s var(--easing-cubic), background-color 0.3s var(--easing-cubic);
}
.footer-contact--link .label {
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.03em;
}
.footer-contact--link:focus-visible {
  color: var(--color-primary);
  background-color: var(--color-white);
}
@media (any-hover: none) {
  .footer-contact--link:active {
    color: var(--color-primary);
    background-color: var(--color-white);
  }
}
@media (any-hover: hover) {
  .footer-contact--link:hover {
    color: var(--color-primary);
    background-color: var(--color-white);
  }
}
.footer-contact--link::before {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 24px;
  height: 20px;
  mask: url("../images/common/icon-mail.svg") no-repeat center/contain;
  background-color: currentColor;
  transition: background-color 0.3s var(--easing-cubic);
}

.footer-copyright {
  max-width: 335px;
  width: 100%;
  margin-inline: auto;
}
@media (width >= 1040px) {
  .footer-copyright {
    grid-area: copyright;
  }
}
.footer-copyright--text {
  font-size: 0.875rem;
  font-weight: 400;
}
@media (width >= 1040px) {
  .footer-copyright--text {
    font-size: 1rem;
  }
}

.footer-pagetop {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-block-end: 24px;
  transition: opacity 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .footer-pagetop {
    display: flex;
    justify-content: flex-end;
    margin-block-end: 0;
    opacity: 0;
    pointer-events: none;
  }
  .footer-pagetop[data-pagetop=none] {
    opacity: 0;
    pointer-events: none;
  }
  .footer-pagetop[data-pagetop=fixed] {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9;
    opacity: 1;
    pointer-events: auto;
  }
  .footer-pagetop[data-pagetop=static] {
    position: static;
    pointer-events: auto;
    opacity: 1;
  }
}
.footer-pagetop--link {
  display: grid;
  place-items: center;
  width: 92px;
  height: 92px;
  border-radius: var(--border-radius-full);
  background-color: var(--color-blue-light5);
  transition: background-color 0.3s var(--easing-cubic);
  position: relative;
}
.footer-pagetop--link img {
  translate: 0 -2px;
}
.footer-pagetop--link:focus-visible {
  background-color: var(--color-blue-light2);
}
@media (any-hover: none) {
  .footer-pagetop--link:active {
    background-color: var(--color-blue-light2);
  }
}
@media (any-hover: hover) {
  .footer-pagetop--link:hover {
    background-color: var(--color-blue-light2);
  }
}

.breadcrumbs {
  max-width: calc(var(--container-width) - 20px);
  margin-inline: auto;
  margin-block: 18px 28px;
  padding-block-end: 20px;
  overflow-x: auto;
}
@media (width >= 375px) {
  .breadcrumbs {
    max-width: calc(var(--container-width) - 40px);
  }
}
@media (width >= 768px) {
  .breadcrumbs {
    max-width: var(--container-width);
  }
}
.breadcrumbs--list {
  display: flex;
  align-items: center;
  gap: 10px;
}
.breadcrumbs--item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}
.breadcrumbs--link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--color-primary);
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
  transition: color 0.3s var(--easing-cubic), text-decoration-color 0.3s var(--easing-cubic);
}
.breadcrumbs--link::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center center/contain;
  background-color: var(--color-gray2);
  transition: translate 0.3s var(--easing-cubic);
}
.breadcrumbs--link:focus-visible {
  text-decoration: none;
}
@media (any-hover: none) {
  .breadcrumbs--link:active {
    text-decoration: none;
  }
}
@media (any-hover: hover) {
  .breadcrumbs--link:hover {
    text-decoration: none;
  }
}
.breadcrumbs--label {
  font-size: 0.875rem;
  color: currentColor;
  transition: color 0.3s var(--easing-cubic);
}

.btn-group {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
@media (width >= 1040px) {
  .btn-group {
    gap: 40px;
  }
}

.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  max-width: 300px;
  width: 100%;
  min-height: 60px;
  padding: 16px 24px;
  color: var(--color-primary);
  background-color: var(--color-white);
  border: 1px solid var(--color-primary);
  border-radius: var(--border-radius-pill);
  transition: color 0.3s var(--easing-cubic), background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .btn-primary {
    max-width: 380px;
    padding: 16px 30px;
  }
}
.btn-primary .label {
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  pointer-events: none;
}
@media (width >= 1040px) {
  .btn-primary .label {
    font-size: 1.125rem;
  }
}
.btn-primary::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center center/contain;
  background-color: currentColor;
  transition: translate 0.3s var(--easing-cubic);
}
.btn-primary:focus-visible {
  color: var(--color-white);
  background-color: var(--color-primary);
}
.btn-primary:focus-visible::after {
  translate: 5px 0;
}
@media (any-hover: none) {
  .btn-primary:active {
    color: var(--color-white);
    background-color: var(--color-primary);
  }
  .btn-primary:active::after {
    translate: 5px 0;
  }
}
@media (any-hover: hover) {
  .btn-primary:hover {
    color: var(--color-white);
    background-color: var(--color-primary);
  }
  .btn-primary:hover::after {
    translate: 5px 0;
  }
}
.btn-primary.is-blue {
  color: var(--color-white);
  background-color: var(--color-primary);
}
.btn-primary.is-blue:focus-visible {
  color: var(--color-primary);
  background-color: var(--color-white);
}
@media (any-hover: none) {
  .btn-primary.is-blue:active {
    color: var(--color-primary);
    background-color: var(--color-white);
  }
}
@media (any-hover: hover) {
  .btn-primary.is-blue:hover {
    color: var(--color-primary);
    background-color: var(--color-white);
  }
}
.btn-primary.is-blue[target=_blank]::after {
  background-color: var(--color-white);
}
.btn-primary[target=_blank]::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  mask: url("../images/common/icon-blank.svg") no-repeat center center/contain;
  background-color: var(--color-blue-dark2);
  transition: background-color 0.3s var(--easing-cubic);
  position: relative;
  z-index: 1;
}
.btn-primary[target=_blank]:focus-visible::after {
  background-color: currentColor;
  translate: 0 0;
}
@media (any-hover: none) {
  .btn-primary[target=_blank]:active::after {
    background-color: currentColor;
    translate: 0 0;
  }
}
@media (any-hover: hover) {
  .btn-primary[target=_blank]:hover::after {
    background-color: currentColor;
    translate: 0 0;
  }
}
.btn-primary.is-more::after, .btn-primary.is-anchor::after {
  rotate: 90deg;
}
.btn-primary.is-more:focus-visible::after, .btn-primary.is-anchor:focus-visible::after {
  translate: 0 0;
}
@media (any-hover: none) {
  .btn-primary.is-more:active::after, .btn-primary.is-anchor:active::after {
    translate: 0 0;
  }
}
@media (any-hover: hover) {
  .btn-primary.is-more:hover::after, .btn-primary.is-anchor:hover::after {
    translate: 0 0;
  }
}
.btn-primary.is-close::after {
  rotate: -90deg;
}

.btn-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2px 12px;
  border-radius: var(--border-radius-pill);
  background-color: var(--color-blue-light6);
  border: none;
  color: var(--color-text);
  font-size: 0.8125rem;
  font-weight: 500;
  transition: color 0.3s var(--easing-cubic), background-color 0.3s var(--easing-cubic);
}
.btn-tag:focus-visible {
  color: var(--color-white);
  background-color: var(--color-primary);
}
@media (any-hover: none) {
  .btn-tag:active {
    color: var(--color-white);
    background-color: var(--color-primary);
  }
}
@media (any-hover: hover) {
  .btn-tag:hover {
    color: var(--color-white);
    background-color: var(--color-primary);
  }
}
.btn-tag[aria-selected=true] {
  color: var(--color-white);
  background-color: var(--color-primary);
}

.embed {
  max-width: 980px;
  margin-inline: auto;
  margin-block-end: 0;
  border: none;
  background: none;
  padding: 0;
}
.embed-iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
  border: none;
}
.embed-video {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
}
.embed-map {
  width: 100%;
  height: 100%;
  aspect-ratio: 6/4;
}
@media (width >= 1040px) {
  .embed-map {
    aspect-ratio: 800/320;
  }
}
.embed-caption {
  margin-block-start: 10px;
}

[data-inview=fadein] {
  opacity: 0;
  transition: opacity 0.8s var(--easing-cubic);
}
[data-inview=fadein].is-inview {
  opacity: 1;
}

[data-inview=slideup] {
  opacity: 0;
  transform: translateY(5%);
  transition: opacity 0.6s var(--easing-slideup), transform 1.35s var(--easing-slideup);
}
[data-inview=slideup].is-inview {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  [data-inview=fadein],
  [data-inview=slideup] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.link-text {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  position: relative;
}
.link-text::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-primary);
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.link-text:focus-visible::before {
  scale: 1 1;
}
.link-text:focus-visible::after {
  translate: 5px 0;
}
@media (any-hover: none) {
  .link-text:active::before {
    scale: 1 1;
  }
  .link-text:active::after {
    translate: 5px 0;
  }
}
@media (any-hover: hover) {
  .link-text:hover::before {
    scale: 1 1;
  }
  .link-text:hover::after {
    translate: 5px 0;
  }
}
.link-text::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center/contain;
  background-color: var(--color-primary);
  transition: translate 0.3s var(--easing-cubic);
}
.link-text.is-anchor::after {
  rotate: 90deg;
}
.link-text.is-anchor:focus-visible::after {
  translate: 0 0;
}
@media (any-hover: none) {
  .link-text.is-anchor:active::after {
    translate: 0 0;
  }
}
@media (any-hover: hover) {
  .link-text.is-anchor:hover::after {
    translate: 0 0;
  }
}
.link-text[target=_blank]::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  mask: url("../images/common/icon-blank.svg") no-repeat center center/contain;
  background-color: var(--color-blue-dark2);
  transition: background-color 0.3s var(--easing-cubic);
  position: relative;
  z-index: 1;
}
.link-text[target=_blank]:focus-visible::after {
  background-color: var(--color-blue-dark2);
  translate: 0 0;
}
@media (any-hover: none) {
  .link-text[target=_blank]:active::after {
    background-color: var(--color-blue-dark2);
    translate: 0 0;
  }
}
@media (any-hover: hover) {
  .link-text[target=_blank]:hover::after {
    background-color: var(--color-blue-dark2);
    translate: 0 0;
  }
}
.link-text:has(.arrow)::after {
  display: none;
}
.link-text:has(.arrow) .arrow {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  background-color: var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
}
.link-text:has(.arrow) .arrow::before, .link-text:has(.arrow) .arrow::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center/contain;
  background-color: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: translate 0.3s var(--easing-cubic);
}
.link-text:has(.arrow) .arrow::before {
  translate: -200% -50%;
}
.link-text:has(.arrow):focus-visible .arrow::before {
  translate: -50% -50%;
}
.link-text:has(.arrow):focus-visible .arrow::after {
  translate: 100% -50%;
}
@media (any-hover: none) {
  .link-text:has(.arrow):active .arrow::before {
    translate: -50% -50%;
  }
  .link-text:has(.arrow):active .arrow::after {
    translate: 100% -50%;
  }
}
@media (any-hover: hover) {
  .link-text:has(.arrow):hover .arrow::before {
    translate: -50% -50%;
  }
  .link-text:has(.arrow):hover .arrow::after {
    translate: 100% -50%;
  }
}
.link-text:has(.arrow)[target=_blank] .arrow::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  mask: url("../images/common/icon-blank.svg") no-repeat center center/contain;
  background-color: var(--color-white);
  transition: background-color 0.3s var(--easing-cubic);
  position: relative;
  z-index: 1;
}
.link-text:has(.arrow)[target=_blank] .arrow::before {
  display: none;
}
.link-text:has(.arrow)[target=_blank]:focus-visible .arrow::after {
  translate: -50% -50%;
}
@media (any-hover: none) {
  .link-text:has(.arrow)[target=_blank]:active .arrow::after {
    translate: -50% -50%;
  }
}
@media (any-hover: hover) {
  .link-text:has(.arrow)[target=_blank]:hover .arrow::after {
    translate: -50% -50%;
  }
}
.link-text:has(.arrow).is-anchor .arrow::after {
  rotate: 90deg;
}
.link-text:has(.arrow).is-anchor .arrow::before {
  rotate: 90deg;
  translate: -50% -200%;
}
.link-text:has(.arrow).is-anchor:focus-visible .arrow::after {
  translate: -50% 100%;
}
.link-text:has(.arrow).is-anchor:focus-visible .arrow::before {
  translate: -50% -50%;
}
@media (any-hover: none) {
  .link-text:has(.arrow).is-anchor:active .arrow::after {
    translate: -50% 100%;
  }
  .link-text:has(.arrow).is-anchor:active .arrow::before {
    translate: -50% -50%;
  }
}
@media (any-hover: hover) {
  .link-text:has(.arrow).is-anchor:hover .arrow::after {
    translate: -50% 100%;
  }
  .link-text:has(.arrow).is-anchor:hover .arrow::before {
    translate: -50% -50%;
  }
}

.link-back {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transition: background-color 0.3s var(--easing-cubic), color 0.3s var(--easing-cubic);
}
.link-back .label {
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1;
}
.link-back .arrow {
  display: block;
  width: 26px;
  height: 26px;
  border: 1px solid var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
  transition: background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .link-back .arrow {
    width: 42px;
    height: 42px;
  }
}
.link-back .arrow::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat 60% 50%/contain;
  background-color: var(--color-blue);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .link-back .arrow::after {
    width: 12px;
    height: 12px;
  }
}
.link-back:focus-visible {
  color: var(--color-primary);
  background-color: transparent;
}
.link-back:focus-visible .arrow {
  background-color: var(--color-primary);
}
.link-back:focus-visible .arrow::after {
  background-color: var(--color-white);
}
@media (any-hover: none) {
  .link-back:active {
    color: var(--color-primary);
    background-color: transparent;
  }
  .link-back:active .arrow {
    background-color: var(--color-primary);
  }
  .link-back:active .arrow::after {
    background-color: var(--color-white);
  }
}
@media (any-hover: hover) {
  .link-back:hover {
    color: var(--color-primary);
    background-color: transparent;
  }
  .link-back:hover .arrow {
    background-color: var(--color-primary);
  }
  .link-back:hover .arrow::after {
    background-color: var(--color-white);
  }
}

.list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.list.is-number {
  counter-reset: num;
}
.list.is-box {
  counter-reset: num;
}
@media (width >= 1040px) {
  .list.is-box {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
}
.list.is-tag {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.list--item {
  position: relative;
}
.is-bar .list--item {
  padding-inline-start: 18px;
}
.is-bar .list--item::before {
  content: "";
  display: block;
  width: 10px;
  height: 1px;
  background-color: var(--color-primary);
  position: absolute;
  top: 0.5lh;
  left: 0;
  translate: 0 -50%;
}
.is-dot .list--item {
  padding-inline-start: 16px;
}
.is-dot .list--item::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}
.is-notice .list--item {
  padding-inline-start: 16px;
}
.is-notice .list--item::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}
.is-number .list--item {
  padding-inline-start: 24px;
}
.is-number .list--item::before {
  display: flex;
  justify-content: center;
  width: 20px;
  counter-increment: num;
  content: counter(num);
  color: var(--color-secondary);
  font-weight: 500;
  font-size: 1.375rem;
  line-height: 1;
  position: absolute;
  top: 0.1lh;
  left: 0;
}
.is-number .list--item .heading {
  font-size: 1rem;
  font-weight: 500;
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}
.is-number .list--item {
  /* 変更: 見出しブロック用。.label の入れ子が無いので .heading .label 相当を直接当てる */
}
.is-number .list--item .wp-block-heading {
  font-size: 1.125rem;
  font-weight: 500;
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}
.is-number .list--item .text,
.is-number .list--item p { /* 変更: 段落ブロックにも適用 */
  font-size: 1rem;
  line-height: 1.875;
}
.is-checkmark .list--item {
  padding-inline-start: 32px;
}
.is-checkmark .list--item::before {
  display: flex;
  justify-content: center;
  content: "";
  width: 22px;
  height: 22px;
  background: url("../images/common/icon-checkmark.svg") no-repeat center center/contain;
  position: absolute;
  top: 0.15lh;
  left: 0;
}
.is-box .list--item {
  padding: 16px 20px;
  border: 1px solid var(--color-gray6);
  border-radius: var(--border-radius-lg);
  background-color: var(--color-gray3);
}
@media (width >= 1040px) {
  .is-box .list--item {
    padding: 20px 24px;
  }
}
.is-box .list--item::before {
  counter-increment: num;
  content: counter(num);
  color: var(--color-secondary);
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1;
  margin-block-end: 6px;
}
@media (width >= 1040px) {
  .is-box .list--item::before {
    font-size: 1.75rem;
  }
}
.is-box .list--item .heading {
  font-size: 1.25rem;
  font-weight: 500;
  margin-block-end: 16px;
}
.is-box .list--item {
  /* 変更: 見出しブロック用。.label の入れ子が無いので .heading .label 相当を直接当てる */
}
.is-box .list--item .wp-block-heading {
  font-size: 1.125rem;
  font-weight: 500;
  margin-block-end: 16px;
}
.is-box .list--item .text,
.is-box .list--item p { /* 変更: 段落ブロックにも適用 */
  font-size: 1rem;
  line-height: 1.6666;
}
@media (width >= 1040px) {
  .is-box .list--item .heading {
    font-size: 1.5rem;
    margin-block-end: 24px;
  }
  .is-box .list--item {
    /* 変更: 見出しブロック用（サイズは .heading .label と同値のまま） */
  }
  .is-box .list--item .wp-block-heading {
    margin-block-end: 24px;
  }
  .is-box .list--item .text,
  .is-box .list--item p { /* 変更: 段落ブロックにも適用 */
    font-size: 1.125rem;
  }
}
.is-tag .list--item {
  display: inline-flex;
  flex: 0 0 auto;
}

@media (width >= 768px) {
  .local-nav {
    margin-inline: auto;
    width: 100%;
  }
}
.local-nav--wrap {
  margin-inline: calc((100svw - 100%) / 2 * -1);
  margin-block-end: 64px;
}
@media (width >= 768px) {
  .local-nav--wrap {
    margin-inline: auto;
    width: 100%;
  }
}
.local-nav--list {
  display: flex;
  justify-content: center;
}
.local-nav--item {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  flex: 0 1 100%;
  position: relative;
}
@media (width >= 768px) {
  .local-nav--item {
    flex: 0 1 220px;
  }
}
.local-nav--item:has(.local-nav--link[aria-current=page]:not(.is-nochild))::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background: var(--color-white);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  position: absolute;
  top: calc(100% + 11px);
  left: 50%;
  translate: -50% 0;
  z-index: 2;
}
.local-nav--item:has(.local-nav--link[aria-current=page]:not(.is-nochild))::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background: var(--color-primary);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  position: absolute;
  top: calc(100% + 9px);
  left: 50%;
  translate: -50% 0;
  z-index: 1;
}
@media (width >= 768px) {
  .local-nav--item.is-network img {
    width: 85px;
    height: auto;
  }
}
@media (width >= 768px) {
  .local-nav--item.is-disaster img {
    width: 80px;
    height: auto;
  }
}
@media (width >= 768px) {
  .local-nav--item.is-maintenance img {
    width: 85px;
    height: auto;
  }
}
.local-nav--link {
  flex: 0 1 auto;
  display: flex;
  justify-content: center;
  height: 100%;
  padding: 14px 10px;
  background-color: var(--color-white);
  border-radius: var(--border-radius-md);
  transition: background-color 0.3s var(--easing-cubic);
}
@media (width >= 768px) {
  .local-nav--link {
    padding: 20px 16px;
    min-height: 200px;
  }
}
@media (width >= 1040px) {
  .is-service .local-nav--link {
    min-width: 220px;
  }
}
.local-nav--link:focus-visible {
  background-color: var(--color-blue-light10);
}
@media (any-hover: none) {
  .local-nav--link:active {
    background-color: var(--color-blue-light10);
  }
}
@media (any-hover: hover) {
  .local-nav--link:hover {
    background-color: var(--color-blue-light10);
  }
}
.local-nav--link[aria-current=page] {
  background-color: var(--color-blue-light10);
}
.local-nav--image {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin: 0;
}
@media (width >= 768px) {
  .local-nav--image {
    justify-content: center;
  }
}
.local-nav--image img {
  flex: 0 0 auto;
}
.local-nav--label {
  display: flex;
  align-items: center;
  height: 100%;
  gap: 5px;
  position: relative;
  font-size: 3.4667vw;
  font-weight: 500;
  line-height: 1.25;
  text-align: center;
}
@media (width >= 360px) {
  .local-nav--label {
    font-size: 0.875rem;
  }
}
@media (width >= 768px) {
  .local-nav--label {
    height: auto;
    font-size: 1.5rem;
  }
}
.local-nav--label::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center/contain;
  rotate: 90deg;
  background-color: var(--color-primary);
  transition: translate 0.3s var(--easing-cubic);
}
.local-nav--childwrap {
  display: none;
  width: calc(100% - 20px);
  margin-inline: auto;
  margin-block-start: 26px;
  padding: 24px 16px 16px;
  background-color: var(--color-white);
  border: 1px solid var(--color-primary);
  border-radius: var(--border-radius-md);
}
@media (width >= 360px) {
  .local-nav--childwrap {
    width: calc(100% - 40px);
  }
}
@media (width >= 768px) {
  .local-nav--childwrap {
    width: 100%;
    padding: 24px 24px 16px;
  }
}
@media (width >= 1040px) {
  .local-nav--childwrap {
    padding-inline: 56px;
  }
}
.local-nav--childwrap[aria-selected=true] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
.local-nav--child {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
}
@media (width >= 768px) {
  .local-nav--child {
    gap: 20px 24px;
  }
}
@media (width >= 768px) {
  .local-nav--childitem {
    flex: 0 0 auto;
  }
}
.local-nav--childitem .link-text .label {
  font-size: 1rem;
}
.local-nav--childitem .link-text[aria-current=page]::before {
  scale: 1 1;
}
.local-nav--block {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
}
.local-nav--slogan {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}
.local-nav--category {
  color: var(--color-primary);
  font-size: 1.125rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.modal {
  display: grid;
  place-items: center safe;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  padding: 12px 20px 40px;
  border: none;
  position: fixed;
  inset: 0;
  margin: 0;
  overflow-y: auto;
  z-index: 100;
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(0);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s var(--easing-cubic), visibility 0.3s var(--easing-cubic), backdrop-filter 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .modal {
    padding: 20px 20px 40px;
  }
}
.modal::backdrop {
  background: transparent;
}
.modal[open] {
  opacity: 1;
  visibility: visible;
  backdrop-filter: blur(10px);
}
@starting-style {
  .modal[open] {
    opacity: 0;
    backdrop-filter: blur(0);
  }
}
.modal[open].is-opening {
  opacity: 0;
  backdrop-filter: blur(0);
}
.modal.is-closing {
  opacity: 0;
  visibility: hidden;
  backdrop-filter: blur(0);
}
.modal--container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px;
  max-width: 980px;
  width: 100%;
  margin-inline: auto;
  margin-block-end: 0;
  transform: translateY(8px) scale(0.98);
  opacity: 0;
  transition: transform 0.3s var(--easing-cubic), opacity 0.3s var(--easing-cubic);
  pointer-events: none;
}
.modal[open]:not(.is-closing):not(.is-opening) .modal--container {
  transform: translateY(-24px) scale(1);
  opacity: 1;
}
@starting-style {
  .modal[open]:not(.is-closing):not(.is-opening) .modal--container {
    transform: translateY(8px) scale(0.98);
    opacity: 0;
  }
}
.modal.is-closing .modal--container, .modal[open].is-opening .modal--container {
  transform: translateY(8px) scale(0.98);
  opacity: 0;
}
.modal--contents {
  width: 100%;
  height: auto;
  pointer-events: auto;
}
.modal--controls {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  max-width: var(--container-width-lg);
  margin-inline: auto;
  pointer-events: none;
  position: sticky;
  top: 0;
  left: 10px;
  z-index: 10;
}
@media (width >= 768px) {
  .modal--controls {
    width: 100%;
    top: 10px;
    left: 100%;
  }
}
.modal--close {
  width: 32px;
  height: 32px;
  position: relative;
  padding: 0;
  border: none;
  background: var(--color-primary);
  cursor: pointer;
  pointer-events: auto;
}
.modal--close::before, .modal--close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 32px;
  height: 2px;
  background-color: var(--color-white);
}
.modal--close::before {
  translate: -50% -50%;
  rotate: 45deg;
}
.modal--close::after {
  translate: -50% -50%;
  rotate: -45deg;
}
@media (prefers-reduced-motion: reduce) {
  .modal {
    transition: none;
  }
  .modal--container {
    transition: none;
    transform: none;
    opacity: 1;
  }
  .modal[open].is-opening, .modal.is-closing {
    opacity: 1;
    visibility: visible;
    backdrop-filter: blur(10px);
  }
}

.pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
@media (width >= 1040px) {
  .pager {
    gap: 32px;
  }
}

.pager-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
}
@media (width >= 1040px) {
  .pager-list {
    gap: 24px;
  }
}
.pager-list--item {
  flex: 0 0 auto;
}
.pager-list .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: clamp(1rem, 0.859rem + 0.6015vw, 1.25rem);
  font-weight: 500;
  line-height: 1;
  color: var(--color-text);
  border-radius: var(--border-radius-full);
  transition: color 0.3s var(--easing-cubic);
  position: relative;
}
@media (width >= 1040px) {
  .pager-list .page-numbers {
    width: 38px;
    height: 38px;
  }
}
.pager-list .page-numbers::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.pager-list .page-numbers:focus-visible {
  color: var(--color-primary);
}
.pager-list .page-numbers:focus-visible::after {
  scale: 1 1;
}
@media (any-hover: none) {
  .pager-list .page-numbers:active {
    color: var(--color-primary);
  }
  .pager-list .page-numbers:active::after {
    scale: 1 1;
  }
}
@media (any-hover: hover) {
  .pager-list .page-numbers:hover {
    color: var(--color-primary);
  }
  .pager-list .page-numbers:hover::after {
    scale: 1 1;
  }
}
.pager-list .page-numbers.current {
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
}
.pager-list .page-numbers.current::after {
  display: none;
}
.pager-list .page-numbers.current:focus-visible {
  color: var(--color-primary);
}
@media (any-hover: none) {
  .pager-list .page-numbers.current:active {
    color: var(--color-primary);
  }
}
@media (any-hover: hover) {
  .pager-list .page-numbers.current:hover {
    color: var(--color-primary);
  }
}
.pager-list .page-numbers.dots::after {
  display: none;
}
.pager-list .page-numbers.dots:focus-visible {
  color: var(--color-text);
}
@media (any-hover: none) {
  .pager-list .page-numbers.dots:active {
    color: var(--color-text);
  }
}
@media (any-hover: hover) {
  .pager-list .page-numbers.dots:hover {
    color: var(--color-text);
  }
}

.pager-arrow {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}
.pager-arrow--link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: color 0.3s var(--easing-cubic);
  position: relative;
}
@media (width >= 1040px) {
  .pager-arrow--link {
    gap: 10px;
  }
}
.pager-arrow--link .label {
  font-size: 0.9375rem;
  line-height: 1;
  font-weight: 500;
  pointer-events: none;
  translate: 0 -1px;
}
.pager-arrow--link::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.pager-arrow--link .arrow {
  flex: 0 0 auto;
  display: block;
  width: 18px;
  height: 18px;
  background-color: var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
}
@media (width >= 1040px) {
  .pager-arrow--link .arrow {
    width: 20px;
    height: 20px;
  }
}
.pager-arrow--link .arrow::before, .pager-arrow--link .arrow::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center/contain;
  background-color: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: translate 0.3s var(--easing-cubic);
}
.pager-arrow--link .arrow::before {
  translate: -200% -50%;
}
.is-prev .pager-arrow--link .arrow {
  scale: -1 1;
}
.pager-arrow--link:focus-visible {
  color: var(--color-primary);
}
.pager-arrow--link:focus-visible::after {
  scale: 1 1;
}
.pager-arrow--link:focus-visible .arrow::before {
  translate: -50% -50%;
}
.pager-arrow--link:focus-visible .arrow::after {
  translate: 100% -50%;
}
@media (any-hover: none) {
  .pager-arrow--link:active {
    color: var(--color-primary);
  }
  .pager-arrow--link:active::after {
    scale: 1 1;
  }
  .pager-arrow--link:active .arrow::before {
    translate: -50% -50%;
  }
  .pager-arrow--link:active .arrow::after {
    translate: 100% -50%;
  }
}
@media (any-hover: hover) {
  .pager-arrow--link:hover {
    color: var(--color-primary);
  }
  .pager-arrow--link:hover::after {
    scale: 1 1;
  }
  .pager-arrow--link:hover .arrow::before {
    translate: -50% -50%;
  }
  .pager-arrow--link:hover .arrow::after {
    translate: 100% -50%;
  }
}
.pager-arrow--link.is-disabled {
  color: var(--color-gray2);
}
.pager-arrow--link.is-disabled::after {
  display: none;
}
.pager-arrow--link.is-disabled .arrow {
  background-color: var(--color-gray2);
}
.pager-arrow--link.is-disabled .arrow::before, .pager-arrow--link.is-disabled .arrow::after {
  transition: none;
}

.table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
.table--row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  position: relative;
}
@media (width >= 768px) {
  .table--row {
    display: table-row;
  }
}
.table--row:not(:last-child) {
  border-bottom: 1px solid var(--color-gray4);
}
.table--row:not(:last-child)::after {
  content: "";
  display: block;
  width: 17%;
  height: 0;
  border-block-end: 1px solid var(--color-primary);
  position: absolute;
  bottom: 0;
  left: 0;
  translate: 0 100%;
}
.table--head {
  padding: 14px 10px 0;
  vertical-align: top;
}
@media (width >= 768px) {
  .table--head {
    width: 17%;
    padding: 24px 16px;
  }
}
@media (width >= 1040px) {
  .table--head {
    padding: 32px 20px;
  }
}
.table--cell {
  padding: 0 10px 14px;
}
@media (width >= 768px) {
  .table--cell {
    padding: 24px 16px;
  }
}
@media (width >= 1040px) {
  .table--cell {
    padding: 32px 20px;
  }
}

.page-title {
  padding-block-start: var(--header-height);
  padding-block-end: 40px;
  position: relative;
  container: page-title/inline-size;
}
.page-title::after {
  content: "";
  display: block;
  width: 100%;
  height: 100px;
  background-color: var(--color-blue-light7);
  position: absolute;
  bottom: 0;
  left: 0;
}
@media (width >= 768px) {
  .page-title::after {
    height: clamp(6.25rem, -21.9853rem + 58.8235vw, 16.25rem);
  }
}
.page-title--container {
  padding-inline: 10px;
}
@media (width >= 375px) {
  .page-title--container {
    padding-inline: 20px;
  }
}
.page-title--image {
  width: calc(100svw - 10px);
  margin-inline-start: calc(50% - 50svw);
  margin-block-end: 0;
  position: relative;
  z-index: 1;
}
@media (width >= 360px) {
  .page-title--image {
    width: calc(100svw - 20px);
  }
}
@media (width >= 1040px) {
  .page-title--image {
    width: calc(50% + 520px);
  }
}
.page-title--image img {
  width: 100%;
  max-height: 460px;
  object-fit: cover;
  object-position: center;
  border-end-end-radius: var(--border-radius-lg);
}
.page-title--heading {
  display: flex;
  justify-content: flex-end;
  max-width: calc(100svw - 10px);
  position: absolute;
  right: 0;
  margin: 0;
  bottom: 20px;
  z-index: 2;
}
@media (width >= 768px) {
  .page-title--heading {
    bottom: 80px;
  }
}
@media (width >= 1040px) {
  .page-title--heading {
    width: 100%;
    max-width: 1200px;
    right: 50%;
    translate: 50% 0;
  }
}
.page-title--heading .label {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 6.4cqw;
  font-weight: 500;
  line-height: 1.375;
  padding: 6px 8px;
  background-color: var(--color-white);
}
@media (width >= 375px) {
  .page-title--heading .label {
    font-size: 1.5rem;
  }
}
@media (width >= 768px) {
  .page-title--heading .label {
    font-size: clamp(1.5rem, -2.3824rem + 8.0882vw, 2.875rem);
    padding: clamp(0.375rem, -0.6838rem + 2.2059vw, 0.75rem) clamp(0.5rem, -0.9118rem + 2.9412vw, 1rem);
  }
}

.heading {
  margin: 0;
  position: relative;
}
.heading .label {
  font-size: 1.125rem;
  font-weight: 500;
}
.heading.is-double-line {
  padding-block-end: 16px;
}
.heading.is-double-line .label {
  display: inline-flex;
  align-items: center;
  font-size: 1.375rem;
}
@media (width >= 1040px) {
  .heading.is-double-line .label {
    font-size: 1.625rem;
  }
}
.heading.is-double-line::before {
  content: "";
  display: block;
  width: 100px;
  height: 2px;
  background-color: var(--color-primary);
  position: absolute;
  bottom: 0;
  left: 0;
}
.heading.is-double-line::after {
  content: "";
  display: block;
  width: calc(100% - 103px);
  height: 2px;
  background-color: var(--color-blue-light3);
  position: absolute;
  bottom: 0;
  left: 103px;
}
.heading.is-slogan .label {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.8636;
  letter-spacing: 0.08em;
}
@media (width >= 1040px) {
  .heading.is-slogan .label {
    font-size: 1.375rem;
  }
}
.heading.is-lead-bar {
  padding-inline-start: 40px;
  padding-block-end: 12px;
  border-block-end: 2px solid var(--color-blue-light3);
}
.heading.is-lead-bar .label {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
@media (width >= 1040px) {
  .heading.is-lead-bar .label {
    font-size: 1.375rem;
  }
}
.heading.is-lead-bar .label::before {
  content: "";
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--color-primary);
  position: absolute;
  top: 0.5lh;
  left: 0;
  translate: 0 -50%;
}
.heading.is-underline .label {
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 8px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}
.heading.is-short-bar {
  padding-block-end: 10px;
}
.heading.is-short-bar .label {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
@media (width >= 1040px) {
  .heading.is-short-bar .label {
    font-size: 1.25rem;
  }
}
.heading.is-short-bar::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: linear-gradient(-90deg, #8db0de 50%, #0e67de 50%, #0e67de 100%);
  position: absolute;
  bottom: 0;
  left: 0;
}
.heading.is-square-marker {
  padding-inline-start: 18px;
}
.heading.is-square-marker .label {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
.heading.is-square-marker .label::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background-color: var(--color-primary);
  position: absolute;
  top: 0.5lh;
  left: 0;
  translate: 0 -50%;
}
.heading.is-color-primary .label {
  color: var(--color-primary);
}
.heading.is-color-secondary .label {
  color: var(--color-secondary);
}

.description-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 17px;
  border: 1px solid var(--color-gray4);
  border-radius: var(--border-radius-sm);
}
@media (width >= 1040px) {
  .description-list {
    grid-template-columns: auto 1fr;
    gap: 18px;
  }
}
.description-list--wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
.description-list .term {
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--color-blue-dark3);
}
@media (width >= 1040px) {
  .description-list .term {
    display: flex;
    gap: 18px;
  }
  .description-list .term::after {
    flex: 0 0 auto;
    content: "";
    width: 28.2842712475px;
    height: 1px;
    rotate: -45deg;
    background-color: var(--color-gray2);
    translate: 0 16px;
  }
}
.description-list .details {
  font-size: 1rem;
  font-weight: 400;
}
@media (width >= 1040px) {
  .description-list .details {
    font-size: 1.125rem;
  }
}

.phone-number {
  display: inline-flex;
  flex-direction: column;
  gap: 10px;
}
.phone-number--heading {
  display: inline-flex;
  flex-direction: column;
  gap: 0;
}
@media (width >= 1040px) {
  .phone-number--heading {
    flex-direction: row;
    align-items: center;
    gap: 16px;
  }
}
.phone-number--heading .label {
  font-size: 1.25rem;
  font-weight: 500;
}
@media (width >= 1040px) {
  .phone-number--heading .label {
    font-size: 1.5rem;
  }
}
.phone-number--heading .business-hours {
  font-size: 1rem;
  font-weight: 400;
}
@media (width >= 1040px) {
  .phone-number--heading .business-hours {
    font-size: 1.375rem;
  }
}
.phone-number--number {
  display: flex;
  flex-direction: column;
  gap: 5px;
  container: phone-number-container/inline-size;
}
@media (width >= 1040px) {
  .phone-number--number {
    flex-direction: row;
    align-items: flex-end;
    gap: 20px;
  }
}
.phone-number--number .phonenumber {
  flex: 0 0 auto;
  font-size: 13.8cqw;
  font-weight: 500;
  color: var(--color-primary);
  line-height: 1;
}
@media (width >= 440px) {
  .phone-number--number .phonenumber {
    font-size: 3.75rem;
  }
}
.phone-number--number .faxnumber {
  font-size: 6.3731cqw;
  font-weight: 400;
}
@media (width >= 440px) {
  .phone-number--number .faxnumber {
    font-size: 1.375rem;
  }
}
.phone-number:has(.footer-tel--link:hover)::after {
  scale: 1 1;
}
.phone-number--link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.phone-number--link::before {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 58px;
  height: 58px;
  background: url("../images/common/icon-call.svg") no-repeat center/contain;
}
@media (width >= 1040px) {
  .phone-number--link {
    pointer-events: none;
  }
}

/* ブロックエディター用スタイル */
.wp-block-heading.is-style-double-line, .wp-block-heading.is-style-slogan, .wp-block-heading.is-style-lead-bar, .wp-block-heading.is-style-short-bar, .wp-block-heading.is-style-square-marker, .wp-block-heading.is-style-underline {
  /* 変更: アンダーラインを追加 */
  position: relative;
  font-size: 1.125rem;
  font-weight: 500;
}
.wp-block-heading.is-style-double-line {
  padding-block-end: 16px;
  font-size: 1.375rem;
}
@media (width >= 1040px) {
  .wp-block-heading.is-style-double-line {
    font-size: 1.625rem;
  }
}
.wp-block-heading.is-style-double-line::before {
  content: "";
  display: block;
  width: 100px;
  height: 2px;
  background-color: var(--color-primary);
  position: absolute;
  bottom: 0;
  left: 0;
}
.wp-block-heading.is-style-double-line::after {
  content: "";
  display: block;
  width: calc(100% - 103px);
  height: 2px;
  background-color: var(--color-blue-light3);
  position: absolute;
  bottom: 0;
  left: 103px;
}
.wp-block-heading.is-style-slogan {
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.8636;
  letter-spacing: 0.08em;
}
@media (width >= 1040px) {
  .wp-block-heading.is-style-slogan {
    font-size: 1.375rem;
  }
}
.wp-block-heading.is-style-lead-bar {
  padding-inline-start: 40px;
  padding-block-end: 12px;
  border-block-end: 2px solid var(--color-blue-light3);
}
@media (width >= 1040px) {
  .wp-block-heading.is-style-lead-bar {
    font-size: 1.375rem;
  }
}
.wp-block-heading.is-style-lead-bar::before {
  content: "";
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--color-primary);
  position: absolute;
  top: 0.5lh;
  left: 0;
  translate: 0 -50%;
}
.wp-block-heading.is-style-short-bar {
  padding-block-end: 10px;
}
@media (width >= 1040px) {
  .wp-block-heading.is-style-short-bar {
    font-size: 1.25rem;
  }
}
.wp-block-heading.is-style-short-bar::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: linear-gradient(-90deg, var(--color-blue-light1) 50%, var(--color-primary) 50%, var(--color-primary) 100%);
  position: absolute;
  bottom: 0;
  left: 0;
}
.wp-block-heading.is-style-square-marker {
  padding-inline-start: 18px;
}
.wp-block-heading.is-style-square-marker::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background-color: var(--color-primary);
  position: absolute;
  top: 0.5lh;
  left: 0;
  translate: 0 -50%;
}
.wp-block-heading {
  /* 変更: アンダーラインを追加 */
}
.wp-block-heading.is-style-underline {
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 8px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}

.wp-block-button.is-style-primary, .wp-block-button.is-style-primary-blue {
  width: 100%;
  max-width: 300px;
}
@media (width >= 1040px) {
  .wp-block-button.is-style-primary, .wp-block-button.is-style-primary-blue {
    max-width: 380px;
  }
}
.wp-block-button.is-style-primary .wp-block-button__link, .wp-block-button.is-style-primary-blue .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 60px;
  padding: 16px 24px;
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--color-primary);
  background-color: var(--color-white);
  border: 1px solid var(--color-primary);
  border-radius: var(--border-radius-pill);
  transition: color 0.3s var(--easing-cubic), background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .wp-block-button.is-style-primary .wp-block-button__link, .wp-block-button.is-style-primary-blue .wp-block-button__link {
    padding: 16px 30px;
    font-size: 1.125rem;
  }
}
.wp-block-button.is-style-primary .wp-block-button__link::after, .wp-block-button.is-style-primary-blue .wp-block-button__link::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center center/contain;
  background-color: currentColor;
  transition: translate 0.3s var(--easing-cubic);
}
.wp-block-button.is-style-primary .wp-block-button__link:focus-visible, .wp-block-button.is-style-primary-blue .wp-block-button__link:focus-visible {
  color: var(--color-white);
  background-color: var(--color-primary);
}
.wp-block-button.is-style-primary .wp-block-button__link:focus-visible::after, .wp-block-button.is-style-primary-blue .wp-block-button__link:focus-visible::after {
  translate: 5px 0;
}
@media (any-hover: none) {
  .wp-block-button.is-style-primary .wp-block-button__link:active, .wp-block-button.is-style-primary-blue .wp-block-button__link:active {
    color: var(--color-white);
    background-color: var(--color-primary);
  }
  .wp-block-button.is-style-primary .wp-block-button__link:active::after, .wp-block-button.is-style-primary-blue .wp-block-button__link:active::after {
    translate: 5px 0;
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-primary .wp-block-button__link:hover, .wp-block-button.is-style-primary-blue .wp-block-button__link:hover {
    color: var(--color-white);
    background-color: var(--color-primary);
  }
  .wp-block-button.is-style-primary .wp-block-button__link:hover::after, .wp-block-button.is-style-primary-blue .wp-block-button__link:hover::after {
    translate: 5px 0;
  }
}
.wp-block-button.is-style-primary .wp-block-button__link[target=_blank]::after, .wp-block-button.is-style-primary-blue .wp-block-button__link[target=_blank]::after {
  mask-image: url("../images/common/icon-blank.svg");
  background-color: var(--color-blue-dark2);
  transition: background-color 0.3s var(--easing-cubic);
}
.wp-block-button.is-style-primary .wp-block-button__link[target=_blank]:focus-visible::after, .wp-block-button.is-style-primary-blue .wp-block-button__link[target=_blank]:focus-visible::after {
  background-color: currentColor;
  translate: 0 0;
}
@media (any-hover: none) {
  .wp-block-button.is-style-primary .wp-block-button__link[target=_blank]:active::after, .wp-block-button.is-style-primary-blue .wp-block-button__link[target=_blank]:active::after {
    background-color: currentColor;
    translate: 0 0;
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-primary .wp-block-button__link[target=_blank]:hover::after, .wp-block-button.is-style-primary-blue .wp-block-button__link[target=_blank]:hover::after {
    background-color: currentColor;
    translate: 0 0;
  }
}
.wp-block-button.is-style-primary-blue .wp-block-button__link[target=_blank]::after {
  background-color: var(--color-white);
}
.wp-block-button.is-style-primary-blue .wp-block-button__link {
  color: var(--color-white);
  background-color: var(--color-primary);
}
.wp-block-button.is-style-primary-blue .wp-block-button__link:focus-visible {
  color: var(--color-primary);
  background-color: var(--color-white);
}
@media (any-hover: none) {
  .wp-block-button.is-style-primary-blue .wp-block-button__link:active {
    color: var(--color-primary);
    background-color: var(--color-white);
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-primary-blue .wp-block-button__link:hover {
    color: var(--color-primary);
    background-color: var(--color-white);
  }
}
.wp-block-button.is-style-tag .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2px 12px;
  color: var(--color-text);
  background-color: var(--color-blue-light6);
  border: none;
  border-radius: var(--border-radius-pill);
  font-size: 0.8125rem;
  font-weight: 500;
  transition: color 0.3s var(--easing-cubic), background-color 0.3s var(--easing-cubic);
}
.wp-block-button.is-style-tag .wp-block-button__link:focus-visible {
  color: var(--color-white);
  background-color: var(--color-primary);
}
@media (any-hover: none) {
  .wp-block-button.is-style-tag .wp-block-button__link:active {
    color: var(--color-white);
    background-color: var(--color-primary);
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-tag .wp-block-button__link:hover {
    color: var(--color-white);
    background-color: var(--color-primary);
  }
}
.wp-block-button.is-style-text, .wp-block-button.is-style-text-arrow {
  width: fit-content;
  max-width: 100%;
}
.wp-block-button.is-style-text .wp-block-button__link, .wp-block-button.is-style-text-arrow .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  position: relative;
  width: auto;
  min-height: 0;
  padding: 0;
  color: inherit;
  background: none;
  background-color: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  text-decoration: none;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.wp-block-button.is-style-text .wp-block-button__link::before, .wp-block-button.is-style-text-arrow .wp-block-button__link::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-primary);
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.wp-block-button.is-style-text .wp-block-button__link:focus-visible::before, .wp-block-button.is-style-text-arrow .wp-block-button__link:focus-visible::before {
  scale: 1 1;
}
@media (any-hover: none) {
  .wp-block-button.is-style-text .wp-block-button__link:active::before, .wp-block-button.is-style-text-arrow .wp-block-button__link:active::before {
    scale: 1 1;
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-text .wp-block-button__link:hover::before, .wp-block-button.is-style-text-arrow .wp-block-button__link:hover::before {
    scale: 1 1;
  }
}
.wp-block-button.is-style-text .wp-block-button__link::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center/contain;
  background-color: var(--color-primary);
  transition: translate 0.3s var(--easing-cubic);
}
.wp-block-button.is-style-text .wp-block-button__link:focus-visible::after {
  translate: 5px 0;
}
@media (any-hover: none) {
  .wp-block-button.is-style-text .wp-block-button__link:active::after {
    translate: 5px 0;
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-text .wp-block-button__link:hover::after {
    translate: 5px 0;
  }
}
.wp-block-button.is-style-text .wp-block-button__link[href^="#"]::after {
  rotate: 90deg;
}
.wp-block-button.is-style-text .wp-block-button__link[href^="#"]:focus-visible::after {
  translate: 0 0;
}
@media (any-hover: none) {
  .wp-block-button.is-style-text .wp-block-button__link[href^="#"]:active::after {
    translate: 0 0;
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-text .wp-block-button__link[href^="#"]:hover::after {
    translate: 0 0;
  }
}
.wp-block-button.is-style-text .wp-block-button__link[target=_blank]::after {
  width: 14px;
  height: 14px;
  mask: url("../images/common/icon-blank.svg") no-repeat center center/contain;
  background-color: var(--color-blue-dark2);
  transition: background-color 0.3s var(--easing-cubic);
}
.wp-block-button.is-style-text .wp-block-button__link[target=_blank]:focus-visible::after {
  background-color: var(--color-blue-dark2);
  translate: 0 0;
}
@media (any-hover: none) {
  .wp-block-button.is-style-text .wp-block-button__link[target=_blank]:active::after {
    background-color: var(--color-blue-dark2);
    translate: 0 0;
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-text .wp-block-button__link[target=_blank]:hover::after {
    background-color: var(--color-blue-dark2);
    translate: 0 0;
  }
}
.wp-block-button.is-style-text-arrow .wp-block-button__link::after {
  flex: 0 0 auto;
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  border-radius: var(--border-radius-full);
  overflow: clip;
  background-color: var(--color-primary);
  background-image: url("../images/common/icon-arrow1_white.svg"), url("../images/common/icon-arrow1_white.svg");
  background-size: 10px 10px, 10px 10px;
  background-repeat: no-repeat, no-repeat;
  background-position: -10px center, center;
  transition: background-position 0.3s var(--easing-cubic);
}
.wp-block-button.is-style-text-arrow .wp-block-button__link:focus-visible::after {
  background-position: center, 20px center;
}
@media (any-hover: none) {
  .wp-block-button.is-style-text-arrow .wp-block-button__link:active::after {
    background-position: center, 20px center;
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-text-arrow .wp-block-button__link:hover::after {
    background-position: center, 20px center;
  }
}
.wp-block-button.is-style-text-arrow .wp-block-button__link[href^="#"]::after {
  rotate: 90deg;
}
.wp-block-button.is-style-text-arrow .wp-block-button__link[target=_blank]::after {
  background-image: url("../images/common/icon-blank_white.svg");
  background-size: 10px 10px;
  background-repeat: no-repeat;
  background-position: center;
  transition: none;
}
.wp-block-button.is-style-text-arrow .wp-block-button__link[target=_blank]:focus-visible::after {
  background-position: center;
}
@media (any-hover: none) {
  .wp-block-button.is-style-text-arrow .wp-block-button__link[target=_blank]:active::after {
    background-position: center;
  }
}
@media (any-hover: hover) {
  .wp-block-button.is-style-text-arrow .wp-block-button__link[target=_blank]:hover::after {
    background-position: center;
  }
}

.wp-block-list.is-style-bar, .wp-block-list.is-style-dot, .wp-block-list.is-style-notice, .wp-block-list.is-style-number, .wp-block-list.is-style-checkmark {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding-inline-start: 0;
  list-style: none;
}
.wp-block-list.is-style-bar > li, .wp-block-list.is-style-dot > li, .wp-block-list.is-style-notice > li, .wp-block-list.is-style-number > li, .wp-block-list.is-style-checkmark > li {
  position: relative;
}
.wp-block-list.is-style-bar > li {
  padding-inline-start: 18px;
}
.wp-block-list.is-style-bar > li::before {
  content: "";
  display: block;
  width: 10px;
  height: 1px;
  background-color: var(--color-primary);
  position: absolute;
  top: 0.5lh;
  left: 0;
  translate: 0 -50%;
}
.wp-block-list.is-style-dot > li {
  padding-inline-start: 16px;
}
.wp-block-list.is-style-dot > li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}
.wp-block-list.is-style-notice > li {
  padding-inline-start: 16px;
}
.wp-block-list.is-style-notice > li::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}
.wp-block-list.is-style-number {
  counter-reset: num;
}
.wp-block-list.is-style-number > li {
  padding-inline-start: 24px;
}
.wp-block-list.is-style-number > li::before {
  display: flex;
  justify-content: center;
  width: 20px;
  counter-increment: num;
  content: counter(num);
  color: var(--color-secondary);
  font-weight: 500;
  font-size: 1.375rem;
  line-height: 1;
  position: absolute;
  top: 0.1lh;
  left: 0;
}
.wp-block-list.is-style-checkmark > li {
  padding-inline-start: 32px;
}
.wp-block-list.is-style-checkmark > li::before {
  display: flex;
  justify-content: center;
  content: "";
  width: 22px;
  height: 22px;
  background: url("../images/common/icon-checkmark.svg") no-repeat center center/contain;
  position: absolute;
  top: 0.15lh;
  left: 0;
}
.wp-block-list.is-style-tag {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-inline-start: 0;
  list-style: none;
}
.wp-block-list.is-style-tag > li {
  display: inline-flex;
  flex: 0 0 auto;
  position: relative;
}

.wp-block-table.is-style-basic table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
.wp-block-table.is-style-basic tr {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  position: relative;
}
@media (width >= 768px) {
  .wp-block-table.is-style-basic tr {
    display: table-row;
  }
}
.wp-block-table.is-style-basic tr:not(:last-child) {
  border-bottom: 1px solid var(--color-gray4);
}
.wp-block-table.is-style-basic tr:not(:last-child)::after {
  content: "";
  display: block;
  width: 17%;
  height: 0;
  border-block-end: 1px solid var(--color-primary);
  position: absolute;
  bottom: 0;
  left: 0;
  translate: 0 100%;
}
.wp-block-table.is-style-basic th,
.wp-block-table.is-style-basic td {
  border: none;
}
.wp-block-table.is-style-basic tr > :first-child {
  padding: 14px 10px 0;
  text-align: start;
  vertical-align: top;
}
@media (width >= 768px) {
  .wp-block-table.is-style-basic tr > :first-child {
    width: 17%;
    padding: 24px 16px;
  }
}
@media (width >= 1040px) {
  .wp-block-table.is-style-basic tr > :first-child {
    padding: 32px 20px;
  }
}
.wp-block-table.is-style-basic tr > :not(:first-child) {
  padding: 0 10px 14px;
  text-align: start;
}
@media (width >= 768px) {
  .wp-block-table.is-style-basic tr > :not(:first-child) {
    padding: 24px 16px;
  }
}
@media (width >= 1040px) {
  .wp-block-table.is-style-basic tr > :not(:first-child) {
    padding: 32px 20px;
  }
}

.home {
  --line-duration: 2s;
  --line-delay1: .5s;
  --line-delay2: 1s;
  --line-delay3: 1.5s;
}

.section-title {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.8;
}
@media (width >= 1040px) {
  .section-title {
    font-size: 1.875rem;
    line-height: 1.4667;
  }
}

.section-text {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.875;
  text-wrap: pretty;
}
@media (width >= 1040px) {
  .section-text {
    font-size: 1rem;
  }
}

.home-kv {
  position: relative;
}
.home-kv::before {
  content: "";
  display: block;
  width: hypot(120svw, 260px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: 100px;
  right: -40px;
  rotate: -30deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: right top;
  transition: scale var(--line-duration) var(--line-delay2) var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-kv::before {
    width: hypot(120svw, 880px);
    height: 20px;
    top: -165px;
  }
}
.home-kv.is-show::before {
  scale: 1 1;
}
.home-kv.is-show .splide__track {
  opacity: 1;
  translate: 0 0;
}
.home-kv--container {
  max-width: var(--container-width-lg);
  margin-inline: auto;
  position: relative;
  container: kv-container/inline-size;
}
.home-kv--slogan {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  width: 100%;
  margin-block-start: 24px;
  text-align: right;
  z-index: 2;
}
@media (width >= 1040px) {
  .home-kv--slogan {
    margin-block-start: 0;
    position: absolute;
    right: 0;
    bottom: 64px;
  }
}
.home-kv--slogan .label {
  font-size: 8cqw;
  font-weight: 500;
  line-height: 1.6667;
  letter-spacing: 0.1em;
  transition: translate 0.3s 0.2s var(--easing-cubic), opacity 0.3s 0.2s var(--easing-cubic);
  opacity: 0;
  translate: 0 40px;
}
@media (width >= 1040px) {
  .home-kv--slogan .label {
    font-size: 3.75rem;
  }
}
.is-show .home-kv--slogan .label {
  opacity: 1;
  translate: 0 0;
}
.home-kv--slogan .label::after {
  content: "";
  display: block;
  width: 100%;
  height: 1.8px;
  background-color: currentColor;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s 0.4s var(--easing-cubic);
}
.is-show .home-kv--slogan .label::after {
  scale: 1 1;
}
.home-kv--slogan .label:nth-of-type(2) {
  transition-delay: 0.3s;
}
.home-kv--slogan .label:nth-of-type(2)::after {
  transition-delay: 0.5s;
}
.home-kv .splide__track {
  transition: translate 0.3s 0.3s var(--easing-cubic), opacity 0.3s 0.3s var(--easing-cubic);
  opacity: 0;
  translate: 0 40px;
}
.home-kv .splide__slide {
  max-width: 880px;
  border-radius: var(--border-radius-sm);
  overflow: hidden;
}
.home-kv .splide__slide img {
  border-radius: var(--border-radius-sm);
}
.home-kv .splide__slide {
  /* ズームアニメーション用の追加クラス */
}
.home-kv .splide__slide.is-zoom img {
  animation: kv-scale 8s linear forwards;
}

.home-news {
  padding-block: 48px 0;
}
@media (width >= 1040px) {
  .home-news {
    padding-block: 120px 0;
  }
}
.home-news--container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  max-width: var(--container-width);
  margin-inline: auto;
  padding: 20px;
  border-block: 1px solid var(--color-gray5);
}
@media (width >= 1040px) {
  .home-news--container {
    display: flex;
    align-items: center;
    gap: 34px;
    padding: 24px;
  }
}
.home-news--title {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6667;
}
@media (width >= 1040px) {
  .home-news--title {
    gap: 34px;
    font-size: 1.125rem;
  }
}
.home-news--title::after {
  content: "";
  width: 26.0768096208px;
  height: 1px;
  rotate: -58deg;
  background-color: var(--color-gray2);
}

.home-concept {
  position: relative;
  padding-block: 32px 40px;
}
@media (width >= 1040px) {
  .home-concept {
    padding-block: 100px 164px;
  }
}
.home-concept::before {
  content: "";
  display: block;
  width: hypot(120svw, 245px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: 0;
  left: -40px;
  rotate: 28deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: left top;
  transition: scale var(--line-duration) var(--line-delay3) var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-concept::before {
    width: hypot(120svw, 800px);
    height: 20px;
    top: 246px;
  }
}
.home-concept::after {
  content: "";
  display: block;
  width: hypot(120svw, 430px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: 320px;
  right: -40px;
  rotate: -48deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: right top;
  transition: scale var(--line-duration) 2.5s var(--easing-cubic);
}
@media (width >= 768px) {
  .home-concept::after {
    display: none;
  }
}
.home-concept.is-show::before {
  scale: 1 1;
}
.home-concept.is-show::after {
  scale: 1 1;
}
.home-concept--container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: var(--container-width);
  margin-inline: auto;
}
@media (width >= 1040px) {
  .home-concept--container {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr;
    gap: 60px 40px;
  }
}
@media (width >= 1040px) {
  .home-concept--title {
    grid-column: 1;
    grid-row: 1;
  }
}
.home-concept--image {
  display: flex;
  justify-content: flex-end;
  margin-block-end: 0;
  position: relative;
}
@media (width >= 1040px) {
  .home-concept--image {
    max-width: 620px;
    align-items: flex-start;
    grid-column: 2;
    grid-row: span 2;
    margin-inline-end: -100px;
  }
}
.home-concept--image img {
  width: 100%;
  border-radius: var(--border-radius-lg);
  position: relative;
  opacity: 0;
  translate: 40px 0;
  z-index: 2;
  transition: translate 0.3s var(--easing-cubic), opacity 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-concept--image img {
    border-radius: var(--border-radius-lg) 0 0 var(--border-radius-lg);
  }
}
.is-show .home-concept--image img {
  opacity: 1;
  translate: 0 0;
}
.home-concept--image::after {
  content: "";
  display: block;
  width: 132.9661611088px;
  height: 5px;
  background-color: var(--color-primary);
  rotate: -44deg;
  position: absolute;
  top: calc(100% - 76px);
  right: -24px;
  transform-origin: top right;
  z-index: 1;
  scale: 0 1;
  transition: scale 1s 0.6s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-concept--image::after {
    width: 357.8966331219px;
    height: 8px;
    top: calc(100% - 169px);
    right: -80px;
  }
}
.is-show .home-concept--image::after {
  scale: 1 1;
}
@media (width >= 1040px) {
  .home-concept--block {
    grid-column: 1;
    grid-row: 2;
  }
}
.home-concept--text + .home-concept--text {
  margin-block-start: 24px;
}

.home-service {
  padding-block: 40px;
  position: relative;
}
@media (width >= 1040px) {
  .home-service {
    padding-block: 120px 120px;
  }
}
.home-service::before {
  content: "";
  display: block;
  width: hypot(120svw, 267px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: calc(100% - 64px);
  right: -40px;
  rotate: -26deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: right top;
  transition: scale var(--line-duration) var(--line-delay3) var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-service::before {
    width: hypot(120svw, 700px);
    height: 20px;
    top: 720px;
    rotate: -26deg;
  }
}
.home-service.is-show::before {
  scale: 1 1;
}
.home-service--container {
  max-width: var(--container-width);
  margin-inline: auto;
  position: relative;
  z-index: 2;
}
.home-service--hgroup {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (width >= 1040px) {
  .home-service--hgroup {
    gap: 44px;
  }
}
.home-service--bg {
  margin-inline: calc((100% - 100svw) / 2);
  position: absolute;
  top: 0;
  left: 0;
  width: 100svw;
  height: 100%;
  z-index: 1;
  background-color: var(--color-blue-light4);
  pointer-events: none;
}
.home-service--bg img {
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: right top;
  opacity: 0.2;
  mix-blend-mode: multiply;
}
@media (width >= 1040px) {
  .home-service--bg img {
    height: 100%;
    object-position: right center;
  }
}

.home-works {
  margin-block: 56px 80px;
  position: relative;
}
@media (width >= 1040px) {
  .home-works {
    margin-block: 120px 96px;
  }
}
.home-works::before {
  content: "";
  display: block;
  width: hypot(120svw, 336px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: 254px;
  left: -40px;
  rotate: 28deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: left top;
  transition: scale var(--line-duration) var(--line-delay2) var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-works::before {
    width: hypot(120svw, 800px);
    height: 20px;
    top: 254px;
    rotate: 28deg;
  }
}
.home-works::after {
  content: "";
  display: block;
  width: hypot(120svw, 440px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: 726px;
  right: -40px;
  rotate: -45deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: right top;
  transition: scale var(--line-duration) var(--line-delay3) var(--easing-cubic);
}
@media (width >= 768px) {
  .home-works::after {
    display: none;
  }
}
.home-works.is-show::before {
  scale: 1 1;
}
.home-works.is-show::after {
  scale: 1 1;
}
.home-works--container {
  max-width: var(--container-width);
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
.home-works--hgroup {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
.home-works--footer {
  display: flex;
  justify-content: center;
  margin-block-start: 48px;
}
.home-works .works-nopost {
  text-align: center;
  margin-block-start: 40px;
}

.home-discovery {
  margin-block: 80px 100px;
  position: relative;
  z-index: 1;
}
@media (width >= 1040px) {
  .home-discovery {
    margin-block: 96px 128px;
    z-index: 0;
  }
}
.home-discovery::before {
  content: "";
  display: block;
  width: hypot(120svw, 278px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: 210px;
  right: -40px;
  rotate: -29deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: right top;
  transition: scale var(--line-duration) var(--line-delay2) var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-discovery::before {
    width: hypot(120svw, 800px);
    height: 20px;
    top: 236px;
    rotate: -29deg;
  }
}
.home-discovery::after {
  content: "";
  display: block;
  width: hypot(120svw, 336px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: -100px;
  left: -40px;
  rotate: 28deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: left top;
  transition: scale var(--line-duration) var(--line-delay1) var(--easing-cubic);
}
@media (width >= 768px) {
  .home-discovery::after {
    display: none;
  }
}
.home-discovery.is-show::before {
  scale: 1 1;
}
.home-discovery.is-show::after {
  scale: 1 1;
}
.home-discovery--container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: var(--container-width);
  margin-inline: auto;
}
@media (width >= 1040px) {
  .home-discovery--container {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto 1fr;
    gap: 30px 40px;
  }
}
@media (width >= 1040px) {
  .home-discovery--title {
    grid-column: 2;
    grid-row: 1;
  }
}
.home-discovery--image {
  margin-block-end: 0;
  position: relative;
}
@media (width >= 1040px) {
  .home-discovery--image {
    max-width: 600px;
    margin-inline-start: -100px;
    align-items: flex-start;
    grid-column: 1;
    grid-row: span 2;
  }
}
.home-discovery--image img {
  width: 100%;
  border-radius: var(--border-radius-lg);
  position: relative;
  z-index: 2;
  opacity: 0;
  translate: -40px 0;
  transition: translate 0.3s var(--easing-cubic), opacity 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-discovery--image img {
    border-radius: 0 var(--border-radius-lg) var(--border-radius-lg) 0;
  }
}
.is-show .home-discovery--image img {
  opacity: 1;
  translate: 0 0;
}
.home-discovery--image::after {
  content: "";
  display: block;
  width: 132.9661611088px;
  height: 5px;
  background-color: var(--color-primary);
  rotate: 44deg;
  position: absolute;
  top: calc(100% - 76px);
  left: -24px;
  transform-origin: top left;
  z-index: 1;
  scale: 0 1;
  transition: scale 1s 0.6s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-discovery--image::after {
    width: 357.8966331219px;
    height: 8px;
    top: calc(100% - 212px);
    left: -80px;
  }
}
.is-show .home-discovery--image::after {
  scale: 1 1;
}
@media (width >= 1040px) {
  .home-discovery--block {
    grid-column: 2;
    grid-row: 2;
  }
}
.home-discovery--text + .home-discovery--text {
  margin-block-start: 24px;
}
.home-discovery--footer {
  display: flex;
  justify-content: center;
  margin-block-start: 32px;
}
@media (width >= 1040px) {
  .home-discovery--footer {
    justify-content: flex-start;
  }
}

.home-company {
  opacity: 0;
  translate: 0 40px;
  transition: translate 0.3s var(--easing-cubic), opacity 0.3s var(--easing-cubic);
}
.home-company::before {
  content: "";
  display: block;
  width: hypot(120svw, 480px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: 240px;
  right: -40px;
  rotate: -46deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: right top;
  transition: scale var(--line-duration) var(--line-delay3) var(--easing-cubic);
}
@media (width >= 768px) {
  .home-company::before {
    display: none;
  }
}
.home-company.is-show::before {
  scale: 1 1;
}
.home-company.is-show::after {
  scale: 1 1;
}
.home-company.is-show {
  opacity: 1;
  translate: 0 0;
}
.home-company--container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  padding: 32px 18px;
  max-width: var(--container-width-lg);
  margin-inline: auto;
  background: var(--gradation1);
}
@media (width >= 1040px) {
  .home-company--container {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto 1fr;
    gap: 40px;
    padding: 72px 100px;
    align-items: flex-start;
  }
}
.home-company--hgroup {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (width >= 1040px) {
  .home-company--hgroup {
    gap: 40px;
    grid-column: 1;
    grid-row: 1;
  }
}
.home-company--list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (width >= 1040px) {
  .home-company--list {
    gap: 20px;
    grid-column: 2;
    grid-row: span 2;
  }
}
.home-company--item {
  max-width: 240px;
  min-height: 126px;
}
.home-company--link {
  display: block;
  width: 100%;
  height: 100%;
  padding: 12px 9px;
  background-color: var(--color-white);
  border: 1px solid var(--color-gray6);
  border-radius: var(--border-radius-xlg);
  transition: background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-company--link {
    padding: 36px 20px;
  }
}
.home-company--link:focus-visible {
  background-color: var(--color-blue-light10);
}
.home-company--link:focus-visible .home-company--label::after {
  scale: 1 1;
}
.home-company--link:focus-visible .arrow::before {
  translate: -50% -50%;
}
.home-company--link:focus-visible .arrow::after {
  translate: 100% -50%;
}
@media (any-hover: none) {
  .home-company--link:active {
    background-color: var(--color-blue-light10);
  }
  .home-company--link:active .home-company--label::after {
    scale: 1 1;
  }
  .home-company--link:active .arrow::before {
    translate: -50% -50%;
  }
  .home-company--link:active .arrow::after {
    translate: 100% -50%;
  }
}
@media (any-hover: hover) {
  .home-company--link:hover {
    background-color: var(--color-blue-light10);
  }
  .home-company--link:hover .home-company--label::after {
    scale: 1 1;
  }
  .home-company--link:hover .arrow::before {
    translate: -50% -50%;
  }
  .home-company--link:hover .arrow::after {
    translate: 100% -50%;
  }
}
.home-company--block {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  gap: 20px;
  margin-block-end: 0;
}
.home-company--block img {
  flex: 0 0 auto;
  width: 48px;
  height: auto;
}
@media (width >= 1040px) {
  .home-company--block img {
    width: 72px;
    height: auto;
  }
}
.home-company--label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.4667;
  position: relative;
}
@media (width >= 1040px) {
  .home-company--label {
    font-size: 1.25rem;
    gap: 10px;
  }
}
.home-company--label::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-primary);
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.home-company--label .arrow {
  flex: 0 0 auto;
  display: block;
  width: 14px;
  height: 14px;
  background-color: var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
}
@media (width >= 1040px) {
  .home-company--label .arrow {
    width: 20px;
    height: 20px;
  }
}
.home-company--label .arrow::before, .home-company--label .arrow::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  background: url("../images/common/icon-arrow1_white.svg") no-repeat 60% 50%/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: translate 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-company--label .arrow::before, .home-company--label .arrow::after {
    width: 10px;
    height: 10px;
  }
}
.home-company--label .arrow::before {
  translate: -200% -50%;
}
.home-company--footer {
  display: flex;
  justify-content: center;
}
@media (width >= 1040px) {
  .home-company--footer {
    justify-content: flex-start;
  }
}

.home-recruit {
  margin-block: 90px 64px;
  position: relative;
}
@media (width >= 1040px) {
  .home-recruit {
    margin-block: 120px 160px;
  }
}
.home-recruit::before {
  content: "";
  display: block;
  width: hypot(120svw, 694px);
  height: 10px;
  background-color: color-mix(in srgb, var(--color-primary) 7%, transparent);
  position: absolute;
  top: 84px;
  left: -40px;
  rotate: 26deg;
  z-index: -1;
  scale: 0 1;
  pointer-events: none;
  transform-origin: left top;
  transition: scale var(--line-duration) var(--line-delay2) var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-recruit::before {
    width: hypot(120svw, 694px);
    height: 20px;
    top: -56px;
    rotate: 26deg;
  }
}
.home-recruit.is-show::before {
  scale: 1 1;
}
.home-recruit--container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  max-width: var(--container-width);
  margin-inline: auto;
  position: relative;
  container: recruit-container/inline-size;
}
.home-recruit--container::before {
  content: "";
  display: block;
  width: 138px;
  height: 142px;
  background: url("../images/home/img-recruit-circle1.svg") no-repeat center center/contain;
  position: absolute;
  top: 52.8vw;
  left: calc(50% - 110px);
  opacity: 0.5;
  animation: circle-animation 10s linear infinite;
}
@media (width >= 768px) {
  .home-recruit--container::before {
    top: 405px;
    left: calc(50% + 80px);
  }
}
@media (width >= 1040px) {
  .home-recruit--container::before {
    width: 396px;
    height: 406px;
    top: 297px;
    left: calc(50% - 212px);
  }
}
.home-recruit--container::after {
  content: "";
  display: block;
  width: 213px;
  height: 214px;
  background: url("../images/home/img-recruit-circle2.svg") no-repeat center center/contain;
  position: absolute;
  top: 56vw;
  left: calc(50% - 26px);
  opacity: 0.5;
  animation: circle-animation 30s linear infinite;
}
@media (width >= 768px) {
  .home-recruit--container::after {
    top: 430px;
    left: calc(50% + 180px);
  }
}
@media (width >= 1040px) {
  .home-recruit--container::after {
    width: 617px;
    height: 621px;
    top: 310px;
    left: calc(50% + 25px);
  }
}
@keyframes circle-animation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.home-recruit--image {
  margin-block-end: 0;
  position: relative;
  z-index: 2;
}
@media (width >= 1040px) {
  .home-recruit--image {
    max-width: 600px;
  }
}
.home-recruit--image img {
  width: 100%;
  position: relative;
  z-index: 2;
  opacity: 0;
  translate: 0 40px;
  transition: translate 0.3s var(--easing-cubic), opacity 0.3s var(--easing-cubic);
}
.is-show .home-recruit--image img {
  opacity: 1;
  translate: 0 0;
}
.home-recruit--image::after {
  content: "";
  display: block;
  width: 140.7586587035px;
  height: 5px;
  background-color: var(--color-primary);
  rotate: -44deg;
  position: absolute;
  top: calc(100% - 80px);
  right: -24px;
  transform-origin: top right;
  z-index: 1;
  scale: 0 1;
  transition: scale 1s 0.5s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home-recruit--image::after {
    width: 281.4853459774px;
    height: 8px;
    top: calc(100% - 165px);
    right: -52px;
  }
}
.is-show .home-recruit--image::after {
  scale: 1 1;
}
.home-recruit--title {
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  z-index: 2;
}
@media (width >= 1040px) {
  .home-recruit--title {
    gap: 10px;
  }
}
.home-recruit--title .englabel {
  font-size: 10.6667cqw;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.08em;
  color: var(--color-blue-light2);
}
@media (width >= 1040px) {
  .home-recruit--title .englabel {
    font-size: 5rem;
  }
}
.home-recruit--title .label {
  font-size: 5.3333cqw;
  font-weight: 500;
  letter-spacing: 0.08em;
}
@media (width >= 1040px) {
  .home-recruit--title .label {
    font-size: 1.75rem;
  }
}
.home-recruit--block {
  position: relative;
  z-index: 2;
}
.home-recruit--text + .home-recruit--text {
  margin-block-start: 24px;
}
.home-recruit--footer {
  display: flex;
  justify-content: center;
}
@media (width >= 1040px) {
  .home-recruit--footer {
    justify-content: flex-start;
  }
}
.home-recruit .splide__slide {
  overflow: hidden;
}
@media (width >= 1040px) {
  .home-recruit .splide__slide {
    max-width: 600px;
  }
}
.home-recruit .splide__slide {
  /* ズームアニメーション用の追加クラス */
}
.home-recruit .splide__slide.is-zoom img {
  animation: kv-scale 8s linear forwards;
}

@keyframes kv-scale {
  0% {
    scale: 1;
  }
  100% {
    scale: 1.25;
  }
}
.service-nav {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: var(--container-width);
  margin-inline: auto;
}
@media (width >= 768px) {
  .service-nav {
    grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
  }
}
.home .service-nav {
  margin-block-start: 24px;
}
@media (width >= 1040px) {
  .home .service-nav {
    margin-block-start: 44px;
  }
}
.service-nav--wrap {
  padding-block: 40px;
  padding-inline: 10px;
  margin-inline: calc((100svw - 100%) / 2 * -1);
  background-color: var(--color-blue-light6);
}
@media (width >= 360px) {
  .service-nav--wrap {
    padding-inline: 20px;
  }
}
@media (width >= 1040px) {
  .service-nav--wrap {
    padding-block: 80px;
  }
}
.home .service-nav--wrap {
  padding-block: 0;
  background-color: transparent;
}
.service-nav--block {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 20px;
  padding: 40px 24px 24px;
  background-color: var(--color-white);
  border: 1px solid var(--color-gray4);
  border-radius: var(--border-radius-sm);
}
.service-nav--cattop {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}
.service-nav--cattop:focus-visible .service-nav--catlabel::after {
  scale: 1 1;
}
.service-nav--cattop:focus-visible .arrow::after {
  translate: 5px 0;
}
@media (any-hover: none) {
  .service-nav--cattop:active .service-nav--catlabel::after {
    scale: 1 1;
  }
  .service-nav--cattop:active .arrow::after {
    translate: 5px 0;
  }
}
@media (any-hover: hover) {
  .service-nav--cattop:hover .service-nav--catlabel::after {
    scale: 1 1;
  }
  .service-nav--cattop:hover .arrow::after {
    translate: 5px 0;
  }
}
.service-nav--catimage {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  gap: 32px;
  margin-block-end: 0;
}
.service-nav--catimage img {
  flex: 0 0 auto;
}
.is-network .service-nav--catimage img {
  width: 85px;
  height: auto;
}
.is-disaster .service-nav--catimage img {
  width: 80px;
  height: auto;
}
.is-maintenance .service-nav--catimage img {
  width: 85px;
  height: auto;
}
.service-nav--catlabel {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-inline-end: auto;
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.4667;
  letter-spacing: 0.1em;
  position: relative;
}
@media (width >= 440px) {
  .service-nav--catlabel {
    margin-inline-end: 0;
  }
}
@media (width >= 1040px) {
  .service-nav--catlabel {
    margin-inline-end: auto;
  }
}
.service-nav--catlabel::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-primary);
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.service-nav--catlabel .arrow::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background: url("../images/common/icon-arrow1.svg") no-repeat 60% 50%/contain;
  transition: translate 0.3s var(--easing-cubic);
}
.service-nav--slogan {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
}
.service-nav--list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.service-nav--title {
  flex: 1 1 auto;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.7778;
}
.service-nav--desc {
  flex: 0 1 100%;
  width: 100%;
}
.service-nav--btnlist {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.service-nav--btnitem {
  display: flex;
}
.service-nav--btnitem .btn-primary {
  padding-block: 8px;
}
.service-nav--btnitem .btn-primary .label {
  font-size: 0.875rem;
  line-height: 1.1333;
  line-break: strict;
}
.service-nav--link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 10px;
  position: relative;
}
.service-nav--link::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-primary);
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.service-nav--link .arrow {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  background-color: var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
}
.service-nav--link .arrow::before, .service-nav--link .arrow::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background: url("../images/common/icon-arrow1_white.svg") no-repeat 60% 50%/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: translate 0.3s var(--easing-cubic);
}
.service-nav--link .arrow::before {
  translate: -200% -50%;
}
.service-nav--link .label {
  font-size: 0.875rem;
  line-height: 1.1333;
  line-break: strict;
}
.service-nav--link:focus-visible::after {
  scale: 1 1;
}
.service-nav--link:focus-visible .arrow::before {
  translate: -50% -50%;
}
.service-nav--link:focus-visible .arrow::after {
  translate: 100% -50%;
}
@media (any-hover: none) {
  .service-nav--link:active::after {
    scale: 1 1;
  }
  .service-nav--link:active .arrow::before {
    translate: -50% -50%;
  }
  .service-nav--link:active .arrow::after {
    translate: 100% -50%;
  }
}
@media (any-hover: hover) {
  .service-nav--link:hover::after {
    scale: 1 1;
  }
  .service-nav--link:hover .arrow::before {
    translate: -50% -50%;
  }
  .service-nav--link:hover .arrow::after {
    translate: 100% -50%;
  }
}

.discovery-wrap {
  position: relative;
}
.discovery_mark {
  content: "";
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #0D67DE;
  background-color: #FFF;
  color: #0D67DE;
  width: 50px;
  height: 50px;
}
.discovery_mark.active {
  color: #FFF;
  background-color: #0D67DE;
}
.discovery_mark-link {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  font-size: 2vw;
  width: 100%;
  height: 100%;
}
.discovery_mark-01 {
  top: 10%;
  left: 61%;
}
.discovery_mark-02 {
  top: 54%;
  left: 84%;
}
.discovery_mark-03 {
  top: 25%;
  left: 40%;
}
.discovery_mark-04 {
  top: 63%;
  left: 5%;
}
.discovery_mark-05 {
  top: 40%;
  left: 57%;
}
.discovery_mark-06 {
  top: 39%;
  left: 33%;
}
.discovery_mark-07 {
  top: 10%;
  left: 75%;
}
.discovery_mark-08 {
  top: 9%;
  left: 24%;
}
.discovery_mark-09 {
  top: 21%;
  left: 5%;
}
.discovery_mark-10 {
  top: 6%;
  left: 50%;
}
.discovery_mark-11 {
  top: 29%;
  left: 92%;
}

.contact .from-container {
  padding: 40px 10px 0;
  margin-block-start: 56px;
  margin-inline: calc((100svw - 100%) / 2 * -1);
  position: relative;
  overflow-x: clip;
}
.contact .from-container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% - 5px);
  height: 100%;
  background-color: var(--color-blue-light6);
  border-start-end-radius: var(--border-radius-xlg);
  z-index: -1;
  pointer-events: none;
}
@media (width >= 360px) {
  .contact .from-container {
    padding-inline: 20px;
  }
  .contact .from-container::after {
    width: calc(100% - 10px);
  }
}
@media (width >= 1040px) {
  .contact .from-container {
    padding-block: 56px 0;
    margin-block-start: 60px;
  }
}
@media (width >= 1300px) {
  .contact .from-container::after {
    width: calc(100% - clamp(0px, -1300px + 100vw, 100px));
  }
}
.contact .smf-action {
  display: flex;
  justify-content: center;
  padding: 0 10px 40px;
  margin-inline: calc((100svw - 100%) / 2 * -1);
  position: relative;
}
.contact .smf-action::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% - 5px);
  height: 100%;
  background-color: var(--color-blue-light6);
  border-end-end-radius: var(--border-radius-xlg);
  z-index: -1;
  pointer-events: none;
}
@media (width >= 360px) {
  .contact .smf-action {
    padding-inline: 20px;
  }
  .contact .smf-action::after {
    width: calc(100% - 10px);
  }
}
@media (width >= 1040px) {
  .contact .smf-action {
    padding-block: 0 60px;
  }
}
@media (width >= 1300px) {
  .contact .smf-action::after {
    width: calc(100% - clamp(0px, -1300px + 100vw, 100px));
  }
}
.contact .smf-action .smf-button-control__control {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 200px;
  min-height: 46px;
  border-radius: var(--border-radius-pill);
  border: 1px solid var(--color-primary);
  padding: 5px 24px;
  font-size: 1.125rem;
  font-weight: 500;
  transition: background-color 0.3s var(--easing-cubic), color 0.3s var(--easing-cubic);
}
.contact .smf-action .smf-button-control__control[data-action=back] {
  background: var(--color-white);
  color: var(--color-primary);
}
.contact .smf-action .smf-button-control__control[data-action=back]:focus-visible {
  background: var(--color-primary);
  color: var(--color-white);
}
@media (any-hover: none) {
  .contact .smf-action .smf-button-control__control[data-action=back]:active {
    background: var(--color-primary);
    color: var(--color-white);
  }
}
@media (any-hover: hover) {
  .contact .smf-action .smf-button-control__control[data-action=back]:hover {
    background: var(--color-primary);
    color: var(--color-white);
  }
}
.contact .smf-action .smf-button-control__control[data-action=submit], .contact .smf-action .smf-button-control__control[data-action=complete], .contact .smf-action .smf-button-control__control[data-action=confirm] {
  background: var(--color-primary);
  color: var(--color-white);
}
.contact .smf-action .smf-button-control__control[data-action=submit]:focus-visible, .contact .smf-action .smf-button-control__control[data-action=complete]:focus-visible, .contact .smf-action .smf-button-control__control[data-action=confirm]:focus-visible {
  background: var(--color-white);
  color: var(--color-primary);
}
@media (any-hover: none) {
  .contact .smf-action .smf-button-control__control[data-action=submit]:active, .contact .smf-action .smf-button-control__control[data-action=complete]:active, .contact .smf-action .smf-button-control__control[data-action=confirm]:active {
    background: var(--color-white);
    color: var(--color-primary);
  }
}
@media (any-hover: hover) {
  .contact .smf-action .smf-button-control__control[data-action=submit]:hover, .contact .smf-action .smf-button-control__control[data-action=complete]:hover, .contact .smf-action .smf-button-control__control[data-action=confirm]:hover {
    background: var(--color-white);
    color: var(--color-primary);
  }
}
.contact .snow-monkey-form[data-screen=input] .is-show-entry {
  display: block;
}
.contact .snow-monkey-form[data-screen=input] .is-show-confirm {
  display: none;
}
.contact .snow-monkey-form[data-screen=confirm] .is-show-entry {
  display: none;
}
.contact .snow-monkey-form[data-screen=confirm] .is-show-confirm {
  display: block;
}
.contact .snow-monkey-form[data-screen=back] .is-show-entry {
  display: block;
}
.contact .snow-monkey-form[data-screen=back] .is-show-confirm {
  display: none;
}
.contact .snow-monkey-form[data-screen=complete] .smf-action {
  padding: 0;
  background-color: transparent;
}
.contact .snow-monkey-form[data-screen=invalid] .is-show-entry {
  display: block;
}
.contact .snow-monkey-form[data-screen=invalid] .is-show-confirm {
  display: none;
}
.contact .snow-monkey-form {
  /* 変更: エラー表示は入力中（data-screen="input"）にも出るため、画面状態で囲わない */
}
.contact .snow-monkey-form .smf-error-messages {
  color: var(--color-error);
}
.contact .snow-monkey-form .form-input[data-invalid="1"],
.contact .snow-monkey-form .form-email[data-invalid="1"],
.contact .snow-monkey-form .form-textarea[data-invalid="1"],
.contact .snow-monkey-form .form-zip[data-invalid="1"],
.contact .snow-monkey-form .form-select[data-invalid="1"] {
  border-color: var(--color-error);
  background-color: var(--color-error-light);
}
.contact .snow-monkey-form {
  /* 入力前の欄まで緑にならないよう、成功表示はサーバー検証後の画面だけに出す */
}
.contact .snow-monkey-form[data-screen=invalid] .form-input:not([data-invalid="1"]),
.contact .snow-monkey-form[data-screen=invalid] .form-email:not([data-invalid="1"]),
.contact .snow-monkey-form[data-screen=invalid] .form-textarea:not([data-invalid="1"]),
.contact .snow-monkey-form[data-screen=invalid] .form-zip:not([data-invalid="1"]),
.contact .snow-monkey-form[data-screen=invalid] .form-select:not([data-invalid="1"]) {
  border-color: var(--color-success);
  background-color: var(--color-success-light);
}
.contact .wp-block-snow-monkey-forms-item {
  width: 100%;
}
.contact .form-input {
  width: 100%;
  color: var(--color-text);
}
.contact .form-email {
  width: 100%;
  color: var(--color-text);
}
.contact .form-textarea {
  width: 100%;
  color: var(--color-text);
}
.contact .form-zip {
  width: 210px;
  color: var(--color-text);
}
.contact .smf-select-control:has(.form-select) {
  width: 32%;
}
.contact .form-select {
  width: 100%;
  color: var(--color-text);
}

.information .heading {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-block-end: 40px;
}
@media (width >= 1040px) {
  .information .heading {
    margin-block-end: 64px;
  }
}
.information .heading .date {
  flex: 0 0 auto;
  font-size: 1rem;
  font-weight: 400;
}
@media (width >= 1040px) {
  .information .heading .date {
    font-size: 1.125rem;
  }
}
.information .heading .label {
  flex: 0 1 100%;
  font-weight: 500;
}
.information .text.is-nopost {
  margin-block-start: 24px;
  text-align: center;
}

.news-list {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: 1fr;
}
.news-list--link {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  transition: background-color 0.3s var(--easing-cubic), color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .news-list--link {
    gap: 30px;
  }
}
.news-list--link:not(body.home .news-list--link) {
  padding-block: 24px;
  border-block-end: 1px solid var(--color-blue-light3);
}
.news-list--link:not(body.home .news-list--link):focus-visible {
  color: var(--color-primary);
}
.news-list--link:not(body.home .news-list--link):focus-visible .arrow::before {
  translate: -50% -50%;
}
.news-list--link:not(body.home .news-list--link):focus-visible .arrow::after {
  translate: 100% -50%;
}
@media (any-hover: none) {
  .news-list--link:not(body.home .news-list--link):active {
    color: var(--color-primary);
  }
  .news-list--link:not(body.home .news-list--link):active .arrow::before {
    translate: -50% -50%;
  }
  .news-list--link:not(body.home .news-list--link):active .arrow::after {
    translate: 100% -50%;
  }
}
@media (any-hover: hover) {
  .news-list--link:not(body.home .news-list--link):hover {
    color: var(--color-primary);
  }
  .news-list--link:not(body.home .news-list--link):hover .arrow::before {
    translate: -50% -50%;
  }
  .news-list--link:not(body.home .news-list--link):hover .arrow::after {
    translate: 100% -50%;
  }
}
.news-list--link:not(body.home .news-list--link) .arrow {
  display: block;
  width: 24px;
  height: 24px;
  background-color: var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
}
.news-list--link:not(body.home .news-list--link) .arrow::before, .news-list--link:not(body.home .news-list--link) .arrow::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  background: url("../images/common/icon-arrow1_white.svg") no-repeat 60% 50%/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: translate 0.3s var(--easing-cubic);
}
.news-list--link:not(body.home .news-list--link) .arrow::before {
  translate: -200% -50%;
}
.home .news-list--link:focus-visible {
  color: var(--color-primary);
  background-color: transparent;
}
.home .news-list--link:focus-visible .arrow {
  background-color: var(--color-primary);
}
.home .news-list--link:focus-visible .arrow::after {
  background-color: var(--color-white);
}
@media (any-hover: none) {
  .home .news-list--link:active {
    color: var(--color-primary);
    background-color: transparent;
  }
  .home .news-list--link:active .arrow {
    background-color: var(--color-primary);
  }
  .home .news-list--link:active .arrow::after {
    background-color: var(--color-white);
  }
}
@media (any-hover: hover) {
  .home .news-list--link:hover {
    color: var(--color-primary);
    background-color: transparent;
  }
  .home .news-list--link:hover .arrow {
    background-color: var(--color-primary);
  }
  .home .news-list--link:hover .arrow::after {
    background-color: var(--color-white);
  }
}
.home .news-list--link .arrow {
  display: block;
  width: 26px;
  height: 26px;
  border: 1px solid var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
  transition: background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home .news-list--link .arrow {
    width: 42px;
    height: 42px;
  }
}
.home .news-list--link .arrow::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat 60% 50%/contain;
  background-color: var(--color-blue);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .home .news-list--link .arrow::after {
    width: 12px;
    height: 12px;
  }
}
.news-list--title {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.6667;
}
@media (width >= 1040px) {
  .news-list--title {
    flex-direction: row;
    align-items: center;
    gap: 30px;
  }
}
.news-list--title:not(body.home .news-list--title) .date {
  flex: 0 0 auto;
  font-weight: 400;
  font-size: 1rem;
}
@media (width >= 1040px) {
  .news-list--title:not(body.home .news-list--title) .date {
    font-size: 1.125rem;
  }
}
.news-list--title:not(body.home .news-list--title) .label {
  flex: 0 1 auto;
  font-weight: 400;
  font-size: 1.25rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
@media (width >= 1040px) {
  .news-list--title:not(body.home .news-list--title) .label {
    font-size: 1.375rem;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
  }
}
.home .news-list--title .date {
  font-size: 0.9375rem;
  font-weight: 400;
}
@media (width >= 1040px) {
  .home .news-list--title .date {
    font-size: 1rem;
  }
}
.home .news-list--title .label {
  font-size: 0.9375rem;
  line-height: 1.4667;
  font-weight: 400;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
@media (width >= 1040px) {
  .home .news-list--title .label {
    font-size: 1rem;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
  }
}

.works--container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 52px;
}
@media (width >= 1040px) {
  .works--container {
    gap: 60px;
  }
}
.works--container .main-footer {
  padding-block-start: 24px;
}
.works .text.is-nopost {
  margin-block-start: 24px;
  text-align: center;
  /* 変更: 絞り込み結果が0件のときだけ表示する */
}
.works .text.is-nopost[aria-hidden=true] {
  display: none;
}
.works .btn-tag {
  flex: 0 0 auto;
}
.works .btn-tag input {
  display: none;
  visibility: hidden;
}
.works .btn-tag:has(input:checked) {
  background-color: var(--color-primary);
  color: var(--color-white);
}

.works-filter {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
.works-filter--checklist {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.works-list--item {
  display: grid;
  grid-template-columns: 1fr 20px;
  grid-template-rows: auto 1fr;
  grid-template-areas: "title arrow" "meta arrow";
  gap: 6px 18px;
  padding-block: 12px 16px;
  border-block-end: 2px solid var(--color-blue-light3);
  position: relative;
}
@media (width >= 1040px) {
  .works-list--item {
    gap: 6px 24px;
  }
}
.works-list--item:has(.works-list--link:hover) .arrow::before {
  translate: -50% -50%;
}
.works-list--item:has(.works-list--link:hover) .arrow::after {
  translate: 100% -50%;
}
.works-list--item {
  /* 変更: 絞り込みの対象外・未表示の項目を隠す */
}
.works-list--item[aria-hidden=true] {
  display: none;
}
.works-list--title {
  grid-area: title;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.63636;
}
@media (width >= 1040px) {
  .works-list--title {
    font-size: 1.25rem;
  }
}
.works-list--link {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.works-list--link:focus-visible {
  color: var(--color-primary);
}
@media (any-hover: none) {
  .works-list--link:active {
    color: var(--color-primary);
  }
}
@media (any-hover: hover) {
  .works-list--link:hover {
    color: var(--color-primary);
  }
}
.works-list--link::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.works-list--meta {
  display: flex;
  gap: 18px;
  grid-area: meta;
}
@media (width >= 1040px) {
  .works-list--meta {
    gap: 24px;
  }
}
.works-list--meta .date {
  flex: 0 0 auto;
  font-size: 1rem;
  translate: 0 -2px;
}
@media (width >= 1040px) {
  .works-list--meta .date {
    font-size: 1.125rem;
  }
}
.works-list--tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  grid-area: tags;
}
.works-list--taglabel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 12px;
  border-radius: var(--border-radius-pill);
  background-color: var(--color-blue-light6);
  border: none;
  color: var(--color-text);
  font-size: 0.8125rem;
  font-weight: 500;
}
.works-list .arrow {
  grid-area: arrow;
  flex: 0 0 auto;
  display: block;
  align-self: center;
  width: 20px;
  height: 20px;
  background-color: var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
}
.works-list .arrow::before, .works-list .arrow::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  mask: url("../images/common/icon-arrow1.svg") no-repeat center/contain;
  background-color: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: translate 0.3s var(--easing-cubic);
}
.works-list .arrow::before {
  translate: -200% -50%;
}

.is-noactive .works-caselist:not(body.home .works-caselist) {
  display: flex;
  justify-content: center;
  gap: 20px;
}
@media (width >= 1040px) {
  .is-noactive .works-caselist:not(body.home .works-caselist) {
    gap: 40px;
  }
}
.home .works-caselist, .service .works-caselist {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-block-start: 40px;
}
@media (width >= 768px) {
  .home .works-caselist, .service .works-caselist {
    gap: 40px;
    margin-block-start: 48px;
    grid-template-columns: repeat(auto-fit, minmax(480px, 1fr));
  }
}
.service .works-caselist {
  margin-block: 0 80px;
}
@media (width >= 768px) {
  .service .works-caselist {
    margin-block: 0 80px;
  }
}
.works-caselist--item {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 16px 20px 24px;
  background-color: var(--color-white);
  border: 1px solid var(--color-gray4);
  position: relative;
  transition: background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .works-caselist--item {
    max-width: 480px;
    gap: 30px;
    padding: 16px 32px 24px;
  }
}
.works-caselist--item:has(.works-caselist--link:hover) {
  background-color: var(--color-blue-light10);
}
.works-caselist--hgroup {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.works-caselist--label {
  flex: 0 0 auto;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
  color: var(--color-secondary);
}
.works-caselist--link {
  flex: 1 1 auto;
}
.works-caselist--link::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.works-caselist--link .arrow {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  margin-inline-start: auto;
  background-color: var(--color-primary);
  border-radius: var(--border-radius-full);
  position: relative;
  overflow: clip;
}
.works-caselist--link .arrow::before, .works-caselist--link .arrow::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background: url("../images/common/icon-arrow1_white.svg") no-repeat 60% 50%/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: translate 0.3s var(--easing-cubic);
}
.works-caselist--link .arrow::before {
  translate: -200% -50%;
}
.works-caselist--link:focus-visible .works-caselist--title::after {
  scale: 1 1;
}
.works-caselist--link:focus-visible .arrow::before {
  translate: -50% -50%;
}
.works-caselist--link:focus-visible .arrow::after {
  translate: 100% -50%;
}
@media (any-hover: none) {
  .works-caselist--link:active .works-caselist--title::after {
    scale: 1 1;
  }
  .works-caselist--link:active .arrow::before {
    translate: -50% -50%;
  }
  .works-caselist--link:active .arrow::after {
    translate: 100% -50%;
  }
}
@media (any-hover: hover) {
  .works-caselist--link:hover .works-caselist--title::after {
    scale: 1 1;
  }
  .works-caselist--link:hover .arrow::before {
    translate: -50% -50%;
  }
  .works-caselist--link:hover .arrow::after {
    translate: 100% -50%;
  }
}
.works-caselist--title {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
}
.works-caselist--title::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-primary);
  position: absolute;
  left: 0;
  bottom: -4px;
  transform-origin: left center;
  scale: 0 1;
  transition: scale 0.3s var(--easing-cubic);
}
.works-caselist--title .label {
  font-size: 1.125rem;
  line-height: 1.63636;
  font-weight: 500;
  letter-spacing: 0.1em;
}
@media (width >= 1040px) {
  .works-caselist--title .label {
    font-size: 1.375rem;
  }
}
.works-caselist--tags {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 6px 10px;
}
@media (width >= 1040px) {
  .works-caselist--tags {
    gap: 10px 18px;
  }
}
.works-caselist--tags .taglabel {
  flex: 0 0 auto;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding-inline: 12px;
  min-height: 26px;
  font-size: 0.8125rem;
  background-color: var(--color-blue-light6);
  border-radius: var(--border-radius-pill);
}
.works-caselist--block {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
.works-caselist--subtitle {
  font-size: 1rem;
  font-weight: 500;
  color: var(--color-primary);
}
.works-caselist--text {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.875;
  text-wrap: pretty;
}
@media (width >= 1040px) {
  .works-caselist--text {
    font-size: 1rem;
  }
}

.works-single--heading {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-block-end: 40px;
}
.works-single--meta {
  display: flex;
  gap: 18px;
}
@media (width >= 1040px) {
  .works-single--meta {
    gap: 24px;
  }
}
.works-single--meta .date {
  flex: 0 0 auto;
  font-size: 1rem;
  translate: 0 -2px;
}
@media (width >= 1040px) {
  .works-single--meta .date {
    font-size: 1.125rem;
  }
}

.works-other {
  padding: 40px;
  margin-block-start: 56px;
  margin-inline: calc((100svw - 100%) / 2 * -1);
  background-color: var(--color-blue-light6);
}
@media (width >= 1040px) {
  .works-other {
    padding-inline: 60px;
    padding-block: 56px 60px;
    margin-block-start: 60px;
  }
}
.works-other--container {
  max-width: var(--container-width-lg);
  margin-inline: auto;
  position: relative;
}
.works-other--title {
  max-width: var(--container-width);
  margin-inline: auto;
  margin-block-end: 40px;
}
.works-other--title .label {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.63636;
}
@media (width >= 1040px) {
  .works-other--title .label {
    font-size: 1.875rem;
  }
}
.works-other--slide {
  max-width: var(--container-width);
  margin-inline: auto;
}
.works-other .splide__arrow {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--color-primary);
  border-radius: var(--border-radius-full);
  position: absolute;
  top: 50%;
  transition: background-color 0.3s var(--easing-cubic);
}
@media (width >= 1040px) {
  .works-other .splide__arrow {
    width: 42px;
    height: 42px;
  }
}
.works-other .splide__arrow svg {
  width: 12px;
  height: 12px;
  fill: var(--color-primary);
  transition: fill 0.3s var(--easing-cubic);
}
.works-other .splide__arrow:focus-visible {
  background-color: var(--color-primary);
}
.works-other .splide__arrow:focus-visible svg {
  fill: var(--color-white);
}
@media (any-hover: none) {
  .works-other .splide__arrow:active {
    background-color: var(--color-primary);
  }
  .works-other .splide__arrow:active svg {
    fill: var(--color-white);
  }
}
@media (any-hover: hover) {
  .works-other .splide__arrow:hover {
    background-color: var(--color-primary);
  }
  .works-other .splide__arrow:hover svg {
    fill: var(--color-white);
  }
}
.works-other .splide__arrow--prev {
  left: 0;
  translate: calc(-100% - 5px) -50%;
  scale: -1 1;
}
@media (width >= 1040px) {
  .works-other .splide__arrow--prev {
    translate: calc(-100% - clamp(10px, -98.5217px + 10.4348vw, 58px)) -50%;
  }
}
.works-other .splide__arrow--next {
  right: 0;
  translate: calc(100% + 5px) -50%;
}
@media (width >= 1040px) {
  .works-other .splide__arrow--next {
    translate: calc(100% + clamp(10px, -98.5217px + 10.4348vw, 58px)) -50%;
  }
}

.notfound .heading {
  margin-block-end: 24px;
}

.history {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin: 0 auto;
}
@media (width >= 768px) {
  .history {
    display: flex;
    flex-direction: row;
  }
}

/* ---- nav ---- */
.history-nav__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  flex-direction: row;
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (width >= 768px) {
  .history-nav__list {
    display: flex;
    flex-direction: column;
  }
}
@media (width >= 520px) {
  .history-nav__list {
    display: flex;
    flex-wrap: wrap;
  }
}

.history-nav__button {
  display: flex;
  justify-content: center;
  align-items: center;
  border: 2px solid #2f6fed;
  border-radius: 30px;
  background-color: #fff;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  color: #2f6fed;
  width: 100%;
  padding: 10px;
}
@media (width >= 520px) {
  .history-nav__button {
    width: 140px;
  }
}
.history-nav__button:hover {
  background-color: #eaf1ff;
}
.history-nav__button:focus-visible {
  outline: 3px solid #ffb400;
  outline-offset: 2px;
}
.history-nav__button--current {
  background-color: #2f6fed !important;
  color: #fff;
}

/* ---- panels ---- */
.history-panels {
  flex: 1;
  background-color: #F4F9FF;
  border-radius: 5px;
  padding: 40px 15px;
}
@media (width >= 768px) {
  .history-panels {
    padding: 50px 35px;
  }
}

.history-panel {
  display: none;
}
.history-panel--current {
  display: block;
}

.history-table {
  width: 100%;
  border-collapse: collapse;
}
.history-table__th, .history-table__td {
  text-align: left;
  padding: 10px 8px;
  border-bottom: 1px solid #888888;
  font-weight: normal;
  vertical-align: top;
}
.history-table__th {
  white-space: nowrap;
  width: 90px;
}
@media (width >= 520px) {
  .history-table__th {
    width: 130px;
  }
}

.history-img {
  text-align: center;
  margin-top: 50px;
}
.history-img img {
  max-width: 100%;
}
.history-img__text {
  margin-top: 10px;
  font-weight: 400;
  font-size: 18px;
}

.u-accessibility-skip {
  position: fixed;
  top: 8px;
  left: -625rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  line-height: 1;
  background-color: var(--color-white);
  color: var(--color-black);
  z-index: 100;
}
.u-accessibility-skip:focus, .u-accessibility-skip:focus-visible {
  left: 8px;
  color: var(--color-primary);
}

.u-accessibility-hidden {
  position: fixed;
  top: 0;
  left: -625rem;
  font-size: 0;
  line-height: 1;
  z-index: 100;
}

.u-accessibility-none {
  display: none;
}

.has-inline-color,
.u-highlight {
  text-decoration-line: underline;
  text-decoration-color: var(--color-yellow);
  text-decoration-thickness: 1rem;
  text-underline-offset: -0.5em;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
  background: none !important;
}

.u-none {
  display: none;
}

@media (width >= 360px) {
  .u-xls-none {
    display: none;
  }
  .u-xls-block {
    display: block;
  }
}
@media (width >= 375px) {
  .u-xs-none {
    display: none;
  }
  .u-xs-block {
    display: block;
  }
}
@media (width >= 440px) {
  .u-sm-none {
    display: none;
  }
  .u-sm-block {
    display: block;
  }
}
@media (width >= 768px) {
  .u-md-none {
    display: none;
  }
  .u-md-block {
    display: block;
  }
}
@media (width >= 1040px) {
  .u-lg-none {
    display: none;
  }
  .u-lg-block {
    display: block;
  }
}
@media (width >= 1440px) {
  .u-xlg-none {
    display: none;
  }
  .u-xlg-block {
    display: block;
  }
}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}/*$vite$:1*/