@charset "UTF-8";
@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（sass変数を使用） */
  /* z-index */
  --z-index-header: 100;
  --z-index-modal: 200;
  --z-index-overlay: 900;
  /* color */
  --color-base: #fff;
  --color-text: #2f2d2e;
  --color-white: #fff;
  --color-black: #000;
  --color-gray100: #eff1f3;
  --color-gray300: #cccccc;
  --color-gray500: #9ea4b5;
  --color-gray600: #61707d;
  --color-gray900: #2f2d2e;
  --color-accent: #af1b3f;
  --color-primary: #5b85aa;
  --color-secondary: #a5915b;
  --color-line: #46ac68;
  --color-orange: #de8430;
  /* font-family */
  --ff-base: "Local Noto Sans JP", "Noto Sans JP", sans-serif;
  --ff-en: "Inter", sans-serif;
  --to-rem: calc(tan(atan2(1px, var(--root-font-size))) * 1rem);
  /* transition duration */
  --duration: 0.3s;
  /* header height */
  --header-height: 80px;
}
@media screen and (width <= 767px) {
  :root {
    --header-height: 60px;
  }
}

/*! 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%;
}
@media screen and (max-width: 1307px) and (min-width: 390px) {
  html {
    font-size: max(16 / 1308 * 100vw, 10px);
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: clamp(8px, 16 / 390 * 100vw, 20px);
  }
}

body {
  color: var(--color-text);
  font-family: var(--ff-base);
  font-weight: 400;
}

a[href^=tel] {
  text-decoration: none;
}

@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
a {
  color: inherit;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  /* 強調をなくす */
  transition: opacity var(--duration) ease;
}
@media (hover: hover) {
  a:hover {
    opacity: 0.7;
  }
}

img,
svg {
  vertical-align: middle;
}

picture {
  display: block;
}

video,
object {
  display: block;
  max-width: 100%;
  height: auto;
  border: none;
}

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

input[type=text] {
  font-size: 1rem;
  /* = 16px */
}

input,
textarea,
select {
  font: inherit;
}

input[type=submit],
input[type=button],
button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 0;
  outline: none;
}

button {
  margin: 0;
  font: inherit;
  color: inherit;
  background: transparent;
  background: none;
  border: none;
}

textarea {
  field-sizing: content;
}

/* 画面上部に固定（inset:0 だと全画面になってしまうため top/左右のみ） */
.l-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: var(--z-index-header);
  width: 100%;
}

.l-inner {
  width: min(100%, 81.75rem);
  margin-inline: auto;
  padding-inline: 3.125rem;
}
@media screen and (max-width: 767px) {
  .l-inner {
    width: min(100%, 38rem);
    padding-inline: 1.5rem;
  }
}

.l-main {
  margin-block-start: var(--header-height);
}
@media screen and (max-width: 767px) {
  .l-main {
    margin-block-start: var(--header-height);
  }
}

/**
 * パンくずリスト（c-breadcrumb）
 *
 * 構造:
 *   .c-breadcrumb（外枠）
 *   .c-breadcrumb__inner（l-inner）
 *   .c-breadcrumb__nav > .c-breadcrumb__list > .c-breadcrumb__item
 * 区切りは .c-breadcrumb__item + .c-breadcrumb__item::before で表示
 */
.c-breadcrumb {
  padding-block: 1rem;
}
@media screen and (max-width: 767px) {
  .c-breadcrumb {
    padding-block: 0.875rem;
    overflow-x: auto;
    white-space: nowrap;
  }
}

.c-breadcrumb__list {
  display: flex;
  align-items: flex-start;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  color: var(--color-text, #333);
  font-size: 0.875rem;
  /* 2番目以降の項目の前に矢印を表示 */
}
@media screen and (max-width: 767px) {
  .c-breadcrumb__item {
    font-size: 0.75rem;
  }
}
.c-breadcrumb__item + .c-breadcrumb__item::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 11px;
  margin: 0 8px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 6 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.56055 4.85352L0.707031 9.70703L0 9L4.14648 4.85352L0 0.707031L0.707031 0L5.56055 4.85352Z' fill='%23323232'/%3E%3C/svg%3E") no-repeat center/contain;
}

.c-breadcrumb__link {
  min-width: 0;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
@media (any-hover: hover) {
  .c-breadcrumb__link:hover {
    opacity: 0.7;
  }
}

.c-button {
  position: relative;
  display: inline-block;
  padding: 0.875rem 3.75rem;
  border: 1px solid currentcolor;
  background-color: var(--color-white);
  color: var(--color-black);
  font-size: 0.9375rem;
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.c-button::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.25rem;
  width: 0.5rem;
  height: 0.5rem;
  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;
}

/**
 * ページネーション共通コンポーネント
 *
 * 親（プロジェクト）から上書きする場合:
 *   - 呼び出し元で親クラスで wrap する（例: <div class="p-archive__pagination">...</div>）
 *   - プロジェクトの SCSS ではその wrapper クラスに --_pagination-* を設定する
 *   - 親の CSS ファイルに c-pagination のクラス名は書かない（コンポーネントのカプセル化）
 *
 * 上書き可能な変数: --_pagination-bg, --_pagination-text, --_pagination-text-hover,
 *   --_pagination-bg-hover, --_pagination-active-bg, --_pagination-active-text,
 *   --_pagination-border, --_pagination-border-hover
 */
.c-pagination {
  /* 色（ローカル変数。親の wrapper で上書き可能） */
  --_pagination-bg: var(--color-white, #fff);
  --_pagination-text: var(--color-text);
  --_pagination-text-hover: #374151;
  --_pagination-bg-hover: #f9fafb;
  --_pagination-active-bg: var(--color-black, #000);
  --_pagination-active-text: var(--color-white, #fff);
  --_pagination-border: #d1d5db;
  --_pagination-border-hover: #9ca3af;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.c-pagination__item {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 2.75rem;
  min-width: 2.75rem;
  padding: 0 0.75rem;
  border: 1px solid var(--_pagination-border);
  background-color: var(--_pagination-bg);
  color: var(--_pagination-text);
  font-size: 0.9375rem;
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
@media screen and (max-width: 767px) {
  .c-pagination__item {
    height: 2.5rem;
    min-width: 2.5rem;
    font-size: 0.875rem;
  }
}
@media (any-hover: hover) {
  .c-pagination__item:hover:not([data-state=current]) {
    border-color: var(--_pagination-border-hover);
    background-color: var(--_pagination-bg-hover);
    color: var(--_pagination-text-hover);
  }
}

.c-pagination__item[data-state=current] {
  border-color: var(--_pagination-active-bg);
  background-color: var(--_pagination-active-bg);
  color: var(--_pagination-active-text);
}

.c-pagination__item[data-state=dots] {
  border-color: transparent;
  background-color: transparent;
  cursor: default;
}
.c-pagination__item[data-state=dots]:hover {
  border-color: transparent;
  background-color: transparent;
}

.c-pagination__item[data-state=prev],
.c-pagination__item[data-state=next] {
  font-weight: 500;
}

.c-pagination__item[data-state=disabled] {
  opacity: 0.6;
  cursor: default;
}
@media (any-hover: hover) {
  .c-pagination__item[data-state=disabled]:hover {
    border-color: var(--_pagination-border);
    background-color: var(--_pagination-bg);
    color: var(--_pagination-text);
  }
}

.c-section-title {
  display: grid;
  gap: 0.75rem;
  justify-items: center;
  width: max-content;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .c-section-title {
    gap: 0.5rem;
  }
}
.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: 80%;
  height: 0.1875rem;
  background-color: var(--color-orange);
}
@media screen and (max-width: 767px) {
  .c-section-title::after {
    width: 60%;
  }
}

.c-section-title__main {
  color: var(--color-text);
  font-family: var(--ff-en);
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .c-section-title__main {
    font-size: 2rem;
  }
}

.c-section-title__sub {
  color: var(--color-text);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .c-section-title__sub {
    font-size: 0.875rem;
  }
}

.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: 700;
  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: 700;
  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: 500;
}

.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-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-contact {
  padding-block: 4.5rem;
}

.p-contact__form {
  margin-block-start: 4rem;
}

.p-contact__title {
  display: grid;
  place-items: center;
}

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

.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));
  }
}

