@charset "UTF-8";/*
 * Google Fonts は func-enqueue.php の wp_enqueue_style（front-stage-google-fonts）で読み込む。
 * @import だとメイン CSS のパースがフォント取得でブロックされ FOUC の原因になりやすい。
 */

/*! kiso.css v1.2.4 | MIT License | https://github.com/tak-dcxi/kiso.css */
/* ======================================================
//  MARK: Universal
// ====================================================== */
*,
::before,
::after {
  /*
  * Includes `padding` and `border` in the element's specified dimensions.
  * It is highly recommended to set `box-sizing: border-box;` by default, as it makes styling much easier, especially when specifying `width: 100%;`.
  */
  box-sizing: border-box;
}
/* ======================================================
//  MARK: Document and Body Elements
// ====================================================== */
:where(:root) {
  /* In Safari, if `font-family` is not specified, a serif font is applied by default, so `sans-serif` is set as the default here. */
  font-family: sans-serif;

  /*
  * For accessibility, it is recommended to set the `line-height` to at least 1.5 times the text size within paragraphs.
  * @see https://waic.jp/translations/WCAG21/#visual-presentation
  */
  line-height: 1.5;

  /* Remove space when punctuation marks are adjacent, and also remove leading spaces in a line. */
  text-spacing-trim: trim-start;

  /* Improves readability by inserting a small space between Japanese and alphanumeric characters. */
  text-autospace: normal;

  /* Prevents misreading by applying strict line-breaking rules. */
  line-break: strict;

  /* Wraps English words mid-word. Specifying `anywhere` also prevents content from overflowing in layouts like `flex` or `grid`. */
  overflow-wrap: anywhere;

  /*
  * Mobile browsers have an algorithm that automatically adjusts font sizes to prevent text from becoming too small.
  * This controls the auto-adjustment feature to prevent unwanted resizing.
  */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;

  /*
  * Prevents layout shift caused by the appearance or disappearance of the scrollbar.
  * Starting with Chrome 145, specifying `scrollbar-gutter: stable` will cause vw to be calculated without considering the scrollbar, which will also prevent horizontal scrolling.
  */
  scrollbar-gutter: stable;

  /* Suppresses the tap highlight on iOS. */
  -webkit-tap-highlight-color: transparent;
}
:where(body) {
  /*
  * When creating a sticky footer, a minimum height is often required.
  * Setting the `min-block-size` to the dynamic viewport height ensures enough space for the footer.
  */
  min-block-size: 100dvb;

  /* The `margin` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  margin: unset;
}
/* ======================================================
// MARK: Sections
// ------------------------------------------------------ */
:where(:is(h1, h2, h3, h4, h5, h6):lang(en)) {
  /* Prevents the last line of text from ending with a single word, which can look awkward (known as an orphan). */
  text-wrap: pretty;
}
:where(h1) {
  /*
  * Adjusts user agent (UA) styles for `h1` elements within sectioning content.
  * This addresses DevTools warnings that appear when `h1` elements nested within sectioning content lack `font-size` and `margin` properties.
  * @see https://html.spec.whatwg.org/#sections-and-headings
  */
  margin-block: 0.67em;
  font-size: 2em;
}
:where(h2, h3, h4, h5, h6) {
  /* The `margin-block` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;
}
:where(search) {
  /*
  * The `<search>` element is supported from Safari 17.
  * This prevents it from being displayed as an inline element in unsupported environments.
  */
  display: block flow;
}
/* ======================================================
//  MARK: Grouping content
// ====================================================== */
:where(p, blockquote, figure, pre, address, ul, ol, dl, menu) {
  /* The `margin-block` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;
}
:where(blockquote, figure) {
  /* The `margin-inline` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-inline: unset;
}
:where(p:lang(en)) {
  /*
  * In English, a single word on the last line is called a "widow" or "orphan" and is considered something to avoid as it makes the text harder to read.
  * Therefore, when lang="en", this prevents the last line from ending with a single word.
  */
  text-wrap: pretty;
}
:where(address:lang(ja)) {
  /* Italic style is not common in Japanese, so the `font-style` is reset. */
  font-style: unset;
}
:where(ul, ol, menu) {
  /* The `padding-inline-start` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  padding-inline-start: unset;

  /*
  * In Safari, using `list-style: none` prevents screen readers from announcing lists.
  * `list-style-type: ""` is used to hide markers without affecting accessibility.
  * @see https://matuzo.at/blog/2023/removing-list-styles-without-affecting-semantics
  */
  list-style-type: "";
}
:where(dt) {
  /* It is common to display `<dt>` elements in bold, so `font-weight: bolder;` is set by default. */
  font-weight: bolder;
}
:where(dd) {
  /* The `margin-inline-start` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-inline-start: unset;
}
:where(pre) {
  /*
  * Since `text-spacing-trim` can affect spacing in `<pre>` elements even with its initial value, the final rendering may depend on the user's font settings.
  * To ensure consistent alignment, `space-all` is explicitly specified and inheritance is prevented.
  */
  text-spacing-trim: space-all;

  /* Set to `no-autospace` as it can cause misalignment with monospaced fonts. */
  text-autospace: no-autospace;
}
@media print {
  :where(pre) {
    /* Prevent text wrapping in print media. */
    text-wrap-mode: unset;
  }
}
/* ======================================================
//  MARK: Text-level semantics
// ====================================================== */
:where(em:lang(ja)) {
  /* In Japanese, emphasis is commonly represented by bold text, so `font-weight: bolder;` is set by default. */
  font-weight: bolder;
}
:where(:is(i, cite, em, dfn):lang(ja)) {
  /* Italic style is not common in Japanese, so the `font-style` is reset. */
  font-style: unset;
}
:where(u, s, del, ins) {
  /* Set the underline inset to `auto` and separate only the horizontal lines when underlines are consecutive. */
  text-decoration-inset: auto;
}
:where(code, kbd, samp) {
  /*
  * Set a monospace font family referencing Tailwind.
  * @see https://tailwindcss.com/docs/font-family
  */
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    "Liberation Mono", "Courier New", monospace;

  /* Font feature settings can have adverse effects on monospaced fonts, so their values are explicitly set to `initial` to prevent inheritance. */
  font-feature-settings: initial;
  font-variation-settings: initial;

  /* Resets the `font-size` specified in the UA stylesheet to allow inheritance. */
  font-size: unset;

  /*
  * Disables font ligatures for programming fonts (like Fira Code)
  * to prevent character combinations like `=>` from being rendered as a single symbol (e.g., `⇒`).
  */
  font-variant-ligatures: none;
}
:where(abbr[title]) {
  /*
  * The `<abbr>` element with the `title` attribute isn't helpful regarding accessibility because support is inconsistent, and it's only accessible to some users.
  * This rule shows a dotted underline on abbreviations in all browsers (there's a bug in Safari) and changes the cursor.
  * @see https://adrianroselli.com/2024/01/using-abbr-element-with-title-attribute.html
  */
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-inset: auto;
  cursor: help;
}
:where(time) {
  /* Set to `no-autospace` because date notations in typography do not include spaces. */
  text-autospace: no-autospace;
}
@media (forced-colors: active) {
  :where(mark) {
    /*
    * In forced-colors mode, the color of the mark element may not change, which can be problematic. Use system colors in forced-colors mode.
    * @see https://adrianroselli.com/2017/12/tweaking-text-level-styles.html#MarkWHCM
    */
    background-color: Highlight;
    color: HighlightText;
  }
}
@media print {
  :where(mark) {
    /*
    * Not all printers support color, and users might print in grayscale.
    * It's worth adding a non-disruptive style that scales with the text, as an alternative to relying only on background color.
    * @see https://adrianroselli.com/2017/12/tweaking-text-level-styles.html#MarkPrint
    */
    border-width: 1px;
    border-style: dotted;
  }
}
/* ======================================================
//  MARK: Links
// ====================================================== */
:where(a) {
  /*
  * The default `color` from the UA stylesheet is rarely used as is, so it's reset to allow inheritance.
  * In Firefox on iOS, the user agent stylesheet’s text color is applied even when the text is not a link.
  * @see https://github.com/darkreader/darkreader/issues/9836
  */
  color: unset;
}
:where(a:any-link) {
  /*
  * While link underlines can be useful, they are often obstructive.
  * They are disabled by default.
  * If needed, restore them using `text-decoration-line: revert;`.
  */
  text-decoration-line: unset;

  /* Set the underline thickness to the font's default thickness. */
  text-decoration-thickness: from-font;

  /* Set the underline inset to `auto` and separate only the horizontal lines when underlines are consecutive. */
  text-decoration-inset: auto;
}
/* ======================================================
//  MARK: Embedded content
// ====================================================== */
:where(img, svg, picture, video, audio, canvas, model, iframe, embed, object) {
  /* Prevents overflow by setting the maximum width to `100%`. */
  max-inline-size: 100%;

  /* Prevents extra space from appearing at the bottom of the element. */
  vertical-align: bottom;
}
:where(img, svg, picture, video, canvas, model, iframe, embed, object) {
  /*
  * Automatically adjust block size based on content.
  * Exclude the <audio> element as it disappears when block-size is auto.
  * @see https://github.com/tak-dcxi/kiso.css/issues/5
  */
  block-size: auto;
}
:where(iframe) {
  /* The `border` specified in the UA stylesheet is often unnecessary, so it is reset. */
  border: unset;
}
/* ======================================================
//  MARK: Tabular data
// ====================================================== */
:where(table) {
  /* Collapse borders for a more refined table design. */
  border-collapse: collapse;
}
:where(caption, th) {
  /* The `text-align` specified in the UA stylesheet is often unnecessary, so it is reset. */
  text-align: unset;
}
:where(caption:lang(en)) {
  /* Prevents the last line of text from ending with a single word, which can look awkward (known as an orphan). */
  text-wrap: pretty;
}
/* ======================================================
//  MARK: Forms
// ====================================================== */
:where(button, input, select, textarea),
::file-selector-button {
  /*
  * These elements are often styled with a border, so a `1px` border is applied by default for consistency.
  * This ensures readability even for unstyled elements.
  * When resetting, it's recommended to use `border-color: transparent` instead of `border: none` to account for forced color modes.
  */
  border-width: 1px;
  border-style: solid;

  /* These styles specified in the UA stylesheet are often unnecessary, so they are reset to allow for inheritance. */
  border-color: unset;
  border-radius: unset;
  color: unset;
  font: unset;
  letter-spacing: unset;
  text-align: unset;
}
:where(input:is([type="radio" i], [type="checkbox" i])) {
  /* The `margin` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  margin: unset;
}
:where(input[type="file" i]) {
  /* The `border` is often unnecessary, so it is reset here. */
  border: unset;
}
:where(input[type="search" i]) {
  /* Remove the rounded corners of search inputs on macOS and normalize the background color. */
  -webkit-appearance: textfield;
}
@supports (-webkit-touch-callout: none) {
  :where(input[type="search" i]) {
    /* normalize the background color on iOS. */
    background-color: Canvas;
  }
}
:where(
    input:is(
        [type="tel" i],
        [type="url" i],
        [type="email" i],
        [type="number" i]
      ):not(:placeholder-shown)
  ) {
  /*
  * Certain input types need to maintain left alignment even in right-to-left (RTL) languages.
  * However, this only applies when the value is not empty, as the placeholder should be right-aligned.
  * @see https://rtlstyling.com/posts/rtl-styling#form-inputs
  */
  direction: ltr;
}
:where(textarea) {
  /* The `margin-block` specified in Firefox's UA stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;

  /* Allows vertical resizing for `<textarea>` elements. */
  resize: block;
}
:where(
    input:not([type="button" i], [type="submit" i], [type="reset" i]),
    textarea,
    [contenteditable]
  ) {
  /* Set to `no-autospace` because `text-autospace` can insert spaces during input, potentially causing erratic behavior. */
  text-autospace: no-autospace;
}
:where(
    button,
    input:is([type="button" i], [type="submit" i], [type="reset" i])
  ),
::file-selector-button {
  /* The `background-color` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  background-color: unset;
}
:where(
    button,
    input:is([type="button" i], [type="submit" i], [type="reset" i]),
    [role="tab" i],
    [role="button" i],
    [role="option" i]
  ),
::file-selector-button {
  /*
  * On iOS, double-tapping a button can cause zooming, which harms usability.
  * `touch-action: manipulation` is specified to disable zooming on double-tap.
  * Third-party plugins such as Swiper sometimes use div elements with these roles as buttons, since double-tapping a div can still trigger zooming, it's advisable to specify this property.
  */
  touch-action: manipulation;
}
:where(
    button:enabled,
    label[for],
    select:enabled,
    input:is(
        [type="button" i],
        [type="submit" i],
        [type="reset" i],
        [type="radio" i],
        [type="checkbox" i]
      ):enabled,
    [role="tab" i],
    [role="button" i],
    [role="option" i]
  ),
:where(:enabled)::file-selector-button {
  /* Indicate clickable elements with a pointer cursor. */
  cursor: pointer;
}
:where(fieldset) {
  /*
  * Prevent fieldset from causing overflow.
  * Reset the default `min-inline-size: min-content` to prevent children from stretching fieldset.
  * @see https://github.com/twbs/bootstrap/issues/12359
  */
  min-inline-size: 0;

  /* The following default styles are often unnecessary, so they are reset. */
  margin-inline: unset;
  padding: unset;
  border: unset;
}
:where(legend) {
  /* The default `padding-inline` is often unnecessary, so it is reset. */
  padding-inline: unset;
}
:where(progress) {
  /* Resets the vertical alignment of the `<progress>` element to its initial value. */
  vertical-align: unset;
}
::placeholder {
  /* Standardize the opacity of placeholder text (it may be set lower by default in Firefox). */
  opacity: unset;
}
/* ======================================================
//  MARK: Interactive elements
// ====================================================== */
:where(summary) {
  /* The default triangle marker is often unnecessary, so it is disabled. */
  list-style-type: "";

  /* Changing the cursor to a pointer clarifies the clickability of the element. */
  cursor: pointer;
}
:where(summary)::-webkit-details-marker {
  /* In Safari versions earlier than 18.4 (released in April 2025), a triangle icon is displayed using the -webkit-details-marker CSS pseudo-element, so it should be removed. */
  display: none;
}
:where(dialog, [popover]) {
  /*
  * When these fixed-position elements are scrolled, preventing scroll chaining on the underlying page and bounce effects on mobile improves usability.
  * Disabling block-direction scroll chaining is recommended.
  */
  overscroll-behavior-block: contain;

  /* The following default styles are often unnecessary, so they are reset. */
  padding: unset;
  border: unset;
}
:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  /*
  * These elements can be easily displayed by explicitly setting their `display` property.
  * To prevent them from appearing when not in an open state, they are forcibly hidden.
  */
  display: none !important;
}
:where(dialog) {
  /*
  * The max width and height of a `<dialog>` element are typically determined by the design.
  * These UA stylesheet properties are reset as they can be obstructive, especially when trying to make the dialog full-screen.
  */
  max-inline-size: unset;
  max-block-size: unset;
}
:where(dialog)::backdrop {
  /* Normalize the background color of the `::backdrop` element. */
  background-color: oklch(0% 0 0deg / 30%);
}
:where([popover]) {
  /*
  * While the UA stylesheet's `margin` for `<dialog>` elements is useful for centering with `inset: 0`,
  * but `margin` for `popover` elements is often obstructive as they frequently use Anchor Positioning.
  */
  margin: unset;
}
/* ======================================================
//  MARK: Focus Styles
// ====================================================== */
:where(:focus-visible) {
  /* Add space between the content and the focus outline. */
  outline-offset: 3px;
}
[tabindex="-1"]:focus {
  /* Prevent programmatically focused elements from displaying an outline unless they are naturally focusable. */
  outline: none !important;
}
/* ======================================================
//  MARK: Misc
// ====================================================== */
:where(:disabled, [aria-disabled="true" i]) {
  /* Display the default cursor on disabled elements to reflect their non-interactive state. */
  cursor: default;
}
[hidden]:not([hidden="until-found" i]) {
  /* Ensure that elements intended to be hidden are not displayed, improving clarity and layout control. */
  display: none !important;
}
:where(h1, h2, h3, h4, h5, h6) {
  margin: 0;
}
:where(p) {
  margin: 0;
}
html {
  font-size: 100%;
  /* 100vw 系のはみ出しで横スクロール・レイアウト崩れを抑える */
  overflow-x: hidden;
  /* 縦スクロールバーの出し入れで横幅が変わらないようにする（ドロワー等のオーバーレイ時のズレ抑制） */
  scrollbar-gutter: stable;
}
a[href^=tel] {
  text-decoration: none;
}
a {
  color: inherit;
  -webkit-tap-highlight-color: transparent;
  /* 強調をなくす */
}
a:hover {
  text-decoration: none;
}
img,
svg {
  vertical-align: middle;
}
img {
  max-width: 100%;
  height: auto;
  /* 全 img に height:100% を当てると、親に高さがない SP レイアウトで高さ0・表示崩れの原因になる */
}
:where(:any-link, button, [type=button], [type=reset], [type=submit], label[for], select, summary, [role=tab], [role=button]) {
  cursor: pointer;
}
:where(button, [type=button], [type=reset], [type=submit]) {
  touch-action: manipulation;
}
:focus:not(:focus-visible) {
  outline: none;
}
input[type=text] {
  font-size: 1rem;
  /* = 16px */
}
textarea {
  field-sizing: content;
}
body {
  color: var(--color-font-main);
  font-family: var(--base-font-family);
  font-weight: var(--fw-regular);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  background-color: #3a3a3a;
}
button {
  padding-inline: 0;
}
@property --root-font-size {
  syntax: "<length>";
  inherits: false;
  initial-value: 16px;
}
:root {
  /* inner */
  --inner: min(1220px, 100%);
  --inner-sp: min(700px, 100%);
  --padding-inner: 30px;
  --padding-inner-sp: 20px;
  /* z-index */
  --z-index-header: 900;
  --z-index-modal: 10000;
  /* color */
  /* Logo Colors */
  --color-logo-orange: #ea5514;
  --color-logo-dark: #3e3a39;
  /* Background Colors */
  --color-bg-light: #eff0f3;
  --color-bg-beige: #ede4db;
  --color-bg-cream: #f1efde;
  --color-bg-offwhite: #fcfbef;
  /* Font Colors */
  --color-font-main: #333333;
  --color-font-sub: #6e6e6e;
  --color-font-brown: #7a4a2e;
  /* Other Used Colors */
  --color-used-darkorange: #c9451c;
  --color-used-yellow: #f19a2a;
  --color-used-gray: #cccccc;
  --color-used-lightgray: #f7f7f7;
  --color-used-red: #92221e;
  --color-white: #FFF;
  /* font-weight */
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;
  /* font-family */
  --font-en: "Roboto", sans-serif;
  --font-ja: "Noto Sans JP", sans-serif;
  --font-address: "Gothic A1", sans-serif;
  /* 数字のみに使う（日付・金額など。要素に .u-font-num を付与） */
  --font-num: "Montserrat Alternates", sans-serif;
  --base-font-family: var(--font-ja);
  --title-font-family: var(--font-en);
  --to-rem: calc(tan(atan2(1px, var(--root-font-size))) * 1rem);
  /* transition duration */
  --duration: 0.3s;
  /* header height */
  --header-height: 64px;
}
@media screen and (width >= 768px) {
  :root {
    --header-height: 92px;
  }
}
/* inset:0 は高さ未指定時にビューポート全域のヒット領域になることがあるため固定高さを明示 */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--header-height);
  z-index: var(--z-index-header);
}
.l-inner {
  max-width: calc(var(--inner-sp) + var(--padding-inner-sp) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
@media screen and (min-width: 900px) {
  .l-inner {
    max-width: calc(var(--inner) + var(--padding-inner) * 2);
  }
}
/* margin ではなく padding にすることで、body を position:fixed にしても余白が相殺されず、
   スクロロックの ON/OFF で余白の種類が変わらない（見た目のズレを防ぐ） */
.l-main {
  margin-block-start: 0;
  padding-block-start: var(--header-height);
  flex: 1;
  background-color: var(--color-white);
  /* hidden だと overflow-y が auto 扱いになり、main 内の position:fixed（ドロワー）がクリップされやすい */
  overflow-x: clip;
  overflow-y: visible;
}
.l-main--case-item {
  overflow: visible;
}
.l-main--assessment {
  overflow-x: visible;
  overflow-y: visible;
}
.l-section {
  padding-block: clamp(3rem, 1.944rem + 4.51vw, 6rem);
}
.c-breadcrumb {
  padding-block: calc(8 * var(--to-rem)) clamp(1rem, 0.75rem + 1vw, 2rem);
  background-color: var(--color-white);
}
.c-breadcrumb__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: calc(16 * var(--to-rem));
  font-size: clamp(0.75rem, 0.7rem + 0.2vw, 0.875rem);
  line-height: 1.5;
  color: var(--color-font-sub);
}
@media screen and (min-width: 1024px) {
  .c-breadcrumb__inner {
    padding-inline: calc(20 * var(--to-rem));
  }
}
.c-breadcrumb__inner span {
  display: inline;
}
.c-breadcrumb__inner a {
  color: var(--color-font-main);
  text-decoration: none;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .c-breadcrumb__inner a:hover {
    opacity: 0.7;
  }
}
.c-breadcrumb__inner .c-breadcrumb__arrow {
  font-size: 1.2em;
}
.c-breadcrumb__inner .current-item {
  color: var(--color-font-sub);
  font-weight: var(--fw-medium);
}
.c-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(16 * var(--to-rem));
  width: min(330 * var(--to-rem), 100%);
  margin-inline: auto;
  padding: calc(15 * var(--to-rem)) calc(30 * var(--to-rem));
  border: 2px solid var(--color-logo-orange);
  background-color: var(--color-logo-orange);
  border-radius: calc(4 * var(--to-rem));
  overflow: hidden;
  color: var(--color-white);
  transition: background-color var(--duration) ease, border-color var(--duration) ease;
  cursor: pointer;
}
.c-button .c-button__text {
  color: inherit;
  font-weight: var(--fw-bold);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  transition: color var(--duration) ease;
}
.c-button .c-button__img {
  width: clamp(0.375rem, 0.287rem + 0.38vw, 0.625rem);
  height: auto;
  aspect-ratio: 1/2;
  transition: translate var(--duration) ease, filter var(--duration) ease;
}
@media (any-hover: hover) {
  .c-button:hover {
    background-color: var(--color-white);
  }
  .c-button:hover .c-button__text {
    color: var(--color-logo-orange);
  }
  .c-button:hover .c-button__img {
    translate: calc(10 * var(--to-rem)) 0;
    /* 白い画像をオレンジ色に変更するフィルター（近似値） */
    filter: invert(53%) sepia(88%) saturate(2253%) hue-rotate(345deg) brightness(98%) contrast(93%);
  }
}
.c-button--white {
  background-color: var(--color-white);
}
.c-button--white .c-button__text {
  color: var(--color-logo-orange);
}
.c-button--white .c-button__img {
  /* 初期状態でオレンジにしておく */
  filter: invert(53%) sepia(88%) saturate(2253%) hue-rotate(345deg) brightness(98%) contrast(93%);
}
@media (any-hover: hover) {
  .c-button--white:hover {
    background-color: var(--color-logo-orange);
  }
  .c-button--white:hover .c-button__text {
    color: var(--color-white);
  }
  .c-button--white:hover .c-button__img {
    /* ホバーでフィルターを解除（白に戻す） */
    filter: none;
  }
}
.c-button--black {
  border-color: var(--color-text);
  background-color: var(--color-text);
  color: var(--color-white);
  transition: background-color var(--duration) ease, border-color var(--duration) ease, color var(--duration) ease;
}
.c-button--black .c-button__text {
  color: inherit;
}
.c-button--black .c-button__img {
  filter: none;
}
@media (any-hover: hover) {
  .c-button--black:hover {
    background-color: var(--color-white);
    border-color: var(--color-text);
  }
  .c-button--black:hover .c-button__text {
    color: var(--color-text);
  }
  .c-button--black:hover .c-button__img {
    translate: calc(10 * var(--to-rem)) 0;
    filter: brightness(0);
  }
}
.c-button--header {
  padding: calc(8 * var(--to-rem)) calc(32 * var(--to-rem));
  gap: calc(10 * var(--to-rem));
  width: min(250 * var(--to-rem), 100%);
  border-radius: calc(4 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .c-button--header {
    width: calc(200 * var(--to-rem)) !important;
  }
}
@media screen and (min-width: 1024px) {
  .c-button--header {
    /* 1024px:180px → 1440px:230px */
    width: clamp(11.25rem, 3.558rem + 12.019vw, 14.375rem) !important;
    padding-inline: calc(10 * var(--to-rem));
  }
}
.c-button--header .c-button__img {
  width: calc(24 * var(--to-rem));
  aspect-ratio: 1;
}
@media (any-hover: hover) {
  .c-button--header:hover {
    background-color: var(--color-white);
  }
  .c-button--header:hover .c-button__img {
    translate: 0 0;
    filter: invert(53%) sepia(88%) saturate(2253%) hue-rotate(345deg) brightness(98%) contrast(93%);
  }
}
.c-cases {
  margin-block-start: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.c-cases--challenge .c-cases__swiper-container {
  margin-block-start: clamp(2rem, 1.01rem + 4.23vw, 4.813rem);
}
.c-cases__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--to-rem));
}
.c-cases__lead-row {
  margin: 0;
  max-width: 100%;
  text-align: center;
}
.c-cases__lead-text {
  display: inline;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  color: var(--color-logo-orange);
  font-size: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  font-style: normal;
  font-weight: var(--fw-bold);
  /* 折り返し行同士の行間に 8px 分の余白 */
  line-height: calc(1.7em + 8px);
  letter-spacing: calc(1.2 * var(--to-rem));
  background-color: var(--color-bg-light);
  /* SP用の小さい余白 */
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .c-cases__lead-text {
    /* PC用の大きい余白 */
    padding: calc(8 * var(--to-rem)) calc(24 * var(--to-rem));
  }
}
.c-cases__cards {
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
  display: grid;
  grid-template-columns: 1fr;
  row-gap: calc(24 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .c-cases__cards {
    grid-template-columns: repeat(3, 1fr);
    row-gap: calc(32 * var(--to-rem));
    column-gap: calc(32 * var(--to-rem));
  }
}
.c-cases__card-item {
  display: flex;
  flex-direction: column;
  width: min(400 * var(--to-rem), 100%);
  margin-inline: auto;
  /* グリッド行の高さ（最も高いカード）に合わせ、子の .c-case-card を縦いっぱいに伸ばす */
  min-height: 0;
}
@media screen and (min-width: 900px) {
  .c-cases__card-item {
    margin-inline: 0;
  }
}
.c-case-card {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  gap: calc(12 * var(--to-rem)); /* SP用に隙間を小さく */
}
@media screen and (min-width: 1024px) {
  .c-case-card {
    gap: calc(16 * var(--to-rem));
  }
}
/* 画像エリア・クライアント名リンク hover で画像を拡大（トップグリッド・アーカイブ等で共通） */
.c-case-card:has(.c-case-card__imgWrap:hover) .c-case-card__img,
.c-case-card:has(.c-case-card__imgWrap:hover) .c-case-card__imgWrap > img,
.c-case-card:has(.c-case-card__client a:hover) .c-case-card__img,
.c-case-card:has(.c-case-card__client a:hover) .c-case-card__imgWrap > img {
  scale: 1.06;
}
.c-case-card__imgWrap {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  width: 100%;
  height: auto;
  aspect-ratio: 115/72;
  border: 1px solid var(--light02, var(--color-used-gray));
  background: var(--color-white);
  /* SP用の角丸・余白 */
  padding: calc(12 * var(--to-rem));
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(20 * var(--to-rem)) calc(4 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .c-case-card__imgWrap {
    /* PC用の角丸・余白 */
    padding: calc(20 * var(--to-rem));
    border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(32 * var(--to-rem)) calc(4 * var(--to-rem));
  }
}
.c-case-card__img,
.c-case-card__imgWrap > img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: scale var(--duration) ease;
}
.c-case-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.c-case-card__title {
  order: 2;
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  font-weight: var(--fw-regular);
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.c-case-card__client {
  order: 1;
  color: var(--color-logo-orange);
  font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
  font-weight: 400;
  line-height: 1.7;
  margin-block-start: auto;
}
.c-case-card__tags {
  order: 3;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  /* SP用に隙間を小さく */
  gap: calc(4 * var(--to-rem));
  margin-block-start: calc(10 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .c-case-card__tags {
    gap: calc(8 * var(--to-rem));
    padding-inline-end: calc(20 * var(--to-rem));
  }
}
.c-case-card__tag {
  color: var(--color-font-sub);
  font-size: clamp(0.7rem, 0.65rem + 0.2vw, 0.875rem); /* 少し小さく */
  font-weight: 400;
  line-height: 1.7;
  border-radius: calc(100 * var(--to-rem));
  background-color: var(--color-bg-light);
  /* SP用に余白を小さく */
  padding: calc(2 * var(--to-rem)) calc(12 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .c-case-card__tag {
    padding: calc(4 * var(--to-rem)) calc(16 * var(--to-rem));
  }
}
.c-case-card__excerpt {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
}
/* ==================================================
  Swiper関連
================================================== */
.c-cases__swiper-container,
.c-cases__swiper,
.c-cases__swiper-wrapper,
.c-cases__swiper-slide {
  position: relative;
}
.c-cases__swiper-container {
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
  /* 画面幅いっぱい（フルブリード）にする安全な記述 */
  margin-inline: calc(50% - 50vw);
  width: 100vw;
}
.c-cases__swiper-wrapper {
  transition-timing-function: linear;
}
.c-cases__swiper-slide {
  /* スライダー内のカード幅のみ可変（375→120px、900→160px、1440→210px）、最大210px */
  width: clamp(120px, 120px + (100vw - 375px) * 40 / 525, 160px);
  max-width: min(210px, 100%);
  margin-inline: auto;
  height: auto;
  align-self: flex-start;
  /* 枠・画像を最大 210×100 に収め、下端の見切れを防ぐ（幅に連動して高さも変わる） */
}
@media screen and (min-width: 900px) {
  .c-cases__swiper-slide {
    width: clamp(160px, 160px + (100vw - 900px) * 50 / 540, 210px);
  }
}
.c-cases__swiper-slide .c-case-card {
  width: 100%;
  max-width: 210px;
}
.c-cases__swiper-slide .c-case-card__imgWrap {
  border-radius: calc(4 * var(--to-rem));
  border: 1px solid var(--light02, var(--color-used-gray));
  background: var(--color-white);
  box-sizing: border-box;
  overflow: hidden;
  width: 100%;
  max-width: 210px;
  max-height: 100px;
  aspect-ratio: 210/100;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  /* スライダー内はさらに余白を小さく */
  padding: calc(8 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .c-cases__swiper-slide .c-case-card__imgWrap {
    padding: calc(12 * var(--to-rem));
  }
}
.c-cases__swiper-slide .c-case-card__img,
.c-cases__swiper-slide .c-case-card__imgWrap > img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: scale var(--duration) ease;
}
.c-dots {
  display: flex;
  align-items: center;
  gap: calc(6 * var(--to-rem));
}
.c-dots--small {
  gap: calc(4 * var(--to-rem));
}
.c-dots--small .c-dot {
  width: clamp(0.25rem, 0.162rem + 0.38vw, 0.5rem);
}
.c-dot {
  width: clamp(0.375rem, 0.243rem + 0.56vw, 0.75rem);
  height: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}
.c-dot--orange {
  background-color: var(--color-logo-orange);
}
.c-dot--gray {
  background-color: var(--color-bg-light);
}
.c-dot--dark-gray {
  background-color: var(--color-font-sub);
}
.c-dot--white {
  background-color: var(--color-white);
}
/**
 * ページネーション共通コンポーネント
 */
.c-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  /* ボタン同士の基本の隙間（8px） */
  gap: calc(8 * var(--to-rem));
}
.c-pagination__item {
  display: flex;
  align-items: center;
  justify-content: center;
  /* 数字も矢印も共通のサイズと枠線 */
  width: calc(44 * var(--to-rem));
  height: calc(44 * var(--to-rem));
  border: calc(1 * var(--to-rem)) solid #999;
  border-radius: calc(4 * var(--to-rem));
  background-color: #fff;
  font-size: calc(16 * var(--to-rem));
  font-weight: 400;
  color: #333;
  transition: all 0.3s ease;
  text-decoration: none;
  /* SVGアイコンのサイズ微調整 */
  /* 2. prevとnextの横に24pxの空きを作る */
  /* 全体のgap(8px) + margin(16px) = 合計24px */
}
.c-pagination__item img {
  width: calc(14 * var(--to-rem));
  height: auto;
  aspect-ratio: 7/12;
  display: block;
}
.c-pagination__item:hover:not([data-state=current], [data-state=dots]) {
  background-color: var(--color-bg-light);
}
.c-pagination__item[data-state=current] {
  background-color: var(--color-logo-orange, #e85528);
  border-color: var(--color-logo-orange, #e85528);
  color: #fff;
  pointer-events: none;
}
.c-pagination__item[data-state=dots] {
  border: none;
  background: transparent;
  width: auto;
  padding-inline: calc(4 * var(--to-rem));
}
.c-pagination__item[data-state=prev] {
  margin-inline-end: calc(16 * var(--to-rem));
}
.c-pagination__item[data-state=next] {
  margin-inline-start: calc(16 * var(--to-rem));
}
.p-header__sublist-wrap .c-recruit-submenu,
.p-footer__sublist-wrap .c-recruit-submenu {
  --recruit-submenu-orange: #eb551b;
  --recruit-submenu-gray: #f2f3f5;
  --recruit-submenu-radius: calc(4 * var(--to-rem));
  list-style: none;
  margin: 0;
  padding: 0;
  width: calc(210 * var(--to-rem));
  border-radius: var(--recruit-submenu-radius);
  overflow: hidden;
  box-shadow: 0 calc(4 * var(--to-rem)) calc(15 * var(--to-rem)) oklch(from var(--color-black) l c h/12%);
}
.p-header__sublist-wrap .c-recruit-submenu__item + .c-recruit-submenu__item,
.p-footer__sublist-wrap .c-recruit-submenu__item + .c-recruit-submenu__item {
  border-top: 1px solid #ccc;
}
.p-header__sublist-wrap .c-recruit-submenu__item--accent,
.p-header__sublist-wrap .c-recruit-submenu__item--muted,
.p-footer__sublist-wrap .c-recruit-submenu__item--accent,
.p-footer__sublist-wrap .c-recruit-submenu__item--muted {
  height: calc(60 * var(--to-rem));
}
.p-header__sublist-wrap .c-recruit-submenu__item--accent .c-recruit-submenu__link,
.p-header__sublist-wrap .c-recruit-submenu__item--muted .c-recruit-submenu__link,
.p-footer__sublist-wrap .c-recruit-submenu__item--accent .c-recruit-submenu__link,
.p-footer__sublist-wrap .c-recruit-submenu__item--muted .c-recruit-submenu__link {
  height: 100%;
}
.p-header__sublist-wrap .c-recruit-submenu__link,
.p-footer__sublist-wrap .c-recruit-submenu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(8 * var(--to-rem));
  padding: calc(8 * var(--to-rem)) calc(12 * var(--to-rem));
  font-weight: var(--fw-regular);
  white-space: normal;
  text-decoration: none;
  line-height: 1.7;
  background-color: var(--recruit-submenu-gray);
  color: var(--color-font-main);
  transition: background-color var(--duration) ease, color var(--duration) ease;
}
@media (any-hover: hover) {
  .p-header__sublist-wrap .c-recruit-submenu__link:hover,
  .p-footer__sublist-wrap .c-recruit-submenu__link:hover {
    background-color: var(--recruit-submenu-orange);
    color: var(--color-white);
  }
  .p-header__sublist-wrap .c-recruit-submenu__link:hover .c-recruit-submenu__icon,
  .p-footer__sublist-wrap .c-recruit-submenu__link:hover .c-recruit-submenu__icon {
    filter: brightness(0) invert(1);
  }
}
.p-header__sublist-wrap .c-recruit-submenu__link:focus-visible,
.p-footer__sublist-wrap .c-recruit-submenu__link:focus-visible {
  background-color: var(--recruit-submenu-orange);
  color: var(--color-white);
  outline: 2px solid var(--color-white);
  outline-offset: 2px;
}
.p-header__sublist-wrap .c-recruit-submenu__link:focus-visible .c-recruit-submenu__icon,
.p-footer__sublist-wrap .c-recruit-submenu__link:focus-visible .c-recruit-submenu__icon {
  filter: brightness(0) invert(1);
}
.p-header__sublist-wrap .c-recruit-submenu__text,
.p-footer__sublist-wrap .c-recruit-submenu__text {
  min-width: 0;
  font-size: calc(14 * var(--to-rem));
}
.p-header__sublist-wrap .c-recruit-submenu__text-sub,
.p-footer__sublist-wrap .c-recruit-submenu__text-sub {
  display: block;
  font-size: calc(12 * var(--to-rem));
  opacity: 0.8;
}
.p-header__sublist-wrap .c-recruit-submenu__icon,
.p-footer__sublist-wrap .c-recruit-submenu__icon {
  flex-shrink: 0;
  width: calc(14 * var(--to-rem));
  height: calc(14 * var(--to-rem));
  object-fit: contain;
  filter: none;
  transition: filter var(--duration) ease;
}
.p-header__sublist-wrap .c-recruit-submenu__link {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1rem);
}
.p-footer__sublist-wrap .c-recruit-submenu__link {
  font-size: clamp(0.75rem, 0.662rem + 0.38vw, 0.875rem);
}
.p-drawer__sublist-wrap .c-recruit-submenu__item--accent,
.p-drawer__sublist-wrap .c-recruit-submenu__item--muted {
  height: calc(60 * var(--to-rem));
}
.p-drawer__sublist-wrap .c-recruit-submenu__item--accent .c-recruit-submenu__link,
.p-drawer__sublist-wrap .c-recruit-submenu__item--muted .c-recruit-submenu__link {
  height: 100%;
}
.p-drawer__sublist-wrap .c-recruit-submenu {
  --recruit-submenu-orange: #eb551b;
  list-style: none;
  margin: 0;
  padding: 0 0 calc(4 * var(--to-rem));
  width: 100%;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}
.p-drawer__sublist-wrap .c-recruit-submenu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(10 * var(--to-rem));
  padding-block: calc(10 * var(--to-rem));
  padding-inline-start: calc(12 * var(--to-rem));
  padding-inline-end: var(--drawer-nav-icon-end-gap, calc(12 * var(--to-rem)));
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.6;
  white-space: normal;
  text-decoration: none;
  color: var(--color-font-main);
  background-color: transparent;
  transition: background-color var(--duration) ease, color var(--duration) ease;
}
@media (any-hover: hover) {
  .p-drawer__sublist-wrap .c-recruit-submenu__link:hover {
    background-color: var(--recruit-submenu-orange);
    color: var(--color-white);
  }
  .p-drawer__sublist-wrap .c-recruit-submenu__link:hover .c-recruit-submenu__icon {
    filter: brightness(0) invert(1);
  }
}
.p-drawer__sublist-wrap .c-recruit-submenu__link:focus-visible {
  background-color: var(--recruit-submenu-orange);
  color: var(--color-white);
  outline: 2px solid var(--color-white);
  outline-offset: 2px;
}
.p-drawer__sublist-wrap .c-recruit-submenu__link:focus-visible .c-recruit-submenu__icon {
  filter: brightness(0) invert(1);
}
.p-drawer__sublist-wrap .c-recruit-submenu__item:nth-child(1) .c-recruit-submenu__link {
  padding-block: calc(5 * var(--to-rem));
}
.p-drawer__sublist-wrap .c-recruit-submenu__item:nth-child(2) .c-recruit-submenu__link {
  padding-block: calc(5 * var(--to-rem));
}
.p-drawer__sublist-wrap .c-recruit-submenu__item:nth-child(3) .c-recruit-submenu__link {
  padding-block: calc(5 * var(--to-rem));
  margin-block-end: calc(5 * var(--to-rem));
}
.p-drawer__sublist-wrap .c-recruit-submenu__text {
  min-width: 0;
  font-size: calc(14 * var(--to-rem));
  color: inherit;
  transition: color var(--duration) ease;
}
.p-drawer__sublist-wrap .c-recruit-submenu__text-sub {
  display: block;
  font-size: calc(12 * var(--to-rem));
  opacity: 0.8;
}
.p-drawer__sublist-wrap .c-recruit-submenu__icon {
  flex-shrink: 0;
  align-self: center;
  width: var(--drawer-nav-icon-slot, calc(14 * var(--to-rem)));
  height: var(--drawer-nav-icon-slot, calc(14 * var(--to-rem)));
  object-fit: contain;
  filter: none;
  transition: filter var(--duration) ease;
}
.c-section-title {
  display: flex;
  flex-direction: column;
  gap: clamp(0.25rem, 0.162rem + 0.38vw, 0.5rem);
}
.c-section-title__en {
  font-size: clamp(1.5rem, 0.62rem + 3.76vw, 4rem);
  font-family: var(--font-en);
  color: var(--color-logo-orange);
  font-weight: var(--fw-light);
  line-height: 1;
}
.c-section-title__ja {
  display: flex;
  align-items: center;
}
.c-section-title__ja-text {
  font-family: var(--font-ja);
  font-size: clamp(0.625rem, 0.537rem + 0.38vw, 0.875rem);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  padding-inline-start: calc(4 * var(--to-rem));
}
.c-triangle {
  display: inline-block;
  width: calc(64 * var(--to-rem));
  aspect-ratio: 1/1;
  background-color: var(--color-black);
}
.c-triangle[data-direction=top] {
  clip-path: var(--clip-triangle-top);
}
.c-triangle[data-direction=bottom] {
  clip-path: var(--clip-triangle-bottom);
}
.c-triangle[data-direction=left] {
  clip-path: var(--clip-triangle-left);
}
.c-triangle[data-direction=right] {
  clip-path: var(--clip-triangle-right);
}
.c-triangle[data-direction=lower-left] {
  clip-path: var(--clip-triangle-lower-left);
}
.c-triangle[data-direction=upper-left] {
  clip-path: var(--clip-triangle-upper-left);
}
.c-triangle[data-direction=lower-right] {
  clip-path: var(--clip-triangle-lower-right);
}
.c-triangle[data-direction=upper-right] {
  clip-path: var(--clip-triangle-upper-right);
}
.c-fv-lower {
  position: relative;
  padding-block: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.c-fv-lower::before {
  content: "";
  background: linear-gradient(180deg, #fff 0%, #eff0f3 40%);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 72%;
  z-index: -1;
}
.c-fv-lower__inner {
  width: min(1000 * var(--to-rem), 100%);
  margin-inline: auto;
  padding-inline: calc(10 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .c-fv-lower__inner {
    width: min(1400 * var(--to-rem), 100%);
    padding-inline: calc(24 * var(--to-rem));
  }
}
.c-fv-lower__title-area {
  margin: 0;
  font: inherit;
  display: flex;
  flex-direction: column;
  gap: clamp(0.25rem, 0.162rem + 0.38vw, 0.5rem);
}
.c-fv-lower__title-area > .c-fv-lower__title-en {
  display: block;
  width: 100%;
}
.c-fv-lower__title-en {
  font-size: clamp(2rem, 1.296rem + 3vw, 4rem);
  font-weight: var(--fw-light);
  line-height: 1;
  letter-spacing: calc(1 * var(--to-rem));
}
.c-fv-lower__title-ja {
  display: flex;
  align-items: center;
  gap: calc(4 * var(--to-rem));
}
.c-fv-lower__title-ja-text {
  font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
  font-weight: var(--fw-bold);
  line-height: 1.7;
}
/* =======================================
   画像部分
   ======================================= */
.c-fv-lower__img-wrap {
  margin-block-start: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  margin-inline: auto;
  width: 90%;
  aspect-ratio: 335/120;
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) clamp(1rem, 0.648rem + 1.5vw, 2rem) calc(4 * var(--to-rem));
  overflow: hidden;
}
@media screen and (min-width: 900px) {
  .c-fv-lower__img-wrap {
    aspect-ratio: auto;
    width: 100%;
    margin-inline: 0;
  }
}
.c-fv-lower__img {
  width: 100%;
  display: block;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 900px) {
  .c-fv-lower__img {
    height: auto;
  }
}
.p-archive {
  padding-block: calc(40 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-archive__inner {
  max-width: calc(var(--inner) + var(--padding-inner) * 2);
}
.p-archive__header {
  margin-block-end: calc(40 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 900px) {
  .p-archive__header {
    margin-block-end: calc(60 * var(--to-rem));
  }
}
.p-archive__title {
  margin-block-end: calc(16 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive__title {
    margin-block-end: calc(24 * var(--to-rem));
  }
}
.p-archive__description {
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (min-width: 900px) {
  .p-archive__description {
    margin-block-start: calc(24 * var(--to-rem));
    font-size: calc(16 * var(--to-rem));
  }
}
.p-archive__list {
  display: grid;
  gap: calc(24 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive__list {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(32 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-archive__list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-archive__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: calc(16 * var(--to-rem));
  border: 1px solid var(--color-gray);
  border-radius: 12px;
  background-color: var(--color-white);
  text-decoration: none;
  transition: translate 0.3s ease, box-shadow 0.3s ease;
}
@media screen and (min-width: 900px) {
  .p-archive__link {
    padding: calc(20 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-archive__link:hover {
    box-shadow: 0 8px 24px oklch(from var(--color-black) l c h/10%);
    translate: 0 calc(-4 * var(--to-rem));
  }
}
.p-archive__thumbnail {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16/9;
  margin-block-end: calc(16 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
}
@media screen and (min-width: 900px) {
  .p-archive__thumbnail {
    margin-block-end: calc(20 * var(--to-rem));
  }
}
.p-archive__thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale 0.3s ease;
}
@media (any-hover: hover) {
  .p-archive__link:hover .p-archive__thumbnail img {
    scale: 1.05;
  }
}
.p-archive__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
}
.p-archive__item-title {
  margin: 0;
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 900px) {
  .p-archive__item-title {
    font-size: calc(20 * var(--to-rem));
  }
}
.p-archive__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(12 * var(--to-rem));
  align-items: center;
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive__meta {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-archive__date {
  display: inline-block;
}
.p-archive__categories {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
}
.p-archive__category {
  display: inline-block;
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: calc(11 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive__category {
    font-size: calc(12 * var(--to-rem));
  }
}
.p-archive__excerpt {
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (min-width: 900px) {
  .p-archive__excerpt {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-archive__pagination {
  margin-block-start: calc(48 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive__pagination {
    margin-block-start: calc(60 * var(--to-rem));
  }
}
.p-archive__empty {
  padding-block: calc(60 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 900px) {
  .p-archive__empty {
    padding-block: calc(80 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
  }
}
.p-single__back {
  margin-block-start: calc(48 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 900px) {
  .p-single__back {
    margin-block-start: calc(60 * var(--to-rem));
  }
}
.p-archive--works .p-archive__link {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
  padding: 0;
  border: none;
  border-radius: 12px;
  box-shadow: 0 calc(2 * var(--to-rem)) calc(8 * var(--to-rem)) oklch(from var(--color-black) l c h/8%);
  background-color: var(--color-white);
  text-decoration: none;
}
.p-archive--works .p-archive__thumbnail {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16/9;
  margin-block-end: 0;
  border-radius: 12px 12px 0 0;
}
.p-archive--works .p-archive__thumbnail img {
  transition: scale 0.5s ease;
}
@media (any-hover: hover) {
  .p-archive--works .p-archive__link:has(.p-archive__thumbnail):hover .p-archive__thumbnail img {
    scale: 1.1;
  }
}
.p-archive--works .p-archive__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
  padding: calc(20 * var(--to-rem));
}
.p-archive--works .p-archive__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(12 * var(--to-rem));
  align-items: center;
  margin-block-end: calc(8 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive--works .p-archive__meta {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-archive--works .p-archive__date {
  display: inline-block;
}
.p-archive--works .p-archive__category {
  display: inline-block;
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: calc(11 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive--works .p-archive__category {
    font-size: calc(12 * var(--to-rem));
  }
}
.p-archive--works .p-archive__item-title {
  margin: 0;
  margin-block-end: calc(8 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
@media screen and (min-width: 900px) {
  .p-archive--works .p-archive__item-title {
    margin-block-end: calc(12 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
    line-height: 1.6;
  }
}
.p-archive--works .p-archive__excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin-block-start: 0;
  color: var(--color-text);
  font-size: calc(13 * var(--to-rem));
  line-height: 1.7;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
@media screen and (min-width: 900px) {
  .p-archive--works .p-archive__excerpt {
    font-size: calc(14 * var(--to-rem));
    line-height: 1.8;
  }
}
.p-archive--works .p-archive__client,
.p-archive--works .p-archive__period {
  display: flex;
  gap: calc(8 * var(--to-rem));
  align-items: center;
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive--works .p-archive__client,
  .p-archive--works .p-archive__period {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-archive--works .p-archive__client-label,
.p-archive--works .p-archive__period-label {
  font-weight: var(--fw-medium);
}
.p-archive--works .p-archive__technologies {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  margin-block-start: calc(12 * var(--to-rem));
}
.p-archive--works .p-archive__technology {
  display: inline-block;
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: calc(11 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-archive--works .p-archive__technology {
    font-size: calc(12 * var(--to-rem));
  }
}
/* -------------------------------------------
 * 共通アニメーション
 * ------------------------------------------- */
.p-assessment__slide-item {
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  padding-block-start: clamp(3rem, 1.944rem + 4.51vw, 6rem);
}
.p-assessment__slide-item.is-active {
  opacity: 1;
  transform: translateY(0);
}
/* -------------------------------------------
 * 診断コンテンツ：ヘッダー部分
 * ------------------------------------------- */
.p-assessment__header {
  text-align: center;
}
.p-assessment__lead-title {
  font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
  font-weight: var(--fw-bold);
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .u-hidden-sp {
    display: none;
  }
}
.p-assessment__features {
  display: inline-block;
  text-align: left;
  font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
  line-height: 1.5;
  margin-block: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem);
}
.p-assessment__features li {
  position: relative;
  padding-inline-start: calc(20 * var(--to-rem));
  margin-inline-start: calc(16 * var(--to-rem));
}
.p-assessment__features li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
/* -------------------------------------------
 * 質問カードのレイアウト
 * ------------------------------------------- */
.p-assessment__form {
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
}
.p-assessment__question {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  background-color: var(--color-white);
  border-radius: 4px;
  padding: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
  width: min(1000 * var(--to-rem), 100%);
  margin-inline: auto;
}
.p-assessment__question:nth-of-type(2) {
  padding-block: clamp(2rem, 1.714rem + 1.22vw, 2.813rem);
}
.p-assessment__question:nth-of-type(3), .p-assessment__question:nth-of-type(4) {
  gap: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  padding-block-end: clamp(2rem, 1.714rem + 1.22vw, 2.813rem);
}
.p-assessment__question:nth-of-type(5) {
  gap: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  padding-block-end: clamp(2rem, 1.714rem + 1.22vw, 2.813rem);
}
.p-assessment__question-head {
  display: flex;
  align-items: flex-start;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
.p-assessment__question-num {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(1.563rem, 1.012rem + 2.35vw, 3.125rem);
  height: auto;
  aspect-ratio: 1;
  background-color: var(--color-logo-orange);
  color: var(--color-white);
  border-radius: 50%;
  font-weight: var(--fw-bold);
  font-size: 1.125rem;
}
.p-assessment__answers {
  margin-inline-start: clamp(2.563rem, 1.66rem + 3.85vw, 5.125rem);
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--to-rem));
}
.p-assessment__question-text {
  font-size: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  letter-spacing: calc(1.2 * var(--to-rem));
}
/* -------------------------------------------
 * ラジオボタンカスタム（絶対中心固定仕様）
 * ------------------------------------------- */
.p-assessment__label {
  display: flex;
  align-items: center;
  cursor: pointer;
  padding: calc(16 * var(--to-rem)) calc(24 * var(--to-rem)) calc(22 * var(--to-rem));
  border: calc(2 * var(--to-rem)) solid var(--color-bg-light);
  border-radius: calc(4 * var(--to-rem));
  background-color: var(--color-white);
  transition: all 0.3s ease;
  position: relative;
}
.p-assessment__label:has(.p-assessment__radio:checked) {
  border-color: var(--color-logo-orange);
  background-color: #fff8f3;
}
.p-assessment__label:hover {
  background-color: #fefefe;
  border-color: #aaa;
}
.p-assessment__radio {
  opacity: 0;
  position: absolute;
  width: 0;
  height: 0;
}
.p-assessment__text {
  position: relative;
  display: block;
  padding-inline-start: calc(41 * var(--to-rem));
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 1.5;
  /* 外枠の円 */
  /* 中のポチ（beforeの完璧な中心に配置） */
}
.p-assessment__text::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: calc(25 * var(--to-rem));
  height: calc(25 * var(--to-rem));
  border: 2px solid #d1d1d1;
  border-radius: 50%;
  background-color: var(--color-white);
  transition: all 0.3s ease;
}
.p-assessment__text::after {
  content: "";
  position: absolute;
  left: calc(12.5 * var(--to-rem));
  top: 50%;
  transform: translate(-50%, -50%) scale(0);
  width: calc(14 * var(--to-rem));
  height: calc(14 * var(--to-rem));
  background-color: var(--color-logo-orange);
  border-radius: 50%;
  transition: transform 0.2s ease;
  pointer-events: none;
}
/* チェック時の状態 */
.p-assessment__radio:checked + .p-assessment__text::before {
  border-color: var(--color-logo-orange);
}
.p-assessment__radio:checked + .p-assessment__text::after {
  transform: translate(-50%, -50%) scale(1);
}
/* -------------------------------------------
 * 診断結果・その他
 * ------------------------------------------- */
.p-assessment__result {
  width: min(1000 * var(--to-rem), 100%);
  margin-inline: auto;
}
.p-assessment__result-header {
  text-align: center;
  padding-block: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem) clamp(0.75rem, 0.53rem + 0.94vw, 1.375rem);
  border-top: calc(2 * var(--to-rem)) solid var(--color-white);
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-white);
}
.p-assessment__result-heading {
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-assessment__result-badge {
  display: inline-block;
  margin-block-start: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
  background-color: var(--color-logo-orange);
  color: var(--color-white);
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  padding: clamp(0.25rem, 0.162rem + 0.38vw, 0.5rem) clamp(0.75rem, 0.244rem + 2.54vw, 3rem);
  border-radius: 4px;
  line-height: 1.5;
}
.p-assessment__result-card {
  background-color: var(--color-white);
  padding: clamp(2rem, 1.296rem + 3vw, 4rem) clamp(1.875rem, 1.215rem + 2.82vw, 3.75rem);
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  text-align: center;
  margin-block-start: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
.p-assessment__result-catch {
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  color: var(--color-logo-orange);
  line-height: 1.2;
  letter-spacing: calc(1.6 * var(--to-rem));
}
.p-assessment__result-catch .marker {
  background: linear-gradient(transparent 60%, #f4f4f4 60%);
  display: inline;
}
.p-assessment__result-text {
  line-height: 2;
  white-space: pre-wrap;
  margin-block-start: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  text-align: center;
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-assessment__result-divider {
  border: none;
  border-top: 2px dashed var(--color-bg-light);
  margin-block: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem) clamp(1rem, 0.692rem + 1.31vw, 1.875rem);
}
.p-assessment__result-buttons {
  display: flex;
  justify-content: center;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  margin-block-start: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
@media screen and (max-width: 767px) {
  .p-assessment__result-buttons {
    flex-direction: column;
    align-items: center;
  }
}
.p-assessment__result-buttons .c-button {
  max-width: 343px;
  margin-inline: 0;
}
@media screen and (min-width: 1024px) {
  .p-assessment__result-buttons .c-button {
    width: calc(343 * var(--to-rem));
  }
}
.p-assessment {
  background: linear-gradient(180deg, #fff 0%, #eff0f3 100%);
  padding-block-start: clamp(2rem, 1.01rem + 4.23vw, 4.813rem);
}
#result-catch-1 {
  white-space: pre-line;
  line-height: 1.8;
}
#result-catch-2-1,
#result-catch-2-2 {
  display: inline-block;
  font-size: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  line-height: 1.2;
  letter-spacing: calc(1.2 * var(--to-rem));
}
#result-catch-2-2 {
  margin-block-start: calc(14 * var(--to-rem));
}
#result-text-2 {
  margin-block-start: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.p-card-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(calc(320 * var(--to-rem)), 1fr));
  gap: calc(24 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-card-list {
    gap: calc(32 * var(--to-rem));
  }
}
/* ==================================================
  Project: Career Top (.p-career-top)
================================================== */
.p-career-top {
  padding-block: clamp(2rem, 1.296rem + 3vw, 4rem) clamp(3rem, 1.944rem + 4.51vw, 6rem);
  overflow: hidden; /* 横スクロールバーの発生を防止 */
  scroll-margin-top: var(--header-height);
}
.p-career-top__content {
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
  /* PC向けスタイル（2カラム） */
}
@media screen and (min-width: 900px) {
  .p-career-top__content {
    flex-direction: row;
    align-items: center; /* 中央で縦揃え */
    justify-content: flex-start;
  }
}
/* ■ 左側：画像エリア */
.p-career-top__image {
  width: 100%;
  margin-inline: auto;
}
@media screen and (min-width: 900px) {
  .p-career-top__image {
    flex: 1 1 auto;
    margin-inline-start: calc(50% - 50vw);
    margin-inline-end: 0;
    max-width: none;
  }
}
.p-career-top__image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(32 * var(--to-rem)) calc(4 * var(--to-rem));
}
/* ■ 右側：テキスト・ボタンエリア */
.p-career-top__info {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 900px) {
  .p-career-top__info {
    flex: 0 0 40%;
  }
}
@media screen and (min-width: 1240px) {
  .p-career-top__info {
    flex: 0 0 calc(628 * var(--to-rem));
  }
}
.p-career-top__head {
  margin-block-end: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.p-career-top__text {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  color: var(--color-font-main);
  letter-spacing: calc(0.9 * var(--to-rem));
  font-family: var(--font-ja);
}
/* ボタンエリア（2つ並びの制御） */
.p-career-top__button-wrap {
  display: flex;
  flex-direction: column;
  gap: calc(32 * var(--to-rem));
  margin-block-start: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
@media screen and (min-width: 900px) {
  .p-career-top__button-wrap {
    flex-direction: row;
    flex-wrap: wrap;
  }
}
@media screen and (min-width: 900px) {
  .p-career-top__button-wrap .c-button {
    width: fit-content;
    min-width: calc(286 * var(--to-rem));
    margin-inline: 0;
  }
}
/* =========================================================
   事例一覧アーカイブ (p-case-archive)
========================================================= */
.p-case-archive {
  padding-block: clamp(3rem, 2.362rem + 2.72vw, 4.813rem) clamp(3rem, 1.856rem + 4.88vw, 6.25rem);
}
.p-case-archive__list {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-case-archive__list {
    grid-template-columns: repeat(2, 1fr);
    column-gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  }
}
@media screen and (min-width: 1024px) {
  .p-case-archive__list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-case-archive__item {
  display: flex;
  flex-direction: column;
  width: min(400 * var(--to-rem), 100%);
  margin-inline: auto;
  min-height: 0;
}
.p-case-archive__empty {
  text-align: center;
  grid-column: 1/-1;
  font-size: calc(16 * var(--to-rem));
  color: #666;
}
/* =========================================================
   ページネーション (c-pagination)
========================================================= */
.p-case-archive__pagination {
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
}
.c-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(8 * var(--to-rem));
  /* 矢印アイコンの装飾 */
}
.c-pagination__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(44 * var(--to-rem));
  height: calc(44 * var(--to-rem));
  border: calc(1 * var(--to-rem)) solid #999;
  border-radius: calc(4 * var(--to-rem));
  background-color: #fff;
  font-size: calc(16 * var(--to-rem));
  font-weight: 400;
  color: #333;
  transition: all 0.3s ease;
  text-decoration: none;
  /* 通常のホバーアクション */
  /* カレント（現在のページ：オレンジ） */
  /* 点々 (...) */
}
.c-pagination__item:hover:not([data-state=current], [data-state=dots]) {
  background-color: #f5f5f5;
}
.c-pagination__item[data-state=current] {
  background-color: var(--color-logo-orange, #e85528);
  border-color: var(--color-logo-orange, #e85528);
  color: #fff;
  pointer-events: none;
}
.c-pagination__item[data-state=dots] {
  border: none;
  background: transparent;
  width: auto;
  padding-inline: calc(4 * var(--to-rem));
}
.c-pagination__arrow {
  display: block;
  width: calc(10 * var(--to-rem));
  height: calc(10 * var(--to-rem));
  border-top: calc(1.5 * var(--to-rem)) solid #666;
  border-right: calc(1.5 * var(--to-rem)) solid #666;
}
.c-pagination__arrow--prev {
  transform: rotate(-135deg);
  margin-left: calc(4 * var(--to-rem));
}
.c-pagination__arrow--next {
  transform: rotate(45deg);
  margin-right: calc(4 * var(--to-rem));
}
/* -------------------------------------------
 * レイアウト全般（.p-case-detail内に限定）
 * ------------------------------------------- */
.p-case-detail {
  padding-block-start: 77px;
}
.p-case-detail .p-case-detail__layout {
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
}
@media screen and (min-width: 900px) {
  .p-case-detail .p-case-detail__layout {
    flex-direction: row;
    align-items: flex-start;
  }
}
.p-case-detail .p-case-detail__main {
  width: 100%;
}
@media screen and (min-width: 900px) {
  .p-case-detail .p-case-detail__main {
    flex: 1;
    min-width: 0;
  }
}
.p-case-detail .p-case-detail__sidebar {
  width: 100%;
}
@media screen and (min-width: 900px) {
  .p-case-detail .p-case-detail__sidebar {
    width: calc(350 * var(--to-rem));
    flex-shrink: 0;
    position: sticky;
    top: calc(var(--header-height) + 40 * var(--to-rem));
  }
}
/* -------------------------------------------
 * メイン上部（タイトル・画像）
 * クラスがなくても h1 と figure であれば適用
 * ------------------------------------------- */
.p-case-detail__main h1,
.p-case-detail .p-case-detail__main-title {
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  margin-block-end: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.p-case-detail__main figure,
.p-case-detail .p-case-detail__main-image {
  margin-block-end: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.p-case-detail__main figure img,
.p-case-detail .p-case-detail__main-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}
/* -------------------------------------------
 * 要約エリア（要約グループブロック内のタグを指定）
 * ------------------------------------------- */
.p-case-detail .p-case-detail__summary {
  padding: clamp(1rem, 0.648rem + 1.5vw, 2rem) clamp(1rem, 0.648rem + 1.5vw, 2rem) calc(16 * var(--to-rem));
  margin-block-end: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.p-case-detail__summary ul:not(:last-of-type) {
  border-bottom: calc(1 * var(--to-rem)) solid var(--color-bg-light);
  padding-bottom: calc(16 * var(--to-rem)); /* 線の上の余白 */
}
/* 要約内のh4は、クラスがなくてもオレンジのラベルになる */
.p-case-detail__summary h4,
.p-case-detail .p-case-detail__summary-label {
  display: inline-block;
  background-color: var(--color-logo-orange) !important;
  color: var(--color-white) !important;
  text-align: center;
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem) !important;
  font-weight: var(--fw-bold);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  padding: calc(4 * var(--to-rem)) calc(16 * var(--to-rem)) !important;
  border-radius: 100px;
  margin-block-start: calc(16 * var(--to-rem)) !important;
}
.p-case-detail__summary h4:first-child,
.p-case-detail .p-case-detail__summary-label:first-child {
  margin-block-start: 0 !important;
}
.p-case-detail__summary ul {
  padding-left: calc(20 * var(--to-rem));
  list-style-type: disc;
  margin-block-start: calc(16 * var(--to-rem));
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
.p-case-detail__summary ul li {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
/* -------------------------------------------
 * 詳細セクション（メインエリア内の h2, h3）
 * クラスがなくても h2 を入れればグレー背景の帯になる
 * ------------------------------------------- */
.p-case-detail__main h2,
.p-case-detail .p-case-detail__section-label {
  background-color: var(--color-bg-light) !important;
  color: var(--color-logo-orange) !important;
  font-size: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem) !important;
  font-weight: var(--fw-bold);
  padding: calc(8 * var(--to-rem)) calc(24 * var(--to-rem)) !important;
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem); /* グローバルh2の余白をここに統合 */
  margin-block-end: clamp(1.5rem, 1.016rem + 2.07vw, 2.875rem) !important;
  border: none !important;
  line-height: 1.5;
}
.p-case-detail__main h3 {
  font-size: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  font-weight: var(--fw-bold);
  margin-block-end: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  line-height: 1.5;
}
/* -------------------------------------------
 * メインエリア内のテキスト (p)
 * 他のページには影響しないように p-case-detail__main 内に限定
 * ------------------------------------------- */
.p-case-detail__main p {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
/* pタグが連続する場合、2つ目以降のpタグの上に余白をあける */
.p-case-detail__main p + p {
  margin-block-start: calc(16 * var(--to-rem));
}
/* -------------------------------------------
 * サイドバー会社情報
 * ------------------------------------------- */
.p-case-detail .c-case-card__imgWrap {
  margin-block-end: calc(20 * var(--to-rem));
  padding-bottom: calc(20 * var(--to-rem));
}
/* 中央寄せ・画像サイズは _c-case.scss の .c-case-card__imgWrap / img に統一 */
.p-case-detail__info-list {
  margin-block-start: calc(30 * var(--to-rem));
}
.p-case-detail .p-case-detail__info-logo {
  text-align: center;
  margin-block-end: calc(20 * var(--to-rem));
  padding-bottom: calc(20 * var(--to-rem));
  border-bottom: calc(1 * var(--to-rem)) solid var(--color-bg-light);
}
.p-case-detail .p-case-detail__info-logo img {
  max-width: 180px;
  height: auto;
}
.p-case-detail .p-case-detail__info-item {
  padding-block: calc(16 * var(--to-rem));
  border-top: calc(1 * var(--to-rem)) solid var(--color-bg-light);
}
.p-case-detail .p-case-detail__info-item:last-child {
  border-bottom: calc(1 * var(--to-rem)) solid var(--color-bg-light);
}
.p-case-detail .p-case-detail__info-item dt {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  color: var(--color-font-sub);
  padding: calc(4 * var(--to-rem)) calc(16 * var(--to-rem));
  background-color: var(--color-bg-light);
  border-radius: calc(100 * var(--to-rem));
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  width: calc(150 * var(--to-rem));
  text-align: center;
}
.p-case-detail .p-case-detail__info-item dd {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  margin-block-start: calc(8 * var(--to-rem));
}
.p-case-detail .p-case-detail__info-item dd a {
  text-decoration: underline;
  transition: color var(--duration);
}
@media (any-hover: hover) {
  .p-case-detail .p-case-detail__info-item dd a:hover {
    color: var(--color-logo-orange);
  }
}
/* ===================================================
 * よく見られる支援事例セクション (p-case-related)
 * =================================================== */
.p-case-related__title {
  text-align: center;
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  padding-block: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  border-top: calc(1 * var(--to-rem)) solid var(--color-used-gray);
  border-bottom: calc(1 * var(--to-rem)) solid var(--color-used-gray);
}
.p-case-related__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: calc(32 * var(--to-rem));
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
}
@media screen and (min-width: 900px) {
  .p-case-related__list {
    grid-template-columns: repeat(3, 1fr);
    gap: calc(24 * var(--to-rem));
  }
}
/* ===================================================
 * c-case-cardの変更 * =================================================== */
.p-case-related .c-case-card {
  min-height: 0;
  height: 100%;
}
.p-case-related .c-case-card__excerpt {
  order: 1;
}
.p-case-related .c-case-card__client {
  order: 2;
  margin-block-start: auto;
}
.p-case-related .c-case-card__tags {
  order: 3;
}
/* ==================================================
  Project: Challenge Top (.p-challenge-top)
================================================== */
.p-challenge-top {
  position: relative;
  background-image: url("../images/challenge-top__bg.webp");
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  z-index: 1;
  /* 下部のオレンジ背景（700px 未満は高め） */
}
.p-challenge-top::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 65%;
  background-color: rgba(255, 255, 255, 0.6);
  z-index: 0;
}
.p-challenge-top::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 35%;
  background-color: rgba(234, 85, 20, 0.8);
  z-index: 0;
}
@media screen and (min-width: 700px) {
  .p-challenge-top::before {
    height: 75%;
  }
  .p-challenge-top::after {
    height: 25%;
  }
}
.p-challenge-top__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
}
/* 上部：ヒーローエリア */
.p-challenge-top__hero {
  display: flex;
  flex-direction: column; /* デフォルトをSP（縦並び）に */
  align-items: flex-start;
  gap: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
  /* PC向けスタイル */
}
@media screen and (min-width: 900px) {
  .p-challenge-top__hero {
    flex-direction: row;
    justify-content: space-between;
  }
}
.p-challenge-top__catchphrase {
  display: flex;
  flex-direction: column;
  gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
  font-size: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem);
  font-weight: var(--fw-bold);
  color: var(--color-logo-orange);
  line-height: 1.5;
}
@media screen and (min-width: 900px) {
  .p-challenge-top__catchphrase {
    flex: 0 0 40%;
  }
}
@media screen and (min-width: 1240px) {
  .p-challenge-top__catchphrase {
    flex: 0 0 calc(622 * var(--to-rem));
  }
}
.p-challenge-top__catchphrase-line {
  white-space: nowrap;
  background-color: var(--color-white);
  padding: clamp(0.25rem, 0.162rem + 0.38vw, 0.5rem) clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  border-radius: calc(4 * var(--to-rem));
  width: fit-content;
}
.p-challenge-top__desc {
  flex: 1;
  font-family: var(--font-ja);
  color: var(--color-font-main);
}
@media screen and (min-width: 900px) {
  .p-challenge-top__desc {
    flex: 1 1 auto;
    margin-block-start: clamp(1.5rem, -1rem + 4.44vw, 3rem);
    translate: calc(-4 * var(--to-rem)) 0;
  }
}
.p-challenge-top__desc p {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-challenge-top__button-wrap {
  margin-block-start: clamp(1rem, 0.692rem + 1.31vw, 1.875rem);
}
@media screen and (min-width: 900px) {
  .p-challenge-top__button-wrap {
    width: fit-content;
  }
}
.p-challenge-top__features {
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
}
/* 下部：強みエリア */
.p-challenge-top__cards {
  display: grid;
  grid-template-columns: 1fr; /* デフォルト（SP）：1列 */
  gap: calc(32 * var(--to-rem));
  list-style: none;
  padding: 0;
  margin: 0;
  /* 2列（700px 以上 ※ sm 768px より前倒し） */
  /* PC向け：4列 */
}
@media screen and (min-width: 700px) {
  .p-challenge-top__cards {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 900px) {
  .p-challenge-top__cards {
    grid-template-columns: repeat(4, 1fr);
  }
}
.p-challenge-top__card {
  width: min(300 * var(--to-rem), 100%);
  margin-inline: auto;
  background-color: var(--color-white);
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(32 * var(--to-rem)) calc(4 * var(--to-rem));
  text-align: center;
  padding: clamp(2rem, 1.296rem + 3vw, 4rem) calc(16 * var(--to-rem)) clamp(1.125rem, 0.729rem + 1.69vw, 2.25rem);
  position: relative;
  position: relative;
  /* PC向けスタイル */
}
@media screen and (min-width: 900px) {
  .p-challenge-top__card {
    flex: 1;
  }
}
.p-challenge-top__card-head {
  display: flex;
  justify-content: center;
  position: absolute;
  top: calc(-20 * var(--to-rem));
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width: 900px) {
  .p-challenge-top__card-head {
    top: calc(-40 * var(--to-rem));
  }
}
.p-challenge-top__card-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
  height: auto;
  aspect-ratio: 1;
  background-color: var(--color-logo-orange);
  color: var(--color-white);
  font-size: clamp(1rem, 0.692rem + 1.31vw, 1.875rem);
  font-weight: var(--fw-bold);
  border-radius: 50%;
  line-height: 1.5;
}
.p-challenge-top__card-body {
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--to-rem));
}
.p-challenge-top__card-en {
  color: var(--color-logo-orange);
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-light);
  font-family: var(--font-en);
}
.p-challenge-top__card-text {
  display: block;
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  color: var(--color-font-main);
  font-weight: var(--fw-bold);
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-challenge-top__card-highlight {
  color: var(--color-logo-orange);
  display: inline-block;
  position: relative;
  z-index: 1;
}
.p-challenge-top__card-highlight::before {
  content: "";
  position: absolute;
  bottom: calc(2 * var(--to-rem));
  left: 0;
  width: 100%;
  height: calc(6 * var(--to-rem));
  background-color: var(--color-bg-light);
  z-index: -1;
}
/* セクションタイトル */
.p-challenge-top__header-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
}
.p-challenge-top__header-en {
  color: var(--color-logo-orange);
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  font-style: normal;
  font-weight: var(--fw-light);
  line-height: 1;
}
.p-challenge-top__header-ja {
  font-size: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  text-align: center;
}
.p-challenge-top__header-ja br {
  display: block;
}
@media screen and (min-width: 768px) {
  .p-challenge-top__header-ja br {
    display: none;
  }
}
@media screen and (min-width: 1024px) {
  .p-challenge-top .c-button {
    width: calc(330 * var(--to-rem));
  }
}
.p-challenge-top .c-dot {
  width: calc(8 * var(--to-rem));
}
/* ---------------------------------------------------------
  代表メッセージセクション
--------------------------------------------------------- */
.p-company-message {
  /* 基本スタイルが必要な場合はここに記述 */
}
/* ---------------------------------------------------------
  代表メッセージ：画像エリア
--------------------------------------------------------- */
.p-company-message__visual {
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(32 * var(--to-rem)) calc(4 * var(--to-rem));
  overflow: hidden;
  /* --- 追加：スマホでのサイズ確保 --- */
  width: 100%;
  aspect-ratio: 16/10; /* モバイルで横長すぎない比率を維持 */
  min-height: calc(280 * var(--to-rem)); /* 最低限この高さは維持する */
}
.p-company-message__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 画面幅 md 以上の設定 */
@media screen and (min-width: 900px) {
  .p-company-message__visual {
    aspect-ratio: auto;
    min-height: auto;
  }
  .p-company-message__visual img {
    height: auto;
  }
}
.p-company-message__container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
}
@media screen and (min-width: 900px) {
  .p-company-message__container {
    flex-direction: row;
    align-items: flex-start;
  }
}
.p-company-message__main {
  flex: 1;
}
@media screen and (min-width: 900px) {
  .p-company-message__main {
    flex: 1 1 50%;
  }
}
.p-company-message__text-group p {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  margin-bottom: 2em;
  text-align: justify;
}
.p-company-message__text-group p:last-child {
  margin-bottom: 0;
}
.p-company-message__side {
  width: 100%;
}
@media screen and (min-width: 900px) {
  .p-company-message__side {
    flex: 1 1 50%;
    max-width: 100%;
  }
}
/* プロフィール */
.p-company-message__profile-head {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  gap: calc(10 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-company-message__profile-head {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    gap: 0;
  }
}
.p-company-message__profile-role {
  display: block;
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
}
.p-company-message__profile-name-ja {
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: 700;
  padding-inline-end: calc(12 * var(--to-rem));
}
.p-company-message__profile-name-en {
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  font-weight: var(--fw-regular);
}
/* SNS */
.p-company-message__sns {
  display: flex;
  gap: calc(16 * var(--to-rem));
}
.p-company-message__sns-link {
  width: calc(40 * var(--to-rem));
  height: auto;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-logo-orange, #e85528);
  border-radius: 50%;
  transition: opacity 0.3s;
}
.p-company-message__sns-link:hover {
  opacity: 0.7;
}
/* 経歴カード */
.p-company-message__career {
  background: #fff8f3;
  padding: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  border-radius: calc(12 * var(--to-rem));
  margin-block-start: calc(24 * var(--to-rem));
  padding-inline-end: clamp(0.75rem, 0.574rem + 0.75vw, 1.25rem);
}
.p-company-message__career-title {
  display: flex;
  gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
}
.p-company-message__career-dots {
  translate: 0 calc(-9 * var(--to-rem));
}
.p-company-message__career-title-en {
  display: block;
  font-size: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem);
  color: var(--color-logo-orange);
  font-weight: var(--fw-light);
  line-height: 1;
}
.p-company-message__career-title-ja {
  display: block;
  font-weight: var(--fw-regular);
  font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
}
.p-company-message__career-text {
  font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
  line-height: 1.7;
  margin-block-start: clamp(1.5rem, 0.906rem + 2.54vw, 3.188rem);
}
.p-company-message__career-text a {
  color: var(--color-logo-orange);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-company-message__career-text a:hover {
    opacity: 0.75;
  }
}
.p-company-philosophy {
  padding-block: clamp(4rem, 3.028rem + 4.17vw, 6rem);
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.p-company-philosophy::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/philosophy-bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  opacity: 0.2;
  z-index: -2;
}
.p-company-philosophy::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3csvg%20width='720'%20height='827'%20viewBox='0%200%20720%20827'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M729.819%20147.611C701.325%20113.781%20667.581%2084.5195%20629.766%2061.222C566.792%2022.4056%20492.712%200%20413.482%200C185.487%200%206.10352e-05%20185.481%206.10352e-05%20413.477C6.10352e-05%20595.111%20117.689%20749.748%20280.817%20805.138V746.654C148.556%20693.808%2054.8543%20564.384%2054.8543%20413.477C54.8543%20215.735%20215.741%2054.8624%20413.474%2054.8624C441.037%2054.8624%20467.871%2057.9957%20493.658%2063.9054C534.513%2073.2818%20572.717%2089.6692%20606.957%20111.703C594.618%20110.423%20582.178%20109.725%20569.661%20109.725C372.634%20109.725%20212.337%20270.031%20212.337%20467.076V610.11C212.337%20629.057%20227.708%20644.459%20246.693%20644.459C265.678%20644.459%20281.05%20629.065%20281.05%20610.11V467.076C281.05%20307.925%20410.512%20178.454%20569.669%20178.454C620.351%20178.454%20669.497%20191.577%20712.99%20216.526C718.83%20219.869%20724.568%20223.413%20730.199%20227.182C745.865%20237.691%20767.045%20233.573%20777.678%20218.031C764.137%20192.887%20748.075%20169.303%20729.819%20147.611Z'%20fill='%23EA5514'%20fill-opacity='0.2'/%3e%3cpath%20d='M800.901%20269.016C786.15%20279.85%20768.157%20285.923%20749.304%20285.923C749.079%20285.923%20748.846%20285.899%20748.621%20285.899C763.768%20325.569%20772.105%20368.581%20772.105%20413.493C772.105%20605.093%20621.083%20762.064%20431.85%20771.65V483.897C431.85%20405.14%20495.918%20341.064%20574.674%20341.064C603.137%20341.064%20630.599%20349.394%20654.106%20365.184C669.865%20375.739%20691.208%20371.543%20701.778%20355.784C712.333%20340.025%20708.146%20318.666%20692.386%20308.111C657.518%20284.72%20616.81%20272.358%20574.666%20272.358C458.024%20272.358%20363.129%20367.255%20363.129%20483.897V823.914C379.64%20825.946%20396.431%20827.001%20413.477%20827.001C419.635%20827.001%20425.746%20826.823%20431.842%20826.559C651.345%20816.927%20826.951%20635.347%20826.951%20413.493C826.951%20362.702%20817.738%20314.029%20800.893%20269.023L800.901%20269.016Z'%20fill='%23EA5514'%20fill-opacity='0.2'/%3e%3c/svg%3e") no-repeat right bottom/contain;
  z-index: -1;
}
@media screen and (min-width: 1024px) {
  .p-company-philosophy::after {
    transform: translateY(20px);
  }
}
.p-company-philosophy__bg {
  position: absolute;
  inset: 0;
  z-index: -3;
  pointer-events: none;
}
.p-company-philosophy__bg::before, .p-company-philosophy__bg::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
}
.p-company-philosophy__bg::before {
  top: 0;
  height: calc(100% - 200 * var(--to-rem));
  background-color: var(--color-white);
}
.p-company-philosophy__bg::after {
  bottom: 0;
  height: calc(200 * var(--to-rem));
  background-color: var(--color-logo-orange);
}
.p-company-philosophy__head {
  margin-block-end: clamp(2rem, 1.296rem + 3vw, 4rem);
  position: relative;
  z-index: 2;
}
.p-company-philosophy__body {
  position: relative;
  z-index: 2;
}
/* 白いカード部分 */
.p-company-philosophy__card {
  background-color: rgba(255, 255, 255, 0.8);
  padding: clamp(1.5rem, 0.972rem + 2.25vw, 3rem) clamp(1rem, 0.648rem + 1.5vw, 2rem);
  width: min(950 * var(--to-rem), 100%);
  text-align: center;
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  border-radius: calc(4 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-company-philosophy__card {
    width: min(1192 * var(--to-rem), 100%);
  }
}
/* オレンジの見出しタグ */
.p-company-philosophy__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--to-rem));
}
.p-company-philosophy__lead-tag {
  display: inline-block;
  background-color: var(--color-logo-orange);
  color: var(--color-white);
  font-size: clamp(0.875rem, 0.127rem + 3.19vw, 3rem);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  padding: calc(8 * var(--to-rem)) clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  width: fit-content;
  letter-spacing: calc(2.4 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-company-philosophy__lead-tag {
    white-space: nowrap;
  }
}
/* 本文テキスト */
.p-company-philosophy__text {
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  font-weight: var(--fw-regular);
  line-height: 1.7;
  color: var(--color-font-main);
}
.p-company-philosophy__text br {
  display: none;
}
@media screen and (min-width: 900px) {
  .p-company-philosophy__text br {
    display: inline;
  }
}
/* =======================================
   セクション全体の基本設定
   ======================================= */
.p-company-profile {
  padding-block-start: clamp(2.25rem, 1.326rem + 3.94vw, 4.875rem);
}
.p-company-profile__body {
  margin-block-start: clamp(1.875rem, 1.215rem + 2.82vw, 3.75rem);
}
@media screen and (min-width: 900px) {
  .p-company-profile__body {
    padding: 0 clamp(2rem, 1.296rem + 3vw, 4rem);
  }
}
/* =======================================
   会社概要リスト（dl）
   ======================================= */
.p-company-profile__list {
  display: flex;
  flex-direction: column;
}
/* 各行の枠組み */
.p-company-profile__item {
  display: flex;
  flex-direction: column;
  padding-block: calc(16 * var(--to-rem));
  border-bottom: calc(1 * var(--to-rem)) solid var(--color-bg-light);
}
.p-company-profile__item:nth-of-type(4) {
  padding-block: calc(15 * var(--to-rem)) calc(16 * var(--to-rem));
}
.p-company-profile__item:nth-of-type(5) {
  padding-block: calc(13 * var(--to-rem)) calc(16 * var(--to-rem));
}
/* 最初の行の上にも線を入れる場合 */
.p-company-profile__item:first-child {
  border-top: calc(1 * var(--to-rem)) solid var(--color-bg-light);
}
@media screen and (min-width: 900px) {
  .p-company-profile__item {
    flex-direction: row;
    align-items: center;
    gap: calc(24 * var(--to-rem));
  }
}
.p-company-profile__label {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  font-weight: var(--fw-bold);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-company-profile__label {
    flex: 0 0 calc(120 * var(--to-rem));
    margin-bottom: 0;
  }
}
/* データ（dd） */
.p-company-profile__data {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-company-profile__data {
    flex: 1;
  }
}
/* 事業内容などの箇条書きリスト */
.p-company-profile__sub-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-company-profile__sub-list li {
  position: relative;
  padding-left: calc(26 * var(--to-rem));
}
/* リストの「・」を擬似要素で作成 */
.p-company-profile__sub-list li::before {
  content: "・";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: calc(3 * var(--to-rem));
}
/* =======================================
   マップエリア
   ======================================= */
.p-company-profile__map {
  margin-block-start: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem);
  width: 100%;
  aspect-ratio: 16/9;
}
@media screen and (min-width: 900px) {
  .p-company-profile__map {
    width: min(1092 * var(--to-rem), 100%);
    margin-inline: auto;
    aspect-ratio: 1092/330;
  }
}
.p-company-profile__map iframe {
  width: 100%;
  height: 100%;
  border: none;
  vertical-align: bottom;
}
/* ==================================================
  Project: Company Top (.p-company-top)
================================================== */
.p-company-top {
  padding-block-end: clamp(2rem, 1.296rem + 3vw, 4rem);
  overflow: hidden;
}
.p-company-top__content {
  display: flex;
  flex-direction: column-reverse;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
  /* PC向けスタイル（2カラム） */
}
@media screen and (min-width: 900px) {
  .p-company-top__content {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}
/* ■ 左側：テキスト・ボタンエリア */
.p-company-top__info {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 900px) {
  .p-company-top__info {
    flex: 0 0 40%;
  }
}
@media screen and (min-width: 1240px) {
  .p-company-top__info {
    flex: 0 0 calc(628 * var(--to-rem));
  }
}
.p-company-top__head {
  margin-block-end: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.p-company-top__body {
  /* テキストエリアのスタイル */
}
.p-company-top__text {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  color: var(--color-font-main);
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-company-top__button-wrap {
  margin-block-start: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
@media screen and (min-width: 900px) {
  .p-company-top__button-wrap {
    width: fit-content;
  }
}
/* ■ 右側：画像エリア */
.p-company-top__image {
  width: 100%;
}
@media screen and (min-width: 900px) {
  .p-company-top__image {
    flex: 1 1 auto;
    margin-inline-end: calc(50% - 50vw);
  }
}
.p-company-top__image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(32 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-company-top .c-button {
    width: calc(330 * var(--to-rem));
  }
}
.p-contact__complete {
  width: 100%;
  max-width: min(640 * var(--to-rem), 100%);
  margin-inline: auto;
  padding-block: clamp(2rem, 1.296rem + 3vw, 3rem) clamp(3rem, 1.944rem + 4.51vw, 5rem);
  text-align: center;
}
.p-contact__complete .c-section-title {
  margin-block-end: clamp(1.5rem, 0.972rem + 2.25vw, 2.5rem);
}
.p-contact__complete-text {
  margin-block-start: 0;
  color: var(--color-font-main);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-contact__complete-text {
    font-size: clamp(0.9375rem, 0.875rem + 0.25vw, 1.0625rem);
  }
}
.p-contact__complete-button {
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 3rem);
  margin-inline: auto;
  max-width: min(330 * var(--to-rem), 100%);
}
.p-contact__complete-sub {
  margin-block-start: clamp(1.5rem, 0.972rem + 2.25vw, 2rem);
  margin-block-end: 0;
}
.p-contact__complete-backlink {
  font-size: clamp(0.8125rem, 0.75rem + 0.25vw, 0.9375rem);
  color: var(--color-logo-orange);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-contact__complete-backlink:hover {
    opacity: 0.75;
  }
}
/* -------------------------------------------
 * コンタクトページ全体
 * ------------------------------------------- */
.p-contact {
  padding: clamp(3rem, 1.944rem + 4.51vw, 6rem) clamp(1.25rem, -1.831rem + 13.15vw, 10rem);
  margin-block-start: calc(-18 * var(--to-rem));
}
.p-contact__inner {
  width: min(928 * var(--to-rem), 100%);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-contact__lead {
  font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
  line-height: 1.75;
}
.p-contact__form {
  width: 100%;
}
.p-contact__form-notice {
  padding: calc(16 * var(--to-rem));
  border: 1px solid var(--color-used-gray);
  border-radius: calc(4 * var(--to-rem));
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1rem);
  line-height: 1.6;
  color: var(--color-font-sub);
}
/* ==================================================
  CTA（セクション背景は cta__bg.webp の一枚絵）
================================================== */
.p-cta {
  position: relative;
  isolation: isolate;
  overflow: clip;
  background-image: url("../images/cta__bg.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.p-cta__inner {
  position: relative;
  z-index: 1;
}
.p-cta__wrapper {
  display: flex;
  flex-direction: column;
  gap: calc(32 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-cta__wrapper {
    flex-direction: row;
    align-items: center;
    justify-content: center;
  }
}
@media screen and (min-width: 1240px) {
  .p-cta__wrapper {
    gap: calc(64 * var(--to-rem));
  }
}
.p-cta__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(578 * var(--to-rem), 100%);
  margin-inline: auto;
  gap: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  padding-block: clamp(2rem, 1.296rem + 3vw, 4rem) clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
  padding-inline: calc(20 * var(--to-rem));
  border-radius: calc(4 * var(--to-rem));
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0 0 calc(10 * var(--to-rem)) 0 rgba(252, 251, 239, 0.5);
  backdrop-filter: blur(calc(2 * var(--to-rem)));
}
@media screen and (min-width: 1024px) {
  .p-cta__box {
    padding-inline: calc(45 * var(--to-rem));
  }
}
.p-cta__title {
  font-size: calc(18 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
@media screen and (min-width: 1240px) {
  .p-cta__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-cta__text {
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  text-align: center;
  font-size: calc(14 * var(--to-rem));
}
@media screen and (min-width: 1240px) {
  .p-cta__text {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-cta__text .u-hidden {
  display: block;
}
@media screen and (min-width: 768px) {
  .p-cta__text .u-hidden {
    display: none;
  }
}
/* ボックスが align-items: center のため、ラッパー幅を明示して2ボタンを同じ幅に揃える */
.p-cta__button {
  align-self: center;
  width: min(100%, 330 * var(--to-rem));
}
.p-cta__button .c-button {
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}
.p-dev-notice {
  padding-block: calc(24 * var(--to-rem));
  background-color: #fff3cd;
}
@media screen and (min-width: 900px) {
  .p-dev-notice {
    padding-block: calc(32 * var(--to-rem));
  }
}
.p-dev-notice__inner {
  max-width: calc(var(--inner) + var(--padding-inner) * 2);
}
.p-dev-notice__content {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (min-width: 900px) {
  .p-dev-notice__content {
    gap: calc(20 * var(--to-rem));
    font-size: calc(16 * var(--to-rem));
  }
}
.p-dev-notice__title {
  color: var(--color-text);
  font-size: calc(18 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 900px) {
  .p-dev-notice__title {
    font-size: calc(20 * var(--to-rem));
  }
}
.p-dev-notice__text code {
  padding-block: calc(2 * var(--to-rem));
  padding-inline: calc(6 * var(--to-rem));
  border-radius: 4px;
  background-color: rgba(0, 0, 0, 0.05);
  color: var(--color-primary);
  font-family: "Courier New", Courier, monospace;
  font-size: calc(13 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-dev-notice__text code {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-dev-notice__list {
  display: flex;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
  margin: 0;
  padding-inline-start: calc(24 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-dev-notice__list {
    gap: calc(16 * var(--to-rem));
    padding-inline-start: calc(32 * var(--to-rem));
  }
}
.p-dev-notice__item {
  display: flex;
  flex-direction: column;
  gap: calc(4 * var(--to-rem));
  line-height: 1.8;
}
.p-dev-notice__item strong {
  color: var(--color-primary);
  font-weight: var(--fw-bold);
}
.p-dev-notice__item code {
  padding-block: calc(2 * var(--to-rem));
  padding-inline: calc(6 * var(--to-rem));
  border-radius: 4px;
  background-color: rgba(0, 0, 0, 0.05);
  color: var(--color-primary);
  font-family: "Courier New", Courier, monospace;
  font-size: calc(13 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-dev-notice__item code {
    font-size: calc(14 * var(--to-rem));
  }
}
/* ドロワー表示中: 縦スクロール停止でバーが消える環境の横幅ジャンプを抑える */
html.is-drawer-scroll-locked {
  overflow: hidden;
  padding-inline-end: var(--layout-scrollbar-width, 0px);
}
.p-drawer__button {
  position: relative;
  z-index: 999;
  width: calc(64 * var(--to-rem));
  height: inherit;
  margin: 0;
  padding: 0;
  border: none;
  background-color: var(--color-primary);
  outline: none;
  cursor: pointer;
  transition: background-color var(--duration);
}
@media screen and (min-width: 1024px) {
  .p-drawer__button {
    display: none;
  }
}
.p-drawer__button span {
  position: relative;
  left: 50%;
  display: block;
  width: calc(25 * var(--to-rem));
  height: 1px;
  background-color: var(--color-logo-orange);
  translate: -50% 0;
  transition: top calc(var(--duration) * 1.67), opacity calc(var(--duration) * 1.67);
}
.p-drawer__button span:nth-of-type(1) {
  top: -8px;
}
.p-drawer__button span:nth-of-type(2) {
  top: 0;
}
.p-drawer__button span:nth-of-type(3) {
  top: 8px;
}
.p-drawer__button.is-open span:nth-of-type(1) {
  top: 0;
  rotate: 45deg;
}
.p-drawer__button.is-open span:nth-of-type(2) {
  opacity: 0;
}
.p-drawer__button.is-open span:nth-of-type(3) {
  top: -2px;
  rotate: -45deg;
}
.p-drawer__nav {
  --drawer-divider: #e0e0e0;
  /* 採用アコーディオンのシェブロンとサブメニュー外部リンクアイコンの右端を揃える */
  --drawer-nav-icon-slot: calc(14 * var(--to-rem));
  /* アイコン列を画面右端から少し左へ */
  --drawer-nav-icon-end-gap: calc(12 * var(--to-rem));
  position: fixed;
  /* inset:0 と margin-block-start / height:100svh の併用だとビューポート外にはみ出し、下端が切れる */
  top: var(--header-height);
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 90;
  display: none;
  overflow-y: auto;
  width: 100%;
  height: auto;
  min-height: 0;
  padding-block-end: calc(32 * var(--to-rem));
  background-color: var(--color-white);
  opacity: 1;
  scrollbar-width: none;
}
.p-drawer__nav::-webkit-scrollbar {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-drawer__nav {
    display: none;
  }
}
.p-drawer__inner {
  display: flex;
  flex-direction: column;
  width: min(600 * var(--to-rem), 100%);
  margin-inline: auto;
  padding-inline: calc(20 * var(--to-rem));
}
.p-drawer__nav-inner {
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--to-rem));
  width: 100%;
}
.p-drawer__nav-list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  padding-block-start: calc(40 * var(--to-rem));
}
.p-drawer__nav-item {
  border-block-end: 1px solid var(--drawer-divider);
}
.p-drawer__nav-item--accordion {
  padding: 0;
}
.p-drawer__nav-link {
  display: flex;
  align-items: center;
  width: 100%;
  padding: calc(16 * var(--to-rem)) 0;
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.6;
  color: var(--color-font-main);
  text-align: start;
  text-decoration: none;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-drawer__nav-link:hover {
    opacity: 0.65;
  }
}
.p-drawer__nav-link:focus-visible {
  outline: 2px solid var(--color-logo-orange);
  outline-offset: 2px;
}
.p-drawer__nav-accordion-btn {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--drawer-nav-icon-slot);
  align-items: center;
  column-gap: calc(10 * var(--to-rem));
  width: 100%;
  padding: calc(16 * var(--to-rem)) var(--drawer-nav-icon-end-gap) calc(16 * var(--to-rem)) 0;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.6;
  color: var(--color-font-main);
  text-align: start;
  cursor: pointer;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-drawer__nav-accordion-btn:hover {
    opacity: 0.65;
  }
}
.p-drawer__nav-accordion-btn:focus-visible {
  outline: 2px solid var(--color-logo-orange);
  outline-offset: 2px;
}
.p-drawer__nav-accordion-label {
  min-width: 0;
}
.p-drawer__nav-accordion-chevron {
  justify-self: end;
  width: var(--drawer-nav-icon-slot);
  height: var(--drawer-nav-icon-slot);
  background: url("data:image/svg+xml,%3csvg%20width='17'%20height='9'%20viewBox='0%200%2017%209'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0.682129%200.731445L8.18213%207.73145L15.6821%200.731445'%20stroke='%23333333'%20stroke-width='2'%20stroke-linejoin='round'/%3e%3c/svg%3e") no-repeat center center/contain;
  opacity: 0.75;
  transition: rotate var(--duration) ease;
}
.js-drawer-accordion.is-open .p-drawer__nav-accordion-chevron {
  rotate: 180deg;
}
.p-drawer__accordion-panel[hidden] {
  display: none;
}
.p-drawer__nav-button {
  width: min(clamp(15.625rem, 14.525rem + 4.69vw, 18.75rem), 100%);
  margin-inline: auto;
}
.c-button--drawer-contact {
  display: flex;
  width: 100%;
  max-width: 100%;
  justify-content: center;
}
.p-error {
  padding-block: calc(60 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-error {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-error__header {
  margin-block-end: calc(32 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 900px) {
  .p-error__header {
    margin-block-end: calc(56 * var(--to-rem));
  }
}
.p-error__title {
  color: var(--color-text);
  font-size: calc(24 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 900px) {
  .p-error__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-error__content {
  max-width: calc(640 * var(--to-rem));
  margin-inline: auto;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
  text-align: center;
}
@media screen and (min-width: 900px) {
  .p-error__content {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-error__content p + p {
  margin-block-start: calc(32 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-error__content p + p {
    margin-block-start: calc(64 * var(--to-rem));
  }
}
/* 質問・回答エリア共通：上下余白は start / end で同じ値にする */
.p-faq {
  background-color: var(--color-bg-light);
  padding-block: clamp(3rem, 2.028rem + 4.17vw, 6rem);
}
.p-faq__list {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  max-width: calc(1000 * var(--to-rem));
  margin-inline: auto;
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
}
@media screen and (min-width: 900px) {
  .p-faq__list {
    max-width: 100%;
  }
}
/* =======================================
   アコーディオン（details要素）
   ======================================= */
.p-faq__item {
  background-color: var(--color-white);
  border-radius: calc(4 * var(--to-rem));
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03);
}
/* =======================================
   質問部分（summary要素）
   ======================================= */
.p-faq__q {
  display: flex;
  align-items: center; /* 行の高さ方向は中央 */
  justify-content: space-between;
  padding-block: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  padding-inline: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem) clamp(0.75rem, 0.442rem + 1.31vw, 1.625rem);
  cursor: pointer;
  transition: opacity 0.3s ease;
}
.p-faq__q::-webkit-details-marker {
  display: none;
}
@media (any-hover: hover) {
  .p-faq__q:hover {
    opacity: 0.7;
  }
}
.p-faq__q-main {
  display: flex;
  align-items: center; /* Q と見出しを高さ方向で中央揃え */
  justify-content: flex-start;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  flex: 1;
  min-width: 0;
}
.p-faq__q-icon {
  font-size: clamp(1.125rem, 0.949rem + 0.75vw, 1.5rem);
  font-weight: var(--fw-bold);
  line-height: 1.75;
}
.p-faq__q-text {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  font-weight: var(--fw-regular);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  text-align: start;
}
.p-faq__icon-arrow {
  display: block;
  width: calc(14 * var(--to-rem));
  height: auto;
  aspect-ratio: 1;
  border-right: 2px solid var(--color-font-main);
  border-bottom: 2px solid var(--color-font-main);
  transform: rotate(45deg);
  transition: transform 0.3s ease;
  margin-inline-start: calc(16 * var(--to-rem));
  flex-shrink: 0;
  align-self: center; /* 矢印も行の高さ方向で中央 */
}
.p-faq__item.is-opened .p-faq__icon-arrow {
  transform: rotate(-135deg) translate(-2px, -2px);
}
/* =======================================
   回答部分
   ======================================= */
.p-faq__a-wrapper {
  overflow: hidden;
  transition: height 0.3s ease, opacity 0.3s ease;
}
.p-faq__a {
  display: flex;
  align-items: flex-start;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  border-top: calc(2 * var(--to-rem)) solid var(--color-used-gray);
  margin-inline: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  padding-block: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
}
.p-faq__a-icon {
  font-size: clamp(1.125rem, 0.949rem + 0.75vw, 1.5rem);
  font-weight: var(--fw-bold);
  color: var(--color-logo-orange);
  line-height: 1.75;
}
.p-faq__a-text {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  font-weight: var(--fw-regular);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-footer {
  background-color: var(--color-white);
  padding-block-start: clamp(4rem, 2.824rem + 5vw, 6rem);
}
/* ==============================================
  上部〜中部（白背景エリア）
============================================== */
.p-footer__top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  text-align: center;
}
.p-footer__logo-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(16 * var(--to-rem));
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-footer__logo-link:hover {
    opacity: 0.6;
  }
}
.p-footer__logo-img {
  object-fit: contain;
}
.p-footer__logo-img--icon {
  width: clamp(3.75rem, 2.738rem + 4.32vw, 6.625rem);
  height: auto;
  aspect-ratio: 1;
}
.p-footer__logo-img--title {
  width: clamp(8.688rem, 5.629rem + 13.05vw, 17.375rem);
  height: auto;
  aspect-ratio: 139/14;
}
.p-footer__address {
  line-height: 1.5;
  font-family: var(--font-address);
  font-weight: var(--fw-medium);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-footer__sns {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
}
.p-footer__sns-item {
  width: calc(40 * var(--to-rem));
  height: auto;
  aspect-ratio: 1;
}
.p-footer__sns-link {
  display: block;
  width: 100%;
  height: 100%;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-footer__sns-link:hover {
    opacity: 0.6;
  }
}
.p-footer__sns-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-footer__nav {
  margin-block-start: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
}
.p-footer__nav-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  row-gap: calc(16 * var(--to-rem));
  width: fit-content;
  margin-inline: auto;
  border-top: 1px solid var(--color-bg-light);
  padding-block: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem) clamp(1rem, 0.604rem + 1.69vw, 2.125rem);
}
.p-footer__nav-item {
  position: relative;
  height: 100%;
}
.p-footer__nav-item--arrow::after {
  content: "";
  background: url("data:image/svg+xml,%3csvg%20width='17'%20height='9'%20viewBox='0%200%2017%209'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0.682129%200.731445L8.18213%207.73145L15.6821%200.731445'%20stroke='%23333333'%20stroke-width='2'%20stroke-linejoin='round'/%3e%3c/svg%3e") no-repeat center center/contain;
  width: calc(15 * var(--to-rem));
  height: calc(7 * var(--to-rem));
  transition: translate var(--duration) ease;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
}
@media (any-hover: hover) {
  .p-footer__nav-item--arrow:hover::after {
    translate: 0 calc(2 * var(--to-rem));
  }
}
.p-footer__nav-link {
  display: flex;
  align-items: center;
  height: 100%;
  font-size: clamp(0.75rem, 0.662rem + 0.38vw, 0.875rem);
  transition: opacity var(--duration) ease;
  padding-inline: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
@media (any-hover: hover) {
  .p-footer__nav-link:hover {
    opacity: 0.6;
  }
}
.p-footer__nav-item--arrow.js-dropdown > .p-footer__nav-link {
  cursor: default;
}
.p-footer__sublist-wrap {
  position: absolute;
  top: calc(100% - 6 * var(--to-rem));
  bottom: auto;
  left: calc(15 * var(--to-rem));
  padding-block-start: calc(16 * var(--to-rem));
  padding-block-end: 0;
  display: none;
  z-index: 10;
}
.p-footer__sublist {
  position: relative;
}
.p-footer__bottom {
  background-color: #3a3a3a;
  color: var(--color-white);
  padding-block: calc(24 * var(--to-rem));
}
.p-footer__bottom-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(16 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-footer__bottom-inner {
    flex-direction: row;
    justify-content: space-between;
  }
}
.p-footer__copyright small {
  color: var(--color-white);
  font-size: clamp(0.625rem, 0.537rem + 0.38vw, 0.875rem);
  line-height: 1.75;
}
.p-footer__sub-nav {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
.p-footer__sub-nav-link {
  color: var(--color-white);
  font-size: clamp(0.625rem, 0.537rem + 0.38vw, 0.875rem);
  line-height: 1.75;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-footer__sub-nav-link:hover {
    opacity: 0.6;
  }
}
/* -------------------------------------------
 * フォーム全体
 * ------------------------------------------- */
.p-form {
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem); /* 事例詳細のh2上の余白に合わせる */
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--to-rem)); /* 少し広めの間隔に設定 */
}
/* 各項目の行 */
.p-form__item {
  display: flex;
  align-items: flex-start; /* ラベルが長くても上に揃える */
}
@media screen and (max-width: 767px) {
  .p-form__item {
    flex-direction: column;
    gap: calc(8 * var(--to-rem));
  }
}
/* -------------------------------------------
 * 左側：ラベルとバッジ
 * ------------------------------------------- */
.p-form__label {
  display: flex;
  align-items: center;
  gap: calc(12 * var(--to-rem));
  width: calc(240 * var(--to-rem)); /* 少し広めに調整 */
  flex-shrink: 0;
  padding-block-start: calc(12 * var(--to-rem)); /* 入力欄の中央付近にテキストを合わせる */
}
@media screen and (max-width: 767px) {
  .p-form__label {
    width: 100%;
    padding-block-start: 0;
  }
}
.p-form__badge {
  /* 事例詳細のラベル（h4）のスタイルを継承 */
  background-color: var(--color-logo-orange, #e85528);
  color: var(--color-white, #fff);
  font-size: calc(12 * var(--to-rem));
  font-weight: var(--fw-bold);
  padding: calc(2 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 100px; /* 完全に丸く */
  white-space: nowrap;
}
.p-form__label-text {
  font-weight: var(--fw-bold);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1rem);
  color: var(--color-font-main, #333);
  letter-spacing: calc(0.9 * var(--to-rem)); /* トンマナ統一 */
}
/* -------------------------------------------
 * 右側：入力フィールド
 * ------------------------------------------- */
.p-form__input {
  flex-grow: 1;
  width: 100%;
}
.p-form__input input[type=text],
.p-form__input input[type=email],
.p-form__input input[type=tel],
.p-form__input select,
.p-form__input textarea {
  width: 100%;
  padding: calc(12 * var(--to-rem)) calc(16 * var(--to-rem));
  border: calc(1 * var(--to-rem)) solid #ccc; /* ページネーションの枠線色に近いグレー */
  background-color: var(--color-white, #fff);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  border-radius: calc(4 * var(--to-rem)); /* ページネーション等の角丸に合わせる */
  transition: all 0.3s;
  line-height: 1.75;
  letter-spacing: calc(0.5 * var(--to-rem));
}
.p-form__input input[type=text]::placeholder,
.p-form__input input[type=email]::placeholder,
.p-form__input input[type=tel]::placeholder,
.p-form__input select::placeholder,
.p-form__input textarea::placeholder {
  color: #aaa;
}
.p-form__input input[type=text]:focus,
.p-form__input input[type=email]:focus,
.p-form__input input[type=tel]:focus,
.p-form__input select:focus,
.p-form__input textarea:focus {
  outline: none;
  border-color: var(--color-logo-orange, #e85528); /* オレンジにフォーカス */
  box-shadow: 0 0 0 2px rgba(232, 85, 40, 0.1); /* ほんのりオレンジの影 */
}
.p-form__input select {
  appearance: none;
  cursor: pointer;
  background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23e85528" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>');
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1em;
}
.p-form__input textarea {
  min-height: 160px;
}
/* -------------------------------------------
 * プライバシーポリシー
 * ------------------------------------------- */
.p-form__privacy {
  text-align: center;
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 3rem);
  font-size: calc(14 * var(--to-rem));
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-form__privacy label {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  font-weight: var(--fw-medium);
}
.p-form__privacy input[type=checkbox] {
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--color-logo-orange, #e85528); /* チェック時の色をオレンジに */
  cursor: pointer;
}
.p-form__privacy a {
  color: var(--color-logo-orange, #e85528);
  text-decoration: underline;
  transition: opacity 0.3s;
}
.p-form__privacy a:hover {
  opacity: 0.7;
  text-decoration: none;
}
/* -------------------------------------------
 * 送信ボタン（CF7 [submit] → input.btn-submit。子要素なしのため .c-button を単体で再現）
 * ------------------------------------------- */
.p-form__submit {
  text-align: center;
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 3rem);
}
.p-form__submit .btn-submit {
  --_arrow-w: clamp(0.375rem, 0.287rem + 0.38vw, 0.625rem);
  --_arrow-inset: calc(30 * var(--to-rem));
  --_arrow-shift: calc(10 * var(--to-rem));
  appearance: none;
  box-sizing: border-box;
  display: inline-block;
  width: min(330 * var(--to-rem), 100%);
  margin-inline: auto;
  padding: calc(15 * var(--to-rem)) calc(var(--_arrow-inset) + 16 * var(--to-rem) + var(--_arrow-w)) calc(15 * var(--to-rem)) calc(30 * var(--to-rem));
  border: 2px solid var(--color-logo-orange);
  background-color: var(--color-logo-orange);
  border-radius: calc(4 * var(--to-rem));
  overflow: hidden;
  color: var(--color-white);
  cursor: pointer;
  font-family: inherit;
  font-weight: var(--fw-bold);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  text-align: center;
  transition: background-color var(--duration) ease, border-color var(--duration) ease, color var(--duration) ease, background-position var(--duration) ease;
  /* icon-arrow__left-white と同形のシェブロン（stroke #fff） */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 23' fill='none'%3E%3Cpath d='M1.06055 21.0605L11.0605 11.0605L1.06055 1.06055' stroke='%23ffffff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: var(--_arrow-w) auto;
  background-position: right var(--_arrow-inset) center;
}
@media (any-hover: hover) {
  .p-form__submit .btn-submit:hover {
    background-color: var(--color-white);
    color: var(--color-logo-orange);
    border-color: var(--color-logo-orange);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 23' fill='none'%3E%3Cpath d='M1.06055 21.0605L11.0605 11.0605L1.06055 1.06055' stroke='%23ea5514' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-position: right calc(var(--_arrow-inset) - var(--_arrow-shift)) center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-form__submit .btn-submit {
    transition: background-color var(--duration) ease, border-color var(--duration) ease, color var(--duration) ease;
  }
  .p-form__submit .btn-submit:hover {
    background-position: right var(--_arrow-inset) center;
  }
}
/* -------------------------------------------
 * トップページ用ファーストビュー（FV）全体のスタイル
 * ------------------------------------------- */
.p-fv-top {
  position: relative;
  background: linear-gradient(180deg, #FFF 0%, #EFF0F3 100%);
  overflow: hidden;
  padding-block: 0 clamp(4.5rem, 2.915rem + 6.76vw, 9rem);
}
@media screen and (min-width: 900px) {
  .p-fv-top {
    margin-block-start: calc(28 * var(--to-rem));
  }
}
/* 左右分割コンテナ（.l-inner 併用：FV だけインナー幅を広げる） */
.p-fv-top__inner {
  /* SPのスタイル（デフォルト: 1023px以下） */
  display: flex;
  flex-direction: column-reverse;
  align-items: stretch;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  /* PC（1024px以上）：左右の間は 32px、右カラムはビューポート右端まで */
}
@media screen and (min-width: 1240px) {
  .p-fv-top__inner {
    max-width: calc(min(1800px, 100%) + var(--padding-inner) * 2);
  }
}
@media screen and (min-width: 1024px) {
  .p-fv-top__inner {
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    gap: calc(32 * var(--to-rem));
  }
}
/* ■ 左側：テキストエリア */
.p-fv-top__left {
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .p-fv-top__left .c-button {
    margin-inline: 0;
  }
}
@media screen and (min-width: 900px) {
  .p-fv-top__left {
    translate: calc(4 * var(--to-rem)) calc(-6 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-fv-top__left {
    flex: 1 1 0;
    min-width: 0;
    margin-inline-start: clamp(0.625rem, -22.625rem + 30vw, 4.375rem);
    text-align: start;
    translate: none;
  }
}
.p-fv-top__content {
  margin-inline: 0;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .p-fv-top__content {
    max-width: none;
  }
}
.p-fv-top__heading {
  font-size: clamp(1.25rem, 0.917rem + 1.42vw, 2rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  color: var(--color-font-main);
  letter-spacing: calc(2 * var(--to-rem));
  white-space: nowrap;
}
@media screen and (min-width: 1240px) {
  .p-fv-top__heading {
    font-size: clamp(2rem, -1.1rem + 4vw, 2.5rem);
  }
}
.p-fv-top__lead {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  margin-block-start: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
}
@media screen and (min-width: 1024px) {
  .p-fv-top__lead {
    translate: 0 calc(7 * var(--to-rem));
  }
}
.p-fv-top__buttons {
  /* SPのスタイル（デフォルト: 767px以下） */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-block-start: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
@media screen and (min-width: 768px) {
  .p-fv-top__buttons {
    flex-direction: row; /* 横並びにリセット */
    justify-content: center;
    translate: 0 calc(6 * var(--to-rem));
  }
}
@media screen and (min-width: 900px) {
  .p-fv-top__buttons {
    gap: clamp(1rem, -1.462rem + 3.85vw, 2rem);
  }
}
@media screen and (min-width: 1024px) {
  .p-fv-top__buttons {
    align-items: flex-start;
    justify-content: flex-start;
  }
}
.p-fv-top__btn {
  width: min(280px, 100%); /* ボタンの幅を画像に合わせて制限 */
  margin-inline: 0;
}
/* ■ 右側：スライダーエリア */
.p-fv-top__right {
  position: relative;
  width: 100%;
  /* 高さは .p-fv-top__slide-image の aspect-ratio に任せ、画像の実寸で伸縮しない */
  height: auto;
  min-height: 0;
  /* PC：50vw＋負のマージンで右端に接続（親の gap で左との間隔 32px） */
}
@media screen and (min-width: 1024px) {
  .p-fv-top__right {
    flex: 0 0 50vw;
    width: 50vw;
    max-width: none;
    min-width: 0;
    margin-inline-end: calc(50% - 50vw);
    translate: none;
  }
}
.p-fv-top__swiper {
  width: 100%;
  height: auto;
  padding-bottom: calc(50 * var(--to-rem));
}
/* スライド全体のスタイル */
.p-fv-top__slide {
  height: auto;
  position: relative;
}
/* スライド全体を事例詳細へのリンク化（暫定URLはPHP側で指定） */
.p-fv-top__slide-link {
  display: block;
  height: auto;
  min-height: 0;
  position: relative;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.p-fv-top__slide-link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: transparent;
  pointer-events: none;
  transition: background-color var(--duration);
}
.p-fv-top__slide-link:hover::after, .p-fv-top__slide-link:focus-visible::after {
  background-color: rgba(255, 255, 255, 0.28);
}
.p-fv-top__slide-link:focus-visible {
  outline: 2px solid var(--color-logo-orange);
  outline-offset: 2px;
}
/* スライド画像枠：元画像の縦横比に依存せず一定比率で表示エリアを確保 */
.p-fv-top__slide-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 203/153;
  overflow: hidden;
  position: relative;
}
.p-fv-top__slide-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
@media screen and (min-width: 1024px) {
  .p-fv-top__slide-image img {
    object-position: right center; /* PC：枠の右端に画像を寄せる */
  }
}
/* 画像の上に重ねる実績テキスト */
.p-fv-top__slide-content {
  position: absolute;
  bottom: 0; /* 画像の下端に配置 */
  left: 0;
  z-index: 2; /* ホバー時の白透かし（::after）より手前で文字を読みやすく */
  width: 100%;
  padding: clamp(1.5rem, 0.972rem + 2.25vw, 3rem) clamp(1rem, 0.648rem + 1.5vw, 2rem);
  /* 文字を読みやすくするための、下から上への黒いグラデーション */
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
  color: var(--color-white);
}
.p-fv-top__slide-content .l-inner {
  padding-block: 0; /* インナーの上限をリセット */
}
.p-fv-top__slide-caseWrap {
  display: flex;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
}
.p-fv-top__slide-case-name {
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  letter-spacing: calc(1.2 * var(--to-rem));
}
.p-fv-top__slide-case-desc {
  font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
  line-height: 1.7;
}
/* ページネーション（ドットナビ）のスタイルを上書き */
.p-fv-top__pagination.swiper-pagination {
  bottom: 0;
}
/* ドット自体のスタイル */
.p-fv-top__pagination.swiper-pagination .swiper-pagination-bullet {
  width: clamp(0.75rem, 0.574rem + 0.75vw, 1.25rem);
  height: auto;
  aspect-ratio: 1;
  background-color: var(--color-used-gray); /* 通常時の色 */
  opacity: 1;
  margin-inline: calc(11 * var(--to-rem));
  transition: background-color var(--duration);
}
/* アクティブ時の色（オレンジ） */
.p-fv-top__pagination.swiper-pagination .swiper-pagination-bullet-active {
  background-color: var(--color-logo-orange);
}
@media screen and (min-width: 900px) {
  .p-fv-top .c-button {
    padding-inline: calc(16 * var(--to-rem));
  }
}
@media screen and (min-width: 1240px) {
  .p-fv-top .c-button {
    padding-inline: calc(30 * var(--to-rem));
  }
}
.p-header {
  height: var(--header-height);
  box-shadow: 0 0 25px oklch(from var(--color-black) l c h/10%);
  background-color: var(--color-white);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}
.p-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: inherit;
  padding-inline: calc(20 * var(--to-rem));
}
@media screen and (min-width: 1240px) {
  .p-header__inner {
    padding-inline: clamp(1.875rem, -13.625rem + 20vw, 4.375rem);
  }
}
.p-header__logo {
  /* SP: 375px:120px → 1024px付近まで流動 / PC: 1024px:160px → 1440px:284px */
  --header-logo-width: clamp(7.5rem, 3.891rem + 15.399vw, 17.75rem);
  --header-logo-gap: clamp(0.25rem, 0.074rem + 0.751vw, 0.75rem);
  --header-logo-icon-width: clamp(1.5rem, 0.708rem + 3.38vw, 3.75rem);
  display: inline-block;
  width: var(--header-logo-width);
  height: inherit;
  transition: opacity var(--duration);
}
@media screen and (min-width: 1024px) {
  .p-header__logo {
    /* 1024px:160px → 1440px:284px */
    --header-logo-width: clamp(10rem, -9.077rem + 29.808vw, 17.75rem);
  }
}
@media (any-hover: hover) {
  .p-header__logo:hover {
    opacity: 0.6;
  }
}
.p-header__logo-link {
  display: flex;
  align-items: center;
  width: 100%;
  gap: var(--header-logo-gap);
  height: inherit;
}
.p-header__logo-img {
  object-fit: contain;
  flex-shrink: 0;
}
.p-header__logo-img--icon {
  width: var(--header-logo-icon-width);
  height: auto;
  aspect-ratio: 1;
}
.p-header__logo-img--title {
  width: calc(100% - var(--header-logo-icon-width) - var(--header-logo-gap));
  min-width: 0;
  flex-shrink: 1;
  height: auto;
  aspect-ratio: 106/11;
}
.p-header__nav {
  position: relative;
  display: none;
  height: inherit;
}
@media screen and (min-width: 1024px) {
  .p-header__nav {
    display: flex;
    align-items: center;
  }
}
.p-header__nav-list {
  display: flex;
  justify-content: flex-end;
  height: inherit;
}
.p-header__nav-item {
  height: inherit;
}
.p-header__nav-item--sub {
  position: relative;
}
.p-header__nav-item--sub .p-header__nav-link {
  gap: calc(4 * var(--to-rem));
}
.p-header__nav-item--sub .p-header__nav-link::after {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3csvg%20width='17'%20height='9'%20viewBox='0%200%2017%209'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0.682129%200.731445L8.18213%207.73145L15.6821%200.731445'%20stroke='%23333333'%20stroke-width='2'%20stroke-linejoin='round'/%3e%3c/svg%3e") no-repeat center center/contain;
  width: calc(15 * var(--to-rem));
  height: calc(7 * var(--to-rem));
  transition: translate var(--duration) ease;
}
@media (any-hover: hover) {
  .p-header__nav-item--sub:hover .p-header__nav-link::after {
    translate: 0 calc(2 * var(--to-rem));
  }
}
.p-header__nav-link {
  display: flex;
  align-items: center;
  height: inherit;
  padding: calc(4 * var(--to-rem)) calc(8 * var(--to-rem));
  font-size: calc(14 * var(--to-rem));
  line-height: 1.7;
  transition: opacity var(--duration) ease;
}
@media screen and (min-width: 1240px) {
  .p-header__nav-link {
    padding: calc(8 * var(--to-rem)) calc(12 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-header__nav-link:hover {
    opacity: 0.6;
  }
}
.p-header__nav-item--sub > .p-header__nav-link {
  cursor: default;
}
.p-header__nav-button {
  margin-inline-start: clamp(0.625rem, -0.913rem + 2.4vw, 1.25rem);
}
.p-header__sublist-wrap {
  position: absolute;
  top: calc(50% + 24px);
  left: 0;
  display: none;
  z-index: 10;
}
.p-header__sublist {
  position: relative;
}
.modal__close-btn {
  position: absolute;
  top: clamp(0.75rem, 0.507rem + 1.04vw, 1.5rem);
  right: clamp(0.75rem, 0.507rem + 1.04vw, 1.5rem);
  font-size: 2rem;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
  color: var(--color-font-main);
  z-index: 10;
}
.p-member-modal__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1.5rem, 1.104rem + 1.69vw, 2.625rem);
}
@media screen and (min-width: 900px) {
  .p-member-modal__head {
    flex-direction: row;
    align-items: center;
  }
}
.p-member-modal__head-imgWrap {
  width: min(300 * var(--to-rem), 100%);
  margin-inline: auto;
  height: auto;
  aspect-ratio: 1;
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(32 * var(--to-rem)) calc(4 * var(--to-rem));
  overflow: hidden;
}
@media screen and (min-width: 900px) {
  .p-member-modal__head-imgWrap {
    flex: 0 0 calc(300 * var(--to-rem));
    margin-inline: 0;
  }
}
.p-member-modal__head-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-member-modal__head-contents {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(16 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-member-modal__head-contents {
    align-items: flex-start;
  }
}
.p-member-modal__head-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
}
.p-member-modal__head-role {
  color: var(--color-white);
  font-size: clamp(0.75rem, 0.653rem + 0.42vw, 0.875rem);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  padding: calc(4 * var(--to-rem)) calc(16 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background-color: var(--color-logo-orange);
}
.p-member-modal__head-name {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
}
.p-member-modal__head-jp {
  font-size: clamp(1.5rem, 1.111rem + 1.67vw, 2.25rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.p-member-modal__head-en {
  font-size: clamp(1rem, 0.806rem + 0.83vw, 1.375rem);
  font-weight: var(--fw-light);
  line-height: 1.5;
  color: var(--color-font-sub);
}
.p-member-modal__sns {
  display: flex;
  align-items: center;
  gap: calc(12 * var(--to-rem));
  margin-block-start: calc(8 * var(--to-rem));
}
.p-member-modal__sns-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(40 * var(--to-rem));
  height: calc(40 * var(--to-rem));
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-member-modal__sns-link:hover {
    opacity: 0.7;
  }
}
.p-member-modal__sns-img {
  object-fit: contain;
}
.p-member-modal__body {
  margin-block-start: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  padding-block-start: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  display: flex;
  flex-direction: column;
  gap: calc(18 * var(--to-rem));
  border-top: calc(1 * var(--to-rem)) solid var(--color-bg-light);
}
.p-member-modal__career,
.p-member-modal__career-pr {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
.p-member-modal__career-title,
.p-member-modal__career-pr-title {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  justify-content: center;
  color: var(--color-logo-orange);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  font-weight: var(--fw-regular);
  line-height: 1.5;
  padding: calc(2 * var(--to-rem)) clamp(1rem, 0.648rem + 1.5vw, 2rem);
  border: calc(2 * var(--to-rem)) solid var(--color-logo-orange);
  border-radius: calc(100 * var(--to-rem));
}
.p-member-modal__career-text,
.p-member-modal__pr-text {
  font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
  line-height: 1.7;
}
.p-member-modal__career-text a,
.p-member-modal__pr-text a {
  color: var(--color-logo-orange);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-member-modal__career-text a:hover,
  .p-member-modal__pr-text a:hover {
    opacity: 0.75;
  }
}
button {
  background: none;
}
:where(dialog) {
  width: unset;
  max-width: unset;
  height: unset;
  max-height: unset;
  padding: unset;
  color: unset;
  background-color: unset;
  border: unset;
  overflow: unset;
  z-index: var(--z-index-modal);
}
body:has(dialog[open]) {
  overflow: hidden;
}
.wrapper:has(dialog[open]) {
  overflow-y: auto;
  scrollbar-gutter: stable;
}
dialog::backdrop {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  background-color: rgba(0, 0, 0, 0);
  opacity: 0;
  transition: background-color var(--duration) ease-in-out, opacity var(--duration) ease-in-out;
}
dialog.js-show.modal__content {
  opacity: 1;
}
dialog.js-show::backdrop {
  opacity: 1;
  background-color: rgba(0, 0, 0, 0.7);
}
.modal__content {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
  width: min(600 * var(--to-rem), 95%);
  max-height: min(80vh, 80dvh);
  background: var(--color-white);
}
@media screen and (min-width: 900px) {
  .modal__content {
    width: min(950 * var(--to-rem), 95%);
    position: relative;
    max-height: min(85vh, 85dvh);
  }
}
@media screen and (min-width: 900px) and (min-width: 900px) {
  .modal__content::before {
    content: "";
    background-image: url("data:image/svg+xml,%3csvg%20width='366'%20height='366'%20viewBox='0%200%20366%20366'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M321.485%2079.4593C310.417%2064.6324%20297.027%2051.5784%20281.788%2040.9239C256.422%2023.1724%20226.021%2012.0091%20192.915%2010.0779C97.658%204.52105%2015.6362%2077.4902%2010.0787%20172.759C5.65249%20248.634%2051.0538%20316.118%20117.864%20343.246L119.29%20318.806C65.3212%20293.502%2029.3244%20237.137%2033.0019%20174.097C37.8214%2091.48%20108.956%2028.1816%20191.572%2033.0011C203.089%2033.6729%20214.225%2035.6438%20224.856%2038.7361C241.698%2043.6471%20257.264%2051.4196%20271.035%2061.4658C265.905%2060.6263%20260.731%2060.0368%20255.499%2059.7316C173.175%2054.9292%20102.29%20117.984%2097.4871%20200.319L94.0008%20260.083C93.5389%20268.001%2099.595%20274.814%20107.519%20275.276C115.443%20275.738%20122.25%20269.67%20122.712%20261.758L126.198%20201.994C130.077%20135.501%20187.325%2084.5637%20253.818%2088.4426C274.986%2089.6774%20295.202%2096.3589%20312.764%20107.848C315.118%20109.383%20317.437%20111.004%20319.697%20112.715C325.99%20117.492%20334.939%20116.282%20339.759%20110.057C334.719%2099.222%20328.581%2088.981%20321.478%2079.4706L321.485%2079.4593Z'%20fill='white'/%3e%3cpath%20d='M321.485%2079.4593C310.417%2064.6324%20297.027%2051.5784%20281.788%2040.9239C256.422%2023.1724%20226.021%2012.0091%20192.915%2010.0779C97.658%204.52105%2015.6362%2077.4902%2010.0787%20172.759C5.65249%20248.634%2051.0538%20316.118%20117.864%20343.246L119.29%20318.806C65.3212%20293.502%2029.3244%20237.137%2033.0019%20174.097C37.8214%2091.48%20108.956%2028.1816%20191.572%2033.0011C203.089%2033.6729%20214.225%2035.6438%20224.856%2038.7361C241.698%2043.6471%20257.264%2051.4196%20271.035%2061.4658C265.905%2060.6263%20260.731%2060.0368%20255.499%2059.7316C173.175%2054.9292%20102.29%20117.984%2097.4871%20200.319L94.0008%20260.083C93.5389%20268.001%2099.595%20274.814%20107.519%20275.276C115.443%20275.738%20122.25%20269.67%20122.712%20261.758L126.198%20201.994C130.077%20135.501%20187.325%2084.5637%20253.818%2088.4426C274.986%2089.6774%20295.202%2096.3589%20312.764%20107.848C315.118%20109.383%20317.437%20111.004%20319.697%20112.715C325.99%20117.492%20334.939%20116.282%20339.759%20110.057C334.719%2099.222%20328.581%2088.981%20321.478%2079.4706L321.485%2079.4593Z'%20fill='%23EA5514'%20fill-opacity='0.1'/%3e%3cpath%20d='M348.218%20131.92C341.786%20136.078%20334.129%20138.192%20326.246%20137.732C326.152%20137.726%20326.059%20137.721%20325.959%20137.715C331.319%20154.646%20333.759%20172.816%20332.664%20191.59C327.995%20271.638%20261.076%20333.538%20181.772%20332.928L188.786%20212.705C190.705%20179.803%20219.029%20154.59%20251.936%20156.51C263.828%20157.204%20275.096%20161.355%20284.537%20168.518C290.869%20173.326%20299.89%20172.091%20304.687%20165.759C309.484%20159.432%20308.248%20150.411%20301.916%20145.614C287.926%20134.985%20271.215%20128.831%20253.611%20127.804C204.879%20124.962%20162.918%20162.292%20160.074%20211.036L151.787%20353.1C158.638%20354.339%20165.629%20355.193%20172.751%20355.609C175.32%20355.759%20177.882%20355.838%20180.439%20355.881C272.385%20357.205%20350.18%20285.622%20355.587%20192.933C356.825%20171.707%20354.161%20151.14%20348.223%20131.932L348.218%20131.92Z'%20fill='white'/%3e%3cpath%20d='M348.218%20131.92C341.786%20136.078%20334.129%20138.192%20326.246%20137.732C326.152%20137.726%20326.059%20137.721%20325.959%20137.715C331.319%20154.646%20333.759%20172.816%20332.664%20191.59C327.995%20271.638%20261.076%20333.538%20181.772%20332.928L188.786%20212.705C190.705%20179.803%20219.029%20154.59%20251.936%20156.51C263.828%20157.204%20275.096%20161.355%20284.537%20168.518C290.869%20173.326%20299.89%20172.091%20304.687%20165.759C309.484%20159.432%20308.248%20150.411%20301.916%20145.614C287.926%20134.985%20271.215%20128.831%20253.611%20127.804C204.879%20124.962%20162.918%20162.292%20160.074%20211.036L151.787%20353.1C158.638%20354.339%20165.629%20355.193%20172.751%20355.609C175.32%20355.759%20177.882%20355.838%20180.439%20355.881C272.385%20357.205%20350.18%20285.622%20355.587%20192.933C356.825%20171.707%20354.161%20151.14%20348.223%20131.932L348.218%20131.92Z'%20fill='%23EA5514'%20fill-opacity='0.1'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: top right;
    background-size: contain;
    position: absolute;
    top: 0;
    right: calc(20 * var(--to-rem));
    width: calc(347 * var(--to-rem));
    height: auto;
    aspect-ratio: 1;
    transform: rotate(3.4deg);
    z-index: -1;
  }
}
/* open中は常にビューポート中央に固定表示する */
dialog[open].modal__content {
  position: fixed;
  top: 50%;
  left: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
  width: min(600 * var(--to-rem), 95vw);
  height: min(80vh, 80dvh);
}
@media screen and (min-width: 900px) {
  dialog[open].modal__content {
    width: min(950 * var(--to-rem), 95vw);
    height: min(90vh, 90dvh);
  }
}
@media screen and (min-width: 1440px) {
  dialog[open].modal__content {
    max-height: calc(100dvh - 3rem);
    max-height: calc(100vh - 3rem);
  }
}
.modal__inner {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  position: relative;
  padding: clamp(1.5rem, 1.014rem + 2.08vw, 3rem);
  scrollbar-width: none;
  -ms-overflow-style: none;
}
@media screen and (min-width: 900px) {
  .modal__inner {
    padding: clamp(2rem, 1.5vw + 1rem, 4rem);
  }
}
.modal__inner::-webkit-scrollbar {
  display: none;
}
.modal__body {
  height: fit-content;
}
/* =======================================
   セクション全体の基本設定
   ======================================= */
.p-member-section {
  padding-block: 0;
}
.p-member-section__head {
  margin-block-end: calc(33 * var(--to-rem));
}
/* =======================================
   グリッドレイアウト（レスポンシブ）
   ======================================= */
.p-member-section__body {
  display: grid;
  /* デフォルト（SP）：1列 */
  grid-template-columns: 1fr;
  row-gap: clamp(1.5rem, 1.082rem + 1.78vw, 2.688rem);
  column-gap: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
/* sm（640px〜）：2列 */
@media screen and (min-width: 768px) {
  .p-member-section__body {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* lg（1024px〜）：3列 */
@media screen and (min-width: 1024px) {
  .p-member-section__body {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* =======================================
   Managerセクション用のスタイル（黒背景）
   ======================================= */
.p-member-section--manager {
  background-color: var(--color-black);
}
/* =======================================
   member-cardの内容変更
   ======================================= */
@media screen and (min-width: 768px) {
  .p-member-section .p-member__box {
    flex-direction: column;
    padding-inline: 0;
    align-items: center;
  }
}
@media screen and (min-width: 768px) {
  .p-member-section .p-member__box-imgWrap {
    flex: 0 0 calc(300 * var(--to-rem));
    width: min(300 * var(--to-rem), 100%);
    margin-inline: auto;
    height: auto;
    aspect-ratio: 1;
  }
}
.p-member-section .p-member__box-contents {
  flex-direction: column-reverse;
  align-items: center;
}
.p-member-section .p-member__box-name {
  align-items: center;
}
@media screen and (min-width: 900px) {
  .p-member-section .p-member__box-name {
    flex-direction: row;
    align-items: baseline;
  }
}
.p-member {
  padding-block-start: clamp(3rem, 2.032rem + 4.13vw, 5.75rem);
}
.p-member__head-text {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  margin-block-start: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem);
}
.p-member__body {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: clamp(0.75rem, -3rem + 6.67vw, 3rem);
  margin-block-start: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem);
}
.p-member__body .p-member__box {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  justify-items: center;
  width: 100%;
  margin-block-end: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
  row-gap: calc(8 * var(--to-rem));
}
.p-member__body .p-member__box-imgWrap {
  align-self: start;
  margin-block-end: calc(13 * var(--to-rem));
}
.p-member__body .p-member__box-contents {
  display: contents;
}
.p-member__body .p-member__box-meta {
  order: 1;
  align-self: start;
  align-items: center;
}
.p-member__body .p-member__box-name {
  order: 2;
  align-self: start;
  white-space: normal;
  flex-direction: column;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(2 * var(--to-rem)) calc(6 * var(--to-rem));
}
.p-member__body .p-member__box-jp {
  font-size: calc(15 * var(--to-rem));
}
.p-member__body .p-member__box-en {
  font-size: calc(11 * var(--to-rem));
}
.p-member__body .p-member__box-text {
  display: none;
}
@media screen and (min-width: 768px) and (max-width: 899px) {
  .p-member__body .p-member__box {
    padding-inline: 0;
  }
  .p-member__body .p-member__box-imgWrap {
    width: min(300 * var(--to-rem), 100%);
    margin-inline: auto;
    translate: 0;
  }
}
@media screen and (min-width: 900px) {
  .p-member__body .p-member__box {
    display: flex;
    grid-row: auto;
    flex-direction: row;
    align-items: center;
    justify-items: normal;
    padding-inline: 0;
    row-gap: 0;
  }
  .p-member__body .p-member__box-imgWrap {
    flex: 0 0 clamp(9.375rem, 4.167rem + 9.26vw, 12.5rem);
    width: clamp(9.375rem, 4.167rem + 9.26vw, 12.5rem);
    margin-inline: 0;
    margin-block-end: 0;
    translate: 0 calc(4 * var(--to-rem));
  }
  .p-member__body .p-member__box-contents {
    display: flex;
    flex-direction: column-reverse;
    width: auto;
    min-width: 0;
    align-items: flex-start;
    justify-content: flex-start;
  }
  .p-member__body .p-member__box-meta {
    order: 0;
    align-self: auto;
    align-items: center;
  }
  .p-member__body .p-member__box-name {
    order: 0;
    align-self: auto;
    white-space: nowrap;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: baseline;
    gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
  }
  .p-member__body .p-member__box-jp {
    font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  }
  .p-member__body .p-member__box-en {
    font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  }
}
.p-member__box {
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(21 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-member__box {
    flex-direction: row;
  }
}
@media (any-hover: hover) {
  .p-member__box:hover .p-member__box-img {
    scale: 1.1;
  }
}
.p-member__box-imgWrap {
  width: min(400 * var(--to-rem), 100%);
  margin-inline: auto;
  height: auto;
  aspect-ratio: 1;
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(32 * var(--to-rem)) calc(4 * var(--to-rem));
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .p-member__box-imgWrap {
    flex: 0 0 calc(200 * var(--to-rem));
  }
}
@media screen and (min-width: 900px) {
  .p-member__box-imgWrap {
    flex: 0 0 clamp(9.375rem, 4.167rem + 9.26vw, 12.5rem);
    translate: 0 calc(4 * var(--to-rem));
  }
}
.p-member__box-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale var(--duration);
}
.p-member__box-noImg {
  width: 100%;
  height: 100%;
  background-color: #d9d9d9;
}
.p-member__box-contents {
  display: flex;
  flex-direction: column-reverse;
  gap: calc(8 * var(--to-rem));
}
.p-member__box-name {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
  white-space: nowrap;
}
.p-member__box-jp {
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.p-member__box-en {
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  font-weight: var(--fw-light);
  line-height: 1.5;
}
.p-member__box-meta {
  display: flex;
  align-items: center;
}
.p-member__box-role {
  color: var(--color-white);
  font-size: clamp(0.625rem, 0.537rem + 0.38vw, 0.875rem);
  line-height: 1.7;
  padding: calc(4 * var(--to-rem)) calc(16 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background-color: var(--color-logo-orange);
}
.p-member__box-text {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  margin-block-start: calc(8 * var(--to-rem));
}
.p-member__link-button {
  margin-block-start: clamp(2rem, 1.384rem + 2.63vw, 3.75rem);
}
.p-member__wrap {
  display: flex;
  flex-direction: column;
  gap: clamp(4rem, 2.592rem + 6.01vw, 8rem);
  margin-block: clamp(3rem, 1.944rem + 4.51vw, 6rem);
  margin-block-start: 78px;
}
.p-mv {
  position: relative;
  z-index: 1;
  width: 100%;
  height: max(100svh, 450 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-mv {
    height: max(500 * var(--to-rem), 100%);
  }
}
.p-mv__inner {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
}
.p-mv__title-wrap {
  position: absolute;
  inset: 0;
  z-index: 2;
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--to-rem));
  justify-content: center;
  align-items: center;
  width: 100%;
  margin: auto;
  padding-inline: var(--padding-inner);
  color: var(--color-white);
  text-align: center;
}
.p-mv__main-title {
  font-size: calc(32 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-shadow: 0 2px 4px oklch(from var(--color-black) l c h/30%);
}
@media screen and (min-width: 900px) {
  .p-mv__main-title {
    font-size: clamp(32 * var(--to-rem), 5cqi, 64 * var(--to-rem));
  }
}
.p-mv__sub-title {
  font-size: calc(18 * var(--to-rem));
  line-height: 1.6;
  text-shadow: 0 1px 2px oklch(from var(--color-black) l c h/30%);
}
@media screen and (min-width: 900px) {
  .p-mv__sub-title {
    font-size: clamp(18 * var(--to-rem), 3cqi, 24 * var(--to-rem));
  }
}
.p-mv__splide {
  width: 100%;
  height: 100%;
}
.p-mv__splide .splide__track {
  height: 100%;
}
.p-mv__splide .splide__list {
  height: 100%;
}
.p-mv__splide .splide__slide {
  height: 100%;
}
.p-mv__splide .splide__slide-image {
  width: 100%;
  height: 100%;
}
.p-mv__splide .splide__slide-image picture,
.p-mv__splide .splide__slide-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-news-list {
  padding-block: clamp(3rem, 1.944rem + 4.51vw, 6rem);
}
.p-news-list__inner {
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
}
.p-news-list__inner > .p-news-list__title {
  margin-block-end: 0;
}
.p-news-list__categories {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(0.75rem, 0.31rem + 1.88vw, 2rem);
  justify-content: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-news-list__category-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(4 * var(--to-rem)) clamp(0.813rem, 0.504rem + 1.31vw, 1.688rem);
  background-color: var(--color-bg-light);
  color: var(--color-font-sub);
  font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
  border-radius: calc(100 * var(--to-rem));
  text-decoration: none;
  line-height: 2;
  transition: all 0.3s ease;
}
@media screen and (min-width: 900px) {
  .p-news-list__category-link {
    font-size: calc(14 * var(--to-rem));
    padding: calc(10 * var(--to-rem)) calc(32 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-news-list__category-link:hover {
    background-color: #e5e5e5;
    color: #333;
  }
}
.p-news-list__category-link.is-active {
  background-color: var(--color-logo-orange, #e85528);
  color: var(--color-white, #fff);
  pointer-events: none;
}
.p-news-list__container {
  display: flex;
  flex-direction: column;
}
.p-news-list__item {
  display: block;
  color: inherit;
  text-decoration: none;
  border-bottom: calc(1 * var(--to-rem)) solid var(--color-gray, #e5e5e5);
  transition: opacity 0.3s ease;
}
@media (any-hover: hover) {
  .p-news-list__item:hover {
    opacity: 0.7;
  }
  .p-news-list__item:hover .p-news-list__arrow {
    transform: translateX(calc(4 * var(--to-rem)));
  }
}
.p-news-list__card {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--to-rem));
  padding-block: clamp(0.813rem, 0.504rem + 1.31vw, 1.688rem);
}
@media screen and (min-width: 900px) {
  .p-news-list__card {
    flex-direction: row;
    align-items: center;
    gap: calc(40 * var(--to-rem));
  }
}
.p-news-list__meta {
  display: flex;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  align-items: center;
}
@media screen and (min-width: 900px) {
  .p-news-list__meta {
    width: calc(330 * var(--to-rem));
  }
}
/* 日付の2段表示 */
.p-news-list__date {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.p-news-list__date-year {
  font-size: calc(10 * var(--to-rem));
  color: var(--color-border-gray);
  line-height: 1.2;
}
.p-news-list__date-md {
  font-size: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  color: var(--color-text);
  line-height: 1.2;
}
/* 記事ごとのカテゴリータグ（「プレスリリース」程度＋αを1行目に収め、超過分は改行・中央揃え） */
.p-news-list__category {
  display: inline-block;
  box-sizing: border-box;
  min-width: 0;
  max-width: min(11.5em, 100%);
  padding: calc(4 * var(--to-rem)) clamp(0.813rem, 0.504rem + 1.31vw, 1.688rem);
  background-color: var(--color-bg-light);
  color: var(--color-font-sub);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  border-radius: calc(30 * var(--to-rem));
  white-space: normal;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: break-word;
  line-height: 1.6;
}
.p-news-list__content {
  display: flex;
  gap: calc(16 * var(--to-rem));
  justify-content: space-between;
  align-items: center;
  flex-grow: 1;
}
.p-news-list__main {
  display: flex;
  flex: 1;
}
.p-news-list__card .p-news-list__title {
  color: var(--color-text);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  font-weight: var(--fw-regular);
  line-height: 2;
}
@media screen and (min-width: 900px) {
  .p-news-list__card .p-news-list__title {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-news-list__arrow {
  flex-shrink: 0;
  width: calc(30 * var(--to-rem));
  height: auto;
  aspect-ratio: 1;
  transition: transform 0.3s ease;
}
.p-news-list__arrow img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-news-list__empty {
  padding: calc(60 * var(--to-rem));
  border-radius: 10px;
  box-shadow: 0 1px 3px oklch(from var(--color-black) l c h/10%), 0 1px 2px oklch(from var(--color-black) l c h/10%);
  background-color: var(--color-white);
  color: var(--color-border-gray);
  font-size: calc(16 * var(--to-rem));
  text-align: center;
}
.p-news-list__empty p {
  margin: 0;
}
.p-news-list__pagination {
  --_pagination-bg: var(--color-white);
  --_pagination-text: var(--color-text);
  --_pagination-text-hover: var(--color-text);
  --_pagination-bg-hover: oklch(from var(--color-gray) l c h / 50%);
  --_pagination-active-bg: var(--color-logo-orange, #e85528);
  --_pagination-active-text: var(--color-white);
  --_pagination-border: var(--color-logo-orange, #e85528);
  --_pagination-border-hover: var(--color-text);
}
.p-privacy {
  padding-block: clamp(4rem, 8vw, 8rem);
  background-color: var(--color-white);
}
.p-privacy__inner {
  max-width: 800px;
  margin-inline: auto;
}
/* --- 上部（タイトル・導入） --- */
.p-privacy__header {
  margin-block-end: clamp(2rem, 1.296rem + 3vw, 4rem);
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
.p-privacy__main-title {
  font-size: clamp(1.5rem, 2vw, 1.75rem);
  font-weight: var(--fw-bold);
  text-align: center;
}
.p-privacy__intro {
  font-size: clamp(0.875rem, 1vw, 1rem);
  line-height: 1.8;
}
.p-privacy__page-link {
  font-size: clamp(0.875rem, 1vw, 1rem);
  line-height: 1.8;
}
.p-privacy__page-link a {
  color: var(--color-logo-orange);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
@media (any-hover: hover) {
  .p-privacy__page-link a:hover {
    opacity: 0.75;
  }
}
/* --- 中部（固定ページのブロック本文。旧 privacy-items ループの見た目に近づける） --- */
.p-privacy__item {
  margin-block-end: 3rem;
}
.p-privacy__item:last-child {
  margin-block-end: 0;
}
.p-privacy__item-title {
  font-size: clamp(1.125rem, 1.5vw, 1.25rem);
  font-weight: var(--fw-bold);
  border-bottom: 1px solid #dfdfdf;
  padding-bottom: 0.5rem;
  margin-block-end: 1.5rem;
}
/* ブロックエディタの見出し（条タイトル相当） */
.p-privacy__body .p-privacy__item-content > :where(h2, h3, h4),
.p-privacy__body .p-privacy__item-content :where(h2, h3, h4).wp-block-heading {
  font-size: clamp(1.125rem, 1.5vw, 1.25rem);
  font-weight: var(--fw-bold);
  border-bottom: 1px solid #dfdfdf;
  padding-bottom: 0.5rem;
  margin-block-end: 1.5rem;
}
.p-privacy__item-content {
  line-height: 1.8;
  font-size: clamp(0.875rem, 1vw, 1rem);
}
.p-privacy__item-content p {
  margin-block-end: 1.5rem;
}
/* リスト（第1号、第2号などのリスト）用 */
.p-privacy__item-content ul,
.p-privacy__item-content ol {
  margin-block-end: 1.5rem;
  padding-left: 1.5rem;
}
.p-privacy__item-content ul li,
.p-privacy__item-content ol li {
  margin-block-end: 0.5rem;
}
.p-privacy__item-content ul {
  list-style-type: disc;
}
.p-privacy__item-content ol {
  list-style-type: decimal;
}
/* --- 下部（会社情報） --- */
.p-privacy__footer {
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
  background-color: var(--color-bg-light);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: 4px;
}
.p-privacy__footer-title {
  font-size: 1.125rem;
  font-weight: var(--fw-bold);
  margin-block-end: 1rem;
}
.p-privacy__contact-info {
  font-size: 0.875rem;
  line-height: 1.8;
}
.p-privacy__contact-info a {
  color: var(--color-logo-orange);
  text-decoration: underline;
}
.p-privacy__contact-info a:hover {
  text-decoration: none;
}
.p-sample {
  padding-block: calc(60 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-sample {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-sample__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(16 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-sample__inner {
    gap: calc(24 * var(--to-rem));
  }
}
.p-sample__title {
  margin-block-start: calc(24 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-sample__title {
    margin-block-start: calc(32 * var(--to-rem));
  }
}
.p-sample__button-wrap {
  width: min(15rem, 100%);
}
.p-sample__button-wrap > * {
  width: 100%;
}
.p-sample__divider {
  width: 100%;
  height: 1px;
  max-width: calc(600 * var(--to-rem));
  margin: 0;
  border: 0;
  background-color: var(--color-gray);
}
.p-sample__bg {
  width: 100%;
  height: calc(300 * var(--to-rem));
  max-width: calc(600 * var(--to-rem));
  border-radius: 8px;
  background-image: url("../images/bg_sample.webp");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
@media screen and (min-width: 900px) {
  .p-sample__bg {
    height: calc(400 * var(--to-rem));
  }
}
.p-sample__image {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: calc(512 * var(--to-rem));
  border-radius: 8px;
}
.p-sample__image::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(100 * var(--to-rem));
  background: linear-gradient(to top, var(--color-white), transparent);
  pointer-events: none;
}
.p-sample__image img {
  display: block;
  width: 100%;
  height: auto;
}
.p-sample p {
  margin: 0;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-sample p {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-service-challenge {
  background-color: var(--color-bg-light);
  padding-block-end: clamp(2rem, 1.296rem + 3vw, 4rem);
  position: relative;
}
.p-service-challenge::before {
  content: "";
  background: url("data:image/svg+xml,%3csvg%20width='200'%20height='80'%20viewBox='0%200%20200%2080'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%200H200L99.918%2080L0%200Z'%20fill='%23EFF0F3'/%3e%3c/svg%3e") no-repeat center center/contain;
  width: clamp(6.25rem, 4.049rem + 9.39vw, 12.5rem);
  height: auto;
  aspect-ratio: 5/2;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(100% - 1 * var(--to-rem));
}
.p-service-challenges__contents {
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
}
.p-service-challenges__header-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
}
.p-service-challenges__header-en {
  color: var(--color-logo-orange);
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  font-style: normal;
  font-weight: var(--fw-light);
  line-height: 1;
}
.p-service-challenges__header-ja {
  font-size: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  text-align: center;
}
.p-service-challenges__header-ja br {
  display: block;
}
@media screen and (min-width: 768px) {
  .p-service-challenges__header-ja br {
    display: none;
  }
}
.p-service-challenges__list {
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--to-rem));
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
}
@media screen and (min-width: 1024px) {
  .p-service-challenges__list {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.p-service-challenges__item {
  text-align: center;
  color: var(--color-white);
  font-size: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  letter-spacing: calc(1.2 * var(--to-rem));
  border-radius: calc(4 * var(--to-rem));
  background: var(--color-font-sub);
  backdrop-filter: blur(calc(2 * var(--to-rem)));
  padding: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
}
@media screen and (min-width: 1024px) {
  .p-service-challenges__item {
    width: min(598 * var(--to-rem), 100%);
  }
}
.p-service-comparison {
  padding-block-start: 0;
}
.p-service-comparison__title {
  color: var(--color-logo-orange);
  text-align: center;
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  padding-block: clamp(0.875rem, 0.699rem + 0.75vw, 1.375rem);
  position: relative;
  border-top: calc(2 * var(--to-rem)) solid var(--color-bg-light);
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-bg-light);
}
.p-service-comparison__table-wrap {
  overflow-x: auto;
  isolation: isolate;
  margin-inline: auto;
  max-width: calc(900 * var(--to-rem));
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
}
@media screen and (min-width: 900px) {
  .p-service-comparison__table-wrap {
    max-width: 100%;
  }
}
.p-service-comparison__table {
  width: 100%;
  min-width: calc(600 * var(--to-rem));
  border-collapse: separate;
  border-spacing: 0;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-service-comparison__table {
    table-layout: fixed;
  }
}
.p-service-comparison__th {
  padding: calc(12 * var(--to-rem));
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  color: var(--color-white);
  vertical-align: middle;
  border: 0;
  border-right: calc(2 * var(--to-rem)) solid var(--color-white);
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-white);
}
@media screen and (min-width: 1024px) {
  .p-service-comparison__th {
    font-size: clamp(1rem, -0.667rem + 2.96vw, 2rem);
    padding: calc(16 * var(--to-rem)) calc(16 * var(--to-rem)) calc(20 * var(--to-rem));
    line-height: 1.5;
  }
}
.p-service-comparison__table thead .p-service-comparison__th {
  border-top: calc(2 * var(--to-rem)) solid var(--color-white);
}
.p-service-comparison__th--empty {
  background-color: var(--color-white);
  position: sticky;
  left: 0;
  z-index: 2;
  box-shadow: 4px 0 8px rgba(0, 0, 0, 0.05);
  border-left: calc(2 * var(--to-rem)) solid var(--color-white);
  /* 768px 未満は 24% / 38% / 38%、768px 以上で均等 */
  width: 24%;
}
@media screen and (min-width: 768px) {
  .p-service-comparison__th--empty {
    width: 33.333%;
  }
}
.p-service-comparison__th--frontstage {
  background-color: var(--color-logo-orange);
  width: 38%;
}
@media screen and (min-width: 768px) {
  .p-service-comparison__th--frontstage {
    width: 33.333%;
  }
}
.p-service-comparison__th--general {
  background-color: var(--color-used-gray);
  width: 38%;
}
@media screen and (min-width: 768px) {
  .p-service-comparison__th--general {
    width: 33.333%;
  }
}
.p-service-comparison__logo-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(10 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-comparison__logo-wrap {
    translate: calc(-2 * var(--to-rem)) calc(6 * var(--to-rem));
  }
}
.p-service-comparison__logo--icon {
  width: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
  height: auto;
  aspect-ratio: 1;
}
.p-service-comparison__logo--title {
  width: clamp(7.438rem, 6.315rem + 4.79vw, 10.625rem);
  height: auto;
  aspect-ratio: 170/18;
}
.p-service-comparison__row-header {
  background-color: var(--color-bg-light);
  padding: calc(8 * var(--to-rem)) calc(6 * var(--to-rem));
  font-size: calc(12 * var(--to-rem));
  font-weight: var(--fw-bold);
  vertical-align: middle;
  line-height: 1.7;
  letter-spacing: calc(0.8 * var(--to-rem));
  border: 0;
  border-left: calc(2 * var(--to-rem)) solid var(--color-white);
  border-right: calc(2 * var(--to-rem)) solid var(--color-white);
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-white);
  width: 24%;
  position: sticky;
  left: 0;
  z-index: 1;
  box-shadow: 4px 0 8px rgba(0, 0, 0, 0.05);
}
@media screen and (min-width: 768px) {
  .p-service-comparison__row-header {
    width: 33.333%;
    padding: clamp(0.875rem, -0.167rem + 1.85vw, 1.5rem);
  }
}
@media screen and (min-width: 1024px) {
  .p-service-comparison__row-header {
    font-size: clamp(0.875rem, -0.167rem + 1.85vw, 1.5rem);
  }
}
.p-service-comparison__td {
  padding: calc(12 * var(--to-rem));
  font-size: calc(12 * var(--to-rem));
  line-height: 1.7;
  letter-spacing: calc(1.2 * var(--to-rem));
  border: 0;
  border-right: calc(2 * var(--to-rem)) solid var(--color-white);
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-white);
  font-weight: var(--fw-bold);
  vertical-align: middle;
}
@media screen and (min-width: 1024px) {
  .p-service-comparison__td {
    padding: calc(25 * var(--to-rem));
    font-size: clamp(0.875rem, -0.167rem + 1.85vw, 1.5rem);
  }
}
.p-service-comparison__td--frontstage {
  background-color: #ffede1;
  color: var(--color-logo-orange);
}
.p-service-comparison__td--general {
  background-color: var(--color-used-lightgray);
  color: var(--color-font-main);
}
@media screen and (min-width: 900px) {
  .p-service-comparison__td--general {
    font-size: clamp(0.75rem, -0.083rem + 1.48vw, 1.25rem);
  }
}
.p-service-details__boxes {
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
  margin-block-start: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
}
.p-service-details__box--01 .p-service-details__item:nth-of-type(1) {
  padding-block: calc(30 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--01 .p-service-details__item:nth-of-type(1) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--01 .p-service-details__item:nth-of-type(2) {
  padding-block: calc(28 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--01 .p-service-details__item:nth-of-type(2) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--01 .p-service-details__item:nth-of-type(3) {
  padding-block: calc(28 * var(--to-rem)) calc(29 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--01 .p-service-details__item:nth-of-type(3) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--01 .p-service-details__item:nth-of-type(3) .p-service-details__meta {
  margin-block-start: calc(17 * var(--to-rem));
}
.p-service-details__box--02 .p-service-details__title-main br {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--02 .p-service-details__title-main br {
    display: block;
  }
}
.p-service-details__box--02 .p-service-details__item:nth-of-type(1) {
  padding-block: calc(32 * var(--to-rem)) calc(28 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--02 .p-service-details__item:nth-of-type(1) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--02 .p-service-details__item:nth-of-type(2) {
  padding-block: calc(31 * var(--to-rem)) calc(29 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--02 .p-service-details__item:nth-of-type(2) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--02 .p-service-details__item:nth-of-type(3) {
  padding-block: calc(28 * var(--to-rem)) calc(29 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--02 .p-service-details__item:nth-of-type(3) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--02 .p-service-details__item:nth-of-type(4) {
  padding-block: calc(30 * var(--to-rem)) calc(29 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--02 .p-service-details__item:nth-of-type(4) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--02 .p-service-details__desc, .p-service-details__box--04 .p-service-details__desc {
  margin-block-start: clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
}
.p-service-details__box--03 .p-service-details__detail {
  margin-block-start: clamp(4rem, 0.771rem + 5.74vw, 5.938rem);
  width: 100%;
}
.p-service-details__box--03 .p-service-details__wrapper {
  align-items: flex-start;
  gap: 0;
}
@media screen and (min-width: 900px) {
  .p-service-details__box--03 .p-service-details__wrapper {
    gap: clamp(2.5rem, 4.44vw, 4rem);
  }
}
.p-service-details__box--03 .p-service-details__sub-group {
  padding-block: calc(14 * var(--to-rem));
}
.p-service-details__box--03 .p-service-details__term {
  padding-inline-start: calc(2 * var(--to-rem));
}
.p-service-details__box--04 .p-service-details__item:nth-of-type(1) {
  padding-block: calc(48 * var(--to-rem)) calc(44 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--04 .p-service-details__item:nth-of-type(1) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--04 .p-service-details__item:nth-of-type(2) {
  padding-block: calc(50 * var(--to-rem)) calc(44 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--04 .p-service-details__item:nth-of-type(2) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--04 .p-service-details__item:nth-of-type(3) {
  padding-block: calc(49 * var(--to-rem)) calc(45 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--04 .p-service-details__item:nth-of-type(3) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--04 .p-service-details__item:nth-of-type(4) {
  padding-block: calc(50 * var(--to-rem)) calc(45 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--04 .p-service-details__item:nth-of-type(4) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
.p-service-details__box--04 .p-service-details__item:nth-of-type(5) {
  padding-block: calc(49 * var(--to-rem)) calc(45 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__box--04 .p-service-details__item:nth-of-type(5) .p-service-details__term {
    padding-inline-start: calc(2 * var(--to-rem));
  }
}
@media screen and (min-width: 900px) {
  .p-service-details__box--04 .p-service-details__list {
    margin-block-start: clamp(2.25rem, -0.458rem + 4.81vw, 3.875rem);
  }
}
.p-service-details__wrapper {
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--to-rem));
  align-items: center;
}
@media screen and (min-width: 900px) {
  .p-service-details__wrapper {
    flex-direction: row;
    align-items: flex-start;
    gap: clamp(2.5rem, 4.44vw, 4rem);
  }
}
@media screen and (min-width: 900px) {
  .p-service-details__contents {
    flex: 0 0 clamp(21.875rem, 11.458rem + 18.52vw, 28.125rem);
    margin-block-start: calc(32 * var(--to-rem));
    position: sticky;
    top: calc(var(--header-height) + 40 * var(--to-rem));
    align-self: flex-start;
    z-index: 1;
  }
}
.p-service-details__title-sub {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--to-rem));
}
.p-service-details__title-text {
  color: var(--color-logo-orange);
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  font-weight: var(--fw-light);
  line-height: 1;
}
.p-service-details__title-main {
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.p-service-details__text {
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  margin-block-start: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
.p-service-details__imgWrap {
  width: 90%;
  height: auto;
  aspect-ratio: 1;
  margin-inline: auto;
  margin-block-start: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
@media screen and (min-width: 900px) {
  .p-service-details__imgWrap {
    width: 100%;
    margin-inline: 0;
    border-radius: 0 0 calc(32 * var(--to-rem)) 0;
    overflow: hidden;
  }
}
.p-service-details__list {
  border-top: calc(2 * var(--to-rem)) solid var(--color-bg-light);
}
@media screen and (min-width: 900px) {
  .p-service-details__list {
    margin-block-start: clamp(4rem, 1.083rem + 5.19vw, 5.75rem);
  }
}
.p-service-details__item {
  padding-block: calc(28 * var(--to-rem));
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-bg-light);
}
.p-service-details__term {
  color: var(--color-logo-orange);
  font-size: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  display: inline-block;
  position: relative;
}
.p-service-details__term::before {
  content: "";
  width: 100%;
  height: calc(6 * var(--to-rem));
  background-color: var(--color-bg-light);
  position: absolute;
  bottom: calc(1 * var(--to-rem));
  display: inline-block;
  z-index: -1;
}
.p-service-details__meta {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--to-rem));
  margin-block: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
  flex-wrap: wrap;
}
.p-service-details__icon {
  display: inline-block;
  vertical-align: baseline;
  color: var(--color-white);
  line-height: 1.7;
  padding: calc(4 * var(--to-rem)) calc(16 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  overflow: hidden;
  background-color: var(--color-font-sub);
  font-size: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem);
}
.p-service-details__desc {
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-service-details__detail {
    margin-block-start: clamp(3rem, 1.333rem + 2.96vw, 4rem);
  }
}
.p-service-details__sub-group {
  padding-block: calc(16 * var(--to-rem));
  border-top: calc(2 * var(--to-rem)) solid var(--color-bg-light);
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-bg-light);
  margin-block-start: clamp(1rem, 0.692rem + 1.31vw, 1.875rem);
}
.p-service-details__sub-list {
  margin-block-start: clamp(1rem, 0.648rem + 1.5vw, 1.5rem);
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
}
.p-service-details__sub-item {
  position: relative;
  padding-inline-start: calc(17 * var(--to-rem));
}
.p-service-details__sub-item::before {
  content: "";
  position: absolute;
  top: 0.8em;
  transform: translateY(-50%);
  left: 0;
  width: calc(10 * var(--to-rem));
  height: auto;
  aspect-ratio: 1;
  background-color: var(--color-font-sub);
  border-radius: 50%;
}
.p-service-details__sub-item-heading {
  display: block;
  font-weight: var(--fw-bold);
  line-height: 1.6;
  letter-spacing: calc(0.9 * var(--to-rem));
  font-size: calc(16 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__sub-item-heading {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-service-details__sub-item-body {
  font-size: calc(14 * var(--to-rem));
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  margin-block-start: calc(4 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-details__sub-item-body {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-service-intro {
  overflow: hidden;
  padding-block: clamp(2rem, 1.296rem + 3vw, 4rem) 0;
}
.p-service-intro__wrapper {
  display: flex;
  flex-direction: column;
  gap: clamp(2rem, 1.296rem + 3vw, 4rem);
}
@media screen and (min-width: 900px) {
  .p-service-intro__wrapper {
    flex-direction: row;
    align-items: center;
  }
}
.p-service-intro__contents {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
@media screen and (min-width: 900px) {
  .p-service-intro__contents {
    flex: 1 1 auto;
  }
}
.p-service-intro__titles {
  display: flex;
  flex-direction: column;
  gap: clamp(0.25rem, 0.162rem + 0.38vw, 0.5rem);
}
.p-service-intro__title {
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  letter-spacing: calc(1.2 * var(--to-rem));
  padding: clamp(0.25rem, 0.162rem + 0.38vw, 0.5rem) clamp(0.75rem, 0.486rem + 1.13vw, 1.5rem);
  background-color: var(--color-bg-light);
  width: fit-content;
  border-radius: calc(4 * var(--to-rem));
}
.p-service-intro__title .u-highlight {
  font-size: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: calc(1.6 * var(--to-rem));
}
.p-service-intro__text {
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-service-intro__text {
    padding-inline-end: calc(6 * var(--to-rem));
  }
}
.p-service-intro__imgWrap {
  width: min(650 * var(--to-rem), 100%);
  height: auto;
  aspect-ratio: 3/2;
  margin-inline: auto;
}
@media screen and (min-width: 900px) {
  .p-service-intro__imgWrap {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    margin-inline-end: calc(50% - 50vw);
    margin-inline-start: 0;
    border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(32 * var(--to-rem));
    overflow: hidden;
  }
}
.p-service-intro__imgWrap .p-service-intro__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-service-strength {
  padding-block-start: clamp(3rem, 2.406rem + 2.54vw, 4.688rem);
}
.p-service-strength__boxes {
  display: flex;
  flex-direction: column;
  gap: calc(64 * var(--to-rem));
  margin-block-start: clamp(1.5rem, 0.62rem + 3.76vw, 4rem);
}
.p-service-strength__box {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 0.62rem + 3.76vw, 4rem);
}
@media screen and (min-width: 900px) {
  .p-service-strength__box {
    flex-direction: row;
    align-items: center;
  }
  .p-service-strength__box:nth-child(even) {
    flex-direction: row-reverse;
  }
}
.p-service-strength__contents {
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 1.008rem + 1.03vw, 1.938rem);
}
@media screen and (min-width: 900px) {
  .p-service-strength__contents {
    flex: 1 1 60%;
  }
}
@media screen and (min-width: 1240px) {
  .p-service-strength__contents {
    flex: 1 1 auto;
  }
}
.p-service-strength__title {
  color: var(--color-logo-orange);
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.p-service-strength__text {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-service-strength__imgWrap {
  width: min(578 * var(--to-rem), 100%);
  margin-inline: auto;
  height: auto;
  aspect-ratio: 578/361;
}
@media screen and (min-width: 900px) {
  .p-service-strength__imgWrap {
    flex: 0 0 40%;
  }
}
@media screen and (min-width: 1240px) {
  .p-service-strength__imgWrap {
    flex: 0 0 calc(578 * var(--to-rem));
  }
}
.p-service-strength__img {
  object-fit: contain;
}
.p-single {
  padding-block: calc(40 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-single {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-single__inner {
  max-width: calc(var(--inner) + var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-single__header {
  text-align: center;
  padding-block-end: clamp(1rem, 0.648rem + 1.5vw, 2rem);
}
.p-single__title {
  font-size: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.p-single__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  color: var(--color-logo-orange);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  font-weight: var(--fw-bold);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-single__date {
  display: inline-block;
  color: var(--color-logo-orange);
  font-weight: var(--fw-bold);
}
.p-single__content {
  max-width: calc(800 * var(--to-rem));
  margin-inline: auto;
  margin-block-start: calc(48 * var(--to-rem));
  text-align: left;
}
@media screen and (min-width: 900px) {
  .p-single__content {
    max-width: 100%;
  }
}
.p-single__content h2 {
  margin-block-start: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.p-single__content p {
  color: var(--color-text);
  line-height: 1.8;
  margin-block-start: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
}
.p-single__navigation {
  display: flex;
  justify-content: center;
}
/* =========================================================
   サイトマップ（Simple Sitemap）
   参考: https://utill.co.jp/sitemap/ （表形式：左メイン / 右子リンク）
========================================================= */
.p-sitemap {
  padding-block: clamp(2.5rem, 1.88rem + 2.63vw, 4rem) clamp(3rem, 1.856rem + 4.88vw, 6.25rem);
  background-color: var(--color-white);
}
.p-sitemap__inner {
  max-width: calc(min(960px, var(--inner)) + var(--padding-inner) * 2);
}
/* ページ見出し（FV なし／参考サイトの # / 英字ラベルに近い構成） */
.p-sitemap__page-header {
  margin-block-end: clamp(1.5rem, 1.01rem + 2.25vw, 2.5rem);
  text-align: center;
}
.p-sitemap__page-title {
  margin: 0;
  color: var(--color-font-main);
  font-size: clamp(1.125rem, 0.817rem + 1.31vw, 2rem);
  font-weight: var(--fw-light);
  line-height: 1.5;
}
.p-sitemap__page-label {
  margin: clamp(0.5rem, 0.361rem + 0.56vw, 0.75rem) 0 0;
  color: var(--color-font-sub);
  font-family: var(--font-en), sans-serif;
  font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.p-sitemap__body {
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 0.972rem + 1.13vw, 2rem);
  color: var(--color-font-main);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1rem);
  line-height: 1.8;
}
.p-sitemap__admin-notice {
  padding: calc(12 * var(--to-rem)) calc(16 * var(--to-rem));
  border: 1px dashed var(--color-used-gray);
  border-radius: calc(4 * var(--to-rem));
  background-color: var(--color-bg-light);
  color: var(--color-font-sub);
  font-size: calc(14 * var(--to-rem));
}
.p-sitemap br[clear=both] {
  display: none;
}
.p-sitemap .simple-sitemap-container {
  margin: 0;
}
/* 投稿タイプブロックは縦積み（参考サイトは1リスト＝1表） */
.p-sitemap .simple-sitemap-container.tab-disabled {
  display: flex;
  flex-direction: column;
  gap: clamp(1.75rem, 1.296rem + 2.25vw, 2.75rem);
}
.p-sitemap .simple-sitemap-container ul {
  margin: 0;
  padding: 0;
}
/* --- セクション枠（投稿タイプ見出し＋表風リスト） --- */
.p-sitemap .simple-sitemap-wrap {
  box-sizing: border-box;
  padding: 0;
  border-top: calc(1 * var(--to-rem)) solid var(--color-used-gray);
  border-bottom: calc(1 * var(--to-rem)) solid var(--color-used-gray);
  background-color: var(--color-white);
}
/* プラグインの投稿タイプラベル（例: 「固定ページ」）— PHP で非表示に加えフォールバック */
.p-sitemap .simple-sitemap-wrap :is(h2, h3, h4).post-type,
.p-sitemap .simple-sitemap-wrap .post-type {
  display: none !important;
}
/* --- メインリスト：表の行 --- */
.p-sitemap .simple-sitemap-container ul.main {
  margin: 0;
  padding: 0;
  list-style: none;
}
/* 箇条書きマーカーは非表示（表レイアウト） */
.p-sitemap .simple-sitemap-container ul.main > li.sitemap-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: calc(8 * var(--to-rem)) clamp(1rem, 0.648rem + 1.5vw, 1.5rem);
  padding: clamp(0.65rem, 0.5rem + 0.6vw, 0.85rem) clamp(0.75rem, 0.5rem + 1vw, 1rem);
  padding-inline-start: clamp(0.75rem, 0.5rem + 1vw, 1rem);
  border-block-end: 1px solid var(--color-used-gray);
}
.p-sitemap .simple-sitemap-container ul.main > li.sitemap-item::before {
  content: none;
}
.p-sitemap .simple-sitemap-container ul.main > li.sitemap-item:last-child {
  border-block-end: none;
}
@media screen and (min-width: 900px) {
  .p-sitemap .simple-sitemap-container ul.main > li.sitemap-item {
    align-items: start;
  }
  .p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > a:first-of-type {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
  }
  .p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > ul.children {
    grid-column: 2;
    grid-row: 1;
  }
  .p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > .excerpt {
    grid-column: 1/-1;
    grid-row: 2;
  }
}
.p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > a:first-of-type {
  color: var(--color-font-main);
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: color var(--duration) ease, opacity var(--duration) ease;
}
.p-sitemap .simple-sitemap-container ul.main a {
  color: var(--color-font-main);
  text-decoration: none;
  transition: color var(--duration) ease, opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > a:first-of-type:hover {
    opacity: 0.65;
  }
  .p-sitemap .simple-sitemap-container ul.main a:hover {
    color: var(--color-logo-orange);
  }
  .p-sitemap .simple-sitemap-container ul.main > li.p-sitemap__recruit-dropdown-item .c-recruit-submenu__link:hover {
    color: var(--color-white);
  }
}
/* 抜粋 */
.p-sitemap .simple-sitemap-container .excerpt {
  display: block;
  margin: 0;
  color: var(--color-font-sub);
  font-size: clamp(0.8125rem, 0.773rem + 0.19vw, 0.875rem);
  line-height: 1.7;
}
.p-sitemap .simple-sitemap-container span.excerpt {
  position: static;
  left: auto;
}
.p-sitemap .simple-sitemap-container .separator {
  margin-block: calc(10 * var(--to-rem)) 0;
}
/* --- 右カラム：子ページ（参考サイトの複数リンクを横並び＋折返し） --- */
.p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > ul.children {
  display: flex;
  flex-wrap: wrap;
  gap: calc(6 * var(--to-rem)) calc(12 * var(--to-rem));
  align-items: center;
  margin: 0;
  padding: 0;
  border-inline-start: none;
  list-style: none;
}
.p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > ul.children > li.sitemap-item {
  display: inline;
  padding: 0;
  border: none;
}
.p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > ul.children > li.sitemap-item::before {
  content: none;
}
.p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > ul.children > li.sitemap-item:not(:last-child)::after {
  content: "|";
  margin-inline: calc(4 * var(--to-rem)) 0;
  color: #bbb;
  font-weight: var(--fw-regular);
  text-decoration: none;
}
/* 深い階層はブロックで縦並び */
.p-sitemap .simple-sitemap-container ul.children ul.children {
  display: block;
  margin-block-start: calc(8 * var(--to-rem));
  padding-inline-start: clamp(0.75rem, 0.5rem + 1vw, 1rem);
  border-inline-start: 1px solid #ddd;
}
.p-sitemap .simple-sitemap-container ul.children ul.children li.sitemap-item {
  display: list-item;
  padding-block: calc(4 * var(--to-rem));
  list-style: disc;
}
.p-sitemap .simple-sitemap-container ul.children ul.children li.sitemap-item::after {
  content: none;
}
/* SP：子を縦並びにし区切りを弱める */
@media screen and (width <= 899px) {
  .p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > ul.children {
    flex-direction: column;
    align-items: flex-start;
    padding-block-start: calc(4 * var(--to-rem));
    border-block-start: 1px solid #e8e8e8;
  }
  .p-sitemap .simple-sitemap-container ul.main > li.sitemap-item > ul.children > li.sitemap-item:not(:last-child)::after {
    content: none;
  }
}
/* --- 空の右カラム相当（子なし）は左のみでも行の罫線は維持 --- */
/* --- 投稿0件 --- */
.p-sitemap .simple-sitemap-container .no-posts {
  margin: 0;
  padding: clamp(0.75rem, 0.5rem + 1vw, 1rem);
  color: var(--color-font-sub);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1rem);
  font-style: normal;
}
.p-sitemap .simple-sitemap-container.tab-enabled .no-posts {
  margin: 1em 0;
}
/* --- タブ（render="tab"） --- */
.p-sitemap .simple-sitemap-container.tab-enabled {
  max-width: 100%;
}
.p-sitemap .simple-sitemap-container.tab-enabled label {
  float: none;
  margin: 0 calc(6 * var(--to-rem)) calc(8 * var(--to-rem)) 0;
  padding: calc(8 * var(--to-rem)) calc(16 * var(--to-rem));
  border: 1px solid var(--color-used-gray);
  border-block-end: none;
  border-radius: calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) 0 0;
  background-color: var(--color-bg-light);
  font-size: clamp(0.875rem, 0.824rem + 0.22vw, 1rem);
  transition: background-color var(--duration) ease;
}
@media (any-hover: hover) {
  .p-sitemap .simple-sitemap-container.tab-enabled label:hover {
    background-color: #e8e9ee;
  }
}
.p-sitemap .simple-sitemap-container.tab-enabled input:checked + label {
  border-color: var(--color-logo-orange);
  background-color: var(--color-logo-orange);
}
.p-sitemap .simple-sitemap-container.tab-enabled input:checked + label,
.p-sitemap .simple-sitemap-container.tab-enabled input:checked + label * {
  color: var(--color-white);
}
.p-sitemap .simple-sitemap-container.tab-enabled .simple-sitemap-content {
  clear: both;
}
.p-sitemap .simple-sitemap-container.tab-enabled .panel {
  margin: 0;
  padding: clamp(1rem, 0.722rem + 1.13vw, 1.5rem);
  border: 1px solid var(--color-used-gray);
  border-radius: 0 calc(4 * var(--to-rem)) calc(4 * var(--to-rem)) calc(4 * var(--to-rem));
  background-color: var(--color-white);
}
.p-sitemap .simple-sitemap-container.tab-enabled ul.main {
  margin: 0;
}
.p-sitemap .simple-sitemap-container.tab-enabled .simple-sitemap-wrap {
  padding: 0;
  border: none;
}
.p-sitemap__recruit-block {
  margin-block-start: clamp(1.25rem, 0.972rem + 1.13vw, 2rem);
  border: 1px solid #ccc;
  border-radius: calc(2 * var(--to-rem));
  background-color: var(--color-white);
}
.p-sitemap__recruit-details {
  display: block;
  --drawer-nav-icon-slot: calc(14 * var(--to-rem));
  --drawer-nav-icon-end-gap: calc(12 * var(--to-rem));
  --sitemap-recruit-inline-start: clamp(0.75rem, 0.5rem + 1vw, 1rem);
}
.p-sitemap__recruit-summary {
  list-style: none;
}
.p-sitemap__recruit-summary::-webkit-details-marker {
  display: none;
}
.p-sitemap__recruit-details .p-drawer__nav-accordion-chevron {
  transition: rotate var(--duration) ease;
}
.p-sitemap__recruit-details[open] .p-drawer__nav-accordion-chevron {
  rotate: 180deg;
}
.p-sitemap__recruit-details > .p-drawer__sublist-wrap .c-recruit-submenu {
  padding: 0 0 calc(4 * var(--to-rem));
}
.p-sitemap .simple-sitemap-container ul.main > li.p-sitemap__recruit-dropdown-item .p-drawer__sublist-wrap .c-recruit-submenu__link {
  padding-inline-start: var(--sitemap-recruit-inline-start);
  padding-inline-end: var(--drawer-nav-icon-end-gap);
}
.p-sitemap .simple-sitemap-container ul.main > li.p-sitemap__recruit-dropdown-item {
  padding: 0;
}
.p-sitemap .simple-sitemap-container ul.main > li.p-sitemap__recruit-dropdown-item > .p-sitemap__recruit-details {
  width: 100%;
}
.p-sitemap .simple-sitemap-container ul.main > li.p-sitemap__recruit-dropdown-item > .p-sitemap__recruit-details > .p-sitemap__recruit-summary {
  padding: clamp(0.65rem, 0.5rem + 0.6vw, 0.85rem) var(--drawer-nav-icon-end-gap) clamp(0.65rem, 0.5rem + 0.6vw, 0.85rem) var(--sitemap-recruit-inline-start);
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1rem);
  font-weight: var(--fw-medium);
  color: var(--color-font-main);
}
.p-sitemap .simple-sitemap-container ul.main > li.p-sitemap__recruit-dropdown-item > .p-sitemap__recruit-details > .p-sitemap__recruit-summary:focus-visible {
  outline: 2px solid var(--color-logo-orange);
  outline-offset: 2px;
}
.p-sitemap .simple-sitemap-container.col {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1rem, 0.648rem + 1.5vw, 1.5rem);
}
.p-sitemap .simple-sitemap-container.col .simple-sitemap-wrap.col {
  flex: 1 1 240px;
  width: auto;
  max-width: 100%;
  margin: 0;
}
@media (prefers-reduced-motion: reduce) {
  .p-sitemap .simple-sitemap-container ul.main a {
    transition: none;
  }
}
/* -------------------------------------------
 * トップページ：支援実績セクション (p-top-case)
 * ------------------------------------------- */
.p-top-case {
  position: relative;
  background-color: var(--color-white);
  padding-block: clamp(4.5rem, 2.915rem + 6.76vw, 9rem) clamp(2rem, 1.296rem + 3vw, 4rem);
}
.p-top-case .c-cases__cards {
  margin-block-start: clamp(2rem, 1.384rem + 2.63vw, 3.75rem);
}
/* --- ヘッダー部分（タイトルとリード文の横並び） --- */
.p-top-case__header {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 4vw, 4rem);
}
@media screen and (min-width: 900px) {
  .p-top-case__header {
    flex-direction: row;
    align-items: center;
  }
}
/* --- リード文 --- */
.p-top-case__lead p {
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  letter-spacing: calc(0.9 * var(--to-rem));
  color: var(--color-font-main);
}
@media screen and (min-width: 900px) {
  .p-top-case__lead p {
    translate: calc(4 * var(--to-rem)) calc(4 * var(--to-rem));
  }
}
/* --- リスト部分のラッパー --- */
/* --- ボタンのラッパー --- */
.p-top-case__btn-wrap {
  text-align: center;
  margin-block-start: clamp(2rem, 1.296rem + 3vw, 4rem);
}
.p-top-case__slider-wrap {
  position: absolute;
  top: calc(-70 * var(--to-rem));
  left: 50%;
  transform: translate(-50%, 0);
}
@media screen and (min-width: 900px) {
  .p-top-case__slider-wrap {
    top: calc(-90 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-top-case__slider-wrap {
    top: calc(-100 * var(--to-rem));
  }
}
@media screen and (min-width: 1240px) {
  .p-top-case__slider-wrap {
    top: calc(-120 * var(--to-rem));
  }
}
/* 共通クラスの変更 */
.p-top-case .c-case-card__body {
  display: flex;
  flex-direction: column; /* 縦並びに設定 */
  /* 2番目に表示したい（会社名）— 説明文の量に関わらず会社名・タグを下揃え */
  /* 1番目に表示したい（抜粋文） */
  /* 3番目に表示したい（タグ） */
}
.p-top-case .c-case-card__body .c-case-card__client {
  order: 2;
  margin-block-start: auto;
}
.p-top-case .c-case-card__body .c-case-card__excerpt {
  order: 1;
}
.p-top-case .c-case-card__body .c-case-card__tags {
  order: 3;
  margin-block-start: calc(8 * var(--to-rem));
}
/* ==================================================
  トップページ：お知らせ (.p-top-news)
================================================== */
.p-top-news {
  background-color: var(--color-bg-light);
  padding-block: clamp(3rem, 1.944rem + 4.51vw, 6rem);
}
.p-top-news__inner {
  display: flex;
  flex-direction: column;
}
.p-top-news__header {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(1.25rem, 0.81rem + 1.88vw, 2rem);
}
@media screen and (min-width: 900px) {
  .p-top-news__header {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
  }
}
.p-top-news__title {
  margin: 0;
}
.p-top-news__cta {
  flex-shrink: 0;
  margin-block-start: clamp(2rem, 1.286rem + 3.05vw, 3rem);
}
@media screen and (min-width: 900px) {
  .p-top-news__cta {
    display: none;
  }
}
.p-top-news__cta .c-button {
  width: 100%;
  max-width: 330px;
}
@media screen and (min-width: 900px) {
  .p-top-news__cta .c-button {
    width: auto;
    max-width: none;
    min-width: fit-content;
  }
}
.p-top-news__cta--md {
  display: none;
}
@media screen and (min-width: 900px) {
  .p-top-news__cta--md {
    display: block;
    margin-inline-start: auto;
    margin-block-start: 0;
  }
}
.p-top-news__list {
  margin-block-start: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);
}
.p-top-news__empty {
  margin: clamp(1.5rem, 0.972rem + 2.25vw, 3rem) 0 0;
  padding: clamp(2rem, 1.296rem + 3vw, 3rem);
  text-align: center;
  font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
  line-height: 2;
  color: var(--color-border-gray);
}
.p-top-news .p-news-list__category {
  background-color: var(--color-white);
}
.p-top-news .p-news-list__item {
  border-color: var(--color-white);
}
.p-works-list {
  padding-block: calc(48 * var(--to-rem)) calc(32 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-works-list {
    padding-block: calc(40 * var(--to-rem)) calc(60 * var(--to-rem));
  }
}
.p-works-list__filter {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  margin-block-start: calc(32 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-works-list__filter {
    gap: calc(12 * var(--to-rem));
  }
}
.p-works-list__filter-btn {
  padding: calc(10 * var(--to-rem)) calc(20 * var(--to-rem));
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background-color: transparent;
  color: var(--color-text);
  font-family: inherit;
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
@media screen and (min-width: 900px) {
  .p-works-list__filter-btn {
    padding: calc(10 * var(--to-rem)) calc(24 * var(--to-rem));
    font-size: calc(15 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-works-list__filter-btn:hover:not(.is-active) {
    border-color: var(--color-border);
    background-color: var(--color-gray);
  }
}
.p-works-list__filter-btn.is-active {
  border-color: var(--color-accent);
  background-color: var(--color-accent);
  color: var(--color-white);
}
.p-works-list__grid {
  --_card-widht: calc(320 * var(--to-rem));
  display: grid;
  gap: calc(24 * var(--to-rem));
  margin-block-start: calc(24 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-works-list__grid {
    grid-template-columns: repeat(auto-fill, minmax(min(var(--_card-widht), 100%), 1fr));
    gap: calc(32 * var(--to-rem));
    margin-block-start: calc(32 * var(--to-rem));
  }
}
.p-works-list__card {
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
@media (any-hover: hover) {
  .p-works-list__card:hover .p-works-list__thumbnail img {
    scale: 1.05;
  }
}
.p-works-list__link {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
}
.p-works-list__thumbnail {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
}
.p-works-list__thumbnail img {
  transition: scale 0.4s ease;
}
.p-works-list__badge {
  position: absolute;
  top: calc(12 * var(--to-rem));
  left: calc(12 * var(--to-rem));
  padding: calc(6 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: calc(12 * var(--to-rem));
  font-weight: var(--fw-medium);
}
.p-works-list__content {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: calc(8 * var(--to-rem));
  padding: calc(20 * var(--to-rem));
}
.p-works-list__card-title {
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
@media screen and (min-width: 900px) {
  .p-works-list__card-title {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-works-list__client {
  color: oklch(from var(--color-text) l c h/70%);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 900px) {
  .p-works-list__client {
    font-size: calc(13 * var(--to-rem));
  }
}
.p-works-list__date {
  color: oklch(from var(--color-text) l c h/70%);
  font-size: calc(12 * var(--to-rem));
}
.p-works-list__empty {
  padding-block: calc(60 * var(--to-rem));
  color: oklch(from var(--color-text) l c h/70%);
  font-size: calc(16 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 900px) {
  .p-works-list__empty {
    padding-block: calc(80 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
  }
}
:root {
  --clip-triangle-top: polygon(50% 0, 100% 100%, 0 100%);
  --clip-triangle-bottom: polygon(0 0, 100% 0, 50% 100%);
  --clip-triangle-right: polygon(0 0, 100% 50%, 0 100%);
  --clip-triangle-left: polygon(0 50%, 100% 0, 100% 100%);
  --clip-triangle-lower-left: polygon(0 0, 100% 100%, 0 100%);
  --clip-triangle-upper-left: polygon(0 0, 100% 0, 0 100%);
  --clip-triangle-lower-right: polygon(100% 0, 100% 100%, 0 100%);
  --clip-triangle-upper-right: polygon(0 0, 100% 0, 100% 100%);
}
.u-font-en {
  font-family: var(--font-en);
}
/* 数字だけを囲む要素に付与（本文フォントは維持したまま数字だけ Montserrat Alternates） */
.u-font-num {
  font-family: var(--font-num);
}
.u-hidden {
  display: none;
}
.u-highlight {
  color: var(--color-logo-orange);
}
@media (width <= 767px) {
  [data-only-device=md] {
    display: none;
  }
}
@media (width >= 768px) {
  [data-only-device=sm] {
    display: none;
  }
}
.u-sr-only {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(100%);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
}
.u-text__marker {
  background: linear-gradient(transparent 75%, var(--color-orange) 75%);
}
.u-text__inline-block {
  display: inline-block;
}
.u-text__indent {
  padding-inline-start: 1em;
  text-indent: -1em;
}
.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-width: 0;
}
:root {
  font-family: var(--base-font-family);
}