@charset "UTF-8";
/**
* 参考：https://www.tak-dcxi.com/article/introduce-kiso-css/
*/
/*! kiso.css v1.2.2 | 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%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;

  /* Prevents layout shift caused by the appearance or disappearance of the scrollbar. */
  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(h1, h2, h3, h4, h5, h6) {
  /* 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;
}
/* ======================================================
//  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, var):lang(ja)) {
  /* Italic style is not common in Japanese, so the `font-style` is reset. */
  font-style: unset;
}
: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;
  cursor: help;
}
:where(time) {
  /* Set to `no-autospace` because date notations in typography do not include spaces. */
  text-autospace: no-autospace;
}
/* ======================================================
//  MARK: Links
// ====================================================== */
:where(a:-moz-any-link) {
  /* The default `color` from the UA stylesheet is rarely used as is, so it's reset to allow inheritance. */
  color: unset;

  /*
  * 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;
}
:where(a:any-link) {
  /* The default `color` from the UA stylesheet is rarely used as is, so it's reset to allow inheritance. */
  color: unset;

  /*
  * 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;
}
/* ======================================================
//  MARK: Embedded content
// ====================================================== */
:where(img, svg, picture, video, canvas, model, audio, iframe, embed, object) {
  /* Automatically adjust block size based on content. */
  block-size: auto;

  /* 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(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) {
  /* 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(:-moz-placeholder)
  ) {
  /*
  * 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(
    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;
}
::-moz-placeholder {
  /* Standardize the opacity of placeholder text (it may be set lower by default in Firefox). */
  opacity: 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;
}
/* デザインカンプ */
/* FVサイズ
PC 1440 * 768
SP 375 * 700 
*/
/* インナー幅設定 */
/* 余白 */
/* リキッドレイアウトの範囲
$inner-pc + $padding-pc * 2 = 1200
 → 1200 〜 768px
*/
/* 使い方
・本体
.c-button {
  @include hover-scale(); // 初期値
  @include hover-scale(1.2); // 拡大率を上げる
  }

・子要素のimg
.p-card {
  @include hover-scale-img();
}
*/
/* 使い方
・カードなどホバーで上に浮かせる
.p-card__link {
  @include hover-up();
  @include hover-up(-8px); // 浮き幅を変える
}
*/
/* ホバーで下線を引くスタイル
・下線をふわっと表示
・下線を右から左へ表示して左に消える
使い方
.d-hover-text-underline-slide {
  @include hover-text-underline-slide(); // デフォルト
}
.p-nav a {
  @include hover-text-underline-slide($height: 2px, $offset: -2px);
}
.p-link--accent {
  @include hover-text-underline-slide($color: #3b5bff);
}
*/
/* ふわっと表示 */
/* 左から右へ */
/**
 * 背景位置スライドのホバー／フォーカス用（background-size 等の準備スタイル＋:hover / :focus-visible）
 * 使い方: .c-button { @include hover-bg-position-slide; }
 */
/**
 * テキストを背景（グラデーション・画像など）で塗るスタイル（background-clip: text）
 * 使い方: @include text-clip; または @include text-clip($image);
 */
img {
  /* 低解像度ディスプレイでのジャギー防止 */
  overflow-clip-margin: unset;
  display: block;
  width: 100%;
}
iframe {
  display: block;
  max-width: 100%;
  height: auto;
}
button {
  border-width: 0;
  padding: 0;
}
h1 {
  margin-block: unset;
}
/* フォントの読み込みとカスタムプロパティ定義 */
@font-face {
  font-family: "Noto Sans JP VF";
  src: url("../fonts/NotoSansJP-VF.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Lato";
  src: url("../fonts/Lato-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Lato";
  src: url("../fonts/Lato-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --desigh-width: 375;
  --base-font-family: "Noto Sans JP VF", sans-serif;
  --font-en: "Lato", sans-serif;
  --color-white: #fff;
  --color-black0: #000;
  --color-black3: #333;
  --color-theme: #402edd;
  --color-accent: #f56438;
  --color-accent-linght: #fe7f08;
  --color-purple: #6d2edd;
  --color-blue: #3a65a1;
  --color-light-blue: #84A4F2;
  --color-light-orange: #f8f1ab;
  --color-pink: #dd2e91;
  --color-gray: #f7f7f7;
  --color-light-blue-gray: #EBF0F4;
  --color-gradation-start: #6844e8;
  --color-gradation-end: #6a9ce2;
  --gradation-theme: linear-gradient(to bottom right, var(--color-gradation-start), var(--color-gradation-end));
  --gradation-theme-hover: linear-gradient(to bottom right, var(--color-gradation-start), var(--color-gradation-end), var(--color-gradation-start));
  --gradation-accent: linear-gradient(184deg, #FE7F08 3.22%, #CC2C0C 96.79%);
  --text-shadow: 0 0 0.6875rem color-mix(in srgb, var(--color-black0) 8%, transparent);
  --box-shadow: 0 0 0.625rem color-mix(in srgb, var(--color-black0) 5%, transparent);
  --border: 1px solid #ccc;
  --inner: 33.75rem;
  --inner-padding: 1.25rem;
  --hover-transition: 0.3s ease-in-out;
}
/* デバッグ用のスタイル */
/* リキッドレイアウト */
html {
  font-size: 16px;
}
body {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  color: var(--color-black0);
  font-family: var(--base-font-family);
  line-height: 1.5;
  text-rendering: optimizeSpeed;
}
main {
  flex: 1;
}
a {
  transition: opacity var(--hover-transition);
}
a:not([class]) {
  text-decoration: underline;
}
/* pcの電話番号発信対応 */
a:focus-visible {
  opacity: 0.7;
}
iframe[src*="youtube.com"] {
  aspect-ratio: 16/9;
}
.l-inner {
  margin-inline: auto;
  max-width: calc(var(--inner) + var(--inner-padding) * 2);
  width: 100%;
  padding-inline: var(--inner-padding);
}
.l-recommend {
  margin-block-start: 2.5rem;
}
.l-worry {
  margin-block-start: 3rem;
}
.c-button-header {
  display: inline-flex;
  align-items: center;
  gap: 0.875rem;
  padding-inline: 0.75rem 0.625rem;
  padding-block: 0.5rem;
  background-color: var(--color-accent);
  border-radius: 100vh;
  color: var(--color-white);
  transition: scale 0.3s ease-in-out;
}
.c-button-header:focus-visible {
  opacity: 1;
  scale: 1.05;
}
.c-button-header::after {
  width: 0.3125rem;
  aspect-ratio: 5/7;
  -webkit-mask: url(../images/arrow_right_small.svg) no-repeat center/contain;
          mask: url(../images/arrow_right_small.svg) no-repeat center/contain;
  background-color: var(--color-white);
  content: "";
}
.c-button-header__text {
  font-size: max(0.875rem, 10px);
  font-weight: 500;
}
.c-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.875rem;
  width: 100%;
  padding-inline: 1rem;
  padding-block: 1.375rem;
  background-image: var(--gradation-accent);
  border-radius: 100vh;
  color: var(--color-white);
  transition: opacity var(--hover-transition);
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.1);
}
.c-button:not(:disabled) {
  transition: scale 0.3s ease-in-out;
}
.c-button:not(:disabled):focus-visible {
  opacity: 1;
  scale: 1.05;
}
.c-button[type=submit] {
  padding-block: 1rem;
  background-image: unset;
  background-color: var(--color-purple);
}
.c-button::before,
.c-button::after {
  width: 0.4375rem;
  content: "";
}
.c-button::after {
  aspect-ratio: 7/11;
  -webkit-mask: url(../images/arrow_right.svg) no-repeat center/contain;
          mask: url(../images/arrow_right.svg) no-repeat center/contain;
  background-color: var(--color-white);
}
.c-button__copy {
  position: absolute;
  top: 0%;
  left: 50%;
  translate: -50% -50%;
  width: -moz-fit-content;
  width: fit-content;
  padding-block: 0.0625rem;
  padding-inline: 0.625rem;
  background-color: var(--color-light-orange);
  border-radius: 100vh;
  color: var(--color-purple);
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  white-space: nowrap;
  animation: ctaScale 2500ms ease-in-out infinite;
}
.c-button__copy em {
  color: var(--color-accent);
}
.c-button__text {
  font-size: max(1.125rem, 10px);
  font-weight: 700;
}
/*CATアニメーション*/
@keyframes ctaScale {
  0% {
    transform: scale(1);
  }
  15% {
    transform: scale(1.2);
  }
  30% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.2);
  }
  70% {
    transform: scale(1);
  }
  100% {
    transform: scale(1);
  }
}
.c-section-head {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}
.c-section-head__deco {
  margin-inline-end: -0.1em;
  font-family: var(--font-en);
  font-size: max(3.5rem, 10px);
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #c3c3c3;
  line-height: 1.2;
  opacity: 0.64;
}
.c-section-head__title-wrap {
  background-color: #212121;
  padding-block: 0.3125rem;
  padding-inline: 0.625rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.c-section-head__title {
  font-size: max(1rem, 10px);
  font-weight: 700;
  color: var(--color-white);
  line-height: normal;
  white-space: nowrap;
}
.p-about {
  padding-block: 2.5rem;
  background: url(../images/about_bg.png) no-repeat center/cover;
}
.p-about__heading {
  margin-inline: auto;
  width: -moz-fit-content;
  width: fit-content;
  font-size: max(1.5rem, 10px);
  font-weight: 900;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: center;
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-about__heading::after {
  margin-block-start: 0.3125rem;
  display: block;
  aspect-ratio: 320/18;
  background: url(../images/about_heading_deco.svg) no-repeat center/contain;
  content: "";
}
.p-about__content {
  margin-block-start: 1.25rem;
}
.p-about__wrap {
  display: flex;
  flex-direction: column;
  gap: 2.25rem;
}
.p-about__client-image {
  margin-inline: auto;
  width: 10rem;
}
.p-about__client-caption {
  position: relative;
  margin-block-start: -1.3125rem;
  margin-inline: auto;
  width: -moz-fit-content;
  width: fit-content;
  padding-block: 0.5rem;
  padding-inline: 1.375rem;
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  letter-spacing: 0.1em;
  background-color: var(--color-black3);
  border-radius: 100vh;
  color: var(--color-white);
}
.p-about__flow {
  display: flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: 2.5rem;
       column-gap: 2.5rem;
  color: #3112a0;
  font-size: max(0.8125rem, 10px);
  font-weight: 700;
  letter-spacing: 0.1em;
}
.p-about__flow1,
.p-about__flow2 {
  display: flex;
  row-gap: 0.125rem;
  flex-direction: column;
  align-items: center;
  writing-mode: vertical-rl;
}
.p-about__flow1::after,
.p-about__flow2::before {
  width: 6.75rem;
  aspect-ratio: 108/15;
  content: "";
  background: no-repeat center/contain;
  rotate: 90deg;
}
.p-about__flow1::after {
  background-image: url(../images/about_flow1.svg);
  translate: 1.875rem 0;
}
.p-about__flow2::before {
  background-image: url(../images/about_flow2.svg);
  translate: -1.875rem 0;
}
.p-about__team {
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 1.25rem;
  max-width: 20.9375rem;
  padding-block: 1.5rem;
  padding-inline: 1.5rem;
  background-color: var(--color-light-blue);
  border-radius: 1rem;
  color: var(--color-white);
}
.p-about__team-image {
  width: 8.75rem;
}
.p-about__team-caption {
  position: relative;
  margin-block-start: -2.5rem;
  margin-inline: auto;
  width: -moz-fit-content;
  width: fit-content;
  padding-block: 0.5rem;
  padding-inline: 0.75rem;
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3125;
  background-color: var(--color-white);
  border-radius: 100vh;
  color: var(--color-black3);
  text-align: center;
}
.p-about__team-items {
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  letter-spacing: 0.1em;
}
.p-about__copy {
  margin-block-start: 2.5625rem;
  text-align: center;
}
.p-about__copy-dot {
  padding-block-end: 0.125rem;
  --padding-inline: 0.5rem;
  padding-inline: var(--padding-inline);
  color: #402edd;
  font-size: max(1.5rem, 10px);
  font-weight: 800;
  border-bottom: 1px solid;
}
.p-about__copy-text1 {
  display: block;
  transform: skewX(-9deg);
}
.p-about__copy-text2 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-size: max(1.75rem, 10px);
  font-weight: 800;
  transform: skewX(-9deg);
}
.p-about__copy-text2 span:nth-child(2) {
  margin-inline-start: 1.625rem;
}
.p-cases {
  position: relative;
  z-index: 0;
  padding-block: 3rem 3.5rem;
  background-color: var(--color-black3);
  color: var(--color-white);
  overflow-x: clip;
}
.p-cases__deco {
  position: absolute;
  z-index: -1;
  inset-block-end: -0.9375rem;
  inset-inline-start: 0.875rem;
  writing-mode: vertical-rl;
}
.p-cases__deco-text {
  font-family: var(--font-en);
  font-size: max(6.75rem, 10px);
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #4d4d4d;
  text-orientation: mixed;
  line-height: 1;
}
.p-cases__inner {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
}
.p-cases__block {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.p-cases__heading-wrap {
  display: flex;
  justify-content: center;
}
.p-cases__heading {
  display: inline-block;
  font-size: max(1.5rem, 10px);
  font-weight: 900;
  border-bottom: 1px solid var(--color-white);
  padding-bottom: 0.125rem;
}
.p-cases__cards {
  display: grid;
  gap: 1.5rem;
}
.p-cases__card {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 1.5rem 1.5rem 2rem;
  background-color: #434343;
  border-radius: 1.5rem;
}
.p-cases__card-header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: 0.5rem;
  padding-inline: 1rem;
  background-color: #212121;
}
.p-cases__card-title {
  font-size: max(1rem, 10px);
  font-weight: 700;
}
.p-cases__card-body {
  gap: 1rem;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas: "phone info1" "phone info2" "info3 info3";
  align-items: center;
}
.p-cases__phone {
  position: relative;
  flex-shrink: 0;
  width: 8.75rem;
  padding-block: 0.375rem;
  padding-inline: 0.1875rem;
  grid-area: phone;
  /* Controlsを出したときsafariでシャドウコンテンツのはみ出しを防ぐ */
  -webkit-mask: url(../images/cases_phone_frame_mask.svg) no-repeat center/contain;
          mask: url(../images/cases_phone_frame_mask.svg) no-repeat center/contain;
  background-color: var(--color-black0);
}
.p-cases__phone::after {
  position: absolute;
  /* Firefoxではみ出しを防ぐ */
  inset: -1px;
  background: url(../images/cases_phone_frame.svg) no-repeat center/contain;
  content: "";
  pointer-events: none;
}
.p-cases__phone img,
.p-cases__phone video {
  aspect-ratio: 9/16;
}
.p-cases__stat {
  display: flex;
  flex-direction: column;
}
.p-cases__stat:nth-child(1) {
  grid-area: info1;
}
.p-cases__stat:nth-child(2) {
  grid-area: info2;
}
.p-cases__stat-label,
.p-cases__challenge-label {
  font-size: max(1rem, 10px);
  font-weight: 700;
  border-bottom: 1px solid var(--color-white);
  padding-bottom: 0.5rem;
}
.p-cases__stat-value {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
}
.p-cases__stat-num {
  font-family: var(--font-en);
  font-size: max(2rem, 10px);
  font-weight: 700;
}
.p-cases__stat-unit {
  font-size: max(1rem, 10px);
  font-weight: 700;
}
.p-cases__challenge {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  grid-area: info3;
}
.p-cases__challenge-text {
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  line-height: 1.5;
}
.p-cases__works {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  align-items: center;
}
.p-cases__works-heading {
  font-size: max(1.5rem, 10px);
  font-weight: 900;
}
.p-cases__works-splide.splide {
  width: 100%;
  min-width: 0;
}
.p-cases__works-track.splide__track {
  overflow: visible;
}
.p-contact {
  background-color: #fbfbfb;
  padding-block: 1.375rem 4.125rem;
}
.p-contact__inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.p-contact__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-cta {
  padding-block: 2.5rem;
  background: url(../images/cta_bg_sp.png) no-repeat center/cover;
}
.p-cta__inner {
  --inner-padding: 0.5rem;
}
.p-cta__content {
  position: relative;
  z-index: 0;
  padding-block: 2.3125rem;
  padding-inline: 2.5rem;
  background-color: var(--color-theme);
  border-radius: 0.625rem;
  color: var(--color-white);
  text-align: center;
}
.p-cta__content::before {
  position: absolute;
  z-index: -1;
  inset: 0.3125rem;
  display: block;
  border-radius: 0.625rem;
  border: 1px solid var(--color-white);
  content: "";
}
.p-cta__heading {
  display: inline-flex;
  align-items: flex-end;
  gap: 0.5rem;
  font-size: max(1.375rem, 10px);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.p-cta__heading::before,
.p-cta__heading::after {
  width: 1px;
  height: 2.25rem;
  background-color: var(--color-white);
  content: "";
  transform-origin: bottom;
}
.p-cta__heading::before {
  rotate: -30deg;
}
.p-cta__heading::after {
  rotate: 30deg;
}
.p-cta__buttons {
  margin-block-start: 1.6875rem;
  display: grid;
  justify-content: center;
  gap: 2.3125rem;
}
.p-cta__button {
  width: 20rem;
}
.p-difference {
  padding-block: 4.5rem;
  background-color: var(--color-white);
}
.p-difference__heading {
  margin-inline: auto;
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  background-color: var(--color-black3);
  padding-block: 0.5rem;
  padding-inline: 0.625rem;
}
.p-difference__heading::before {
  position: absolute;
  inset-inline-start: calc(50% + 1.25rem);
  inset-block-end: 1px;
  display: block;
  width: 2.75rem;
  aspect-ratio: 44/24;
  background: url(../images/balloon_tail.svg) no-repeat center/contain;
  content: "";
  translate: -50% 100%;
}
.p-difference__heading-text {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: center;
  row-gap: 0.5rem;
  font-weight: 900;
  line-height: 1;
  color: var(--color-white);
  transform: skewX(-8deg);
}
.p-difference__heading-text1 {
  font-size: max(1.5rem, 10px);
}
.p-difference__heading-text2 {
  font-size: max(1.25rem, 10px);
}
.p-difference__heading-text3 {
  font-size: max(1.5rem, 10px);
}
.p-difference__items {
  margin-block-start: 2.625rem;
  display: grid;
  gap: 3rem;
}
.p-difference__item {
  position: relative;
  display: grid;
  gap: 1rem;
}
.p-difference__item-content {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.p-difference__item-badge {
  position: absolute;
  top: -1.375rem;
  left: -0.625rem;
  width: 4rem;
  aspect-ratio: 1;
  background-color: #402edd;
  border-radius: 3rem 3rem 0.375rem 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.p-difference__item-no {
  font-family: var(--font-en);
  font-size: max(2rem, 10px);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1;
}
.p-difference__item-heading {
  font-size: max(1.5rem, 10px);
  font-weight: 900;
  color: var(--color-black3);
  letter-spacing: 0.05em;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.p-difference__item-desc {
  font-size: max(0.9375rem, 10px);
  font-weight: 500;
}
.p-faq {
  background: #FBFBFB;
  padding-block: 3.5rem 4rem;
}
.p-faq__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
.p-faq__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-faq__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
/* アコーディオン1件 */
.p-faq__details {
  display: block;
  border-radius: 0.625rem;
  box-shadow: 5px 5px 20px 0px rgba(154, 129, 125, 0.05);
  overflow: hidden;
}
/* Q部分（サマリー） */
.p-faq__summary {
  display: flex;
  align-items: flex-start;
  gap: 1.1875rem;
  padding-block: 0.75rem;
  padding-inline: 0.75rem 2rem;
  background: var(--gradation-theme-hover);
  position: relative;
  background-size: 200% 200%;
  background-repeat: no-repeat;
  transition: background-position var(--hover-transition);
}
.p-faq__summary:focus-visible {
  opacity: 1;
  background-position: 0 100%;
}
.p-faq__summary::-webkit-details-marker {
  display: none;
}
.p-faq__q-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.875rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--color-white);
  font-family: var(--font-en);
  font-size: max(1rem, 10px);
  font-weight: 700;
}
.p-faq__q-badge-text {
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-faq__q-text {
  flex: 1;
  padding-block-start: 0.25rem;
  font-size: max(0.9375rem, 10px);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.5;
}
/* 矢印アイコン */
.p-faq__icon {
  position: absolute;
  inset-inline-end: 0.75rem;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  width: 0.75rem;
  aspect-ratio: 14/8;
  flex-shrink: 0;
  background: url(../images/arrow_top.svg) no-repeat center/cover;
  transition: transform 0.3s ease-out;
}
.is-opened .p-faq__icon {
  transform: translateY(-50%);
}
/* A部分（コンテンツ） */
.p-faq__content {
  overflow: hidden;
  background-color: var(--color-white);
}
.p-faq__content-inner {
  display: flex;
  align-items: flex-start;
  gap: 1.1875rem;
  padding-block: 0.75rem;
  padding-inline: 0.75rem 2rem;
}
.p-faq__a-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.875rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background-image: linear-gradient(113deg, var(--color-gradation-start) 23.5%, var(--color-gradation-end) 87%);
  font-family: var(--font-en);
  font-size: max(1rem, 10px);
  font-weight: 700;
  color: var(--color-white);
}
.p-faq__a-text {
  flex: 1;
  padding-block-start: 0.25rem;
  font-size: max(0.8125rem, 10px);
  font-weight: 500;
  color: #222;
  line-height: 1.8;
}
.p-flow {
  padding-block: 3rem 3.5rem;
  background-color: #eaedef;
}
.p-voice + .p-flow {
  padding-block: 3rem 3.5rem;
}
.p-flow__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
/* ヘッダー */
.p-flow__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* ステップ一覧 */
.p-flow__steps {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
/* 各ステップ */
.p-flow__step {
  display: flex;
  flex-direction: column;
}
/* バナー（矢印形状） */
.p-flow__step-banner {
  position: relative;
  display: flex;
  align-items: center;
  height: 2.5rem;
  padding-inline-start: 1.2rem;
  /* mask-image で矢印シェイプを適用 */
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-image: url(../images/flow_step2_sp.svg);
          mask-image: url(../images/flow_step2_sp.svg);
}
/* 先頭ステップ：左角丸あり */
/* 2番目以降：左くぼみあり */
.p-flow__step:not([data-step="01"]) .p-flow__step-banner {
  margin-inline: -0.3125rem -0.75rem;
}
/* 最後： */
.p-flow__step:not([data-step="01"])[data-step="05"] .p-flow__step-banner {
  margin-inline: -0.3125rem 0;
}
/* 各ステップの背景色 */
.p-flow__step[data-step="01"] .p-flow__step-banner {
  background-color: #6a9ce2;
}
.p-flow__step[data-step="02"] .p-flow__step-banner {
  background-color: #3f75c1;
}
.p-flow__step[data-step="03"] .p-flow__step-banner {
  background-color: #2a65b8;
}
.p-flow__step[data-step="04"] .p-flow__step-banner {
  background-color: #6054ba;
}
.p-flow__step[data-step="05"] .p-flow__step-banner {
  background-color: #493f93;
}
/* STEP番号 */
.p-flow__step-num {
  display: flex;
  align-items: baseline;
  gap: 0.125rem;
  color: var(--color-white);
  line-height: 1;
}
.p-flow__step-label {
  font-size: max(1.125rem, 10px);
  font-weight: 900;
}
.p-flow__step-no {
  font-size: max(1.75rem, 10px);
  font-weight: 900;
}
/* 詳細ボックス */
.p-flow__step-detail {
  margin-block-start: -0.625rem;
  margin-inline-start: 0.5rem;
  background-color: var(--color-white);
  border-radius: 0.375rem;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
  border-radius: 0.375rem;
}
.p-flow__step-title {
  font-size: max(0.9375rem, 10px);
  font-weight: 700;
  color: var(--color-purple);
  line-height: 1.5;
}
.p-flow__step-title-sub {
  display: block;
  font-size: max(0.6875rem, 10px);
  font-weight: 700;
  color: var(--color-purple);
  line-height: 1.5;
}
.p-flow__step-desc {
  font-size: max(0.8125rem, 10px);
  font-weight: 400;
  color: var(--color-black3);
  line-height: 1.5;
}
.p-footer {
  padding-block: 2.5rem 1.25rem;
  background-color: var(--color-black3);
  color: var(--color-white);
}
.p-footer__inner {
  display: grid;
  gap: 1.25rem;
}
.p-footer__main {
  display: grid;
  gap: 1.5rem;
}
.p-footer__brand {
  display: grid;
  gap: 2.5rem;
}
.p-footer__logo {
  text-align: center;
}
.p-footer__logo-link {
  display: inline-block;
  width: 11.25rem;
}
.p-footer__address {
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.1em;
}
.p-footer__nav {
  display: grid;
  justify-content: center;
}
.p-footer__nav-list {
  width: -moz-fit-content;
  width: fit-content;
}
.p-footer__nav-link {
  display: inline-block;
  font-size: max(0.8125rem, 10px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}
.p-footer__copyright {
  margin-block-start: 1.875rem;
  text-align: center;
}
.p-footer__copyright small {
  font-size: max(0.875rem, 10px);
  font-weight: 400;
  letter-spacing: 0.1em;
}
.p-form {
  --border-color: #484848;
  --border-width: 1px;
  --border-radius: 0.625rem;
  --text-padding: 0.625rem;
  --font-size: 1rem;
  --placeholder-color: #c3c3c3;
  --checkbox-size: 1.5rem;
  --checkbox-bg: var(--color-white);
  --checkbox-check-color: var(--color-purple);
}
.p-form__dl {
  display: grid;
}
.p-form__dt + .p-form__dd {
  margin-block-start: 0.625rem;
}
.p-form__dd + .p-form__dt {
  margin-block-start: 1.25rem;
}
.p-form__label {
  display: flex;
  align-items: center;
  gap: 0.3125rem;
  font-size: var(--font-size);
  font-weight: 600;
  color: var(--color-black3);
  line-height: 2;
}
/* 必須マーク：赤い丸ドット */
.p-form__required {
  display: inline-block;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background-color: #e84040;
  flex-shrink: 0;
}
/* 任意マーク：非表示（スペースのみ確保） */
.p-form__optional {
  display: inline-block;
  width: 0.375rem;
  height: 0.375rem;
  flex-shrink: 0;
}
/* input / textarea 共通 */
.p-form input:not([type=radio i]):not([type=checkbox i]),
.p-form textarea {
  width: 100%;
  padding: var(--text-padding);
  border: var(--border-width) solid var(--border-color);
  border-radius: var(--border-radius);
  background-color: var(--color-white);
  box-shadow: inset 1px 1px 5px 0px rgba(149, 149, 149, 0.1);
  font-size: var(--font-size);
}
.p-form ::-moz-placeholder {
  color: var(--placeholder-color);
}
.p-form ::placeholder {
  color: var(--placeholder-color);
}
/* お名前：姓・名 2列 */
.p-form__dd--name {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
/* textarea */
.p-form textarea {
  field-sizing: content;
  display: block;
  min-height: 9.375rem;
  resize: none;
}
.p-form textarea#how {
  min-height: 1lh;
}
/* プライバシーポリシー */
.p-form__privacy-policy {
  margin-top: 2rem;
}
.p-form__agree {
  display: flex;
  justify-content: center;
}
.p-form label:has(input[type=checkbox i]) {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  cursor: pointer;
}
.p-form input[type=checkbox i] {
  position: relative;
  flex-shrink: 0;
  inline-size: var(--checkbox-size);
  block-size: var(--checkbox-size);
  background-color: var(--checkbox-bg);
  border: var(--border-width) solid var(--border-color);
  border-radius: 0.3125rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.p-form input[type=checkbox i]::before {
  margin: auto;
  position: absolute;
  inset: 0;
  display: block;
  width: 70%;
  aspect-ratio: 17/13;
  content: "";
  opacity: 0;
  -webkit-mask-image: url(../images/check.svg);
          mask-image: url(../images/check.svg);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  background-color: var(--checkbox-check-color);
}
.p-form input[type=checkbox i]:checked::before {
  opacity: 1;
}
.p-form__agree-text {
  color: var(--color-black3);
  font-size: max(0.9375rem, 10px);
  font-weight: 600;
}
.p-form__agree-text a {
  text-decoration: underline;
}
/* 送信ボタン */
.p-form__buttons {
  margin-top: 2rem;
  text-align: center;
}
.p-form__submit {
  width: 15rem;
}
.p-form__submit:disabled:hover {
  cursor: not-allowed;
  opacity: 0.7;
}
.p-form__submit .c-button__text {
  font-size: var(--font-size);
  font-weight: 600;
  color: var(--color-white);
  line-height: 1.2;
  white-space: nowrap;
}
/* エラー */
[aria-invalid=true]:is(input, textarea) {
  background-color: #fee2e2;
}
.p-header {
  --header-inner-padding-inline: var(--inner-padding);
}
.p-header__start {
  padding-block: 0.625rem;
  background-color: var(--color-theme);
  color: var(--color-white);
}
.p-header__start-inner {
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-inline: var(--header-inner-padding-inline);
}
.p-header__start-badge {
  display: grid;
  grid-template-columns: repeat(3, auto);
  align-items: center;
  padding-inline: 0.75rem;
  background-color: var(--color-accent);
  font-size: max(0.875rem, 10px);
  font-weight: 700;
}
.p-header__start-badge em {
  margin-inline: 0.125rem 0.25rem;
  font-family: var(--font-en);
  font-size: max(1.75rem, 10px);
  font-weight: 700;
  translate: 0 -0.125rem;
}
.p-header__start-copy {
  font-size: max(1rem, 10px);
  font-weight: 700;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: right;
}
.p-header__end {
  padding-block: 0.625rem;
}
.p-header__end-inner {
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
  padding-inline: var(--header-inner-padding-inline);
}
.p-header__end-logo {
  width: 10rem;
}
.p-list {
  --list-row-gap: 0.5rem;
  --list-marker-size: 1.1875rem;
  --list-column-gap: 0.625rem;
  display: grid;
  gap: var(--list-row-gap);
}
.p-list__item {
  position: relative;
  padding-inline-start: calc(var(--list-marker-size) + var(--list-column-gap));
}
.p-list__item::before {
  position: absolute;
  inset-block-start: calc((1lh - var(--list-marker-size)) / 2);
  inset-inline-start: 0;
  block-size: var(--list-marker-size);
  aspect-ratio: 1;
  background: url(../images/icon_check_blue.svg) no-repeat center/contain;
  border-radius: 50%;
  content: "";
}
.p-mv {
  position: relative;
  z-index: 0;
  padding-block: 1.75rem 3.375rem;
  color: var(--color-white);
  overflow: clip;
}
.p-mv__bg {
  z-index: -1;
  position: absolute;
  inset: 0;
}
.p-mv__bg img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-mv__texts {
  position: relative;
  z-index: 1;
}
.p-mv__tagline {
  --bg-cut-width: 0.875rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  row-gap: 0.25rem;
  font-size: max(1.5rem, 10px);
  font-weight: 700;
  line-height: 1;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.p-mv__tagline-text {
  padding-block: 0.3125rem;
  padding-inline: 1.3125rem;
  background-color: var(--color-black3);
  clip-path: polygon(var(--bg-cut-width) 0%, 100% 0%, calc(100% - var(--bg-cut-width)) 100%, 0% 100%);
}
.p-mv__headline {
  margin-block-start: 0.875rem;
  text-shadow: var(--text-shadow);
}
.p-mv__headline > * {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  row-gap: 0.8125rem;
  font-weight: 800;
  line-height: 1;
}
.p-mv__headline-text1-1 {
  font-size: max(2rem, 10px);
}
.p-mv__headline-text1-2 {
  font-size: max(2rem, 10px);
}
.p-mv__headline-text1-3 {
  font-size: max(2rem, 10px);
}
.p-mv__headline-text2 {
  margin-block-start: 0.75rem;
}
.p-mv__headline-text2-1 {
  font-size: max(3.5rem, 10px);
}
.p-mv__headline-text2-2 {
  font-size: max(2.9375rem, 10px);
}
.p-mv__headline-text2-3 {
  font-size: max(4rem, 10px);
}
.p-mv__lead {
  --lead-gap: 0.1875rem;
  margin-block-start: 2.1875rem;
  display: flex;
  flex-direction: column;
  row-gap: var(--lead-gap);
}
.p-mv__lead-text {
  display: flex;
  flex-wrap: wrap;
  row-gap: var(--lead-gap);
  color: var(--color-purple);
  font-size: max(0.875rem, 10px);
  font-weight: 800;
}
.p-mv__lead-text-block {
  padding-inline: 0.3125rem;
  background-color: var(--color-white);
}
.p-mv__cards {
  margin-block-start: 2.5rem;
  padding-inline: 0.25rem;
  display: grid;
  gap: 0.9375rem;
}
.p-mv__card {
  position: relative;
  padding-block: 1.1875rem 0.75rem;
  padding-inline: 0.5rem;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.25rem;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 13.1875rem;
  min-height: 4.5rem;
  background-color: var(--color-white);
  border-radius: 0.3125rem;
  box-shadow: var(--box-shadow);
}
.p-mv__card:has(.p-mv__card-badge-note) {
  min-height: 5.125rem;
}
.p-mv__card-badge {
  position: absolute;
  z-index: 1;
  inset-block-start: -1.5rem;
  inset-inline-start: -0.8125rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.625rem;
  aspect-ratio: 1;
  color: var(--color-black3);
  font-size: max(0.9375rem, 10px);
  font-weight: 800;
  background: url(../images/mv_card-badge_bg.svg) no-repeat center/contain;
}
.p-mv__card-badge-note {
  position: absolute;
  inset-block-start: -0.8125rem;
  inset-inline-start: 1.25rem;
  padding-block: 0.5625rem;
  padding-inline: 1.6875rem 1.125rem;
  color: var(--color-black3);
  font-size: max(0.6875rem, 10px);
  font-weight: 800;
  background: url(../images/mv_card-badge-note_bg.svg) no-repeat center/100% 100%;
}
.p-mv__card-label {
  color: var(--color-blue);
  font-size: max(1.125rem, 10px);
  font-weight: 700;
  line-height: 1;
  padding-block-end: 0.5rem;
  border-bottom: 1px solid;
}
.p-mv__card-value {
  margin-block-start: 0.25rem;
  color: var(--color-blue);
  font-size: max(0.875rem, 10px);
  font-weight: 800;
  line-height: 1;
  text-autospace: no-autospace;
}
.p-mv__card-value em {
  font-size: max(2.625rem, 10px);
  font-weight: 900;
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-mv__card-info1 {
  margin-inline: auto;
  width: -moz-fit-content;
  width: fit-content;
  font-size: max(1.125rem, 10px);
  font-weight: 900;
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-mv__card-info2 {
  color: var(--color-blue);
  font-size: max(0.875rem, 10px);
  font-weight: 800;
}
.p-mv__movie-item {
  position: absolute;
  filter: drop-shadow(0 0 2rem color-mix(in srgb, var(--color-black0) 25%, transparent));
}
.p-mv__movie-item::after {
  position: absolute;
  z-index: 1;
  background: no-repeat center/contain;
  content: "";
}
.p-mv__movie-item[data-movie="1"] {
  inset-block-end: 17.375rem;
  inset-inline-start: calc(50% + 3.125rem);
  rotate: 13deg;
}
.p-mv__movie-item[data-movie="2"] {
  inset-block-end: 2rem;
  inset-inline-start: calc(50% + 4.6875rem);
  /* 要素の奥行きの深さを指定 */
  perspective: 1200px;
  rotate: -11deg;
}
.p-mv__movie-item[data-movie="2"] .p-mv__movie-item-container {
  transform: rotateY(-8deg) rotateZ(-1deg);
}
.p-mv__movie-item[data-movie="1"]::after {
  inset: -0.125rem;
  background-image: url(../images/mv_sp2.svg);
}
.p-mv__movie-item[data-movie="2"]::after {
  inset: -0.25rem;
  background-image: url(../images/mv_sp1.svg);
}
.p-mv__movie-item video {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-fit: contain;
     object-fit: contain;
  background-color: var(--color-black0);
}
.p-mv__movie-item[data-movie="1"] video {
  width: 7.5rem;
  border-radius: 1rem;
  aspect-ratio: 242/452;
}
.p-mv__movie-item[data-movie="2"] video {
  width: 8.5rem;
  max-inline-size: unset;
  border-radius: 1.5rem;
  aspect-ratio: 257/590;
}
.p-price {
  padding-block: 4.5rem;
  background-color: #ededed;
}
.p-price__inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
/* ヘッダー */
.p-price__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.p-price__title-wrap {
  border-bottom: 1px solid var(--color-black3);
  padding-bottom: 0.3125rem;
}
.p-price__title {
  font-size: max(1.5rem, 10px);
  font-weight: 900;
  color: var(--color-black3);
}
.p-price__badge {
  background-color: var(--color-black3);
  padding-inline: 0.625rem;
}
.p-price__badge-text {
  display: block;
  font-size: max(1rem, 10px);
  font-weight: 800;
  color: var(--color-white);
  transform: skewX(-8deg);
  white-space: nowrap;
  text-shadow: 0 0 0.3125rem rgba(0, 0, 0, 0.08);
}
/* プランカード */
.p-price__plans {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.p-price__plan {
  background-color: var(--color-white);
  border-radius: 0.625rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding-bottom: 2rem;
  padding-inline: 1.0625rem;
}
.p-price__plan[data-color=light] {
  --heading-bg: #402edd;
}
.p-price__plan[data-color=standard] {
  --heading-bg: #2211bf;
}
.p-price__plan[data-color=premium] {
  --heading-bg: var(--color-black3);
}
.p-price__plan-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100% + 2.125rem);
  margin-inline: -1.0625rem;
  min-height: 3rem;
  border-radius: 0.3125rem 0.3125rem 0 0;
  background-color: var(--heading-bg);
}
.p-price__plan-name {
  font-size: max(1.125rem, 10px);
  font-weight: 800;
  color: var(--color-white);
  white-space: nowrap;
}
.p-price__plan-price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.25rem;
  width: 20rem;
}
.p-price__plan-price-num {
  font-family: var(--font-en);
  font-size: max(2.25rem, 10px);
  font-weight: 700;
  color: var(--color-theme);
}
.p-price__plan-price-unit {
  font-size: max(1.125rem, 10px);
  font-weight: 700;
  color: var(--color-theme);
}
.p-price__plan-price-per {
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  color: #606060;
  padding-bottom: 0.375rem;
}
.p-price__plan-shooting {
  border-top: 1px solid #d9d9d9;
  border-bottom: 1px solid #d9d9d9;
  width: 100%;
  padding-block: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-price__plan-shooting-text {
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  color: var(--color-black3);
  white-space: nowrap;
}
.p-price__plan-posts {
  background-color: #f2f2f2;
  border-radius: 0.625rem;
  width: 20rem;
  padding-block: 0.625rem;
  padding-inline: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0;
}
.p-price__plan-posts-label {
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  color: #4d4d4d;
}
.p-price__plan-posts-num {
  font-family: var(--font-en);
  font-size: max(1.75rem, 10px);
  font-weight: 700;
  color: #4d4d4d;
  margin-inline-start: 0.25rem;
}
.p-price__plan-posts-unit {
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  color: #4d4d4d;
  margin-inline-start: 0.25rem;
}
.p-price__plan-posts-note {
  width: 100%;
  text-align: center;
  font-size: max(0.8125rem, 10px);
  font-weight: 500;
  color: #797979;
}
/* 注記 */
.p-price__notes {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
}
.p-price__note {
  font-size: max(0.8125rem, 10px);
  font-weight: 700;
  color: var(--color-black3);
  white-space: nowrap;
}
.p-price__note-divider {
  display: block;
  width: 1px;
  height: 1.125rem;
  background-color: var(--color-black3);
}
/* 比較エリア */
.p-price__compare {
  display: flex;
  flex-direction: column;
  row-gap: 2.5rem;
}
.p-price__compare-other {
  background-color: var(--color-black3);
  border-radius: 0.625rem;
  padding-block: 1.25rem 3.75rem;
  padding-inline: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.p-price__compare-ours {
  position: relative;
  flex: 1;
  background: var(--gradation-theme);
  border-radius: 0.625rem;
  padding-block: 1.25rem 2.5rem;
  padding-inline: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.p-price__compare-badge {
  position: absolute;
  top: -1.5625rem;
  left: 50%;
  transform: translateX(-50%);
  background-color: #dd9243;
  border-radius: 2rem;
  padding-block: 0.625rem;
  padding-inline: 1.25rem;
  white-space: nowrap;
}
.p-price__compare-badge::before {
  position: absolute;
  inset-inline-end: 1.5625rem;
  inset-block-end: 1px;
  display: block;
  width: 1.5rem;
  aspect-ratio: 24/20;
  background: url(../images/balloon_tail_orange.svg) no-repeat center/contain;
  content: "";
  translate: 0 100%;
}
.p-price__compare-badge-text {
  font-size: max(1rem, 10px);
  font-weight: 800;
  color: var(--color-white);
}
.p-price__compare-title {
  font-size: max(1.125rem, 10px);
  font-weight: 700;
  color: var(--color-white);
  text-align: center;
}
.p-price__compare-ours .p-price__compare-title {
  font-size: max(1.375rem, 10px);
}
.p-price__compare-items {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  width: 100%;
}
.p-price__compare-item {
  background-color: var(--color-white);
  border-radius: 0.3125rem;
  padding-block: 0.625rem;
  padding-inline: 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-price__compare-label {
  font-size: max(0.8125rem, 10px);
  font-weight: 500;
  color: var(--color-black3);
}
.p-price__compare-value {
  display: flex;
  align-items: baseline;
  gap: 0.125rem;
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  color: #4d4d4d;
}
.p-price__compare-num {
  font-family: var(--font-en);
  font-size: max(1.75rem, 10px);
  font-weight: 700;
  color: var(--color-theme);
}
.p-price__compare-num--small {
  font-size: max(1.375rem, 10px);
}
.p-price__compare-num--purple {
  color: var(--color-purple);
}
.p-problem {
  padding-block: 4rem;
  background: url(../images/problem_bg.png) no-repeat center/cover;
}
.p-problem__wrap {
  margin-inline: auto;
  max-width: 53.1875rem;
}
.p-problem__heading {
  padding-block: 0.5rem;
  padding-inline: 1rem;
  position: relative;
  background-color: var(--color-black3);
  color: var(--color-white);
  font-size: max(1.25rem, 10px);
  font-weight: 900;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: center;
}
.p-problem__heading::before {
  position: absolute;
  inset-inline-end: 2.5rem;
  inset-block-end: 1px;
  display: block;
  width: 2.75rem;
  aspect-ratio: 44/24;
  background: url(../images/balloon_tail.svg) no-repeat center/contain;
  content: "";
  translate: 0 100%;
}
.p-problem__box1 {
  margin-block-start: 0.4375rem;
  background-color: var(--color-white);
  padding-block: 2.5rem;
  padding-inline: 1.25rem;
}
.p-problem__summary {
  font-size: max(1.125rem, 10px);
  font-weight: 600;
  line-height: 1.8;
  color: var(--color-black0);
}
.p-problem__summary em {
  color: var(--color-theme);
  font-weight: 700;
}
.p-problem__image {
  margin-block-start: 0.5rem;
}
.p-problem__desc {
  margin-block-start: 2.5rem;
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  line-height: 2;
}
.p-problem__desc em {
  color: var(--color-pink);
  font-weight: 700;
}
.p-problem__copy {
  margin-block-start: 2.5rem;
  font-size: max(1.25rem, 10px);
  font-weight: 900;
  text-align: center;
}
.p-problem__copy-text-bg {
  background-color: var(--color-white);
}
.p-problem__copy-text {
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-problem__box2 {
  margin-block-start: 1.25rem;
  background-color: var(--color-white);
}
.p-problem__box2-content {
  padding-block: 1.875rem;
  padding-inline: 2.5rem;
  position: relative;
  display: grid;
  place-content: center;
}
.p-problem__box2-content::before,
.p-problem__box2-content::after {
  position: absolute;
  display: block;
  width: 1.875rem;
  aspect-ratio: 1;
  content: "";
  background: url(../images/problem_box_deco.svg) no-repeat center/cover;
}
.p-problem__box2-content::before {
  inset-block-start: 0.75rem;
  inset-inline-end: 1.25rem;
}
.p-problem__box2-content::after {
  inset-block-end: 0.75rem;
  inset-inline-start: 1.25rem;
  rotate: 180deg;
}
.p-problem__box2-desc {
  font-size: max(1rem, 10px);
  font-weight: 500;
  line-height: 2;
}
.p-problem__box2-desc em {
  color: var(--color-pink);
  font-weight: 700;
}
.p-recommend__heading-text1 {
  margin-inline: auto;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding-block-end: 0.25rem;
  color: var(--color-gradation-end);
  border-block-end: 1px solid var(--color-black3);
  font-size: max(1.75rem, 10px);
  font-weight: 900;
}
.p-recommend__heading-text2 {
  margin-block-start: 0.5rem;
  display: block;
  font-size: max(2.125rem, 10px);
  font-weight: 900;
  text-align: center;
}
.p-recommend__heading-text2 em {
  margin-inline: 0.25rem;
  display: inline-block;
  padding-inline: 0.5rem;
  background-color: var(--color-black3);
  color: var(--color-white);
}
.p-recommend__heading-text2-1 {
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-recommend__heading-text2-2 {
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-recommend__heading-text2-ss {
  font-size: max(2rem, 10px);
}
.p-recommend__heading-text2-s {
  font-size: max(2.125rem, 10px);
}
.p-recommend__content {
  margin-block-start: 0.75rem;
}
.p-recommend__items {
  padding-block: 1.875rem;
  padding-inline: 1.25rem;
  background-color: var(--color-gray);
  border-radius: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem 1.25rem;
}
.p-recommend__item {
  width: 7.5rem;
}
.p-recommend__item-heading {
  margin-block-start: 0.25rem;
  font-size: max(0.875rem, 10px);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.p-solution {
  padding-block: 2.5rem;
  background-color: var(--color-light-blue-gray);
  /* 見出し装飾がはみ出す */
  overflow-x: clip;
}
.p-solution__heading {
  font-size: max(1.875rem, 10px);
  font-weight: 900;
  text-align: center;
  display: grid;
  gap: 0.25rem;
  justify-content: center;
}
.p-solution__heading-text1 {
  display: flex;
  align-items: center;
}
.p-solution__heading-text1-1,
.p-solution__heading-text1-2 {
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-solution__heading-text1-2 {
  font-size: max(1.5rem, 10px);
}
.p-solution__heading-text2 {
  padding-inline: 0.5rem;
  background-color: var(--color-black3);
  color: var(--color-white);
}
.p-solution__content {
  position: relative;
  z-index: 0;
  margin-block-start: 2.5rem;
}
.p-solution__content::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  width: 70%;
  margin: auto;
  display: block;
  background-color: var(--color-white);
  border-radius: 12.5rem;
  content: "";
}
.p-solution__items {
  display: grid;
  gap: 2.5rem;
}
.p-solution__item {
  display: grid;
  gap: 0.625rem;
}
.p-solution__item:nth-child(even) {
  --label-text-align: right;
}
.p-solution__item-image {
  order: 2;
  margin-inline-start: auto;
  width: 75%;
}
.p-solution__item-content {
  flex: 1;
}
.p-solution__item-label {
  position: relative;
  font-family: var(--font-en);
  text-align: var(--label-text-align, unset);
}
.p-solution__item:nth-child(odd) .p-solution__item-label::after,
.p-solution__item:nth-child(even) .p-solution__item-label::before {
  position: absolute;
  inset-block-start: 50%;
  height: 1px;
  width: 100vw;
  background-color: #c3c3c3;
  content: "";
}
.p-solution__item:nth-child(odd) .p-solution__item-label::after {
  translate: 1.625rem 0;
}
.p-solution__item:nth-child(even) .p-solution__item-label::before {
  transform-origin: left;
  rotate: 180deg;
  translate: -1.625rem 0;
}
.p-solution__item-label-text {
  font-size: max(1.5rem, 10px);
  font-weight: 700;
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
.p-solution__item-label-no {
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
  font-size: max(3rem, 10px);
  font-weight: 700;
}
.p-solution__item-heading {
  font-size: max(1.375rem, 10px);
  font-weight: 800;
}
.p-solution__item-desc {
  margin-block-start: 0.625rem;
  font-size: max(1rem, 10px);
  font-weight: 500;
}
.p-thanks {
  padding-block: 3.6875rem 5rem;
}
.p-thanks__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}
.p-thanks__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-thanks__content {
  text-align: center;
}
.p-thanks__desc {
  font-size: max(0.8125rem, 10px);
  font-weight: 400;
  color: var(--color-black3);
  line-height: 2;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.p-thanks__desc + .p-thanks__desc {
  margin-block-start: 1lh;
}
.p-thanks__button {
  display: flex;
  justify-content: center;
}
.p-thanks__button .c-button {
  width: 15rem;
}
.p-voice {
  padding-block: 3rem 3.5rem;
  background-color: #eaedef;
  overflow-x: clip;
}
.p-voice__inner {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
/* ヘッダー */
.p-voice__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* スライダー */
.p-voice__cards.splide {
  width: 100%;
  min-width: 0;
}
.p-voice__track.splide__track {
  overflow: visible;
}
/* カード */
.p-voice__card.splide__slide {
  width: 18.75rem;
  background-color: var(--color-white);
  border-radius: 1.25rem;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.p-voice__card-header {
  display: flex;
  gap: 0.625rem;
  align-items: center;
  width: 100%;
}
.p-voice__logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: 0.625rem;
  padding-inline: 1rem;
  background-color: var(--color-white);
  border: 1px solid #e0e0e0;
}
.p-voice__logo img {
  height: 2rem;
  width: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.p-voice__company {
  flex: 1;
  font-size: max(1.25rem, 10px);
  font-weight: 900;
  color: #001b40;
}
/* カード本体 */
.p-voice__card-body {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.p-voice__profile {
  display: flex;
  gap: 1rem;
  align-items: center;
}
.p-voice__avatar {
  flex-shrink: 0;
  width: 4.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}
.p-voice__avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-voice__stats {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.p-voice__stat {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.p-voice__stat-label {
  border: 2px solid #001b40;
  border-radius: 2rem;
  padding-block: 0.25rem;
  padding-inline: 1rem;
  font-size: max(0.8125rem, 10px);
  font-weight: 500;
  color: #001b40;
  white-space: nowrap;
}
.p-voice__stat-value {
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  color: #001b40;
  white-space: nowrap;
}
/* コメント */
.p-voice__comment {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.p-voice__comment-label {
  display: flex;
  align-items: center;
  gap: 0.3125rem;
  font-size: max(0.875rem, 10px);
  font-weight: 500;
  color: #001b40;
}
.p-voice__comment-label::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 0.6875rem;
  aspect-ratio: 1;
  background-color: #024188;
  border-radius: 50%;
}
.p-voice__comment-text {
  font-size: max(0.875rem, 10px);
  font-weight: 400;
  color: #001b40;
  line-height: 1.8;
}
.p-worry {
  padding-block: 2.5rem;
  background-color: var(--color-black3);
  color: var(--color-white);
}
.p-worry__heading {
  margin-inline: auto;
  width: -moz-fit-content;
  width: fit-content;
  font-size: max(1.5rem, 10px);
  font-weight: 900;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: center;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.5rem;
}
.p-worry__content {
  margin-block-start: 2.5rem;
}
.p-worry__items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.4375rem;
}
.p-worry__item {
  position: relative;
  width: 18.9375rem;
  padding-block: 1em;
  background-color: var(--color-white);
  color: var(--color-blue);
  font-size: max(1rem, 10px);
  font-weight: 600;
  line-height: 1.8;
  text-align: center;
}
.p-worry__item::before {
  position: absolute;
  inset-block-start: -0.5625rem;
  inset-inline-start: -0.875rem;
  display: block;
  width: 2.5625rem;
  aspect-ratio: 1;
  background: url(../images/icon_check.svg) no-repeat center/contain;
  content: "";
}
.p-worry__item em {
  color: var(--color-purple);
  font-weight: 900;
}
.p-worry__copy {
  margin-block-start: 1.1875rem;
  display: grid;
  gap: 1.25rem;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.p-worry__copy::after {
  margin-inline-start: auto;
  width: 15rem;
  aspect-ratio: 240/153;
  background: url(../images/worry_illust.svg) no-repeat center/contain;
  content: "";
}
.p-worry__copy-text {
  font-size: max(1.875rem, 10px);
  font-weight: 900;
  line-height: 2;
}
.p-worry__copy-l {
  font-size: max(2.125rem, 10px);
}
.p-worry__copy em {
  margin-inline: 0.5rem;
  position: relative;
  z-index: 0;
  display: inline-block;
  line-height: 1;
  padding-block: 0.25rem;
  padding-inline: 0.5rem;
  font-size: max(2.125rem, 10px);
  font-weight: 900;
}
.p-worry__copy em::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background-color: var(--color-white);
  content: "";
}
.p-worry__copy em span {
  display: block;
  display: inline-block;
  line-height: 1;
  -webkit-background-clip: text;
          background-clip: text;
  background-image: var(--gradation-theme);
  -webkit-text-fill-color: transparent;
}
/* 動きを抑えたい人への配慮 */
/* 初期（見えない＆少し下） */
[data-fadein] {
  opacity: 0;
  transform: translateY(2.5rem);
  transition: opacity 1.4s cubic-bezier(0.2, 0.6, 0.2, 1), transform 0.6s cubic-bezier(0.2, 0.6, 0.2, 1);
}
/* 表示状態 */
[data-fadein].is-show {
  opacity: 1;
  transform: translateY(0);
}
/* 遅延設定（pcで1行・複数列を想定／最大4列） */
[data-hover-underline] {
  --underline-color: currentColor;
  --bottom: 0;
  --delay: 0s;
  --line-width: 2px;
  background-repeat: no-repeat;
  background-image: linear-gradient(var(--underline-color), var(--underline-color));
  background-size: 0% var(--line-width);
  background-position: bottom var(--bottom) right;
}
@keyframes expand {
  0% {
    background-size: 0% var(--line-width);
    background-position: bottom var(--bottom) left;
  }
  100% {
    background-position: bottom var(--bottom) left;
    background-size: 100% var(--line-width);
  }
}
@keyframes contract {
  0% {
    background-size: 100% var(--line-width);
    background-position: bottom var(--bottom) right;
  }
  100% {
    background-position: bottom var(--bottom) right;
    background-size: 0% var(--line-width);
  }
}
[data-hover-underline].is-expanded {
  animation: expand 0.3s var(--delay) forwards;
}
[data-hover-underline].is-contracting {
  animation: contract 0.3s forwards;
}
a:focus-visible:has([data-hover-underline]) {
  opacity: 1;
}
[data-slidein-mask] {
  position: relative;
  z-index: 0;
  clip-path: inset(0 100% 0 0);
  --mask-color: var(--color-orange);
  --mask-color: #fb9250;
}
[data-slidein-mask]::before {
  position: absolute;
  inset: -1.25rem 0 0;
  z-index: -1;
  background-color: var(--mask-color);
  content: "";
  clip-path: inset(0 0 0%);
}
[data-slidein-mask].is-show {
  animation: slidein 0.3s ease-out forwards;
}
[data-slidein-mask].is-show::before {
  animation: mask 0.8s 0.3s cubic-bezier(0.8, 0, 0.17, 1) forwards;
}
[data-slidein-mask=delay1].is-show::before {
  animation-delay: 0.6s;
}
[data-slidein-mask=delay2].is-show::before {
  animation-delay: 0.9s;
}
@keyframes slidein {
  0% {
    clip-path: inset(0 100% 0 0);
  }
  100% {
    clip-path: inset(0 0% 0 0);
  }
}
@keyframes mask {
  0% {
    clip-path: inset(0 0 0 0%);
  }
  100% {
    clip-path: inset(0 0 0 100%);
  }
}
.u-anime-rotate {
  animation: rotate 15s linear infinite;
}
@keyframes rotate {
  0% {
    rotate: 0deg;
  }
  100% {
    rotate: 360deg;
  }
}
.u-marker-dot {
  /* 文字数はhtmlのstyle属性で指定（可変にする場合はJSで対応） */
  --dot-size: 0.3125rem;
  --dot-offset: 0.0625rem;
  --dot-color: currentcolor;
  position: relative;
  display: inline-block;
  /* ドットも要素の一部とみなす場合 */
  padding-block-start: var(--dot-offset);
}
.u-marker-dot::before {
  position: absolute;
  inset-inline: var(--padding-inline, 0);
  inset-block-start: 0;
  /* 他の行のレイアウトに影響を出さないようにする場合 */
  height: var(--dot-size);
  -webkit-mask-size: calc(100% / var(--dot-count)) var(--dot-size);
          mask-size: calc(100% / var(--dot-count)) var(--dot-size);
  -webkit-mask-repeat: space no-repeat;
          mask-repeat: space no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><circle cx="1" cy="1" r="1" fill="black"/></svg>');
          mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><circle cx="1" cy="1" r="1" fill="black"/></svg>');
  content: "";
  background-color: var(--dot-color);
}
/**
 * 丸みのあるマーカー風の下線（蛍光ペン風）
 * ※複数行非対応
 * --marker-color, --marker-width でカスタマイズ可能
 */
.u-marker-round {
  --marker-color: color-mix(in srgb, var(--color-accent), transparent 20%);
  --marker-width: 0.9375rem;
  position: relative;
  z-index: 0;
  display: inline-block;
}
.u-marker-round::before {
  position: absolute;
  z-index: -1;
  inset-block-end: 0;
  inset-inline: -0.25rem;
  display: block;
  height: var(--marker-width);
  background-color: var(--marker-color);
  border-radius: 100vh;
  content: "";
}
/**
 * マーカー風の下線（蛍光ペン風）
 * --marker-color, --marker-width でカスタマイズ可能
 */
.u-marker {
  --marker-color: color-mix(in srgb, var(--color-theme), transparent 70%);
  --marker-width: 0.5rem;
  background-image: linear-gradient(to top, var(--marker-color) var(--marker-width), transparent var(--marker-width));
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.u-pc {
  display: none;
}
/**
 * スクリーンリーダー専用テキスト
 * 視覚的には非表示だが、スクリーンリーダーでは読み上げられる
 */
.u-screen-reader {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
@media screen and (min-width: 768px){
  :root {
    --desigh-width: 1440;
    --inner-padding: 3.125rem;
    --inner: 68.75rem;
  }
  html {
    font-size: 1.3333333333vw;
    font-size: 1.3333333333cqi;
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
  .l-recommend {
    margin-block-start: 4rem;
  }
  .l-worry {
    margin-block-start: 4rem;
  }
  .c-button-header {
    gap: 0.5rem;
    padding-block: 0.625rem;
    padding-inline: 1.5rem 0.625rem;
  }
  .c-button-header__text {
    font-size: max(1.125rem, 10px);
  }
  .c-button {
    gap: 0.5rem;
    padding-block: 1.625rem;
    padding-inline: 1.125rem;
  }
  .c-button[type=submit] {
    padding-block: 1.1875rem;
  }
  .c-button__copy {
    padding-inline: 1.125rem;
    font-size: max(1.125rem, 10px);
    font-weight: 700;
  }
  .c-button__text {
    font-size: max(1.5rem, 10px);
  }
  .c-section-head__deco {
    font-size: max(5rem, 10px);
  }
  .c-section-head__title-wrap {
    padding-inline: 2.25rem;
  }
  .c-section-head__title {
    font-size: max(1.25rem, 10px);
  }
  .p-about {
    padding-block: 3.75rem 4.0625rem;
  }
  .p-about__heading {
    font-size: max(2rem, 10px);
  }
  .p-about__wrap {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
  }
  .p-about__client-image {
    margin-inline: 0;
    width: 13.1875rem;
  }
  .p-about__client-caption {
    font-size: max(1rem, 10px);
  }
  .p-about__flow {
    flex-direction: column;
    row-gap: 2.625rem;
    font-size: max(1rem, 10px);
  }
  .p-about__flow1,
  .p-about__flow2 {
    writing-mode: unset;
  }
  .p-about__flow1::after,
  .p-about__flow2::before {
    rotate: 0deg;
  }
  .p-about__flow1::after {
    translate: 0 0;
  }
  .p-about__flow2::before {
    translate: 0 0;
  }
  .p-about__team {
    margin-inline: 0;
    max-width: unset;
  }
  .p-about__team-image {
    width: 13.1875rem;
  }
  .p-about__team-caption {
    padding-inline: 1.375rem;
    font-size: max(1rem, 10px);
  }
  .p-about__team-items {
    font-size: max(1rem, 10px);
  }
  .p-about__copy-dot {
    font-size: max(2rem, 10px);
  }
  .p-about__copy-text2 {
    flex-direction: row;
    font-size: max(3rem, 10px);
  }
  .p-about__copy-text2 span:nth-child(2) {
    margin-inline-start: 0;
  }
  .p-cases {
    padding-block: 4rem 3.375rem;
  }
  .p-cases__inner {
    gap: 5.5rem;
    --inner: 68.75rem;
  }
  .p-cases__block {
    gap: 2rem;
  }
  .p-cases__heading {
    font-size: max(2rem, 10px);
  }
  .p-cases__cards {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
  .p-cases__card {
    padding: 2rem 3rem;
    gap: 2rem;
  }
  .p-cases__card-title {
    font-size: max(1.375rem, 10px);
  }
  .p-cases__card-body {
    grid-template-areas: "phone info1" "phone info2" "phone info3";
    align-items: flex-start;
    gap: 2rem;
  }
  .p-cases__phone {
    width: 13.375rem;
  }
  .p-cases__stat-label,
  .p-cases__challenge-label {
    font-size: max(1.375rem, 10px);
  }
  .p-cases__stat-num {
    font-size: max(2.5rem, 10px);
  }
  .p-cases__stat-unit {
    font-size: max(1.25rem, 10px);
    translate: 0 -0.1875rem;
  }
  .p-cases__challenge {
    min-height: 7rem;
  }
  .p-cases__challenge-text {
    font-size: max(1.125rem, 10px);
  }
  .p-cases__works {
    gap: 1.5rem;
  }
  .p-cases__works-heading {
    font-size: max(2rem, 10px);
  }
  .p-contact__inner {
    --inner: 40rem;
  }
  .p-cta {
    padding-block: 3rem 2.5rem;
    background-image: url(../images/cta_bg.png);
  }
  .p-cta__inner {
    --inner: 75.25rem;
  }
  .p-cta__content {
    padding-block: 4.625rem;
    padding-inline: 2.5rem;
  }
  .p-cta__content::before {
    inset: 0.625rem;
  }
  .p-cta__heading {
    letter-spacing: 0;
    font-size: max(2.1875rem, 10px);
  }
  .p-cta__heading::before,
  .p-cta__heading::after {
    translate: 0 -0.625rem;
  }
  .p-cta__buttons {
    margin-block-start: 1.5rem;
    margin-inline: auto;
    width: -moz-fit-content;
    width: fit-content;
    grid-template-columns: auto auto;
    gap: 1.875rem;
  }
  .p-cta__button {
    width: 29.25rem;
  }
  .p-difference__heading::before {
    inset-inline-end: 5rem;
  }
  .p-difference__heading-text1 {
    font-size: max(2.1875rem, 10px);
  }
  .p-difference__heading-text2 {
    font-size: max(1.75rem, 10px);
  }
  .p-difference__heading-text3 {
    margin-inline-start: -0.5rem;
    font-size: max(2.5rem, 10px);
  }
  .p-difference__items {
    gap: 2.375rem;
  }
  .p-difference__item {
    display: flex;
    align-items: center;
    gap: 2rem;
  }
  .p-difference__item-image {
    flex-shrink: 0;
    width: 30rem;
  }
  .p-difference__item-badge {
    width: 5.5rem;
  }
  .p-difference__item-no {
    font-size: max(2.8125rem, 10px);
  }
  .p-difference__item-heading {
    font-size: max(2.375rem, 10px);
    letter-spacing: 0.05em;
  }
  .p-difference__item-desc {
    font-size: max(1.125rem, 10px);
  }
  .p-faq {
    padding-block: 4.75rem 1.375rem;
  }
  .p-faq__inner {
    --inner: 55rem;
    gap: 1.9375rem;
  }
  .p-faq__summary {
    padding: 1rem 4rem 1rem 1.5rem;
  }
  .p-faq__q-badge {
    width: 3.125rem;
    font-size: max(1.25rem, 10px);
  }
  .p-faq__q-text {
    padding-block-start: 0.6875rem;
    font-size: max(1.25rem, 10px);
  }
  .p-faq__icon {
    inset-inline-end: 1.875rem;
    width: 0.875rem;
  }
  .p-faq__content-inner {
    padding-block: 1.125rem;
    padding-inline: 1.5rem 4rem;
  }
  .p-faq__a-badge {
    width: 3.125rem;
    font-size: max(1.25rem, 10px);
  }
  .p-faq__a-text {
    padding-block-start: 0.6875rem;
    font-size: max(1rem, 10px);
  }
  .p-flow {
    padding-block: 4.8125rem 4.5rem;
  }
  .p-voice + .p-flow {
    padding-block: 1.125rem 4.5rem;
  }
  .p-flow__inner {
    --inner: 76rem;
    gap: 1.25rem;
  }
  .p-flow__steps {
    flex-direction: row;
    gap: 0.6875rem;
  }
  .p-flow__step {
    flex: 1;
    gap: 1.5rem;
  }
  .p-flow__step-banner {
    -webkit-mask-image: url(../images/flow_step2.svg);
            mask-image: url(../images/flow_step2.svg);
    height: 4.75rem;
    padding-inline-start: 2.125rem;
  }
  .p-flow__step[data-step="01"] .p-flow__step-banner {
    -webkit-mask-image: url(../images/flow_step1.svg);
            mask-image: url(../images/flow_step1.svg);
    margin-inline-end: -1.0625rem;
    padding-inline-start: 1.75rem;
  }
  .p-flow__step:not([data-step="01"]) .p-flow__step-banner {
    -webkit-mask-image: url(../images/flow_step2.svg);
            mask-image: url(../images/flow_step2.svg);
    padding-inline-start: 2.375rem;
  }
  .p-flow__step-detail {
    margin-block-start: 0;
    margin-inline-start: 0;
    padding: 1.5rem;
    gap: 0.625rem;
    min-height: 9.75rem;
  }
  .p-flow__step-title {
    font-size: max(1.125rem, 10px);
  }
  .p-flow__step-title-sub {
    font-size: max(0.75rem, 10px);
  }
  .p-flow__step-desc {
    font-size: max(0.9375rem, 10px);
  }
  .p-footer {
    padding-block: 4.375rem 2rem;
  }
  .p-footer__inner {
    --inner: 75rem;
  }
  .p-footer__main {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
  }
  .p-footer__brand {
    gap: 1.875rem;
  }
  .p-footer__logo {
    text-align: left;
  }
  .p-footer__logo-link {
    width: 17.4375rem;
  }
  .p-footer__address {
    font-size: max(1rem, 10px);
  }
  .p-footer__nav {
    justify-content: flex-start;
  }
  .p-footer__nav-link {
    font-size: max(1rem, 10px);
  }
  .p-form {
    --font-size: 0.9375rem;
    --text-padding: 0.8125rem;
  }
  .p-form__dd + .p-form__dt {
    margin-block-start: 2rem;
  }
  .p-form__privacy-policy {
    margin-top: 2.375rem;
  }
  .p-header {
    --header-inner-padding-inline: 1.5rem;
  }
  .p-header__start-inner {
    gap: 2.5rem;
  }
  .p-header__start-badge {
    padding-inline: 1rem;
    font-size: max(1.25rem, 10px);
  }
  .p-header__start-badge em {
    font-size: max(2.5rem, 10px);
  }
  .p-header__start-copy {
    font-size: max(1.5rem, 10px);
    text-align: right;
  }
  .p-header__end-logo {
    width: 13.5rem;
  }
  .p-mv {
    padding-block: 4.5rem 3.375rem;
  }
  .p-mv__inner {
    --inner: 73.625rem;
  }
  .p-mv__tagline {
    --bg-cut-width: 1.125rem;
    flex-direction: row;
    width: -moz-fit-content;
    width: fit-content;
    padding-block: 0.125rem;
    padding-inline: 1.875rem;
    background-color: var(--color-black3);
    font-size: max(2rem, 10px);
    clip-path: polygon(var(--bg-cut-width) 0%, 100% 0%, calc(100% - var(--bg-cut-width)) 100%, 0% 100%);
  }
  .p-mv__tagline-text {
    padding-inline: 0;
    clip-path: unset;
  }
  .p-mv__headline {
    margin-block-start: 1.125rem;
    padding-inline-start: 0.25rem;
  }
  .p-mv__headline-text1-1 {
    font-size: max(3.625rem, 10px);
  }
  .p-mv__headline-text1-2 {
    font-size: max(3rem, 10px);
  }
  .p-mv__headline-text1-3 {
    font-size: max(3.625rem, 10px);
  }
  .p-mv__headline-text2-1 {
    font-size: max(5rem, 10px);
  }
  .p-mv__headline-text2-2 {
    font-size: max(4rem, 10px);
  }
  .p-mv__headline-text2-3 {
    font-size: max(5rem, 10px);
  }
  .p-mv__lead {
    --lead-gap: 0.4375rem;
    padding-inline-start: 0.5625rem;
    margin-block-start: 2.6875rem;
  }
  .p-mv__lead-text {
    width: -moz-fit-content;
    width: fit-content;
    padding-inline: 0.625rem;
    background-color: var(--color-white);
    font-size: max(1.25rem, 10px);
  }
  .p-mv__lead-text-block {
    padding-inline: 0;
  }
  .p-mv__cards {
    margin-block-start: 4.9375rem;
    grid-template-columns: repeat(3, auto);
    justify-content: flex-start;
  }
  .p-mv__card {
    flex-direction: column;
    align-items: center;
    gap: 0.875rem;
    width: 16.625rem;
    padding-block: 1.5625rem 0.75rem;
    padding-inline: 0.5rem;
  }
  .p-mv__card-badge {
    inset-block-start: -2.5rem;
    inset-inline-start: -1rem;
    width: 4.5625rem;
    font-size: max(1.1875rem, 10px);
  }
  .p-mv__card-badge-note {
    inset-block-start: -1.375rem;
    inset-inline-start: 2.5rem;
    font-size: max(0.875rem, 10px);
  }
  .p-mv__card-label {
    font-size: max(1.5rem, 10px);
  }
  .p-mv__card-value {
    margin-block-start: -0.75rem;
    font-size: max(1.25rem, 10px);
  }
  .p-mv__card-value em {
    font-size: max(3.375rem, 10px);
  }
  .p-mv__card-info1 {
    font-size: max(2.25rem, 10px);
  }
  .p-mv__card-info2 {
    font-size: max(1.25rem, 10px);
  }
  .p-mv__movie-item[data-movie="1"] {
    inset-block-end: 6.25rem;
    inset-inline-start: calc(50% + 6.375rem);
  }
  .p-mv__movie-item[data-movie="2"] {
    inset-inline-start: calc(50% + 21.25rem);
    inset-block-end: 1.375rem;
  }
  .p-mv__movie-item[data-movie="1"]::after {
    inset: -0.3125rem;
  }
  .p-mv__movie-item[data-movie="2"]::after {
    inset: -0.5rem;
  }
  .p-mv__movie-item video {
    border-radius: 2rem;
  }
  .p-mv__movie-item[data-movie="1"] video {
    width: 15.125rem;
    border-radius: 2rem;
  }
  .p-mv__movie-item[data-movie="2"] video {
    padding-inline-end: 0.5rem;
    border-radius: 2rem;
    width: 17.5rem;
  }
  .p-price__inner {
    --inner: 68.75rem;
    gap: 1.5rem;
  }
  .p-price__head {
    gap: 1.5rem;
  }
  .p-price__title {
    font-size: max(2rem, 10px);
  }
  .p-price__badge-text {
    font-size: max(1.375rem, 10px);
  }
  .p-price__plans {
    flex-direction: row;
    gap: 1.1875rem;
  }
  .p-price__plan {
    flex: 1;
    gap: 0.9375rem;
  }
  .p-price__plan-heading {
    min-height: 4.4375rem;
  }
  .p-price__plan-name {
    font-size: max(1.5rem, 10px);
  }
  .p-price__plan-price-num {
    font-size: max(3.125rem, 10px);
  }
  .p-price__plan-price-unit {
    font-size: max(1.5rem, 10px);
  }
  .p-price__plan-price-per {
    font-size: max(1rem, 10px);
    padding-bottom: 0.5rem;
  }
  .p-price__plan-shooting-text {
    font-size: max(1rem, 10px);
  }
  .p-price__plan-posts {
    margin-block-start: 0.4375rem;
    padding-block: 0.375rem;
  }
  .p-price__plan-posts-label {
    font-size: max(1.15rem, 10px);
  }
  .p-price__plan-posts-num {
    font-size: max(2.375rem, 10px);
  }
  .p-price__plan-posts-unit {
    font-size: max(1.15rem, 10px);
  }
  .p-price__plan-posts-note {
    margin-block-start: -0.375rem;
    font-size: max(1rem, 10px);
  }
  .p-price__note {
    font-size: max(1rem, 10px);
  }
  .p-price__compare {
    margin-block-start: 2.125rem;
    flex-direction: row;
    align-items: flex-end;
    padding-inline-start: min(1.3888888889cqi, 20px);
  }
  .p-price__compare-other {
    flex-shrink: 0;
    width: 33.125rem;
    padding-block: 1.25rem 1.5625rem;
    border-radius: 0.625rem 0 0 0.625rem;
  }
  .p-price__compare-ours {
    padding-block: 2rem 2.25rem;
    border-radius: 0.625rem 0.625rem 0.625rem 0;
  }
  .p-price__compare-badge-text {
    font-size: max(1.5rem, 10px);
  }
  .p-price__compare-title {
    font-size: max(1.5rem, 10px);
  }
  .p-price__compare-ours .p-price__compare-title {
    font-size: max(2rem, 10px);
  }
  .p-price__compare-item {
    padding-block: 0.625rem 0.1875rem;
  }
  .p-price__compare-label {
    font-size: max(1rem, 10px);
  }
  .p-price__compare-value {
    margin-block-start: -0.3125rem;
    font-size: max(1.125rem, 10px);
  }
  .p-price__compare-num {
    font-size: max(2.375rem, 10px);
  }
  .p-price__compare-num--small {
    font-size: max(2rem, 10px);
  }
  .p-problem__inner {
    --inner: 65.75rem;
  }
  .p-problem__heading {
    padding-block: 0.5rem 0;
    font-size: max(2rem, 10px);
  }
  .p-problem__heading::before {
    inset-inline-end: 5rem;
  }
  .p-problem__box1 {
    padding-block: 2rem;
  }
  .p-problem__summary {
    font-size: max(1.25rem, 10px);
    text-align: center;
  }
  .p-problem__image {
    margin-block-start: 1.5rem;
    margin-inline: auto;
    max-width: 46.9375rem;
    translate: 0.625rem 0;
  }
  .p-problem__desc {
    margin-block-start: 1.875rem;
    font-size: max(1rem, 10px);
    text-align: center;
  }
  .p-problem__copy {
    margin-block-start: 1.875rem;
    display: grid;
    gap: 0.625rem;
    font-size: max(2.5rem, 10px);
  }
  .p-problem__copy-text-bg {
    margin-inline: auto;
    width: -moz-fit-content;
    width: fit-content;
    padding-inline: 0.9375rem;
  }
  .p-problem__box2 {
    margin-block-start: 1.875rem;
    display: grid;
    grid-template-columns: 1fr 25.8125rem;
  }
  .p-problem__box2-content {
    padding-inline: 1.25rem;
  }
  .p-problem__box2-content::before,
  .p-problem__box2-content::after {
    width: 2.75rem;
  }
  .p-problem__box2-desc {
    text-align: center;
  }
  .p-problem__box2-image {
    order: 2;
  }
  .p-recommend__inner {
    --inner: 56.25rem;
  }
  .p-recommend__heading-text1 {
    font-size: max(2rem, 10px);
  }
  .p-recommend__heading-text2 {
    margin-block-start: 0.625rem;
    font-size: max(3.0625rem, 10px);
  }
  .p-recommend__heading-text2 em {
    margin-inline: 0.625rem;
    padding-inline: 0.9375rem;
  }
  .p-recommend__heading-text2-ss {
    font-size: max(2.5625rem, 10px);
  }
  .p-recommend__heading-text2-s {
    font-size: max(2.6875rem, 10px);
  }
  .p-recommend__content {
    margin-block-start: 1.1875rem;
  }
  .p-recommend__items {
    gap: 2.375rem 1.625rem;
    padding-block: 2.9375rem;
    padding-inline: 3.9375rem;
  }
  .p-recommend__item {
    width: 8.375rem;
  }
  .p-recommend__item-heading {
    font-size: max(1rem, 10px);
  }
  .p-solution {
    padding-block: 5.5rem 3.0625rem;
  }
  .p-solution__inner {
    --inner: 63.8125rem;
  }
  .p-solution__heading {
    grid-template-columns: auto auto;
    font-size: max(3.0625rem, 10px);
  }
  .p-solution__heading-text1-2 {
    font-size: max(2.5625rem, 10px);
  }
  .p-solution__content::before {
    border-radius: 23.75rem;
  }
  .p-solution__items {
    gap: 2.25rem;
    padding-block-end: 3.5rem;
  }
  .p-solution__item {
    display: flex;
    gap: 2.5rem;
  }
  .p-solution__item:nth-child(even) {
    flex-direction: row-reverse;
  }
  .p-solution__item-image {
    order: unset;
    width: 33.3125rem;
  }
  .p-solution__item-content {
    padding-block-start: 0.5rem;
  }
  .p-solution__item-label-text {
    font-size: max(2rem, 10px);
  }
  .p-solution__item-label-no {
    font-size: max(5.75rem, 10px);
  }
  .p-solution__item-heading {
    margin-block-start: -0.875rem;
    font-size: max(2rem, 10px);
  }
  .p-solution__item-desc {
    margin-block-start: 1.25rem;
    font-size: max(1.125rem, 10px);
  }
  .p-thanks__inner {
    gap: 3.75rem;
    --inner: 40rem;
  }
  .p-thanks__desc {
    font-size: max(0.9375rem, 10px);
  }
  .p-voice {
    padding-block: 4.8125rem 1.125rem;
  }
  .p-voice__inner {
    --inner: 68.75rem;
    gap: 1.375rem;
  }
  .p-voice__card.splide__slide {
    width: 42.5rem;
    padding: 2.1875rem;
    gap: 1.125rem;
  }
  .p-voice__logo {
    padding-block: 1rem;
    padding-inline: 1.5rem;
  }
  .p-voice__logo img {
    height: 2.5rem;
  }
  .p-voice__company {
    font-size: max(1.75rem, 10px);
  }
  .p-voice__card-body {
    gap: 1.5rem;
  }
  .p-voice__profile {
    gap: 1.5rem;
  }
  .p-voice__avatar {
    width: 6.75rem;
  }
  .p-voice__stats {
    gap: 1.125rem;
  }
  .p-voice__stat {
    gap: 1.25rem;
  }
  .p-voice__stat-label {
    border-width: 3px;
    padding-inline: 1.5rem;
    font-size: max(1.25rem, 10px);
  }
  .p-voice__stat-value {
    font-size: max(1.25rem, 10px);
  }
  .p-voice__comment {
    gap: 1.125rem;
  }
  .p-voice__comment-label {
    font-size: max(1.25rem, 10px);
  }
  .p-voice__comment-label::before {
    width: 0.8125rem;
  }
  .p-voice__comment-text {
    font-size: max(1.125rem, 10px);
  }
  .p-worry {
    padding-block: 4rem 3.375rem;
  }
  .p-worry__heading {
    font-size: max(2rem, 10px);
    text-underline-offset: 0.8125rem;
  }
  .p-worry__content {
    margin-block-start: 2.1875rem;
  }
  .p-worry__item {
    display: table-cell;
    place-content: center;
    padding-block: 0.75rem;
    font-size: max(1.1875rem, 10px);
  }
  .p-worry__copy {
    display: flex;
    justify-content: center;
  }
  .p-worry__copy::after {
    order: -1;
    margin-inline-start: 0;
  }
  .p-worry__copy-text {
    width: -moz-fit-content;
    width: fit-content;
    font-size: max(2.5rem, 10px);
  }
  .p-worry__copy-l {
    font-size: max(3.0625rem, 10px);
  }
  .p-worry__copy em {
    margin-inline: 0 0.9375rem;
    padding-block: 0.75rem;
    padding-inline: 0.875rem;
    font-size: max(3.0625rem, 10px);
  }
  [data-fadein="200"] {
    transition-delay: 200ms;
  }
  [data-fadein="400"] {
    transition-delay: 400ms;
  }
  [data-fadein="600"] {
    transition-delay: 600ms;
  }
  .u-pc {
    display: block; /* 古いブラウザ用フォールバック */
    display: revert; /* モダンブラウザではUAスタイルに戻す */
  }
  .u-sp {
    display: none;
  }
}
@media (min-width: 1200px){
  html {
    font-size: 16px;
  }
}
@media (max-width: 375px){
  html {
    font-size: 4.2666666667vw;
    font-size: 4.2666666667cqi;
  }
}
@media (any-hover: hover){
  a:hover {
    opacity: 0.7;
  }
  .c-button-header:hover {
    opacity: 1;
    scale: 1.05;
  }
  .c-button:not(:disabled):hover {
    opacity: 1;
    scale: 1.05;
  }
  .p-faq__summary:hover {
    opacity: 1;
    background-position: 0 100%;
  }
  a:hover:has([data-hover-underline]) {
    opacity: 1;
  }
}
@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 (prefers-reduced-motion: reduce){
  [data-fadein] {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
@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;
  }
}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}