.p-error {
  padding-block: 5rem;
}
@media screen and (max-width: 767px) {
  .p-error {
    padding-block: 3.75rem;
  }
}

.p-error__header {
  margin-block-end: 2rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-error__header {
    margin-block-end: 1.5rem;
  }
}

.p-error__title {
  color: var(--color-text);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-error__title {
    font-size: 1.5rem;
  }
}

.p-error__content {
  max-width: 40rem;
  margin-inline: auto;
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.8;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-error__content {
    font-size: 0.875rem;
  }
}

.p-error__content p + p {
  margin-block-start: 1.5rem;
}

.p-footer {
  padding: calc(40 * var(--to-rem)) 0;
  background-color: var(--color-primary);
}
@media screen and (max-width: 767px) {
  .p-footer {
    padding: calc(60 * var(--to-rem)) 0;
  }
}

.p-footer__content {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start;
  gap: calc(20 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-footer__content {
    flex-direction: column;
    align-items: center;
  }
}

.p-footer__logo {
  width: 100%;
  max-width: calc(40 * var(--to-rem));
}
.p-footer__logo img {
  width: 100%;
  height: auto;
}

.p-footer__nav-list {
  display: flex;
  flex-wrap: wrap;
  gap: calc(15 * var(--to-rem)) calc(30 * var(--to-rem));
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .p-footer__nav-list {
    justify-content: flex-end;
  }
}

.p-footer__nav-item a {
  color: var(--color-white);
  text-decoration: none;
  transition: opacity 0.3s;
}

@media (any-hover: hover) {
  .p-footer__nav-item a:hover {
    opacity: 0.7;
  }
}
.p-footer__bottom {
  margin-block-start: calc(30 * var(--to-rem));
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-footer__bottom {
    margin-block-start: calc(40 * var(--to-rem));
  }
}

.p-footer__copyright {
  color: var(--color-white);
  font-size: calc(14 * var(--to-rem));
}

.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-primary);
  --_form-color-border: var(--color-border);
  --_form-color-primary: var(--color-primary);
  max-width: 62.5rem;
  margin-inline: auto;
}
.p-form > * {
  margin-block-start: 3rem;
}
@media screen and (max-width: 767px) {
  .p-form > * {
    margin-block-start: 2rem;
  }
}
.p-form > *:nth-last-child(2) {
  margin-block-start: 2rem;
}
@media screen and (max-width: 767px) {
  .p-form > *:nth-last-child(2) {
    margin-block-start: 1.5rem;
  }
}

.p-form.p-form--confirm .p-form__label {
  margin-block-start: 0;
}

.p-form__item {
  display: flex;
  align-items: flex-start;
  gap: 1.875rem;
}
@media screen and (max-width: 767px) {
  .p-form__item {
    flex-direction: column;
    gap: 0.5rem;
  }
}

.p-form__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.875rem;
  min-width: 15.625rem;
  margin-block-start: 0.9em;
  color: var(--_form-color-text);
  font-size: 1rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .p-form__label {
    gap: 1rem;
    min-width: auto;
  }
}

.p-form__label-note {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  color: var(--_form-color-text);
}

.p-form__label-required {
  display: inline-block;
  padding-block: 0.5rem;
  padding-inline: 1rem;
  border-radius: 4px;
  background-color: var(--_form-color-badge-bg);
  color: var(--_form-color-badge-text);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-form__label-required {
    padding-block: 0.25rem;
    padding-inline: 0.75rem;
  }
}

.p-form__data {
  flex: 1;
}
@media screen and (max-width: 767px) {
  .p-form__data {
    flex: auto;
    width: 100%;
  }
}

.p-form__data-inner {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.p-form__data-inner > * {
  flex: 1;
}

.p-form__address {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.p-form__input,
.p-form__select,
.p-form__textarea {
  width: 100%;
  padding: 1rem 1.25rem;
  border: 1px solid var(--_form-color-border);
  border-radius: 8px;
  background-color: var(--_form-color-bg);
  color: var(--_form-color-text);
  font-size: 1rem;
  line-height: 1.5;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-form__input,
  .p-form__select,
  .p-form__textarea {
    padding: 0.875rem 1.25rem;
  }
}

.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);
}

.p-form__select {
  position: relative;
  padding-inline-end: 3rem;
  cursor: pointer;
  appearance: none;
}

.p-form__select-wrap {
  position: relative;
}

.p-form__select-wrap::after {
  content: "";
  position: absolute;
  top: 1.75rem;
  right: 1rem;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  width: 0.75rem;
  height: 0.5rem;
  border: none;
  background-color: var(--_form-color-primary);
  pointer-events: none;
  translate: 0 -50%;
}

.p-form__textarea {
  min-height: 10rem;
  resize: vertical;
}

.p-form__radio-group {
  display: flex;
  flex-direction: column;
  gap: 2rem 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-form__radio-group {
    flex-flow: row wrap;
    gap: 0.5rem;
  }
}

.p-form__radio {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  cursor: pointer;
}

.p-form__radio input[type=radio] {
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  margin-inline-end: 0.5rem;
  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: 0.5rem;
  height: 0.5rem;
  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: 1rem;
  user-select: none;
}

.p-form__checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  cursor: pointer;
}

.p-form__checkbox input[type=checkbox] {
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  margin-inline-end: 0.5rem;
  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: 0.125rem;
  left: 0.3125rem;
  width: 0.375rem;
  height: 0.625rem;
  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: 1rem;
  user-select: none;
}

