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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /* The following default styles are often unnecessary, so they are reset. */
  padding: unset;
  border: unset;
}
:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  /*
  * These elements can be easily displayed by explicitly setting their `display` property.
  * To prevent them from appearing when not in an open state, they are forcibly hidden.
  */
  display: none !important;
}
:where(dialog) {
  /*
  * The max width and height of a `<dialog>` element are typically determined by the design.
  * These UA stylesheet properties are reset as they can be obstructive, especially when trying to make the dialog full-screen.
  */
  max-inline-size: unset;
  max-block-size: unset;
}
:where(dialog)::backdrop {
  /* Normalize the background color of the `::backdrop` element. */
  background-color: oklch(0% 0 0deg / 30%);
}
:where([popover]) {
  /*
  * While the UA stylesheet's `margin` for `<dialog>` elements is useful for centering with `inset: 0`,
  * but `margin` for `popover` elements is often obstructive as they frequently use Anchor Positioning.
  */
  margin: unset;
}
/* ======================================================
//  MARK: Focus Styles
// ====================================================== */
:where(:focus-visible) {
  /* Add space between the content and the focus outline. */
  outline-offset: 3px;
}
[tabindex="-1"]:focus {
  /* Prevent programmatically focused elements from displaying an outline unless they are naturally focusable. */
  outline: none !important;
}
/* ======================================================
//  MARK: Misc
// ====================================================== */
:where(:disabled, [aria-disabled="true" i]) {
  /* Display the default cursor on disabled elements to reflect their non-interactive state. */
  cursor: default;
}
[hidden]:not([hidden="until-found" i]) {
  /* Ensure that elements intended to be hidden are not displayed, improving clarity and layout control. */
  display: none !important;
}
:where(h1, h2, h3, h4, h5, h6) {
  margin: 0;
}
:where(p) {
  margin: 0;
}
html {
  font-size: 100%;
}
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 {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
: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;
}
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: 2px;
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
input[type=text] {
  font-size: 1rem;
  /* = 16px */
}
textarea {
  field-sizing: content;
}
body {
  color: var(--color-text);
  font-family: var(--base-font-family);
  font-weight: var(--fw-regular);
  overflow-x: clip;
}
@property --root-font-size {
  syntax: "<length>";
  inherits: false;
  initial-value: 16px;
}
@font-face {
  font-family: "Local Noto Sans JP";
  src: local("Noto Sans JP");
}
:root {
  /* inner */
  --inner: min(1080px, 100%);
  --inner-sp: min(500px, 100%);
  --padding-inner: 20px;
  /* SP: 左右 15px の安全余白 */
  /* z-index */
  --z-index-header: 900;
  /* color */
  --color-white: #fff;
  --color-black: #000;
  --color-text: #1b2e23;
  --color-primary: #10572c;
  --color-accent: #00a040;
  --color-secondary: #abcd03;
  --color-bg-light: #f9f9f9;
  --color-bg-green: #eff7f3;
  --color-gray: #f4f4f4;
  --color-border: #c8c8c8;
  /* font-weight */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;
  /* font-family */
  --base-font-family: "Zen Kaku Gothic New", sans-serif;
  --to-rem: calc(tan(atan2(1px, var(--root-font-size))) * 1rem);
  /* transition duration */
  --duration: 0.3s;
  /* header height (Figma: 100px @PC) */
  --header-height: 64px;
}
@media screen and (width <= 767px) {
  :root {
    --padding-inner: 15px;
  }
}
@media screen and (width >= 768px) {
  :root {
    --header-height: 100px;
  }
}
/* ===============================================================
 * Figma arrow_warm_up（右向き）アイコン共通mixin
 *
 * 元アイコン: Figma node 4031:4277 "arrow_warm_up"
 * 上向き矢印 + 下に短いダッシュ2本 → 90deg 回転で右向き矢印
 * mask-image + background-color: currentColor で親要素のcolorに追従
 *
 * 使用例:
 *   .x-link::after {
 *     content: "";
 *     @include arrow-warm-up-right(18px);
 *   }
 * =============================================================== */
/* arrow_warm_up を 180deg 反転した左向き矢印（戻るボタン用） */
/* ===============================================================
 * 下層ページのセクション基本余白
 * Hero下のセクション標準: padding-block 86/90, MD: 48/56
 * 使用例: .p-X__section { @include section-padding; }
 * =============================================================== */
/* ===============================================================
 * インナー幅(padding込み)
 * .l-inner と異なり、コンテンツ幅をFigma実値で指定する用途
 * 使用例: .p-X__inner { @include inner-width(980); }
 * SP では --padding-inner (15px) が左右余白として適用される
 * =============================================================== */
/* ===============================================================
 * セクション見出し下のUnion下線
 * Figma: 105×4.4のラインに中央下向きVチェブロン (color: secondary)
 * 親要素を position: relative にし、::after にこのmixinを適用
 * 使用例:
 *   .x-title {
 *     position: relative;
 *     padding-block-end: 12px;
 *     &::after { @include section-title-underline; }
 *   }
 * =============================================================== */
.l-header {
  position: fixed;
  inset: 0;
  z-index: var(--z-index-header);
}
.l-inner {
  max-width: calc(var(--inner-sp) + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
@media screen and (max-width: 767px) {
  .l-inner {
    max-width: calc(var(--inner) + var(--padding-inner) * 2);
  }
}
.l-main {
  margin-block-start: 0;
  overflow-x: clip;
}
/* ===============================================================
 * 共通アンカーリンク・ナビゲーション .c-anchor-nav
 *
 * 用途: ページ内セクションへ飛ばすタブ風ナビ。
 *   - 緑下線
 *   - 各リンクの右に下向き矢印 (˅)
 *
 * 使用例:
 *   <nav class="c-anchor-nav">
 *     <ul class="c-anchor-nav__list">
 *       <li><a href="#sec1">セクション1</a></li>
 *       <li><a href="#sec2">セクション2</a></li>
 *     </ul>
 *   </nav>
 * =============================================================== */
.c-anchor-nav {
  margin-block-end: 56px;
}
@media screen and (max-width: 767px) {
  .c-anchor-nav {
    margin-block-end: 32px;
  }
}
.c-anchor-nav__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  column-gap: 32px;
  row-gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .c-anchor-nav__list {
    column-gap: 16px;
  }
}
.c-anchor-nav__list a,
.c-anchor-nav a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px;
  color: var(--color-accent);
  font-size: 14px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: opacity var(--duration);
  /* 下向き矢印アイコン (˅) */
}
.c-anchor-nav__list a::after,
.c-anchor-nav a::after {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}
@media (any-hover: hover) {
  .c-anchor-nav__list a:hover,
  .c-anchor-nav a:hover {
    opacity: 0.7;
  }
}
/* ===========================================================
 * パンくずナビ (.c-breadcrumb)
 * - ページ上部、ヒーロー内のh1の上に配置
 * - ヒーロー背景は緑グラデーションのため、文字は白系
 * =========================================================== */
.c-breadcrumb {
  width: var(--inner);
  margin-inline: auto;
  margin-bottom: 20px;
  padding-block: 12px 0;
}
@media screen and (max-width: 767px) {
  .c-breadcrumb {
    padding-inline: var(--padding-inner);
  }
}
.c-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 12px;
  color: var(--color-white);
}
@media screen and (max-width: 767px) {
  .c-breadcrumb__list {
    font-size: 11px;
  }
}
.c-breadcrumb__item {
  display: inline-flex;
  align-items: center;
}
.c-breadcrumb__item:not(:last-child)::after {
  content: ">";
  margin-inline-start: 8px;
  color: rgba(255, 255, 255, 0.7);
}
.c-breadcrumb__item a {
  color: var(--color-white);
  text-decoration: none;
  opacity: 0.85;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .c-breadcrumb__item a:hover {
    opacity: 1;
    text-decoration: underline;
  }
}
.c-breadcrumb__item [aria-current=page] {
  opacity: 1;
  font-weight: var(--fw-medium);
}
/* ===============================================================
 * 共通ボタン .c-btn
 *
 * 使用例:
 *   <a href="#" class="c-btn c-btn--gradient">
 *     <span>ボタンテキスト</span>
 *     <span class="c-btn__icon" aria-hidden="true"></span>
 *   </a>
 *
 * バリアント:
 *   .c-btn--gradient   緑グラデ背景・白文字（白背景上のCTA）
 *   .c-btn--ghost      半透明白＋blur・白文字（緑グラデ背景上のCTA）
 *
 * サイズ調整は固有クラス側で `width` 等を上書き
 * =============================================================== */
.c-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  height: 60px;
  padding: 12px 50px;
  border: 1px solid var(--color-white);
  border-radius: 100px;
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: opacity var(--duration), transform var(--duration);
}
@media (any-hover: hover) {
  .c-btn:hover {
    opacity: 0.9;
    transform: translateY(-1px);
  }
}
@media screen and (max-width: 767px) {
  .c-btn {
    width: 100%;
    max-width: 280px;
    height: 52px;
    font-size: 14px;
    padding: 12px 40px;
  }
}
/* 緑グラデ背景（白セクション内のメインCTA） */
.c-btn--gradient {
  background-image: linear-gradient(99.2deg, rgb(171, 205, 3) 0.2%, rgb(0, 160, 64) 99.8%);
}
/* 半透明白背景（緑グラデ背景セクション内のCTA） */
.c-btn--ghost {
  background-color: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
/* 矢印アイコン (Figma "arrow_warm_up" 90deg右向き) ボタン右端に配置 */
.c-btn__icon {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: 24px;
  transform: translateY(-50%);
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
@media screen and (max-width: 767px) {
  .c-btn__icon {
    inset-inline-end: 20px;
  }
}
/* ===============================================================
 * レガシー .c-button（旧テンプレ流用）
 * 404.php / single-works.php で使用
 * =============================================================== */
.c-button {
  position: relative;
  display: inline-block;
  padding: calc(14 * var(--to-rem)) calc(60 * var(--to-rem));
  border: 1px solid currentcolor;
  background-color: var(--color-white);
  color: var(--color-black);
  font-size: calc(15 * var(--to-rem));
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.c-button::before {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(20 * var(--to-rem));
  width: calc(8 * var(--to-rem));
  height: calc(8 * var(--to-rem));
  border-top: 2px solid var(--color-black);
  border-right: 2px solid var(--color-black);
  translate: 0 -50%;
  rotate: 45deg;
  transition: rotate 0.3s, translate 0.3s;
}
@media (any-hover: hover) {
  .c-button:hover::before {
    translate: 5px -50%;
  }
}
.c-button[data-color=black] {
  border-color: var(--color-black);
  background-color: var(--color-black);
  color: var(--color-white);
}
.c-button[data-color=black]::before {
  border-top: 2px solid currentcolor;
  border-right: 2px solid currentcolor;
}
/* カードリンク矢印アイコン（共通）
   Figma "arrow_warm_up" 準拠
   PHPパーツ: template-parts/icon-card-arrow.php */
.c-card-arrow {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--color-accent);
}
/* ===============================================================
 * 共通カード .c-card (記事/事例/セミナー/コラム/トピック等で共通)
 *
 * Figma実値: 354×326, 6px内padding, border 1px, rounded 26px
 * 画像: aspect 342/200, rounded 20px
 * 本文: padding 8/12/0, gap 6, title 16px, desc 14px (line-clamp 2)
 *
 * 使用例:
 *   <a class="c-card" href="...">
 *     <div class="c-card__media">
 *       <img src="..." />
 *       <span class="c-card__tag">タグ</span>
 *       <time class="c-card__date">2026.02.12</time>
 *     </div>
 *     <div class="c-card__body">
 *       <h3 class="c-card__title">タイトル</h3>
 *       <p class="c-card__desc">説明文</p>
 *       <p class="c-card__meta">メタ情報</p>
 *     </div>
 *   </a>
 * =============================================================== */
.c-card {
  display: flex;
  flex-direction: column;
  padding: 6px 6px 12px;
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 26px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  .c-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  }
}
.c-card__media {
  position: relative;
  aspect-ratio: 342/200;
  background-color: var(--color-bg-light);
  border-radius: 20px;
  overflow: hidden;
}
.c-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 画像オーバーレイ: 日付ピル (左下) */
.c-card__date {
  position: absolute;
  inset-block-end: 8px;
  inset-inline-start: 8px;
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  background-color: var(--color-white);
  border-radius: 100px;
  color: var(--color-accent);
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  z-index: 2;
}
/* 画像オーバーレイ: タグピル (右上) */
.c-card__tag {
  position: absolute;
  inset-block-start: 14px;
  inset-inline-end: 14px;
  display: inline-flex;
  align-items: center;
  padding: 2px 12px;
  background-color: var(--color-white);
  border-radius: 100px;
  color: var(--color-accent);
  font-size: 14px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  z-index: 2;
}
.c-card__body {
  padding: 8px 12px 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.c-card__title {
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  letter-spacing: 0.02em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.c-card__desc {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.c-card__meta {
  margin-block-start: 8px;
  color: var(--color-accent);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
}
/* ───────────────────────────────────────────────────────────────
 * 受付状態（セミナー等）
 *   .c-card__status         : 画像左上に表示する小バッジ
 *   .c-card__closed-overlay : 受付終了時に画像中央に重ねる「受付終了しました」
 *   .c-card.is-status-closed: 画像をグレースケール＋減光する装飾
 * =============================================================== */
.c-card__status {
  position: absolute;
  inset-block-start: 14px;
  inset-inline-start: 14px;
  display: inline-flex;
  align-items: center;
  padding: 2px 12px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  color: var(--color-white);
  z-index: 3;
}
.c-card__status--accepting {
  background-color: var(--color-accent);
}
.c-card__status--pre_open {
  background-color: var(--color-secondary);
}
.c-card__status--closed {
  background-color: #9ca3af;
}
.c-card__closed-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.45);
  color: var(--color-white);
  font-size: 18px;
  font-weight: var(--fw-bold);
  letter-spacing: 0.05em;
  z-index: 1; /* 画像より上、日付/場所タグ(z:2)・受付状態(z:3)より下 */
  pointer-events: none;
}
.c-card.is-status-closed .c-card__media img {
  filter: grayscale(0.6) brightness(0.95);
}
/* ===============================================================
 * 共通フィルター(タブ)ピル .c-filter-pill
 * column/topics等のカテゴリフィルターで共通利用
 *
 * バリアント:
 *   .c-filter-pill--solid  デフォルト緑塗り（アクティブはライム）
 *   .c-filter-pill--ghost  灰色透過（アクティブは緑塗り）
 *
 * 使用例:
 *   <ul class="c-filter-pill">
 *     <li><a href="#" class="is-current">すべて</a></li>
 *     <li><a href="#">カテゴリ1</a></li>
 *   </ul>
 * =============================================================== */
.c-filter-pill {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .c-filter-pill {
    gap: 8px;
  }
}
.c-filter-pill li a {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 20px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: opacity var(--duration), background-color var(--duration), color var(--duration);
}
@media (any-hover: hover) {
  .c-filter-pill li a:hover {
    opacity: 0.85;
  }
}
/* デフォルト=solid: 緑塗り→ライム塗り (topics系) */
.c-filter-pill li a,
.c-filter-pill--solid li a {
  background-color: var(--color-accent);
  color: var(--color-white);
}
.c-filter-pill li a.is-current,
.c-filter-pill--solid li a.is-current {
  background-color: var(--color-secondary);
}
/* ghost: 灰色透過→緑塗り (column系) */
.c-filter-pill--ghost li a {
  background-color: var(--color-bg-light);
  color: var(--color-text);
  font-size: 12px;
  height: auto;
  padding: 8px 20px;
}
.c-filter-pill--ghost li a.is-current {
  background-color: var(--color-accent);
  color: var(--color-white);
}
/* tabs: 上部のみ角丸、グレー枠の上端に接続するタブ風 (column アーカイブで使用)
   Figma: アクティブ=#f9f9f9 / dark text、非アクティブ=#00a040 / 白text */
.c-filter-pill--tabs {
  gap: 4px;
}
.c-filter-pill--tabs li a {
  height: auto;
  padding: 12px 32px;
  border-radius: 10px 10px 0 0;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: 14px;
}
.c-filter-pill--tabs li a.is-current {
  background-color: var(--color-bg-light);
  color: var(--color-text);
}
@media screen and (max-width: 767px) {
  .c-filter-pill--tabs {
    gap: 2px;
  }
  .c-filter-pill--tabs li a {
    padding: 10px 16px;
    font-size: 13px;
  }
}
/* ===========================================================
 * 汎用モーダル (.c-modal)
 * - aria-hidden の値で表示制御（JSが切替）
 * - body にロッククラス body.is-modal-open を付与してスクロール抑止
 * =========================================================== */
.c-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
}
.c-modal[aria-hidden=false] {
  display: flex;
}
.c-modal__backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.55);
}
.c-modal__dialog {
  position: relative;
  width: min(880px, 100% - 32px);
  max-height: calc(100dvh - 64px);
  background-color: var(--color-white);
  border-radius: 16px;
  padding: 48px 32px 32px;
  overflow-y: auto;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}
@media screen and (max-width: 767px) {
  .c-modal__dialog {
    padding: 40px 16px 20px;
    border-radius: 12px;
  }
}
.c-modal__close {
  position: absolute;
  inset-block-start: 12px;
  inset-inline-end: 12px;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-bg-light);
  border: none;
  border-radius: 50%;
  font-size: 22px;
  color: var(--color-text);
  cursor: pointer;
  transition: background-color var(--duration);
}
@media (any-hover: hover) {
  .c-modal__close:hover {
    background-color: var(--color-bg-green);
  }
}
.c-modal__title {
  text-align: center;
  margin-block-end: 24px;
  color: var(--color-primary);
  font-size: 22px;
  font-weight: var(--fw-bold);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .c-modal__title {
    font-size: 18px;
  }
}
.c-modal__list {
  list-style: none;
  counter-reset: credo;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.c-modal__list-item {
  position: relative;
  counter-increment: credo;
  padding-inline-start: 40px;
  padding-block: 4px;
  font-size: 15px;
  line-height: 1.85;
  color: var(--color-text);
}
.c-modal__list-item::before {
  content: counter(credo);
  position: absolute;
  inset-block-start: 4px;
  inset-inline-start: 0;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-accent);
  color: var(--color-white);
  border-radius: 50%;
  font-family: "Futura", var(--base-font-family);
  font-size: 13px;
  font-weight: var(--fw-bold);
}
@media screen and (max-width: 767px) {
  .c-modal__list-item {
    font-size: 13px;
    padding-inline-start: 34px;
    line-height: 1.75;
  }
  .c-modal__list-item::before {
    width: 24px;
    height: 24px;
    font-size: 11px;
  }
}
/* body スクロール抑止 */
body.is-modal-open {
  overflow: hidden;
}
/**
 * ページネーション共通コンポーネント
 *
 * Figma準拠: ◀ 1 2 3 4 5 ▶
 *   - prev/next: secondary(黄緑 #abcd03) 塗りつぶし円 40×40, 白矢印, 番号群と 32px ギャップ
 *   - 現在ページ: 数字のみ accent(#00a040)
 *   - 通常ページ: 数字のみ text色, 数字間 20px ギャップ
 */
.c-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
}
.c-pagination__item {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  color: var(--color-text);
  font-family: "Futura", var(--base-font-family);
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1;
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .c-pagination__item:hover:not([data-state=current]):not([data-state=disabled]):not([data-state=dots]) {
    opacity: 0.7;
  }
}
/* 現在ページ: 数字のみ accent色 */
.c-pagination__item[data-state=current] {
  color: var(--color-accent);
}
/* 省略記号 */
.c-pagination__item[data-state=dots] {
  cursor: default;
}
/* 前へ・次へ: secondary(黄緑) 塗りつぶし円 + 白矢印 */
.c-pagination__item[data-state=prev],
.c-pagination__item[data-state=next] {
  background-color: var(--color-secondary);
  border-radius: 50%;
  color: transparent;
  font-size: 0;
  position: relative;
  width: 40px;
  height: 40px;
}
.c-pagination__item[data-state=prev]::before,
.c-pagination__item[data-state=next]::before {
  content: "";
  width: 8px;
  height: 8px;
  border-top: 1.5px solid var(--color-white);
  border-right: 1.5px solid var(--color-white);
}
/* 番号群との間に余白を上乗せ (gap:20 + margin:12 = 32px) */
.c-pagination__item[data-state=prev] {
  margin-inline-end: 12px;
}
.c-pagination__item[data-state=next] {
  margin-inline-start: 12px;
}
.c-pagination__item[data-state=prev]::before {
  transform: rotate(-135deg) translate(-2px, 2px);
}
.c-pagination__item[data-state=next]::before {
  transform: rotate(45deg) translate(-2px, 2px);
}
/* 無効（1ページ目／最終ページの前へ・次へ） */
.c-pagination__item[data-state=disabled] {
  opacity: 0.4;
  cursor: default;
}
.c-section-title {
  display: grid;
  gap: calc(8 * var(--to-rem));
  justify-items: center;
  width: max-content;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .c-section-title {
    gap: calc(12 * var(--to-rem));
  }
}
.c-section-title[data-align=center] {
  justify-items: center;
  text-align: center;
}
.c-section-title[data-align=left] {
  justify-items: start;
  text-align: left;
}
.c-section-title[data-align=right] {
  justify-items: end;
  text-align: right;
}
.c-section-title::after {
  content: "";
  display: block;
  width: 60%;
  height: calc(3 * var(--to-rem));
  background-color: var(--color-orange);
}
@media screen and (max-width: 767px) {
  .c-section-title::after {
    width: 80%;
  }
}
.c-section-title__main {
  color: var(--color-text);
  font-family: var(--title-font-family);
  font-size: calc(32 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .c-section-title__main {
    font-size: calc(48 * var(--to-rem));
  }
}
.c-section-title__sub {
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .c-section-title__sub {
    font-size: calc(16 * var(--to-rem));
  }
}
/* ===============================================================
 * NCCグラデ下線タイトル .c-section-title-grad
 * 中央寄せの見出し+105px×4pxグラデーション下線
 *
 * 使用例:
 *   <h2 class="c-section-title-grad">セクションタイトル</h2>
 *   <h2 class="c-section-title-grad c-section-title-grad--accent">緑文字</h2>
 *   <h2 class="c-section-title-grad c-section-title-grad--white">白文字</h2>
 * =============================================================== */
.c-section-title-grad {
  position: relative;
  display: inline-block;
  padding-block-end: 12px;
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
}
.c-section-title-grad::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 50%;
  translate: -50% 0;
  width: 105px;
  height: 5px;
  background-color: var(--color-secondary);
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
@media screen and (max-width: 767px) {
  .c-section-title-grad {
    font-size: 18px;
  }
}
.c-section-title-grad--accent {
  color: var(--color-accent);
}
.c-section-title-grad--white {
  color: var(--color-white);
}
/* セクション見出しを中央寄せするコンテナ用 */
.c-section-title-grad-wrap {
  display: flex;
  justify-content: center;
}
.c-skip-link {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 10000;
  padding: 8px 16px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  translate: 0 -100%;
  transition: translate var(--duration);
}
.c-skip-link:focus-visible {
  translate: 0 0;
  outline-offset: 2px;
}
/* ===============================================================
 * 共通スライダーナビ (.c-slider-nav)
 *
 * 構造: prev arrow / dots / next arrow
 *
 * 使用例:
 *   <div class="c-slider-nav">
 *     <button class="c-slider-arrow c-slider-arrow--prev" aria-label="前へ"></button>
 *     <div class="c-slider-pagination js-slider-pagination"></div>
 *     <button class="c-slider-arrow c-slider-arrow--next" aria-label="次へ"></button>
 *   </div>
 *
 * Figma 4031:5403 準拠
 *   - 矢印: 40×40 円形 / bg #abcd03 (secondary) / backdrop-blur 4px / 16px chevron
 *   - ドット: 10px円 / inactive #d9d9d9 / active accent (12px)
 * =============================================================== */
.c-slider-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
}
@media screen and (max-width: 767px) {
  .c-slider-nav {
    gap: 16px;
  }
}
/* 前後矢印ボタン */
.c-slider-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: var(--color-secondary);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: var(--color-white);
  cursor: pointer;
  transition: opacity var(--duration);
  flex-shrink: 0;
  /* 矢印アイコン (chevron) */
}
@media (any-hover: hover) {
  .c-slider-arrow:hover {
    opacity: 0.85;
  }
}
.c-slider-arrow:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.c-slider-arrow::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
}
.c-slider-arrow--prev::before {
  transform: rotate(-135deg);
  translate: 2px 0;
}
.c-slider-arrow--next::before {
  transform: rotate(45deg);
  translate: -2px 0;
}
/* ドット (Splide pagination 連動) */
.c-slider-pagination {
  display: flex;
  align-items: center;
  gap: 10px;
  /* Splide デフォルトの position:absolute 等を打ち消す */
}
.c-slider-pagination .splide__pagination {
  position: static;
  display: flex;
  align-items: center;
  gap: 10px;
  width: auto;
  list-style: none;
  padding: 0;
  margin: 0;
  pointer-events: auto;
}
.c-slider-pagination li {
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 0;
}
.c-slider-pagination .splide__pagination__page {
  display: inline-block;
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: #d9d9d9;
  opacity: 1;
  cursor: pointer;
  transition: background-color var(--duration), width var(--duration), height var(--duration);
}
.c-slider-pagination .splide__pagination__page.is-active {
  background-color: var(--color-accent);
  width: 12px;
  height: 12px;
  transform: none;
}
/* ===============================================================
 * 共通タグ/バッジ .c-tag
 * 記事詳細・カード等の小さいラベル(pill形状)で共通利用
 *
 * バリアント:
 *   .c-tag--accent     #00a040 (緑)
 *   .c-tag--secondary  #abcd03 (ライム)
 *   .c-tag--white      白背景・緑文字
 *
 * 使用例:
 *   <span class="c-tag c-tag--accent">タグ名</span>
 * =============================================================== */
