@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 / 0.3);
}

: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;
}

body {
  background-color: #ffffff;
  color: #605e63;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.7;
  overflow-x: clip;
}

a {
  color: inherit;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

@media (any-hover: hover) {
  a:hover {
    text-decoration: underline;
  }
}

a:focus:not(:focus-visible),
a:active {
  text-decoration: none;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  padding-block-start: 150px;
}

@media (max-width: 1100px) {
  body {
    padding-block-start: calc(65 / 360 * 100vw);
  }
}

:where([id]) {
  scroll-margin-top: 150px;
}

@media (max-width: 1100px) {
  :where([id]) {
    scroll-margin-top: calc(65 / 360 * 100vw);
  }
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background-color: #ffffff;
  height: 150px;
}

@media (max-width: 1100px) {
  .header {
    height: calc(65 / 360 * 100vw);
  }
}

.header-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  height: 100%;
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 50px 20px;
}

@media (max-width: 1100px) {
  .header-inner {
    padding-inline: calc(15 / 360 * 100vw);
  }
}

body.is-resizing .header,
body.is-resizing .header-inner,
body.is-resizing .header-nav {
  transition: none !important;
}

.header-logos {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  flex-basis: fit-content;
}

@media (max-width: 1100px) {
  .header-logos {
    gap: 0;
  }
}

@media (any-hover: hover) {
  .header-logos a {
    transition: opacity 0.3s;
  }

  .header-logos a:hover {
    opacity: 0.7;
  }
}

.header-main-logo {
  display: block;
  max-width: 374px;
}

@media (max-width: 1100px) {
  .header-main-logo {
    width: calc(143 / 360 * 100vw);
  }
}

.header-main-logo img {
  display: block;
  width: 100%;
  height: auto;
}

.header-tagline {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", Meiryo, sans-serif;
  font-size: 13.6px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .header-tagline {
    display: none;
  }
}

.header-nav {
  display: flex;
  align-items: center;
}

@media (max-width: 1100px) {
  .header-nav {
    position: absolute;
    top: calc(65 / 360 * 100vw);
    left: 0;
    right: 0;
    height: calc(100svh - 65 / 360 * 100vw);
    padding-inline: calc(40 / 360 * 100vw);
    padding-block-start: calc(20 / 360 * 100vw);
    padding-block-end: calc(30 / 360 * 100vw);
    flex-direction: column;
    align-items: center;
    background-color: #ffffff;
    border-top: 1px solid #e5e5e5;
    overflow-y: auto;
    overflow-x: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(0);
    transition: opacity 0.35s ease, visibility 0s linear 0.35s, transform 0.35s ease;
  }
  .header-nav.is-panel-open {
    transform: translateX(-100%);
  }
}

@media (max-width: 1100px) {
  body.header-open .header-nav {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.35s ease, visibility 0s linear 0s, transform 0.35s ease;
  }
}

.header-nav-list {
  display: flex;
  align-items: center;
}

@media (max-width: 1100px) {
  .header-nav-list {
    width: 100%;
    max-width: calc(320 / 360 * 100vw);
    margin-inline: auto;
    flex-direction: column;
    gap: 0;
  }
}

@media (max-width: 1100px) {
  .header-nav-item {
    width: 100%;
  }

  .header-nav-item+.header-nav-item {
    border-top: 1px solid #e5e5e5;
  }
}

.header-nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  height: 70px;
  padding-inline: 20px;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", Meiryo, sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
  text-decoration: none;
  white-space: nowrap;
  background-color: #ffffff;
}

@media (max-width: 1100px) {
  .header-nav-link {
    display: flex;
    justify-content: space-between;
    width: 100%;
    min-width: 0;
    height: auto;
    padding-block: calc(16 / 360 * 100vw);
    padding-inline: 0;
    font-size: calc(16 / 360 * 100vw);
    white-space: normal;
  }
}

@media (any-hover: hover) {
  .header-nav-link {
    transition: color 0.3s;
  }

  .header-nav-link:hover {
    color: #ff0000;
  }
}

.header-nav-link--policy {
  display: none;
}
@media (max-width: 1100px) {
  .header-nav-link--policy {
    display: flex;
    font-weight: 400;
    font-size: calc(13 / 360 * 100vw);
    padding-block: calc(12 / 360 * 100vw);
  }
}
.header-nav-link--policy .header-nav-link-icon {
  display: none;
}

@media (max-width: 1100px) {
  .header-nav-item--policy + .header-nav-item--policy {
    border-top: none;
  }
}

@media (max-width: 1100px) {
  .header-nav-item:not(.header-nav-item--policy) + .header-nav-item--policy {
    padding-block-start: calc(20 / 360 * 100vw);
  }
}

.header-menu {
  display: none;
}

@media (max-width: 1100px) {
  .header-menu {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: calc(65 / 360 * 100vw);
    height: calc(65 / 360 * 100vw);
  }
}

.header-menu-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(5 / 360 * 100vw);
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  background-color: #ffffff;
  cursor: pointer;
}

.header-menu-button-line {
  position: relative;
  display: block;
  width: calc(30 / 360 * 100vw);
  height: calc(2 / 360 * 100vw);
  margin-block: calc(8 / 360 * 100vw);
  border-radius: calc(2 / 360 * 100vw);
  background-color: #14326e;
  transition: background-color 0.3s;
}

.header-menu-button-line::before,
.header-menu-button-line::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background-color: #14326e;
  transition: transform 0.3s, top 0.3s;
}

.header-menu-button-line::before {
  top: calc(-8 / 360 * 100vw);
}

.header-menu-button-line::after {
  top: calc(8 / 360 * 100vw);
}

.header-menu-button-label {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", Meiryo, sans-serif;
  font-size: calc(11 / 360 * 100vw);
  font-weight: 700;
  line-height: 1;
  color: #14326e;
}

body.header-open .header-menu-button-line {
  background-color: transparent;
}

body.header-open .header-menu-button-line::before {
  top: 0;
  transform: rotate(-45deg);
}

body.header-open .header-menu-button-line::after {
  top: 0;
  transform: rotate(45deg);
}

body.header-open {
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {

  .header-nav,
  body.header-open .header-nav {
    transition: opacity 0.15s ease, visibility 0s linear 0s;
  }

  .header-menu-button-line,
  .header-menu-button-line::before,
  .header-menu-button-line::after {
    transition: none;
  }
}

.header-nav-link[aria-expanded=true] {
  color: #ff0000;
}

.header-nav-link-icon {
  display: none;
}
@media (max-width: 1100px) {
  .header-nav-link-icon {
    display: block;
    flex: none;
    width: 15px;
    height: 10px;
    transform: rotate(90deg);
  }
}

.header-mega-overlay {
  display: none;
}
@media (min-width: 1101px) {
  .header-mega-overlay {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    z-index: 1;
  }
  .header-mega-overlay.is-visible {
    opacity: 1;
    pointer-events: auto;
  }
}

.header-mega-panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 2;
}
@media (min-width: 1101px) {
  .header-mega-panel {
    background-color: #f4f4f4;
    border-top: 1px solid #e5e5e5;
    box-shadow: 0 16px 32px -12px rgba(0, 0, 0, 0.18);
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
  }
  .header-mega-panel.is-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}
@media (max-width: 1100px) {
  .header-mega-panel {
    height: 100vh;
    background-color: #ffffff;
    border-top: 1px solid #e5e5e5;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    pointer-events: none;
    transition: transform 0.35s ease;
  }
  .header-mega-panel.is-open {
    transform: translateX(0);
    pointer-events: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .header-mega-panel,
  .header-mega-overlay {
    transition: none;
  }
}
@media (min-width: 1101px) {
  .header-mega-panel-inner {
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
    padding: 24px 20px 32px 50px;
  }
}
@media (max-width: 1100px) {
  .header-mega-panel-inner {
    padding: calc(30 / 360 * 100vw) calc(40 / 360 * 100vw) calc(40 / 360 * 100vw);
  }
}

.header-mega-back {
  display: none;
}
@media (max-width: 1100px) {
  .header-mega-back {
    display: inline-flex;
    align-items: center;
    gap: calc(6 / 360 * 100vw);
    margin-block-end: calc(10 / 360 * 100vw);
    padding: 0;
    border: none;
    background: none;
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", Meiryo, sans-serif;
    font-size: calc(14 / 360 * 100vw);
    font-weight: 700;
    color: #605e63;
    cursor: pointer;
  }
  .header-mega-back .header-mega-icon {
    width: 11.25px;
    height: 7.5px;
    transform: rotate(-90deg);
  }
}

.header-mega-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-block-end: 16px;
  margin-block-end: 20px;
  border-bottom: 1px solid #e5e5e5;
}
@media (max-width: 1100px) {
  .header-mega-head {
    gap: calc(16 / 360 * 100vw);
    padding-block: calc(16 / 360 * 100vw);
    padding-inline: 0;
    margin-block-end: 0;
  }
}

.header-mega-crumb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", Meiryo, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #000000;
  text-decoration: none;
}
@media (min-width: 1101px) {
  .header-mega-crumb .header-mega-icon {
    order: -1;
  }
}
@media (max-width: 1100px) {
  .header-mega-crumb {
    font-size: calc(16 / 360 * 100vw);
    width: 100%;
    justify-content: space-between;
  }
}
@media (any-hover: hover) {
  .header-mega-crumb {
    transition: color 0.3s;
  }
  .header-mega-crumb:hover {
    color: #ff0000;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

.header-mega-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid #e5e5e5;
  border-radius: 50%;
  background-color: #ffffff;
  color: #605e63;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
}
@media (max-width: 1100px) {
  .header-mega-close {
    display: none;
  }
}
@media (any-hover: hover) {
  .header-mega-close {
    transition: color 0.3s, border-color 0.3s;
  }
  .header-mega-close:hover {
    color: #ff0000;
    border-color: #ff0000;
  }
}

.header-mega-grid {
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 1101px) {
  .header-mega-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 4px 32px;
  }
}
@media (max-width: 1100px) {
  .header-mega-grid {
    display: flex;
    flex-direction: column;
  }
  .header-mega-grid li + li {
    border-top: 1px solid #e5e5e5;
  }
}