.p-form__acceptance {
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-form__acceptance {
    text-align: left;
  }
}

.p-form__acceptance-text {
  color: var(--_form-color-text);
  font-size: 1rem;
  font-weight: 500;
}
.p-form__acceptance-text + * {
  display: block;
  margin-block-start: 1rem;
}

.p-form__privacy {
  text-decoration: underline;
  text-underline-offset: 0.3125rem;
}

.p-form__acceptance .p-form__data-checkbox {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0;
  align-items: center;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .p-form__acceptance .p-form__data-checkbox {
    display: flex;
    justify-content: center;
  }
}

.p-form__acceptance input[type=checkbox] {
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  margin-inline-end: 0.5rem;
  border: 2px solid var(--_form-color-border);
  border-radius: 4px;
  cursor: pointer;
  appearance: none;
  transition: border-color 0.2s ease;
}

.p-form__acceptance input[type=checkbox]:checked {
  border-color: var(--_form-color-accent);
  background-color: var(--_form-color-accent);
}
.p-form__acceptance input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 0.125rem;
  left: 0.3125rem;
  width: 0.375rem;
  height: 0.625rem;
  border: 2px solid var(--_form-color-bg);
  border-top: none;
  border-left: none;
  rotate: 45deg;
}

.p-form__acceptance input[type=checkbox]:hover:not(:checked) {
  border-color: var(--_form-color-accent);
  opacity: 0.5;
}

.p-form__acceptance .p-form__label-required {
  margin-inline-end: 1.875rem;
}
@media screen and (max-width: 767px) {
  .p-form__acceptance .p-form__label-required {
    margin-inline-end: 0.5rem;
  }
}

@media screen and (max-width: 767px) {
  .p-form__acceptance .p-form__checkbox-text {
    font-size: 0.875rem;
  }
}

.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__submit {
  text-align: center;
}

.p-form__error {
  display: block;
  color: var(--_form-color-badge-bg);
  font-size: 0.875rem;
}

.p-form__success {
  padding: 1.5rem;
  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: 1rem;
  text-align: center;
}

.wpcf7-list-item {
  display: flex;
  margin: 0;
}

.p-form__radio .wpcf7-list-item-label,
.p-form__radio .wpcf7-li label {
  color: var(--_form-color-text);
  font-size: 1rem;
  line-height: 1.5;
  user-select: none;
}

.p-form__radio .wpcf7-list-item label {
  display: flex;
  align-items: center;
}

.p-form__checkbox .wpcf7-list-item label {
  display: flex;
  align-items: center;
  cursor: pointer;
}

.p-form__item .wpcf7-list-item {
  display: flex;
  align-items: center;
}

.p-header__skip-link {
  position: absolute;
  top: 0;
  left: 0;
  z-index: calc(var(--z-index-header) + 10);
  padding: 0.75rem 1rem;
  border-radius: 0 0 0.25rem 0;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  transform: translateY(-120%);
  transition: transform var(--duration);
}
.p-header__skip-link:focus {
  transform: translateY(0);
  outline: 2px solid var(--color-white);
  outline-offset: 2px;
}

.p-header {
  height: var(--header-height);
  overflow: visible;
  background-color: var(--color-white);
  box-shadow: none;
}
@media screen and (max-width: 767px) {
  .p-header {
    height: var(--header-height);
  }
}

.p-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 90rem;
  height: 100%;
  margin-inline: auto;
  padding-inline: 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-header__inner {
    max-width: 100%;
    padding-inline: 1.5rem;
  }
}

.p-header__brand {
  display: flex;
  flex-shrink: 0;
  align-items: center;
}

.p-header__logo {
  margin: 0;
  width: 100%;
  max-width: 9.3125rem;
}
@media screen and (max-width: 767px) {
  .p-header__logo {
    max-width: 9.3125rem;
  }
}

.p-header__logo a {
  display: flex;
  align-items: center;
  height: 100%;
  min-height: 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-header__logo a {
    min-height: 2.5rem;
  }
}

.p-header__logo img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 3rem;
  object-fit: contain;
}

.p-header__nav-cluster {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  column-gap: 3.375rem;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .p-header__nav-cluster {
    display: none;
  }
}

.p-header__nav {
  position: relative;
  flex-shrink: 0;
  height: inherit;
  overflow: visible;
}

.p-header__nav-list {
  display: flex;
  align-items: center;
  height: inherit;
  column-gap: 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-header__nav-item {
  position: relative;
  display: flex;
  align-items: center;
  height: inherit;
}

.p-header__nav-item > a.p-header__nav-link,
.p-header__nav-trigger {
  display: inline-flex;
  align-items: center;
  align-self: stretch;
  padding-block: 0.25rem;
  padding-inline: 0;
  border: none;
  color: var(--color-text);
  font-family: var(--ff-base);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.03em;
  background-color: transparent;
  cursor: pointer;
  transition: color var(--duration);
}

.p-header__nav-trigger {
  gap: 0;
}

.p-header__nav-caret {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  margin-inline-start: 0;
  color: inherit;
  transition: transform var(--duration);
}

.p-header__nav-caret-inner {
  display: block;
  width: 0.375rem;
  height: 0.375rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-0.125rem);
}

@media (any-hover: hover) {
  .p-header__nav-item--mega-caret-down:hover .p-header__nav-caret {
    transform: rotate(180deg);
  }
}
.p-header__nav-item--mega-caret-down:focus-within .p-header__nav-caret {
  transform: rotate(180deg);
}

.p-header__nav-link {
  border-bottom: 1px solid var(--color-gray900);
  text-decoration: none;
}
@media (any-hover: hover) {
  .p-header__nav-link:hover {
    opacity: 1;
    text-decoration: underline;
    text-underline-offset: 0.25rem;
  }
}

.p-header__actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  column-gap: 2.1875rem;
}

.p-header__contact {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  row-gap: 0.3125rem;
  margin-block-start: 0.1875rem;
}

.p-header__contact-tel {
  display: flex;
  align-items: center;
  column-gap: 0.625rem;
}

.p-header__contact-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.375rem;
  height: 1.5625rem;
}

.p-header__contact-phone-mark {
  display: block;
  width: 2.375rem;
  height: 1.5625rem;
  border-radius: 0.25rem;
  background-color: var(--color-primary);
  position: relative;
}
.p-header__contact-phone-mark::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.625rem;
  height: 0.875rem;
  border: 0.125rem solid var(--color-white);
  border-radius: 0.125rem;
  transform: translate(-50%, -50%);
}