.c-tag {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 12px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  white-space: nowrap;
  background-color: var(--color-secondary);
  color: var(--color-white);
}
.c-tag--accent {
  background-color: var(--color-accent);
  color: var(--color-white);
}
.c-tag--secondary {
  background-color: var(--color-secondary);
  color: var(--color-white);
}
.c-tag--white {
  background-color: var(--color-white);
  color: var(--color-accent);
}
/* 大きめの日付ピル(画像オーバーレイ用) - .c-card__date と同等 */
.c-tag--date {
  padding: 6px 14px;
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  letter-spacing: 0.05em;
  height: auto;
  background-color: var(--color-white);
  color: var(--color-accent);
}
.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);
}
.p-archive {
  padding-block: calc(40 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .p-archive__list {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(32 * var(--to-rem));
  }
}
@media screen and (max-width: 1023px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .p-archive__excerpt {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-archive__pagination {
  margin-block-start: calc(48 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .p-archive--works .p-archive__technology {
    font-size: calc(12 * var(--to-rem));
  }
}
/* ===========================================================
 * 記事詳細 共通スタイル (.p-article-detail)
 * 案件(case) / お役立ち情報(column) / お知らせ(topic) で共通利用
 * =========================================================== */
.p-article-detail {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-article-detail__inner {
  max-width: calc(960px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
.p-article-detail__inner-wide {
  max-width: calc(1180px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* ----- 記事本文セクション ----- */
.p-article-detail__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-article-detail__section {
    padding-block: 48px 56px;
  }
}
.p-article-detail__article {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 40px 48px;
}
@media screen and (max-width: 767px) {
  .p-article-detail__article {
    padding: 24px 20px;
    border-radius: 16px;
  }
}
/* メタ情報 (date + tag) */
.p-article-detail__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-block-end: 14px;
  flex-wrap: wrap;
}
.p-article-detail__date {
  font-family: "Futura", var(--base-font-family);
  font-size: 13px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
}
.p-article-detail__tag {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 12px;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 11px;
  font-weight: var(--fw-medium);
  border-radius: 100px;
}
.p-article-detail__tag--accent {
  background-color: var(--color-accent);
}
/* タイトル: 緑下線（Figma準拠 #abcd03） */
.p-article-detail__title {
  color: var(--color-text);
  font-size: 22px;
  font-weight: var(--fw-bold);
  line-height: 1.5;
  padding-block-end: 12px;
  border-block-end: 1px solid var(--color-secondary);
  margin-block-end: 20px;
}
@media screen and (max-width: 767px) {
  .p-article-detail__title {
    font-size: 18px;
    margin-block-end: 16px;
  }
}
/* リード文 */
.p-article-detail__lead {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.9;
  margin-block-end: 32px;
}
@media screen and (max-width: 767px) {
  .p-article-detail__lead {
    font-size: 13px;
    margin-block-end: 24px;
  }
}
/* 大きい画像 */
.p-article-detail__image {
  width: 100%;
  max-width: 680px;
  margin-inline: auto;
  margin-block: 24px 32px;
  border-radius: 8px;
  overflow: hidden;
}
.p-article-detail__image img {
  display: block;
  width: 100%;
  height: auto;
}
.p-article-detail__image-placeholder {
  aspect-ratio: 880/440;
  margin-block: 24px 32px;
  border-radius: 8px;
  background-color: #f3f3f3;
  background-image: linear-gradient(45deg, #d8d8d8 25%, transparent 25%), linear-gradient(-45deg, #d8d8d8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d8d8d8 75%), linear-gradient(-45deg, transparent 75%, #d8d8d8 75%);
  background-size: 24px 24px;
  background-position: 0 0, 0 12px, 12px -12px, -12px 0;
}
/* 本文 */
.p-article-detail__body {
  color: var(--color-text);
  font-size: 14px;
  line-height: 2;
  /* H2: 緑左ボーダー */
  /* H3: 緑下線 */
}
.p-article-detail__body p {
  margin-block-end: 24px;
}
.p-article-detail__body h2 {
  position: relative;
  padding-inline-start: 16px;
  color: var(--color-text);
  font-size: 18px;
  font-weight: var(--fw-medium);
  margin-block: 32px 16px;
  line-height: 1.5;
}
.p-article-detail__body h2::before {
  content: "";
  position: absolute;
  inset-block: 4px;
  inset-inline-start: 0;
  width: 4px;
  background-color: var(--color-accent);
}
.p-article-detail__body h3 {
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  padding-block-end: 8px;
  margin-block: 24px 12px;
  border-block-end: 1px solid var(--color-accent);
  line-height: 1.5;
}
.p-article-detail__body img {
  display: block;
  max-width: 100%;
  height: auto;
  margin-block: 24px;
  border-radius: 6px;
}
.p-article-detail__body ul,
.p-article-detail__body ol {
  margin: 16px 0 24px;
  padding-inline-start: 24px;
}
.p-article-detail__body ul li,
.p-article-detail__body ol li {
  margin-block: 6px;
}
/* 画像 + テキスト 2カラム */
.p-article-detail__image-text {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 32px;
  margin-block: 32px;
}
@media screen and (max-width: 767px) {
  .p-article-detail__image-text {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.p-article-detail__image-text-img {
  aspect-ratio: 280/200;
  border-radius: 8px;
  background-color: #f3f3f3;
  background-image: linear-gradient(45deg, #d8d8d8 25%, transparent 25%), linear-gradient(-45deg, #d8d8d8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d8d8d8 75%), linear-gradient(-45deg, transparent 75%, #d8d8d8 75%);
  background-size: 24px 24px;
  background-position: 0 0, 0 12px, 12px -12px, -12px 0;
  overflow: hidden;
}
.p-article-detail__image-text-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-article-detail__image-text-body h3 {
  margin-block-start: 0;
}
/* ===========================================================
 * 関連記事セクション
 * =========================================================== */
.p-article-detail__related {
  padding-block: 32px 100px;
}
@media screen and (max-width: 767px) {
  .p-article-detail__related {
    padding-block: 24px 40px;
  }
}
.p-article-detail__related-head {
  display: flex;
  justify-content: center;
  margin-block-end: 32px;
}
@media screen and (max-width: 767px) {
  .p-article-detail__related-head {
    margin-block-end: 24px;
  }
}
.p-article-detail__related-title {
  position: relative;
  display: inline-block;
  padding-block-end: 12px;
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  text-align: center;
}
.p-article-detail__related-title::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 50%;
  translate: -50% 0;
  width: 105px;
  height: 5px;
  background-color: var(--color-secondary);
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
@media screen and (max-width: 767px) {
  .p-article-detail__related-title {
    font-size: 18px;
  }
}
/* 関連記事 Splide スライダー (Figma準拠: 354px / white / #c8c8c8 border / radius26) */
.p-article-detail__related-splide {
  margin-block-end: 32px;
  /* Splide マウント前のFOUC抑制 (横並びで隠す) */
}
.p-article-detail__related-splide:not(.is-initialized) .splide__list {
  display: flex;
  gap: 19px;
  overflow: hidden;
}
.p-article-detail__related-splide:not(.is-initialized) .splide__slide {
  flex: 0 0 354px;
  min-width: 0;
}
/* レガシー横スクロール対応のため残置 (ul.splide__list 内では効かない) */
.p-article-detail__related-list {
  display: flex;
  gap: 19px;
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
}
.p-article-detail__related-item {
  margin: 0;
  height: auto;
}
.p-article-detail__related-item > .p-article-detail__related-card,
.p-article-detail__related-item > .c-card {
  height: 100%;
}
.p-article-detail__related-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background-color: var(--color-white);
  border: 1px solid #c8c8c8;
  border-radius: 26px;
  padding: 6px 6px 12px;
  text-decoration: none;
  color: inherit;
  height: 100%;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-article-detail__related-card:hover {
    opacity: 0.9;
  }
}
.p-article-detail__related-meta {
  display: flex;
  justify-content: flex-end;
  padding-inline: 12px;
  min-height: 22px;
}
.p-article-detail__related-cat {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 12px;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 11px;
  font-weight: var(--fw-medium);
  border-radius: 100px;
}
.p-article-detail__related-image {
  height: 200px;
  border-radius: 20px;
  overflow: hidden;
  margin: 0;
}
.p-article-detail__related-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-article-detail__related-name {
  padding-inline: 12px;
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.p-article-detail__related-desc {
  padding-inline: 12px;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.p-article-detail__related-date {
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  margin-inline-end: auto;
}
/* 関連記事ナビゲーション (.c-slider-nav 共通クラス使用 + 余白だけページ側) */
.p-article-detail__related-nav {
  margin-block-start: 16px;
}
/* 旧 .p-article-detail__related-arrow / -dots 系は .c-slider-nav 共通へ統合 */
/* Splide ペジネーション (ドット) */
.p-article-detail__related-pagination {
  display: flex;
  align-items: center;
  gap: 10px;
  /* Splide デフォルトの position:absolute / bottom 等を打ち消す */
}
.p-article-detail__related-pagination .splide__pagination {
  position: static;
  display: flex;
  align-items: center;
  gap: 10px;
  width: auto;
  list-style: none;
  padding: 0;
  margin: 0;
  pointer-events: auto;
}
.p-article-detail__related-pagination li {
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 0;
}
.p-article-detail__related-pagination .splide__pagination__page {
  display: inline-block;
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: #d8d8d8;
  opacity: 1;
  cursor: pointer;
  transition: background-color var(--duration), width var(--duration), height var(--duration);
}
.p-article-detail__related-pagination .splide__pagination__page.is-active {
  background-color: var(--color-accent);
  width: 12px;
  height: 12px;
  transform: none;
}
/* ===========================================================
 * 一覧に戻るボタン
 * =========================================================== */
.p-article-detail__back {
  display: flex;
  justify-content: center;
  margin-block-start: 32px;
}
/* Figma準拠: 320×60 緑グラデ + 白枠、矢印は左端 absolute */
.p-article-detail__back-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  height: 60px;
  border-radius: 100px;
  background-image: linear-gradient(99deg, var(--color-secondary) 0%, var(--color-accent) 100%);
  border: 1px solid var(--color-white);
  color: var(--color-white);
  text-decoration: none;
  font-size: 16px;
  font-weight: var(--fw-medium);
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-article-detail__back-link:hover {
    opacity: 0.9;
  }
}
@media screen and (max-width: 767px) {
  .p-article-detail__back-link {
    width: 280px;
    height: 56px;
    font-size: 15px;
  }
}
/* 左端配置の左向き矢印（Figmaの arrow_warm_up を180°回転） */
.p-article-detail__back-arrow {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 24px;
  translate: 0 -50%;
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transform: rotate(180deg);
}
@media screen and (max-width: 767px) {
  .p-article-detail__back-arrow {
    inset-inline-start: 20px;
  }
}
.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 (max-width: 767px) {
  .p-card-list {
    gap: calc(32 * var(--to-rem));
  }
}
/* 共通スタイルは _p-article-detail.scss に統一されました */
/* ===========================================================
 * 事例一覧 (Cases archive) — Figma 4031:5507 準拠
 * - グレーボード(#f9f9f9 padding 30/40 radius 20)で内包
 * - カードは .c-card 共通 + 緑のカテゴリ文字
 * =========================================================== */
.p-cases {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-cases__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-cases__section {
    padding-block: 48px 56px;
  }
}
.p-cases__inner {
  max-width: calc(1180px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* グレーボード（グリッド+ページネーション内包） */
.p-cases__board {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 30px 40px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media screen and (max-width: 767px) {
  .p-cases__board {
    padding: 24px 16px;
    gap: 24px;
    border-radius: 16px;
  }
}
.p-cases__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 19px;
}
@media screen and (max-width: 767px) {
  .p-cases__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
/* .p-cases__card は .c-card 共通コンポーネントを使用 */
/* カードのカテゴリ表示（説明文の下、緑文字 12px Medium） */
.p-cases__card-cat {
  color: var(--color-accent);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  margin-block-start: 2px;
  line-height: 1.4;
}
/* 共通スタイルは _p-article-detail.scss に統一されました */
/* ===========================================================
 * アーカイブ一覧 共通スタイル
 *   .p-column (NCCコラム) / .p-topics (お知らせ) / .p-video-library (動画) で共通利用
 *   - グレーボード(タブ接続) + コンテンツ
 *   コラム/お知らせ: 3カラムグリッド + .c-card
 *   動画: 縦リスト (固有: _p-video-library.scss)
 * =========================================================== */
.p-column,
.p-topics,
.p-video-library {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-column__section,
.p-topics__section,
.p-video-library__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-column__section,
  .p-topics__section,
  .p-video-library__section {
    padding-block: 48px 56px;
  }
}
.p-column__inner,
.p-topics__inner,
.p-video-library__inner {
  max-width: calc(1180px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* タブ: ボード上端に接続される (Figma: タブ群の左寄せ + 角丸トップのみ) */
.p-column__filter,
.p-topics__filter,
.p-video-library__filter {
  justify-content: flex-start;
  margin: 0;
}
/* コンテンツ+ページネーションを内包するグレー背景ボード (Figma: padding 30/40, radius 20) */
.p-column__board,
.p-topics__board,
.p-video-library__board {
  background-color: var(--color-bg-light);
  border-radius: 0 20px 20px 20px;
  padding: 30px 40px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media screen and (max-width: 767px) {
  .p-column__board,
  .p-topics__board,
  .p-video-library__board {
    padding: 24px 16px;
    gap: 24px;
    border-radius: 0 16px 16px 16px;
  }
}
.p-column__grid,
.p-topics__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 19px;
}
@media screen and (max-width: 767px) {
  .p-column__grid,
  .p-topics__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
/* .c-card 共通コンポーネントへの上書き
   (Figma準拠: 折り目接続日付ピル + 半透明白タグ) */
.p-column__card .c-card__date,
.p-topics__card .c-card__date {
  inset-block-end: 0;
  inset-inline-start: 0;
  border-radius: 0 10px 0 0;
  padding: 6px 14px;
  font-size: 12px;
  font-family: "Futura", var(--base-font-family);
  background-color: var(--color-white);
  color: var(--color-accent);
}
.p-column__card .c-card__tag,
.p-topics__card .c-card__tag {
  inset-block-start: 14px;
  inset-inline-end: 13px;
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--color-text);
  font-size: 14px;
  padding: 2px 12px;
}
.p-company {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-company__inner {
  max-width: calc(980px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* Tabs: .c-anchor-nav 共通コンポーネント */
.p-company__tabs {
  padding-block: 46px 0;
}
@media screen and (max-width: 767px) {
  .p-company__tabs {
    padding-block: 28px 0;
  }
}
/* Sections — Figma実値: 隣接セクション間の余白は約 106px (≒ 53px×2) */
.p-company__section {
  padding-block: 53px;
  scroll-margin-top: calc(var(--header-height) + 20px);
  background-color: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-company__section {
    padding-block: 32px;
    padding-inline: 15px; /* SP: 両サイド15pxのセーフエリア */
  }
}
.p-company__section--policy {
  padding-block: 0px 53px;
}
@media screen and (max-width: 767px) {
  .p-company__section--policy {
    padding-block: 32px;
    padding-inline: 15px;
  }
}
/* セクション見出し下マージン (Figma: gap-42 between title and content) */
.p-company__section-head {
  display: flex;
  justify-content: center;
  margin-block-end: 42px;
}
@media screen and (max-width: 767px) {
  .p-company__section-head {
    margin-block-end: 24px;
  }
}
/* セクションタイトル: 18px グリーン + 105×4 グラデ下線 (Figma準拠) */
.p-company__section-title {
  position: relative;
  display: inline-block;
  padding-block-end: 12px;
  color: var(--color-accent);
  font-size: 18px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  text-align: center;
}
.p-company__section-title::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 50%;
  translate: -50% 0;
  width: 105px;
  height: 5px;
  background-color: var(--color-secondary);
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
@media screen and (max-width: 767px) {
  .p-company__section-title {
    font-size: 16px;
  }
}
/* ===========================================================
 * 企業方針・行動方針・事業部コンセプト
 * =========================================================== */
.p-company__policy-intro {
  max-width: 980px;
  margin-inline: auto;
  text-align: center;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-text);
  margin-block-end: 42px;
}
@media screen and (max-width: 767px) {
  .p-company__policy-intro {
    text-align: left;
    font-size: 13px;
    margin-block-end: 32px;
  }
}
.p-company__policy-block {
  margin-block-end: 42px;
  max-width: 980px;
  margin-inline: auto;
}
.p-company__policy-block:last-of-type {
  margin-block-end: 0;
}
.p-company__policy-h3 {
  text-align: center;
  font-size: 24px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  margin-block-end: 16px;
}
@media screen and (max-width: 767px) {
  .p-company__policy-h3 {
    font-size: 20px;
    margin-block-end: 12px;
  }
}
.p-company__policy-card {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 20px;
  text-align: center;
}
.p-company__policy-card + .p-company__policy-card {
  margin-block-start: 20px;
}
@media screen and (max-width: 767px) {
  .p-company__policy-card {
    padding: 20px 16px;
    border-radius: 16px;
  }
}
.p-company__policy-card--plain {
  background-color: transparent;
  padding: 0;
  text-align: left;
}
/* カード見出し: 単一テキスト 24px グラデ (Figma準拠) */
.p-company__policy-card-title {
  display: block;
  width: fit-content;
  margin: 0 0 12px;
  margin-inline: auto;
  font-size: 24px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  background: linear-gradient(99.2deg, #abcd03 0.2%, #00a040 99.8%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
@media screen and (max-width: 767px) {
  .p-company__policy-card-title {
    font-size: 20px;
  }
}
.p-company__policy-card-text {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.7;
}
@media screen and (max-width: 767px) {
  .p-company__policy-card-text {
    font-size: 13px;
  }
}
/* 行動方針 右下リンク "クレド一覧 →" */
.p-company__policy-actions {
  display: flex;
  justify-content: flex-end;
  margin-block-start: 16px;
}
.p-company__policy-link {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--color-accent);
  font-family: inherit;
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  letter-spacing: 0.04em;
}
.p-company__policy-link::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
/* ビデオプレースホルダー (Figma: 580×387.15 中央配置) */
.p-company__video {
  display: flex;
  justify-content: center;
  margin-block-start: 24px;
}
.p-company__video-placeholder {
  width: 580px;
  aspect-ratio: 580/387.15;
  background-color: #d7d7d7;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #888;
}
@media screen and (max-width: 767px) {
  .p-company__video-placeholder {
    width: 100%;
  }
}
/* ===========================================================
 * 会社概要 (Figma準拠: 220px×220bg + 1fr×#f9f9f9bg, gap 2px / 1px)
 * =========================================================== */
.p-company__outline {
  max-width: 980px;
  margin: 0 auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.p-company__outline-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2px;
}
@media screen and (max-width: 767px) {
  .p-company__outline-row {
    grid-template-columns: 1fr;
    gap: 1px;
  }
}
.p-company__outline-row dt {
  padding: 16px 12px;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-company__outline-row dt {
    padding: 10px 14px;
    font-size: 14px;
  }
}
.p-company__outline-row dd {
  padding: 16px;
  background-color: var(--color-bg-light);
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.5;
  margin: 0;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-company__outline-row dd {
    padding: 12px 14px;
    font-size: 14px;
  }
}
/* ===========================================================
 * 事業所一覧 (Figma準拠: bg #f9f9f9 + 1px #c8c8c8 border, padding 6px,
 *                       image 400×267, body flex)
 * =========================================================== */
.p-company__offices {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 980px;
  margin-inline: auto;
}
.p-company__office {
  display: flex;
  gap: 17px;
  background-color: var(--color-bg-light);
  border: 1px solid #c8c8c8;
  border-radius: 20px;
  padding: 6px;
  align-items: stretch;
}
@media screen and (max-width: 767px) {
  .p-company__office {
    flex-direction: column;
    padding: 6px;
  }
}
.p-company__office-map {
  width: 400px;
  height: 267px;
  border-radius: 20px;
  overflow: hidden;
  flex-shrink: 0;
  background-color: #eaeef1;
}
@media screen and (max-width: 767px) {
  .p-company__office-map {
    width: 100%;
    height: 200px;
  }
}
.p-company__office-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.p-company__office-body {
  flex: 1;
  min-width: 0;
  padding: 20px 12px 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}
.p-company__office-name {
  width: 100%;
  margin: 0;
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
  text-align: left;
}
@media screen and (max-width: 767px) {
  .p-company__office-name {
    font-size: 18px;
  }
}
.p-company__office-address,
.p-company__office-contact {
  width: 100%;
  margin: 0;
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .p-company__office-address,
  .p-company__office-contact {
    font-size: 14px;
  }
}
.p-company__office-contact {
  margin-block-start: 4px;
}
.p-company__office-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-accent);
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-decoration: none;
}
.p-company__office-link::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
/* ===========================================================
 * 関連会社 (Figma準拠: offices と同じカード形状)
 * =========================================================== */
.p-company__group-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 980px;
  margin-inline: auto;
}
.p-company__group-item {
  display: flex;
  gap: 17px;
  background-color: var(--color-bg-light);
  border: 1px solid #c8c8c8;
  border-radius: 20px;
  padding: 6px;
  align-items: stretch;
}
@media screen and (max-width: 767px) {
  .p-company__group-item {
    flex-direction: column;
    padding: 6px;
  }
}
.p-company__group-image {
  width: 400px;
  height: 267px;
  flex-shrink: 0;
  border-radius: 20px;
  overflow: hidden;
  background-color: #eaeef1;
}
@media screen and (max-width: 767px) {
  .p-company__group-image {
    width: 100%;
    height: 200px;
  }
}
.p-company__group-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-company__group-body {
  flex: 1;
  min-width: 0;
  padding: 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.p-company__group-name {
  width: 100%;
  margin: 0;
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
  text-align: left;
}
@media screen and (max-width: 767px) {
  .p-company__group-name {
    font-size: 18px;
  }
}
.p-company__group-address,
.p-company__group-contact {
  width: 100%;
  margin: 0;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.6;
  text-align: left;
}
/* 関連会社1番目: 詳細表示 (Figma準拠: 伊那店/諏訪店 サブストア + リンク2つ) */
.p-company__group-stores {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-company__group-store {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.p-company__group-store-name {
  margin: 0;
  padding-block-end: 2px;
  border-block-end: 1px solid var(--color-accent);
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
}
.p-company__group-store-info {
  margin: 0;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.6;
  text-align: left;
}
.p-company__group-links {
  width: 100%;
  display: flex;
  gap: 32px;
  margin-block-start: 8px;
}
.p-company__group-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-accent);
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-decoration: none;
}
.p-company__group-link::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
/* ===========================================================
 * 沿革 (Figma準拠: 縦線+丸ドット+左ラベル右テキストのタイムライン)
 * =========================================================== */
.p-company__history {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 980px;
  margin-inline: auto;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
  /* 左の縦線 (gradient secondary→accent) */
}
.p-company__history::before {
  content: "";
  position: absolute;
  left: 9px;
  top: 10px;
  width: 2px;
  height: calc(100% - 20px);
  background: linear-gradient(to bottom, var(--color-secondary) 0%, var(--color-accent) 100%);
}
.p-company__history-item {
  display: flex;
  align-items: center;
  gap: 48px;
  position: relative;
  /* ドット枠: 20×20 透明エリア (デフォルト: 小ドット 12px) */
}
@media screen and (max-width: 767px) {
  .p-company__history-item {
    gap: 20px;
  }
}
.p-company__history-item::before {
  content: "";
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  background-image: radial-gradient(circle, #abcd03 0 6px, transparent 6.5px);
  z-index: 1;
}
/* 強調 (重要な出来事): 大ドット 16px */
.p-company__history-item--highlight::before {
  background-image: radial-gradient(circle, var(--color-accent) 0 8px, transparent 8.5px) !important;
}
.p-company__history-content {
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 1;
  min-width: 0;
}
.p-company__history-year {
  flex-shrink: 0;
  color: var(--color-accent);
  font-size: 14px;
  font-weight: var(--fw-medium);
  font-family: "Futura", var(--base-font-family);
  letter-spacing: 0.04em;
  min-width: 70px;
}
@media screen and (max-width: 767px) {
  .p-company__history-year {
    font-size: 12px;
    min-width: 48px;
  }
}
.p-company__history-text {
  flex: 1;
  color: var(--color-text);
  font-size: 18px;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-company__history-text {
    font-size: 14px;
    line-height: 1.6;
  }
}
.p-contact-complete {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-contact-complete__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-contact-complete__section {
    padding-block: 48px 56px;
  }
}
.p-contact-complete__inner {
  max-width: calc(820px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
.p-contact-complete__title {
  color: var(--color-text);
  font-size: 22px;
  font-weight: var(--fw-medium);
  text-align: center;
  margin-block-end: 16px;
}
@media screen and (max-width: 767px) {
  .p-contact-complete__title {
    font-size: 18px;
  }
}
.p-contact-complete__text {
  color: var(--color-text);
  font-size: 13px;
  line-height: 1.9;
  text-align: center;
  margin-block-end: 24px;
}
.p-contact-complete__home {
  display: flex;
  justify-content: center;
  margin-block-end: 40px;
}
.p-contact-complete__home-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 240px;
  padding: 14px 28px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  border-radius: 100px;
}
.p-contact-complete__notice {
  background-color: var(--color-bg-green);
  padding: 28px 32px;
  border-radius: 8px;
}
@media screen and (max-width: 767px) {
  .p-contact-complete__notice {
    padding: 20px;
  }
}
.p-contact-complete__notice-title {
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-align: center;
  margin-block-end: 16px;
}
.p-contact-complete__notice-subtitle {
  color: var(--color-text);
  font-size: 13px;
  font-weight: var(--fw-medium);
  margin-block: 14px 6px;
}
.p-contact-complete__notice-desc {
  color: var(--color-text);
  font-size: 12px;
  line-height: 1.7;
}
.p-contact-confirm {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-contact-confirm__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-contact-confirm__section {
    padding-block: 48px 56px;
  }
}
.p-contact-confirm__inner {
  max-width: calc(820px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
.p-contact-confirm__list {
  margin-block-end: 16px;
}
.p-contact-confirm__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 16px;
  padding-block: 10px;
  border-block-end: 1px solid #eee;
}
@media screen and (max-width: 767px) {
  .p-contact-confirm__row {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}
.p-contact-confirm__row dt {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text);
  font-size: 14px;
  font-weight: var(--fw-medium);
}
.p-contact-confirm__row dd {
  color: var(--color-text);
  font-size: 14px;
  margin: 0;
}
.p-contact-confirm__required {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: 10px;
  border-radius: 2px;
}
.p-contact-confirm__note {
  margin-block-start: 16px;
  color: var(--color-text);
  font-size: 12px;
  text-align: center;
  line-height: 1.7;
}
.p-contact-confirm__note a {
  color: var(--color-accent);
  font-weight: var(--fw-medium);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-contact-confirm__note a:hover {
    opacity: 0.7;
  }
}
.p-contact-confirm__agree {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-block-start: 6px;
  color: var(--color-text);
  font-size: 13px;
}
.p-contact-confirm__agree input[type=checkbox] {
  width: 16px;
  height: 16px;
  accent-color: var(--color-accent);
}
.p-contact-confirm__buttons {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-block-start: 20px;
}
@media screen and (max-width: 767px) {
  .p-contact-confirm__buttons {
    flex-direction: column;
    align-items: center;
  }
}
.p-contact-confirm__back,
.p-contact-confirm__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  border-radius: 100px;
}
.p-contact-confirm__back {
  position: relative;
  background-color: var(--color-bg-light);
  color: var(--color-text);
  border: 1px solid #ddd;
  padding-inline-start: 48px;
  /* 左矢印: arrow_warm_up 180度回転、ボタン左端に絶対配置 */
}
.p-contact-confirm__back::before {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 20px;
  translate: 0 -50%;
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transform: rotate(180deg);
}
.p-contact-confirm__submit {
  background-color: var(--color-accent);
  color: var(--color-white);
}
.p-contact {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-contact__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-contact__section {
    padding-block: 48px 56px;
  }
}
.p-contact__inner {
  max-width: calc(980px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* フォーム全体: ブロック構造、各要素に margin で間隔指定 */
.p-contact__form {
  display: flex;
  flex-direction: column;
}
/* 各行: 220px ラベル + 1fr 入力 (gap 2px), 行間 24px (Figma準拠) */
.p-contact__row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2px;
  align-items: stretch;
}
.p-contact__row + .p-contact__row {
  margin-block-start: 24px;
}
@media screen and (max-width: 767px) {
  .p-contact__row {
    grid-template-columns: 1fr;
    gap: 1px;
  }
  .p-contact__row + .p-contact__row {
    margin-block-start: 16px;
  }
}
.p-contact__row--textarea {
  align-items: stretch;
}
/* ラベル: 緑bg + 白文字 + 必須タグ右寄せ (Figma準拠) */
.p-contact__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 12px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-contact__label {
    padding: 12px;
    font-size: 14px;
  }
}
.p-contact__row--textarea .p-contact__label {
  align-items: flex-start;
  padding-block-start: 16px;
}
/* 必須ラベル: 白bg + 緑文字 12px (Figma準拠) */
.p-contact__required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 4px;
  background-color: var(--color-white);
  color: var(--color-accent);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
}
.p-contact__field {
  display: flex;
  background-color: var(--color-bg-light);
  align-items: stretch;
  /* CF7 wrap対応 */
}
.p-contact__field .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.p-contact__field input[type=text],
.p-contact__field input[type=email],
.p-contact__field input[type=tel],
.p-contact__field input[type=number],
.p-contact__field input[type=url],
.p-contact__field select,
.p-contact__field textarea {
  width: 100%;
  padding: 16px;
  background-color: transparent;
  border: none;
  color: var(--color-text);
  font-size: 16px;
  font-family: inherit;
}
.p-contact__field input[type=text]:focus,
.p-contact__field input[type=email]:focus,
.p-contact__field input[type=tel]:focus,
.p-contact__field input[type=number]:focus,
.p-contact__field input[type=url]:focus,
.p-contact__field select:focus,
.p-contact__field textarea:focus {
  outline: none;
  box-shadow: inset 0 0 0 1px var(--color-accent);
}
.p-contact__field input[type=text]::placeholder,
.p-contact__field input[type=email]::placeholder,
.p-contact__field input[type=tel]::placeholder,
.p-contact__field input[type=number]::placeholder,
.p-contact__field input[type=url]::placeholder,
.p-contact__field select::placeholder,
.p-contact__field textarea::placeholder {
  color: #c9c9c9;
}
.p-contact__field textarea {
  resize: vertical;
  min-height: 200px;
}
.p-contact__field select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--color-accent) 50%), linear-gradient(-45deg, transparent 50%, var(--color-accent) 50%);
  background-size: 6px 6px;
  background-position: calc(100% - 16px) center, calc(100% - 10px) center;
  background-repeat: no-repeat;
  padding-inline-end: 32px;
}
/* 都道府県だけ短い幅 (320px Figma準拠) */
.p-contact__row:has(select) .p-contact__field {
  max-width: 320px;
}
/* ============ Submit area: form rows との間 48px (Figma準拠) ============ */
.p-contact__note {
  margin: 0;
  margin-block-start: 48px;
  color: var(--color-text);
  font-size: 14px;
  text-align: center;
  line-height: 1.7;
}
@media screen and (max-width: 767px) {
  .p-contact__note {
    margin-block-start: 32px;
    font-size: 13px;
  }
}
.p-contact__note a {
  color: var(--color-accent);
  font-weight: var(--fw-bold);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-contact__note a:hover {
    opacity: 0.7;
  }
}
.p-contact__note a:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: 2px;
}
.p-contact__agree {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-block-start: 20px;
  color: var(--color-text);
  font-size: 14px;
  /* CF7 acceptance ラッパー対応 */
}
.p-contact__agree input[type=checkbox] {
  width: 16px;
  height: 16px;
  accent-color: var(--color-accent);
  border: 1px solid var(--color-accent);
}
.p-contact__agree .wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  cursor: pointer;
}
.p-contact__agree .wpcf7-list-item-label {
  color: var(--color-text);
  font-size: 14px;
}
/* CF7 のレスポンス領域 */
.wpcf7-response-output {
  margin-block-start: 24px !important;
  padding: 14px 18px !important;
  border-radius: 8px;
  font-size: 14px;
}
.wpcf7-not-valid-tip {
  display: block;
  margin-block-start: 4px;
  color: #d33;
  font-size: 12px;
}
/* submit ラッパー: 中央 + 上に20pxマージン */
.p-contact__submit {
  display: flex;
  justify-content: center;
  margin-block-start: 20px;
}
/* submit ボタン: 320×60 rounded-100px pill グラデ + Figma arrow_warm_up 右向き */
.p-contact__submit-btn {
  position: relative;
  width: 320px;
  height: 60px;
  border: 1px solid var(--color-white);
  border-radius: 100px;
  cursor: pointer;
  font-family: inherit;
  font-size: 16px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  text-align: center;
  letter-spacing: 0.04em;
  padding-inline-end: 36px;
  background-image: linear-gradient(99.2deg, #abcd03 0.2%, #00a040 99.8%);
}
.p-contact__submit-btn.wpcf7-submit {
  appearance: none;
}
.p-contact__submit-btn:hover {
  opacity: 0.9;
}
/* submit のラッパーに右矢印を絶対配置（CF7のinputには疑似要素が効かないため） */
.p-contact__submit {
  position: relative;
  /* CF7 spinner はボタン外（右側）に絶対配置して中央寄せに影響させない */
}
.p-contact__submit .wpcf7-spinner {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: calc(50% + 160px + 12px);
  transform: translateY(-50%);
}
.p-contact__submit::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  /* ボタン中央は wrapper 50%。ボタン右端は 50% + 160。矢印は右端から 24px 内側 */
  inset-inline-start: calc(50% + 160px - 24px - 18px);
  transform: translateY(-50%);
  color: var(--color-white);
  pointer-events: none;
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.p-top-about + .p-cta {
  padding-block-start: 89px;
}
@media screen and (max-width: 767px) {
  .p-top-about + .p-cta {
    padding-block-start: 56px;
  }
}
.p-cta__contact {
  display: block;
  border-radius: 20px;
  padding: 64px 64px;
  margin-inline: auto;
  max-width: min(1180px, 100% - var(--padding-inner) * 2);
  margin-block-end: 52px;
  background-image: linear-gradient(99.45deg, rgb(0, 160, 64) 0.21%, rgb(171, 205, 3) 99.79%);
  text-decoration: none;
  color: inherit;
  /* ホバー: ボタンが白bg+accent text/borderに変化 (Figma node 4031:4400 準拠) */
}
@media (any-hover: hover) {
  .p-cta__contact:hover .p-cta__contact-btn {
    background-color: var(--color-white);
    border-color: var(--color-accent);
    color: var(--color-accent);
  }
}
@media screen and (max-width: 767px) {
  .p-cta__contact {
    padding: 28px 20px;
    border-radius: 16px;
    margin-block-end: 24px;
  }
}
.p-cta__contact-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
@media screen and (max-width: 767px) {
  .p-cta__contact-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}
.p-cta__contact-body {
  flex: 1;
  min-width: 0;
}
.p-cta__contact-icon {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  color: var(--color-white);
}
.p-cta__contact-title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 24px;
  font-weight: var(--fw-medium);
  margin-block-end: 6px;
  color: var(--color-white);
  line-height: 1.4;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .p-cta__contact-title {
    font-size: 20px;
    gap: 8px;
  }
}
.p-cta__contact-desc {
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-white);
}
/* .p-cta__contact-btn は .c-btn .c-btn--ghost で対応（共通styleを継承）
   配置側の差分のみここで定義。Figmaでは bg 0.1 (banner系よりさらに透明) */
.p-cta__contact-btn {
  flex-shrink: 0;
  background-color: rgba(255, 255, 255, 0.1);
  /* c-btn の opacity/transform に加えて色変化も滑らかに */
  transition: opacity var(--duration), transform var(--duration), background-color var(--duration), border-color var(--duration), color var(--duration);
}
.p-cta__banner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-block-start: 0;
}
.p-cta__banner:has(> :only-child) {
  grid-template-columns: 1fr;
}
@media screen and (max-width: 767px) {
  .p-cta__banner {
    grid-template-columns: 1fr;
  }
}
.p-cta__banner-item {
  padding: 52px 20px;
  display: flex;
  justify-content: center;
  text-decoration: none;
  color: inherit;
  /* ホバー: ボタンが白bg+accent text/borderに変化 (Figma node 4031:4400 準拠) */
}
@media (any-hover: hover) {
  .p-cta__banner-item:hover .p-cta__banner-btn {
    background-color: var(--color-white);
    border-color: var(--color-accent);
    color: var(--color-accent);
  }
}
@media screen and (max-width: 767px) {
  .p-cta__banner-item {
    padding: 40px 24px;
  }
}
.p-cta__banner-item--download {
  background-color: var(--color-secondary);
  border-top-left-radius: 20px;
}
.p-cta__banner-item--download:only-child {
  border-top-right-radius: 20px;
}
@media screen and (max-width: 767px) {
  .p-cta__banner-item--download {
    border-radius: 0;
  }
}
.p-cta__banner-item--newsletter {
  background-color: var(--color-accent);
  border-top-right-radius: 20px;
  border-left: 1px solid var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-cta__banner-item--newsletter {
    border-radius: 0;
    border-left: none;
  }
}
.p-cta__banner-inner {
  width: 100%;
  max-width: 440px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.p-cta__banner-title {
  color: var(--color-white);
  font-size: 24px;
  font-weight: var(--fw-bold);
  line-height: 1.5;
  margin-block-end: 14px;
}
@media screen and (max-width: 767px) {
  .p-cta__banner-title {
    font-size: 20px;
  }
}
.p-cta__banner-desc {
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  line-height: 1.8;
  margin-block-end: 24px;
}
/* .p-cta__banner-btn は .c-btn .c-btn--ghost を使用 */
.p-cta__banner-btn {
  /* c-btn の opacity/transform に加えて色変化も滑らかに */
  transition: opacity var(--duration), transform var(--duration), background-color var(--duration), border-color var(--duration), color var(--duration);
}
.p-dev-notice {
  padding-block: calc(24 * var(--to-rem));
  background-color: #fff3cd;
}
@media screen and (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .p-dev-notice__item code {
    font-size: calc(14 * var(--to-rem));
  }
}
/* ===========================================================
 * 医療機器別アーカイブ (taxonomy-product_device)
 * Figma 4031:5659 準拠 — セミナー一覧と同型の3カラムカードグリッド
 * カード基本スタイルは .c-card 共通コンポーネント参照
 * =========================================================== */
.p-device {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-device__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-device__section {
    padding-block: 48px 56px;
  }
}
.p-device__inner {
  max-width: calc(1180px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* グレー背景ボード (Figma: 1180×, padding 30/40, radius 20) */
.p-device__board {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 30px 40px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media screen and (max-width: 767px) {
  .p-device__board {
    padding: 24px 16px;
    gap: 24px;
    border-radius: 16px;
  }
}
.p-device__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 19px;
}
@media screen and (max-width: 767px) {
  .p-device__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
/* .p-device__card は .c-card 共通コンポーネントを使用
   セミナー(p-seminar__card)と同じ装飾を踏襲 */
.p-device__card {
  /* 日付ピル: 画像左下、内側角のみR10 */
  /* カテゴリバッジ: 半透明白地、右上 */
}
.p-device__card .c-card__date {
  inset-block-end: 0;
  inset-inline-start: 0;
  border-radius: 0 10px 0 0;
  padding: 6px 14px;
  font-size: 14px;
  font-family: "Futura", var(--base-font-family);
}
.p-device__card .c-card__tag {
  inset-block-start: 14px;
  inset-inline-end: 14px;
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--color-text);
  padding: 4px 12px;
  font-size: 13px;
  border-radius: 100px;
}
.p-device__empty {
  text-align: center;
  color: var(--color-text);
  font-size: 14px;
  padding-block: 40px;
}
.p-error {
  padding-block: calc(60 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-error {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-error__header {
  margin-block-end: calc(24 * var(--to-rem));
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-error__header {
    margin-block-end: calc(32 * 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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .p-error__content {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-error__content p + p {
  margin-block-start: calc(24 * var(--to-rem));
}
.p-faq {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-faq__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-faq__section {
    padding-block: 48px 56px;
  }
}
.p-faq__inner {
  max-width: calc(980px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* タブナビは .c-anchor-nav 共通コンポーネントを使用 */
/* カテゴリセクション */
.p-faq__category {
  margin-block-end: 56px;
  scroll-margin-top: calc(var(--header-height) + 20px);
}
@media screen and (max-width: 767px) {
  .p-faq__category {
    margin-block-end: 40px;
  }
}
.p-faq__category-title {
  color: var(--color-text);
  font-size: 22px;
  font-weight: var(--fw-medium);
  text-align: center;
  letter-spacing: 0.04em;
  margin-block-end: 28px;
}
@media screen and (max-width: 767px) {
  .p-faq__category-title {
    font-size: 18px;
    margin-block-end: 16px;
  }
}
/* FAQ アイテム一覧 */
.p-faq__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media screen and (max-width: 767px) {
  .p-faq__list {
    gap: 12px;
  }
}
/* details 要素はborderなし、内側で線を引く */
.p-faq__item details {
  background-color: transparent;
}
/* Q. 行: 下線（閉じている時はaccent / 開いている時は secondary） */
.p-faq__item summary {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 56px 14px 8px;
  cursor: pointer;
  list-style: none;
  border-block-end: 1px solid var(--color-accent);
  transition: border-color var(--duration);
}
.p-faq__item summary::-webkit-details-marker {
  display: none;
}
.p-faq__item details[open] summary {
  border-block-end-color: var(--color-secondary);
}
.p-faq__q-label {
  color: var(--color-accent);
  font-size: 18px;
  font-weight: var(--fw-medium);
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .p-faq__q-label {
    font-size: 16px;
  }
}
.p-faq__q-text {
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-faq__q-text {
    font-size: 14px;
  }
}
/* 緑の四角 + 白いシェブロン (Figma準拠: 36×36 角丸なし) */
.p-faq__q-icon {
  position: absolute;
  inset-inline-end: 0;
  inset-block-start: 50%;
  translate: 0 -50%;
  width: 36px;
  height: 36px;
  background-color: var(--color-accent);
  transition: background-color var(--duration);
}
.p-faq__q-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid var(--color-white);
  border-bottom: 1.5px solid var(--color-white);
  transform: translateY(-2px) rotate(45deg);
  transform-origin: center;
  transition: transform var(--duration);
}
.p-faq__item details[open] .p-faq__q-icon::before {
  transform: translateY(2px) rotate(-135deg);
}
/* A. 行 */
.p-faq__a {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 8px 8px;
}
@media screen and (max-width: 767px) {
  .p-faq__a {
    padding: 12px 8px 8px;
  }
}
.p-faq__a-label {
  color: var(--color-accent);
  font-size: 18px;
  font-weight: var(--fw-medium);
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .p-faq__a-label {
    font-size: 16px;
  }
}
.p-faq__a-text {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-faq__a-text {
    font-size: 13px;
  }
}
.p-faq__empty {
  text-align: center;
  color: var(--color-text);
  padding-block: 40px;
}
.p-footer {
  background-color: var(--color-bg-light);
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  padding-block: 50px 68px;
}
@media screen and (max-width: 767px) {
  .p-footer {
    padding-block: 40px 24px;
  }
}
.p-footer__inner {
  max-width: min(1180px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-footer__top {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: 40px;
  margin-block-end: 58px;
}
@media screen and (max-width: 767px) {
  .p-footer__top {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-block-end: 28px;
  }
}
.p-footer__logo {
  display: block;
  margin-block-end: 20px;
  text-decoration: none;
  width: 142px;
}
.p-footer__logo img {
  width: auto;
  object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-footer__logo img {
    width: 142px;
  }
}
.p-footer__info {
  color: var(--color-text);
}
.p-footer__company-name {
  font-size: 16px;
  font-weight: var(--fw-bold);
  margin-block-end: 12px;
}
.p-footer__address,
.p-footer__tel {
  font-size: 13px;
  line-height: 1.8;
  color: var(--color-text);
}
.p-footer__login {
  display: flex;
  justify-content: flex-end;
}
@media screen and (max-width: 767px) {
  .p-footer__login {
    justify-content: flex-start;
  }
}
.p-footer__login-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 320px;
  height: 60px;
  padding: 12px 24px;
  background-color: var(--color-text);
  border: 1px solid var(--color-text);
  border-radius: 100px;
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--fw-regular);
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: opacity var(--duration), transform var(--duration);
}
@media (any-hover: hover) {
  .p-footer__login-btn:hover {
    opacity: 0.9;
    transform: translateY(-1px);
  }
}
@media screen and (max-width: 767px) {
  .p-footer__login-btn {
    width: 100%;
    max-width: 320px;
    height: 52px;
    font-size: 14px;
  }
}
.p-footer__login-arrow {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.p-footer__nav {
  margin-block-end: 40px;
}
@media screen and (max-width: 767px) {
  .p-footer__nav {
    margin-block-end: 24px;
  }
}
.p-footer__nav-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 40px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-footer__nav-list {
    gap: 8px 20px;
  }
}
.p-footer__nav-item a {
  display: inline-block;
  color: var(--color-accent);
  font-size: 14px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: color var(--duration);
}
@media (any-hover: hover) {
  .p-footer__nav-item a:hover {
    color: var(--color-primary);
  }
}
@media screen and (max-width: 767px) {
  .p-footer__nav-item a {
    font-size: 13px;
  }
}
.p-footer__bottom {
  display: flex;
  justify-content: flex-end;
}
@media screen and (max-width: 767px) {
  .p-footer__bottom {
    justify-content: center;
  }
}
.p-footer__copyright {
  color: var(--color-accent);
  font-size: 12px;
  font-family: "Futura", var(--base-font-family);
  letter-spacing: 0.05em;
}
.p-form {
  --_form-color-text: var(--color-text);
  --_form-color-bg: var(--color-white);
  --_form-color-badge-text: var(--color-white);
  --_form-color-badge-bg: var(--color-orange);
  --_form-color-accent: var(--color-accent);
  --_form-color-border: var(--color-border);
  --_form-color-primary: var(--color-primary);
  max-width: calc(800 * var(--to-rem));
  margin-inline: auto;
}
.p-form > * {
  margin-block-start: calc(40 * var(--to-rem));
}
.p-form > *:nth-last-child(2) {
  margin-block-start: calc(20 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-form > * {
    margin-block-start: calc(48 * var(--to-rem));
  }
  .p-form > *:nth-last-child(2) {
    margin-block-start: calc(24 * var(--to-rem));
  }
}
.p-form__item {
  display: grid;
  gap: calc(8 * var(--to-rem));
}
.p-form__label {
  display: block;
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
}
.p-form__label--required {
  position: relative;
  padding-inline-end: calc(50 * var(--to-rem));
}
.p-form__label--required::after {
  content: "必須";
  position: absolute;
  top: 50%;
  right: 0;
  padding-block: calc(8 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--_form-color-badge-bg);
  color: var(--_form-color-badge-text);
  font-size: calc(12 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1;
  translate: 0 -50%;
}
.p-form__input,
.p-form__select,
.p-form__textarea {
  width: 100%;
  padding: calc(14 * var(--to-rem)) calc(16 * var(--to-rem));
  border: 1px solid var(--_form-color-border);
  border-radius: 8px;
  background-color: var(--_form-color-bg);
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  line-height: 1.5;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.p-form__input::placeholder,
.p-form__select::placeholder,
.p-form__textarea::placeholder {
  color: oklch(from var(--_form-color-text) l c h/50%);
}
.p-form__input:focus,
.p-form__select:focus,
.p-form__textarea:focus {
  border-color: var(--_form-color-accent);
  box-shadow: 0 0 0 3px oklch(from var(--_form-color-accent) l c h/10%);
  outline: none;
}
.p-form__input:hover:not(:focus),
.p-form__select:hover:not(:focus),
.p-form__textarea:hover:not(:focus) {
  border-color: var(--_form-color-accent);
  opacity: 0.7;
}
.p-form__input.is-error,
.p-form__select.is-error,
.p-form__textarea.is-error {
  border-color: var(--_form-color-badge-bg);
}
@media screen and (max-width: 767px) {
  .p-form__input,
  .p-form__select,
  .p-form__textarea {
    padding: calc(16 * var(--to-rem)) calc(20 * var(--to-rem));
  }
}
.p-form__select {
  position: relative;
  padding-inline-end: calc(48 * var(--to-rem));
  cursor: pointer;
  appearance: none;
}
.p-form__select-wrap {
  position: relative;
}
.p-form__select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(16 * var(--to-rem));
  clip-path: var(--clip-triangle-bottom);
  width: calc(12 * var(--to-rem));
  height: calc(8 * var(--to-rem));
  border: none;
  background-color: var(--_form-color-primary);
  pointer-events: none;
  translate: 0 -50%;
}
.p-form__textarea {
  min-height: calc(160 * var(--to-rem));
}
.p-form__radio-group {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-form__radio-group {
    flex-flow: row wrap;
    gap: calc(32 * var(--to-rem)) calc(40 * var(--to-rem));
  }
}
.p-form__radio {
  display: flex;
  flex-wrap: wrap;
  row-gap: calc(8 * var(--to-rem));
  align-items: center;
  cursor: pointer;
}
.p-form__radio input[type=radio] {
  position: relative;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  margin: 0;
  margin-inline-end: calc(16 * var(--to-rem));
  border: 2px solid var(--_form-color-border);
  border-radius: 50%;
  cursor: pointer;
  appearance: none;
  transition: border-color 0.2s ease;
}
.p-form__radio input[type=radio]:checked {
  border-color: var(--_form-color-accent);
  background-color: var(--_form-color-accent);
}
.p-form__radio input[type=radio]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(8 * var(--to-rem));
  height: calc(8 * var(--to-rem));
  border-radius: 50%;
  background-color: var(--_form-color-bg);
  translate: -50% -50%;
}
.p-form__radio input[type=radio]:hover:not(:checked) {
  border-color: var(--_form-color-accent);
  opacity: 0.5;
}
.p-form__radio input[type=radio]:focus {
  box-shadow: 0 0 0 3px oklch(from var(--_form-color-accent) l c h/10%);
  outline: none;
}
.p-form__radio-text {
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  user-select: none;
}
.p-form__checkbox {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.p-form__checkbox input[type=checkbox] {
  position: relative;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  margin: 0;
  margin-inline-end: calc(8 * var(--to-rem));
  border: 2px solid var(--_form-color-border);
  border-radius: 4px;
  cursor: pointer;
  appearance: none;
  transition: border-color 0.2s ease;
}
.p-form__checkbox input[type=checkbox]:checked {
  border-color: var(--_form-color-accent);
  background-color: var(--_form-color-accent);
}
.p-form__checkbox input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: calc(2 * var(--to-rem));
  left: calc(5 * var(--to-rem));
  width: calc(6 * var(--to-rem));
  height: calc(10 * var(--to-rem));
  border: 2px solid var(--_form-color-bg);
  border-top: none;
  border-left: none;
  rotate: 45deg;
}
.p-form__checkbox input[type=checkbox]:hover:not(:checked) {
  border-color: var(--_form-color-accent);
  opacity: 0.5;
}
.p-form__checkbox input[type=checkbox]:focus {
  box-shadow: 0 0 0 3px oklch(from var(--_form-color-accent) l c h/10%);
  outline: none;
}
.p-form__checkbox-text {
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  user-select: none;
}
.p-form__link {
  color: var(--_form-color-accent);
  text-decoration: underline;
  transition: opacity 0.2s ease;
}
@media (any-hover: hover) {
  .p-form__link:hover {
    opacity: 0.8;
  }
}
.p-form__button-wrap {
  text-align: center;
}
.p-form__error {
  display: block;
  color: var(--_form-color-badge-bg);
  font-size: calc(14 * var(--to-rem));
}
.p-form__success {
  padding: calc(24 * var(--to-rem));
  border: 1px solid var(--_form-color-accent);
  border-radius: 8px;
  background-color: rgba(64, 143, 149, 0.1);
  color: var(--_form-color-accent);
  font-size: calc(16 * var(--to-rem));
  text-align: center;
}
.p-form__radio .wpcf7-list-item-label,
.p-form__radio .wpcf7-li label {
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  line-height: 1.5;
  user-select: none;
}
.p-form__checkbox .wpcf7-form-control-wrap,
.p-form__checkbox .wpcf7-form-control {
  display: flex;
  align-items: center;
}
.p-form__radio .wpcf7-list-item label {
  display: flex;
  align-items: center;
}
.p-form__item .wpcf7-list-item {
  display: flex;
  align-items: center;
}
.p-header {
  position: sticky;
  top: 0;
  z-index: var(--z-index-header);
  background-color: rgba(255, 255, 255, 0.6);
  border-bottom: 1px solid var(--color-white);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.p-header__inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 20px;
  padding-inline-start: 128px;
  min-height: 100px;
  /* 900-1199px: PC維持しつつ左paddingを縮める */
  /* 899px以下: SP表示（ハンバーガー） */
}
@media screen and (max-width: 1199px) and (min-width: 900px) {
  .p-header__inner {
    padding-inline-start: 24px;
    gap: 12px;
  }
}
@media screen and (max-width: 899px) {
  .p-header__inner {
    display: flex;
    justify-content: flex-start;
    min-height: 64px;
    padding-inline: 16px;
  }
}
.p-header__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
  position: relative;
  z-index: calc(var(--z-index-header) + 10);
}
.p-header__logo img {
  width: auto;
  height: 39px;
  object-fit: contain;
}
@media screen and (max-width: 899px) {
  .p-header__logo img {
    height: 32px;
  }
}
.p-header__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 9px;
  padding-block: 18px 4px;
}
@media screen and (max-width: 899px) {
  .p-header__right {
    display: none;
  }
}
.p-header__utility {
  display: flex;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-header__utility-link {
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 100px;
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--fw-regular);
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-header__utility-link:hover {
    opacity: 0.85;
  }
}
.p-header__utility-link--download {
  background-color: var(--color-secondary);
}
.p-header__utility-link--newsletter {
  background-color: var(--color-accent);
}
.p-header__utility-link--login {
  background-color: var(--color-primary);
}
.p-header__nav {
  display: block;
}
.p-header__nav-list {
  display: flex;
  align-items: center;
  gap: 32px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 1339px) {
  .p-header__nav-list {
    gap: 20px;
  }
}
@media screen and (max-width: 1199px) {
  .p-header__nav-list {
    gap: 14px;
  }
}
.p-header__nav-item {
  position: relative;
}
.p-header__nav-item > a {
  display: flex;
  align-items: center;
  padding-block: 8px;
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--duration);
}
@media screen and (max-width: 1339px) {
  .p-header__nav-item > a {
    font-size: 14px;
  }
}
@media screen and (max-width: 1199px) {
  .p-header__nav-item > a {
    font-size: 13px;
  }
}
@media (any-hover: hover) {
  .p-header__nav-item > a:hover {
    color: var(--color-accent);
  }
}
.p-header__nav-item.is-current > a, .p-header__nav-item.current-menu-item > a {
  color: var(--color-accent);
  font-weight: var(--fw-bold);
}
.p-header__nav-item:hover .p-header__sub-nav {
  visibility: visible;
  opacity: 1;
  translate: 0 0;
}
.p-header__nav-item.p-header__nav-item--has-megamenu:hover .p-header__megamenu, .p-header__nav-item.p-header__nav-item--has-megamenu:focus-within .p-header__megamenu {
  visibility: visible;
  opacity: 1;
  translate: 0 0;
  pointer-events: auto;
}
.p-header__sub-nav {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 10;
  min-width: 200px;
  background-color: var(--color-white);
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  list-style: none;
  padding: 8px 0;
  margin: 0;
  visibility: hidden;
  opacity: 0;
  translate: 0 8px;
  transition: opacity var(--duration), translate var(--duration), visibility var(--duration);
}
.p-header__sub-nav li {
  border-bottom: 1px solid var(--color-gray);
}
.p-header__sub-nav li:last-child {
  border-bottom: none;
}
.p-header__sub-nav li.is-current > a {
  color: var(--color-accent);
  font-weight: var(--fw-bold);
}
.p-header__sub-nav a {
  display: block;
  padding: 10px 18px;
  color: var(--color-text);
  font-size: 13px;
  text-decoration: none;
  transition: background-color var(--duration);
}
@media (any-hover: hover) {
  .p-header__sub-nav a:hover {
    background-color: var(--color-bg-light);
    color: var(--color-accent);
  }
}
/* メガメニュー (商品一覧) */
.p-header__megamenu {
  position: fixed;
  top: 100px;
  left: 0;
  right: 0;
  z-index: calc(var(--z-index-header) - 1);
  visibility: hidden;
  opacity: 0;
  translate: 0 8px;
  pointer-events: none;
  background-color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border-block-start: 1px solid var(--color-accent);
  padding-block: 48px 32px;
  transition: opacity var(--duration), translate var(--duration), visibility var(--duration);
}
@media screen and (max-width: 899px) {
  .p-header__megamenu {
    display: none;
  }
}
.p-header__megamenu-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 32px;
  width: min(1180px, 100% - 80px);
  margin-inline: auto;
}
.p-header__megamenu-grids {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}
.p-header__megamenu-row {
  display: flex;
  flex-wrap: nowrap; /* 段落ちさせない */
  justify-content: center;
  align-items: stretch;
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}
@media screen and (max-width: 1199px) {
  .p-header__megamenu-row {
    gap: 12px;
  }
}
.p-header__megamenu-row--cats {
  /* カテゴリ行: 4枚カード */
}
.p-header__megamenu-row--tags {
  /* タグ行: 5枚カード */
}
.p-header__megamenu-item {
  margin: 0;
  flex: 1 1 0;
  min-width: 0;
}
.p-header__megamenu-card {
  position: relative;
  display: block;
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  .p-header__megamenu-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
  }
}
/* カードはアスペクト比を保ったまま親幅にフィット (段落ち防止) */
.p-header__megamenu-card--cat {
  aspect-ratio: 290/194;
}
.p-header__megamenu-card--tag {
  aspect-ratio: 210/140;
}
.p-header__megamenu-image {
  position: absolute;
  inset: 0;
  display: block;
}
.p-header__megamenu-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}
.p-header__megamenu-label {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 31px;
  padding-block: 4px;
  font-size: 16px;
  font-weight: var(--fw-regular);
  text-align: center;
  letter-spacing: 0.02em;
  border-end-start-radius: 10px;
  border-end-end-radius: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p-header__megamenu-label--cat {
  background-color: var(--color-accent);
  color: var(--color-white);
}
.p-header__megamenu-label--tag {
  background-color: var(--color-bg-light);
  color: var(--color-text);
}
/* .p-header__megamenu-btn は .c-btn .c-btn--gradient を使用 */
.p-header__contact {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  align-self: stretch;
  width: 230px;
  background-image: linear-gradient(112.2deg, rgb(0, 160, 64) 0.46%, rgb(171, 205, 3) 99.54%);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-regular);
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: opacity var(--duration);
  /* 900-1199px: アイコンのみ表示で省スペース */
  /* 899px以下: SP表示（ハンバーガー） */
}
@media (any-hover: hover) {
  .p-header__contact:hover {
    opacity: 0.9;
  }
}
@media screen and (max-width: 1199px) and (min-width: 900px) {
  .p-header__contact {
    width: 80px;
    gap: 0;
  }
}
@media screen and (max-width: 899px) {
  .p-header__contact {
    display: none;
  }
}
.p-header__contact-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  color: var(--color-white);
}
/* お問い合わせラベル: 900-1199pxは非表示でアイコンのみに */
@media screen and (max-width: 1199px) and (min-width: 900px) {
  .p-header__contact-label {
    display: none;
  }
}
.p-header__hamburger {
  display: none;
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: calc(var(--z-index-header) + 10);
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background-color: var(--color-primary);
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
@media screen and (max-width: 899px) {
  .p-header__hamburger {
    display: flex;
  }
}
.p-header__hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background-color: var(--color-white);
  transform-origin: center;
  /* 初期状態を明示 + transform 1本化（個別 translate/rotate より互換性が高い） */
  transform: translate(0, 0) rotate(0deg);
  opacity: 1;
  transition: opacity var(--duration) ease, transform var(--duration) ease;
  will-change: transform, opacity;
}
.p-header__hamburger.is-open span:nth-of-type(1) {
  transform: translate(0, 8px) rotate(45deg);
}
.p-header__hamburger.is-open span:nth-of-type(2) {
  opacity: 0;
}
.p-header__hamburger.is-open span:nth-of-type(3) {
  transform: translate(0, -8px) rotate(-45deg);
}
.p-header__drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-index-header) - 1);
  overflow-y: auto;
  background-color: var(--color-white);
  padding-block: 80px 40px;
}
.p-header__drawer-inner {
  padding-inline: 24px;
}
.p-header__drawer-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--color-gray);
}
.p-header__drawer-item {
  border-bottom: 1px solid var(--color-gray);
}
.p-header__drawer-item a {
  display: block;
  padding: 16px 8px;
  color: var(--color-text);
  font-size: 15px;
  font-weight: var(--fw-medium);
  text-decoration: none;
}
.p-header__drawer-item.is-current > a {
  color: var(--color-accent);
  font-weight: var(--fw-bold);
}
/* SP ハンバーガー内のユーティリティ群 (PCの p-header__utility / p-header__contact 踏襲) */
.p-header__drawer-utility {
  margin-block-start: 24px;
}
.p-header__drawer-utility-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}
.p-header__drawer-utility-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border-radius: 100px;
  color: var(--color-white);
  font-size: 13px;
  font-weight: var(--fw-regular);
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-header__drawer-utility-link:hover {
    opacity: 0.85;
  }
}
.p-header__drawer-utility-link--download {
  background-color: var(--color-secondary);
}
.p-header__drawer-utility-link--newsletter {
  background-color: var(--color-accent);
}
.p-header__drawer-utility-link--login {
  background-color: var(--color-primary);
}
.p-header__drawer-contact {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 16px;
  background-image: linear-gradient(112.2deg, rgb(0, 160, 64) 0.46%, rgb(171, 205, 3) 99.54%);
  border-radius: 100px;
  color: var(--color-white);
  font-size: 15px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-header__drawer-contact:hover {
    opacity: 0.9;
  }
}
.p-header__drawer-contact-icon {
  flex-shrink: 0;
  color: var(--color-white);
}
.p-header__drawer-contact-label {
  font-weight: var(--fw-medium);
}
.p-hero {
  position: relative;
  width: 100%;
  padding-block: 10px 40px;
  border-end-start-radius: 32px;
  border-end-end-radius: 32px;
  background-image: linear-gradient(136.31deg, rgba(171, 205, 3, 0.8) 0.95%, rgba(0, 160, 64, 0.8) 99.05%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-hero {
    padding-block: 18px 28px;
    border-end-start-radius: 20px;
    border-end-end-radius: 20px;
  }
}
/* 背景画像つきFV: --p-hero-bg をPHP側でセット
   背景のみ blur(5px) — 子要素の文字には影響させない */
.p-hero--has-bg {
  background-image: none;
  overflow: hidden;
  isolation: isolate;
}
.p-hero--has-bg::before {
  content: "";
  position: absolute;
  inset: -10px;
  z-index: -1;
  background-image: linear-gradient(136.31deg, rgba(171, 205, 3, 0.8) 0.95%, rgba(0, 160, 64, 0.8) 99.05%), var(--p-hero-bg);
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat;
  border-end-start-radius: inherit;
  border-end-end-radius: inherit;
  filter: blur(5px);
}
.p-hero__title-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--color-white);
}
.p-hero__en {
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
}
.p-hero__title {
  font-size: 32px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-hero__title {
    font-size: 24px;
  }
}
.p-hero__lead {
  max-width: 860px;
  margin-block-start: 30px;
  margin-inline: auto;
  padding-inline: 16px;
  color: var(--color-white);
  font-size: 14px;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-hero__lead {
    margin-block-start: 16px;
    font-size: 13px;
  }
}
.p-mv {
  position: relative;
  padding-block: 19px 30px;
  padding-inline: 0;
  background-color: var(--color-white);
  overflow-x: clip;
}
@media screen and (max-width: 767px) {
  .p-mv {
    padding-block: 16px 28px;
  }
}
/* 単一画像（スライダー非適用）レイアウト */
.p-mv--single {
  padding-block: 19px 30px;
}
@media screen and (max-width: 767px) {
  .p-mv--single {
    padding-block: 16px 20px;
  }
}
.p-mv__static {
  display: flex;
  justify-content: center;
  width: 100%;
}
/* スライダー本体: ブラウザ幅いっぱいに広げ、両端に隣接スライドが覗く構成 */
.p-mv__splide {
  position: relative;
  width: 100%;
  margin-inline: auto;
}
.p-mv__splide .splide__track {
  overflow: visible;
}
.p-mv__slide {
  display: flex;
  justify-content: center;
}
/* スライドの“画像枠”（リンク化された場合は <a>）
   - 画像比率 1180:580 を維持
   - 角丸 32px / overflow:hidden で画像を覆う
   - ブラウザ幅によらず最大1180px、外側マージンで“端に付く”構成 */
.p-mv__slide-inner {
  position: relative;
  display: block;
  width: 100%;
  max-width: 1180px;
  aspect-ratio: 1180/580;
  border-radius: 32px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}
@media screen and (max-width: 767px) {
  .p-mv__slide-inner {
    aspect-ratio: 16/9;
    border-radius: 16px;
  }
}
a.p-mv__slide-inner {
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  a.p-mv__slide-inner:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
  }
}
.p-mv__slide-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.p-mv__slide-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-mv__slide-body {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 64px 72px;
  color: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-mv__slide-body {
    padding: 32px 24px;
  }
}
.p-mv__slide-eyebrow {
  display: inline-flex;
  align-items: center;
  padding: 4px 16px;
  margin-bottom: 20px;
  border-radius: 100px;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-mv__slide-eyebrow {
    font-size: 12px;
    padding: 3px 12px;
    margin-bottom: 14px;
  }
}
.p-mv__slide-catch {
  font-size: 20px;
  font-weight: var(--fw-medium);
  line-height: 1.8;
  letter-spacing: 0.05em;
  margin-bottom: 16px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}
@media screen and (max-width: 767px) {
  .p-mv__slide-catch {
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 12px;
  }
}
.p-mv__slide-title {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 16px;
  font-family: "Futura", var(--base-font-family);
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}
.p-mv__slide-title-main {
  font-size: 56px;
  font-weight: var(--fw-bold);
  line-height: 1.1;
  letter-spacing: 0.02em;
}
.p-mv__slide-title-main sup {
  font-size: 0.5em;
  vertical-align: super;
}
@media screen and (max-width: 767px) {
  .p-mv__slide-title-main {
    font-size: 28px;
  }
}
.p-mv__slide-title-sub {
  font-size: 40px;
  font-weight: var(--fw-bold);
  line-height: 1.1;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .p-mv__slide-title-sub {
    font-size: 22px;
  }
}
.p-mv__slide-lead {
  font-size: 16px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}
@media screen and (max-width: 767px) {
  .p-mv__slide-lead {
    font-size: 13px;
  }
}
.p-mv__arrows {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  width: min(1180px, 100% - 60px);
  max-width: 1180px;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  transform: translate(-50%, -50%);
  padding-inline: 36px;
}
@media screen and (max-width: 767px) {
  .p-mv__arrows {
    width: calc(100% - 24px);
    padding-inline: 12px;
  }
}
.p-mv__arrow {
  pointer-events: auto;
  width: 72px;
  height: 72px;
  border: 1px solid var(--color-white);
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color var(--duration);
}
@media (any-hover: hover) {
  .p-mv__arrow:hover {
    background-color: rgba(255, 255, 255, 0.7);
  }
}
@media screen and (max-width: 767px) {
  .p-mv__arrow {
    width: 48px;
    height: 48px;
  }
}
/* シェブロン矢印 (arrow_forward_ios相当) */
.p-mv__arrow-icon {
  display: block;
  width: 12px;
  height: 12px;
  background-color: transparent;
  border-top: 2px solid var(--color-accent);
  border-right: 2px solid var(--color-accent);
}
@media screen and (max-width: 767px) {
  .p-mv__arrow-icon {
    width: 8px;
    height: 8px;
  }
}
.p-mv__arrow--prev .p-mv__arrow-icon {
  transform: rotate(-135deg);
  translate: 2px 0;
}
.p-mv__arrow--next .p-mv__arrow-icon {
  transform: rotate(45deg);
  translate: -2px 0;
}
.p-mv__progress {
  position: absolute;
  inset-inline: 0;
  inset-block-end: -29px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  color: var(--color-accent);
}
@media screen and (max-width: 767px) {
  .p-mv__progress {
    inset-block-end: 6px;
    font-size: 11px;
    gap: 6px;
  }
}
.p-mv__progress-number,
.p-mv__progress-total {
  font-weight: var(--fw-medium);
}
.p-mv__progress-separator {
  color: var(--color-accent);
  opacity: 0.6;
}
.p-mv__progress-bar {
  position: relative;
  display: block;
  width: 134px;
  height: 7px;
  border-radius: 10px;
  background-color: var(--color-secondary);
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-mv__progress-bar {
    width: 100px;
  }
}
.p-mv__progress-bar-fill {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  display: block;
  height: 100%;
  width: 20%;
  background-color: var(--color-accent);
  border-radius: 10px;
  transition: width var(--duration);
}
.p-news-list {
  padding-block: calc(48 * var(--to-rem)) calc(40 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-news-list {
    padding-block: calc(40 * var(--to-rem)) calc(60 * var(--to-rem));
  }
}
.p-news-list__inner {
  display: flex;
  flex-direction: column;
  gap: calc(32 * var(--to-rem));
}
.p-news-list__inner > .p-news-list__title {
  margin-block-end: 0;
}
.p-news-list__container {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  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);
}
.p-news-list__item {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.p-news-list__item:not(:last-child) {
  border-bottom: 1px solid var(--color-gray);
}
@media (any-hover: hover) {
  .p-news-list__item:hover {
    background-color: oklch(from var(--color-gray) l c h/50%);
  }
}
.p-news-list__card {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
  padding: calc(24 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-news-list__card {
    gap: calc(12 * var(--to-rem));
    padding: calc(32 * var(--to-rem));
  }
}
.p-news-list__meta {
  display: flex;
  gap: calc(8 * var(--to-rem));
  align-items: center;
  color: var(--color-border-gray);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-news-list__meta {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-news-list__separator {
  color: var(--color-border-gray);
}
.p-news-list__content {
  display: flex;
  gap: calc(16 * var(--to-rem));
  justify-content: space-between;
  align-items: center;
}
.p-news-list__main {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
.p-news-list__card .p-news-list__title {
  margin: 0;
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-news-list__card .p-news-list__title {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-news-list__excerpt {
  color: var(--color-border-gray);
  font-size: calc(13 * var(--to-rem));
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-news-list__excerpt {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-news-list__arrow {
  flex-shrink: 0;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  color: var(--color-border-gray);
  transition: color 0.2s ease, transform 0.2s ease;
}
.p-news-list__arrow svg {
  width: 100%;
  height: 100%;
}
.p-news-list__item:hover .p-news-list__arrow {
  color: var(--color-text);
  transform: translateX(calc(4 * var(--to-rem)));
}
.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-black);
  --_pagination-active-text: var(--color-white);
  --_pagination-border: var(--color-gray);
  --_pagination-border-hover: var(--color-text);
}
.p-page-header {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);
  padding-block: 40px 48px;
}
@media screen and (max-width: 767px) {
  .p-page-header {
    padding-block: 28px 36px;
  }
}
.p-page-header__inner {
  max-width: var(--inner);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
.p-page-header__breadcrumb {
  margin-block-end: 16px;
}
.p-page-header__breadcrumb span,
.p-page-header__breadcrumb a {
  color: rgba(255, 255, 255, 0.8);
  font-size: 12px;
  text-decoration: none;
}
@media (any-hover: hover) {
  .p-page-header__breadcrumb span:hover,
  .p-page-header__breadcrumb a:hover {
    color: var(--color-white);
  }
}
.p-page-header__breadcrumb .bcn-item:not(:last-child)::after {
  content: " >";
  color: rgba(255, 255, 255, 0.6);
}
.p-page-header__breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
}
.p-page-header__breadcrumb-list li {
  display: flex;
  align-items: center;
  color: rgba(255, 255, 255, 0.8);
  font-size: 12px;
}
.p-page-header__breadcrumb-list li:not(:last-child)::after {
  content: ">";
  margin-inline: 4px;
  color: rgba(255, 255, 255, 0.6);
}
.p-page-header__breadcrumb-list li a {
  color: inherit;
  text-decoration: none;
}
@media (any-hover: hover) {
  .p-page-header__breadcrumb-list li a:hover {
    color: var(--color-white);
  }
}
.p-page-header__en {
  color: var(--color-secondary);
  font-size: 13px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
  text-transform: capitalize;
  margin-block-end: 8px;
}
.p-page-header__title {
  color: var(--color-white);
  font-size: 32px;
  font-weight: var(--fw-bold);
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .p-page-header__title {
    font-size: 24px;
  }
}
/* ===============================================================
 * 画面右下のTOP戻りボタン
 * Figma node 4031:4366
 * =============================================================== */
.p-page-top {
  position: fixed;
  inset-block-end: 24px;
  inset-inline-end: 24px;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 90px;
  padding: 0;
  border: 1px solid var(--color-white);
  border-radius: 100px;
  background-color: rgba(171, 205, 3, 0.4);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  cursor: pointer;
  transition: opacity var(--duration), visibility var(--duration), transform var(--duration);
  /* 初期状態: 非表示（スクロール量で is-visible を付与） */
  opacity: 0;
  visibility: hidden;
  border-radius: 100px;
  border: 1px solid #fff;
  background: rgba(171, 205, 3, 0.4);
  backdrop-filter: blur(5px);
}
.p-page-top.is-visible {
  opacity: 1;
  visibility: visible;
}
@media (any-hover: hover) {
  .p-page-top:hover {
    transform: translateY(-2px);
  }
}
@media screen and (max-width: 767px) {
  .p-page-top {
    inset-block-end: 16px;
    inset-inline-end: 16px;
    width: 64px;
    height: 64px;
  }
}
.p-page-top__label {
  font-family: "Futura", var(--base-font-family);
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  letter-spacing: 0.04em;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-page-top__label {
    font-size: 12px;
  }
}
/* ===========================================================
 * プライバシーポリシー (.p-privacy-policy)
 * - 5セクション + イントロ + 内部アンカーナビ
 * - 既存の `.l-inner` 系トーンに合わせた可読性重視のレイアウト
 * =========================================================== */
.p-privacy-policy {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-privacy-policy__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__section {
    padding-block: 48px 56px;
  }
}
.p-privacy-policy__inner {
  max-width: calc(900px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* ── イントロ文 ── */
.p-privacy-policy__intro {
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.95;
  margin-block-end: 36px;
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__intro {
    font-size: 14px;
    line-height: 1.85;
    margin-block-end: 28px;
  }
}
/* ── アンカーナビ ── */
.p-privacy-policy__anchor-nav {
  list-style: none;
  padding: 24px 28px;
  margin: 0 0 48px;
  background-color: var(--color-bg-light);
  border-radius: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 24px;
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__anchor-nav {
    grid-template-columns: 1fr;
    padding: 20px 18px;
    gap: 8px;
    margin-block-end: 32px;
  }
}
.p-privacy-policy__anchor-nav li {
  position: relative;
  counter-increment: none;
}
.p-privacy-policy__anchor-nav a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-primary);
  font-size: 14px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: color var(--duration);
}
.p-privacy-policy__anchor-nav a::before {
  content: "›";
  color: var(--color-accent);
  font-size: 16px;
  line-height: 1;
}
@media (any-hover: hover) {
  .p-privacy-policy__anchor-nav a:hover {
    color: var(--color-accent);
  }
}
/* ── 本文セクションコンテナ ── */
.p-privacy-policy__article {
  display: flex;
  flex-direction: column;
  gap: 48px;
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__article {
    gap: 36px;
  }
}
.p-privacy-policy__block {
  scroll-margin-top: calc(var(--header-height) + 24px);
}
/* ── 見出し ── */
.p-privacy-policy__heading {
  position: relative;
  padding-block-end: 12px;
  margin-block-end: 20px;
  color: var(--color-primary);
  font-size: 22px;
  font-weight: var(--fw-bold);
  letter-spacing: 0.04em;
  border-block-end: 1px solid var(--color-secondary);
  /* 左に緑のバー */
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__heading {
    font-size: 18px;
    padding-block-end: 10px;
    margin-block-end: 16px;
  }
}
.p-privacy-policy__heading::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 1em;
  margin-inline-end: 12px;
  background-color: var(--color-accent);
  vertical-align: -0.1em;
  border-radius: 2px;
}
.p-privacy-policy__subheading {
  margin-block-start: 24px;
  margin-block-end: 10px;
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-bold);
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__subheading {
    font-size: 15px;
    margin-block-start: 20px;
  }
}
/* ── 本文段落 ── */
.p-privacy-policy__text {
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.95;
  margin: 0 0 14px;
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__text {
    font-size: 14px;
    line-height: 1.85;
  }
}
.p-privacy-policy__text:last-child {
  margin-block-end: 0;
}
/* ── リスト ── */
.p-privacy-policy__list {
  list-style: decimal;
  padding-inline-start: 1.8em;
  margin: 0 0 14px;
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.95;
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__list {
    font-size: 14px;
    line-height: 1.85;
    padding-inline-start: 1.6em;
  }
}
.p-privacy-policy__list li {
  margin-block-end: 8px;
}
.p-privacy-policy__list li:last-child {
  margin-block-end: 0;
}
.p-privacy-policy__list li::marker {
  color: var(--color-accent);
  font-weight: var(--fw-bold);
}
.p-privacy-policy__list:last-child {
  margin-block-end: 0;
}
.p-privacy-policy__list--bullet {
  list-style: none;
  padding-inline-start: 0;
}
.p-privacy-policy__list--bullet li {
  position: relative;
  padding-inline-start: 1.4em;
}
.p-privacy-policy__list--bullet li::before {
  content: "";
  position: absolute;
  inset-block-start: 0.7em;
  inset-inline-start: 0.2em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--color-accent);
}
/* ── お問い合わせ先 dl ── */
.p-privacy-policy__contact {
  margin: 16px 0 0;
  padding: 20px 24px;
  background-color: var(--color-bg-green);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__contact {
    padding: 16px 18px;
  }
}
.p-privacy-policy__contact-row {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 12px;
  align-items: baseline;
}
@media screen and (max-width: 767px) {
  .p-privacy-policy__contact-row {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}
.p-privacy-policy__contact-row dt {
  color: var(--color-primary);
  font-size: 14px;
  font-weight: var(--fw-bold);
}
.p-privacy-policy__contact-row dd {
  margin: 0;
  color: var(--color-text);
  font-size: 14px;
}
.p-privacy-policy__contact-row dd a {
  color: var(--color-accent);
  font-weight: var(--fw-medium);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-privacy-policy__contact-row dd a:hover {
    opacity: 0.7;
  }
}
.p-product-detail {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-product-detail__inner {
  max-width: calc(1100px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-product-detail__inner {
    padding-block: 48px 56px;
  }
}
/* メイン: 商品情報 (ベージュ枠内) */
.p-product-detail__main {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 32px 40px 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
@media screen and (max-width: 767px) {
  .p-product-detail__main {
    padding: 24px 20px 32px;
    border-radius: 16px;
    gap: 20px;
  }
}
.p-product-detail__image {
  width: min(450px, 100%);
  height: 320px;
  background-color: var(--color-white);
  border: 1px solid #cbcbcb;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.p-product-detail__image img {
  max-width: 85%;
  max-height: 85%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 10px;
}
@media screen and (max-width: 767px) {
  .p-product-detail__image {
    height: 260px;
    border-radius: 16px;
  }
}
.p-product-detail__body {
  width: 100%;
  max-width: 1000px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-inline: 12px;
}
@media screen and (max-width: 767px) {
  .p-product-detail__body {
    padding-inline: 0;
  }
}
.p-product-detail__head {
  padding-block-end: 6px;
  border-block-end: 1px solid var(--color-secondary);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.p-product-detail__en {
  color: var(--color-accent);
  font-size: 16px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
}
.p-product-detail__name {
  color: var(--color-accent);
  font-size: 24px;
  font-weight: var(--fw-bold);
  letter-spacing: 0.04em;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-product-detail__name {
    font-size: 20px;
  }
}
.p-product-detail__tagline,
.p-product-detail__lead {
  color: var(--color-text);
  font-size: 18px;
  font-weight: var(--fw-medium);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-product-detail__tagline,
  .p-product-detail__lead {
    font-size: 16px;
  }
}
.p-product-detail__desc {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.9;
}
.p-product-detail__desc p {
  margin-block-end: 1em;
}
.p-product-detail__desc p:last-child {
  margin-block-end: 0;
}
/* メインCTA (カタログダウンロード) */
.p-product-detail__cta {
  display: flex;
  justify-content: center;
  margin-block: 8px;
}
.p-product-detail__cta-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 320px;
  height: 60px;
  padding: 12px 24px;
  border: 1px solid var(--color-white);
  border-radius: 100px;
  background-image: linear-gradient(99.2deg, rgb(171, 205, 3) 0.2%, rgb(0, 160, 64) 99.8%);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: opacity var(--duration), transform var(--duration);
}
@media (any-hover: hover) {
  .p-product-detail__cta-btn:hover {
    opacity: 0.92;
    transform: translateY(-1px);
  }
}
@media screen and (max-width: 767px) {
  .p-product-detail__cta-btn {
    width: 100%;
    max-width: 320px;
  }
}
.p-product-detail__cta-arrow {
  position: relative;
  display: inline-block;
  width: 14px;
  height: 14px;
}
.p-product-detail__cta-arrow::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 8px;
  height: 8px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
}
/* リンクボタン (サブ) */
.p-product-detail__links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.p-product-detail__link-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border: 1px solid var(--color-accent);
  border-radius: 100px;
  background-color: var(--color-white);
  color: var(--color-accent);
  font-size: 14px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: background-color var(--duration), color var(--duration);
}
@media (any-hover: hover) {
  .p-product-detail__link-btn:hover {
    background-color: var(--color-accent);
    color: var(--color-white);
  }
}
/* スペックテーブル */
.p-product-detail__spec {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin: 0;
  border: 0;
}
.p-product-detail__spec-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2px;
}
@media screen and (max-width: 767px) {
  .p-product-detail__spec-row {
    grid-template-columns: 120px 1fr;
  }
}
.p-product-detail__spec-label {
  display: flex;
  align-items: center;
  padding: 10px 14px;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-product-detail__spec-label {
    font-size: 13px;
    padding: 10px 12px;
  }
}
.p-product-detail__spec-value {
  display: flex;
  align-items: center;
  padding: 10px 16px;
  background-color: var(--color-white);
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-product-detail__spec-value {
    font-size: 13px;
    padding: 10px 12px;
  }
}
.p-product-detail__note {
  color: var(--color-text);
  font-size: 12px;
  line-height: 1.6;
  margin-block-start: 4px;
}
/* 関連製品 */
.p-product-detail__related {
  padding-block: 24px 48px;
  margin-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .p-product-detail__related {
    padding-block: 16px 32px;
  }
}
.p-product-detail__related-inner {
  max-width: min(1180px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-product-detail__related-title {
  color: var(--color-text);
  font-size: 24px;
  font-weight: var(--fw-medium);
  text-align: center;
  margin-block-end: 28px;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-product-detail__related-title {
    font-size: 20px;
  }
}
/* Splide スライダー (関連製品) */
.p-product-detail__related-splide {
  margin-block-end: 28px;
  /* Splide マウント前のFOUC抑制 */
}
.p-product-detail__related-splide:not(.is-initialized) .splide__list {
  display: flex;
  gap: 19px;
  overflow: hidden;
}
.p-product-detail__related-splide:not(.is-initialized) .splide__slide {
  flex: 0 0 calc((100% - 57px) / 4);
  min-width: 0;
}
@media screen and (max-width: 767px) {
  .p-product-detail__related-splide:not(.is-initialized) .splide__list {
    gap: 12px;
  }
  .p-product-detail__related-splide:not(.is-initialized) .splide__slide {
    flex: 0 0 calc((100% - 12px) / 2);
  }
}
.p-product-detail__related-slide {
  height: auto;
}
.p-product-detail__related-slide > .p-product-detail__related-card {
  height: 100%;
}
.p-product-detail__related-card {
  display: flex;
  flex-direction: column;
  background-color: var(--color-bg-light);
  border-radius: 26px;
  padding: 6px 6px 12px;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  .p-product-detail__related-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
  }
}
.p-product-detail__related-image {
  aspect-ratio: 340/220;
  border-radius: 20px;
  overflow: hidden;
  background-color: var(--color-gray);
}
.p-product-detail__related-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-product-detail__related-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-inline: 12px;
}
.p-product-detail__related-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--color-accent);
  min-height: 43px;
}
.p-product-detail__related-en {
  font-size: 12px;
  font-weight: var(--fw-medium);
}
.p-product-detail__related-name {
  font-size: 18px;
  font-weight: var(--fw-bold);
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.p-product-detail__related-desc {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.p-product-detail__related-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block-start: 10px;
  margin-block-start: auto;
}
.p-product-detail__related-tag {
  color: #72857a;
  font-size: 12px;
  font-weight: var(--fw-medium);
}
.p-product-detail__related-arrow {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--color-accent);
}
/* 関連製品ナビ (.c-slider-nav 共通クラス使用 + 余白だけページ側で指定) */
.p-product-detail__related-nav {
  margin-block-end: 32px;
}
/* 旧 .p-product-detail__related-nav-btn / -nav-arrow / -dots 系は .c-slider-nav 共通へ統合 */
/* 一覧に戻る */
.p-product-detail__back {
  display: flex;
  justify-content: center;
}
.p-product-detail__back-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  height: 60px;
  padding: 12px 36px;
  border: 1px solid var(--color-white);
  border-radius: 100px;
  background-image: linear-gradient(99.2deg, rgb(171, 205, 3) 0.2%, rgb(0, 160, 64) 99.8%);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: opacity var(--duration), transform var(--duration);
}
@media (any-hover: hover) {
  .p-product-detail__back-link:hover {
    opacity: 0.92;
    transform: translateY(-1px);
  }
}
@media screen and (max-width: 767px) {
  .p-product-detail__back-link {
    width: 100%;
    max-width: 320px;
  }
}
/* 戻る矢印: arrow_warm_up を180度回転、ボタン左端に絶対配置 */
.p-product-detail__back-arrow {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 24px;
  translate: 0 -50%;
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transform: rotate(180deg);
}
@media screen and (max-width: 767px) {
  .p-product-detail__back-arrow {
    inset-inline-start: 20px;
  }
}
.p-products-detergent {
  background-color: var(--color-white);
  margin-block-start: 0;
  position: relative;
  z-index: 0;
}
.p-products-detergent__inner {
  max-width: min(1240px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
  padding-block: 86px 64px;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__inner {
    padding-block: 48px 40px;
  }
}
.p-products-detergent__inner > .c-anchor-nav {
  margin-block-end: 97px;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__inner > .c-anchor-nav {
    margin-block-end: 56px;
  }
}
/* セクションタイトル共通(20px ZK Medium + 105px lime underline) */
.p-products-detergent__section-head {
  display: flex;
  justify-content: center;
  margin-block-end: 32px;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__section-head {
    margin-block-end: 24px;
  }
}
.p-products-detergent__section-head--white .p-products-detergent__section-title-base {
  color: var(--color-white);
}
.p-products-detergent__section-title-base {
  position: relative;
  display: inline-block;
  padding-block-end: 12px;
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  text-align: center;
}
.p-products-detergent__section-title-base::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 50%;
  translate: -50% 0;
  width: 105px;
  height: 5px;
  background-color: var(--color-secondary);
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__section-title-base {
    font-size: 18px;
  }
}
/* タブナビは .c-anchor-nav 共通コンポーネントを使用 */
.p-products-detergent__heading-jump {
  scroll-margin-top: calc(var(--header-height) + 20px);
}
/* セクション (各小カテゴリ) */
.p-products-detergent__section {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 30px 40px;
  margin-block-end: 20px;
  scroll-margin-top: calc(var(--header-height) + 20px);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__section {
    padding: 24px 16px;
    border-radius: 16px;
  }
}
.p-products-detergent__section-title {
  color: var(--color-text);
  font-size: 24px;
  font-weight: var(--fw-medium);
  text-align: center;
  margin-block-end: 10px;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__section-title {
    font-size: 20px;
  }
}
.p-products-detergent__section-desc {
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.7;
  text-align: center;
  margin-block-end: 19px;
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__section-desc {
    font-size: 14px;
    margin-block-end: 16px;
  }
}
/* 商品カード グリッド (3カラム縦型) */
.p-products-detergent__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 19px;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.p-products-detergent__card {
  display: flex;
  flex-direction: column;
  background-color: var(--color-white);
  border-radius: 26px;
  padding: 6px 6px 12px;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  .p-products-detergent__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
  }
}
.p-products-detergent__card-image {
  position: relative;
  aspect-ratio: 354/220;
  border-radius: 20px;
  overflow: hidden;
  background-color: var(--color-gray);
}
.p-products-detergent__card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-products-detergent__card-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-inline: 12px;
}
.p-products-detergent__card-head {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--color-accent);
  min-height: 43px;
}
.p-products-detergent__card-en {
  font-family: var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
}
.p-products-detergent__card-name {
  font-size: 18px;
  font-weight: var(--fw-bold);
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.p-products-detergent__card-desc {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.6;
  font-weight: var(--fw-medium);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.p-products-detergent__card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block-start: 10px;
  margin-block-start: auto;
}
.p-products-detergent__card-tag {
  color: #72857a;
  font-size: 12px;
  font-weight: var(--fw-medium);
}
.p-products-detergent__card-arrow {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--color-accent);
}
.p-products-detergent__empty {
  padding: 20px;
  color: var(--color-text);
  font-size: 14px;
  text-align: center;
}
/* 用途・特長から洗浄剤を選ぶ */
.p-products-detergent__feature {
  background-color: var(--color-bg-green);
  border-radius: 20px;
  padding: 56px 40px;
  margin-block: 40px 24px;
  margin-inline: calc(50% - 50vw);
  width: 100vw;
  scroll-margin-top: calc(var(--header-height) + 20px);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__feature {
    padding: 32px 20px;
    border-radius: 16px;
  }
}
.p-products-detergent__feature-lead {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.8;
  text-align: center;
  margin-block-end: 32px;
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__feature-lead {
    font-size: 13px;
    text-align: left;
    margin-block-end: 24px;
  }
}
.p-products-detergent__feature-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 980px;
  margin-inline: auto;
}
.p-products-detergent__feature-item {
  margin: 0;
}
.p-products-detergent__feature-card {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 17px;
  align-items: stretch;
  background-color: var(--color-white);
  border-radius: 20px;
  padding: 6px;
  color: inherit;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__feature-card {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.p-products-detergent__feature-image {
  aspect-ratio: 300/200;
  border-radius: 20px;
  overflow: hidden;
  background-color: var(--color-gray);
}
.p-products-detergent__feature-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-products-detergent__feature-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 16px 14px 0;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__feature-body {
    padding: 4px 12px 12px;
  }
}
.p-products-detergent__feature-name {
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__feature-name {
    font-size: 18px;
  }
}
.p-products-detergent__feature-desc {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.7;
  font-weight: var(--fw-medium);
}
/* 医療機器・現場別 */
.p-products-detergent__device {
  padding-block-start: 56px;
  scroll-margin-top: calc(var(--header-height) + 20px);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__device {
    padding-block-start: 40px;
  }
}
.p-products-detergent__device-lead {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.8;
  text-align: center;
  margin-block-end: 24px;
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__device-lead {
    font-size: 13px;
    text-align: left;
  }
}
.p-products-detergent__device-tabs {
  margin-block-start: 16px;
}
.p-products-detergent__device-tablist {
  display: flex;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: 0 0 0;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__device-tablist {
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
  }
  .p-products-detergent__device-tablist::-webkit-scrollbar {
    display: none;
  }
}
.p-products-detergent__device-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 32px;
  font-family: var(--base-font-family);
  font-size: 14px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
  border: none;
  border-start-start-radius: 10px;
  border-start-end-radius: 10px;
  background-color: var(--color-accent);
  color: var(--color-white);
  cursor: pointer;
  transition: opacity var(--duration);
  white-space: nowrap;
}
@media (any-hover: hover) {
  .p-products-detergent__device-tab:hover {
    opacity: 0.9;
  }
}
.p-products-detergent__device-tab.is-current {
  background-color: var(--color-bg-light);
  color: var(--color-text);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__device-tab {
    padding: 10px 18px;
  }
}
.p-products-detergent__device-panel {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  border-start-start-radius: 0;
  padding: 30px 40px;
}
.p-products-detergent__device-panel[hidden] {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__device-panel {
    padding: 24px 16px;
    border-radius: 16px;
    border-start-start-radius: 0;
  }
}
/* 洗浄評価・サポートとの連携 */
.p-products-detergent__support {
  scroll-margin-top: calc(var(--header-height) + 20px);
  padding-block: 64px 32px;
  margin-inline: calc(50% - 50vw);
  width: 100vw;
  position: relative;
  /* 背景の blur は __support-inner::before に isolate されているため、
     外側 wrapper を z-index: -1 で背面に押す必要は無い（押すとリンクがクリック不可になる）*/
}
@media screen and (max-width: 767px) {
  .p-products-detergent__support {
    padding-block: 48px 24px;
  }
}
.p-products-detergent__support-inner {
  position: relative;
  padding: 64px 40px 56px;
  text-align: center;
  color: var(--color-white);
  overflow: hidden;
  isolation: isolate;
  /* 背景のみ blur(5px) — Figma 4031:4731 準拠
     gradient(115.66deg, secondary 0.8 → accent 0.8) を画像にオーバーレイ */
}
.p-products-detergent__support-inner::before {
  content: "";
  position: absolute;
  inset: -10px;
  z-index: -1;
  background-image: linear-gradient(115.66deg, rgba(171, 205, 3, 0.8) 0.95%, rgba(0, 160, 64, 0.8) 99.05%), url("../images/image_water_splash.webp");
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat;
  border-radius: inherit;
  filter: blur(5px);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__support-inner {
    padding: 40px 20px;
  }
}
.p-products-detergent__support-lead {
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-white);
  margin-block-end: 32px;
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-products-detergent__support-lead {
    font-size: 13px;
    text-align: left;
  }
}
.p-products-detergent__support-actions {
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .p-products-detergent__support-actions {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
}
.p-products-detergent__support-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  position: relative;
  width: 320px;
  max-width: 100%;
  height: 60px;
  padding: 0 24px;
  border: 1px solid var(--color-white);
  border-radius: 100px;
  background-image: linear-gradient(99deg, rgba(171, 205, 3, 0.85) 0%, rgba(0, 160, 64, 0.85) 100%);
  color: var(--color-white);
  text-decoration: none;
  font-size: 16px;
  font-weight: var(--fw-medium);
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-products-detergent__support-btn:hover {
    opacity: 0.9;
  }
}
.p-products-detergent__support-btn-icon {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
}
.p-products-detergent__support-btn-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 8px;
  height: 8px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}
.p-products {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-products__tabs {
  padding-block: 86px 97px;
}
@media screen and (max-width: 767px) {
  .p-products__tabs {
    padding-block: 48px 56px;
  }
}
.p-products__tabs-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 32px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-products__tabs-list {
    gap: 16px;
  }
}
.p-products__tabs-list a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-accent);
  font-size: 14px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: color var(--duration);
}
@media (any-hover: hover) {
  .p-products__tabs-list a:hover {
    color: var(--color-primary);
  }
}
.p-products__tab-arrow {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  rotate: 45deg;
}
.p-products__section {
  padding-block: 0 110px;
  scroll-margin-top: calc(var(--header-height) + 20px);
}
.p-products__section:last-of-type {
  padding-block-end: 50px;
}
@media screen and (max-width: 767px) {
  .p-products__section {
    padding-block: 0 48px;
  }
  .p-products__section:last-of-type {
    padding-block-end: 32px;
  }
}
.p-products__section-head {
  text-align: center;
  margin-block-end: 49px;
}
@media screen and (max-width: 767px) {
  .p-products__section-head {
    margin-block-end: 28px;
  }
}
.p-products__section-title {
  position: relative;
  display: inline-block;
  margin-block-end: 17px;
  padding-block-end: 12px;
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
}
.p-products__section-title::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 50%;
  translate: -50% 0;
  width: 105px;
  height: 5px;
  background-color: var(--color-secondary);
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
.p-products__section-text {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.7;
  padding-inline: 15px;
}
.p-products__grid {
  display: grid;
  max-width: min(980px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
  gap: 19px;
}
@media screen and (max-width: 767px) {
  .p-products__grid {
    gap: 16px;
  }
}
.p-products__grid--large {
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
@media screen and (max-width: 767px) {
  .p-products__grid--large {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.p-products__grid--small {
  grid-template-columns: repeat(4, 1fr);
  gap: 19px;
}
@media screen and (max-width: 767px) {
  .p-products__grid--small {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
}
.p-products__card {
  position: relative;
  display: block;
  border: 1px solid #ddd;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  .p-products__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  }
}
.p-products__card--large {
  aspect-ratio: 470/314;
}
.p-products__card--large .p-products__card-image {
  position: absolute;
  inset: 0;
}
.p-products__card--large .p-products__card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-products__card--small {
  aspect-ratio: 230/254;
}
.p-products__card--small .p-products__card-image {
  position: absolute;
  inset: 0;
  border-radius: 20px;
  overflow: hidden;
}
.p-products__card--small .p-products__card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-products__card-foot {
  position: absolute;
  left: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 50%;
  padding: 12px 19px;
  background-color: var(--color-bg-light);
  border-start-end-radius: 20px;
  z-index: 1;
}
.p-products__card-label {
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-products__card-label {
    font-size: 16px;
  }
}
.p-products__card-arrow {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--color-accent);
}
.p-products__card-tag {
  position: absolute;
  bottom: 0;
  padding: 2px 12px;
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--fw-medium);
  z-index: 1;
}
.p-products__card-tag--pill {
  left: 50%;
  translate: -50% -12px;
  background-color: var(--color-secondary);
  border-radius: 100px;
}
.p-products__card-tag--corner {
  left: 0;
  right: 0;
  padding-block: 10px;
  background-color: var(--color-accent);
  text-align: center;
}
.p-recruit {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-recruit__inner {
  max-width: min(1180px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-recruit__nav {
  padding-block: 50px 0;
}
@media screen and (max-width: 767px) {
  .p-recruit__nav {
    padding-block: 32px 0;
  }
}
/* セクション共通 */
.p-recruit__section {
  padding-block: 32px;
}
@media screen and (max-width: 767px) {
  .p-recruit__section {
    padding-block: 28px;
  }
}
.p-recruit__section-head {
  display: flex;
  justify-content: center;
  margin-block-end: 24px;
}
@media screen and (max-width: 767px) {
  .p-recruit__section-head {
    margin-block-end: 20px;
  }
}
.p-recruit__section-title {
  position: relative;
  display: inline-block;
  padding-block-end: 12px;
  color: var(--color-accent);
  font-size: 18px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
}
.p-recruit__section-title::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 50%;
  translate: -50% 0;
  width: 105px;
  height: 5px;
  background-color: var(--color-secondary);
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
@media screen and (max-width: 767px) {
  .p-recruit__section-title {
    font-size: 16px;
  }
}
/* Message section */
.p-recruit__section--message {
  padding-block: 16px 16px;
}
@media screen and (max-width: 767px) {
  .p-recruit__section--message {
    padding-block: 16px 12px;
  }
}
.p-recruit__message-title {
  text-align: center;
  font-size: 48px;
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  letter-spacing: 0.04em;
  line-height: normal;
  margin-block-end: 18px;
}
@media screen and (max-width: 767px) {
  .p-recruit__message-title {
    font-size: 28px;
    margin-block-end: 16px;
  }
}
.p-recruit__message-lead {
  text-align: center;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-accent);
}
@media screen and (max-width: 767px) {
  .p-recruit__message-lead {
    font-size: 13px;
    text-align: left;
    line-height: 1.7;
  }
}
/* NCCについて Features (Figma準拠の上下余白) */
.p-recruit__section--about {
  padding-block: 80px;
}
@media screen and (max-width: 767px) {
  .p-recruit__section--about {
    padding-block: 48px;
  }
}
.p-recruit__features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 1100px;
  margin-inline: auto;
}
.p-recruit__feature {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 32px;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-recruit__feature {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.p-recruit__feature-image {
  border: 1px solid #cbcbcb;
  border-radius: 20px;
  overflow: hidden;
}
.p-recruit__feature-image img {
  display: block;
  width: 100%;
  height: 216px;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .p-recruit__feature-image img {
    height: auto;
    aspect-ratio: 320/216;
  }
}
.p-recruit__feature-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.p-recruit__feature-en {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-family: "Futura", var(--base-font-family);
  font-size: 18px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.04em;
}
.p-recruit__feature-en-main {
  color: var(--color-accent);
}
.p-recruit__feature-en-num {
  color: var(--color-secondary);
}
.p-recruit__feature-title {
  font-size: 16px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  padding-block-end: 6px;
  border-block-end: 1px solid var(--color-accent);
}
@media screen and (max-width: 767px) {
  .p-recruit__feature-title {
    font-size: 15px;
  }
}
.p-recruit__feature-text {
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-text);
}
@media screen and (max-width: 767px) {
  .p-recruit__feature-text {
    font-size: 13px;
  }
}
/* 働き方 + キャリアサポート */
.p-recruit__section--workstyle {
  padding-block: 16px 24px;
}
@media screen and (max-width: 767px) {
  .p-recruit__section--workstyle {
    padding-block: 12px 16px;
  }
}
.p-recruit__workgroup {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 20px 40px;
  margin-block-end: 20px;
}
.p-recruit__workgroup:last-child {
  margin-block-end: 0;
}
@media screen and (max-width: 767px) {
  .p-recruit__workgroup {
    padding: 20px 16px;
  }
}
.p-recruit__workgroup-title {
  text-align: center;
  font-size: 24px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  margin-block-end: 12px;
}
@media screen and (max-width: 767px) {
  .p-recruit__workgroup-title {
    font-size: 20px;
    margin-block-end: 12px;
  }
}
.p-recruit__workgroup-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 19px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-recruit__workgroup-list {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}
.p-recruit__workgroup-item {
  background-color: var(--color-white);
  border-radius: 26px;
  padding: 20px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
@media screen and (max-width: 767px) {
  .p-recruit__workgroup-item {
    padding: 24px 16px;
  }
}
.p-recruit__workgroup-icon {
  width: 102px;
  height: 102px;
  background-color: #d8d8d8;
  border-radius: 50%;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .p-recruit__workgroup-icon {
    width: 72px;
    height: 72px;
  }
}
.p-recruit__workgroup-name {
  font-size: 18px;
  font-weight: var(--fw-bold);
  color: var(--color-accent);
  text-align: center;
  margin-block-start: 8px;
}
@media screen and (max-width: 767px) {
  .p-recruit__workgroup-name {
    font-size: 16px;
  }
}
.p-recruit__workgroup-desc {
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
  margin-block-start: 8px;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .p-recruit__workgroup-desc {
    font-size: 13px;
  }
}
/* オフィスギャラリー */
.p-recruit__section--gallery {
  padding-block: 16px;
}
@media screen and (max-width: 767px) {
  .p-recruit__section--gallery {
    padding-block: 12px;
  }
}
.p-recruit__gallery-bg {
  background-color: var(--color-bg-green);
  border-radius: 32px;
  padding-block: 40px;
  max-width: min(1400px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-recruit__gallery-bg {
    border-radius: 20px;
    padding-block: 32px 24px;
  }
}
.p-recruit__gallery-lead {
  text-align: center;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text);
  margin-block-end: 24px;
}
@media screen and (max-width: 767px) {
  .p-recruit__gallery-lead {
    font-size: 13px;
    text-align: left;
    margin-block-end: 16px;
    line-height: 1.7;
  }
}
/* ギャラリースライダー (Figma 4031:5396 準拠: 420×326 / radius 20 / gap 20) */
.p-recruit__gallery-splide {
  margin-block-end: 24px;
  /* Splide マウント前のFOUC抑制 */
}
@media screen and (max-width: 767px) {
  .p-recruit__gallery-splide {
    margin-block-end: 16px;
  }
}
.p-recruit__gallery-splide:not(.is-initialized) .splide__list {
  display: flex;
  gap: 20px;
  overflow: hidden;
}
.p-recruit__gallery-splide:not(.is-initialized) .splide__slide {
  flex: 0 0 420px;
  min-width: 0;
}
.p-recruit__gallery-item {
  border-radius: 20px;
  overflow: hidden;
}
.p-recruit__gallery-item img {
  display: block;
  width: 100%;
  height: 326px;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .p-recruit__gallery-item img {
    height: auto;
    aspect-ratio: 420/326;
  }
}
.p-recruit__gallery-nav {
  margin-block-end: 8px;
}
/* 募集要項 */
.p-recruit__section--openings {
  padding-block: 24px 32px;
}
@media screen and (max-width: 767px) {
  .p-recruit__section--openings {
    padding-block: 16px 24px;
  }
}
.p-recruit__openings-lead {
  text-align: center;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text);
  margin-block-end: 20px;
}
@media screen and (max-width: 767px) {
  .p-recruit__openings-lead {
    font-size: 13px;
    margin-block-end: 16px;
  }
}
.p-recruit__openings-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 980px;
  margin-inline: auto;
}
.p-recruit__opening details {
  border: 1px solid var(--color-accent);
  border-radius: 4px;
  overflow: hidden;
  background-color: var(--color-accent);
  transition: background-color var(--duration);
}
.p-recruit__opening details[open] {
  background-color: var(--color-white);
}
.p-recruit__opening-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  cursor: pointer;
  list-style: none;
  color: var(--color-white);
}
.p-recruit__opening-summary::-webkit-details-marker {
  display: none;
}
.p-recruit__opening details[open] .p-recruit__opening-summary {
  color: var(--color-accent);
  background-color: var(--color-white);
}
.p-recruit__opening-name {
  font-size: 18px;
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-recruit__opening-name {
    font-size: 16px;
  }
}
.p-recruit__opening-arrow {
  position: relative;
  width: 36px;
  height: 36px;
  background-color: var(--color-accent);
  border-radius: 4px;
  flex-shrink: 0;
}
.p-recruit__opening-arrow::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--color-white);
  border-bottom: 2px solid var(--color-white);
  transform: translateY(-2px) rotate(45deg);
  transition: transform var(--duration);
}
.p-recruit__opening details[open] .p-recruit__opening-arrow::before {
  transform: translateY(2px) rotate(-135deg);
}
.p-recruit__opening-table {
  margin: 0;
  padding: 12px 16px;
  background-color: var(--color-white);
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.p-recruit__opening-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2px;
}
@media screen and (max-width: 767px) {
  .p-recruit__opening-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
.p-recruit__opening-row dt {
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  padding: 10px 12px;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-recruit__opening-row dt {
    font-size: 14px;
    padding: 8px 12px;
  }
}
.p-recruit__opening-row dd {
  background-color: var(--color-white);
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  padding: 10px 16px;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-recruit__opening-row dd {
    font-size: 14px;
    padding: 8px 12px;
    border-block-end: 1px solid #eee;
  }
}
/* エントリー */
.p-recruit__entry {
  padding-block: 32px 64px;
}
@media screen and (max-width: 767px) {
  .p-recruit__entry {
    padding-block: 24px 48px;
  }
}
.p-recruit__entry-card {
  max-width: 780px;
  margin-inline: auto;
  position: relative;
  border-radius: 20px;
  padding: 56px 24px;
  text-align: center;
  color: var(--color-white);
  background-image: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url("../images/image_hospital_corridor_01.webp");
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-recruit__entry-card {
    padding: 40px 20px;
    max-width: calc(100% - var(--padding-inner) * 2);
  }
}
.p-recruit__entry-title {
  font-size: 24px;
  font-weight: var(--fw-medium);
  margin-block-end: 6px;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-recruit__entry-title {
    font-size: 20px;
  }
}
.p-recruit__entry-text {
  font-size: 14px;
  line-height: 1.8;
  margin-block-end: 24px;
}
@media screen and (max-width: 767px) {
  .p-recruit__entry-text {
    font-size: 13px;
    text-align: left;
  }
}
.p-recruit__entry-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  position: relative;
  width: 320px;
  max-width: 100%;
  height: 60px;
  padding: 0 24px;
  border: 1px solid var(--color-white);
  border-radius: 100px;
  background-image: linear-gradient(99deg, rgba(171, 205, 3, 0.85) 0%, rgba(0, 160, 64, 0.85) 100%);
  color: var(--color-white);
  text-decoration: none;
  font-size: 16px;
  font-weight: var(--fw-medium);
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-recruit__entry-btn:hover {
    opacity: 0.9;
  }
}
/* 右矢印 (他CTAボタン踏襲: 細めシェブロン) */
.p-recruit__entry-btn-icon {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
}
.p-recruit__entry-btn-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 9px;
  height: 9px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: translateX(-2px) rotate(45deg);
}
.p-seminar-apply {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-seminar-apply__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-seminar-apply__section {
    padding-block: 48px 56px;
  }
}
.p-seminar-apply__inner {
  max-width: calc(900px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* ===========================================================
 * セミナー詳細 (Single seminar) — Figma 4031:4924 完全一致
 *   実値:
 *   - 見出し下線: 1px solid #00a040 (accent green)
 *   - リード見出し左バー: 6px solid #00a040, padding-left 24px (下線なし)
 *   - 概要テーブル: ボーダー無し / 行間 1px gap / セル間 2px gap
 *     ラベル: bg #abcd03, color #fff, 16px medium, w 220
 *     値: bg #fff, color #1b2e23, 16px medium, flex 1
 *   - サイドbox: bg rgba(255,255,255,.6) + backdrop-blur(5px) + border #00a040,
 *     border-radius 20px 0 0 20px, タイトル色 #00a040, 値セル bg #f9f9f9
 *     CTA はグラデで bottom-left 角丸20px
 * =========================================================== */
.p-seminar-detail {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-seminar-detail__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-seminar-detail__section {
    padding-block: 48px 56px;
  }
}
.p-seminar-detail__inner {
  max-width: calc(1180px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* ── ボード（薄グレー） ── */
.p-seminar-detail__board {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 32px 40px 40px;
  max-width: 1180px;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-seminar-detail__board {
    padding: 20px 16px;
    border-radius: 16px;
  }
}
/* ── 上部: タグ + タイトル + ライム下線 ── */
.p-seminar-detail__head {
  margin-block-end: 24px;
  padding-block-end: 18px;
  border-block-end: 1px solid var(--color-secondary);
}
.p-seminar-detail__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-block-end: 14px;
}
.p-seminar-detail__tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 14px;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 12px;
  font-weight: var(--fw-medium);
  border-radius: 100px;
}
.p-seminar-detail__status {
  display: inline-flex;
  align-items: center;
  padding: 4px 14px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  color: var(--color-white);
}
.p-seminar-detail__status--accepting {
  background-color: var(--color-accent);
}
.p-seminar-detail__status--pre_open {
  background-color: var(--color-secondary);
}
.p-seminar-detail__status--closed {
  background-color: #9ca3af;
}
.p-seminar-detail__title {
  color: var(--color-text);
  font-size: 22px;
  font-weight: var(--fw-bold);
  line-height: 1.55;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .p-seminar-detail__title {
    font-size: 17px;
  }
}
/* ── ヒーロー画像 ── */
.p-seminar-detail__image {
  aspect-ratio: 680/460;
  max-width: 680px;
  margin-inline: auto;
  border-radius: 12px;
  overflow: hidden;
  background-color: var(--color-bg-green);
  margin-block-end: 28px;
}
.p-seminar-detail__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* ── リード見出し（緑左バー 6px / 下線なし） ── */
.p-seminar-detail__lead-title {
  position: relative;
  color: var(--color-text);
  font-size: 18px;
  font-weight: var(--fw-bold);
  line-height: 1.5;
  padding-inline-start: 24px;
  margin-block: 0 14px;
}
.p-seminar-detail__lead-title::before {
  content: "";
  position: absolute;
  inset-block: 2px;
  inset-inline-start: 0;
  width: 6px;
  background-color: var(--color-accent);
}
.p-seminar-detail__lead-text {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.85;
  margin-block-end: 16px;
}
/* ── 各セクション (h3 + 緑下線 + body) ── */
.p-seminar-detail__sec {
  margin-block-start: 28px;
}
.p-seminar-detail__sec-title {
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  margin-block-end: 16px;
  padding-block-end: 4px;
  border-block-end: 1px solid var(--color-accent);
  letter-spacing: 0.02em;
}
.p-seminar-detail__sec-body {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.85;
  margin: 0;
}
/* ── リスト形式のセクション本文 ── */
.p-seminar-detail__sec-list {
  list-style: none;
  padding: 0;
  margin: 0;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.85;
}
.p-seminar-detail__sec-list li {
  padding-inline-start: 1.1em;
  text-indent: -1.1em;
}
.p-seminar-detail__sec-list li::before {
  content: "・";
  color: var(--color-text);
}
/* ── 概要テーブル (Figma実値: ボーダー無し / gap で隙間生成) ── */
.p-seminar-detail__spec {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1px; /* 行間 1px → ボード背景(#f9f9f9)が透けて罫線に見える */
  background-color: transparent;
}
.p-seminar-detail__spec-row {
  display: flex;
  gap: 2px; /* ラベルと値の間 2px */
}
.p-seminar-detail__spec-row dt {
  width: 220px;
  flex-shrink: 0;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  padding: 10px 12px;
  margin: 0;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-seminar-detail__spec-row dt {
    width: 110px;
    font-size: 13px;
  }
}
.p-seminar-detail__spec-row dd {
  flex: 1 0 0;
  min-width: 0;
  background-color: var(--color-white);
  color: var(--color-text);
  font-size: 16px;
  font-weight: var(--fw-medium);
  padding: 10px 16px;
  margin: 0;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-seminar-detail__spec-row dd {
    font-size: 13px;
  }
}
/* ── 申込みCTAボタン (グラデ pill) ── */
.p-seminar-detail__cta {
  display: flex;
  justify-content: center;
  margin-block-start: 36px;
}
.p-seminar-detail__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 320px;
  padding: 14px 28px;
  background-image: linear-gradient(98.5deg, var(--color-secondary) 0%, var(--color-accent) 100%);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  border-radius: 100px;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-seminar-detail__cta-btn:hover {
    opacity: 0.85;
  }
}
.p-seminar-detail__cta-arrow {
  color: var(--color-white);
}
/* ────────────────────────────────────────────────
   右端 fixed 申込ボックス
   Figma実値:
   - bg: rgba(255,255,255,0.6) + backdrop-blur(5px)
   - border: 1px solid #00a040
   - radius: 20px (TL/BL のみ) → 右端は viewport 端でカット
   - タイトル色 #00a040, 値セル bg #f9f9f9
   - CTA はグラデ全幅 + bottom-left R20
   ──────────────────────────────────────────────── */
.p-seminar-detail__side {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 232px;
  z-index: 50;
  background-color: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border: 1px solid var(--color-accent);
  border-right: 0;
  border-radius: 20px 0 0 20px;
  padding-block-start: 12px;
  padding-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
  box-shadow: -2px 4px 16px rgba(0, 0, 0, 0.06);
}
@media screen and (max-width: 767px) {
  .p-seminar-detail__side {
    position: static;
    width: auto;
    max-width: 360px;
    margin: 24px auto 30px;
    transform: none;
    border-right: 1px solid var(--color-accent);
    border-radius: 14px;
  }
}
.p-seminar-detail__side-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-inline: 12px;
}
.p-seminar-detail__side-title {
  color: var(--color-accent);
  font-size: 14px;
  font-weight: var(--fw-bold);
  line-height: 1.45;
  margin: 0;
}
.p-seminar-detail__side-meta-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin: 0;
}
.p-seminar-detail__side-meta {
  display: flex;
  gap: 1px;
  align-items: stretch;
}
.p-seminar-detail__side-meta dt {
  width: 60px;
  flex-shrink: 0;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-weight: var(--fw-bold);
  font-size: 12px;
  padding: 4px 6px;
  margin: 0;
  line-height: 1.4;
  display: flex;
  align-items: center;
}
.p-seminar-detail__side-meta dd {
  flex: 1 0 0;
  min-width: 0;
  background-color: var(--color-bg-light);
  color: var(--color-text);
  font-weight: var(--fw-medium);
  font-size: 12px;
  padding: 4px 7px;
  margin: 0;
  line-height: 1.4;
  display: flex;
  align-items: center;
}
.p-seminar-detail__side-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 12px 16px;
  background-image: linear-gradient(98.5deg, var(--color-secondary) 0%, var(--color-accent) 100%);
  color: var(--color-white);
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  border-radius: 0 0 0 20px;
  transition: opacity var(--duration);
}
@media screen and (max-width: 767px) {
  .p-seminar-detail__side-btn {
    border-radius: 0 0 14px 14px;
  }
}
@media (any-hover: hover) {
  .p-seminar-detail__side-btn:hover {
    opacity: 0.9;
  }
}
.p-seminar-detail__side-arrow {
  color: var(--color-white);
}
/* ===========================================================
 * セミナー一覧 (Seminar archive)
 * カード基本スタイルは .c-card 共通コンポーネント参照
 * =========================================================== */