.header-mega-link {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 10px 4px 10px 0;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", Meiryo, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #000000;
  text-decoration: none;
}
@media (min-width: 1101px) {
  .header-mega-link .header-mega-icon {
    order: -1;
  }
}
@media (max-width: 1100px) {
  .header-mega-link {
    width: 100%;
    justify-content: space-between;
    gap: calc(6 / 360 * 100vw);
    padding-block: calc(16 / 360 * 100vw);
    padding-inline: 0;
    font-size: calc(14 / 360 * 100vw);
  }
}
@media (any-hover: hover) {
  .header-mega-link {
    transition: color 0.3s;
  }
  .header-mega-link:hover {
    color: #ff0000;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

.header-mega-icon {
  display: block;
  flex: none;
  width: 15px;
  height: 10px;
  transform: rotate(90deg);
}

.footer {
  background-color: #14326e;
  color: #ffffff;
}

.footer-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .footer-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.footer-inner {
  padding-block: 34px;
  padding-inline: 24px;
}

@media (max-width: 1100px) {
  .footer-inner {
    padding-block: calc(30 / 360 * 100vw) calc(14 / 360 * 100vw);
    padding-inline: calc(22 / 360 * 100vw);
  }
}

.footer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

@media (max-width: 1100px) {
  .footer-top {
    flex-direction: column;
    align-items: center;
    gap: calc(14 / 360 * 100vw);
  }
}

.footer-logo {
  width: 218px;
}

@media (max-width: 1100px) {
  .footer-logo {
    width: calc(143 / 360 * 100vw);
  }
}

.footer-logo img {
  display: block;
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
}

.footer-contact-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 250px;
  height: 50px;
  border: 1px solid #ffffff;
  background-color: transparent;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.25);
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .footer-contact-button {
    width: 100%;
    height: calc(50 / 360 * 100vw);
    font-size: calc(18 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .footer-contact-button {
    transition: opacity 0.3s;
  }

  .footer-contact-button:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

@media (max-width: 1100px) {
  .footer-nav {
    display: none;
  }
}

.footer-nav-columns {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-nav-columns .footer-nav-column:nth-child(3) {
  margin-inline-start: 50px;
}

.footer-nav-columns .footer-nav-column:nth-child(4) {
  margin-inline-start: 20px;
}

.footer-nav-columns .footer-nav-column:nth-child(5) {
  margin-inline-start: 38px;
}

.footer-nav-title {
  font-size: 24px;
  font-weight: 700;
  line-height: normal;
}

.footer-nav-title a {
  color: inherit;
  text-decoration: none;
}

@media (any-hover: hover) {
  .footer-nav-title a {
    transition: opacity 0.3s;
  }

  .footer-nav-title a:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.footer-nav-links {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-block-start: 16px;
  list-style: none;
  padding: 0;
  font-size: 16px;
  line-height: 1.2;
}

.footer-nav-links a {
  color: inherit;
  text-decoration: none;
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
  font-weight: 400;
}

@media (any-hover: hover) {
  .footer-nav-links a {
    transition: opacity 0.3s;
  }

  .footer-nav-links a:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.footer-divider {
  width: 100%;
  height: 1px;
  margin: 0;
  border: none;
  background-color: #ffffff;
}

.footer-divider--pc {
  margin-block: 40px 24px;
}

@media (max-width: 1100px) {
  .footer-divider--pc {
    display: none;
  }
}

.footer-divider--sp {
  display: none;
}

@media (max-width: 1100px) {
  .footer-divider--sp {
    display: block;
  }
}

.footer-offices {
  margin-block-start: 70px;
  display: grid;
  grid-template-columns: 60% 38%;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

@media (max-width: 1100px) {
  .footer-offices {
    margin-block-start: calc(10 / 360 * 100vw);
    display: flex;
    flex-direction: column;
    gap: calc(20 / 360 * 100vw);
  }
}

.footer-office {
  flex-basis: 38%;
}

.footer-office-title {
  font-size: 21px;
  font-weight: 700;
  line-height: normal;
}

@media (max-width: 1100px) {
  .footer-office-title {
    font-size: calc(18 / 360 * 100vw);
  }
}

.footer-office-body {
  margin-block-start: 16px;
  font-size: 16px;
  line-height: 1.2;
  font-weight: 400;
}

@media (max-width: 1100px) {
  .footer-office-body {
    margin-block-start: calc(8 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.footer-tel {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .footer-tel.-color {
    color: #ffffff;
  }
}

.footer-policy-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 20px;
  list-style: none;
  font-size: 14px;
  margin-block-start: 32px;
}

@media (max-width: 1100px) {
  .footer-policy-links {
    display: none;
  }
}

.footer-policy-links a {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: inherit;
  text-decoration: none;
}

@media (any-hover: hover) {
  .footer-policy-links a {
    transition: opacity 0.3s;
  }

  .footer-policy-links a:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.footer-policy-links img {
  display: block;
  width: 15px;
  height: 10px;
  transform: rotate(90deg);
  filter: brightness(0) invert(1);
}

.footer-copyright {
  margin-block-start: 6px;
  font-family: "Inter", "Arial", "Helvetica Neue", sans-serif;
  font-size: 14px;
  line-height: normal;
  color: #ffffff;
}

@media (max-width: 1100px) {
  .footer-copyright {
    display: flex;
    align-items: center;
    height: calc(40 / 360 * 100vw);
    font-family: "Inter", "Arial", "Helvetica Neue", sans-serif;
    font-size: calc(12 / 360 * 100vw);
    line-height: 1.5;
    color: #ffffff;
  }
}

.c-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 32px;
  border-radius: 9999px;
  background-color: #ff0000;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

@media (any-hover: hover) {
  .c-button:hover {
    text-decoration: none;
    opacity: 0.9;
  }
}

.c-link-button {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #14326e;
  text-decoration: none;
  line-height: 1.5;
  padding-block-end: 8px;
}

@media (max-width: 1100px) {
  .c-link-button {
    width: calc(217 / 360 * 100vw);
    min-height: calc(42 / 360 * 100vw);
    padding-block-end: calc(12 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

@media (min-width: 1101px) {
  .c-link-button.-short {
    padding-block-end: 7px;
  }
}

.c-link-button.-light {
  color: #ffffff;
}

.c-link-button.-light::before,
.c-link-button.-light::after {
  background-color: #ffffff;
}

.c-link-button::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 1px;
  background-color: #14326e;
}

@media (max-width: 1100px) {
  .c-link-button::before {
    bottom: calc(8 / 360 * 100vw);
    height: calc(2 / 360 * 100vw);
  }
}

.c-link-button::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 22px;
  height: 2px;
  border-radius: 1px;
  background-color: #14326e;
  transform-origin: right center;
  transform: rotate(45deg);
}

@media (max-width: 1100px) {
  .c-link-button::after {
    bottom: calc(8 / 360 * 100vw);
    width: calc(18 / 360 * 100vw);
    height: calc(2 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .c-link-button {
    transition: opacity 0.3s;
  }

  .c-link-button:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.skip-link {
  position: fixed;
  top: -100px;
  left: 10px;
  z-index: 10000;
  padding: 12px 16px;
  border: 2px solid #14326e;
  border-radius: 4px;
  background-color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  color: #14326e;
  text-decoration: none;
}

.skip-link:focus {
  top: 10px;
}

[data-scroll-obj] {
  --p: 0;
  --ps: min(calc(var(--p) * 2), 1);
  position: absolute;
  pointer-events: none;
  z-index: -1;
}

[data-scroll-obj] svg {
  display: block;
  overflow: visible;
  will-change: transform;
  opacity: calc(1 - max(var(--p) - 0.5, 0) * 1.2);
  transition: transform 0.2s ease-out, opacity 0.2s ease-out;
}

[data-scroll-obj] path {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 0.2s ease-out, fill 0.2s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  [data-scroll-obj] {
    --p: 0 !important;
  }

  [data-scroll-obj] svg,
  [data-scroll-obj] path {
    transition: none;
  }
}

[data-parallax] {
  --pl: 0;
  --parallax-range: 60px;
  position: absolute;
  pointer-events: none;
  z-index: -1;
}

[data-parallax] svg {
  display: block;
  will-change: transform;
  transform: translateY(calc(var(--pl) * var(--parallax-range)));
}

@media (prefers-reduced-motion: reduce) {
  [data-parallax] {
    --pl: 0 !important;
  }
}

.section-heading {
  position: relative;
  padding: 8px 0 0 11px;
}

.section-heading::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 46px;
  background: url("data:image/svg+xml,%3csvg%20viewBox='0%200%2048.004%2046.0012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20id='Vector'%20d='M36.7217%205.03443C46.7917%2011.4544%2051.6117%2022.7944%2044.8917%2032.6944C41.2817%2038.0244%2034.2217%2044.9844%2028.2417%2045.8744C23.1017%2046.6444%2013.5117%2043.7744%208.86173%2040.8144C-1.20827%2034.3944%20-2.57827%2023.6344%204.15173%2013.7344C6.67173%2010.0144%2012.6617%202.70442%2016.5717%201.09442C23.0817%20-1.58558%2030.4317%201.01442%2036.7217%205.02443V5.03443Z'%20fill='%23FFE07D'/%3e%3c/svg%3e") no-repeat center/contain;
}

@media (max-width: 1100px) {
  .section-heading {
    padding: 0;
  }

  .section-heading::before {
    width: calc(33 / 360 * 100vw);
    height: calc(31 / 360 * 100vw);
    top: calc(-6 / 360 * 100vw);
    left: calc(-8 / 360 * 100vw);
  }
}

.section-heading-ja {
  position: relative;
  display: block;
  font-size: 36px;
  font-weight: 700;
  line-height: normal;
  color: #ff0000;
}

@media (max-width: 1100px) {
  .section-heading-ja {
    font-size: calc(25 / 360 * 100vw);
  }
}

.section-heading-en {
  position: relative;
  display: block;
  font-size: 20px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .section-heading-en {
    font-size: calc(14 / 360 * 100vw);
  }
}

.section-heading-note {
  position: relative;
  display: block;
  font-size: 15px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .section-heading-note {
    font-size: calc(11 / 360 * 100vw);
  }
}

.page-hero {
  position: relative;
  max-width: 1280px;
  margin-inline: auto;
  height: 250px;
  overflow: hidden;
}

@media (max-width: 1100px) {
  .page-hero {
    height: calc(160 / 360 * 100vw);
  }
}

.page-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1100px) {
  .page-hero-image {
    position: absolute;
    inset: 0;
    width: auto;
    height: 100%;
    object-fit: cover;
  }
}

.page-hero-titles {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
  height: 100%;
}

@media (max-width: 1100px) {
  .page-hero-titles {
    gap: calc(6 / 360 * 100vw);
  }
}

.page-hero-catch {
  margin-block-start: 56px;
  display: inline-block;
  padding: 2px 10px;
  background-color: #ffffff;
  box-shadow: 0 0 4px #969696;
  font-size: 18px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .page-hero-catch {
    margin-block-start: calc(32 / 360 * 100vw);
    padding: calc(1 / 360 * 100vw) calc(5 / 360 * 100vw) calc(2 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
  }
}

.page-hero-title {
  margin: 0;
  display: inline-block;
  padding: 0 25px;
  background-color: #ffffff;
  box-shadow: 0 0 4px #969696;
  font-size: 45px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .page-hero-title {
    padding: calc(4 / 360 * 100vw) calc(16 / 360 * 100vw);
    font-size: calc(25 / 360 * 100vw);
    line-height: 1.1;
  }
}

.page-hero-en {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1px 30px 3px;
  border-radius: 100px;
  background-color: #ffffff;
  box-shadow: 0 0 4px #969696;
  font-size: 18px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .page-hero-en {
    padding: calc(1 / 360 * 100vw) calc(5 / 360 * 100vw) calc(2 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
  }
}

.scroll-table {
  overflow-x: auto;
  max-width: 100%;
}

.scroll-table img {
  display: block;
  max-width: none;
  height: auto;
}

.scroll-table-inner {
  overflow: visible;
}

.anchor-nav {
  margin-block-start: 60px;
}

@media (max-width: 1100px) {
  .anchor-nav {
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

.anchor-nav-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .anchor-nav-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.anchor-nav-inner {
  max-width: 1280px;
  padding-inline: 10px;
  position: relative;
}

.anchor-nav-list {
  position: relative;
  display: flex;
  padding: 0;
  margin-inline: auto;
}

@media (max-width: 1100px) {
  .anchor-nav-list {
    flex-direction: column;
  }
}

.anchor-nav-item {
  flex: 1 1 0;
}

.anchor-nav-item+.anchor-nav-item {
  border-left: 2px solid #14326e;
}

@media (max-width: 1100px) {
  .anchor-nav-item+.anchor-nav-item {
    margin-block-start: calc(16 / 360 * 100vw);
    padding-block-start: calc(16 / 360 * 100vw);
    border-left: none;
    border-top: 2px solid #14326e;
  }
}

.anchor-nav-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 36px;
  padding-block: 8px;
  padding-inline: 8px;
  color: #14326e;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .anchor-nav-link {
    gap: calc(8 / 360 * 100vw);
    padding-block: calc(4 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .anchor-nav-link {
    transition: opacity 0.3s;
  }

  .anchor-nav-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.anchor-nav-label {
  font-size: 24px;
  font-weight: 700;
  line-height: normal;
  text-align: center;
  color: initial;
}

@media (max-width: 1100px) {
  .anchor-nav-label {
    font-size: calc(18 / 360 * 100vw);
  }
}

.anchor-nav-link img {
  display: block;
  width: 42px;
  height: 22px;
  transform: rotate(180deg);
}

@media (max-width: 1100px) {
  .anchor-nav-link img {
    width: calc(28 / 360 * 100vw);
    height: calc(13 / 360 * 100vw);
  }
}

.u-container {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .u-container {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 1100px) {
  .u-hidden-sp {
    display: none;
  }
}

@media (min-width: 1101px) {
  .u-hidden-pc {
    display: none;
  }
}

[data-fade] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform;
}

[data-fade].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {

  [data-fade],
  [data-fade].is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.news {
  position: relative;
  padding-block-start: 100px;
}

@media (max-width: 1100px) {
  .news {
    padding-block-start: calc(36 / 360 * 100vw);
  }
}

.news-inner {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
  margin-bottom: 100px;
}

@media (max-width: 1100px) {
  .news-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.news-obj1 {
  top: -40px;
  right: 0;
}

.news-obj1 svg {
  width: 54px;
  height: 37px;
  transform: translate(calc(var(--p) * (-12.5vw - 95px)), calc(var(--p) * 30vh)) rotate(calc(var(--p) * -120deg)) scale(calc(1 + var(--p) * 1.2));
}

@media (max-width: 1100px) {
  .news-obj1 svg {
    transform: translate(calc(var(--p) * -20vw), calc(var(--p) * 25vh)) rotate(calc(var(--p) * -120deg)) scale(calc(1 + var(--p) * 0.9));
  }
}

.news-obj1 path:nth-of-type(1) {
  fill: color-mix(in srgb, #e6c3d0 calc((1 - var(--ps)) * 100%), #ffe07d);
  transform: translate(calc(var(--ps) * -6px), calc(var(--ps) * 4px)) scale(calc(1 + var(--ps) * 1.2));
}

.news-obj1 path:nth-of-type(2) {
  fill: color-mix(in srgb, #5ca1cc calc((1 - var(--ps)) * 100%), #ff0000);
  transform: rotate(calc(var(--ps) * 15deg));
}

.news-obj1 path:nth-of-type(3) {
  fill: color-mix(in srgb, #a6a6a6 calc((1 - var(--ps)) * 100%), #14326e);
  transform: rotate(calc(var(--ps) * 360deg)) scale(calc(1 + var(--ps) * 0.8));
}

.news-obj2 {
  bottom: 0;
  left: 0;
}

.news-obj2 svg {
  width: 51px;
  height: 39px;
  transform: translate(calc(var(--p) * 15vw), calc(var(--p) * 22vh)) rotate(calc(var(--p) * 140deg)) scale(calc(1 + var(--p) * 1));
}

@media (max-width: 1100px) {
  .news-obj2 svg {
    transform: translate(calc(var(--p) * 20vw), calc(var(--p) * 18vh)) rotate(calc(var(--p) * 140deg)) scale(calc(1 + var(--p) * 0.7));
  }
}

.news-obj2 path:nth-of-type(1) {
  fill: color-mix(in srgb, #e16916 calc((1 - var(--ps)) * 100%), #ffe07d);
  transform: rotate(calc(var(--ps) * -30deg)) scale(calc(1 + var(--ps) * 0.4));
}

.news-obj2 path:nth-of-type(2) {
  transform: rotate(calc(var(--ps) * 60deg)) scale(calc(1 + var(--ps) * 0.8));
}

.news-obj2 path:nth-of-type(3) {
  fill: color-mix(in srgb, #e6c3d0 calc((1 - var(--ps)) * 100%), #ff0000);
  transform: translate(calc(var(--ps) * 6px), calc(var(--ps) * -8px)) rotate(calc(var(--ps) * -240deg)) skewY(calc(var(--ps) * 20deg)) scale(calc(1 + var(--ps) * 0.6));
}

@media (min-width: 1101px) {
  .news-row {
    display: flex;
    align-items: flex-start;
  }
}

@media (min-width: 1101px) {
  .news-row .section-heading {
    flex: 0 0 240px;
  }
}

.news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 30px;
}

@media (min-width: 1101px) {
  .news-list {
    flex: 1 1 auto;
    margin-block-start: 18px;
  }
}

@media (max-width: 1100px) {
  .news-list {
    margin-block-start: calc(10 / 360 * 100vw);
    gap: calc(20 / 360 * 100vw);
  }
}

.news-item-link {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  color: inherit;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .news-item-link {
    flex-direction: column;
    gap: calc(2 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .news-item-link {
    transition: opacity 0.3s;
  }

  .news-item-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.news-item-date {
  padding-block: 4px;
  font-size: 16px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .news-item-date {
    order: 2;
    padding-block: 0;
    font-size: calc(12 / 360 * 100vw);
  }
}

.news-item-label {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 116px;
  height: 32px;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 700;
  line-height: normal;
  color: #ffffff;
}

@media (max-width: 1100px) {
  .news-item-label {
    order: 1;
    width: calc(67 / 360 * 100vw);
    height: calc(18 / 360 * 100vw);
    border-radius: calc(3 / 360 * 100vw);
    font-size: calc(10 / 360 * 100vw);
  }
}

.news-item-label--event {
  background-color: #D282DC;
}

.news-item-label--social {
  background-color: #64C8A0;
}

.news-item-label--news {
  background-color: #78B4FA;
}

.news-item-title {
  padding-block: 4px;
  font-size: 16px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .news-item-title {
    order: 3;
    padding-block: 0;
    font-size: calc(12 / 360 * 100vw);
  }
}

.news-more {
  margin-block-start: 68px;
  margin-inline: auto;
  width: 284px;
  min-height: 48px;
  font-size: 18px;
}

@media (max-width: 1100px) {
  .news-more {
    font-size: calc(14 / 360 * 100vw);
    width: calc(216 / 360 * 100vw);
    margin-block-start: calc(14 / 360 * 100vw);
  }
}

.about {
  padding-block-start: 108px;
}

@media (max-width: 1100px) {
  .about {
    padding-block-start: calc(60 / 360 * 100vw);
  }
}

.about-inner {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .about-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

@media (min-width: 1101px) {
  .about-inner {
    display: flex;
    align-items: flex-start;
  }
}

.about-obj {
  bottom: 0;
  left: 100px;
}

.about-obj svg {
  width: 74px;
  height: 75px;
  transform: translate(calc(var(--p) * -6vw), calc(var(--p) * 15vh)) rotate(calc(var(--p) * -90deg)) scale(calc(1 + var(--p) * 0.6));
}

@media (max-width: 1100px) {
  .about-obj svg {
    transform: translate(calc(var(--p) * -10vw), calc(var(--p) * 12vh)) rotate(calc(var(--p) * -90deg)) scale(calc(1 + var(--p) * 0.4));
  }
}

.about-obj path:nth-of-type(1) {
  fill: color-mix(in srgb, #5ca1cc calc((1 - var(--ps)) * 100%), #ff0000);
  transform: rotate(calc(var(--ps) * 30deg)) scale(calc(1 - var(--ps) * 0.15));
}

.about-obj path:nth-of-type(2) {
  fill: color-mix(in srgb, #a5cbaf calc((1 - var(--ps)) * 100%), #ffe07d);
  transform: translate(calc(var(--ps) * 14px), calc(var(--ps) * -10px)) scale(calc(1 + var(--ps) * 0.5));
}

.about-obj path:nth-of-type(3) {
  fill: color-mix(in srgb, #e6c3d0 calc((1 - var(--ps)) * 100%), #14326e);
  transform: translate(calc(var(--ps) * -12px), calc(var(--ps) * 10px)) scale(calc(1 + var(--ps) * 0.4));
}

@media (min-width: 1101px) {
  .about-intro {
    flex: 1 1 auto;
  }
}

.about-text {
  margin-block-start: 18px;
  margin-inline-start: 11px;
  font-size: 16px;
  line-height: 1.85;
  color: #000000;
}

@media (max-width: 1100px) {
  .about-text {
    margin-block-start: calc(10 / 360 * 100vw);
    margin-inline-start: 0;
    font-size: calc(12 / 360 * 100vw);
  }
}

.about-cards {
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 1101px) {
  .about-cards {
    margin-block-start: 6px;
    flex: 0 0 552px;
    display: grid;
    grid-template-columns: repeat(2, 256px);
    justify-content: space-between;
    row-gap: 45px;
    align-items: start;
  }
}

@media (max-width: 1100px) {
  .about-cards {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(11 / 360 * 100vw);
    margin-block-start: calc(10 / 360 * 100vw);
  }
}

@media (max-width: 1100px) {
  .about-card {
    width: calc(260 / 360 * 100vw);
  }
}

.about-card-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  color: inherit;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .about-card-link {
    align-items: center;
    gap: 0;
  }
}

@media (any-hover: hover) {
  .about-card-link {
    transition: opacity 0.3s;
  }

  .about-card-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.about-card-button {
  width: 235px;
  height: 50px;
}

@media (max-width: 1100px) {
  .about-card-button {
    width: calc(216 / 360 * 100vw);
  }
}

.about-card-image {
  display: block;
  width: 100%;
  height: auto;
}

.dei {
  position: relative;
  margin-block-start: 100px;
  padding-block-end: 90px;
}

@media (max-width: 1100px) {
  .dei {
    margin-block-start: calc(60 / 360 * 100vw);
    padding-block-end: calc(65 / 360 * 100vw);
  }
}

.dei-bg-obj {
  position: absolute;
  inset-block-start: 80px;
  inset-inline-start: 50%;
  transform: translateX(-50%);
  z-index: -1;
}

.dei-inner {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .dei-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

@media (min-width: 1101px) {
  .dei-inner {
    display: grid;
    grid-template-columns: 606px 1fr;
    grid-template-rows: 268px 1fr;
    grid-template-areas: "images body" "images button";
    align-content: start;
  }
}

.dei-obj {
  bottom: 0;
  right: 100px;
}

.dei-obj svg {
  width: 64px;
  height: 48px;
  transform: translate(calc(var(--p) * 4vw), calc(var(--p) * 18vh)) rotate(calc(var(--p) * 100deg)) scale(calc(1 + var(--p) * 0.7));
}

@media (max-width: 1100px) {
  .dei-obj svg {
    transform: translate(calc(var(--p) * 3vw), calc(var(--p) * 14vh)) rotate(calc(var(--p) * 100deg)) scale(calc(1 + var(--p) * 0.5));
  }
}

.dei-obj path:nth-of-type(1) {
  fill: color-mix(in srgb, #5ca1cc calc((1 - var(--ps)) * 100%), #ffe07d);
  transform: rotate(calc(var(--ps) * -30deg)) scale(calc(1 - var(--ps) * 0.1));
}

.dei-obj path:nth-of-type(2) {
  fill: color-mix(in srgb, #a5cbaf calc((1 - var(--ps)) * 100%), #14326e);
  transform: translate(calc(var(--ps) * -8px), calc(var(--ps) * -10px)) scale(calc(1 + var(--ps) * 0.6));
}

.dei-obj path:nth-of-type(3) {
  fill: color-mix(in srgb, #e6c3d0 calc((1 - var(--ps)) * 100%), #ff0000);
  transform: translate(calc(var(--ps) * 12px), calc(var(--ps) * 6px)) scale(calc(1 + var(--ps) * 0.7));
}

@media (min-width: 1101px) {
  .dei-body {
    grid-area: body;
  }
}

.dei-text {
  margin-block-start: 26px;
  margin-inline-start: 11px;
  font-size: 16px;
  line-height: 1.8;
  color: #000000;
}

@media (max-width: 1100px) {
  .dei-text {
    margin-block-start: calc(10 / 360 * 100vw);
    margin-inline-start: 0;
    font-size: calc(12 / 360 * 100vw);
  }
}

@media (min-width: 1101px) {
  .dei-images {
    grid-area: images;
    display: flex;
    flex-direction: column;
    gap: 39px;
    padding-inline-start: 20px;
    width: 100%;
    max-width: 1000px;
    margin-inline: auto;
    padding-inline: 20px;
  }
}

@media (min-width: 1101px) and (max-width: 1100px) {
  .dei-images {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

@media (max-width: 1100px) {
  .dei-images {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(20 / 360 * 100vw);
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.dei-image-office {
  display: block;
  width: 536px;
  height: auto;
}

@media (max-width: 1100px) {
  .dei-image-office {
    max-inline-size: none;
    width: calc(300 / 360 * 100vw);
  }
}

.dei-station {
  position: relative;
  width: 536px;
}

@media (max-width: 1100px) {
  .dei-station {
    width: calc(300 / 360 * 100vw);
  }
}

.dei-station img {
  display: block;
  width: 100%;
  height: auto;
}

.dei-station-badge {
  position: absolute;
  left: 17px;
  top: 74px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 172px;
  height: 52px;
  padding-inline: 21px;
  border-radius: 50px;
  background-color: #ffe07d;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.3;
  color: #14326e;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .dei-station-badge {
    left: calc(11 / 360 * 100vw);
    top: calc(34 / 360 * 100vw);
    width: calc(148 / 360 * 100vw);
    height: calc(44 / 360 * 100vw);
    padding-inline: calc(12 / 360 * 100vw);
    border-radius: calc(42 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.dei-station-badge-sub {
  display: block;
  font-size: 10px;
}

@media (max-width: 1100px) {
  .dei-station-badge-sub {
    font-size: calc(10 / 360 * 100vw);
  }
}

.dei-more {
  width: 284px;
  min-height: 48px;
}

@media (min-width: 1101px) {
  .dei-more {
    grid-area: button;
    margin-block: 44px auto;
    margin-inline: auto;
  }
}

@media (max-width: 1100px) {
  .dei-more {
    width: calc(216 / 360 * 100vw);
    margin-block-start: calc(16 / 360 * 100vw);
    margin-inline: auto;
  }
}

.recruit {
  position: relative;
  margin-block-start: 10px;
}

@media (max-width: 1100px) {
  .recruit {
    margin-block-start: 0;
  }
}

.recruit-obj {
  bottom: 0;
  left: calc(50% - 480px);
}

.recruit-obj svg {
  width: 53px;
  height: 47px;
  transform: translate(calc(var(--p) * (25vw + 125px)), calc(var(--p) * 10vh)) rotate(calc(var(--p) * 160deg)) scale(calc(1 + var(--p) * 0.7));
}

@media (max-width: 1100px) {
  .recruit-obj svg {
    transform: translate(calc(var(--p) * 36vw), calc(var(--p) * 8vh)) rotate(calc(var(--p) * 160deg)) scale(calc(1 + var(--p) * 0.5));
  }
}

.recruit-obj path:nth-of-type(1) {
  fill: color-mix(in srgb, #e6c3d0 calc((1 - var(--ps)) * 100%), #ff0000);
  transform: scale(calc(1 + var(--ps) * 0.2));
}

.recruit-obj path:nth-of-type(2) {
  fill: color-mix(in srgb, #e16916 calc((1 - var(--ps)) * 100%), #ffe07d);
  transform: scale(calc(1 + var(--ps) * 0.9));
}

.recruit-obj path:nth-of-type(3) {
  fill: color-mix(in srgb, #a5cbaf calc((1 - var(--ps)) * 100%), #14326e);
  transform: scale(calc(1 + var(--ps) * 1));
}

@media (max-width: 1100px) {
  .recruit-obj {
    left: calc(10 / 360 * 100vw);
  }
}

.recruit-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .recruit-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.recruit-visual {
  position: relative;
  display: flex;
  margin-block-start: -5px;
}

@media (min-width: 1101px) {
  .recruit-visual {
    max-width: 920px;
    margin-inline: auto;
    padding-inline: 20px;
  }
}

@media (max-width: 1100px) {
  .recruit-visual {
    flex-direction: column;
    align-items: center;
    margin-block-start: calc(-3 / 360 * 100vw);
  }
}

.recruit-visual img {
  display: block;
  height: auto;
}

@media (max-width: 1100px) {
  .recruit-visual img {
    width: calc(300 / 360 * 100vw);
  }
}

.recruit-box {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 319px;
  height: 237px;
  padding-block-start: 34px;
  background: url("data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20viewBox='0%200%20319%20237'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20id='Vector'%20d='M318.96%20112.922C320.25%20150.414%20290.44%20179.526%20257.63%20203.767C229.711%20224.398%20196.311%20234.699%20155.142%20236.199C113.992%20237.699%2074.1325%20239.089%2044.8728%20220.548C10.4832%20198.757%201.59333%20162.055%200.303342%20124.552C-0.986643%2087.0602%200.443339%2043.1376%2033.253%2018.8962C61.1726%20-1.73507%20105.912%201.72513%20147.072%200.225044C188.221%20-1.27505%20224.591%204.5453%20253.85%2023.0864C288.25%2044.8877%20317.66%2075.4295%20318.95%20112.932L318.96%20112.922Z'%20fill='%23FF0000'/%3e%3c/svg%3e") no-repeat center/100% 100%;
}

@media (max-width: 1100px) {
  .recruit-box {
    width: calc(210 / 360 * 100vw);
    height: calc(134 / 360 * 100vw);
    padding-block-start: calc(16 / 360 * 100vw);
  }
}

.recruit-text {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  color: #ffffff;
  transform: translateX(-10px);
}

@media (max-width: 1100px) {
  .recruit-text {
    font-size: calc(12 / 360 * 100vw);
    line-height: 1.46;
  }
}

.recruit-more {
  width: 162px;
  margin-block-start: 20px;
  transform: translateX(-20px);
}

@media (max-width: 1100px) {
  .recruit-more {
    width: calc(108 / 360 * 100vw);
    transform: translateX(-10px);
    margin-block-start: 0;
    padding-inline-end: 10px;
  }
}

.certs {
  padding-block: 108px 100px;
}

@media (max-width: 1100px) {
  .certs {
    padding-block: calc(70 / 360 * 100vw) calc(55 / 360 * 100vw);
  }
}

.certs-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .certs-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.certs-list {
  display: flex;
  justify-content: space-between;
  list-style: none;
  margin: 30px 0 0;
  padding: 0;
}

@media (max-width: 1100px) {
  .certs-list {
    display: grid;
    grid-template-columns: repeat(2, calc(130 / 360 * 100vw));
    justify-content: center;
    gap: calc(10 / 360 * 100vw);
    margin-block-start: calc(10 / 360 * 100vw);
  }
}

.certs-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 200px;
  height: 138px;
  padding: 12px 10px;
  border: 1px solid #000000;
  background-color: #ffffff;
}

@media (max-width: 1100px) {
  .certs-item {
    width: calc(130 / 360 * 100vw);
    height: calc(174 / 360 * 100vw);
    padding: calc(20 / 360 * 100vw) calc(8 / 360 * 100vw);
  }
}

.certs-item--center {
  justify-content: center;
}

.certs-cert {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.certs-cert+.certs-cert {
  margin-block-start: 8px;
}

@media (max-width: 1100px) {
  .certs-cert {
    gap: calc(7 / 360 * 100vw);
  }

  .certs-cert+.certs-cert {
    margin-block-start: calc(9 / 360 * 100vw);
  }
}

.certs-cert img {
  display: block;
  width: 67px;
  height: auto;
}

@media (max-width: 1100px) {
  .certs-cert img {
    width: calc(67 / 360 * 100vw);
  }
}

.certs-label {
  font-size: 9px;
  font-weight: 700;
  line-height: 1.6;
  color: #000000;
}

@media (max-width: 1100px) {
  .certs-label {
    text-align: center;
    font-size: calc(9 / 360 * 100vw);
  }
}

.certs-note {
  margin-block-start: 6px;
  font-size: 9px;
  font-weight: 400;
  line-height: 1.3;
  text-align: center;
  align-self: baseline;
  color: #000000;
}

@media (max-width: 1100px) {
  .certs-note {
    margin-block-start: calc(6 / 360 * 100vw);
    font-size: calc(9 / 360 * 100vw);
  }
}

.certs-item--intramart img {
  display: block;
  width: 150px;
  height: auto;
  margin-block-start: -2px;
}

@media (max-width: 1100px) {
  .certs-item--intramart img {
    width: calc(99 / 360 * 100vw);
    margin-block-start: 0;
  }
}

.certs-item--intramart .certs-label {
  margin-block-start: 6px;
}

@media (max-width: 1100px) {
  .certs-item--intramart .certs-label {
    margin-block-start: calc(12 / 360 * 100vw);
  }
}

.certs-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100px;
  height: 20px;
  margin-block-start: 8px;
  border: 1px solid #000000;
  border-radius: 50px;
  font-size: 9px;
  font-weight: 700;
  color: #000000;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .certs-pill {
    width: calc(100 / 360 * 100vw);
    height: calc(20 / 360 * 100vw);
    margin-block-start: calc(10 / 360 * 100vw);
    border-radius: calc(50 / 360 * 100vw);
    font-size: calc(9 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .certs-pill {
    transition: opacity 0.3s;
  }

  .certs-pill:hover {
    opacity: 0.6;
    text-decoration: none;
  }
}

.certs-image-monisu {
  display: block;
  width: 136px;
  height: auto;
}

@media (max-width: 1100px) {
  .certs-image-monisu {
    width: calc(105 / 360 * 100vw);
  }
}

.certs-image-kenko {
  display: block;
  width: auto;
  height: 100%;
}

@media (max-width: 1100px) {
  .certs-image-kenko {
    width: calc(127 / 360 * 100vw);
    height: auto;
  }
}

.hero {
  background-color: #ffffff;
}

.hero-slider {
  position: relative;
  margin-inline: auto;
  padding-block-end: 38px;
}

@media (max-width: 1100px) {
  .hero-slider {
    padding-block-end: calc(25 / 360 * 100vw);
  }
}

.hero-slider .splide__slide picture,
.hero-slider .splide__slide img {
  display: block;
  width: 100%;
}

.hero-slider .splide__slide img {
  height: auto;
  aspect-ratio: 1280/500;
  object-fit: cover;
}

@media (max-width: 1100px) {
  .hero-slider .splide__slide img {
    aspect-ratio: 360/440;
  }
}

.hero-slider .splide__arrow {
  position: absolute;
  z-index: 1;
  top: calc(50% - 19px);
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  cursor: pointer;
}

.hero-slider .splide__arrow svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: #ff0000;
}

@media (any-hover: hover) {
  .hero-slider .splide__arrow {
    transition: opacity 0.3s;
  }

  .hero-slider .splide__arrow:hover {
    opacity: 0.7;
  }
}

@media (max-width: 1100px) {
  .hero-slider .splide__arrow {
    top: calc(50% - 25 / 360 * 100vw / 2);
    width: calc(36 / 360 * 100vw);
    height: calc(36 / 360 * 100vw);
  }

  .hero-slider .splide__arrow svg {
    width: calc(14 / 360 * 100vw);
    height: calc(14 / 360 * 100vw);
  }
}

.hero-slider .splide__arrow--prev {
  left: 16px;
}

.hero-slider .splide__arrow--prev svg {
  transform: scaleX(-1);
}

@media (max-width: 1100px) {
  .hero-slider .splide__arrow--prev {
    left: calc(10 / 360 * 100vw);
  }
}

.hero-slider .splide__arrow--next {
  right: 16px;
}

@media (max-width: 1100px) {
  .hero-slider .splide__arrow--next {
    right: calc(10 / 360 * 100vw);
  }
}

.hero-slider .splide__pagination {
  position: absolute;
  bottom: 7px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 1100px) {
  .hero-slider .splide__pagination {
    bottom: calc((25 / 360 * 100vw - 24 / 360 * 100vw) / 2);
  }
}

.hero-slider .splide__pagination__page {
  position: relative;
  display: block;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.hero-slider .splide__pagination__page::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: rgba(255, 0, 0, 0.3);
  transition: background-color 0.3s;
}

.hero-slider .splide__pagination__page.is-active::before {
  background-color: #ff0000;
}

@media (max-width: 1100px) {
  .hero-slider .splide__pagination__page {
    width: calc(24 / 360 * 100vw);
    height: calc(24 / 360 * 100vw);
  }

  .hero-slider .splide__pagination__page::before {
    width: calc(12 / 360 * 100vw);
    height: calc(12 / 360 * 100vw);
  }
}

.hero-slider .splide__toggle {
  position: absolute;
  bottom: 7px;
  right: calc(50% - 100px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  color: #ff0000;
  cursor: pointer;
}

.hero-slider .splide__toggle svg {
  display: block;
  width: 16px;
  height: 16px;
}

@media (any-hover: hover) {
  .hero-slider .splide__toggle {
    transition: opacity 0.3s;
  }

  .hero-slider .splide__toggle:hover {
    opacity: 0.7;
  }
}

@media (max-width: 1100px) {
  .hero-slider .splide__toggle {
    bottom: calc((25 / 360 * 100vw - 20 / 360 * 100vw) / 2);
    right: calc(50% - 80 / 360 * 100vw);
    width: calc(20 / 360 * 100vw);
    height: calc(20 / 360 * 100vw);
  }

  .hero-slider .splide__toggle svg {
    width: calc(14 / 360 * 100vw);
    height: calc(14 / 360 * 100vw);
  }
}

.hero-slider .splide__toggle:not(.is-active) .splide__toggle__pause {
  display: none;
}

.breadcrumb {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .breadcrumb {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.breadcrumb {
  padding-block: 10px 15px;
}

@media (max-width: 1100px) {
  .breadcrumb {
    padding-block: calc(8 / 360 * 100vw);
  }
}

.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 13px;
  font-weight: bold;
  line-height: 1.5;
  color: #333;
}

@media (max-width: 1100px) {
  .breadcrumb-list {
    font-size: calc(11 / 360 * 100vw);
  }
}

.breadcrumb-list li+li::before {
  content: ">";
  margin-inline: 8px;
}

@media (max-width: 1100px) {
  .breadcrumb-list li+li::before {
    margin-inline: calc(6 / 360 * 100vw);
  }
}

.breadcrumb-list a {
  color: #14326e;
  text-decoration: underline;
  transition: opacity 0.3s;
}

@media (any-hover: hover) {
  .breadcrumb-list a:hover {
    opacity: 0.7;
    text-decoration: underline;
  }
}

.lineup {
  margin-block-start: 60px;
}

@media (max-width: 1100px) {
  .lineup {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.lineup-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .lineup-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.lineup-inner {
  position: relative;
}

.lineup-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  height: 45px;
  margin-inline: auto;
  border-radius: 50px;
  background-color: #ff0000;
  font-family: "Inter", "Arial", "Helvetica Neue", sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: #ffffff;
}

@media (max-width: 1100px) {
  .lineup-label {
    width: calc(266 / 360 * 100vw);
    height: calc(32 / 360 * 100vw);
    border-radius: calc(50 / 360 * 100vw);
    font-size: calc(16 / 360 * 100vw);
  }
}

.lineup-list {
  display: flex;
  margin-block-start: 12px;
  list-style: none;
  padding: 0;
}

@media (max-width: 1100px) {
  .lineup-list {
    flex-direction: column;
    margin-block-start: 0;
  }
}

.lineup-item {
  flex: 1 1 0;
}

.lineup-item+.lineup-item {
  border-left: 1px solid #14326e;
}

@media (max-width: 1100px) {
  .lineup-item+.lineup-item {
    margin-block-start: calc(16 / 360 * 100vw);
    border-left: none;
    border-top: 1px solid #14326e;
  }
}

.lineup-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 100%;
  padding: 10px 14px 0px;
  color: #000000;
  text-decoration: none;
}


@media (max-width: 1100px) {
  .lineup-link {
    height: auto;
    gap: calc(8 / 360 * 100vw);
    padding-block: calc(20 / 360 * 100vw) 0;
  }
}

@media (any-hover: hover) {
  .lineup-link {
    transition: opacity 0.3s;
  }

  .lineup-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.lineup-link-label {
  display: flex;
  align-items: center;
  min-height: 70px;
  /*margin-block-start: auto;*/
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

@media (max-width: 1100px) {
  .lineup-link-label {
    min-height: 0;
    font-size: calc(16 / 360 * 100vw);
  }
}

.lineup-link-note {
  font-size: 14px;
  text-align: center;
}

.lineup-link img {
  display: block;
  width: 40px;
  height: 18px;
  transform: rotate(180deg);
}

@media (max-width: 1100px) {
  .lineup-link img {
    width: calc(28 / 360 * 100vw);
    height: calc(13 / 360 * 100vw);
  }
}

.service-section {
  margin-block-start: 100px;
}

.service-section+.service-section {
  margin-block-start: 150px;
}

.service-section:last-of-type {
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .service-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }

  .service-section+.service-section {
    margin-block-start: calc(70 / 360 * 100vw);
  }

  .service-section:last-of-type {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.service-section-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .service-section-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.service-section-inner {
  position: relative;
}

.service-section-lead {
  margin-block-start: 24px;
  margin-inline-start: 18px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .service-section-lead {
    margin-block-start: calc(12 / 360 * 100vw);
    margin-inline-start: calc(7 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
  }
}

.service-section-subtitle {
  margin-block-start: 30px;
  margin-inline-start: 18px;
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
}

@media (max-width: 1100px) {
  .service-section-subtitle {
    margin-block-start: calc(16 / 360 * 100vw);
    margin-inline-start: calc(7 / 360 * 100vw);
    font-size: calc(16 / 360 * 100vw);
  }
}

.service-section-body {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin-block-start: 18px;
  margin-inline-start: 18px;
}

@media (max-width: 1100px) {
  .service-section-body {
    flex-direction: column;
    align-items: center;
    gap: calc(16 / 360 * 100vw);
    margin-block-start: calc(12 / 360 * 100vw);
    margin-inline-start: calc(7 / 360 * 100vw);
  }
}

.service-section-text {
  flex: 0 0 446px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .service-section-text {
    flex: none;
    width: 100%;
    font-size: calc(12 / 360 * 100vw);
  }
}

.service-section-list {
  list-style: none;
  margin: 1.875em 0 0;
  padding: 0;
}

.service-section-list--no-gap {
  margin-block-start: 0;
}

.service-section-image {
  display: block;
  width: 480px;
  height: auto;
}

@media (max-width: 1100px) {
  .service-section-image {
    width: calc(300 / 360 * 100vw);
  }
}

.service-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .service-deco {
    display: none;
  }
}

.service-case {
  margin-block-start: 120px;
}

.service-case+.service-case {
  margin-block-start: 150px;
}

.service-case:last-of-type {
  margin-block-end: 150px;
}

@media (max-width: 1100px) {
  .service-case {
    margin-block-start: calc(44 / 360 * 100vw);
  }

  .service-case+.service-case {
    margin-block-start: calc(92 / 360 * 100vw);
  }

  .service-case:last-of-type {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.service-case-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .service-case-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.service-case-inner {
  position: relative;
}

.service-case-label {
  position: relative;
  font-size: 18px;
  font-weight: 500;
  line-height: normal;
  color: #ff0000;
}

.service-case-label::before {
  content: "";
  position: absolute;
  top: -28px;
  left: -25px;
  width: 82px;
  height: 79px;
  background: url("data:image/svg+xml,%3csvg%20viewBox='0%200%2082%2079'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20id='Vector'%20d='M62.7277%208.64586C79.9292%2019.6712%2088.1627%2039.146%2076.6837%2056.1477C70.5171%2065.3012%2058.4573%2077.2539%2048.2423%2078.7824C39.4622%2080.1047%2023.0806%2075.1759%2015.1375%2070.0926C-2.06395%2059.0672%20-4.40417%2040.5885%207.09195%2023.5868C11.3966%2017.1983%2021.6287%204.64444%2028.3077%201.87951C39.428%20-2.72298%2051.9832%201.74212%2062.7277%208.62869V8.64586Z'%20fill='%23FFE07D'/%3e%3c/svg%3e") no-repeat center/contain;
}

.service-case-label span {
  position: relative;
}

@media (max-width: 1100px) {
  .service-case-label {
    font-size: calc(16 / 360 * 100vw);
  }

  .service-case-label::before {
    top: calc(-12 / 360 * 100vw);
    left: calc(-18 / 360 * 100vw);
    width: calc(66 / 360 * 100vw);
    height: calc(60 / 360 * 100vw);
  }
}

.service-case-title {
  position: relative;
  font-size: 28px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .service-case-title {
    margin-block-start: calc(2 / 360 * 100vw);
    font-size: calc(25 / 360 * 100vw);
  }
}

.service-case-divider {
  margin-block: 10px 0;
  border: none;
  border-top: 1px solid #000000;
}

@media (max-width: 1100px) {
  .service-case-divider {
    margin-block-start: calc(12 / 360 * 100vw);
  }
}

.service-case-lead {
  margin-block-start: 12px;
  font-size: 16px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .service-case-lead {
    margin-block-start: calc(12 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
    line-height: 1.6;
  }
}

.voice-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 31px;
  min-height: 295px;
  margin-block-start: 36px;
  padding: 55px 50px;
  border: 1px solid #000000;
  border-radius: 20px;
  background-color: #ffffff;
  overflow: hidden;
}

@media (max-width: 1100px) {
  .voice-card {
    flex-direction: column;
    gap: calc(14 / 360 * 100vw);
    min-height: 0;
    margin-block-start: calc(20 / 360 * 100vw);
    padding: calc(24 / 360 * 100vw) calc(30 / 360 * 100vw) 0;
    border-radius: calc(24 / 360 * 100vw);
  }
}

.voice-intro {
  flex: 0 0 330px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 19px;
}

@media (max-width: 1100px) {
  .voice-intro {
    flex: none;
    width: 100%;
    gap: calc(12 / 360 * 100vw);
  }
}

.voice-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 40px;
  border-radius: 30px;
  background-color: #14326e;
  font-size: 28px;
  font-weight: 700;
  line-height: normal;
  color: #ffffff;
}

@media (max-width: 1100px) {
  .voice-pill {
    width: 100%;
    padding: calc(2 / 360 * 100vw);
    border-radius: calc(20 / 360 * 100vw);
    font-size: calc(20 / 360 * 100vw);
  }
}

.voice-comment {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.67;
  text-align: center;
  color: #000000;
}

@media (max-width: 1100px) {
  .voice-comment {
    line-height: 1.4;
    font-size: calc(12 / 360 * 100vw);
  }
}

.voice-line {
  flex: 0 0 auto;
  width: 1px;
  height: 182px;
  background-color: #000000;
}

@media (max-width: 1100px) {
  .voice-line {
    width: 100%;
    height: 1px;
  }
}

.voice-answer {
  flex: 0 0 279px;
  font-size: 18px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .voice-answer {
    flex: none;
    width: 100%;
    font-size: calc(12 / 360 * 100vw);
  }
}

.voice-photo {
  position: absolute;
  right: 42px;
  bottom: -10px;
  width: 252px;
  height: auto;
}

@media (max-width: 1100px) {
  .voice-photo {
    position: static;
    width: calc(140 / 360 * 100vw);
    margin-block-start: calc(4 / 360 * 100vw);
  }
}

.service-case-solution {
  margin-block-start: 40px;
}

@media (max-width: 1100px) {
  .service-case-solution {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.service-case-heading {
  font-size: 24px;
  font-weight: 700;
  line-height: normal;
  text-align: center;
  color: #ff0000;
}

@media (max-width: 1100px) {
  .service-case-heading {
    font-size: calc(20 / 360 * 100vw);
  }
}

.service-case-solution-text {
  margin-block-start: 5px;
  font-size: 20px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .service-case-solution-text {
    margin-block-start: calc(6 / 360 * 100vw);
    font-size: calc(16 / 360 * 100vw);
    line-height: 1.4;
  }
}

.service-case-arrow {
  display: block;
  width: 34px;
  height: 29px;
  margin: 20px auto 0;
}

@media (max-width: 1100px) {
  .service-case-arrow {
    width: calc(40 / 360 * 100vw);
    height: calc(30 / 360 * 100vw);
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

.service-case-effect {
  margin-block-start: 25px;
}

@media (max-width: 1100px) {
  .service-case-effect {
    margin-block-start: calc(18 / 360 * 100vw);
  }
}

.service-case-effect-list {
  margin: 15px 0 0;
  padding: 0;
  list-style: none;
  font-size: 18px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
}

.service-case-effect-list li+li {
  margin-block-start: 1em;
}

@media (max-width: 1100px) {
  .service-case-effect-list {
    margin-block-start: calc(8 / 360 * 100vw);
    font-size: calc(16 / 360 * 100vw);
    line-height: 1.4;
  }

  .service-case-effect-list li+li {
    margin-block-start: calc(26 / 360 * 100vw);
  }
}

.service-deco--sys1 {
  top: -4px;
  left: 924px;
  --parallax-range: 100px;
}

.service-deco--sys2 {
  top: -70px;
  left: 20px;
  --parallax-range: -70px;
}

.service-deco--sys3 {
  top: -107px;
  left: 179px;
  --parallax-range: 80px;
}

.service-deco--sys4 {
  top: -81px;
  left: 818px;
  --parallax-range: -60px;
}

.service-deco--sys5 {
  top: 400px;
  left: 49px;
  --parallax-range: 120px;
}

@media (max-width: 1100px) {
  .service-deco-sp .service-deco {
    display: block;
  }
}

@media (max-width: 1100px) {
  .service-deco-sp .service-deco--sys1 {
    top: 10px;
    right: 10px;
    left: auto;
  }
}

@media (max-width: 1100px) {
  .service-deco-sp .service-deco--sys3 {
    top: -20px;
    left: 270px;
  }
}

@media (max-width: 1100px) {
  .service-deco-sp .service-deco--sys5 {
    left: 20px;
  }
}

.service-deco--net2 {
  top: -90px;
  left: 20px;
  --parallax-range: -70px;
}

.service-deco--net3 {
  top: -41px;
  left: 863px;
  --parallax-range: 100px;
}

.service-deco--net4 {
  top: 793px;
  left: -62px;
  --parallax-range: -60px;
}

.service-deco--net5 {
  top: 841px;
  left: 957px;
  --parallax-range: 80px;
}

/* ======================================================
   service/oa/ 背景装飾の有機体SVG (Figma "BK"レイヤー, node 2:1518)
   SVG自体は既存の.service-deco--sys1/sys2/sys3/sys4/sys5と同一アセット(有機体1/2/3/5/6)を再利用し、
   位置指定のみoaページのFigma座標に合わせて.service-deco--oa1〜oa5として新規定義する。
   left/top/bottomは.service-section-inner・.lineup-inner(いずれもmax-width:1000px、
   box左端はページ中央基準でx=140px相当)を基準とするローカル値。
   ====================================================== */

/* 有機体1: SERVICE LINE-UP右上 (Figma abs x=1064,y=501 → セクション開始より4px上) */
.service-deco--oa1 {
  top: -4px;
  left: 924px;
  --parallax-range: 100px;
}

/* 有機体2: 文書電子化セクション開始前 (Figma abs x=160,y=735 → セクション開始より70px上) */
.service-deco--oa2 {
  top: -70px;
  left: 20px;
  --parallax-range: -70px;
}

/* 有機体3: 文書電子化セクション下端をまたぐ (Figma abs x=319,y=1136 → セクション下端から5px下) */
.service-deco--oa3 {
  bottom: -80px;
  left: 179px;
  --parallax-range: 80px;
}

/* 有機体5: 名刺制作セクション開始前 (Figma abs x=970,y=1657 → セクション開始より104px上) */
.service-deco--oa4 {
  top: -104px;
  left: 830px;
  --parallax-range: -60px;
}

/* 有機体6: 名刺制作セクション下端をまたぐ (Figma abs x=189,y=2059 → セクション下端から38px下) */
.service-deco--oa5 {
  bottom: -85px;
  left: 49px;
  --parallax-range: 120px;
}

.corporate-nav {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

/* ======================================================
   corporate/movie/ 背景装飾の有機体SVG (Figma "BK"レイヤー, node 2001:19750)
   SVG自体はservice/oa/等と同一アセット(有機体1/2/5/6)を再利用し、位置指定のみ新規定義する。
   .corporate-navはcorporate/index.html等でも共有されるため、position:relativeは
   movieページ専用の.corporate-nav--movie修飾子に持たせる。
   left/topは.corporate-nav(max-width:1000px、box左端はページ中央基準でx=140px相当)基準のローカル値。
   Figma上にSP版フレームが存在しないため、SPでは非表示にする。
   ====================================================== */

.corporate-nav--movie {
  position: relative;
}

.corporate-nav-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .corporate-nav-deco {
    display: none;
  }
}

/* 有機体1: コンテンツ右上、動画ボックスと隙間を空けて浮かせる。
   Figma上の静的座標は abs x=1064,y=464 (コンテンツ開始より41px上) だが、
   data-parallaxの初期表示(スクロール前でもビューポート内位置に応じて下方向へずれる仕様)により
   実測でボックスに接触するため、実ブラウザのファーストビュー(800px想定)で隙間が残るよう
   -70pxまで余白を追加している */
.corporate-nav-deco--1 {
  top: -70px;
  left: 924px;
  --parallax-range: 100px;
}

/* 有機体2: 「輝くひととき」サムネイル左上外 (Figma abs x=160,y=1106 → コンテンツ開始より601px下) */
.corporate-nav-deco--2 {
  top: 601px;
  left: 20px;
  --parallax-range: -70px;
}

/* 有機体5: 「未来の働く姿」サムネイル右下外 (Figma abs x=1033,y=1121 → コンテンツ開始より616px下) */
.corporate-nav-deco--5 {
  top: 616px;
  left: 893px;
  --parallax-range: -60px;
}

/* 有機体6: 「合理的配慮を踏まえた環境」サムネイル左上外 (Figma abs x=614,y=764 → コンテンツ開始より259px下) */
.corporate-nav-deco--6 {
  top: 259px;
  left: 474px;
  --parallax-range: 120px;
}

@media (max-width: 1100px) {
  .corporate-nav {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.corporate-nav {
  margin-block: 83px 120px;
}

@media (max-width: 1100px) {
  .corporate-nav {
    margin-block: calc(30 / 360 * 100vw) calc(60 / 360 * 100vw);
  }
}

.corporate-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  row-gap: 80px;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (max-width: 1100px) {
  .corporate-list {
    flex-direction: column;
    align-items: center;
    row-gap: calc(54 / 360 * 100vw);
  }
}

.corporate-item {
  position: relative;
  width: 440px;
}

@media (max-width: 1100px) {
  .corporate-item {
    width: calc(270 / 360 * 100vw);
  }
}

/* 項目数が奇数のとき、先頭の1項目だけを単独行にして中央寄せにする (PCのみ。
   SPは元々1カラムで全項目が中央寄せのため対応不要) */
@media (min-width: 1101px) {
  .corporate-item:first-child:nth-last-child(odd) {
    flex-basis: 100%;
  }

  .corporate-item:first-child:nth-last-child(odd) .corporate-item-link {
    width: 440px;
    margin-inline: auto;
  }
}

.corporate-item-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .corporate-item-link {
    gap: calc(8 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .corporate-item-link {
    transition: opacity 0.3s;
  }

  .corporate-item-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.corporate-item-image {
  display: block;
  width: 100%;
  height: auto;
}

.corporate-item-title {
  font-size: 24px;
  font-weight: 700;
  line-height: normal;
  text-align: center;
  color: #14326e;
}

@media (max-width: 1100px) {
  .corporate-item-title {
    font-size: calc(20 / 360 * 100vw);
  }
}

@media (max-width: 1100px) {
  .corporate-deco svg {
    height: auto;
  }
}

@media (max-width: 1100px) {
  .corporate-deco--pc {
    display: none;
  }
}

.corporate-deco--sp {
  display: none;
}

@media (max-width: 1100px) {
  .corporate-deco--sp {
    display: block;
  }
}

.corporate-item:nth-child(6n+1) .corporate-deco--pc {
  right: -20px;
  bottom: -6px;
  --parallax-range: 100px;
}

.corporate-item:nth-child(6n+2) .corporate-deco--pc {
  top: -42px;
  right: -30px;
  --parallax-range: -70px;
}

.corporate-item:nth-child(6n+3) .corporate-deco--pc {
  bottom: -10px;
  left: -30px;
  --parallax-range: 80px;
}

.corporate-item:nth-child(6n+4) .corporate-deco--pc {
  right: -50px;
  bottom: 30px;
  --parallax-range: -60px;
}

.corporate-item:nth-child(6n+6) .corporate-deco--pc {
  right: -10px;
  bottom: -45px;
  --parallax-range: -70px;
}

.corporate-deco--sp-organic1 {
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .corporate-deco--sp-organic1 {
    right: calc(-33 / 360 * 100vw);
    bottom: calc(-27 / 360 * 100vw);
  }

  .corporate-deco--sp-organic1 svg {
    width: calc(74 / 360 * 100vw);
  }
}

.corporate-deco--sp-dots {
  --parallax-range: 40px;
}

@media (max-width: 1100px) {
  .corporate-deco--sp-dots {
    top: calc(22 / 360 * 100vw);
    right: calc(-3 / 360 * 100vw);
  }

  .corporate-deco--sp-dots svg {
    width: calc(20 / 360 * 100vw);
  }
}

.corporate-deco--sp-pentagon {
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .corporate-deco--sp-pentagon {
    bottom: calc(-34 / 360 * 100vw);
    left: 0;
  }

  .corporate-deco--sp-pentagon svg {
    width: calc(23 / 360 * 100vw);
  }
}

.corporate-deco--sp-organic2 {
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .corporate-deco--sp-organic2 {
    right: calc(-21 / 360 * 100vw);
    bottom: calc(-40 / 360 * 100vw);
  }

  .corporate-deco--sp-organic2 svg {
    width: calc(38 / 360 * 100vw);
  }
}

.outline-section {
  margin-block-start: 100px;
}

.outline-section:last-of-type {
  margin-block: 70px 102px;
}

@media (max-width: 1100px) {
  .outline-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }

  .outline-section:last-of-type {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.outline-section-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .outline-section-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.outline-section-inner {
  position: relative;
}

#overview dt {
  font-weight: 400;
}

.outline-dl {
  margin: 20px 0 0;
}

@media (max-width: 1100px) {
  .outline-dl {
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

.outline-dl-row {
  display: flex;
  align-items: flex-start;
  gap: 160px;
  padding-block: 32px 36px;
  border-top: 1px solid #000000;
}

@media (max-width: 1100px) {
  .outline-dl-row {
    flex-direction: column;
    gap: calc(8 / 360 * 100vw);
    padding-block: calc(16 / 360 * 100vw);
  }
}

.outline-dl-term {
  flex: 0 0 160px;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.2;
  color: #14326e;
}

@media (max-width: 1100px) {
  .outline-dl-term {
    flex: none;
    font-size: calc(18 / 360 * 100vw);
  }
}

.outline-dl-desc {
  flex: 0 0 640px;
  font-size: 16px;
  line-height: 1.2;
  color: #000000;
}

@media (max-width: 1100px) {
  .outline-dl-desc {
    flex: none;
    width: 100%;
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

@media (max-width: 1100px) {
  .outline-dl-desc--table {
    font-size: calc(14 / 360 * 100vw);
  }
}

.outline-dl-desc--table dl .row {
  display: flex;
  gap: 0.5em;
}

@media (max-width: 1100px) {
  .outline-dl-desc--table dl .row {
    flex-direction: column;
    gap: 0;
  }

  .outline-dl-desc--table dl .row+.row {
    margin-block-start: 0.5em;
  }
}

.outline-dl-desc--table-list {
  margin-block-start: 4px;
}

.outline-dl-desc--table-item+.outline-dl-desc--table-item {
  margin-block-start: 4px;
}

.outline-dl-desc--table-item ul {
  position: relative;
  margin-block-start: 4px;
  padding-inline-start: 6em;
}

@media (max-width: 1100px) {
  .outline-dl-desc--table-item ul {
    padding-inline-start: 3.1em;
  }
}

.outline-dl-desc--table-item ul::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 5em;
  transform: translateY(-50%);
  width: 9px;
  height: 58px;
  background: url(../images/corporate/icon_list-line.png) no-repeat center center/auto 100%;
}

@media (max-width: 1100px) {
  .outline-dl-desc--table-item ul::before {
    left: 2em;
    width: calc(10 / 360 * 100vw);
    height: calc(40 / 360 * 100vw);
  }
}

@media (max-width: 1100px) {
  .outline-dl-desc--table-item .small {
    font-size: calc(13 / 360 * 100vw);
  }
}

.outline-dl-sub {
  display: flex;
  gap: 1.7em;
  line-height: 1.5;
}

@media (max-width: 1100px) {
  .outline-dl-sub {
    gap: 0.4em;
  }

  .outline-dl-sub>.outline-dl-strong {
    min-width: 2.6em;
  }
}

.outline-dl-strong {
  font-weight: 700;
  min-width: 2.5em;
}

@media (max-width: 1100px) {
  .outline-dl-strong {
    min-width: 6em;
  }
}

.access-block {
  position: relative;
  margin-block-start: 48px;
}

@media (max-width: 1100px) {
  .access-block {
    margin-block-start: calc(36 / 360 * 100vw);
  }
}

.access-block+.access-block {
  margin-block-start: 110px;
}

.access-block-title {
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
  transform: translateX(-10px);
}

@media (max-width: 1100px) {
  .access-block-title {
    font-size: calc(18 / 360 * 100vw);
  }
}

.access-map {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 960px;
  max-width: 100%;
  height: 400px;
  margin-block-start: 12px;
  background-color: #e6e6e6;
}

@media (max-width: 1100px) {
  .access-map {
    width: 100%;
    height: calc(200 / 360 * 100vw);
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

.access-map iframe {
  width: 100%;
  height: 100%;
}

.access-map-label {
  font-size: 32px;
  font-weight: 500;
  line-height: normal;
  color: #605e63;
}

@media (max-width: 1100px) {
  .access-map-label {
    font-size: calc(18 / 360 * 100vw);
  }
}

.access-dl {
  margin-block-start: 12px;
}

@media (max-width: 1100px) {
  .access-dl {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.access-dl-row {
  display: flex;
  align-items: flex-start;
  gap: 160px;
  padding-block: 40px;
}

@media (max-width: 1100px) {
  .access-dl-row {
    flex-direction: column;
    gap: calc(8 / 360 * 100vw);
    padding-block: calc(16 / 360 * 100vw);
  }
}

.access-dl-row+.access-dl-row {
  border-top: 1px solid #000000;
}

.access-dl-term {
  flex: 0 0 160px;
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
  color: #14326e;
}

@media (max-width: 1100px) {
  .access-dl-term {
    flex: none;
    font-size: calc(18 / 360 * 100vw);
  }
}

.access-dl-desc {
  flex: 0 0 640px;
  font-size: 16px;
  line-height: 1.2;
  color: #000000;
}

@media (max-width: 1100px) {
  .access-dl-desc {
    flex: none;
    width: 100%;
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.access-tel {
  color: inherit;
  text-decoration: none;
}

.access-route-title {
  font-weight: 700;
}

.access-route-title+.access-route-list {
  margin-block-start: 0;
}

.access-route-title:not(:first-child) {
  margin-block-start: 1em;
}

.access-route-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.access-route-list li {
  padding-inline-start: 1em;
  text-indent: -1em;
}

.access-route-list+.access-route-title {
  margin-top: 26px;
}

.access-route-note {
  margin-block-start: 16px;
}

.access-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  height: 48px;
  margin: 28px auto 0;
  border: 2px solid #14326e;
  border-radius: 50px;
  background-color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .access-button {
    width: calc(280 / 360 * 100vw);
    height: calc(48 / 360 * 100vw);
    margin-block-start: calc(24 / 360 * 100vw);
    border-radius: calc(50 / 360 * 100vw);
    font-size: calc(16 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .access-button {
    transition: opacity 0.3s;
  }

  .access-button:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.outline-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .outline-deco svg {
    width: auto;
    height: auto;
  }
}

.outline-deco--1 {
  top: 22px;
  right: calc(50% - 480px);
  --parallax-range: 100px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--1 {
    top: calc(-2 / 360 * 100vw);
    right: calc(6 / 360 * 100vw);
  }

  .outline-deco--1 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.outline-deco--2 {
  top: -84px;
  left: 21px;
  --parallax-range: -70px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--2 {
    top: calc(-46 / 360 * 100vw);
    left: calc(4 / 360 * 100vw);
  }

  .outline-deco--2 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.outline-deco--3 {
  top: 410px;
  right: 24px;
  --parallax-range: 80px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--3 {
    top: calc(430 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .outline-deco--3 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.outline-deco--4 {
  bottom: -20px;
  left: 115px;
  --parallax-range: -60px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--4 {
    bottom: calc(-30 / 360 * 100vw);
    left: calc(60 / 360 * 100vw);
  }

  .outline-deco--4 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.outline-deco--5 {
  top: 180px;
  right: 94px;
  z-index: 0;
  --parallax-range: 90px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--5 {
    top: calc(120 / 360 * 100vw);
    right: calc(20 / 360 * 100vw);
  }

  .outline-deco--5 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.outline-deco--6 {
  top: -51px;
  left: 151px;
  --parallax-range: 80px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--6 {
    top: calc(-30 / 360 * 100vw);
    left: calc(120 / 360 * 100vw);
  }

  .outline-deco--6 svg {
    width: calc(54 / 360 * 100vw);
  }
}

.outline-deco--7 {
  top: 175px;
  right: 104px;
  z-index: 0;
  --parallax-range: -70px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--7 {
    top: calc(100 / 360 * 100vw);
    right: calc(24 / 360 * 100vw);
  }

  .outline-deco--7 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.outline-deco--8 {
  top: 477px;
  right: 53px;
  --parallax-range: 70px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--8 {
    top: calc(560 / 360 * 100vw);
    right: calc(8 / 360 * 100vw);
  }

  .outline-deco--8 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.outline-deco--9 {
  bottom: -25px;
  right: 0;
  --parallax-range: -60px;
  z-index: -1;
}

@media (max-width: 1100px) {
  .outline-deco--9 {
    bottom: calc(-46 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .outline-deco--9 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.career-lead-section {
  margin-block-start: 60px;
}

@media (max-width: 1100px) {
  .career-lead-section {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.career-lead-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .career-lead-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.career-lead-inner {
  max-width: 946px;
}

.career-lead {
  font-size: 25px;
  font-weight: 500;
  line-height: 1.8;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .career-lead {
    text-align: left;
    font-size: calc(16 / 360 * 100vw);
    line-height: 1.8;
  }
}

.career-section {
  margin-block-start: 100px;
}

.career-section--last {
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .career-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }

  .career-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.career-section-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .career-section-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.career-section-inner {
  position: relative;
}

.career-sub-section {
  margin-block-start: 69px;
}

.career-body {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
  padding-inline-start: 10px;
  margin-block-start: 20px;
}

@media (max-width: 1100px) {
  .career-body {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.career-sub-heading {
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
}

@media (max-width: 1100px) {
  .career-sub-heading {
    font-size: calc(20 / 360 * 100vw);
  }
}

.career-sub-heading+.career-body {
  margin-block-start: 20px;
  padding-inline: 0;
}

@media (max-width: 1100px) {
  .career-sub-heading+.career-body {
    margin-block-start: calc(14 / 360 * 100vw);
  }
}

.career-jinzai {
  margin-block-start: 30px;
}

.career-jinzai::after {
  content: "";
  display: block;
  clear: both;
}

@media (max-width: 1100px) {
  .career-jinzai {
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

.career-media-slot {
  float: right;
  width: 500px;
  height: 270px;
  margin-inline-start: 30px;
  margin-block-start: -72px;
  transform: translateX(10px);
}

@media (max-width: 1100px) {
  .career-media-slot {
    float: none;
    width: 100%;
    height: auto;
    margin: 20px 0;
    transform: 0;
  }
}

.oa-block {
  margin-block-start: 30px;
}

.oa-block::after {
  content: "";
  display: block;
  clear: both;
}

@media (max-width: 1100px) {
  .oa-block {
    display: flex;
    flex-direction: column;
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

.oa-block-photo {
  float: right;
  width: 500px;
  height: 270px;
  margin-inline-start: 30px;
  margin-block-start: -72px;
  transform: translateX(10px);
}

@media (max-width: 1100px) {
  .oa-block-photo {
    order: 1;
    float: none;
    width: auto;
    height: auto;
    margin-inline-start: 0;
    margin-block-start: calc(20 / 360 * 100vw);
    transform: none;
  }
}

.oa-block-body {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
  padding-inline-start: 10px;
  margin-block-start: 20px;
}

@media (max-width: 1100px) {
  .oa-block-body {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.career-section .scroll-table {
  margin-block-start: 20px;
  max-width: none;
  margin-inline: calc(50% - 50vw);
  padding-inline-start: calc(50vw - 50%);
  display: flex;
  align-items: flex-start;
}

.career-section .scroll-table img {
  flex-shrink: 0;
}

.career-section .scroll-table::after {
  content: "";
  flex: 0 0 40px;
}

@media (max-width: 1100px) {
  .career-section .scroll-table {
    margin-block-start: calc(20 / 360 * 100vw);
  }

  .career-section .scroll-table::after {
    flex-basis: calc(20 / 360 * 100vw);
  }
}

.career-table img {
  width: 960px;
}

.career-organization img {
  width: 939px;
}

@media (min-width: 1101px) {
  .career-develop {
    position: relative;
  }
}

@media (max-width: 1100px) {
  .career-develop {
    display: flex;
    flex-direction: column;
  }
}

.career-develop::after {
  content: "";
  display: block;
  clear: both;
}

@media (min-width: 1101px) {
  .career-develop-main {
    float: left;
  }
}

@media (min-width: 1101px) {
  .career-develop-block {
    max-width: 380px;
  }
}

.career-develop-block+.career-develop-block {
  margin-block-start: 44px;
}

@media (max-width: 1100px) {
  .career-develop-block+.career-develop-block {
    margin-block-start: calc(36 / 360 * 100vw);
  }
}

.career-develop-block--full {
  max-width: none;
}

@media (min-width: 1101px) {
  .career-develop-block--full {
    clear: left;
    padding-block-start: 50px;
  }
}

@media (max-width: 1100px) {
  .career-develop-block--full {
    margin-block-start: calc(36 / 360 * 100vw);
  }
}

.career-box {
  width: 474px;
  padding: 21px;
  border: 2px solid #14326e;
  border-top-right-radius: 20px;
  border-bottom-left-radius: 20px;
}

@media (min-width: 1101px) {
  .career-box {
    float: right;
    margin-block-start: 26px;
  }
}

@media (max-width: 1100px) {
  .career-box {
    width: 100%;
    order: 1;
    margin-block-start: calc(36 / 360 * 100vw);
    padding: calc(20 / 360 * 100vw);
    border-top-right-radius: calc(20 / 360 * 100vw);
    border-bottom-left-radius: calc(20 / 360 * 100vw);
  }
}

.career-box-item+.career-box-item {
  margin-block-start: 24px;
}

@media (max-width: 1100px) {
  .career-box-item+.career-box-item {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.career-box-title {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  color: initial;
}

@media (max-width: 1100px) {
  .career-box-title {
    font-size: calc(18 / 360 * 100vw);
  }
}

.career-box-body {
  margin-block-start: 4px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .career-box-body {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.career-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .career-deco svg {
    width: auto;
    height: auto;
  }
}

.career-deco--1 {
  top: 228px;
  right: 20px;
  --parallax-range: 90px;
}

@media (max-width: 1100px) {
  .career-deco--1 {
    top: calc(60 / 360 * 100vw);
    right: calc(8 / 360 * 100vw);
  }

  .career-deco--1 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.career-deco--2 {
  top: 244px;
  left: -70px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .career-deco--2 {
    top: calc(-8 / 360 * 100vw);
    left: calc(4 / 360 * 100vw);
  }

  .career-deco--2 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.career-deco--3 {
  bottom: -110px;
  right: -26px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .career-deco--3 {
    bottom: calc(-20 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .career-deco--3 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.career-deco--4 {
  top: 110px;
  left: -95px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .career-deco--4 {
    top: calc(-20 / 360 * 100vw);
    left: calc(4 / 360 * 100vw);
  }

  .career-deco--4 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.career-deco--5 {
  top: 270px;
  left: -100px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .career-deco--5 {
    top: calc(30 / 360 * 100vw);
    left: calc(4 / 360 * 100vw);
  }

  .career-deco--5 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.visit-section {
  margin-block-start: 100px;
}

.visit-section--last {
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .visit-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }

  .visit-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.visit-section-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .visit-section-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.visit-heading-wrap {
  position: relative;
}

@media (max-width: 1100px) {
  .visit-heading-wrap {
    padding-inline-start: calc(12 / 360 * 100vw);
  }
}

.visit-heading-deco {
  position: absolute;
  top: -35px;
  left: -27px;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .visit-heading-deco {
    top: calc(-20 / 360 * 100vw);
    left: calc(-14 / 360 * 100vw);
    width: calc(56 / 360 * 100vw);
    height: auto;
  }
}

.visit-heading {
  position: relative;
  font-size: 36px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: -0.72px;
  color: #ff0000;
}

@media (max-width: 1100px) {
  .visit-heading {
    font-size: calc(26 / 360 * 100vw);
    letter-spacing: 0;
  }
}

.visit-body {
  margin-block-start: 40px;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.55;
  color: #222;
}

@media (max-width: 1100px) {
  .visit-body {
    margin-block-start: calc(24 / 360 * 100vw);
    font-size: calc(15 / 360 * 100vw);
    line-height: 1.8;
  }
}

.visit-images {
  display: flex;
  justify-content: space-between;
  gap: 92px;
  margin-block-start: 40px;
}

@media (max-width: 1100px) {
  .visit-images {
    flex-direction: column;
    gap: calc(16 / 360 * 100vw);
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

.visit-images img {
  flex: 1 1 0;
  width: 434px;
  height: 288px;
  object-fit: cover;
}

@media (max-width: 1100px) {
  .visit-images img {
    width: 100%;
    height: auto;
    border-radius: calc(10 / 360 * 100vw);
  }
}

.visit-apply {
  margin-block-start: 40px;
  text-align: center;
}

@media (max-width: 1100px) {
  .visit-apply {
    margin-block-start: calc(28 / 360 * 100vw);
  }
}

.visit-apply-lead {
  font-size: 25px;
  font-weight: 700;
  line-height: 1.12;
  color: #222;
}

@media (max-width: 1100px) {
  .visit-apply-lead {
    font-size: calc(20 / 360 * 100vw);
  }
}

.visit-apply-address {
  display: inline-block;
  margin-block-start: 10px;
  border-bottom: 2px solid #b2b2b2;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  color: #222;
}

@media (max-width: 1100px) {
  .visit-apply-address {
    margin-block-start: calc(10 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.visit-apply-address--blue {
  border-bottom-color: #00ace9;
}

.visit-apply-address--green {
  border-bottom-color: #9aca24;
}

.visit-apply-mail {
  font-size: 19px;
  font-weight: 700;
  color: inherit;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .visit-apply-mail {
    font-size: calc(15 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .visit-apply-mail {
    transition: opacity 0.3s;
  }

  .visit-apply-mail:hover {
    opacity: 0.7;
    text-decoration: underline;
  }
}

.recruit-lead {
  position: relative;
  margin-block-start: 58px;
}

@media (max-width: 1100px) {
  .recruit-lead {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.recruit-lead-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .recruit-lead-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.recruit-lead-inner {
  max-width: 1200px;
  position: relative;
}

.recruit-lead-heading {
  display: flex;
  justify-content: center;
}

.recruit-lead-heading .section-heading-ja {
  text-align: center;
}

.recruit-lead-heading::before {
  left: 260px;
}

@media (max-width: 1100px) {
  .recruit-lead-heading {
    padding-inline-start: calc(8 / 360 * 100vw);
  }

  .recruit-lead-heading::before {
    left: 20px;
  }
}

.recruit-lead-body {
  margin-block-start: 34px;
  font-size: 25px;
  font-weight: 500;
  line-height: 1.8;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .recruit-lead-body {
    margin-block-start: calc(20 / 360 * 100vw);
    text-align: left;
    font-size: calc(16 / 360 * 100vw);
    line-height: 1.8;
  }
}

@media (min-width: 1101px) {
  .recruit-lead-cta {
    text-align: right;
  }
}

@media (max-width: 1100px) {
  .recruit-lead-cta {
    margin-block-start: calc(24 / 360 * 100vw);
    text-align: center;
  }
}

.recruit-lead-cta--floating {
  position: sticky;
  width: fit-content;
  margin-inline-start: auto;
  margin-inline-end: 64px;
  bottom: 30px;
  z-index: 100;
  margin-block: 0 30px;
}

@media (max-width: 1100px) {
  .recruit-lead-cta--floating {
    margin-inline-end: calc(16 / 360 * 100vw);
    bottom: calc(16 / 360 * 100vw);
    margin-block: 0 calc(16 / 360 * 100vw);
  }
}

.recruit-pill-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 170px;
  min-height: 78px;
  padding: 10px;
  border: 2px solid #14326e;
  border-radius: 50px;
  background-color: #ffffff;
  box-shadow: 0 4px 2px rgba(0, 0, 0, 0.25);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  color: #14326e;
  text-align: center;
  text-decoration: none;
}

@media (any-hover: hover) {
  .recruit-pill-button {
    transition: opacity 0.3s;
  }

  .recruit-pill-button:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

@media (max-width: 1100px) {
  .recruit-pill-button {
    width: calc(320 / 360 * 100vw);
    min-height: calc(52 / 360 * 100vw);
    border-radius: calc(50 / 360 * 100vw);
    font-size: calc(16 / 360 * 100vw);
  }
}

.recruit-section {
  margin-block-start: 60px;
}

.recruit-section--last {
  margin-block-end: 100px;
}

.recruit-section+.recruit-section {
  margin-block-start: 90px;
}

@media (max-width: 1100px) {
  .recruit-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }

  .recruit-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.recruit-section-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .recruit-section-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.recruit-section-inner {
  position: relative;
}

.recruit-heading {
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
}

@media (max-width: 1100px) {
  .recruit-heading {
    font-size: calc(20 / 360 * 100vw);
  }
}

.recruit-members {
  display: grid;
  grid-template-columns: repeat(4, 222px);
  gap: 15px 19px;
  margin-block-start: 20px;
  list-style: none;
  padding: 0;
}

@media (max-width: 1100px) {
  .recruit-members {
    display: flex;
    flex-wrap: wrap;
    gap: calc(24 / 360 * 100vw) calc(15 / 360 * 100vw);
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

.recruit-member {
  width: auto;
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  row-gap: 0;
}

@media (max-width: 1100px) {
  .recruit-member {
    display: block;
    width: calc((100% - calc(15 / 360 * 100vw)) / 2);
  }
}

.recruit-member-link {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  row-gap: 0;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .recruit-member-link {
    display: block;
    width: 100%;
  }
}

@media (any-hover: hover) {
  .recruit-member-link {
    transition: opacity 0.3s;
  }

  .recruit-member-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.recruit-member-catch {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  padding-inline: 10px;
  margin-block-end: 20px;
  color: #000000;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

@media (max-width: 1100px) {
  .recruit-member-catch {
    margin-block-end: calc(10 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}



.recruit-member-photo {
  display: block;
  width: 100%;
  aspect-ratio: 222/136;
  height: auto;
  border-radius: 6px;
  object-fit: cover;
}

@media (min-width: 1101px) {
  .recruit-member-photo {
    align-self: start;
  }
}


@media (max-width: 1100px) {
  .recruit-member-photo {
    border-radius: calc(6 / 360 * 100vw);
  }
}

.recruit-member-photo--placeholder {
  background-color: #b2b2b2;
}

.recruit-member-name {
  margin-block-start: 12px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  padding-inline: 10px;
  color: #000000;
}

@media (max-width: 1100px) {
  .recruit-member-name {
    margin-block-start: calc(8 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.recruit-member-dept {
  padding-inline: 10px;
  margin-block-start: 12px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: #000000;
}

@media (max-width: 1100px) {
  .recruit-member-dept {
    margin-block-start: calc(6 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
  }
}

.recruit-data-list {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  margin-block-start: 22px;
  list-style: none;
  padding: 0;
}

@media (max-width: 1100px) {
  .recruit-data-list {
    gap: calc(16 / 360 * 100vw);
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.recruit-data-item {
  width: 300px;
  padding: 12px 35px 18px;
  background-color: #f0f0f0;
}

@media (max-width: 1100px) {
  .recruit-data-item {
    width: calc((100% - calc(16 / 360 * 100vw)) / 2);
    padding: calc(12 / 360 * 100vw) calc(8 / 360 * 100vw);
  }
}

.recruit-data-label {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.375;
  text-align: center;
  color: #3c3c3c;
}

@media (min-width: 1101px) {
  .recruit-data-label {
    white-space: nowrap;
    letter-spacing: -0.02em;
  }
}

@media (max-width: 1100px) {
  .recruit-data-label {
    font-size: calc(12 / 360 * 100vw);
    min-height: calc(calc(12 / 360 * 100vw) * 1.375 * 2);
  }
}

.recruit-data-value {
  margin-block-start: 12px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.28;
  text-align: center;
  color: #ff0000;
}

@media (max-width: 1100px) {
  .recruit-data-value {
    margin-block-start: calc(6 / 360 * 100vw);
    font-size: calc(24 / 360 * 100vw);
  }
}

.recruit-data-illust {
  margin-block-start: 18px;
  text-align: center;
  height: 140px;
  overflow: hidden;
}

@media (max-width: 1100px) {
  .recruit-data-illust {
    margin-block-start: calc(10 / 360 * 100vw);
    height: auto;
  }
}

.recruit-data-illust img {
  display: block;
  margin-inline: auto;
}

.recruit-info-note {
  margin-block-start: 2px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: #000000;
}

@media (max-width: 1100px) {
  .recruit-info-note {
    margin-block-start: calc(14 / 360 * 100vw);
    font-size: calc(13 / 360 * 100vw);
  }
}

.recruit-policy {
  margin-block-start: 25px;
  height: 267px;
  overflow-y: scroll;
  background-color: #ffffff;
  box-shadow: inset 3px 3px 3px rgba(0, 0, 0, 0.25);
}

@supports not selector(::-webkit-scrollbar) {
  .recruit-policy {
    scrollbar-width: auto;
    scrollbar-color: #b2b2b2 #f0f0f0;
  }
}

.recruit-policy::-webkit-scrollbar {
  width: 16px;
  -webkit-appearance: none;
  appearance: none;
}

.recruit-policy::-webkit-scrollbar-track {
  background-color: #f0f0f0;
  box-shadow: inset 0 4px 4px rgba(0, 0, 0, 0.25);
}

.recruit-policy::-webkit-scrollbar-thumb {
  background-color: #b2b2b2;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.3);
}

@media (max-width: 1100px) {
  .recruit-policy {
    margin-block-start: calc(12 / 360 * 100vw);
    height: calc(280 / 360 * 100vw);
  }
}

.recruit-policy-inner {
  padding: 16px 20px;
}

@media (max-width: 1100px) {
  .recruit-policy-inner {
    padding: calc(16 / 360 * 100vw) calc(20 / 360 * 100vw);
  }
}

.recruit-policy-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  color: #000000;
}

@media (max-width: 1100px) {
  .recruit-policy-title {
    font-size: calc(15 / 360 * 100vw);
  }
}

.recruit-policy-subtitle {
  margin-block-start: 20px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  color: #000000;
}

@media (max-width: 1100px) {
  .recruit-policy-subtitle {
    margin-block-start: calc(16 / 360 * 100vw);
    font-size: calc(13 / 360 * 100vw);
  }
}

.recruit-policy-body {
  margin-block-start: 6px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  color: #000000;
}

@media (max-width: 1100px) {
  .recruit-policy-body {
    font-size: calc(13 / 360 * 100vw);
  }
}

.recruit-policy-ul {
  margin-block-start: 6px;
  padding-inline-start: 1.2em;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  color: #000000;
}

.recruit-policy-ul li+li {
  margin-block-start: 4px;
}

@media (max-width: 1100px) {
  .recruit-policy-ul {
    font-size: calc(13 / 360 * 100vw);
  }
}

.recruit-consent {
  margin-block-start: 30px;
  text-align: center;
}

.recruit-consent-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 420px;
  min-height: 70px;
  padding: 12px 24px;
  margin-bottom: 12px;
  border: none;
  border-radius: 8px;
  background-color: #b2b2b2;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  color: #ffffff;
  text-align: center;
  cursor: not-allowed;
  transition: background-color 0.3s ease;
}

.recruit-consent-button.is-active {
  background-color: #ff0000;
  cursor: pointer;
}

@media (any-hover: hover) {
  .recruit-consent-button.is-active:hover {
    opacity: 0.8;
  }
}

@media (max-width: 1100px) {
  .recruit-consent {
    margin-block-start: calc(24 / 360 * 100vw);
  }

  .recruit-consent-button {
    max-width: none;
    min-height: calc(60 / 360 * 100vw);
    padding: calc(10 / 360 * 100vw) calc(20 / 360 * 100vw);
    border-radius: calc(8 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.recruit-info-cta {
  margin-block-start: 40px;
  text-align: center;
}

@media (max-width: 1100px) {
  .recruit-info-cta {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.recruit-info-cta-link {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}

@media (any-hover: hover) {
  .recruit-info-cta-link {
    transition: opacity 0.3s;
  }

  .recruit-info-cta-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }

  .recruit-info-cta-link:hover .recruit-info-cta-title {
    text-decoration: underline;
  }
}

@media (max-width: 1100px) {
  .recruit-info-cta-link {
    gap: calc(6 / 360 * 100vw);
  }
}

.recruit-info-cta-title {
  font-size: 18px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
}

@media (max-width: 1100px) {
  .recruit-info-cta-title {
    font-size: calc(16 / 360 * 100vw);
  }
}

.recruit-info-cta-note {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  color: #000000;
}

@media (max-width: 1100px) {
  .recruit-info-cta-note {
    font-size: calc(12 / 360 * 100vw);
  }
}

.recruit-info-cta-underline {
  text-decoration: underline;
}

.recruit-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .recruit-deco svg {
    width: auto;
    height: auto;
  }
}

.recruit-deco--1 {
  top: 333px;
  left: calc(50% - 480px);
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .recruit-deco--1 {
    top: calc(150 / 360 * 100vw);
    left: calc(4 / 360 * 100vw);
  }

  .recruit-deco--1 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.recruit-deco--6 {
  top: 5px;
  right: calc(50% - 478px);
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .recruit-deco--6 {
    top: calc(-10 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .recruit-deco--6 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.recruit-deco--2 {
  top: 410px;
  right: -76px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .recruit-deco--2 {
    top: calc(160 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .recruit-deco--2 svg {
    width: calc(52 / 360 * 100vw);
  }
}

.recruit-deco--3 {
  top: 400px;
  right: 119px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .recruit-deco--3 {
    top: calc(220 / 360 * 100vw);
    right: calc(20 / 360 * 100vw);
  }

  .recruit-deco--3 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.recruit-deco--4 {
  top: 799px;
  right: -67px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .recruit-deco--4 {
    bottom: calc(-20 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .recruit-deco--4 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.page-hero--member .page-hero-image {
  object-position: center 30%;
}

.member-intro {
  margin-block-start: 61px;
}

@media (max-width: 1100px) {
  .member-intro {
    margin-block-start: 0;
  }
}

.member-intro-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .member-intro-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.member-intro-inner {
  position: relative;
  display: flex;
  gap: 40px;
}

@media (max-width: 1100px) {
  .member-intro-inner {
    flex-direction: column;
    align-items: stretch;
    gap: calc(18 / 360 * 100vw);
  }
}

.member-intro-photo {
  flex-shrink: 0;
  width: 450px;
}

.member-intro-photo img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 1100px) {
  .member-intro-photo {
    order: 2;
    width: 100%;
    max-width: calc(270 / 360 * 100vw);
    margin-inline: auto;
  }
}

.member-intro-head {
  flex: 1 0 0;
  min-width: 0;
  margin-block-start: 56px;
}

@media (max-width: 1100px) {
  .member-intro-head {
    order: 1;
    margin-block-start: calc(36 / 360 * 100vw);
  }
}

.member-catch {
  position: relative;
  z-index: 0;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.4;
  color: #ff0000;
}

@media (max-width: 1100px) {
  .member-catch {
    font-size: calc(25 / 360 * 100vw);
    line-height: 1.12;
  }
}

.member-catch-deco {
  position: absolute;
  top: -8px;
  left: -8px;
  z-index: -1;
  width: 48px;
  height: 46px;
}

.member-catch-deco svg {
  display: block;
  width: 100%;
  height: 100%;
}

@media (max-width: 1100px) {
  .member-catch-deco {
    top: calc(-6 / 360 * 100vw);
    left: calc(-6 / 360 * 100vw);
    width: calc(33 / 360 * 100vw);
    height: calc(31 / 360 * 100vw);
  }
}

.member-profile {
  margin-block-start: 30px;
  padding-inline-start: 6px;
}

@media (max-width: 1100px) {
  .member-profile {
    margin-block-start: calc(12 / 360 * 100vw);
    padding-inline-start: 0;
  }
}

.member-profile-dept {
  display: block;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: #000000;
}

@media (max-width: 1100px) {
  .member-profile-dept {
    font-size: calc(10 / 360 * 100vw);
  }
}

.member-profile-name {
  display: block;
  margin-block-start: 4px;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.4;
  color: #000000;
}

@media (max-width: 1100px) {
  .member-profile-name {
    margin-block-start: 0;
    font-size: calc(12 / 360 * 100vw);
    line-height: 2;
  }
}

.member-qa {
  margin-block-start: 62px;
}

@media (max-width: 1100px) {
  .member-qa {
    margin-block-start: calc(60 / 360 * 100vw);
  }
}

.member-qa-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .member-qa-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.member-qa-inner {
  position: relative;
}

.member-q {
  display: flex;
  gap: 30px;
  margin-block-start: 100px;
}

@media (max-width: 1100px) {
  .member-q {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.member-q--photo-first {
  flex-direction: row-reverse;
}

.member-q--text-first {
  flex-direction: row;
}

.member-q--text-only {
  display: block;
}

@media (max-width: 1100px) {
  .member-q {
    display: block;
  }

  .member-q+.member-q {
    margin-block-start: 58px;
  }
}

.member-q-body {
  flex: 1 0 0;
  min-width: 0;
}

.member-q-title {
  font-size: 25px;
  font-weight: 700;
  line-height: 1.4;
  color: #14326e;
}

@media (max-width: 1100px) {
  .member-q-title {
    font-size: calc(20 / 360 * 100vw);
    line-height: 1.35;
    padding-inline-start: 1em;
    text-indent: -1.6em;
  }
}

.member-q-title.-nowrap {
  white-space: nowrap;
}

.member-q-text {
  margin-block-start: 20px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
}

.member-q-text+.member-q-text {
  margin-block-start: 1.875em;
}

@media (max-width: 1100px) {
  .member-q-text {
    margin-block-start: calc(14 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
    line-height: 1.667;
    padding-inline-start: 7px;
  }

  .member-q-text+.member-q-text {
    margin-block-start: calc(10 / 360 * 100vw);
  }
}

.member-q-photo {
  flex-shrink: 0;
  width: 430px;
}

.member-q-photo img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 1100px) {
  .member-q-photo {
    width: calc(270 / 360 * 100vw);
    max-width: 100%;
    margin-block-start: calc(15 / 360 * 100vw);
    margin-inline: auto;
  }
}

.member-schedule {
  margin-block-start: 100px;
}

@media (max-width: 1100px) {
  .member-schedule {
    margin-block-start: calc(56 / 360 * 100vw);
  }
}

.member-schedule-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .member-schedule-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.member-schedule-inner {
  position: relative;
  display: flex;
  justify-content: center;
}

.member-schedule-box {
  width: 720px;
  border: 2px solid #14326e;
  border-top-right-radius: 20px;
  border-bottom-left-radius: 20px;
  overflow: hidden;
}

@media (max-width: 1100px) {
  .member-schedule-box {
    width: calc(270 / 360 * 100vw);
    border-top-right-radius: calc(20 / 360 * 100vw);
    border-bottom-left-radius: calc(20 / 360 * 100vw);
  }
}

.member-schedule-title {
  padding: 13px 40px;
  background-color: #14326e;
  border-top-right-radius: 18px;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.2;
  color: #ffffff;
  text-align: center;
}

@media (max-width: 1100px) {
  .member-schedule-title {
    padding: calc(5 / 360 * 100vw) calc(20 / 360 * 100vw);
    border-top-right-radius: calc(18 / 360 * 100vw);
    font-size: calc(20 / 360 * 100vw);
    line-height: 1.5;
  }
}

.member-schedule-body {
  padding-block: 20px 30px;
  padding-inline: 36px;
}

@media (max-width: 1100px) {
  .member-schedule-body {
    padding: calc(13 / 360 * 100vw) calc(18 / 360 * 100vw);
  }
}

.member-schedule-body p {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .member-schedule-body p {
    font-size: calc(12 / 360 * 100vw);
    line-height: 1.667;
  }
}

.member-schedule-body strong {
  display: inline-block;
  margin-block-start: 30px;
}

.member-schedule-body > p:first-child strong {
  margin-top: 0;
}

@media (max-width: 1100px) {
  .member-schedule-body strong {
    margin-block-start: calc(10 / 360 * 100vw);
  }

  .member-schedule-body > p:first-child strong {
    margin-top: 0;
  }
}

.member-schedule-item+.member-schedule-item {
  margin-block-start: 30px;
}

@media (max-width: 1100px) {
  .member-schedule-item+.member-schedule-item {
    margin-block-start: calc(10 / 360 * 100vw);
  }
}

.member-schedule-time {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .member-schedule-time {
    font-size: calc(12 / 360 * 100vw);
    line-height: 1.667;
  }
}

.member-schedule-desc {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .member-schedule-desc {
    font-size: calc(12 / 360 * 100vw);
    line-height: 1.667;
  }
}

.member-message {
  margin-block-start: 100px;
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .member-message {
    margin-block: calc(50 / 360 * 100vw);
  }
}

.member-message-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .member-message-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.member-message-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 680px;
}

@media (max-width: 1100px) {
  .member-message-inner {
    max-width: none;
  }
}

.member-message-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 340px;
  max-width: 100%;
  padding: 12px;
  border: 2px solid #ff0000;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  font-size: 25px;
  font-weight: 700;
  line-height: 1.2;
  color: #ff0000;
  text-align: center;
}

@media (max-width: 1100px) {
  .member-message-title {
    width: calc(270 / 360 * 100vw);
    padding: calc(7 / 360 * 100vw) calc(20 / 360 * 100vw);
    border-bottom-left-radius: calc(20 / 360 * 100vw);
    border-bottom-right-radius: calc(20 / 360 * 100vw);
    font-size: calc(20 / 360 * 100vw);
  }
}

.member-message-body {
  margin-block-start: 20px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
}

.member-message-body+.member-message-body {
  margin-block-start: 1.875em;
}

@media (max-width: 1100px) {
  .member-message-body {
    margin-block-start: calc(12 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
    line-height: 1.667;
  }
}

.member-deco {
  position: absolute;
  pointer-events: none;
}

.member-deco svg {
  display: block;
}

@media (max-width: 1100px) {
  .member-deco svg {
    width: auto;
    height: auto;
  }
}

.member-deco--1 {
  top: -5px;
  right: 22px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .member-deco--1 {
    top: calc(124 / 360 * 100vw);
    right: calc(45 / 360 * 100vw);
  }

  .member-deco--1 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.member-deco--2 {
  top: 627px;
  left: 179px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .member-deco--2 {
    top: calc(2062 / 360 * 100vw);
    right: calc(20 / 360 * 100vw);
  }

  .member-deco--2 svg {
    width: calc(45 / 360 * 100vw);
  }
}

.member-deco--3 {
  top: 1016px;
  right: 119px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .member-deco--3 {
    top: calc(1251 / 360 * 100vw);
    left: calc(10 / 360 * 100vw);
  }

  .member-deco--3 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.member-deco--4 {
  top: 1476px;
  left: 49px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .member-deco--4 {
    top: calc(1807 / 360 * 100vw);
    right: calc(12 / 360 * 100vw);
  }

  .member-deco--4 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.member-deco--5 {
  top: -70px;
  left: 20px;
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .member-deco--5 {
    top: calc(-61 / 360 * 100vw);
    left: calc(41 / 360 * 100vw);
  }

  .member-deco--5 svg {
    width: calc(38 / 360 * 100vw);
  }
}

.member-deco--6 {
  top: 7px;
  right: 57px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .member-deco--6 {
    display: none;
  }
}

.member-deco--7 {
  top: 394px;
  left: 20px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .member-deco--7 {
    display: none;
  }
}

.member-deco--8 {
  top: 1010px;
  right: 20px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .member-deco--8 {
    display: none;
  }
}

.member-deco--9 {
  top: 395px;
  left: 263px;
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .member-deco--9 {
    display: none;
  }
}

.welfare-section {
  margin-block-start: 60px;
}

.welfare-section+.welfare-section {
  margin-block-start: 116px;
}

@media (max-width: 1100px) {
  .welfare-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }
}

.welfare-section-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .welfare-section-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.welfare-section-inner {
  position: relative;
}

.welfare-heading .section-heading-ja {
  font-size: 36px;
}

@media (max-width: 1100px) {
  .welfare-heading .section-heading-ja {
    font-size: calc(25 / 360 * 100vw);
  }
}

.welfare-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 50px 19px;
  margin-block-start: 16px;
  list-style: none;
  padding: 0;
}

.welfare-cards--left {
  justify-content: flex-start;
}

@media (max-width: 1100px) {
  .welfare-cards {
    gap: calc(30 / 360 * 100vw) 0;
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.welfare-card {
  width: 307px;
  text-align: center;
}

@media (max-width: 1100px) {
  .welfare-card {
    width: 100%;
  }
}

.welfare-card-photo {
  display: block;
  width: 300px;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
}

@media (max-width: 1100px) {
  .welfare-card-photo {
    width: 100%;
  }
}

.welfare-card-title {
  margin-block-start: 10px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  color: #000000;
}

@media (max-width: 1100px) {
  .welfare-card-title {
    margin-block-start: calc(12 / 360 * 100vw);
    font-size: calc(15 / 360 * 100vw);
  }
}

.welfare-card-body {
  text-align: left;
  margin-block-start: 4px;
  padding-inline: 6px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: #000000;
}

@media (max-width: 1100px) {
  .welfare-card-body {
    text-align: left;
    margin-block-start: calc(10 / 360 * 100vw);
    font-size: calc(13 / 360 * 100vw);
    line-height: 1.8;
  }
}

.welfare-survey {
  margin-block-start: 100px;
  margin-block-end: 90px;
}

@media (max-width: 1100px) {
  .welfare-survey {
    margin-block-start: calc(60 / 360 * 100vw);
    margin-block-end: calc(50 / 360 * 100vw);
  }
}

.welfare-survey-label {
  padding-block-end: 10px;
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
}

@media (max-width: 1100px) {
  .welfare-survey-label {
    padding-block-end: calc(8 / 360 * 100vw);
    font-size: calc(16 / 360 * 100vw);
  }
}

.welfare-survey-lead {
  margin-block-start: 4px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.75;
  color: #000000;
}

@media (max-width: 1100px) {
  .welfare-survey-lead {
    margin-block-start: calc(14 / 360 * 100vw);
    font-size: calc(13 / 360 * 100vw);
  }
}

.welfare-survey-figure {
  margin-block-start: 24px;
}

.welfare-survey-figure img {
  display: block;
  margin-inline: auto;
}

.welfare-survey-figure--q4 {
  margin-block-start: 86px;
}

.welfare-survey-figure--sp {
  display: none;
}

@media (max-width: 1100px) {
  .welfare-survey-figure {
    margin-block-start: calc(24 / 360 * 100vw);
  }

  .welfare-survey-figure--q4 {
    margin-block-start: calc(20 / 360 * 100vw);
  }

  .welfare-survey-figure.scroll-table {
    display: none;
  }

  .welfare-survey-figure--sp {
    display: block;
  }

  .welfare-survey-figure--sp img {
    width: calc(260 / 360 * 100vw);
    height: auto;
  }

  .welfare-survey-figure--sp img + img {
    margin-block-start: calc(20 / 360 * 100vw);
  }

  .welfare-survey-figure--q4.welfare-survey-figure--sp img {
    width: calc(265 / 360 * 100vw);
  }
}

.welfare-nav-section {
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .welfare-nav-section {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.welfare-nav-cards {
  display: flex;
  gap: 24px;
  list-style: none;
  padding: 0;
}

@media (max-width: 1100px) {
  .welfare-nav-cards {
    flex-direction: column;
    gap: calc(20 / 360 * 100vw);
  }
}

.welfare-nav-card {
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 1100px) {
  .welfare-nav-card {
    flex: none;
    width: 100%;
  }
}

.welfare-nav-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
}

@media (any-hover: hover) {
  .welfare-nav-link {
    transition: opacity 0.3s;
  }

  .welfare-nav-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.welfare-nav-photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 304/136;
  object-fit: contain;
}

.welfare-nav-text {
  margin-block-start: 14px;
  font-size: 18px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .welfare-nav-text {
    margin-block-start: calc(8 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
  }
}

.welfare-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .welfare-deco svg {
    width: auto;
    height: auto;
  }
}

.welfare-deco--1 {
  top: 0;
  right: 22px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .welfare-deco--1 {
    top: calc(-4 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .welfare-deco--1 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.welfare-deco--2 {
  top: 68px;
  left: 179px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .welfare-deco--2 {
    top: calc(40 / 360 * 100vw);
    left: calc(80 / 360 * 100vw);
  }

  .welfare-deco--2 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.welfare-deco--3 {
  bottom: -85px;
  left: -45px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .welfare-deco--3 {
    bottom: calc(-30 / 360 * 100vw);
    left: calc(-4 / 360 * 100vw);
  }

  .welfare-deco--3 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.welfare-deco--4 {
  bottom: -122px;
  right: 103px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .welfare-deco--4 {
    bottom: calc(-56 / 360 * 100vw);
    right: calc(30 / 360 * 100vw);
  }

  .welfare-deco--4 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.welfare-deco--5 {
  top: 273px;
  left: -45px;
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .welfare-deco--5 {
    top: calc(150 / 360 * 100vw);
    left: calc(-4 / 360 * 100vw);
  }

  .welfare-deco--5 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.welfare-deco--6 {
  top: 628px;
  right: 132px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .welfare-deco--6 {
    top: calc(330 / 360 * 100vw);
    right: calc(6 / 360 * 100vw);
  }

  .welfare-deco--6 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.welfare-deco--8 {
  top: 484px;
  left: 594px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .welfare-deco--8 {
    top: calc(270 / 360 * 100vw);
    left: calc(230 / 360 * 100vw);
  }

  .welfare-deco--8 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.welfare-deco--9 {
  top: 685px;
  right: 132px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .welfare-deco--9 {
    top: calc(360 / 360 * 100vw);
    right: calc(6 / 360 * 100vw);
  }

  .welfare-deco--9 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.welfare-deco--11 {
  top: 1542px;
  left: -44px;
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .welfare-deco--11 {
    top: calc(820 / 360 * 100vw);
    left: calc(-4 / 360 * 100vw);
  }

  .welfare-deco--11 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.welfare-deco--7 {
  bottom: -139px;
  left: 423px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .welfare-deco--7 {
    bottom: calc(-60 / 360 * 100vw);
    left: calc(180 / 360 * 100vw);
  }

  .welfare-deco--7 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.recruit-info-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .recruit-info-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.recruit-info-inner {
  position: relative;
}

.recruit-info-section {
  position: relative;
  margin-block-start: 155px;
}

.recruit-info-section+.recruit-info-section {
  margin-block-start: 100px;
}

.recruit-info-section--last {
  margin-block-end: 120px;
}

@media (max-width: 1100px) {
  .recruit-info-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }

  .recruit-info-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.recruit-info-heading .section-heading-ja {
  color: #ff0000;
}

.recruit-info-table {
  width: 100%;
  margin-block-start: 20px;
  border-collapse: separate;
  table-layout: fixed;
  margin-inline: -10px;
  width: calc(100% + 20px);
}

@media (max-width: 1100px) {
  .recruit-info-table {
    margin-block-start: calc(16 / 360 * 100vw);
    border-spacing: calc(4 / 360 * 100vw);
    margin-inline: calc(-8 / 360 * 100vw);
  }
}

.recruit-info-table th,
.recruit-info-table td {
  padding: 8px 15px;
  font-size: 16px;
  line-height: 1.5;
  vertical-align: middle;
}

@media (max-width: 1100px) {

  .recruit-info-table th,
  .recruit-info-table td {
    padding: calc(10 / 360 * 100vw) calc(6 / 360 * 100vw);
    font-size: calc(13 / 360 * 100vw);
  }
}

.recruit-info-table th {
  width: 161px;
  border: 1px solid #ffffff;
  border-radius: 5px;
  background-color: rgba(255, 0, 0, 0.08);
  color: #3c3c3c;
  font-weight: 700;
  text-align: center;
}

@media (max-width: 1100px) {
  .recruit-info-table th {
    width: calc(80 / 360 * 100vw);
    border-radius: calc(5 / 360 * 100vw);
  }
}

.recruit-info-table tr:nth-child(even) th {
  background-color: rgba(255, 0, 0, 0.12);
}

.recruit-info-table td {
  background-color: #ffffff;
  border-block-end: 1px solid #bababa;
  color: #000000;
  font-weight: 400;
  text-align: start;
  word-break: break-word;
}

.recruit-info-table tr:first-child td {
  border-block-start: 1px solid #bababa;
}

.recruit-info-scroll {
  overflow: initial;
}

.recruit-info-scroll .recruit-info-table {
  width: 100%;
  margin-inline: 0;
}

@media (max-width: 1100px) {
  .recruit-info-scroll .recruit-info-table {
    width: 100%;
  }

  .recruit-info-scroll {
    display: flex;
    align-items: flex-start;
  }

  .recruit-info-scroll .recruit-info-table {
    flex-shrink: 0;
  }

  .recruit-info-scroll::after {
    content: "";
    flex: 0 0 calc(45 / 360 * 100vw);
  }
}

.recruit-info-link {
  color: #ff0000;
  text-decoration: underline;
  word-break: break-all;
}

.recruit-info-contact {
  position: relative;
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .recruit-info-contact {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.recruit-info-contact-heading {
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
}

@media (max-width: 1100px) {
  .recruit-info-contact-heading {
    font-size: calc(20 / 360 * 100vw);
  }
}

.recruit-info-contact-body {
  margin-block-start: 20px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  color: #000000;
}

.recruit-info-contact-body a {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .recruit-info-contact-body {
    margin-block-start: calc(14 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.recruit-info-deco {
  position: absolute;
  pointer-events: none;
  z-index: -1;
}

@media (max-width: 1100px) {
  .recruit-info-deco svg {
    width: auto;
    height: auto;
  }
}

.recruit-info-deco--1 {
  top: -318px;
  right: calc(50% - 477px);
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--1 {
    top: calc(-190 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .recruit-info-deco--1 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.recruit-info-deco--2 {
  top: 954px;
  right: max(0px, 50% - 591px);
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--2 {
    top: calc(560 / 360 * 100vw);
    right: calc(2 / 360 * 100vw);
  }

  .recruit-info-deco--2 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.recruit-info-deco--3 {
  top: -41px;
  left: max(0px, 50% - 580px);
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--3 {
    top: calc(-24 / 360 * 100vw);
    left: calc(2 / 360 * 100vw);
  }

  .recruit-info-deco--3 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.recruit-info-deco--5 {
  top: 1070px;
  right: calc(50% - 380px);
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--5 {
    top: calc(620 / 360 * 100vw);
    right: calc(30 / 360 * 100vw);
  }

  .recruit-info-deco--5 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.recruit-info-deco--11 {
  top: 1409px;
  left: max(0px, 50% - 577px);
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--11 {
    top: calc(820 / 360 * 100vw);
    left: calc(2 / 360 * 100vw);
  }

  .recruit-info-deco--11 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.recruit-info-deco--4 {
  top: 356px;
  right: max(0px, 50% - 577px);
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--4 {
    top: calc(210 / 360 * 100vw);
    right: calc(2 / 360 * 100vw);
  }

  .recruit-info-deco--4 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.recruit-info-deco--6 {
  top: 806px;
  left: max(0px, 50% - 542px);
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--6 {
    top: calc(470 / 360 * 100vw);
    left: calc(2 / 360 * 100vw);
  }

  .recruit-info-deco--6 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.recruit-info-deco--12 {
  top: 1130px;
  right: max(0px, 50% - 630px);
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--12 {
    top: calc(660 / 360 * 100vw);
    right: calc(2 / 360 * 100vw);
  }

  .recruit-info-deco--12 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.recruit-info-deco--7 {
  top: 807px;
  left: calc(50% - 78px);
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--7 {
    top: calc(455 / 360 * 100vw);
    left: 45%;
  }

  .recruit-info-deco--7 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.recruit-info-deco--9 {
  top: -37px;
  left: calc(50% + 85px);
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--9 {
    top: calc(-22 / 360 * 100vw);
    left: 60%;
  }

  .recruit-info-deco--9 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.recruit-info-deco--10 {
  top: 669px;
  right: max(0px, 50% - 601px);
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--10 {
    top: calc(390 / 360 * 100vw);
    right: calc(2 / 360 * 100vw);
  }

  .recruit-info-deco--10 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.recruit-info-deco--13 {
  top: -48px;
  left: max(0px, 50% - 580px);
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--13 {
    top: calc(-28 / 360 * 100vw);
    left: calc(2 / 360 * 100vw);
  }

  .recruit-info-deco--13 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.recruit-info-deco--14 {
  top: 8px;
  left: calc(50% + 128px);
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .recruit-info-deco--14 {
    top: calc(6 / 360 * 100vw);
    left: 62%;
  }

  .recruit-info-deco--14 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.inquiry-lead-section {
  max-width: 1280px;
  margin-inline: auto;
  background-color: #f4f4f4;
}

.inquiry-lead-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .inquiry-lead-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.inquiry-lead-inner {
  padding-inline: 16px;
  padding-block: 40px;
}

@media (max-width: 1100px) {
  .inquiry-lead-inner {
    padding-block: calc(24 / 360 * 100vw);
  }
}

.inquiry-lead {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.55;
  color: #222222;
}

@media (max-width: 1100px) {
  .inquiry-lead {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.8;
  }
}

.inquiry-body {
  margin-block: 44px 130px;
}

@media (max-width: 1100px) {
  .inquiry-body {
    margin-block: calc(30 / 360 * 100vw) calc(60 / 360 * 100vw);
  }
}

.inquiry-body-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .inquiry-body-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.inquiry-body-inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

@media (max-width: 1100px) {
  .inquiry-body-inner {
    gap: calc(44 / 360 * 100vw);
  }
}

.inquiry-block-title {
  padding-block-end: 8px;
  border-block-end: 1px solid #000000;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
  color: #222222;
}

@media (max-width: 1100px) {
  .inquiry-block-title {
    padding-block-end: calc(12 / 360 * 100vw);
    font-size: calc(20 / 360 * 100vw);
    line-height: 1.3;
  }
}

.policy-body {
  margin-block: 56px 130px;
}

@media (max-width: 1100px) {
  .policy-body {
    margin-block: calc(30 / 360 * 100vw) calc(60 / 360 * 100vw);
  }
}

.policy-heading-lg {
  font-size: 36px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
  padding-block-end: 20px;
  margin-bottom: 38px;
  border-block-end: 5px solid #d9d9d9;
}

.policy-heading-sm {
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
  padding-block-end: 8px;
  border-block-end: 1px solid #000000;
}

.inquiry-block-text {
  margin-block-start: 13px;
  margin-top: 20px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5625;
  color: #222222;
}

@media (max-width: 1100px) {
  .inquiry-block-text {
    margin-block-start: calc(14 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.7;
  }
}

.inquiry-block-text a[href^="tel:"] {
  color: inherit;
  text-decoration: none;
}

.inquiry-block-text--long p+p {
  margin-block-start: 25px;
}

@media (max-width: 1100px) {
  .inquiry-block-text--long p+p {
    margin-block-start: calc(18 / 360 * 100vw);
  }
}

.inquiry-sub-heading {
  margin-block-start: 25px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: #222222;
}

@media (max-width: 1100px) {
  .inquiry-sub-heading {
    margin-block-start: calc(28 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.inquiry-file-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
}

.inquiry-notice-list {
  padding-inline-start: 2em;
  list-style: decimal;
}

.inquiry-notice-list li {
  padding-inline-start: 4px;
}

@media (max-width: 1100px) {
  .inquiry-notice-list {
    margin-block-start: calc(6 / 360 * 100vw);
  }
}

.inquiry-link {
  color: #0089c6;
  font-weight: 700;
  text-decoration: none;
}

.inquiry-link:hover,
.inquiry-link:focus-visible {
  text-decoration: underline;
}

.inquiry-link--underline {
  text-decoration: underline;
}

.inquiry-contact {
  display: flex;
  gap: 30px;
  align-items: stretch;
  margin-block-start: 8px;
}

@media (max-width: 1100px) {
  .inquiry-contact {
    flex-direction: column;
    gap: calc(20 / 360 * 100vw);
  }
}

.inquiry-contact-card {
  display: flex;
  flex-direction: column;
  min-height: 160px;
  border: 1px solid #0089c6;
}

.inquiry-contact-card--tel {
  width: 420px;
  flex-shrink: 0;
}

.inquiry-contact-card--mail {
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 1100px) {
  .inquiry-contact-card {
    min-height: initial;
  }

  .inquiry-contact-card--tel {
    width: 100%;
  }
}

.inquiry-contact-heading {
  padding: 4px 20px;
  background-color: #0089c6;
  font-size: 28px;
  font-weight: 700;
  line-height: normal;
  color: #ffffff;
  text-align: center;
}

@media (max-width: 1100px) {
  .inquiry-contact-heading {
    padding: calc(12 / 360 * 100vw) calc(16 / 360 * 100vw);
    font-size: calc(20 / 360 * 100vw) calc(10 / 360 * 100vw);
  }
}

.inquiry-contact-body {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 8px 20px;
  text-align: center;
}

@media (max-width: 1100px) {
  .inquiry-contact-body {
    gap: calc(10 / 360 * 100vw);
    padding: calc(20 / 360 * 100vw) calc(10 / 360 * 100vw);
  }
}

.inquiry-contact-tel {
  font-size: 28px;
  font-weight: 700;
  line-height: normal;
  color: #0089c6;
}

.inquiry-contact-tel a {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .inquiry-contact-tel {
    font-size: calc(24 / 360 * 100vw);
  }
}

.inquiry-contact-mail {
  font-weight: 700;
  line-height: normal;
}

.inquiry-contact-mail a {
  font-size: 24px;
  color: #0089c6;
  text-decoration: none;
}

.inquiry-contact-mail a:hover,
.inquiry-contact-mail a:focus-visible {
  text-decoration: underline;
}

@media (max-width: 1100px) {
  .inquiry-contact-mail a {
    font-size: calc(18 / 360 * 100vw);
  }
}

.inquiry-contact-mail-label {
  font-size: 20px;
  font-weight: 400;
  color: #222222;
}

@media (max-width: 1100px) {
  .inquiry-contact-mail-label {
    font-size: calc(15 / 360 * 100vw);
  }
}

.inquiry-contact-note {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5625;
  color: #222222;
}

@media (max-width: 1100px) {
  .inquiry-contact-note {
    font-size: calc(13 / 360 * 100vw);
    line-height: 1.7;
  }
}

.accessibility-section {
  margin-block-start: 46px;
}

.accessibility-section+.accessibility-section {
  margin-block-start: 94px;
}

.accessibility-section--last {
  margin-block: 76px 100px;
}

@media (max-width: 1100px) {
  .accessibility-section {
    margin-block-start: calc(40 / 360 * 100vw);
  }

  .accessibility-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.accessibility-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .accessibility-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.accessibility-intro {
  margin-block-start: 42px;
}

@media (max-width: 1100px) {
  .accessibility-intro {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.accessibility-page-title {
  font-size: 36px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
  padding-block-end: 20px;
  border-block-end: 1px solid #000000;
}

@media (max-width: 1100px) {
  .accessibility-page-title {
    font-size: calc(24 / 360 * 100vw);
    padding-block-end: calc(14 / 360 * 100vw);
  }
}

.accessibility-heading {
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
  padding-block-end: 8px;
  border-block-end: 1px solid #000000;
}

@media (max-width: 1100px) {
  .accessibility-heading {
    font-size: calc(19 / 360 * 100vw);
    padding-block: calc(6 / 360 * 100vw);
  }
}

.accessibility-heading--sub {
  font-size: 18px;
}

@media (max-width: 1100px) {
  .accessibility-heading--sub {
    font-size: calc(16 / 360 * 100vw);
  }
}

.accessibility-lead {
  margin-block-start: 25px;
}

@media (max-width: 1100px) {
  .accessibility-lead {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.accessibility-lead>p+p,
.accessibility-lead>p+ul,
.accessibility-lead>ul+p {
  margin-block-start: 25px;
}

@media (max-width: 1100px) {

  .accessibility-lead>p+p,
  .accessibility-lead>p+ul,
  .accessibility-lead>ul+p {
    margin-block-start: calc(18 / 360 * 100vw);
  }
}

.accessibility-text {
  margin-block-start: 12px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5625;
  color: #000000;
}

@media (max-width: 1100px) {
  .accessibility-text {
    margin-block-start: calc(16 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.7;
  }
}

.accessibility-lead p {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5625;
  color: #000000;
}

@media (max-width: 1100px) {
  .accessibility-lead p {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.7;
  }
}

.accessibility-list {
  padding-inline-start: 24px;
  list-style: disc;
}

.accessibility-list li {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5625;
  color: #000000;
}

@media (max-width: 1100px) {
  .accessibility-list li {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.7;
  }
}

.accessibility-legend {
  margin-block-start: 30px;
  font-size: 14px;
  padding-inline: 2em;
}

@media (max-width: 1100px) {
  .accessibility-legend {
    font-size: calc(12 / 360 * 100vw);
    padding-inline: 1em;
  }
}

.accessibility-legend li {
  line-height: 1.2;
  list-style: disc;
  color: initial;
}

.accessibility-legend li+.accessibility-legend li {
  margin-block-start: 0.5em;
}

@media (min-width: 1101px) {
  .accessibility-legend li {
    text-indent: -1em;
    padding-inline-start: 1em;
  }
}

.accessibility-legend+p {
  font-size: 14px;
  line-height: 1.2;
  color: initial;
}

@media (max-width: 1100px) {
  .accessibility-legend+p {
    font-size: calc(12 / 360 * 100vw);
    margin-block-start: calc(10 / 360 * 100vw);
  }
}

.accessibility-note {
  margin-block-start: 12px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  color: #000000;
}

.accessibility-note a {
  color: #ff0000;
  text-decoration: underline;
}

@media (any-hover: hover) {
  .accessibility-note a:hover {
    text-decoration: none;
  }
}

@media (max-width: 1100px) {
  .accessibility-note {
    margin-block-start: calc(14 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
  }
}

.accessibility-scroll {
  margin-block-start: 28px;
}

.accessibility-scroll table {
  border-collapse: separate;
  border-spacing: 10px 0;
}

@media (min-width: 1101px) {
  .accessibility-scroll {
    overflow-x: visible;
  }

  .accessibility-scroll table {
    margin-inline: -10px;
  }
}

@media (max-width: 1100px) {
  .accessibility-scroll {
    margin-block-start: calc(16 / 360 * 100vw);
  }

  .accessibility-scroll table {
    min-width: calc(960 / 360 * 100vw);
    transform: translateX(-10px);
  }

  .accessibility-scroll {
    max-width: none;
    margin-inline: calc(50% - 50vw);
    padding-inline-start: calc(50vw - 50%);
    display: flex;
    align-items: flex-start;
  }

  .accessibility-scroll table {
    flex-shrink: 0;
  }

  .accessibility-scroll::after {
    content: "";
    flex: 0 0 calc(45 / 360 * 100vw);
  }
}

.accessibility-spec-wrap {
  margin-block-start: 28px;
}

@media (max-width: 1100px) {
  .accessibility-spec-wrap {
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

table.accessibility-spec-table {
  width: 980px;
  border-collapse: separate;
  border-spacing: 10px 0;
  transform: translateX(-10px);
}

@media (max-width: 1100px) {
  table.accessibility-spec-table {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    border-spacing: 0;
    transform: none;
  }
}

table.accessibility-spec-table caption {
  position: static;
  clip: auto;
  clip-path: inset(50%);
}

table.accessibility-spec-table th,
table.accessibility-spec-table td {
  padding: 8px;
  font-size: 16px;
  line-height: 1.4;
  vertical-align: middle;
  text-align: left;
}

@media (max-width: 1100px) {

  table.accessibility-spec-table th,
  table.accessibility-spec-table td {
    padding: calc(10 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

table.accessibility-spec-table th {
  width: 161px;
  padding-block: 6px;
  padding-inline-start: 16px;
  text-align: left;
  font-weight: 700;
  color: #3c3c3c;
  background-color: rgba(255, 0, 0, 0.08);
  border: 2px solid #ffffff;
  border-radius: 5px;
}

@media (max-width: 1100px) {
  table.accessibility-spec-table th {
    width: calc(72 / 360 * 100vw);
    padding-block: calc(10 / 360 * 100vw);
    padding-inline: calc(8 / 360 * 100vw);
    border-radius: calc(5 / 360 * 100vw);
    background-clip: padding-box;
  }
}

table.accessibility-spec-table td {
  font-weight: 400;
  color: #000000;
  background-color: #ffffff;
  border-block-end: 1px solid #bababa;
  padding-inline-start: 20px;
}

@media (max-width: 1100px) {
  table.accessibility-spec-table td {
    padding-inline: calc(8 / 360 * 100vw);
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

table.accessibility-spec-table td a {
  text-decoration: underline;
}

table.accessibility-spec-table td a.-color {
  color: #ff0000;
}

@media (any-hover: hover) {
  table.accessibility-spec-table td a:hover {
    text-decoration: none;
  }
}

table.accessibility-spec-table tr:first-child td {
  border-block-start: 1px solid #bababa;
}

table.accessibility-spec-table tr:nth-child(even) th {
  background-color: rgba(255, 0, 0, 0.12);
}

.accessibility-checklist-table {
  width: 980px;
  overflow: hidden;
}

@media (max-width: 1100px) {
  .accessibility-checklist-table {
    table-layout: fixed;
    width: calc(960 / 360 * 100vw);
  }
}

.accessibility-checklist-table th,
.accessibility-checklist-table td {
  padding: 10px;
  font-size: 16px;
  line-height: 1.5;
  color: #000000;
  vertical-align: middle;
}

@media (max-width: 1100px) {

  .accessibility-checklist-table th,
  .accessibility-checklist-table td {
    padding: calc(10 / 360 * 100vw);
    font-size: calc(16 / 360 * 100vw);
  }
}

.accessibility-checklist-table td {
  padding-block: 6px;
  padding-inline: 16px;
  line-height: 1.4;
}

.accessibility-checklist-table thead th {
  font-weight: 700;
  color: #3c3c3c;
  text-align: center;
  background-color: rgba(255, 0, 0, 0.08);
  border: 1px solid #ffffff;
  border-radius: 5px;
}

@media (max-width: 1100px) {
  .accessibility-checklist-table thead th {
    border-radius: calc(5 / 360 * 100vw);
  }
}

.accessibility-checklist-table tbody th,
.accessibility-checklist-table tbody td {
  font-weight: 400;
  background-color: #ffffff;
  border-block-end: 1px solid #bababa;
}

.accessibility-checklist-table tbody th {
  font-weight: 400;
}

.accessibility-checklist-table .accessibility-col-num {
  width: 84px;
  text-align: center;
  padding-inline: 4px;
}

@media (max-width: 1100px) {
  .accessibility-checklist-table .accessibility-col-num {
    width: calc(50 / 360 * 100vw);
  }
}

.accessibility-checklist-table .accessibility-col-criteria {
  width: 399px;
}

@media (max-width: 1100px) {
  .accessibility-checklist-table .accessibility-col-criteria {
    width: calc(180 / 360 * 100vw);
  }
}

.accessibility-checklist-table .accessibility-col-grade {
  width: 84px;
  text-align: center;
}

@media (max-width: 1100px) {
  .accessibility-checklist-table .accessibility-col-grade {
    width: calc(56 / 360 * 100vw);
  }
}

.accessibility-checklist-table .accessibility-col-apply {
  width: 84px;
  text-align: center;
}

@media (max-width: 1100px) {
  .accessibility-checklist-table .accessibility-col-apply {
    width: calc(56 / 360 * 100vw);
  }
}

.accessibility-checklist-table .accessibility-col-result {
  width: 84px;
  text-align: center;
}

@media (max-width: 1100px) {
  .accessibility-checklist-table .accessibility-col-result {
    width: calc(56 / 360 * 100vw);
  }
}

.accessibility-checklist-table .accessibility-col-note {
  width: 178px;
}

@media (max-width: 1100px) {
  .accessibility-checklist-table .accessibility-col-note {
    width: calc(90 / 360 * 100vw);
  }
}

.koukoku-section {
  padding-block: 46px 122px;
}

@media (max-width: 1100px) {
  .koukoku-section {
    padding-block: calc(30 / 360 * 100vw) calc(60 / 360 * 100vw);
  }
}

.koukoku-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .koukoku-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.koukoku-list {
  list-style: none;
}

.koukoku-item+.koukoku-item {
  margin-block-start: 58px;
}

@media (max-width: 1100px) {
  .koukoku-item+.koukoku-item {
    margin-block-start: calc(40 / 360 * 100vw);
  }
}

.koukoku-item-title {
  padding-block-end: 11px;
  border-block-end: 1px solid #000000;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  color: #222222;
}

@media (max-width: 1100px) {
  .koukoku-item-title {
    padding-block-end: calc(12 / 360 * 100vw);
    font-size: calc(20 / 360 * 100vw);
  }
}

.koukoku-item-link {
  margin-block-start: 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: #0089c6;
}

.koukoku-item-link::before {
  content: "▶";
  margin-inline-end: 2px;
}

@media (max-width: 1100px) {
  .koukoku-item-link {
    margin-block-start: calc(14 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.koukoku-item-link a {
  color: inherit;
  text-decoration: underline;
  text-underline-position: from-font;
}

.koukoku-item-link a:hover,
.koukoku-item-link a:focus-visible {
  text-decoration: none;
}

.history {
  margin-block: 60px 100px;
}

@media (max-width: 1100px) {
  .history {
    margin-block: calc(40 / 360 * 100vw) calc(60 / 360 * 100vw);
  }
}

.history-section+.history-section {
  margin-block-start: 100px;
}

@media (max-width: 1100px) {
  .history-section+.history-section {
    margin-block-start: calc(48 / 360 * 100vw);
  }
}

.history-section-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .history-section-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.history-section-inner {
  position: relative;
}

.history-heading {
  font-size: 25px;
  font-weight: 700;
  line-height: normal;
  color: #14326e;
}

@media (max-width: 1100px) {
  .history-heading {
    font-size: calc(20 / 360 * 100vw);
  }
}

.history-body {
  margin-block-start: 20px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
  text-align: justify;
}

@media (max-width: 1100px) {
  .history-body {
    margin-block-start: calc(14 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.history-photos {
  margin-block-start: 60px;
  display: grid;
  gap: 30px;
}

@media (max-width: 1100px) {
  .history-photos {
    margin-block-start: calc(30 / 360 * 100vw);
    gap: calc(10 / 360 * 100vw);
  }
}

.history-photos.col-2 {
  grid-template-columns: repeat(2, 1fr);
  max-width: 630px;
  margin-block-start: 30px;
  margin-inline: auto;
}

.history-photos.col-3 {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 1100px) {
  .history-photos.col-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

.history-photos img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 1101px) {
  .history-2010-grid {
    display: grid;
    grid-template-columns: 510px 1fr;
    column-gap: 34px;
    align-items: start;
  }
}

@media (max-width: 1100px) {
  .history-2010-main {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.history-2010-grid.-reverse {
  margin-block-start: 20px;
}

@media (max-width: 1100px) {
  .history-2010-grid.-reverse {
    margin-block-start: calc(14 / 360 * 100vw);
  }
}

@media (min-width: 1101px) {
  .history-2010-grid.-reverse {
    grid-template-columns: 1fr 510px;
  }
}

.history-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .history-deco svg {
    width: auto;
    height: auto;
  }
}

.history-deco--0 {
  top: -4px;
  right: 2px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .history-deco--0 {
    top: calc(-2 / 360 * 100vw);
    right: calc(2 / 360 * 100vw);
  }

  .history-deco--0 svg {
    width: calc(42 / 360 * 100vw);
  }
}

.history-deco--1 {
  top: 426px;
  left: 0;
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .history-deco--1 {
    top: calc(300 / 360 * 100vw);
    left: 0;
  }

  .history-deco--1 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.history-deco--3 {
  top: 503px;
  right: 5px;
  --parallax-range: -80px;
}

@media (max-width: 1100px) {
  .history-deco--3 {
    top: calc(350 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .history-deco--3 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.history-deco--2 {
  top: 464px;
  left: 257px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .history-deco--2 {
    top: calc(330 / 360 * 100vw);
    left: calc(120 / 360 * 100vw);
  }

  .history-deco--2 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.history-deco--4 {
  top: -33px;
  left: 454px;
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .history-deco--4 {
    top: calc(-24 / 360 * 100vw);
    left: 62%;
  }

  .history-deco--4 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.history-deco--5 {
  top: 691px;
  right: 47px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .history-deco--5 {
    top: calc(490 / 360 * 100vw);
    right: calc(20 / 360 * 100vw);
  }

  .history-deco--5 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.environment-section {
  margin-block-start: 140px;
}

.environment-section--last {
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .environment-section {
    margin-block-start: calc(56 / 360 * 100vw);
  }

  .environment-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.environment-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .environment-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.environment-inner {
  position: relative;
}

.environment-heading .section-heading-ja {
  color: #ff0000;
}

.environment-cards {
  margin: 42px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 300px);
  justify-content: start;
  gap: 30px;
}

@media (max-width: 1100px) {
  .environment-cards {
    margin-block-start: calc(30 / 360 * 100vw);
    grid-template-columns: 1fr;
    gap: calc(20 / 360 * 100vw);
  }
}

.environment-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 375px;
  padding: 22px 32px 34px;
  background-color: #ffffff;
  border: 1px solid #222222;
}

@media (max-width: 1100px) {
  .environment-card {
    min-height: 0;
    padding: calc(24 / 360 * 100vw) calc(20 / 360 * 100vw) calc(28 / 360 * 100vw);
  }
}

.environment-card-title {
  font-size: 18px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .environment-card-title {
    font-size: calc(16 / 360 * 100vw);
  }
}

.environment-card-image {
  width: 100%;
  aspect-ratio: 230/140;
  margin-block-start: 30px;
  overflow: hidden;
}

.environment-card-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.environment-card-image--empty {
  background-color: #bababa;
}

@media (max-width: 1100px) {
  .environment-card-image {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.environment-card-body {
  margin-block-start: 30px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5715;
  color: #000000;
}

@media (max-width: 1100px) {
  .environment-card-body {
    margin-block-start: calc(16 / 360 * 100vw);
    font-size: calc(13 / 360 * 100vw);
    line-height: 1.75;
  }
}

.environment-card-link {
  display: block;
  font-weight: 700;
  color: #0089c6;
  text-decoration: underline;
}

.environment-card-link:hover,
.environment-card-link:focus-visible {
  text-decoration: none;
}

.environment-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .environment-deco svg {
    width: auto;
    height: auto;
  }
}

.environment-deco--0 {
  top: -36px;
  right: 50px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .environment-deco--0 {
    top: calc(-4 / 360 * 100vw);
    right: calc(15 / 360 * 100vw);
  }

  .environment-deco--0 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.environment-deco--1 {
  top: -53px;
  right: 50px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .environment-deco--1 {
    top: calc(-16 / 360 * 100vw);
    right: calc(15 / 360 * 100vw);
  }

  .environment-deco--1 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.environment-deco--2 {
  top: 46px;
  right: 356px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .environment-deco--2 {
    top: calc(48 / 360 * 100vw);
    right: calc(80 / 360 * 100vw);
  }

  .environment-deco--2 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.sustainability-lead-section {
  margin-block-start: 52px;
}

@media (max-width: 1100px) {
  .sustainability-lead-section {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.sustainability-lead-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .sustainability-lead-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.sustainability-lead {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .sustainability-lead {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.sustainability-section {
  margin-block-start: 80px;
}

.sustainability-section--last {
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .sustainability-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }

  .sustainability-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.sustainability-section-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .sustainability-section-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.sustainability-section-inner {
  position: relative;
}

.sustainability-heading {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.3;
  color: #ff0000;
}

@media (max-width: 1100px) {
  .sustainability-heading {
    font-size: calc(24 / 360 * 100vw);
    line-height: 1.3;
  }
}

.sustainability-body {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875;
  color: #000000;
}

.sustainability-body+.sustainability-body {
  margin-block-start: 1.875em;
}

.sustainability-heading+.sustainability-body {
  margin-block-start: 15px;
}

@media (max-width: 1100px) {
  .sustainability-heading+.sustainability-body {
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

@media (max-width: 1100px) {
  .sustainability-body {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

.sustainability-inline-link {
  font-weight: 700;
  color: #e16916;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (any-hover: hover) {
  .sustainability-inline-link {
    transition: opacity 0.3s;
  }

  .sustainability-inline-link:hover {
    opacity: 0.7;
  }
}

.sustainability-images {
  display: flex;
  gap: 24px;
  justify-content: center;
  margin-block-start: 30px;
}

@media (max-width: 1100px) {
  .sustainability-images {
    flex-direction: column;
    gap: calc(16 / 360 * 100vw);
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

.sustainability-image {
  display: block;
  width: 394px;
  height: auto;
}

@media (max-width: 1100px) {
  .sustainability-image {
    width: 100%;
  }
}

.sustainability-cols {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  margin-block-start: 20px;
}

@media (max-width: 1100px) {
  .sustainability-cols {
    flex-direction: column;
    gap: calc(20 / 360 * 100vw);
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

.sustainability-cols-text {
  flex: 1 1 0;
  min-width: 0;
  margin-block-start: 0;
}

.sustainability-cols-media {
  flex-shrink: 0;
}

@media (max-width: 1100px) {
  .sustainability-cols-media {
    align-self: center;
    width: 100%;
    max-width: calc(363 / 360 * 100vw);
  }
}

.sustainability-media-image {
  display: block;
  max-width: 100%;
  height: auto;
}

@media (max-width: 1100px) {
  .sustainability-media-image {
    width: 100%;
  }
}

.sustainability-news-list {
  list-style: none;
  margin-block-start: 40px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

@media (max-width: 1100px) {
  .sustainability-news-list {
    margin-block-start: calc(24 / 360 * 100vw);
    gap: calc(20 / 360 * 100vw);
  }
}

.sustainability-news-link {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  color: inherit;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .sustainability-news-link {
    flex-direction: column;
    gap: calc(2 / 360 * 100vw);
  }

  .sustainability-news-link .sustainability-news-title {
    text-decoration: underline;
  }
}

@media (any-hover: hover) {
  .sustainability-news-link {
    transition: opacity 0.3s;
  }

  .sustainability-news-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.sustainability-news-date {
  padding-block: 4px;
  font-size: 16px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .sustainability-news-date {
    order: 2;
    padding-block: 0;
    font-size: calc(12 / 360 * 100vw);
  }
}

.sustainability-news-label {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 116px;
  height: 32px;
  border-radius: 5px;
  background-color: #64c8a0;
  font-size: 16px;
  font-weight: 700;
  line-height: normal;
  color: #ffffff;
}

@media (max-width: 1100px) {
  .sustainability-news-label {
    order: 1;
    width: calc(96 / 360 * 100vw);
    height: calc(24 / 360 * 100vw);
    border-radius: calc(3 / 360 * 100vw);
    font-size: calc(12 / 360 * 100vw);
  }
}

.sustainability-news-title {
  padding-block: 4px;
  font-size: 16px;
  font-weight: 500;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .sustainability-news-title {
    order: 3;
    padding-block: 0;
    font-size: calc(14 / 360 * 100vw);
  }
}

.sustainability-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .sustainability-deco svg {
    width: auto;
    height: auto;
  }
}

.sustainability-deco--7b,
.sustainability-deco--5,
.sustainability-deco--4,
.sustainability-deco--3b,
.sustainability-deco--1 {
  top: -35px;
  left: -7px;
  z-index: -1;
}

@media (max-width: 1100px) {

  .sustainability-deco--7b,
  .sustainability-deco--5,
  .sustainability-deco--4,
  .sustainability-deco--3b,
  .sustainability-deco--1 {
    top: calc(-24 / 360 * 100vw);
    left: calc(-5 / 360 * 100vw);
  }

  .sustainability-deco--7b svg,
  .sustainability-deco--5 svg,
  .sustainability-deco--4 svg,
  .sustainability-deco--3b svg,
  .sustainability-deco--1 svg {
    width: calc(56 / 360 * 100vw);
  }
}

.sustainability-deco--1 {
  --parallax-range: -60px;
}

.sustainability-deco--2 {
  top: 153px;
  right: 51px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .sustainability-deco--2 {
    top: calc(76 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .sustainability-deco--2 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.sustainability-deco--3b {
  --parallax-range: -70px;
}

.sustainability-deco--3 {
  top: -59px;
  left: 379px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .sustainability-deco--3 {
    top: calc(-38 / 360 * 100vw);
    left: calc(150 / 360 * 100vw);
  }

  .sustainability-deco--3 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.sustainability-deco--4 {
  --parallax-range: -70px;
}

.sustainability-deco--4b {
  top: -46px;
  right: 51px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .sustainability-deco--4b {
    top: calc(-20 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .sustainability-deco--4b svg {
    width: calc(50 / 360 * 100vw);
  }
}

.sustainability-deco--5 {
  --parallax-range: -60px;
}

.sustainability-deco--6 {
  top: 12px;
  right: 50px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .sustainability-deco--6 {
    top: calc(120 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .sustainability-deco--6 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.sustainability-deco--6b {
  top: 130px;
  left: 350px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .sustainability-deco--6b {
    top: calc(260 / 360 * 100vw);
    left: calc(14 / 360 * 100vw);
  }

  .sustainability-deco--6b svg {
    width: calc(40 / 360 * 100vw);
  }
}

.sustainability-deco--7b {
  --parallax-range: -70px;
}

.sustainability-deco--7 {
  top: 28px;
  right: 51px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .sustainability-deco--7 {
    top: calc(4 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .sustainability-deco--7 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.kamekawa-lead-section {
  margin-block-start: 140px;
}

@media (max-width: 1100px) {
  .kamekawa-lead-section {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.kamekawa-lead-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .kamekawa-lead-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.kamekawa-lead {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .kamekawa-lead {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.kamekawa-section {
  margin-block-start: 100px;
}

.kamekawa-section--last {
  margin-block-end: 100px;
}

@media (max-width: 1100px) {
  .kamekawa-section {
    margin-block-start: calc(64 / 360 * 100vw);
  }

  .kamekawa-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.kamekawa-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .kamekawa-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.kamekawa-inner {
  position: relative;
}

.kamekawa-heading .section-heading-ja {
  color: #ff0000;
}

.kamekawa-map {
  margin-block-start: 26px;
}

.kamekawa-map img {
  width: 960px;
}

@media (max-width: 1100px) {
  .kamekawa-map {
    margin-block-start: calc(30 / 360 * 100vw);
  }
}

.kamekawa-map-canvas {
  position: relative;
  width: fit-content;
}

.kamekawa-map-hotspot {
  position: absolute;
  border-radius: 999px;
}

.kamekawa-map-hotspot:hover,
.kamekawa-map-hotspot:focus-visible {
  box-shadow: 0 0 10px 3px rgba(23, 182, 128, 0.55);
}

.kamekawa-map-hotspot:focus:not(:focus-visible) {
  outline: none;
}

.kamekawa-map-hotspot--restaurant {
  inset: 13.068% auto auto 55.313%;
  width: 11.042%;
  height: 7.386%;
}

.kamekawa-map-hotspot--sunstore {
  inset: 22.301% auto auto 44.688%;
  width: 10%;
  height: 7.386%;
}

.kamekawa-map-hotspot--training {
  inset: 36.506% auto auto 76.042%;
  width: 17.708%;
  height: 7.244%;
}

.kamekawa-map-hotspot--bank {
  inset: 53.835% auto auto 89.531%;
  width: 7.969%;
  height: 7.386%;
}

.kamekawa-map-hotspot--station {
  inset: 76.136% auto auto 54.323%;
  width: 7.813%;
  height: 7.386%;
}

.kamekawa-topic {
  margin-block-start: 32px;
}

@media (max-width: 1100px) {
  .kamekawa-topic {
    margin-block-start: calc(36 / 360 * 100vw);
  }
}

.kamekawa-topic+.kamekawa-topic {
  margin-block-start: 40px;
}

.kamekawa-topic-heading {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  color: #14326e;
}

@media (max-width: 1100px) {
  .kamekawa-topic-heading {
    font-size: calc(20 / 360 * 100vw);
  }
}

.kamekawa-topic-body {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-block-start: 12px;
}

@media (max-width: 1100px) {
  .kamekawa-topic-body {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: calc(16 / 360 * 100vw);
    margin-block-start: calc(16 / 360 * 100vw);
  }

  .kamekawa-topic-body .kamekawa-text {
    order: 1;
  }

  .kamekawa-topic-body .kamekawa-photos {
    order: 2;
  }
}

.kamekawa-photos {
  display: flex;
  flex: 1 0 0;
  flex-wrap: wrap;
  gap: 16px;
  max-width: 556px;
  min-width: 270px;
  margin-block-start: 6px;
}

.kamekawa-photos img {
  display: block;
  flex-shrink: 0;
  width: 270px;
  height: 203px;
  object-fit: cover;
}

@media (max-width: 1100px) {
  .kamekawa-photos {
    flex: none;
    gap: calc(12 / 360 * 100vw);
    max-width: none;
    min-width: 0;
  }

  .kamekawa-photos img {
    width: calc((100% - calc(12 / 360 * 100vw)) / 2);
    height: auto;
    aspect-ratio: 270/203;
  }
}

.kamekawa-photo {
  flex-shrink: 0;
  width: 270px;
  height: 203px;
}

.kamekawa-photo--empty {
  background-color: #bababa;
}

@media (max-width: 1100px) {
  .kamekawa-photo {
    width: calc((100% - calc(12 / 360 * 100vw)) / 2);
    height: auto;
    aspect-ratio: 270/203;
  }
}

.kamekawa-text {
  display: flex;
  flex: 1 0 0;
  flex-direction: column;
  gap: 16px;
  max-width: 380px;
  min-width: 0;
}

@media (max-width: 1100px) {
  .kamekawa-text {
    flex: none;
    gap: calc(16 / 360 * 100vw);
    max-width: none;
  }
}

.kamekawa-subhead {
  font-size: 20px;
  font-weight: 700;
  line-height: normal;
  color: #000000;
}

@media (max-width: 1100px) {
  .kamekawa-subhead {
    font-size: calc(16 / 360 * 100vw);
  }
}

.kamekawa-body {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .kamekawa-body {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.kamekawa-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .kamekawa-deco svg {
    width: auto;
    height: auto;
  }
}

.kamekawa-deco--1 {
  top: -64px;
  right: 54px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--1 {
    top: calc(-24 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .kamekawa-deco--1 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.kamekawa-deco--1b {
  bottom: -56px;
  left: 54px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--1b {
    bottom: calc(-24 / 360 * 100vw);
    left: calc(4 / 360 * 100vw);
  }

  .kamekawa-deco--1b svg {
    width: calc(44 / 360 * 100vw);
  }
}

.kamekawa-deco--2 {
  top: 262px;
  right: 54px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--2 {
    top: calc(150 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .kamekawa-deco--2 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.kamekawa-deco--3 {
  top: 586px;
  left: 358px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--3 {
    top: calc(340 / 360 * 100vw);
    left: calc(120 / 360 * 100vw);
  }

  .kamekawa-deco--3 svg {
    width: calc(48 / 360 * 100vw);
  }
}

.kamekawa-deco--6 {
  top: 1026px;
  right: 60px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--6 {
    top: calc(560 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .kamekawa-deco--6 svg {
    width: calc(48 / 360 * 100vw);
  }
}

.kamekawa-deco--4 {
  top: 210px;
  right: 380px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--4 {
    top: calc(150 / 360 * 100vw);
    right: calc(120 / 360 * 100vw);
  }

  .kamekawa-deco--4 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.kamekawa-deco--5 {
  top: 647px;
  right: 60px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--5 {
    top: calc(380 / 360 * 100vw);
    right: calc(4 / 360 * 100vw);
  }

  .kamekawa-deco--5 svg {
    width: calc(48 / 360 * 100vw);
  }
}

.kamekawa-deco--7 {
  top: 318px;
  left: 372px;
  --parallax-range: 60px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--7 {
    top: calc(230 / 360 * 100vw);
    left: calc(120 / 360 * 100vw);
  }

  .kamekawa-deco--7 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.kamekawa-deco--8 {
  top: 1190px;
  left: 372px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--8 {
    top: calc(760 / 360 * 100vw);
    left: calc(120 / 360 * 100vw);
  }

  .kamekawa-deco--8 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.kamekawa-deco--9 {
  top: 1070px;
  right: 380px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--9 {
    top: calc(150 / 360 * 100vw);
    right: calc(120 / 360 * 100vw);
  }

  .kamekawa-deco--9 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.kamekawa-deco--10 {
  top: 200px;
  right: 380px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .kamekawa-deco--10 {
    top: calc(150 / 360 * 100vw);
    right: calc(120 / 360 * 100vw);
  }

  .kamekawa-deco--10 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.workstyle-section {
  margin-block-start: 130px;
}

.workstyle-section--last {
  margin-block-end: 285px;
}

@media (max-width: 1100px) {
  .workstyle-section {
    margin-block-start: calc(50 / 360 * 100vw);
  }

  .workstyle-section--last {
    margin-block-end: calc(60 / 360 * 100vw);
  }
}

.workstyle-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

@media (max-width: 1100px) {
  .workstyle-inner {
    max-width: none;
    padding-inline: calc(45 / 360 * 100vw);
  }
}

.workstyle-inner {
  position: relative;
}

.workstyle-heading .section-heading-ja {
  color: #ff0000;
}

.workstyle-sub-heading {
  margin-block-start: 52px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  color: #14326e;
}

.workstyle-sub-heading--gap {
  margin-block-start: 14px;
}

@media (max-width: 1100px) {
  .workstyle-sub-heading {
    margin-block-start: calc(16 / 360 * 100vw);
    font-size: calc(18 / 360 * 100vw);
  }
}

.workstyle-body {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875;
  color: #000000;
}

.workstyle-body p+p {
  margin-block-start: 30px;
}

@media (max-width: 1100px) {
  .workstyle-body {
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }

  .workstyle-body p+p {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.workstyle-lead {
  margin-block-start: 10px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875;
  color: #000000;
}

@media (max-width: 1100px) {
  .workstyle-lead {
    margin-block-start: calc(16 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
    line-height: 1.9;
  }
}

.workstyle-sub-heading+.workstyle-body {
  margin-block-start: 20px;
}

@media (max-width: 1100px) {
  .workstyle-sub-heading+.workstyle-body {
    margin-block-start: calc(14 / 360 * 100vw);
  }
}

.workstyle-body-strong {
  font-weight: 700;
  margin-block-start: 30px;
}

@media (max-width: 1100px) {
  .workstyle-body-strong {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.workstyle-list {
  margin-block: 30px;
  padding-inline-start: 24px;
  list-style: disc;
}

.workstyle-list li {
  font-weight: 700;
  line-height: 1.875;
}

@media (max-width: 1100px) {
  .workstyle-list {
    padding-inline-start: calc(22 / 360 * 100vw);
  }
}

p.workstyle-body-strong+.workstyle-list {
  margin-block-start: 0;
}

.workstyle-inline-link {
  font-weight: 700;
  color: #0089c6;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (any-hover: hover) {
  .workstyle-inline-link {
    transition: opacity 0.3s;
  }

  .workstyle-inline-link:hover {
    opacity: 0.7;
  }
}

.workstyle-block {
  margin-block-start: 80px;
}

@media (max-width: 1100px) {
  .workstyle-block {
    margin-block-start: calc(40 / 360 * 100vw);
  }
}

.workstyle-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-block-start: 50px;
  padding: 0;
  list-style: none;
}

@media (max-width: 1100px) {
  .workstyle-cards {
    grid-template-columns: 1fr;
    gap: calc(20 / 360 * 100vw);
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

.workstyle-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 375px;
  padding: 24px 34px;
  border: 1px solid #222;
  background-color: #ffffff;
}

@media (max-width: 1100px) {
  .workstyle-card {
    min-height: 0;
    padding: calc(24 / 360 * 100vw) calc(28 / 360 * 100vw);
  }
}

.workstyle-card-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .workstyle-card-title {
    font-size: calc(16 / 360 * 100vw);
  }
}

.workstyle-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 140px;
  margin-block-start: 24px;
}

.workstyle-card-icon img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

@media (max-width: 1100px) {
  .workstyle-card-icon {
    height: calc(120 / 360 * 100vw);
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

.workstyle-card-body {
  margin-block-start: 46px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.571;
  color: #000000;
}

@media (max-width: 1100px) {
  .workstyle-card-body {
    margin-block-start: calc(16 / 360 * 100vw);
    font-size: calc(13 / 360 * 100vw);
    line-height: 1.7;
  }
}

.workstyle-intro {
  display: flex;
  gap: 60px;
  align-items: flex-start;
  margin-block-start: 56px;
}

@media (max-width: 1100px) {
  .workstyle-intro {
    flex-direction: column;
    gap: calc(24 / 360 * 100vw);
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

.workstyle-intro-text {
  flex: 1 1 0;
  min-width: 0;
}

.workstyle-intro-text p+p {
  margin-block-start: 30px;
}

@media (max-width: 1100px) {
  .workstyle-intro-text p+p {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.workstyle-intro-media {
  flex-shrink: 0;
  width: 450px;
}

@media (max-width: 1100px) {
  .workstyle-intro-media {
    align-self: center;
    width: 100%;
    max-width: calc(320 / 360 * 100vw);
  }
}

.workstyle-intro-blob {
  display: block;
  width: 100%;
  height: auto;
}

.workstyle-telework {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  margin-block-start: 28px;
}

@media (max-width: 1100px) {
  .workstyle-telework {
    flex-direction: column;
    gap: calc(24 / 360 * 100vw);
    margin-block-start: calc(24 / 360 * 100vw);
  }
}

.workstyle-telework-text {
  flex: 1 1 0;
  min-width: 0;
}

.workstyle-telework-text p+p {
  margin-block-start: 30px;
}

@media (max-width: 1100px) {
  .workstyle-telework-text p+p {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.workstyle-telework-media {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 343px;
}

@media (max-width: 1100px) {
  .workstyle-telework-media {
    align-self: center;
    width: 100%;
    max-width: calc(320 / 360 * 100vw);
    gap: calc(16 / 360 * 100vw);
  }
}

.workstyle-telework-image {
  display: block;
  width: 100%;
  height: auto;
}

.workstyle-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .workstyle-deco svg {
    width: auto;
    height: auto;
  }
}

.workstyle-deco--1 {
  top: -36px;
  right: 50px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .workstyle-deco--1 {
    top: calc(-8 / 360 * 100vw);
    right: calc(15 / 360 * 100vw);
  }

  .workstyle-deco--1 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.workstyle-deco--2 {
  top: 301px;
  left: 379px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--2 {
    top: calc(150 / 360 * 100vw);
    left: calc(150 / 360 * 100vw);
  }

  .workstyle-deco--2 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.workstyle-deco--3 {
  top: 1165px;
  right: 50px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .workstyle-deco--3 {
    top: calc(1180 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .workstyle-deco--3 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.workstyle-deco--3b {
  top: 765px;
  right: 50px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .workstyle-deco--3b {
    top: calc(1180 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .workstyle-deco--3b svg {
    width: calc(50 / 360 * 100vw);
  }
}

.workstyle-deco--4 {
  top: 1273px;
  right: 356px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--4 {
    top: calc(1290 / 360 * 100vw);
    right: calc(80 / 360 * 100vw);
  }

  .workstyle-deco--4 svg {
    width: calc(58 / 360 * 100vw);
  }
}

.workstyle-deco--5 {
  top: 24px;
  right: 50px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .workstyle-deco--5 {
    top: calc(10 / 360 * 100vw);
    right: calc(15 / 360 * 100vw);
  }

  .workstyle-deco--5 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.workstyle-deco--5a {
  top: -64px;
  right: 50%;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .workstyle-deco--5a {
    top: calc(10 / 360 * 100vw);
    right: calc(15 / 360 * 100vw);
  }

  .workstyle-deco--5a svg {
    width: calc(44 / 360 * 100vw);
  }
}

.workstyle-deco--5b {
  top: 480px;
  left: 360px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .workstyle-deco--5b {
    top: calc(10 / 360 * 100vw);
    left: calc(15 / 360 * 100vw);
  }

  .workstyle-deco--5b svg {
    width: calc(44 / 360 * 100vw);
  }
}

.workstyle-deco--6 {
  top: 354px;
  left: 50px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .workstyle-deco--6 {
    top: calc(300 / 360 * 100vw);
    left: calc(10 / 360 * 100vw);
  }

  .workstyle-deco--6 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.workstyle-deco--7 {
  top: 790px;
  right: 377px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--7 {
    top: calc(640 / 360 * 100vw);
    right: calc(80 / 360 * 100vw);
  }

  .workstyle-deco--7 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.workstyle-deco--9 {
  top: 1234px;
  right: 50px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--9 {
    top: calc(1010 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .workstyle-deco--9 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.workstyle-deco--10 {
  top: 1333px;
  right: 50px;
  --parallax-range: -80px;
}

@media (max-width: 1100px) {
  .workstyle-deco--10 {
    top: calc(1090 / 360 * 100vw);
    right: calc(15 / 360 * 100vw);
  }

  .workstyle-deco--10 svg {
    width: calc(44 / 360 * 100vw);
  }
}

.workstyle-deco--11 {
  top: 2098px;
  left: 367px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--11 {
    top: calc(1700 / 360 * 100vw);
    left: calc(150 / 360 * 100vw);
  }

  .workstyle-deco--11 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.workstyle-deco--11a {
  top: 1764px;
  left: 367px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--11a {
    top: calc(1010 / 360 * 100vw);
    left: calc(150 / 360 * 100vw);
  }

  .workstyle-deco--11a svg {
    width: calc(40 / 360 * 100vw);
  }
}

.workstyle-deco--11b {
  top: 2098px;
  left: 627px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--11b {
    top: calc(1700 / 360 * 100vw);
    left: calc(150 / 360 * 100vw);
  }

  .workstyle-deco--11b svg {
    width: calc(50 / 360 * 100vw);
  }
}

.workstyle-deco--12 {
  top: 18px;
  right: 50px;
  --parallax-range: -70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--12 {
    top: calc(6 / 360 * 100vw);
    right: calc(14 / 360 * 100vw);
  }

  .workstyle-deco--12 svg {
    width: calc(50 / 360 * 100vw);
  }
}

.workstyle-deco--13 {
  top: 456px;
  right: 377px;
  --parallax-range: 80px;
}

@media (max-width: 1100px) {
  .workstyle-deco--13 {
    top: calc(420 / 360 * 100vw);
    right: calc(80 / 360 * 100vw);
  }

  .workstyle-deco--13 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.workstyle-deco--14 {
  top: 30px;
  left: 367px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--14 {
    top: calc(30 / 360 * 100vw);
    left: calc(150 / 360 * 100vw);
  }

  .workstyle-deco--14 svg {
    width: calc(40 / 360 * 100vw);
  }
}

.workstyle-deco--15 {
  top: 490px;
  left: 367px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .workstyle-deco--15 {
    top: calc(200 / 360 * 100vw);
    left: calc(150 / 360 * 100vw);
  }

  .workstyle-deco--15 svg {
    width: calc(40 / 360 * 100vw);
  }
}

@media (max-width: 1100px) {
  .news-archive{
  display: flex;
flex-direction: column-reverse;
}}

@media (min-width: 1101px) {
  .news-archive {
    display: flex;
    align-items: flex-start;
    gap: 84px;
  }
}

@media (min-width: 1101px) {
  .news-archive .news-list {
    margin-block-start: 0;
  }
}

@media (min-width: 1101px) {
  .news-year-nav {
    flex: 0 0 160px;
  }
}

@media (max-width: 1100px) {
  .news-year-nav {
    margin-block-end: calc(32 / 360 * 100vw);
  }
}

.news-year-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (max-width: 1100px) {
  .news-year-list {
  margin-top: 40px;
}}

.news-year-item {
  border-block-end: 1px solid #000000;
  padding: 20px 0px;
}

.news-year-item:first-child {
  padding-top: 0px;
}

.news-year-item:last-child {
  border-block-end: none;
}

@media (max-width: 1100px) {
  .news-year-item {
    box-sizing: border-box;
    height: 44px;
    padding: 0;
  }
}

.news-year-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  padding: 0;
  border: none;
  background-color: transparent;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", Meiryo, sans-serif;
  font-size: 25px;
  font-weight: 700;
  line-height: 36px;
  color: #000000;
  text-decoration: none;
  cursor: pointer;
}

@media (max-width: 1100px) {
  .news-year-link {
    height: 100%;
    min-height: 44px;
    font-size: calc(18 / 360 * 100vw);
  }
}

@media (any-hover: hover) {
  .news-year-link:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}

.news-year-link.is-current {
  /*border-radius: 5px;*/
  background-color: #ff0000;
  color: #ffffff;
}

/* ======================================================
   corporate/topics/ 背景装飾の有機体SVG (Figma "BK"レイヤー, node 2001:19820)
   SVG自体はservice/oa/等と同一アセット(有機体1/5/6)を再利用し、位置指定のみ新規定義する。
   left/topは.news-inner(max-width:1000px、box左端はページ中央基準でx=140px相当)基準のローカル値。
   Figma上にSP版フレームが存在しないため、SPでは非表示にする(既存の.service-deco等と同様)。
   ====================================================== */

.news-archive-deco {
  position: absolute;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .news-archive-deco {
    display: none;
  }
}

/* 有機体1: コンテンツ右上 (Figma abs x=1064,y=463 → コンテンツ開始より42px上) */
.news-archive-deco--1 {
  top: -42px;
  left: 924px;
  --parallax-range: 100px;
}

/* 有機体5: 年別サイドバー最下部(2017年ボタン下) (Figma abs x=211,y=1285 → コンテンツ開始より780px下) */
.news-archive-deco--5 {
  top: 780px;
  left: 71px;
  --parallax-range: -60px;
}

/* 有機体6: お知らせ一覧右下・フッター手前 (Figma abs x=1072,y=1333 → コンテンツ開始より828px下) */
.news-archive-deco--6 {
  top: 828px;
  left: 932px;
  --parallax-range: 120px;
}

.u-text-right {
  text-align: right;

}

.u-list-disc {
  list-style: none;
}

.u-list-disc>li {
  position: relative;
  padding-inline-start: 24px;
}

.u-list-disc>li::before {
  content: "•";
  position: absolute;
  left: 8px;
  color: currentColor;
}

.u-center{
  text-align: center;
}

/* ======================================================
   corporate/tokyo/ 追加分 (SCSS未反映・styles.cssへ直接追記)
   ====================================================== */

/* 業務内容: アイコン付きボックス5個 (Figma PC_東京事務所 node 2001:18524)
   既存.workstyle-card(縦積み大型カード)とは構造が異なるため新規追加 */
.workstyle-duties {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-block-start: 20px;
  padding: 0;
  list-style: none;
}

@media (max-width: 1100px) {
  .workstyle-duties {
    grid-template-columns: 1fr;
    gap: calc(16 / 360 * 100vw);
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.workstyle-duty {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 100px;
  padding-inline: 24px;
  border: 1px solid #000000;
  box-sizing: border-box;
}

@media (max-width: 1100px) {
  .workstyle-duty {
    height: auto;
    min-height: calc(80 / 360 * 100vw);
    padding: calc(16 / 360 * 100vw) calc(20 / 360 * 100vw);
    gap: calc(12 / 360 * 100vw);
  }
}

.workstyle-duty-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 70px;
}

@media (max-width: 1100px) {
  .workstyle-duty-icon {
    flex-basis: calc(56 / 360 * 100vw);
  }
}

.workstyle-duty-icon img {
  display: block;
  max-width: 100%;
  height: auto;
}

.workstyle-duty-text {
  flex: 1 1 auto;
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .workstyle-duty-text {
    font-size: calc(15 / 360 * 100vw);
  }
}

/* Photo Gallery: 各画像下のキャプション (Figma Frame 486)
   既存.corporate-item-title(24px/紺)はサイズ・用途が異なるため新規追加 */
.corporate-item-caption {
  display: block;
  margin-block-start: 16px;
  font-size: 16px;
  font-weight: 500;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .corporate-item-caption {
    margin-block-start: calc(12 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

/* 紹介文セクションの画像に角丸を付与 (Figma上はrounded-12px)
   .sustainability-media-image等の既存クラスは他ページと共有のため、
   このページの当該画像にのみ影響するよう新規クラスとして追加 */
.workstyle-intro-image {
  border-radius: 12px;
}

/* ======================================================
   Photo Gallery (Figma Frame 486, node 311:1994) 専用コンポーネント
   共有の.corporate-nav/.corporate-list(孫ページ導線リスト用のflexコンポーネント)を
   流用すると、SPで画像幅がコンテナ幅を超えた際にflex-wrap:wrap+align-items:centerの
   仕様上「フレックスラインのクロスサイズは最大の子要素幅まで拡張される」規則により
   画像が中央ではなく右寄せに表示される不具合が生じるため、CSS Gridベースの
   専用コンポーネントとして新規に切り出した。
   また.corporate-navが持っていたpadding-inlineが.workstyle-innerのpaddingと
   二重にかかっていた問題も、このコンポーネントは独自paddingを持たないことで解消している。
   ====================================================== */
.tokyo-gallery {
  position: relative;
  margin-block: 83px 120px;
}

@media (max-width: 1100px) {
  .tokyo-gallery {
    margin-block: calc(30 / 360 * 100vw) calc(60 / 360 * 100vw);
  }
}

/* グリッド仕様はFigma実測値をそのまま採用 (画像450×272.727px、列間gap60px、行間gap75px。
   行間はキャプション分の高さ(margin-block-start16px+1行分24px≒40px)を差し引いた35pxをrow-gapとし、
   画像下のキャプションと合わせて視覚上の行間75pxを再現する) */
.tokyo-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 450px);
  column-gap: 60px;
  row-gap: 35px;
  margin-top: 28px;
  list-style: none;
  padding: 0;
}

@media (max-width: 1100px) {

  /* Figma上にSP版のフレームが存在しないため、既存の他ページSP実装(ブレークポイント1100px、
     sp-vwによるフルリキッド)の慣例に合わせて1カラムで独自に設計した */
  .tokyo-gallery-grid {
    grid-template-columns: 1fr;
    row-gap: calc(35 / 360 * 100vw);
    margin-top: calc(28 / 360 * 100vw);
  }
}

.tokyo-gallery-item-image {
  display: block;
  width: 100%;
  height: auto;
}

/* Photo Gallery専用キャプション。.corporate-item-caption(丸の内仲通りビル正面入り口の
   キャプションと共有)から独立させた新規クラス。スペック自体は同一(16px/500/黒/中央/画像との間隔16px) */
.tokyo-gallery-item-caption {
  display: block;
  margin-block-start: 16px;
  font-size: 16px;
  font-weight: 500;
  color: #000000;
  text-align: center;
}

@media (max-width: 1100px) {
  .tokyo-gallery-item-caption {
    margin-block-start: calc(12 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

/* 装飾的な差し込み写真 (Figma node 311:2008, img_photogallery07.webp, 362×300=181×150の2倍)。
   グリッドの列間ガター中央に重ねて配置されている。グリッド幅960pxのちょうど50%が
   ガター中心と一致するため、コンテナ幅に依存しないleft:50%+translateX(-50%)で中心寄せする。
   topはFigma Frame486ローカル座標(画像1段目top=88起点でtop=326)をそのまま採用。 */
.tokyo-gallery-accent-photo {
  display: block;
  position: absolute;
  top: 326px;
  left: 50%;
  width: 181px;
  height: 150px;
  transform: translateX(-50%);
  pointer-events: none;
}

@media (max-width: 1100px) {

  /* Figma上にSP版のフレームが存在しないため、SPでは実装せず非表示にする */
  .tokyo-gallery-accent-photo {
    display: none;
  }
}

/* ======================================================
   corporate/tokyo/ 背景装飾の有機体SVG (Figma "BK"レイヤー, node 2001:18530)
   既存の.workstyle-deco/.workstyle-deco--N (corporate/de-i/workstyle/index.html) と
   同じ仕組みを使う。.workstyle-innerは元々position:relative指定済みのため追加CSSは不要。
   番号は既存ページ(--1〜--15)と衝突しないよう--16以降を採番した。
   座標はFigmaの1280px/960幅キャンバスをそのまま使える箇所はcontent-local値を採用した。
   算出根拠は各配置箇所のHTMLコメントを参照。
   ====================================================== */

/* 有機体1: 紹介文セクション右上 (Figma left=1064,top=501 → セクション開始より4px上) */
.workstyle-deco--16 {
  top: -4px;
  right: 2px;
  --parallax-range: -60px;
}

/* 有機体2(1個目): 紹介文セクション左下 (Figma left=160,top=794 → セクション下端から9px下) */
.workstyle-deco--17 {
  bottom: -48px;
  left: 0;
  --parallax-range: 80px;
}

/* 有機体3: 働き方セクション右下 (Figma left=1041,top=1605 → セクション下端から10px下) */
.workstyle-deco--18 {
  bottom: -85px;
  right: 5px;
  --parallax-range: -70px;
}

/* 有機体5: 立地の魅力セクション下端をまたぐ (Figma left=707,top=2203 → セクション下端から44px下) */
.workstyle-deco--19 {
  bottom: -92px;
  left: 547px;
  --parallax-range: 90px;
}

/* 有機体2(2個目): Photo Galleryセクション下端をまたぐ (Figma left=633,top=3374 → セクション下端から22px下) */
.workstyle-deco--20 {
  bottom: -61px;
  left: 473px;
  --parallax-range: 70px;
}

/* 有機体6: Photo Gallery内、2段目と3段目画像の間・左端 (.tokyo-galleryが基準)
   Figma node 2001:18531 (x=164,y=2522、BKレイヤー起点y=445を加算) を
   Frame486起点(x=0,y=2253)・コンテンツ左マージン(160px)基準のローカル座標に変換した
   (top: 2522+445-2253=714 / left: 164-160=4) */
.workstyle-deco--21 {
  top: 714px;
  left: 4px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {

  /* Figma上にSP版のフレームが存在しないため、SPでは実装せず非表示にする */
  .workstyle-deco--16,
  .workstyle-deco--17,
  .workstyle-deco--18,
  .workstyle-deco--19,
  .workstyle-deco--20,
  .workstyle-deco--21 {
    display: none;
  }
}

/* corporate/tokyo/ の最終セクション専用クラス。共有の.workstyle-sectionを付け替えたため、
   margin-block-start:130pxは引き継がず、代わりにmargin-bottom:95pxを持たせている。
   .workstyle-section--last(margin-block-end:285px)は既存のまま残しているため、
   フッターとの間隔はこの95pxと加算される。 */
.tokyo-section {
  margin-bottom: 95px;
}

@media (max-width: 1100px) {
  .tokyo-section {
    margin-bottom: calc(95 / 360 * 100vw);
  }
}

.pc_hide{
  display: none;
}

@media (max-width: 1100px) {
  .pc_hide{
    display: block;
  }
}

.sp_hide{
  display: block;
}

@media (max-width: 1100px) {
  .sp_hide{
    display: none;
  }
}

.news-detail {
  padding-block-end: 100px;
}

@media (max-width: 1100px) {
  .news-detail {
    padding-block-end: calc(60 / 360 * 100vw);
  }
}

/* 日付: 既存.news-item-date(黒)とは色が異なる(Figma実測 #646464)ため新規追加 */
.news-detail-date {
  display: block;
  margin-block-end: 4px;
  font-size: 16px;
  font-weight: 500;
  color: #646464;
}

@media (max-width: 1100px) {
  .news-detail-date {
    font-size: calc(14 / 360 * 100vw);
  }
}

.news-detail-body {
  margin-block-start: 30px;
}

@media (max-width: 1100px) {
  .news-detail-body {
    margin-block-start: calc(20 / 360 * 100vw);
  }
}

.news-detail-gallery {
  position: relative;
  margin-block-start: 100px;
}

@media (max-width: 1100px) {
  .news-detail-gallery {
    margin-block-start: calc(60 / 360 * 100vw);
  }
}

/* .workstyle-sub-heading本来のmargin-block-start(52px)は.news-detail-gallery側の
   余白と二重になるため、この文脈でのみ0にリセットする */
.news-detail-gallery-heading {
  margin-block-start: 0;
}

.news-detail-gallery-main {
  display: block;
  width: 539px;
  height: auto;
  margin-block-start: 24px;
}

@media (max-width: 1100px) {
  .news-detail-gallery-main {
    width: 100%;
    margin-block-start: calc(16 / 360 * 100vw);
  }
}

.news-detail-gallery-caption {
  margin-block: 40px 20px;
  font-size: 16px;
  font-weight: 500;
  color: #000000;
}

@media (max-width: 1100px) {
  .news-detail-gallery-caption {
    margin-block: calc(30 / 360 * 100vw) calc(15 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}

.news-detail-gallery-row {
  display: flex;
  gap: 28px;
}

.news-detail-gallery-row img {
  display: block;
  width: 324px;
  height: auto;
}

@media (max-width: 1100px) {
  .news-detail-gallery-row {
    flex-direction: column;
    gap: calc(20 / 360 * 100vw);
  }

  .news-detail-gallery-row img {
    width: 100%;
  }
}

.news-detail-back-button {
  margin-block: 80px 0;
}

@media (max-width: 1100px) {
  .news-detail-back-button {
    margin-block-start: calc(40 / 360 * 100vw);
  }
}

/* 背景装飾の有機体SVG */
.news-detail-deco {
  position: absolute;
  pointer-events: none;
}

/* 有機体1 */
.news-detail-deco--1 {
  top: -42px;
  right: 2px;
  --parallax-range: -60px;
}

/* 有機体2 */
.news-detail-deco--2 {
  top: 353px;
  left: 651px;
  --parallax-range: -60px;
}

/* 有機体3 */
.news-detail-deco--3 {
  top: 45px;
  right: 2px;
  --parallax-range: 80px;
}

/* 有機体5 */
.news-detail-deco--5 {
  top: -54px;
  left: 318px;
  --parallax-range: 70px;
}

/* 有機体6 */
.news-detail-deco--6 {
  top: 736px;
  right: 27px;
  --parallax-range: -60px;
}

@media (max-width: 1100px) {
  .news-detail-deco {
    display: none;
  }
}

/* ======================================================
   会社情報 メッセージ・企業理念ページ (corporate/message/ / Figma: PC_メッセージ・企業理念 2080:9125)
   ====================================================== */

/* ------------------------------------------------------
   セクション共通
   ------------------------------------------------------ */

/* ------------------------------------------------------
   青色見出しモディファイア
   ------------------------------------------------------ */
.message-heading--blue .section-heading-ja {
  color: #006097;
}

.message-section + .message-section {
  margin-block-start: 100px;
}

.message-section-inner {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

.message-text {
  margin-block-start: 20px;
}

.message-text p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
  text-align: justify;
}

.message-text p + p {
  margin-block-start: 20px;
}

.message-text--tight p + p {
  margin-block-start: 0;
}

.message-grid {
  margin-block-start: 20px;
}

/* SPでは中村裕博士の写真+2つのボックス(.message-side)を本文より先に表示する */
@media (max-width: 1100px) {
  .message-grid.-reverse {
    display: flex;
    flex-direction: column;
  }

  .message-grid.-reverse .message-side {
    order: -1;
  }
}

@media (min-width: 1101px) {
  .message-grid {
    display: grid;
    grid-template-columns: 420px 1fr;
    column-gap: 35px;
    align-items: start;
  }

  .message-grid .message-text {
    margin-block-start: 0;
  }

  .message-grid.-reverse {
    grid-template-columns: 1fr 420px;
  }

  .message-grid.-reverse .message-text {
    order: 1;
  }

  .message-grid.-reverse .message-side {
    order: 2;
  }
}

.message-photo-block img {
  display: block;
  width: 100%;
  height: auto;
}

.message-side {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-block-start: 20px;
}

@media (min-width: 1101px) {
  .message-side {
    margin-block-start: 0;
  }
}

.message-signature {
  margin-block-start: 10px;
  text-align: left;
  color: #000000;
}

.message-signature-role {
  display: block;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5625;
}

.message-signature-name {
  display: block;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.4;
}

.message-namebox {
  margin: 0;
  height: 64px;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #14326e;
  color: #ffffff;
  font-weight: 700;
}

.message-namebox-label {
  position: relative;
  top: 4px;
  font-size: 24px;
}

.message-namebox-name {
  margin-inline: 4px;
  font-size: 32px;
}

/* PC固定サイズ(32px)のまま横幅が縮むと文字が箱からはみ出すため、
   SPでは高さを可変にしつつ折り返しを許容し、文字サイズも縮小する */
@media (max-width: 1100px) {
  .message-namebox {
    height: auto;
    min-height: 64px;
    flex-wrap: wrap;
    row-gap: 4px;
  }

  .message-namebox-label {
    font-size: 18px;
  }

  .message-namebox-name {
    font-size: 24px;
  }
}

.message-quote {
  margin: 0;
  padding: 10px 40px;
  background-color: rgba(20, 50, 110, 0.2);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: #000000;
  text-align: left;
}

.message-divider {
  width: 100%;
  max-width: 960px;
  margin: 100px auto 0;
  border: none;
  border-top: 2px solid #14326e;
}

@media (max-width: 1100px) {
  .message-divider {
    width: auto;
    margin-block: 48px;
    margin-inline: 20px;
  }
}

.message-principles {
  margin-block-start: 100px;
  padding-block: 0 100px;
  background-color: #ffffff;
  text-align: center;
}

@media (max-width: 1100px) {
  .message-principles {
    margin-block-start: 48px;
  }
}

.message-principles-inner {
  width: 100%;
  max-width: 1000px;
  margin-inline: auto;
  padding-inline: 20px;
}

.message-principles-heading {
  margin: 0;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 36px;
  font-weight: 700;
  color: #000000;
}

.message-principles-lead {
  margin-block-start: 20px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
}

.message-principles-image {
  margin-block-start: 40px;
}

.message-principles-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.message-principles-list {
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.message-principles-item-title {
  margin: 0;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 28px;
  font-weight: 700;
  color: #000000;
}

.message-principles-item-kana {
  margin: 4px 0 0;
  font-size: 14px;
  font-weight: 500;
  color: #000000;
}

.message-principles-item-body {
  margin: 15px 0 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.875;
  color: #000000;
  text-align: left;
}

.message-principles-note {
  margin-block-start: 20px;
  font-size: 16px;
  color: #000000;
}

@media (min-width: 1101px) {
  .message-principles-list {
    flex-direction: row;
    justify-content: space-between;
    gap: 0;
  }

  .message-principles-item {
    width: 240px;
    text-align: center;
  }
}

/* ------------------------------------------------------
   有機体装飾 (スクロール連動パララックス)。動きは_parallax.js+components/_parallax.scss。
   ------------------------------------------------------ */
.message-deco {
  position: absolute;
  pointer-events: none;
}

/* 有機体1 (青ブロブ+ピンク小円+グレー小キラキラ) */
.message-deco--0 {
  top: -2px;
  right: 20px;
  --parallax-range: -60px;
}

/* 有機体2 (オレンジ三角+グラデ有機体+ピンクキラキラ) */
.message-deco--1 {
  top: 565px;
  left: 227px;
  --parallax-range: 60px;
}

/* 有機体5 (黄六角形+青小円) を見出し右へ */
.message-deco--3 {
  top: -9px;
  left: 898px;
  --parallax-range: -70px;
}

/* 有機体6 (ピンク風車+オレンジ小円+緑キラキラ) */
.message-deco--2 {
  top: 1160px;
  left: 55px;
  --parallax-range: 70px;
}

@media (max-width: 1100px) {
  .message-deco {
    display: none;
  }
}

.wysiwyg {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875;
  color: #000000;
  margin-block-start: 30px;
}

.wysiwyg em {
  font-style: italic;
  font-weight: normal;
}

.wysiwyg strong {
  font-weight: bolder;
}

.wysiwyg ul {
  padding-inline-start: 1rem;
  list-style-type: disc;
}

.wysiwyg ol {
  padding-inline-start: 1rem;
  list-style-type: decimal;
}

.wysiwyg a {
  color: #0089c6;
  font-weight: 700;
  text-decoration: underline;
}

.wysiwyg table {
  width: 100%;
  margin: 1.618em 0;
  border-spacing: 0;
  border: 1px solid #c0c6c9;
  border-width: 1px 0 0 1px;
}

.wysiwyg table th,
.wysiwyg table td {
  padding: 0.5em;
  border: solid #c0c6c9;
  border-width: 0 1px 1px 0;
  text-align: left;
  vertical-align: top;
  word-wrap: break-word;
}

.wysiwyg table th {
  background-color: #f3f3f3;
}

.wysiwyg blockquote {
  margin: 0 0 0 1.618em;
  padding: 0 1.618em;
  border-left: 3px solid #c0c6c9;
}

@media (max-width: 1100px) {
  .wysiwyg {
    margin-block-start: calc(20 / 360 * 100vw);
    font-size: calc(14 / 360 * 100vw);
  }
}