.p-header__tel-num {
  color: var(--color-text);
  font-family: var(--ff-en);
  font-size: 1.75rem;
  font-weight: 500;
  text-decoration: none;
  line-height: 1.2;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
@media (any-hover: hover) {
  .p-header__tel-num:hover {
    opacity: 0.85;
  }
}

.p-header__contact-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 0.5rem;
  margin: 0;
  color: var(--color-text);
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
}

.p-header__contact-hours {
  font-weight: 400;
}

.p-header__contact-hours-time {
  font-family: var(--ff-en);
  font-weight: 500;
}

.p-header__contact-24 {
  display: inline-flex;
  align-items: center;
  column-gap: 0.25rem;
}

.p-header__contact-mail {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  color: var(--color-text);
}

.p-header__contact-mail-mark {
  display: block;
  position: relative;
  width: 0.75rem;
  height: 0.625rem;
  border: 1px solid currentColor;
  border-radius: 0.0625rem;
}
.p-header__contact-mail-mark::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 0;
  height: 0;
  border-right: 0.3125rem solid transparent;
  border-bottom: 0.25rem solid currentColor;
  border-left: 0.3125rem solid transparent;
  transform: translateX(-50%);
}

.p-header__contact-24-text {
  font-weight: 400;
}

.p-header__contact-24-num {
  font-family: var(--ff-en);
  font-weight: 500;
}

.p-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.125rem;
  padding-block: 0.9375rem;
  padding-inline: 1.4375rem;
  border: 1px solid var(--color-primary);
  border-radius: 2.125rem;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--duration), color var(--duration);
}
@media (any-hover: hover) {
  .p-header__cta:hover {
    background-color: var(--color-white);
    color: var(--color-primary);
  }
}

.p-header__nav-item--has-mega {
  position: relative;
}
@media (any-hover: hover) {
  .p-header__nav-item--has-mega:hover .p-header__mega {
    visibility: visible;
    opacity: 1;
  }
}
.p-header__nav-item--has-mega:focus-within .p-header__mega {
  visibility: visible;
  opacity: 1;
}

.p-header__mega {
  position: absolute;
  top: calc(100% + 0.25rem);
  left: 0;
  z-index: calc(var(--z-index-header) + 2);
  box-sizing: border-box;
  width: max-content;
  max-width: 22.5rem;
  padding: 1.5rem;
  border: 1px solid #d9d9d9;
  border-radius: 0.25rem;
  background-color: var(--color-white);
  box-shadow: 0 0.25rem 1rem oklch(from var(--color-black) l c h/10%);
  visibility: hidden;
  opacity: 0;
  transition: opacity var(--duration), visibility var(--duration);
}
@media screen and (max-width: 767px) {
  .p-header__mega {
    display: none;
  }
}

.p-header__mega-list {
  display: flex;
  flex-direction: column;
  row-gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-header__mega-item {
  margin: 0;
}

.p-header__mega-item a {
  display: block;
  width: 100%;
  padding: 0;
  border-bottom: 1px solid transparent;
  color: var(--color-text);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.03em;
  text-decoration: none;
  transition: border-color var(--duration), color var(--duration);
}
@media (any-hover: hover) {
  .p-header__mega-item a:hover {
    border-bottom-color: var(--color-gray900);
    color: var(--color-text);
    opacity: 1;
  }
}

.p-header__mega-item a:focus-visible {
  border-bottom-color: var(--color-gray900);
  outline: none;
}

@media (any-hover: hover) {
  .p-header a:hover {
    opacity: 1;
  }
}

.p-header__hamburger {
  position: relative;
  z-index: calc(var(--z-index-overlay) + 1);
  display: none;
  flex-direction: column;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  margin: 0;
  padding: 0;
  border: none;
  background-color: transparent;
  color: var(--color-gray900);
  outline: none;
  cursor: pointer;
  transition: translate var(--duration);
}
@media screen and (max-width: 767px) {
  .p-header__hamburger {
    display: flex;
  }
}
.p-header__hamburger.is-open {
  translate: 0 25px;
}

.p-header__hamburger-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2rem;
}

.p-header__hamburger-bars {
  position: relative;
  width: 2.5rem;
  height: 1rem;
}

.p-header__hamburger-bar {
  position: absolute;
  display: block;
  height: 0.0625rem;
  background-color: currentColor;
  border-radius: 0.0625rem;
  transform-origin: center;
  transition: top var(--duration), right var(--duration), bottom var(--duration), left var(--duration), width var(--duration), opacity var(--duration), transform var(--duration);
}

.p-header__hamburger-bar--1 {
  top: 0;
  left: 0;
  width: 100%;
}

.p-header__hamburger-bar--2 {
  top: calc(50% - 0.0625rem);
  left: 0;
  width: 1.75rem;
  transform-origin: right center;
}

.p-header__hamburger-bar--3 {
  bottom: 0;
  left: 0;
  width: 1.5rem;
}

.p-header__hamburger.is-open .p-header__hamburger-bar--1 {
  top: calc(50% - 0.0625rem);
  right: auto;
  bottom: auto;
  left: 50%;
  width: 2.5rem;
  margin-inline-start: -1.25rem;
  transform: rotate(25deg);
}

.p-header__hamburger.is-open .p-header__hamburger-bar--2 {
  opacity: 0;
  transform: scaleX(0);
  pointer-events: none;
}

.p-header__hamburger.is-open .p-header__hamburger-bar--3 {
  top: calc(50% - 0.0625rem);
  right: auto;
  bottom: auto;
  left: 50%;
  width: 2.5rem;
  margin-inline-start: -1.25rem;
  transform: rotate(-25deg);
}

.p-header__icon-x {
  position: relative;
  display: block;
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
}

.p-header__icon-x-line {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 1.125rem;
  height: 0.125rem;
  margin-block-start: -0.0625rem;
  margin-inline-start: -0.5625rem;
  background-color: currentColor;
  border-radius: 0.0625rem;
}

.p-header__icon-x-line:first-child {
  transform: rotate(25deg);
}

.p-header__icon-x-line:last-child {
  transform: rotate(-25deg);
}

.p-header__hamburger-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-block-start: 0.125rem;
  font-family: var(--ff-en);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.p-header__hamburger.is-open .p-header__hamburger-label {
  white-space: nowrap;
}

.p-header__hamburger-label-text--close {
  display: none;
}

.p-header__hamburger.is-open .p-header__hamburger-label-text--menu {
  display: none;
}

.p-header__hamburger.is-open .p-header__hamburger-label-text--close {
  display: block;
  font-weight: 400;
}

.p-header__hamburger.is-open .p-header__hamburger-label {
  margin-block-start: 0.25rem;
}