.p-seminar {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-seminar__section {
  padding-block: 86px 90px;
}
@media screen and (max-width: 767px) {
  .p-seminar__section {
    padding-block: 48px 56px;
  }
}
.p-seminar__inner {
  max-width: calc(1180px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
/* グリッド+ページネーションを内包するグレー背景ボード (Figma: 1180×, padding 30/40, radius 20) */
.p-seminar__board {
  background-color: var(--color-bg-light);
  border-radius: 20px;
  padding: 30px 40px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media screen and (max-width: 767px) {
  .p-seminar__board {
    padding: 24px 16px;
    gap: 24px;
    border-radius: 16px;
  }
}
.p-seminar__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 19px;
}
@media screen and (max-width: 767px) {
  .p-seminar__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
/* .p-seminar__card は .c-card 共通コンポーネントを使用
   セミナー固有の上書きとして以下を適用（Figma準拠）。 */
.p-seminar__card {
  /* 日付ピルを画像左下にくっつけて配置（Figma: 内側角のみR10） */
  /* 開催場所バッジ（Figma: 半透明白地, 黒文字, 右上 14/13） */
}
.p-seminar__card .c-card__date {
  inset-block-end: 0;
  inset-inline-start: 0;
  border-radius: 0 10px 0 0;
  padding: 6px 14px;
  font-size: 14px;
  font-family: "Futura", var(--base-font-family);
}
.p-seminar__card .c-card__tag {
  inset-block-start: 14px;
  inset-inline-end: 13px;
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--color-text);
  font-size: 14px;
  padding: 2px 12px;
}
.p-seminar__pagination {
  margin-block-start: 48px;
}
@media screen and (max-width: 767px) {
  .p-seminar__pagination {
    margin-block-start: 32px;
  }
}
.p-single {
  padding-block: calc(40 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-single__inner {
  max-width: calc(var(--inner) + var(--padding-inner) * 2);
}
.p-single__header {
  margin-block-start: calc(32 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single__header {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__subtitle {
  margin-block-end: calc(8 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-single__subtitle {
    margin-block-end: calc(12 * var(--to-rem));
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single__title {
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(24 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__title {
    margin-block-start: calc(24 * var(--to-rem));
    font-size: calc(32 * var(--to-rem));
  }
}
.p-single__summary {
  margin-block-start: calc(24 * var(--to-rem));
  padding-block: calc(16 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-single__summary {
    margin-block-start: calc(32 * var(--to-rem));
    padding-block: calc(20 * var(--to-rem));
    padding-inline: calc(24 * var(--to-rem));
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(16 * var(--to-rem));
  align-items: center;
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-border-gray);
  font-size: calc(14 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single__meta {
    margin-block-start: calc(24 * var(--to-rem));
  }
}
.p-single__author {
  display: inline-block;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single__author {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single__date {
  display: inline-block;
}
.p-single__categories {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
}
.p-single__category {
  display: inline-block;
  padding-block: calc(4 * var(--to-rem));
  padding-inline: calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-primary);
  font-size: calc(12 * var(--to-rem));
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-single__category:hover {
    opacity: 0.8;
  }
}
.p-single__thumbnail {
  overflow: hidden;
  margin-block-start: calc(32 * var(--to-rem));
  border-radius: 8px;
}
@media screen and (max-width: 767px) {
  .p-single__thumbnail {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__thumbnail img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
  transition: scale 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-single__thumbnail img {
    border-radius: 12px;
  }
}
.p-single__featured-image {
  overflow: hidden;
  margin-block-start: calc(32 * var(--to-rem));
  border-radius: 8px;
}
@media screen and (max-width: 767px) {
  .p-single__featured-image {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__featured-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .p-single__featured-image img {
    border-radius: 12px;
  }
}
.p-single__content {
  margin-block-start: calc(48 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single__content {
    margin-block-start: calc(64 * var(--to-rem));
  }
}
.p-single__content h1,
.p-single h1:not(.p-single__title) {
  margin-block-start: calc(48 * var(--to-rem));
  padding-block-end: calc(16 * var(--to-rem));
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-gray);
  color: var(--color-text);
  font-size: calc(28 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content h1,
  .p-single h1:not(.p-single__title) {
    margin-block-start: calc(64 * var(--to-rem));
    font-size: calc(36 * var(--to-rem));
  }
}
.p-single__content h2,
.p-single h2 {
  margin-block-start: calc(40 * var(--to-rem));
  padding-block-start: calc(16 * var(--to-rem));
  padding-inline-start: calc(16 * var(--to-rem));
  border-inline-start: calc(4 * var(--to-rem)) solid var(--color-accent);
  color: var(--color-text);
  font-size: calc(24 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content h2,
  .p-single h2 {
    margin-block-start: calc(56 * var(--to-rem));
    padding-inline-start: calc(20 * var(--to-rem));
    font-size: calc(28 * var(--to-rem));
  }
}
.p-single__content h3,
.p-single h3 {
  margin-block-start: calc(32 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(20 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content h3,
  .p-single h3 {
    margin-block-start: calc(40 * var(--to-rem));
    font-size: calc(24 * var(--to-rem));
  }
}
.p-single__content h4,
.p-single h4 {
  margin-block-start: calc(24 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(18 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content h4,
  .p-single h4 {
    margin-block-start: calc(32 * var(--to-rem));
    font-size: calc(20 * var(--to-rem));
  }
}
.p-single__content p,
.p-single p {
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-text);
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-single__content p,
  .p-single p {
    margin-block-start: calc(20 * var(--to-rem));
  }
}
.p-single__content ul,
.p-single__content ol,
.p-single ul,
.p-single ol {
  margin-block-start: calc(16 * var(--to-rem));
  padding-inline-start: calc(24 * var(--to-rem));
  color: var(--color-text);
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-single__content ul,
  .p-single__content ol,
  .p-single ul,
  .p-single ol {
    margin-block-start: calc(20 * var(--to-rem));
    padding-inline-start: calc(32 * var(--to-rem));
  }
}
.p-single__content ul,
.p-single ul {
  list-style-type: disc;
}
.p-single__content ol,
.p-single ol {
  list-style-type: decimal;
}
.p-single__content li,
.p-single li {
  margin-block-start: calc(8 * var(--to-rem));
  line-height: 1.8;
}
.p-single__content a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: calc(2 * var(--to-rem));
  transition: opacity var(--duration);
}
.p-single__content a:hover {
  opacity: 0.8;
}
.p-single__content img {
  display: block;
  height: auto;
  max-width: 100%;
  margin-block-start: calc(24 * var(--to-rem));
  border-radius: 8px;
}
@media screen and (max-width: 767px) {
  .p-single__content img {
    margin-block-start: calc(32 * var(--to-rem));
  }
}
.p-single__content blockquote,
.p-single blockquote {
  margin-block-start: calc(24 * var(--to-rem));
  padding-block: calc(16 * var(--to-rem));
  padding-inline: calc(24 * var(--to-rem)) calc(24 * var(--to-rem));
  border-inline-start: calc(4 * var(--to-rem)) solid var(--color-accent);
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-style: italic;
}
@media screen and (max-width: 767px) {
  .p-single__content blockquote,
  .p-single blockquote {
    margin-block-start: calc(32 * var(--to-rem));
    padding-block: calc(20 * var(--to-rem));
    padding-inline: calc(32 * var(--to-rem)) calc(32 * var(--to-rem));
  }
}
.p-single__content blockquote p,
.p-single blockquote p {
  margin-block-start: 0;
}
.p-single__content code,
.p-single code {
  padding-block: calc(2 * var(--to-rem));
  padding-inline: calc(6 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-primary);
  font-family: monospace;
  font-size: calc(14 * var(--to-rem));
}
.p-single__content pre,
.p-single pre {
  overflow-x: auto;
  margin-block-start: calc(24 * var(--to-rem));
  padding-block: calc(16 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-family: monospace;
  font-size: calc(14 * var(--to-rem));
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content pre,
  .p-single pre {
    padding-block: calc(24 * var(--to-rem));
    padding-inline: calc(24 * var(--to-rem));
  }
}
.p-single__content pre code,
.p-single pre code {
  padding-block: 0;
  padding-inline: 0;
  background-color: transparent;
}
.p-single__content table,
.p-single table {
  width: 100%;
  margin-block-start: calc(24 * var(--to-rem));
  border: calc(1 * var(--to-rem)) solid var(--color-border-gray);
  border-collapse: collapse;
}
@media screen and (max-width: 767px) {
  .p-single__content table,
  .p-single table {
    margin-block-start: calc(32 * var(--to-rem));
  }
}
.p-single__content th,
.p-single__content td,
.p-single th,
.p-single td {
  padding-block: calc(12 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border: calc(1 * var(--to-rem)) solid var(--color-border-gray);
  line-height: 1.6;
  text-align: start;
}
@media screen and (max-width: 767px) {
  .p-single__content th,
  .p-single__content td,
  .p-single th,
  .p-single td {
    padding-block: calc(16 * var(--to-rem));
    padding-inline: calc(20 * var(--to-rem));
  }
}
.p-single__content th,
.p-single th {
  background-color: var(--color-gray);
  color: var(--color-text);
  font-weight: var(--fw-bold);
}
.p-single__content td,
.p-single td {
  color: var(--color-text);
}
.p-single__content hr,
.p-single hr {
  margin-block-start: calc(32 * var(--to-rem));
  border: none;
  border-top: calc(1 * var(--to-rem)) solid var(--color-border-gray);
}
@media screen and (max-width: 767px) {
  .p-single__content hr,
  .p-single hr {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__content strong,
.p-single strong {
  color: var(--color-text);
  font-weight: var(--fw-bold);
}
.p-single__content em,
.p-single em {
  font-style: italic;
}
.p-single__tags {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  margin-block-start: calc(48 * var(--to-rem));
  padding-block: calc(24 * var(--to-rem));
  border-top: calc(1 * var(--to-rem)) solid var(--color-border-gray);
}
@media screen and (max-width: 767px) {
  .p-single__tags {
    margin-block-start: calc(64 * var(--to-rem));
    padding-block: calc(32 * var(--to-rem));
  }
}
.p-single__tag {
  display: inline-block;
  padding-block: calc(4 * var(--to-rem));
  padding-inline: calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-accent);
  font-size: calc(12 * var(--to-rem));
  text-decoration: none;
  transition: opacity var(--duration);
}
@media screen and (max-width: 767px) {
  .p-single__tag {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-single__tag:hover {
  opacity: 0.8;
}
.p-single__tag--custom {
  color: var(--color-text);
  cursor: default;
}
.p-single__navigation {
  display: grid;
  gap: calc(16 * var(--to-rem));
  margin-block-start: calc(48 * var(--to-rem));
  padding-block-start: calc(32 * var(--to-rem));
  border-top: calc(1 * var(--to-rem)) solid var(--color-border-gray);
}
@media screen and (max-width: 767px) {
  .p-single__navigation {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(24 * var(--to-rem));
    margin-block-start: calc(64 * var(--to-rem));
    padding-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__nav-item {
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 767px) {
  .p-single__nav-item--prev {
    text-align: start;
  }
}
@media screen and (max-width: 767px) {
  .p-single__nav-item--next {
    text-align: end;
  }
}
.p-single__nav-link {
  display: block;
  padding-block: calc(16 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
  color: var(--color-text);
  text-decoration: none;
  transition: opacity var(--duration);
}
@media screen and (max-width: 767px) {
  .p-single__nav-link {
    padding-block: calc(20 * var(--to-rem));
    padding-inline: calc(20 * var(--to-rem));
  }
}
.p-single__nav-link:hover {
  opacity: 0.8;
}
.p-single__nav-label {
  display: block;
  margin-block-start: calc(8 * var(--to-rem));
  color: var(--color-border-gray);
  font-size: calc(12 * var(--to-rem));
}
.p-single__nav-title {
  display: block;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__nav-title {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single--works .p-single__works-info {
  display: grid;
  gap: calc(24 * var(--to-rem));
  margin-block-start: calc(32 * var(--to-rem));
  padding-block: calc(24 * var(--to-rem));
  padding-inline: calc(24 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
}
@media screen and (max-width: 767px) {
  .p-single--works .p-single__works-info {
    gap: calc(32 * var(--to-rem));
    margin-block-start: calc(48 * var(--to-rem));
    padding-block: calc(32 * var(--to-rem));
    padding-inline: calc(32 * var(--to-rem));
  }
}
.p-single--works .p-single__works-item {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single--works .p-single__works-item {
    flex-direction: row;
    align-items: center;
  }
}
.p-single--works .p-single__works-label {
  min-width: calc(120 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-single--works .p-single__works-label {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single--works .p-single__works-value {
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single--works .p-single__works-value {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single--works .p-single__works-technologies {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
}
.p-single--works .p-single__works-technology {
  display: inline-block;
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-white);
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
.p-single--works .p-single__works-url {
  color: var(--color-accent);
  font-size: calc(14 * var(--to-rem));
  text-decoration: underline;
  text-underline-offset: calc(2 * var(--to-rem));
  transition: opacity var(--duration);
}
@media screen and (max-width: 767px) {
  .p-single--works .p-single__works-url {
    font-size: calc(16 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-single--works .p-single__works-url:hover {
    opacity: 0.8;
  }
}
.p-single--works .p-single__gallery {
  margin-block-start: calc(48 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single--works .p-single__gallery {
    margin-block-start: calc(64 * var(--to-rem));
  }
}
.p-single--works .p-single__gallery-title {
  margin-block-end: calc(24 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(20 * var(--to-rem));
  font-weight: var(--fw-bold);
}
@media screen and (max-width: 767px) {
  .p-single--works .p-single__gallery-title {
    margin-block-end: calc(32 * var(--to-rem));
    font-size: calc(24 * var(--to-rem));
  }
}
.p-single--works .p-single__gallery-list {
  display: grid;
  gap: calc(16 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single--works .p-single__gallery-list {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(24 * var(--to-rem));
  }
}
.p-single--works .p-single__gallery-item {
  overflow: hidden;
  border-radius: 8px;
  background-color: var(--color-gray);
}
.p-single--works .p-single__gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.p-single--post .p-single__related {
  margin-block-start: calc(48 * var(--to-rem));
  padding-block-start: calc(32 * var(--to-rem));
  border-top: calc(1 * var(--to-rem)) solid var(--color-border-gray);
}
@media screen and (max-width: 767px) {
  .p-single--post .p-single__related {
    margin-block-start: calc(64 * var(--to-rem));
    padding-block-start: calc(48 * var(--to-rem));
  }
}
.p-single--post .p-single__related-title {
  margin-block-end: calc(24 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(20 * var(--to-rem));
  font-weight: var(--fw-bold);
}
@media screen and (max-width: 767px) {
  .p-single--post .p-single__related-title {
    margin-block-end: calc(32 * var(--to-rem));
    font-size: calc(24 * var(--to-rem));
  }
}
.p-single--post .p-single__related-list {
  display: grid;
  gap: calc(16 * var(--to-rem));
}
@media screen and (max-width: 600px) {
  .p-single--post .p-single__related-list {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(24 * var(--to-rem));
  }
}
@media screen and (max-width: 1023px) {
  .p-single--post .p-single__related-list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-single--post .p-single__related-link {
  display: grid;
  gap: calc(12 * var(--to-rem));
  text-decoration: none;
  transition: opacity var(--duration);
}
@media screen and (max-width: 600px) {
  .p-single--post .p-single__related-link {
    grid-template-columns: calc(120 * var(--to-rem)) 1fr;
    align-items: start;
  }
}
@media (any-hover: hover) {
  .p-single--post .p-single__related-link:hover {
    opacity: 0.7;
  }
}
.p-single--post .p-single__related-thumbnail {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 8px;
  background-color: var(--color-gray);
}
@media screen and (max-width: 600px) {
  .p-single--post .p-single__related-thumbnail {
    aspect-ratio: 4/3;
  }
}
.p-single--post .p-single__related-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-single--post .p-single__related-content {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
.p-single--post .p-single__related-date {
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-single--post .p-single__related-date {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-single--post .p-single__related-item-title {
  margin: 0;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single--post .p-single__related-item-title {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-strength {
  background-color: var(--color-white);
  margin-block-start: 0;
}
.p-strength__hero {
  position: relative;
  max-width: 1440px;
  margin-inline: auto;
  padding-block: 50px 18px;
  height: 240px;
  border-end-start-radius: 32px;
  border-end-end-radius: 32px;
  background-image: linear-gradient(136.31deg, rgba(171, 205, 3, 0.9) 0.94%, rgba(0, 160, 64, 0.9) 99.05%);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-strength__hero {
    padding-block: 32px 14px;
    height: 180px;
    border-end-start-radius: 20px;
    border-end-end-radius: 20px;
  }
}
.p-strength__hero-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: var(--color-white);
}
.p-strength__hero-en {
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.08em;
}
.p-strength__hero-title {
  font-size: 24px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
}
.p-strength__hero-lead {
  max-width: 658px;
  margin-block-start: 30px;
  margin-inline: auto;
  padding-inline: 16px;
  color: var(--color-white);
  font-size: 14px;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-strength__hero-lead {
    margin-block-start: 16px;
    font-size: 13px;
  }
}
.p-strength__intro {
  padding-block: 60px 70px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-strength__intro {
    padding-block: 40px 48px;
  }
}
.p-strength__intro-inner {
  max-width: 1100px;
  margin-inline: auto;
}
.p-strength__intro-label {
  position: relative;
  display: inline-block;
  margin-block-end: 20px;
  padding-block-end: 12px;
  color: var(--color-accent);
  font-size: 18px;
  font-weight: var(--fw-medium);
}
.p-strength__intro-label::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 50%;
  translate: -50% 0;
  width: 105px;
  height: 5px;
  background-color: var(--color-secondary);
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 105 4.39938' preserveAspectRatio='none'><path d='M49.5 0C49.6636 0 49.8072 0.0797379 49.8984 0.201172C50.0509 0.200813 50.2013 0.269082 50.2998 0.400391L52.5 3.33203L54.7002 0.400391C54.7985 0.269363 54.9485 0.201111 55.1006 0.201172C55.1918 0.0794704 55.3362 0 55.5 0H104.5C104.776 0 105 0.223858 105 0.5C105 0.776142 104.776 1 104.5 1H55.5L53.0996 4.2002C52.9576 4.3893 52.7077 4.44844 52.5 4.35742C52.2923 4.44844 52.0424 4.3893 51.9004 4.2002L49.5 1H0.5C0.223858 1 0 0.776142 0 0.5C0 0.223858 0.223858 0 0.5 0H49.5Z' fill='black'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
.p-strength__intro-title {
  margin-block-end: 20px;
  color: var(--color-accent);
  font-size: 48px;
  font-weight: var(--fw-medium);
  line-height: normal;
}
@media screen and (max-width: 767px) {
  .p-strength__intro-title {
    font-size: 28px;
    margin-block-end: 16px;
  }
}
.p-strength__intro-text {
  color: var(--color-accent);
  font-size: 14px;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-strength__intro-text {
    font-size: 13px;
    text-align: left;
  }
}
.p-strength__list {
  padding-block-end: 90px;
}
@media screen and (max-width: 767px) {
  .p-strength__list {
    padding-block-end: 56px;
  }
}
.p-strength__list-inner {
  max-width: min(1180px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 45px;
}
@media screen and (max-width: 767px) {
  .p-strength__list-inner {
    gap: 28px;
  }
}
.p-strength__item {
  position: relative;
}
.p-strength__item-tab {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 12px 42px;
  background-color: var(--color-bg-light);
  border-start-start-radius: 20px;
  border-start-end-radius: 20px;
  font-family: "Futura", var(--base-font-family);
  font-size: 18px;
  font-weight: var(--fw-medium);
}
@media screen and (max-width: 767px) {
  .p-strength__item-tab {
    padding: 10px 24px;
    font-size: 16px;
  }
}
.p-strength__item-tab-en {
  color: var(--color-accent);
}
.p-strength__item-tab-num {
  color: var(--color-secondary);
}
.p-strength__item-body {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 39px;
  padding: 32px 40px;
  background-color: var(--color-bg-light);
  border-end-start-radius: 20px;
  border-end-end-radius: 20px;
  border-start-end-radius: 20px;
}
@media screen and (max-width: 767px) {
  .p-strength__item-body {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 24px;
    border-start-end-radius: 0;
  }
}
.p-strength__item-image img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  border-radius: 20px;
}
@media screen and (max-width: 767px) {
  .p-strength__item-image img {
    height: 200px;
  }
}
.p-strength__item-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
}
.p-strength__item-title {
  color: var(--color-text);
  font-size: 24px;
  font-weight: var(--fw-medium);
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-strength__item-title {
    font-size: 20px;
  }
}
.p-strength__item-desc {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.8;
}
.p-strength__item-link {
  display: inline-flex;
  align-items: center;
  align-self: flex-end;
  gap: 10px;
  color: var(--color-accent);
  font-size: 16px;
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: color var(--duration);
}
@media (any-hover: hover) {
  .p-strength__item-link:hover {
    color: var(--color-primary);
  }
}
.p-strength__item-link-arrow {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.p-strength__products {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.p-strength__products-label {
  color: var(--color-accent);
  font-size: 14px;
  font-weight: var(--fw-medium);
}
.p-strength__products-table {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin: 0;
}
.p-strength__products-row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 1px;
}
@media screen and (max-width: 767px) {
  .p-strength__products-row {
    grid-template-columns: 80px 1fr;
  }
}
.p-strength__products-term {
  padding: 4px 12px;
  background-color: var(--color-secondary);
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--fw-medium);
  text-align: center;
}
.p-strength__products-desc {
  padding: 4px 12px;
  margin: 0;
  background-color: var(--color-white);
  color: var(--color-text);
  font-size: 14px;
  font-weight: var(--fw-medium);
}
.p-top-about {
  padding-block: 129px 80px;
  background: linear-gradient(108.68deg, var(--color-secondary) 1.42%, var(--color-accent) 98.58%);
  color: var(--color-white);
  border-radius: 32px;
}
@media screen and (max-width: 767px) {
  .p-top-about {
    padding-block: 90px 56px;
    border-radius: 20px;
  }
}
.p-top-about__inner {
  max-width: min(1180px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-top-about__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-top-about__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.p-top-about__media {
  position: relative;
  aspect-ratio: 540/400;
}
.p-top-about__media-main {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: 88%;
  aspect-ratio: 480/300;
  border-radius: 14px;
  overflow: hidden;
}
.p-top-about__media-main img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-about__media-sub {
  position: absolute;
  inset-block-end: 0;
  inset-inline-end: 4%;
  width: 48%;
  aspect-ratio: 260/160;
  border-radius: 10px;
  overflow: hidden;
}
.p-top-about__media-sub img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-about__content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.p-top-about__head {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 8px;
}
.p-top-about__head-en {
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.05em;
}
.p-top-about__head-jp {
  font-size: 24px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.05em;
}
.p-top-about__menu {
  display: flex;
  flex-direction: column;
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-top-about__menu-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}
.p-top-about__menu-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 4px;
  color: var(--color-white);
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-top-about__menu-link:hover {
    opacity: 0.8;
  }
}
@media screen and (max-width: 767px) {
  .p-top-about__menu-link {
    padding: 12px 4px;
  }
}
.p-top-about__menu-label {
  font-size: 14px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-top-about__menu-label {
    font-size: 14px;
  }
}
.p-top-about__menu-icon {
  position: relative;
  display: inline-block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.p-top-about__menu-icon::before {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 0;
  width: 100%;
  height: 1.5px;
  background-color: var(--color-white);
  transform: translateY(-50%);
}
.p-top-about__menu-icon::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: 1px;
  width: 8px;
  height: 8px;
  border-top: 1.5px solid var(--color-white);
  border-right: 1.5px solid var(--color-white);
  transform: translateY(-50%) rotate(45deg);
}
.p-top-about__button-wrap {
  display: flex;
  margin-top: 12px;
}
/* .p-top-about__button は .c-btn .c-btn--ghost を使用 */
.p-top-about__button {
  /* c-btn の opacity/transform に加えて色変化も滑らかに */
  transition: opacity var(--duration), transform var(--duration), background-color var(--duration), border-color var(--duration), color var(--duration);
  /* ホバー: 白bg + accent border/text (Figma node 4031:4400 準拠) */
}
@media (any-hover: hover) {
  .p-top-about__button:hover {
    background-color: var(--color-white);
    border-color: var(--color-accent);
    color: var(--color-accent);
  }
}
.p-top-blog {
  padding-block: 74px 105px;
  background-color: var(--color-white);
  border-radius: 32px;
  position: relative;
  z-index: 2;
  margin-bottom: -50px;
}
@media screen and (max-width: 767px) {
  .p-top-blog {
    padding-block: 40px;
  }
}
.p-top-blog__inner {
  max-width: calc(978px + var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-top-blog__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-bottom: 32px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-blog__head {
    margin-bottom: 20px;
  }
}
.p-top-blog__head-en {
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  letter-spacing: 0.05em;
}
.p-top-blog__head-jp {
  font-size: 24px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  letter-spacing: 0.05em;
}
.p-top-blog__list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-top-blog__list {
    gap: 10px;
  }
}
.p-top-blog__item {
  list-style: none;
}
.p-top-blog__card {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 17px;
  align-items: stretch;
  padding: 6px;
  background-color: var(--color-white);
  border: 0;
  border-radius: 20px;
  color: inherit;
  text-decoration: none;
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  .p-top-blog__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
  }
}
@media screen and (max-width: 767px) {
  .p-top-blog__card {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 8px;
    border-radius: 16px;
  }
}
.p-top-blog__card-media {
  aspect-ratio: 300/200;
  overflow: hidden;
  background-color: var(--color-bg-light);
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-top-blog__card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-blog__card--logo .p-top-blog__card-media {
  background-color: var(--color-bg-green);
}
.p-top-blog__card--logo .p-top-blog__card-media img {
  width: 50%;
  height: auto;
  object-fit: contain;
}
.p-top-blog__card-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 8px 16px 14px 0;
  justify-content: flex-start;
}
@media screen and (max-width: 767px) {
  .p-top-blog__card-body {
    padding: 4px 12px 12px;
  }
}
.p-top-blog__card-title {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.p-top-blog__card-en {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}
.p-top-blog__card-en::after {
  content: "";
  display: inline-block;
  width: 46px;
  height: 1px;
  background-color: var(--color-accent);
}
@media screen and (max-width: 767px) {
  .p-top-blog__card-en {
    margin-bottom: 0;
  }
}
.p-top-blog__card-jp {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: var(--fw-bold);
  color: var(--color-text);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-top-blog__card-jp {
    font-size: 14px;
  }
}
.p-top-blog__card-arrow {
  color: var(--color-accent);
  vertical-align: middle;
  margin-inline-start: 6px;
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.p-top-blog__card-desc {
  font-size: 12px;
  line-height: 1.7;
  color: var(--color-text);
}
@media screen and (max-width: 767px) {
  .p-top-blog__card-desc {
    font-size: 11px;
    line-height: 1.6;
  }
}
.p-top-case {
  padding-block: 76px 90px;
  background-color: var(--color-bg-green);
  border-radius: 32px;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-top-case {
    padding-block: 40px;
    border-radius: 20px;
    margin-inline: 12px;
  }
}
.p-top-case__inner {
  width: 100%;
  margin-inline: auto;
}
.p-top-case__head,
.p-top-case__lead,
.p-top-case__nav,
.p-top-case__button-wrap {
  max-width: min(1240px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-top-case__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-bottom: 16px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-case__head {
    margin-bottom: 12px;
  }
}
.p-top-case__head-en {
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  letter-spacing: 0.05em;
}
.p-top-case__head-jp {
  font-size: 24px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  letter-spacing: 0.05em;
}
.p-top-case__lead {
  max-width: 820px;
  margin-inline: auto;
  margin-bottom: 40px;
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-case__lead {
    font-size: 13px;
    margin-bottom: 24px;
    text-align: left;
  }
}
.p-top-case__splide {
  position: relative;
  margin-bottom: 32px;
}
@media screen and (max-width: 767px) {
  .p-top-case__splide {
    margin-inline: 16px;
  }
}
.p-top-case__splide .splide__track {
  overflow: hidden;
  padding-block: 4px;
}
.p-top-case__splide .splide__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-top-case__slide {
  list-style: none;
}
.p-top-case__card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  height: 100%;
  background-color: var(--color-white);
  border: 1px solid #c8c8c8;
  border-radius: 26px;
  padding: 6px 6px 12px;
  color: inherit;
  text-decoration: none;
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  .p-top-case__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
  }
}
.p-top-case__card-media {
  position: relative;
  aspect-ratio: 300/200;
  border-radius: 20px;
  overflow: hidden;
}
.p-top-case__card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-case__card-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-inline: 12px;
  flex-grow: 1;
}
.p-top-case__card-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--color-text);
}
.p-top-case__card-title {
  font-size: 16px;
  font-weight: var(--fw-medium);
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.p-top-case__card-excerpt {
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.6;
  height: 46px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p-top-case__card-meta {
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.p-top-case__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 40px;
}
.p-top-case__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  background-color: var(--color-secondary);
  border: none;
  border-radius: 50%;
  color: var(--color-white);
  cursor: pointer;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-top-case__arrow:hover {
    opacity: 0.85;
  }
}
.p-top-case__arrow-icon {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid var(--color-white);
  border-right: 1.5px solid var(--color-white);
}
.p-top-case__arrow--prev .p-top-case__arrow-icon {
  transform: rotate(-135deg);
  translate: 2px 0;
}
.p-top-case__arrow--next .p-top-case__arrow-icon {
  transform: rotate(45deg);
  translate: -2px 0;
}
.p-top-case__pagination {
  display: flex;
  align-items: center;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-top-case__pagination .splide__pagination,
.p-top-case__pagination-list {
  position: static;
  display: flex;
  align-items: center;
  gap: 10px;
  width: auto;
  list-style: none;
  padding: 0;
  margin: 0;
  pointer-events: auto;
}
.p-top-case__pagination li {
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 0;
}
.p-top-case__pagination .splide__pagination__page {
  display: inline-block;
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: #d9d9d9;
  cursor: pointer;
  transition: background-color var(--duration), transform var(--duration);
}
.p-top-case__pagination .splide__pagination__page.is-active {
  background-color: var(--color-accent);
  transform: scale(1.2);
}
.p-top-case__button-wrap {
  display: flex;
  justify-content: center;
}
/* .p-top-case__button は .c-btn .c-btn--gradient を使用 */
.p-top-news {
  padding-block: 96px 88px;
  background-color: var(--color-white);
  border-radius: 0 0 32px 32px;
  margin-top: 0;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-top-news {
    padding-block: 32px 48px;
    border-radius: 0 0 20px 20px;
  }
}
.p-top-news__inner {
  max-width: calc(980px + var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-top-news__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media screen and (max-width: 1023px) {
  .p-top-news__head {
    flex-direction: column;
    gap: 16px;
  }
}
.p-top-news__head-title {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.p-top-news__head-title-en {
  font-family: "Futura", var(--base-font-family);
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  letter-spacing: 0.05em;
}
.p-top-news__head-title-jp {
  font-size: 24px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  letter-spacing: 0.05em;
}
.p-top-news__tabs {
  display: flex;
  justify-content: center;
  gap: 3px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-top-news__tabs {
    /* SP: 横スクロール可能にする */
    justify-content: flex-start;
    align-self: stretch;
    overflow-x: auto;
    flex-wrap: nowrap;
    margin-inline: -20px;
    padding-inline: 20px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    mask-image: linear-gradient(to right, #000 calc(100% - 36px), transparent);
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 36px), transparent);
  }
  .p-top-news__tabs::-webkit-scrollbar {
    display: none;
  }
}
.p-top-news__tab {
  background-color: var(--color-accent);
  border-radius: 10px 10px 0 0;
  transition: background-color var(--duration);
}
.p-top-news__tab.is-active {
  background-color: var(--color-gray);
}
@media screen and (max-width: 767px) {
  .p-top-news__tab {
    /* SP: タブを縮ませず、はみ出させてスクロール可能に */
    flex-shrink: 0;
  }
}
.p-top-news__tab-button {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 32px;
  border: none;
  background: transparent;
  color: var(--color-white);
  font-size: 18px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  white-space: nowrap;
  cursor: pointer;
}
.p-top-news__tab.is-active .p-top-news__tab-button {
  color: var(--color-text);
}
@media screen and (max-width: 767px) {
  .p-top-news__tab-button {
    padding: 10px 20px;
    font-size: 14px;
  }
}
.p-top-news__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 12px;
  background-color: var(--color-gray);
  border-radius: 20px 0 20px 20px;
}
@media screen and (max-width: 767px) {
  .p-top-news__list {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 10px;
    border-radius: 0 0 20px 20px;
  }
}
.p-top-news__card {
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 26px;
  overflow: hidden;
  transition: transform var(--duration), box-shadow var(--duration);
}
@media (any-hover: hover) {
  .p-top-news__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
  }
}
.p-top-news__card-link {
  display: flex;
  flex-direction: column;
  padding: 6px 6px 12px;
  text-decoration: none;
  color: inherit;
}
.p-top-news__card-media {
  position: relative;
  aspect-ratio: 300/200;
  border-radius: 20px;
  overflow: hidden;
  background-color: var(--color-bg-green);
}
.p-top-news__card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-news__card-date {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  background-color: var(--color-white);
  border-start-end-radius: 12px;
  color: var(--color-accent);
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  z-index: 2;
}
.p-top-news__card-category {
  position: absolute;
  inset-block-start: 10px;
  inset-inline-end: 10px;
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 100px;
  color: var(--color-text);
  font-size: 14px;
  font-weight: var(--fw-medium);
}
.p-top-news__card-body {
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.p-top-news__card-title {
  font-size: 14px;
  font-weight: var(--fw-bold);
  line-height: 1.5;
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.p-top-news__card-excerpt {
  font-size: 12px;
  line-height: 1.5;
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.p-top-products {
  padding-block: 84px 106px;
  background-color: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-top-products {
    padding-block: 40px 80px;
  }
}
.p-top-products__inner {
  max-width: calc(980px + var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-top-products__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-bottom: 16px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-products__head {
    margin-bottom: 12px;
  }
}
.p-top-products__head-en {
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  letter-spacing: 0.05em;
}
.p-top-products__head-jp {
  font-size: 24px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  letter-spacing: 0.05em;
}
.p-top-products__lead {
  max-width: 600px;
  margin-inline: auto;
  margin-bottom: 38px;
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-text);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-products__lead {
    font-size: 13px;
    margin-bottom: 20px;
    text-align: left;
  }
}
.p-top-products__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  list-style: none;
  padding: 0;
  margin: 0 0 44px;
}
@media screen and (max-width: 767px) {
  .p-top-products__list {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 24px;
  }
}
.p-top-products__item {
  list-style: none;
}
.p-top-products__card {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform var(--duration);
}
@media (any-hover: hover) {
  .p-top-products__card:hover {
    transform: translateY(-2px);
  }
}
.p-top-products__card-media {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 470/314;
  object-fit: cover;
  border-radius: 20px;
}
.p-top-products__card-label {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  padding: 22px 32px 18px;
  background-color: var(--color-bg-light);
  border-radius: 0 20px 0 20px;
  font-size: 20px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  letter-spacing: 0.05em;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-top-products__card-label {
    padding: 14px 20px 12px;
    font-size: 16px;
  }
}
.p-top-products__medical {
  margin-bottom: 24px;
  padding: 24px 20px;
  background-color: var(--color-bg-light);
  border: 0;
  border-radius: 20px;
}
@media screen and (max-width: 767px) {
  .p-top-products__medical {
    padding: 16px 12px;
    margin-bottom: 20px;
  }
}
.p-top-products__medical-title {
  margin-bottom: 16px;
  font-size: 16px;
  font-weight: var(--fw-medium);
  color: var(--color-text);
  text-align: center;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-top-products__medical-title {
    font-size: 14px;
    margin-bottom: 12px;
  }
}
.p-top-products__medical-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-top-products__medical-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
}
.p-top-products__medical-item {
  list-style: none;
}
.p-top-products__medical-card {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform var(--duration);
}
@media (any-hover: hover) {
  .p-top-products__medical-card:hover {
    transform: translateY(-2px);
  }
}
.p-top-products__medical-media {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 221/254;
  object-fit: cover;
  border-radius: 14px;
}
.p-top-products__medical-label {
  position: absolute;
  inset-block-end: 12px;
  inset-inline-start: 50%;
  transform: translateX(-50%);
  padding: 2px 12px;
  background-color: var(--color-secondary);
  border-radius: 100px;
  color: var(--color-white);
  font-size: 14px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-top-products__medical-label {
    font-size: 12px;
    padding: 2px 10px;
  }
}
.p-top-products__button-wrap {
  display: flex;
  justify-content: center;
}
/* .p-top-products__button は .c-btn .c-btn--gradient を使用 */
.p-top-recruit {
  padding-block: 83px 89px;
  background-color: var(--color-white);
}
@media screen and (max-width: 767px) {
  .p-top-recruit {
    padding-block: 56px 32px;
  }
}
.p-top-recruit__inner {
  max-width: calc(780px + var(--padding-inner) * 2);
  margin-inline: auto;
}
.p-top-recruit__banner {
  position: relative;
  display: block;
  aspect-ratio: 780/199;
  border-radius: 12px;
  overflow: hidden;
  color: var(--color-white);
  text-decoration: none;
}
@media (any-hover: hover) {
  .p-top-recruit__banner:hover .p-top-recruit__media img {
    transform: scale(1.04);
  }
}
@media screen and (max-width: 767px) {
  .p-top-recruit__banner {
    aspect-ratio: 16/10;
    border-radius: 12px;
  }
}
.p-top-recruit__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.p-top-recruit__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  transition: transform var(--duration);
}
.p-top-recruit__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.7) 50%, rgba(0, 0, 0, 0.7) 100%);
}
@media screen and (max-width: 767px) {
  .p-top-recruit__media::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%);
  }
}
.p-top-recruit__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 4px;
  height: 100%;
  padding: 24px 32px 32px;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__content {
    padding: 24px 20px 24px;
    gap: 6px;
  }
}
.p-top-recruit__title {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 24px;
  font-weight: var(--fw-bold);
  color: var(--color-white);
  letter-spacing: 0.05em;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__title {
    font-size: 18px;
  }
}
.p-top-recruit__arrow {
  color: var(--color-white);
  vertical-align: middle;
  margin-inline-start: 8px;
  display: inline-block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><g transform='rotate(90 9 9)'><path d='M8.25 4.37L4.8 7.8L3.75 6.75L9 1.5L14.25 6.75L13.2 7.82L9.75 4.37V9.75H8.25V4.37ZM8.25 13.5V11.25H9.75V13.5H8.25ZM8.25 16.5V15H9.75V16.5H8.25Z' fill='black'/></g></svg>");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.p-top-recruit__subtitle {
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.05em;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-top-recruit__subtitle {
    font-size: 12px;
  }
}
.p-top-strength {
  position: relative;
  padding-block: 0;
  color: var(--color-white);
  overflow: hidden;
  isolation: isolate;
  /* 背景のみ blur(5px) — 子要素の文字・ボタンには影響させない */
}
.p-top-strength::before {
  content: "";
  position: absolute;
  inset: -10px;
  z-index: -1;
  background-image: linear-gradient(111.31deg, rgba(171, 205, 3, 0.8) 0.95%, rgba(0, 160, 64, 0.8) 99.05%), url("../images/image_water_splash.webp");
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat;
  filter: blur(5px);
}
.p-top-strength__inner {
  max-width: min(1180px, 100% - var(--padding-inner) * 2);
  margin-inline: auto;
  padding-block: 55px 70px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-strength__inner {
    padding-block: 32px 48px;
  }
}
.p-top-strength__box {
  position: relative;
}
.p-top-strength__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-bottom: 44px;
}
@media screen and (max-width: 767px) {
  .p-top-strength__head {
    margin-bottom: 16px;
  }
}
.p-top-strength__head-en {
  font-family: "Futura", var(--base-font-family);
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.05em;
}
.p-top-strength__head-jp {
  font-size: 24px;
  font-weight: var(--fw-medium);
  color: var(--color-white);
  letter-spacing: 0.05em;
}
.p-top-strength__catch {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 18px;
}
@media screen and (max-width: 767px) {
  .p-top-strength__catch {
    gap: 4px;
    margin-bottom: 20px;
  }
}
.p-top-strength__catch-sub {
  font-size: 32px;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-top-strength__catch-sub {
    font-size: 20px;
  }
}
.p-top-strength__catch-main {
  display: inline-block;
  font-size: 48px;
  line-height: 1.3;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .p-top-strength__catch-main {
    font-size: 26px;
  }
}
.p-top-strength__lead {
  max-width: 658px;
  margin-inline: auto;
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .p-top-strength__lead {
    font-size: 13px;
    line-height: 1.7;
    margin-bottom: 24px;
  }
}
/* .p-top-strength__button は .c-btn .c-btn--gradient を使用 */
/* 共通スタイルは _p-article-detail.scss に統一されました */
/* ===========================================================
 * トピック(お知らせ)一覧 (Topics archive)
 *
 * 主要スタイルは _p-column.scss に集約済み:
 *   .p-column,.p-topics / __section / __inner / __filter / __board /
 *   __grid / __card のセレクタリストでコラム一覧と完全共通化
 *
 * カード基本スタイルは .c-card 共通コンポーネント参照
 * このファイルにはニュース固有の追加スタイルのみ記述する
 * =========================================================== */
/* ===========================================================
 * 動画ライブラリ一覧 (Library archive)
 *
 * .p-video-library / __section / __inner / __filter / __board は
 * _p-column.scss にて .p-column, .p-topics と共通化済み。
 * このファイルには動画リスト固有スタイルのみ記述する。
 *
 * Figma: 1180px ボード内に、横長カード(白bg/radius20/padding6, 画像400×267)を縦並び
 * =========================================================== */
/* 動画リスト: 縦に並ぶ横長カード */
.p-video-library__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-video-library__list {
    gap: 16px;
  }
}
.p-video-library__item {
  display: flex;
  align-items: stretch;
  gap: 17px;
  background-color: var(--color-white);
  border-radius: 20px;
  padding: 6px;
}
@media screen and (max-width: 767px) {
  .p-video-library__item {
    flex-direction: column;
    gap: 12px;
    padding: 6px 6px 12px;
  }
}
.p-video-library__thumb {
  position: relative;
  flex: 0 0 400px;
  aspect-ratio: 400/267;
  background-color: #d7d7d7;
  border-radius: 20px;
  overflow: hidden;
}
.p-video-library__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .p-video-library__thumb {
    flex: 0 0 auto;
    width: 100%;
  }
}
.p-video-library__play {
  position: absolute;
  inset: 0;
  margin: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: rgba(0, 0, 0, 0.4);
  border: none;
  border-radius: 50%;
  padding: 0;
  cursor: pointer;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-video-library__play:hover {
    opacity: 0.85;
  }
}
.p-video-library__play span {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 16px solid var(--color-white);
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  margin-inline-start: 4px;
}
.p-video-library__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 16px 16px 0;
}
@media screen and (max-width: 767px) {
  .p-video-library__body {
    padding: 0 12px 4px;
  }
}
.p-video-library__title {
  color: var(--color-text);
  font-size: 20px;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-video-library__title {
    font-size: 17px;
  }
}
.p-video-library__desc {
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.8;
}
.p-video-library__desc p {
  margin: 0 0 0.5em;
}
.p-video-library__desc p:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .p-video-library__desc {
    font-size: 13px;
  }
}
.p-video-library__empty {
  text-align: center;
  color: var(--color-text);
  padding-block: 40px;
}
.p-works-list {
  padding-block: calc(48 * var(--to-rem)) calc(32 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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 (max-width: 767px) {
  .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%);
}
/**
 * スクロール連動フェードイン（柔らかさの演出）
 * JSでビューポート外のセクションに .js-fade を付与し、
 * 交差時に .is-inview を追加して表示する。
 */
.js-fade {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.js-fade.is-inview {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .js-fade {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
@media (width <= 767px) {
  [data-only-device=md] {
    display: none;
  }
}
@media (width >= 768px) {
  [data-only-device=sm] {
    display: none;
  }
}
/* PC (768px以上) のみ表示 */
@media (width <= 767px) {
  .pc {
    display: none !important;
  }
}
/* SP (767px以下) のみ表示 */
@media (width >= 768px) {
  .sp {
    display: none !important;
  }
}
.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;
}