/* SPメニュー: Figma 9887:10166 */
.p-header__drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: var(--z-index-overlay);
  display: none;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  height: 100svh;
  overflow: hidden;
  background-color: var(--color-white);
  scrollbar-width: none;
  transform: translateX(100%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.p-header__drawer::-webkit-scrollbar {
  display: none;
}
@media (min-width: 768px) {
  .p-header__drawer {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .p-header__drawer {
    display: flex;
  }
  .p-header__drawer.is-open {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
  }
}

.p-header__drawer-main {
  flex: 1 1 auto;
  min-height: 0;
  padding: 1.5rem;
  overflow-y: auto;
}

.p-header__drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  column-gap: 1rem;
}

.p-header__drawer-logo {
  display: block;
  flex-shrink: 0;
  max-width: 9.3125rem;
}

.p-header__drawer-logo img {
  width: auto;
  max-width: 100%;
  height: auto;
}

.p-header__drawer-close {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  align-items: center;
  padding: 0;
  border: none;
  background-color: transparent;
  color: var(--color-gray900);
  cursor: pointer;
}

.p-header__drawer-close-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2rem;
}

.p-header__drawer-close-text {
  margin-block-start: 0.125rem;
  font-family: var(--ff-en);
  font-size: 0.75rem;
  font-weight: 400;
  letter-spacing: 0.05em;
}

.p-header__drawer-tagline {
  margin: 0.25rem 0 1.25rem;
  color: #666;
  font-size: 0.75rem;
  line-height: 1.5;
  letter-spacing: 0.03em;
}

.p-header__drawer-nav {
  margin-block-start: 0;
}

.p-header__drawer-section-title {
  margin: 0;
  padding: 1.5rem 0 1rem;
  border-bottom: 1px solid var(--color-gray500);
  color: var(--color-gray500);
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.p-header__drawer-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-header__drawer-item {
  border-bottom: 1px solid var(--color-gray500);
}

.p-header__drawer-item a {
  display: block;
  padding: 1rem 0;
  color: var(--color-text);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.03em;
  text-decoration: none;
}
@media (any-hover: hover) {
  .p-header__drawer-item a:hover {
    opacity: 0.85;
  }
}

.p-header__drawer-foot {
  flex-shrink: 0;
  padding: 1.5rem 1.1875rem;
  background-color: var(--color-gray100);
}

.p-header__drawer-foot-lead {
  margin: 0 0 1rem;
  color: var(--color-text);
  font-size: 0.9375rem;
  line-height: 1.5;
  letter-spacing: 0.03em;
}

.p-header__drawer-foot-lead strong {
  font-weight: 700;
}

.p-header__drawer-cta-row {
  display: flex;
  column-gap: 0.5rem;
  align-items: stretch;
}

.p-header__drawer-cta-btn {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  row-gap: 0.25rem;
  min-width: 0;
  min-height: 4.6875rem;
  padding: 0.75rem 0.5rem;
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-header__drawer-cta-btn:hover {
    opacity: 0.92;
  }
}

.p-header__drawer-cta-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
}

.p-header__drawer-cta-icon--line {
  position: relative;
  border-radius: 50%;
  background-color: var(--color-white);
}
.p-header__drawer-cta-icon--line::before {
  content: "";
  position: absolute;
  inset: 0.1875rem;
  border-radius: 50%;
  box-shadow: inset 0 0 0 0.125rem #46ac68;
}

.p-header__drawer-cta-icon--mail {
  position: relative;
  border: 0.125rem solid currentColor;
  border-radius: 0.125rem;
}
.p-header__drawer-cta-icon--mail::before {
  content: "";
  position: absolute;
  top: 0.1875rem;
  left: 50%;
  width: 0;
  height: 0;
  border-right: 0.5rem solid transparent;
  border-bottom: 0.375rem solid currentColor;
  border-left: 0.5rem solid transparent;
  transform: translateX(-50%);
}

.p-header__drawer-cta-icon--tel {
  position: relative;
  border: 0.125rem solid currentColor;
  border-radius: 0.25rem;
}
.p-header__drawer-cta-icon--tel::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.625rem;
  height: 0.875rem;
  border: 0.125rem solid currentColor;
  border-radius: 0.125rem;
  transform: translate(-50%, -50%);
}

.p-header__drawer-cta-btn--line {
  flex: 0 0 6.4375rem;
  background-color: #46ac68;
  color: var(--color-white);
}

.p-header__drawer-cta-btn--mail {
  background-color: var(--color-primary);
  color: var(--color-white);
}

.p-header__drawer-cta-btn--tel {
  border: 1px solid var(--color-primary);
  background-color: var(--color-white);
  color: var(--color-primary);
}

.p-header__drawer-cta-btn--tel .p-header__drawer-cta-icon {
  color: var(--color-primary);
}

.p-mv {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 720px;
}

.p-mv__inner {
  position: relative;
  width: 100%;
  min-height: inherit;
}

.p-mv__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.p-mv__bg picture {
  display: block;
  width: 100%;
  height: 100%;
}

.p-mv__bg img {
  display: block;
  width: 100%;
}

.p-mv__content {
  position: relative;
  z-index: 2;
  box-sizing: border-box;
  width: min(100%, 81.75rem);
  margin-inline: auto;
  padding-inline: 3.125rem;
  padding-block-start: 8.625rem;
  padding-block-end: 2.3125rem;
}
@media screen and (max-width: 767px) {
  .p-mv__content {
    padding-inline: 1.375rem;
    padding-block-start: 6.6875rem;
    padding-block-end: 3rem;
  }
}

.p-mv__title-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5625rem;
  max-width: 41.8125rem;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-mv__title-wrap {
    gap: 0.125rem;
  }
}

.p-mv__main-title {
  margin: 0;
  color: var(--color-gray900);
  font-family: var(--ff-base);
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .p-mv__main-title {
    font-size: 2.25rem;
  }
}

.p-mv__title-line {
  display: block;
}

.p-mv__lead {
  margin: 0;
  color: var(--color-primary);
  letter-spacing: 0.0875rem;
}
@media screen and (max-width: 767px) {
  .p-mv__lead {
    white-space: nowrap;
  }
}

.p-mv__lead-text {
  font-family: var(--ff-base);
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .p-mv__lead-text {
    font-size: 1.25rem;
  }
}

.p-mv__lead-text--tight {
  letter-spacing: -0.2275rem;
}

@media screen and (max-width: 767px) {
  .p-mv__lead-text--small {
    font-size: 1.0625rem;
    letter-spacing: -0.02125rem;
  }
}

.p-mv__lead-num {
  font-family: var(--ff-en);
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.03125rem;
  margin-inline-start: -0.3125rem;
}
@media screen and (max-width: 767px) {
  .p-mv__lead-num {
    font-size: 2.5rem;
  }
}

.p-mv__lead-num--loose {
  letter-spacing: -0.09rem;
}

.p-mv__lead-zero {
  font-family: var(--ff-base);
  font-size: 2.25rem;
  font-weight: 900;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .p-mv__lead-zero {
    font-size: 1.875rem;
  }
}

.p-mv__lead-end {
  font-family: var(--ff-base);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .p-mv__lead-end {
    font-size: 1.5rem;
  }
}

.p-mv__achievements {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  column-gap: 0.75rem;
  max-width: 42.9375rem;
  margin-block-start: 3.4375rem;
}
@media screen and (max-width: 767px) {
  .p-mv__achievements {
    align-items: center;
    max-width: none;
    margin-block-start: 2rem;
  }
}

.p-mv__achievement {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 6.25rem;
  aspect-ratio: 230/100;
}
.p-mv__achievement--02 {
  aspect-ratio: 215/100;
}
.p-mv__achievement--03 {
  aspect-ratio: 217/100;
}
@media screen and (max-width: 767px) {
  .p-mv__achievement {
    height: 3.0625rem;
  }
}

.p-mv__achievement-deco {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  width: 2.5rem;
  height: 6.25rem;
}

.p-mv__achievement-deco img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-mv__achievement-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-inline: 0.625rem;
  color: var(--color-secondary);
  text-align: center;
  white-space: nowrap;
}

.p-mv__achievement-body--narrow {
  max-width: 8.5rem;
  white-space: normal;
}

.p-mv__achievement-label {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
}

.p-mv__achievement-label--split {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  column-gap: 0;
}

.p-mv__achievement-label-line {
  line-height: 1;
}

.p-mv__achievement-value {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  margin: 0;
  line-height: 1;
}

.p-mv__achievement-value--wide {
  column-gap: 0;
}

.p-mv__achievement-value--yen {
  align-items: baseline;
}

.p-mv__achievement-figure {
  font-family: var(--ff-en);
  font-size: 2.8125rem;
  font-weight: 600;
  line-height: 1;
  color: var(--color-secondary);
}

.p-mv__achievement-figure--zero {
  letter-spacing: 0.196875rem;
}

.p-mv__achievement-figure--tight {
  letter-spacing: -0.196875rem;
}

.p-mv__achievement-unit {
  margin-inline-start: 0.125rem;
  font-family: var(--ff-base);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color-secondary);
}

.p-mv__achievement-suffix {
  margin-inline-start: 0.25rem;
  font-family: var(--ff-base);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color-secondary);
}

.p-mv__achievement-yen {
  margin-inline-start: 0.25rem;
  font-family: var(--ff-base);
  font-size: 1.875rem;
  font-weight: 700;
  line-height: 1;
  color: var(--color-secondary);
}

.p-mv__achievement-note {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.34;
  color: var(--color-secondary);
}

.p-mv__cta {
  display: flex;
  align-items: stretch;
  gap: 0.6875rem;
  margin-block-start: 2rem;
}
@media screen and (max-width: 767px) {
  .p-mv__cta {
    gap: 0.5rem;
    margin-block-start: 1.5rem;
  }
}

.p-mv__cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 21rem;
  max-width: 100%;
  padding-block: 1.1875rem;
  border: 1px solid var(--color-primary);
  padding-inline: 1.6875rem;
  border-radius: 100vmax;
  text-decoration: none;
  transition: opacity var(--duration), background-color var(--duration), color var(--duration), border-color var(--duration);
}
@media screen and (max-width: 767px) {
  .p-mv__cta-btn {
    width: 17.75rem;
    padding-block: 0.75rem;
    padding-inline: 1.0625rem;
  }
}
@media (any-hover: hover) {
  .p-mv__cta-btn:hover {
    opacity: 1;
    background-color: var(--color-white);
    color: var(--color-primary);
  }
  .p-mv__cta-btn:hover.p-mv__cta-btn--line {
    color: var(--color-line);
  }
  .p-mv__cta-btn:hover.p-mv__cta-btn--line .p-mv__cta-arrow-wrap {
    background-color: var(--color-line);
  }
  .p-mv__cta-btn:hover .p-mv__cta-icon-wrap--mail {
    background-color: var(--color-primary);
  }
  .p-mv__cta-btn:hover .p-mv__cta-arrow-wrap {
    background-color: var(--color-primary);
  }
}

.p-mv__cta-btn--line {
  border-color: var(--color-line);
  background-color: var(--color-line);
  color: var(--color-white);
}

.p-mv__cta-btn--mail {
  background-color: var(--color-primary);
  color: #f7f9f4;
}

.p-mv__cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 17.75rem;
}

.p-mv__cta-main {
  display: flex;
  align-items: center;
  column-gap: 0.75rem;
  min-width: 0;
}
@media screen and (max-width: 767px) {
  .p-mv__cta-main {
    column-gap: 0.3125rem;
  }
}

.p-mv__cta-icon-wrap {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
}

.p-mv__cta-icon-wrap--mail {
  width: 1.5rem;
  height: 1.5rem;
  background-color: var(--color-white);
  transition: background-color var(--duration);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 13 13' fill='none'%3E%3Cg clip-path='url(%23clip0_9861_10127)'%3E%3Cpath d='M2.69815 3.80913L6.40464 6.98689C6.4424 7.01927 6.50715 7.01927 6.54491 6.98689L10.2514 3.80913M1.72701 2.1582H11.2225C11.5786 2.1582 11.87 2.44954 11.87 2.80563V9.49566C11.87 10.2078 11.2873 10.7905 10.5751 10.7905H2.37443C1.66227 10.7905 1.07959 10.2078 1.07959 9.49566V2.80563C1.07959 2.44954 1.37093 2.1582 1.72701 2.1582Z' stroke='%23F7F9F4' stroke-width='0.971133' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_9861_10127'%3E%3Crect width='12.9484' height='12.9484' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}
@media screen and (max-width: 767px) {
  .p-mv__cta-icon-wrap--mail {
    width: 0.75rem;
    height: 0.75rem;
  }
}

.p-mv__cta-icon {
  display: block;
  width: 1.75rem;
  height: 1.75rem;
  object-fit: contain;
}
@media screen and (max-width: 767px) {
  .p-mv__cta-icon {
    width: 1rem;
    height: 1rem;
  }
}

.p-mv__cta-label {
  font-family: var(--ff-base);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-mv__cta-label {
    font-size: 0.9375rem;
  }
}

.p-mv__cta-arrow-wrap {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 0.5rem;
  height: 0.5rem;
  background-color: var(--color-white);
  transition: background-color var(--duration);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8' fill='none'%3E%3Cpath d='M2.63131 0.798889C2.63131 1.2401 2.98898 1.59778 3.43018 1.59778H5.27242L0.233991 6.63616C-0.0779971 6.94816 -0.0779971 7.45401 0.233991 7.76601C0.545975 8.078 1.05181 8.078 1.3638 7.76601L6.40222 2.72758V4.56981C6.40222 5.01101 6.75991 5.3687 7.20111 5.3687C7.64231 5.3687 8 5.01101 8 4.56981V0.798889C8 0.587013 7.91585 0.383813 7.76603 0.233989C7.61621 0.0841707 7.41297 0 7.20111 0H3.43018C2.98898 0 2.63131 0.357679 2.63131 0.798889Z' fill='white'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}
@media screen and (max-width: 767px) {
  .p-mv__cta-arrow-wrap {
    width: 0.375rem;
    height: 0.375rem;
  }
}

.p-mv__cta-arrow {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-news-list {
  padding-block: 3rem 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-news-list {
    padding-block: 2.5rem 3.75rem;
  }
}

.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;
  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: 700;
  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-sample {
  padding-block: 5rem;
}
@media screen and (max-width: 767px) {
  .p-sample {
    padding-block: 3.75rem;
  }
}

.p-sample__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}
@media screen and (max-width: 767px) {
  .p-sample__inner {
    gap: 1rem;
  }
}

.p-sample__title {
  margin-block-start: 2rem;
}
@media screen and (max-width: 767px) {
  .p-sample__title {
    margin-block-start: 1.5rem;
  }
}

.p-sample__button-wrap {
  width: min(15rem, 100%);
}
.p-sample__button-wrap > * {
  width: 100%;
}

.p-sample__divider {
  width: 100%;
  height: 1px;
  max-width: 37.5rem;
  margin: 0;
  border: 0;
  background-color: var(--color-gray);
}

.p-sample__bg {
  width: 100%;
  height: 25rem;
  max-width: 37.5rem;
  border-radius: 8px;
  background-image: url("../images/bg_sample.webp");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  .p-sample__bg {
    height: 18.75rem;
  }
}

.p-sample__image {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 32rem;
  border-radius: 8px;
}

.p-sample__image img {
  display: block;
  width: 100%;
  height: auto;
}

.p-sample p {
  margin: 0;
  color: var(--color-text);
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  .p-sample p {
    font-size: 0.875rem;
  }
}

.p-single {
  padding-block: 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-single {
    padding-block: 5rem;
  }
}

.p-single__inner {
  max-width: calc(var(--inner) + var(--padding-inner) * 2);
}

.p-single__header {
  margin-block-start: 2rem;
}
@media screen and (max-width: 767px) {
  .p-single__header {
    margin-block-start: 3rem;
  }
}

.p-single__subtitle {
  margin-block-end: 0.5rem;
  color: var(--color-text);
  font-size: 0.875rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .p-single__subtitle {
    margin-block-end: 0.75rem;
    font-size: 1rem;
  }
}

.p-single__title {
  color: var(--color-text);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__title {
    font-size: 2rem;
  }
}

.p-single__summary {
  margin-block-start: 1.5rem;
  padding-block: 1rem;
  padding-inline: 1rem;
  border-radius: 8px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: 0.875rem;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-single__summary {
    margin-block-start: 2rem;
    padding-block: 1.25rem;
    padding-inline: 1.5rem;
    font-size: 1rem;
  }
}

.p-single__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  margin-block-start: 1rem;
  color: var(--color-border-gray);
  font-size: 0.875rem;
}
@media screen and (max-width: 767px) {
  .p-single__meta {
    margin-block-start: 1.5rem;
  }
}

.p-single__author {
  display: inline-block;
  color: var(--color-text);
  font-size: 0.875rem;
}
@media screen and (max-width: 767px) {
  .p-single__author {
    font-size: 1rem;
  }
}

.p-single__date {
  display: inline-block;
}

.p-single__categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.p-single__category {
  display: inline-block;
  padding-block: 0.25rem;
  padding-inline: 0.75rem;
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-primary);
  font-size: 0.75rem;
  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: 2rem;
  border-radius: 8px;
}
@media screen and (max-width: 767px) {
  .p-single__thumbnail {
    margin-block-start: 3rem;
  }
}

.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: 2rem;
  border-radius: 8px;
}
@media screen and (max-width: 767px) {
  .p-single__featured-image {
    margin-block-start: 3rem;
  }
}

.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: 3rem;
}
@media screen and (max-width: 767px) {
  .p-single__content {
    margin-block-start: 4rem;
  }
}

.p-single__content h1,
.p-single h1:not(.p-single__title) {
  margin-block-start: 3rem;
  padding-block-end: 1rem;
  border-bottom: 0.125rem solid var(--color-gray);
  color: var(--color-text);
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content h1,
  .p-single h1:not(.p-single__title) {
    margin-block-start: 4rem;
    font-size: 2.25rem;
  }
}

.p-single__content h2,
.p-single h2 {
  margin-block-start: 2.5rem;
  padding-inline-start: 1rem;
  border-inline-start: 0.25rem solid var(--color-accent);
  color: var(--color-text);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content h2,
  .p-single h2 {
    margin-block-start: 3.5rem;
    padding-inline-start: 1.25rem;
    font-size: 1.75rem;
  }
}

.p-single__content h3,
.p-single h3 {
  margin-block-start: 2rem;
  color: var(--color-text);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content h3,
  .p-single h3 {
    margin-block-start: 2.5rem;
    font-size: 1.5rem;
  }
}

.p-single__content h4,
.p-single h4 {
  margin-block-start: 1.5rem;
  color: var(--color-text);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content h4,
  .p-single h4 {
    margin-block-start: 2rem;
    font-size: 1.25rem;
  }
}

.p-single__content p,
.p-single p {
  margin-block-start: 1rem;
  color: var(--color-text);
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .p-single__content p,
  .p-single p {
    margin-block-start: 1.25rem;
  }
}

.p-single__content ul,
.p-single__content ol,
.p-single ul,
.p-single ol {
  margin-block-start: 1rem;
  padding-inline-start: 1.5rem;
  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: 1.25rem;
    padding-inline-start: 2rem;
  }
}

.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: 0.5rem;
  line-height: 1.8;
}

.p-single__content a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 0.125rem;
  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: 1.5rem;
  border-radius: 8px;
}
@media screen and (max-width: 767px) {
  .p-single__content img {
    margin-block-start: 2rem;
  }
}

.p-single__content blockquote,
.p-single blockquote {
  margin-block-start: 1.5rem;
  padding-block: 1rem;
  padding-inline: 1.5rem 1.5rem;
  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: 2rem;
    padding-block: 1.25rem;
    padding-inline: 2rem 2rem;
  }
}

.p-single__content blockquote p,
.p-single blockquote p {
  margin-block-start: 0;
}

.p-single__content code,
.p-single code {
  padding-block: 0.125rem;
  padding-inline: 0.375rem;
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-primary);
  font-family: monospace;
  font-size: 0.875rem;
}

.p-single__content pre,
.p-single pre {
  overflow-x: auto;
  margin-block-start: 1.5rem;
  padding-block: 1rem;
  padding-inline: 1rem;
  border-radius: 8px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-family: monospace;
  font-size: 0.875rem;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single__content pre,
  .p-single pre {
    padding-block: 1.5rem;
    padding-inline: 1.5rem;
  }
}

.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: 1.5rem;
  border: 0.0625rem solid var(--color-border-gray);
  border-collapse: collapse;
}
@media screen and (max-width: 767px) {
  .p-single__content table,
  .p-single table {
    margin-block-start: 2rem;
  }
}

.p-single__content th,
.p-single__content td,
.p-single th,
.p-single td {
  padding-block: 0.75rem;
  padding-inline: 1rem;
  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: 1rem;
    padding-inline: 1.25rem;
  }
}

.p-single__content th,
.p-single th {
  background-color: var(--color-gray);
  color: var(--color-text);
  font-weight: 700;
}

.p-single__content td,
.p-single td {
  color: var(--color-text);
}

.p-single__content hr,
.p-single hr {
  margin-block-start: 2rem;
  border: none;
  border-top: 0.0625rem solid var(--color-border-gray);
}
@media screen and (max-width: 767px) {
  .p-single__content hr,
  .p-single hr {
    margin-block-start: 3rem;
  }
}

.p-single__content strong,
.p-single strong {
  color: var(--color-text);
  font-weight: 700;
}

.p-single__content em,
.p-single em {
  font-style: italic;
}

.p-single__content .wp-block-buttons,
.p-single .wp-block-buttons {
  margin-block-start: 1.5rem;
  text-align: center;
}
.p-single__content .wp-block-buttons a,
.p-single .wp-block-buttons a {
  color: var(--color-white);
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-single__content .wp-block-buttons a:hover,
  .p-single .wp-block-buttons a:hover {
    opacity: 0.8;
  }
}

.p-single__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-block-start: 3rem;
  padding-block: 1.5rem;
  border-top: 0.0625rem solid var(--color-border-gray);
}
@media screen and (max-width: 767px) {
  .p-single__tags {
    margin-block-start: 4rem;
    padding-block: 2rem;
  }
}

.p-single__tag {
  display: inline-block;
  padding-block: 0.25rem;
  padding-inline: 0.75rem;
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-accent);
  font-size: 0.75rem;
  text-decoration: none;
  transition: opacity var(--duration);
}
@media screen and (max-width: 767px) {
  .p-single__tag {
    font-size: 0.875rem;
  }
}

.p-single__tag:hover {
  opacity: 0.8;
}

.p-single__tag--custom {
  color: var(--color-text);
  cursor: default;
}

.p-single__content-pagination {
  margin-block-start: 3.75rem;
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination {
    margin-block-start: 3rem;
  }
}

.p-single__content-pagination-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.25rem;
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination-inner {
    gap: 0.625rem;
  }
}

.p-single__content-pagination-prev {
  min-width: 0;
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination-prev {
    text-align: center;
  }
}

.p-single__content-pagination-center {
  justify-self: center;
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination-center .c-button02 {
    gap: 0.625rem;
  }
  .p-single__content-pagination-center .c-button02__text {
    font-size: max(0.75rem, 8px);
    font-weight: 500;
    line-height: 18.07;
    letter-spacing: 0.4em;
  }
  .p-single__content-pagination-center .c-button02__arrow {
    width: 0.625rem;
    height: 0.375rem;
  }
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination-center {
    justify-self: center;
  }
}

.p-single__content-pagination-next {
  min-width: 0;
  text-align: right;
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination-next {
    text-align: center;
  }
}

.p-single__content-pagination-link {
  color: var(--color-text);
  text-decoration: none;
  font-size: max(1rem, 8px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination-link {
    font-size: max(0.75rem, 8px);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }
}
@media (any-hover: hover) {
  .p-single__content-pagination-link:hover {
    opacity: 0.7;
  }
}

.p-single__content-pagination-button {
  padding: 0.625rem 1.4375rem;
  background-color: var(--color-base);
  border: 1px solid var(--color-text);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 3.9375rem;
  transition: background-color var(--duration) ease, color var(--duration) ease;
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination-button {
    gap: 1.25rem;
    padding: 0.625rem 1rem;
  }
}
@media (hover: hover) {
  .p-single__content-pagination-button:hover .p-single__content-pagination-button-arrow {
    transform: translateX(0.625rem);
  }
}

.p-single__content-pagination-button-text {
  font-size: max(1rem, 8px);
  font-weight: 500;
  line-height: 1.63;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .p-single__content-pagination-button-text {
    font-size: max(0.875rem, 8px);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }
}

.p-single__content-pagination-button-arrow {
  width: 0.5rem;
  height: 0.875rem;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 14' width='8' height='14'%3E%3Cpath d='M1 13l6-6-6-6' fill='none' stroke='%23008ad2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  background-color: var(--color-primary);
  transition: transform var(--duration) ease, filter var(--duration) ease;
}

.p-single--post .p-single__related {
  margin-block-start: 3rem;
  padding-block-start: 2rem;
  border-top: 0.0625rem solid var(--color-border-gray);
}
@media screen and (max-width: 767px) {
  .p-single--post .p-single__related {
    margin-block-start: 4rem;
    padding-block-start: 3rem;
  }
}

.p-single--post .p-single__related-title {
  margin-block-end: 1.5rem;
  color: var(--color-text);
  font-size: 1.25rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .p-single--post .p-single__related-title {
    margin-block-end: 2rem;
    align-items: start;
  }
}
@media (any-hover: hover) {
  .p-single--post .p-single__related-title: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: 0.5rem;
}

.p-single--post .p-single__related-date {
  color: var(--color-text);
  font-size: 0.75rem;
}
@media screen and (max-width: 767px) {
  .p-single--post .p-single__related-date {
    font-size: 0.875rem;
  }
}

.p-single--post .p-single__related-item-title {
  margin: 0;
  color: var(--color-text);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .p-single--post .p-single__related-item-title {
    font-size: 1rem;
  }
}

@media (width <= 767px) {
  [data-only-device=md] {
    display: none;
  }
}

@media (width >= 768px) {
  [data-only-device=sm] {
    display: none;
  }
}

@media (width <= 767px) {
  .u-pc-hidden {
    display: block;
  }
}
@media (width >= 768px) {
  .u-pc-hidden {
    display: none;
  }
}

@media (width >= 768px) {
  .u-sp-hidden {
    display: block;
  }
}
@media (width <= 767px) {
  .u-sp-hidden {
    display: none;
  }
}

@media (width >= 768px) {
  .u-sp-hidden--inline {
    display: inline;
  }
}
@media (width <= 767px) {
  .u-sp-hidden--inline {
    display: none;
  }
}

.u-sr-only {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(100%);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
}

.u-text__marker {
  background: linear-gradient(transparent 75%, var(--color-orange) 75%);
}

.u-text__indent {
  padding-inline-start: 1em;
  text-indent: -1em;
}