@charset "UTF-8";
/*! TAK's Custom Base.css v1.3.4 | MIT License | github.com/tak-dcxi/taks-custom-base-css */
/* ======================================================
//
// MARK: # TAK's Custom Base.css
// Made by TAK - https: //www.tak-dcxi.com/
// This CSS is built based on Normalize.css. (https: //necolas.github.io/normalize.css/)
// It aims to normalize styles for better cross-browser compatibility, remove default browser styling, and enhance usability and accessibility for all users."
//
// ====================================================== */
/* ======================================================
// MARK: ## Universal
// ------------------------------------------------------ */
*,
::before,
::after {
  /* Ensure padding and borders are included within the dimensions of the element. */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* Prevent inline elements from extending beyond their container's bounds. */
  min-inline-size: 0;
  /* Remove any default borders. */
  border-width: 0;
  /* Set a default border style of solid for easy border additions. */
  border-style: solid;
}

/* ======================================================
// MARK: ## Document and Body Elements
// ------------------------------------------------------ */
:where(:root, body) {
  /* Prevent scrolling along the inline axis (usually horizontal) for root and body. */
  overflow-inline: clip;
}
@supports not (overflow-inline: clip) {
  :where(:root, body) {
    /* Prevent horizontal scrolling for root and body in browsers that don't support `overflow-inline`. */
    overflow-x: clip;
  }
}

:where(:root) {
  /* Specify a safe font-family for the default Gothic typeface. */
  font-family: "Helvetica Neue", arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", meiryo, sans-serif;
  /* Normalize font-style. */
  font-style: unset;
  /* Normalize font-style. */
  font-weight: 400;
  /* From an accessibility perspective, the line spacing within a paragraph should be at least 1.5 times the text size. (https://waic.jp/translations/WCAG21/#visual-presentation) */
  line-height: 1.5;
  /* Align text to the start of the element, accommodating left-to-right and right-to-left languages. */
  text-align: start;
  /* Remove leading white space for a cleaner text alignment. */
  text-spacing-trim: trim-start;
  /* Use the browser's default method to determine word breaking. */
  word-break: initial;
  /* Apply strict line breaking rules to enhance readability in languages that require it. */
  line-break: strict;
  /* Allow long words to be broken and wrapped at any point to prevent overflow. */
  overflow-wrap: anywhere;
  /* Automatically insert hyphens where appropriate for better text flow and alignment. */
  -ms-hyphens: auto;
      hyphens: auto;
  /* Prevent mobile browsers from scaling text sizes automatically. */
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
   -ms-text-size-adjust: 100%;
       text-size-adjust: 100%;
  /* Preventing the layout shift caused by scrollbars. */
  scrollbar-gutter: stable;
  /* Allow animations and transitions of intrinsic sizing keywords. */
  interpolate-size: allow-keywords;
  /* Eliminate the tap highlight color on mobile devices for a cleaner interface. */
  -webkit-tap-highlight-color: transparent;
}
:where(:root):has(:where(:modal)) {
  /* Prevent scrolling of the document when a modal is open. */
  overflow: hidden;
}

:where(body) {
  /* Ensures the body element occupies at least 100% of the viewport's block size. */
  min-block-size: 100svb;
  /* Reset default margin. */
  margin: unset;
}

/* ======================================================
// MARK: ## Custom Properties
// ------------------------------------------------------ */
/* ------------------------------------------------------
// MARK: ### colors
*/
/*
  Define a custom property to use as a background color that remains visible in forced colors mode.
  This is useful when using `background-color: currentColor` as a foreground color,
  such as in pseudo-elements.

  Example usage:
  ```
  .button::after {
    content: '';
    justify-self: end;
    mask-image: url(...);
    inline-size: 1em;
    aspect-ratio: 1;
    background-color: var(--background-current);
    color: red;
  }
*/
@property --background-current {
  syntax: "currentColor | CanvasText";
  inherits: true;
  initial-value: currentColor;
}
@media (forced-colors: active) {
  :where(:root) {
    /* Set the default background color to the forced color mode background. */
    --background-current: CanvasText;
  }
}

/* ------------------------------------------------------
// MARK: ### easing function
*/
@property --ease-in-sine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.47, 0, 0.745, 0.715);
}
@property --ease-out-sine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.39, 0.575, 0.565, 1);
}
@property --ease-in-out-sine {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.445, 0.05, 0.55, 0.95);
}
@property --ease-in-quad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.55, 0.085, 0.68, 0.53);
}
@property --ease-out-quad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@property --ease-in-out-quad {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.455, 0.03, 0.515, 0.955);
}
@property --ease-in-cubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
@property --ease-out-cubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.215, 0.61, 0.355, 1);
}
@property --ease-in-out-cubic {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.645, 0.045, 0.355, 1);
}
@property --ease-in-quart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.895, 0.03, 0.685, 0.22);
}
@property --ease-out-quart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.165, 0.84, 0.44, 1);
}
@property --ease-in-out-quart {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.77, 0, 0.175, 1);
}
@property --ease-in-quint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.755, 0.05, 0.855, 0.06);
}
@property --ease-out-quint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.23, 1, 0.32, 1);
}
@property --ease-in-out-quint {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.86, 0, 0.07, 1);
}
@property --ease-in-expo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.95, 0.05, 0.795, 0.035);
}
@property --ease-out-expo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.19, 1, 0.22, 1);
}
@property --ease-in-out-expo {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(1, 0, 0, 1);
}
@property --ease-in-circ {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.6, 0.04, 0.98, 0.335);
}
@property --ease-out-circ {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.075, 0.82, 0.165, 1);
}
@property --ease-in-out-circ {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
@property --ease-in-back {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.6, -0.28, 0.735, 0.045);
}
@property --ease-out-back {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@property --ease-in-out-back {
  syntax: "*";
  inherits: false;
  initial-value: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
/* ------------------------------------------------------
// MARK: ### triangle shapes
*/
/*
Example usage:
```
.tooltip::after {
  --_size: 16px;

  content: '';
  position: absolute;
  inset-inline: 0;
  inset-block-start: 100%;
  clip-path: var(--shape-triangle-bottom);
  inline-size: var(--_size);
  block-size: calc(var(--_size) / 2 * tan(60deg));
  margin-inline: auto;
  background-color: inherit;
}
```
*/
@property --shape-triangle-top {
  syntax: "*";
  inherits: false;
  initial-value: polygon(50% 0, 100% 100%, 0 100%);
}
@property --shape-triangle-bottom {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 0, 50% 100%);
}
@property --shape-triangle-right {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 50%, 0 100%);
}
@property --shape-triangle-left {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 50%, 100% 0, 100% 100%);
}
@property --shape-triangle-lower-left {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 100%, 0 100%);
}
@property --shape-triangle-upper-left {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 0, 0 100%);
}
@property --shape-triangle-lower-right {
  syntax: "*";
  inherits: false;
  initial-value: polygon(100% 0, 100% 100%, 0 100%);
}
@property --shape-triangle-upper-right {
  syntax: "*";
  inherits: false;
  initial-value: polygon(0 0, 100% 0, 100% 100%);
}
/* ------------------------------------------------------
// MARK: ### chevron icons
*/
/*
The chevron icon is borrowed from Basicons (https://basicons.xyz/).

Example usage:
```
.button::after {
  content: '';
  justify-self: end;
  mask-image: var(--icon-chevron-right);
  inline-size: 1em;
  aspect-ratio: 1;
  background-color: var(--background-current);
}
```
*/
/* single chevron icons */
@property --icon-chevron-up {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m4 16 8-8 8 8" /></svg>');
}
@property --icon-chevron-right {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 4L16 12L8 20" /></svg>');
}
@property --icon-chevron-down {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8L12 16L20 8" /></svg>');
}
@property --icon-chevron-left {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M16 4L8 12L16 20" /></svg>');
}
/* double chevron icons */
@property --icon-chevrons-up {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17 18L12 13L7 18M17 11L12 6L7 11" /></svg>');
}
@property --icon-chevrons-right {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 7L11 12L6 17M13 7L18 12L13 17" /></svg>');
}
@property --icon-chevrons-down {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17 6L12 11L7 6M17 13L12 18L7 13" /></svg>');
}
@property --icon-chevrons-left {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 7L13 12L18 17M11 7L6 12L11 17" /></svg>');
}
/* ------------------------------------------------------
// MARK: ### launch link icon
*/
/*
The chevron icon is borrowed from Basicons (https://basicons.xyz/).

Example usage:
```
.button[target="_blank"]::after {
  content: '' / '別ウインドウで開きます';
  justify-self: end;
  mask-image: var(--icon-launch-link);
  inline-size: 1em;
  aspect-ratio: 1;
  background-color: var(--background-current);
}
```
*/
@property --icon-launch-link {
  syntax: "<url>";
  inherits: false;
  initial-value: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17 2H22V7" /><path d="M21 13V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5C3 3.89543 3.89543 3 5 3H11" /><path d="M13 11L21.5 2.5" /></svg>');
}
/* ------------------------------------------------------
// MARK: ### leading trim
*/
/*
You can use the `--leading-trim` custom property to adjust the vertical spacing of text elements.
This helps in achieving more consistent and visually pleasing typography across different languages and font styles.

@see https://www.tak-dcxi.com/article/use-line-height-trim-as-css-variable

Example usage:
```
p {
  margin-block: var(--leading-trim);
}

.button {
  padding-block: calc(1.5em + var(--leading-trim));
}
```
*/
@property --leading-trim {
  syntax: "*";
  inherits: false;
  initial-value: calc((1em - 1lh) / 2);
}
:where(:lang(en)) {
  /* This ensures that the vertical space is evenly distributed, improving the visual balance of text. */
  --leading-trim: calc((1cap - 1lh) / 2);
}

/* ------------------------------------------------------
// MARK: ### hover state
*/
/*
You can use these custom properties to easily switch between hover and non-hover styles.
The var() function will use the first non-empty value, allowing you to define both states in one line.

Example usage:
```
.button {
  --_background-lighten: var(--is-hover-false, 0%) var(--is-hover-true, 20%);

  background-color: color-mix(in sRGB, var(--background-button), #fff var(--_background-lighten));
}
```
*/
:where(:-moz-any-link, :enabled, summary) {
  /* Define custom properties for hover state on interactive elements. Default state: `--is-hover-true` is empty, `--is-hover-false` has a value. */
  --is-hover-true: ;
  --is-hover-false: initial;
}
:where(:any-link, :enabled, summary) {
  /* Define custom properties for hover state on interactive elements. Default state: `--is-hover-true` is empty, `--is-hover-false` has a value. */
  --is-hover-true: ;
  --is-hover-false: initial;
}
@media (any-hover: hover) {
  :where(:-moz-any-link, :enabled, summary):where(:hover) {
    /* Set hover state for actual hover, but only on devices that support hover. Hover state: `--is-hover-true` has a value, `--is-hover-false` is empty. */
    --is-hover-true: initial;
    --is-hover-false: ;
  }
  :where(:any-link, :enabled, summary):where(:hover) {
    /* Set hover state for actual hover, but only on devices that support hover. Hover state: `--is-hover-true` has a value, `--is-hover-false` is empty. */
    --is-hover-true: initial;
    --is-hover-false: ;
  }
}
:where(:-moz-any-link, :enabled, summary):where(:focus-visible) {
  /* Set hover state for focus-visible state. Focus-visible state: `--is-hover-true` has a value, `--is-hover-false` is empty. */
  --is-hover-true: initial;
  --is-hover-false: ;
}
:where(:any-link, :enabled, summary):where(:focus-visible) {
  /* Set hover state for focus-visible state. Focus-visible state: `--is-hover-true` has a value, `--is-hover-false` is empty. */
  --is-hover-true: initial;
  --is-hover-false: ;
}

/* ======================================================
// MARK: ## Sections
// ------------------------------------------------------ */
:where(h1, h2, h3, h4, h5, h6) {
  /* Reset default margin. */
  margin-block: unset;
  /* Reset default font-size. */
  font-size: unset;
}

:where(search) {
  /* Render the `search` element consistently. */
  display: block flow;
}

/* ======================================================
// MARK: ## Grouping content
// ------------------------------------------------------ */
:where(p, blockquote, figure, pre, address, ul, ol, dl) {
  /* Reset default margin-block. */
  margin-block: unset;
}

:where(blockquote, figure) {
  /* Reset default margin-inline. */
  margin-inline: unset;
}

:where(address):where(:lang(ja)) {
  /* Reset font style for specific Japanese language elements. */
  font-style: unset;
}

:where(ul, ol) {
  /* Remove default padding-inline-start. */
  -webkit-padding-start: unset;
          padding-inline-start: unset;
  /* In Safari, using 'list-style: none' causes the list not to be announced by screen readers, so use 'list-style-type: ""' to hide markers without affecting accessibility. */
  list-style-type: "";
}

:where(dt) {
  /* Make definition terms bolder. */
  font-weight: 700;
}

:where(dd) {
  /* Remove default indentation. */
  -webkit-margin-start: unset;
          margin-inline-start: unset;
}

:where(hr) {
  /* Sets the thickness of the top border of the <hr> element to 1px. */
  border-block-start-width: 1px;
}

:where(pre) {
  /* Sets the tab character width to 2 spaces for better readability in preformatted text. */
  -moz-tab-size: 2;
    -o-tab-size: 2;
       tab-size: 2;
}
@media print {
  :where(pre) {
    /* Allow text within <pre> elements to wrap when printing. */
    white-space: pre-wrap;
  }
}

/* ======================================================
// MARK: ## Text-level semantics
// ------------------------------------------------------ */
:where(b, strong) {
  /* Enhance the weight of bold elements for emphasis. */
  font-weight: 700;
}

:where(em):where(:lang(ja)) {
  /* Enhance the weight of bold elements for emphasis. */
  font-weight: 700;
}

:where(i, cite, em, dfn, var):where(:lang(ja)) {
  /* Reset font style for specific Japanese language elements. */
  font-style: unset;
}

:where(small) {
  /* Set the font size to 1em (same as the parent element). */
  font-size: 1em;
  /* Set the font weight to 400. */
  font-weight: 400;
}

:where(code, kbd, samp) {
  /* Set the monospace font using Tailwind as a reference(@see https://tailwindcss.com/docs/font-family). Specifying 'serif' is a countermeasure for Chrome's 13px issue. */
  font-family: ui-monospace, sfmono-regular, menlo, monaco, consolas, "Liberation Mono", "Courier New", serif;
  /* Reset font size to ensure consistent appearance across different devices. */
  font-size: unset;
}

:where(cite, dfn) {
  --_quotation-start: "“";
  --_quotation-end: "”";
}
:where(cite, dfn)::before {
  /* Inserts an opening quotation mark before the content of <cite> and <dfn> elements, defaulting to a double quote unless overridden. */
  content: var(--_quotation-start);
}
:where(cite, dfn)::after {
  /* Inserts a closing quotation mark after the content of <cite> and <dfn> elements, defaulting to a double quote unless overridden. */
  content: var(--_quotation-end);
}
:where(cite, dfn):where(:lang(ja)) {
  /* Overrides the default opening quotation mark with the Japanese opening quote for <cite> and <dfn> elements in Japanese. */
  --_quotation-start: "「";
  --_quotation-end: "」";
}

:where(var) {
  /* Sets the font family to serif for <var> elements, enhancing the typographic distinction of variable names in technical content. */
  font-family: serif;
}
:where(var):where(:lang(ja)) {
  /* Resets the font family for <var> elements in Japanese content. */
  font-family: unset;
}

@media (forced-colors: none) {
  :where(mark) {
    /* Remove any default background colors. */
    background-color: unset;
    /* Reset text color to default or inherited value. */
    color: unset;
    /* Applies an underline to the text to highlight it. */
    text-decoration-line: underline;
    /* Sets the color of the underline using a mix of the 'Mark' color and transparency. */
    text-decoration-color: oklch(from #ff0 l c h/50%);
    /* Specifies the thickness of the underline. */
    text-decoration-thickness: 0.4em;
    /* Adjusts the position of the underline closer to the text. */
    text-underline-offset: -0.2em;
    /* Ensures the underline is not broken by descenders in characters like g, j, p, q, and y. */
    -webkit-text-decoration-skip-ink: none;
            text-decoration-skip-ink: none;
  }
}

/* ======================================================
// MARK: ## Links
// ------------------------------------------------------ */
:where(:-moz-any-link) {
  /* Remove any default background colors. */
  background-color: unset;
  /* Reset text color to default or inherited value. */
  color: unset;
  /* Remove underline from links. */
  text-decoration-line: none;
  /* Set the thickness of the text decoration based on the font metrics. */
  text-decoration-thickness: from-font;
  /* Position the underline slightly away from the text for enhanced legibility. */
  text-underline-offset: 0.25em;
  /* Adjust underline to skip over descenders for better readability. */
  text-decoration-skip-ink: auto;
}
:where(:any-link) {
  /* Remove any default background colors. */
  background-color: unset;
  /* Reset text color to default or inherited value. */
  color: unset;
  /* Remove underline from links. */
  text-decoration-line: none;
  /* Set the thickness of the text decoration based on the font metrics. */
  text-decoration-thickness: from-font;
  /* Position the underline slightly away from the text for enhanced legibility. */
  text-underline-offset: 0.25em;
  /* Adjust underline to skip over descenders for better readability. */
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* ======================================================
// MARK: ## Edits
// ------------------------------------------------------ */
:where(ins):not(:where(.adsbygoogle)) {
  /* Use a dashed line for underlining inserted content, making it distinctly visible. */
  text-decoration-style: dashed;
  /* Position the underline slightly away from the text for enhanced legibility. */
  text-underline-offset: 0.4em;
  /* Adjust underline to skip over descenders for better readability. */
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

:where(del) {
  /* Apply a double line through the text for deleted content, enhancing visibility. */
  text-decoration-style: double;
}

/* ======================================================
// MARK: ## Embedded content
// ------------------------------------------------------ */
:where(img, picture, svg, video, canvas, audio, iframe, embed, object) {
  /* Set elements to display as block-level flow containers, suitable for complex layouts. */
  display: inline-block;
  /* Limits the maximum size inline to prevent overflow. */
  max-inline-size: 100%;
  /* Automatically adjusts the block size based on content. */
  block-size: auto;
  vertical-align: bottom;
}

/* ======================================================
// MARK: ## Tabular data
// ------------------------------------------------------ */
:where(table) {
  /* Collapses border for a more compact table design. */
  border-collapse: collapse;
}

:where(caption) {
  /* Aligns the caption text to the start of the element. */
  text-align: start;
}

:where(td, th) {
  /* Removes default padding from table cells and headers. */
  padding: unset;
  /* Aligns content of table cells to the top. */
  vertical-align: top;
}

:where(th) {
  /* Makes table header text bold. */
  font-weight: 700;
  /* Aligns header text to the start of the cell. */
  text-align: start;
}

/* ======================================================
// MARK: ## Forms
// ------------------------------------------------------ */
::-webkit-file-upload-button {
  /* Remove default padding. */
  padding: unset;
  /* Apply a transparent border for forced colors mode. */
  border: 1px solid transparent;
  /* Resets border-radius to default. */
  border-radius: unset;
  /* Removes default background color. */
  background-color: unset;
  /* Removes default text color. */
  color: unset;
  /* Resets font settings to inherit from parent. */
  font: unset;
  /* Centers the element vertically within its line box. */
  vertical-align: middle;
  /* Resets letter-spacing to default. */
  letter-spacing: unset;
  /* Resets text alignment to default. */
  text-align: unset;
  /* Resets text transformation to default. */
  text-transform: unset;
}
:where(button, input, select, textarea),
::file-selector-button {
  /* Remove default padding. */
  padding: unset;
  /* Apply a transparent border for forced colors mode. */
  border: 1px solid transparent;
  /* Resets border-radius to default. */
  border-radius: unset;
  /* Removes default background color. */
  background-color: unset;
  /* Removes default text color. */
  color: unset;
  /* Resets font settings to inherit from parent. */
  font: unset;
  /* Centers the element vertically within its line box. */
  vertical-align: middle;
  /* Resets letter-spacing to default. */
  letter-spacing: unset;
  /* Resets text alignment to default. */
  text-align: unset;
  /* Resets text transformation to default. */
  text-transform: unset;
}

:where([type=radio i], [type=checkbox i]) {
  /* Remove default margin. */
  margin: unset;
}

:where([type=file i]) {
  /* Default cursor for file input fields. */
  cursor: unset;
}

:where(textarea) {
  /* Remove default margin in Firefox. */
  margin-block: unset;
  /* Allows resizing of textarea vertically only. */
  resize: block;
}

::-webkit-file-upload-button {
  /* Set the inline-size of the button to match the content's inline-size exactly. */
  inline-size: -webkit-fit-content;
  inline-size: fit-content;
  /* Optimizes touch interaction for buttons. */
  touch-action: manipulation;
}

:where(button),
::file-selector-button {
  /* Set the inline-size of the button to match the content's inline-size exactly. */
  inline-size: -webkit-fit-content;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  /* Optimizes touch interaction for buttons. */
  -ms-touch-action: manipulation;
      touch-action: manipulation;
}

:where(button)::-moz-focus-inner {
  /* Remove the inner padding in Firefox. */
  padding: unset;
}

::-webkit-file-upload-button {
  /* Indicate clickable elements with a pointer cursor. */
  cursor: pointer;
}

:where(button, label[for], select, [role=tab], [role=button], [role=option]),
::file-selector-button {
  /* Indicate clickable elements with a pointer cursor. */
  cursor: pointer;
}

:where(select):where(:disabled) {
  /* Keep the opacity of disabled selects consistent with other disabled elements. */
  opacity: inherit;
}

:where(fieldset) {
  /* Remove default margin-inline. */
  margin-inline: unset;
  /* Remove default padding. */
  padding: unset;
}

:where(legend) {
  /* Remove default padding-inline. */
  padding-inline: unset;
}

:where(optgroup) {
  /* Resets font settings to inherit from parent. */
  font: unset;
}

::-webkit-input-placeholder {
  /* Normalize the opacity of placeholder text to fully opaque in Firefox, where it might be set to less by default. */
  opacity: unset;
}

::-moz-placeholder {
  /* Normalize the opacity of placeholder text to fully opaque in Firefox, where it might be set to less by default. */
  opacity: unset;
}

:-ms-input-placeholder {
  /* Normalize the opacity of placeholder text to fully opaque in Firefox, where it might be set to less by default. */
  opacity: unset;
}

::-ms-input-placeholder {
  /* Normalize the opacity of placeholder text to fully opaque in Firefox, where it might be set to less by default. */
  opacity: unset;
}

::placeholder {
  /* Normalize the opacity of placeholder text to fully opaque in Firefox, where it might be set to less by default. */
  opacity: unset;
}

::picker(select) {
  /* Render the `: :picker(select)` pseudo element consistently. */
  display: block flow;
  /* Remove default padding. */
  padding: unset;
}

/* ======================================================
// MARK: ## Interactive elements
// ------------------------------------------------------ */
:where(summary) {
  /* Eliminate the default marker from details summary for a cleaner disclosure widget. */
  display: block flow;
  /* Indicate clickable elements with a pointer cursor. */
  cursor: pointer;
}

::-webkit-details-marker {
  /* Hide the default disclosure marker to allow for custom styling. */
  display: none;
}

:where(dialog, [popover]) {
  /* Resets overflow property. */
  overflow: unset;
  /* Resets the inline size property. */
  inline-size: unset;
  /* Resets the block size property. */
  block-size: unset;
  /* Resets the max inline size limit. */
  max-inline-size: unset;
  /* Resets the max block size limit. */
  max-block-size: unset;
  /* Removes default padding. */
  padding: unset;
  /* Removes default background color. */
  background-color: unset;
  /* Resets color to default. */
  color: unset;
}

:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  /* Hide the dialog element and popover element when it is not open. */
  display: none !important;
}

::-ms-backdrop {
  /* Remove default backdrop color for a clearer view of the underlying content. */
  background-color: unset;
}

::backdrop {
  /* Remove default backdrop color for a clearer view of the underlying content. */
  background-color: unset;
}

/* ======================================================
// MARK: ## Focus styles
// ------------------------------------------------------ */
:where(:-moz-focusring) {
  /* Improve outlines for Firefox and unify style with input elements and buttons. */
  outline: auto;
}

:where(:focus-visible) {
  /* Slightly offset focus outline for better visibility without overlapping text. */
  outline-offset: 2px;
}

:where(:focus):not(:where(:focus-visible)) {
  /* Hide focus outline unless element is explicitly focus-visible to reduce visual clutter. */
  outline: none;
}

[tabindex="-1"]:focus-visible {
  /* Ensure that programmatically focused elements do not show an outline unless they are naturally focusable. */
  outline: none !important;
}

/* ======================================================
// MARK: ## Misc
// ------------------------------------------------------ */
:where(:disabled, [aria-disabled=true]) {
  /* Show default cursor for disabled elements to reflect their non-interactive state. */
  cursor: default;
}

[hidden]:not([hidden=until-found]) {
  /* Ensure elements intended to be hidden are not displayed, enhancing clarity and layout control. */
  display: none !important;
}

/* ======================================================
// MARK: ## Reduced Motion
// ------------------------------------------------------ */
/* Target all elements that don't have the 'data-safe-animation' attribute. */
@media (prefers-reduced-motion: reduce) {
  :not([data-safe-animation])::-ms-backdrop {
    /* Disable animations and transitions for users who prefer reduced motion. */
    background-attachment: unset !important;
    scroll-behavior: unset !important;
    transition-delay: unset !important;
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
    animation-delay: unset !important;
    animation-iteration-count: unset !important;
    view-transition-name: none !important;
  }
  :not([data-safe-animation]), :not([data-safe-animation])::before, :not([data-safe-animation])::after, :not([data-safe-animation])::backdrop {
    /* Disable animations and transitions for users who prefer reduced motion. */
    background-attachment: unset !important;
    scroll-behavior: unset !important;
    -webkit-transition-delay: unset !important;
            transition-delay: unset !important;
    -webkit-transition-duration: 1ms !important;
            transition-duration: 1ms !important;
    -webkit-animation-duration: 1ms !important;
            animation-duration: 1ms !important;
    -webkit-animation-delay: unset !important;
            animation-delay: unset !important;
    -webkit-animation-iteration-count: unset !important;
            animation-iteration-count: unset !important;
    view-transition-name: none !important;
  }
}

/* ======================================================
// MARK: ## Utility Classes
// ------------------------------------------------------ */
/* Create a pseudo-element to adjust the vertical space above and below an element. */
.leading-trim::before, .leading-trim::after {
  content: "";
  display: block flow;
  inline-size: 0;
  block-size: 1px;
}
.leading-trim::before {
  -webkit-margin-after: var(--leading-trim);
          margin-block-end: var(--leading-trim);
}
.leading-trim::after {
  -webkit-margin-before: var(--leading-trim);
          margin-block-start: var(--leading-trim);
}

/* Hide content visually but keep it accessible to screen readers. */
.visually-hidden {
  position: fixed !important;
  inset: 0 !important;
  contain: strict !important;
  visibility: initial !important;
  inline-size: 4px !important;
  block-size: 4px !important;
  margin: unset !important;
  padding: unset !important;
  border: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

:root {
  --focus: var(--c_accent);
}

.p_fv-stage,
.c_pagehead,
.l_band-dark,
.l_gnav {
  --focus: var(--c_accent_ondark);
}

:focus-visible {
  outline: 2px solid var(--focus);
}

html {
  font-size: 10px;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  margin: 0;
  min-width: 375px;
  background: var(--paper);
  color: var(--ink-2);
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

a {
  color: inherit;
  text-decoration: none;
  outline: none;
}

button {
  outline: none;
}

img,
svg,
video {
  max-width: 100%;
  display: block;
}

::-moz-selection {
  background: rgba(20, 23, 26, 0.14);
}

::selection {
  background: rgba(20, 23, 26, 0.14);
}

.p_fv-stage ::-moz-selection, .c_pagehead ::-moz-selection, .l_band-dark ::-moz-selection, .l_gnav ::-moz-selection {
  background: rgba(242, 243, 244, 0.24);
}

.p_fv-stage ::selection,
.c_pagehead ::selection,
.l_band-dark ::selection,
.l_gnav ::selection {
  background: rgba(242, 243, 244, 0.24);
}

ul,
ol {
  list-style: none;
}

.l_header {
  position: relative;
  height: var(--hdr_height);
  background: var(--c_paper);
  border-bottom: 1px solid var(--line);
  z-index: 99;
}
@media screen and (min-width: 1024px) {
  .l_header {
    display: none;
  }
}
.l_header .l_header__inner {
  height: var(--hdr_height);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.l_header .l_header__brand {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.l_header .l_header__brand img {
  display: block;
  width: auto;
  height: 40px;
}
@media screen and (max-width: 480px) {
  .l_header .l_header__brand img {
    height: 30px;
  }
}

/* ---------- 固定メニューボタン（ハンバーガー↔×） ---------- */
.l_gnav-btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: fixed;
  top: 12px;
  z-index: 10000;
  width: 52px;
  height: 52px;
  padding: 0;
  background: var(--ink);
  border: 0;
  border-radius: 12px;
  -webkit-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
          box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  -webkit-transition: background 0.3s ease;
  transition: background 0.3s ease;
}
.l_gnav-btn.is-open {
  background: rgba(255, 255, 255, 0.16);
}
.l_gnav-btn__bars {
  position: relative;
  width: 22px;
  height: 12px;
}
.l_gnav-btn__bars span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  -webkit-transition: -webkit-transform 0.35s cubic-bezier(0.77, 0, 0.175, 1);
  transition: -webkit-transform 0.35s cubic-bezier(0.77, 0, 0.175, 1);
  transition: transform 0.35s cubic-bezier(0.77, 0, 0.175, 1);
  transition: transform 0.35s cubic-bezier(0.77, 0, 0.175, 1), -webkit-transform 0.35s cubic-bezier(0.77, 0, 0.175, 1);
}
.l_gnav-btn__bars span:nth-child(1) {
  top: 0;
}
.l_gnav-btn__bars span:nth-child(2) {
  bottom: 0;
}
.l_gnav-btn.is-open .l_gnav-btn__bars span:nth-child(1) {
  -webkit-transform: translateY(5px) rotate(45deg);
          transform: translateY(5px) rotate(45deg);
}
.l_gnav-btn.is-open .l_gnav-btn__bars span:nth-child(2) {
  -webkit-transform: translateY(-5px) rotate(-45deg);
          transform: translateY(-5px) rotate(-45deg);
}

.l_gnav {
  --gnav_bg: linear-gradient(160deg, #1a2230 0%, #10141b 100%);
  --gnav_fg: #fff;
  --gnav_fg_mute: rgba(255, 255, 255, 0.72);
  --gnav_label: rgba(255, 255, 255, 0.45);
  --gnav_line: rgba(255, 255, 255, 0.1);
  --gnav_line2: rgba(255, 255, 255, 0.18);
  --gnav_current: var(--c_accent_ondark);
  --gnav_other_bg: rgba(255, 255, 255, 0.04);
  --gnav_tick: rgba(255, 255, 255, 0.4);
}
.l_gnav__bg {
  position: absolute;
  inset: 0;
  background: var(--gnav_bg);
}
.l_gnav__panel {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
  padding: 0px 22px 56px;
  color: var(--gnav_fg_mute);
}
.l_gnav__brand {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 76px;
}
.l_gnav__brand img {
  display: block;
  width: auto;
  height: 30px;
}
.l_gnav {
  /* ---------- セクション見出し ---------- */
}
.l_gnav__sec + .l_gnav__sec {
  margin-top: 30px;
}
.l_gnav__label {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gnav_label);
}
.l_gnav {
  /* ---------- CTA（バナー c_hbanner を縦積みで再利用。暗背景なので既定のまま使える） ---------- */
}
.l_gnav .c_hbanners {
  grid-template-columns: 1fr;
  max-width: none;
  margin-top: 0;
  gap: 10px;
}

/* ---------- 通常ナビ ---------- */
.l_gnav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.l_gnav-item {
  border-top: 1px solid var(--gnav_line);
}
.l_gnav-item:last-child {
  border-bottom: 1px solid var(--gnav_line);
}
.l_gnav-item.is-open .l_gnav-toggle::after {
  opacity: 0;
}
.l_gnav-item.is-open .l_gnav-sub {
  grid-template-rows: 1fr;
}

.l_gnav-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.l_gnav-row > a {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  display: block;
  padding: 15px 2px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  color: var(--gnav_fg);
}
.l_gnav-row > a.is-current {
  color: var(--gnav_current);
}

.l_gnav-toggle {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  position: relative;
  width: 46px;
  height: 46px;
  background: none;
  border: 0;
  cursor: pointer;
}
.l_gnav-toggle::before, .l_gnav-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 2px;
  background: var(--gnav_fg_mute);
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
.l_gnav-toggle::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}

.l_gnav-sub {
  display: grid;
  grid-template-rows: 0fr;
  -webkit-transition: grid-template-rows 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  transition: grid-template-rows 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  transition: grid-template-rows 0.32s cubic-bezier(0.4, 0, 0.2, 1), -ms-grid-rows 0.32s cubic-bezier(0.4, 0, 0.2, 1);
}
.l_gnav-sub > div {
  overflow: hidden;
}
.l_gnav-sub ul {
  list-style: none;
  margin: 0;
  padding: 0 0 12px;
}
.l_gnav-sub a {
  display: block;
  position: relative;
  padding: 9px 2px 9px 18px;
  font-size: 14px;
  color: var(--gnav_fg_mute);
}
.l_gnav-sub a::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 50%;
  width: 7px;
  height: 1px;
  background: var(--gnav_tick);
}

/* ---------- その他（横並び・小さめ） ---------- */
.l_gnav-other {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
}
.l_gnav-other a {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  text-align: center;
  padding: 12px 8px;
  border: 1px solid var(--gnav_line2);
  border-radius: 10px;
  background: var(--gnav_other_bg);
  font-size: 13px;
  color: var(--gnav_fg_mute);
}
.l_gnav-other a.is-current {
  border-color: var(--gnav_current);
  color: var(--gnav_current);
}

/* ---------- SNS（アイコンのみ）は component/_c_sns.scss（.c_sns）に共通化。
   暗背景用の上書きもそちら側に置いている ---------- */
@media screen and (max-width: 1023px) {
  html.is-navopen,
  html.is-navopen body {
    overflow: hidden;
  }
  .l_gnav-btn {
    right: 12px;
  }
  /* ---------- 全画面パネル（円クリップで開閉） ---------- */
  .l_gnav {
    position: fixed;
    inset: 0;
    z-index: 9990;
    clip-path: circle(0px at calc(100% - 12px - 26px) 38px);
    visibility: hidden;
    pointer-events: none;
    -webkit-transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s linear 0.5s;
    transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s linear 0.5s;
  }
  .l_gnav.is-open {
    clip-path: circle(150% at calc(100% - 12px - 26px) 38px);
    visibility: visible;
    pointer-events: auto;
    -webkit-transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s;
    transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s;
  }
  .l_gnav__panel {
    opacity: 0;
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
    -webkit-transition: opacity 0.3s ease 0.16s, -webkit-transform 0.3s ease 0.16s;
    transition: opacity 0.3s ease 0.16s, -webkit-transform 0.3s ease 0.16s;
    transition: opacity 0.3s ease 0.16s, transform 0.3s ease 0.16s;
    transition: opacity 0.3s ease 0.16s, transform 0.3s ease 0.16s, -webkit-transform 0.3s ease 0.16s;
  }
  .l_gnav.is-open .l_gnav__panel {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
  }
}
@media screen and (min-width: 1024px) {
  .l_gnav-btn {
    left: calc(var(--content_offset) - 52px - 12px);
    -webkit-transition: background 0.3s ease, left 0.4s cubic-bezier(0.77, 0, 0.175, 1);
    transition: background 0.3s ease, left 0.4s cubic-bezier(0.77, 0, 0.175, 1);
  }
  html.is-navclosed .l_gnav-btn {
    left: 12px;
  }
  .l_gnav {
    --gnav_line: transparent;
    --gnav_line2: transparent;
    --gnav_other_bg: transparent;
    --gnav_tick: transparent;
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--sidebar_width);
    z-index: 40;
    -webkit-transition: visibility 0s, -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
    transition: visibility 0s, -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s, -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
  }
  .l_gnav.is-closed {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    visibility: hidden;
    pointer-events: none;
    -webkit-transition: visibility 0s linear 0.4s, -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
    transition: visibility 0s linear 0.4s, -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s linear 0.4s;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1), visibility 0s linear 0.4s, -webkit-transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
  }
  .l_gnav__panel {
    padding: 0px 22px 40px;
  }
  .l_gnav__sec + .l_gnav__sec {
    margin-top: 26px;
  }
  /* ---------- 通常ナビ：極太見出し → 素の小さいテキストへ ---------- */
  .l_gnav-row > a {
    padding: 8px 2px;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 14px;
  }
  .l_gnav-row > a:hover {
    color: var(--gnav_current);
  }
  .l_gnav-toggle {
    width: 32px;
    height: 32px;
  }
  .l_gnav-toggle::before, .l_gnav-toggle::after {
    width: 9px;
  }
  .l_gnav-sub a {
    padding: 6px 2px 6px 12px;
    font-size: 13px;
  }
  .l_gnav-sub a::before {
    display: none;
  }
  .l_gnav-sub a:hover {
    color: var(--gnav_current);
  }
  /* ---------- その他：囲みピル → 素のテキストリンク ---------- */
  .l_gnav-other {
    gap: 16px;
  }
  .l_gnav-other a {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    text-align: left;
    padding: 4px 0;
    border: 0;
    border-radius: 0;
  }
  .l_gnav-other a:hover {
    color: var(--gnav_current);
  }
  /* ---------- SNS：囲み丸 → 素のアイコン ---------- */
  .l_gnav .c_sns {
    gap: 8px;
  }
  .l_gnav .c_sns a {
    width: 30px;
    height: 30px;
    border: 0;
  }
  .l_gnav .c_sns a:hover {
    background: none;
    color: var(--gnav_current);
  }
  .l_gnav .c_sns svg {
    width: 18px;
    height: 18px;
  }
  /* ---------- CTA バナー：静かな中で唯一の存在感。周りが静まった分そぎ落とす ---------- */
  .l_gnav .c_hbanner {
    padding: 12px 14px;
    gap: 10px;
  }
  .l_gnav .c_hbanner::after {
    display: none;
  }
  .l_gnav .c_hbanner__sub {
    font-size: 10.5px;
  }
  .l_gnav .c_hbanner__title {
    font-size: 13.5px;
  }
  .l_gnav .c_hbanner__icon {
    width: 24px;
    height: 24px;
  }
  .l_gnav .c_hbanner__icon::after {
    width: 5px;
    height: 9px;
  }
  /* ---------- 本文とフッターをサイドバーの分だけ右へ逃がす ----------
     margin で逃がすので、サイドバーとの重なりも隙間も原理的に発生しない。
     --content_offset はサイドバーを閉じると 0 になる（style.scss / html.is-navclosed）ので、
     閉＝本文が全幅に広がる。サイドバー自身の width は --sidebar_width のままで潰れない。
     ※ .l_header は PC では display:none なので含めない（ロゴはサイドバー最上部にある）。
     ※ <footer> は <main> の外（body 直下）なので個別指定が要る。
     ※ 2つを包むラッパー div を作る手もあるが、そこに overflow が付くと事故るので採らない。 */
  main[data-barba=container],
  .l_footer {
    margin-left: var(--content_offset);
    -webkit-transition: margin-left 0.4s cubic-bezier(0.77, 0, 0.175, 1);
    transition: margin-left 0.4s cubic-bezier(0.77, 0, 0.175, 1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .l_gnav,
  .l_gnav.is-open,
  .l_gnav.is-closed,
  .l_gnav__panel,
  .l_gnav-btn__bars span {
    -webkit-transition-duration: 0.01ms !important;
            transition-duration: 0.01ms !important;
  }
}
body:has([data-barba-namespace=contact]) #cv,
body:has([data-barba-namespace=thanks]) #cv {
  display: none;
}

.l_sitemap {
  background: var(--paper);
  border-top: 1px solid var(--line);
  padding: 44px 0;
}
.l_sitemap__cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
@media (max-width: 860px) {
  .l_sitemap__cols {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 20px;
  }
}
.l_sitemap__head {
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
}
.l_sitemap__head a:hover {
  color: var(--accent);
}
.l_sitemap__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.l_sitemap__list li + li {
  margin-top: 8px;
}
.l_sitemap__list a {
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-3);
}
.l_sitemap__list a:hover {
  color: var(--accent);
}

.l_footer__body {
  background: var(--paper);
  border-top: 1px solid var(--line);
  padding: 30px 0;
  text-align: center;
}
.l_footer__brand {
  display: inline-block;
}
.l_footer__brand img {
  display: block;
  width: auto;
  height: 30px;
}
.l_footer__name {
  margin: 14px 0 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink-2);
}
.l_footer__addr {
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--ink-3);
}
.l_footer__sns {
  margin: 20px 0 0;
}
.l_footer__sns .c_sns {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.l_footer__copy {
  margin: 24px 0 0;
  font-family: var(--font-label);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ink-4);
}

.l_container {
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 32px;
  position: relative;
}
@media (max-width: 680px) {
  .l_container {
    padding: 0 20px;
  }
}
.l_container--sm {
  max-width: 680px;
}
.l_container--md {
  max-width: 860px;
}

.l_section {
  padding: 116px 0;
  background: var(--paper);
}
@media (max-width: 680px) {
  .l_section {
    padding: 64px 0;
  }
}

body.is-top .l_section:not(.l_band-dark) {
  background: transparent;
}

.l_band-dark {
  background: var(--dark);
  color: var(--on-dark);
}
.l_band-dark .c_eyebrow {
  color: var(--on-dark-mute);
}
.l_band-dark .c_lead,
.l_band-dark .c_body {
  color: var(--on-dark-mute);
}
.l_band-dark h1,
.l_band-dark h2,
.l_band-dark h3,
.l_band-dark .c_display,
.l_band-dark .c_display--xl,
.l_band-dark .c_display--lg,
.l_band-dark .c_display--md,
.l_band-dark .c_section-title {
  color: var(--on-dark);
}
.l_band-dark .c_section-sub {
  color: var(--on-dark-mute);
}
.l_band-dark .c_section-sub strong {
  color: var(--on-dark);
}
.l_band-dark .c_small {
  color: var(--on-dark-mute);
}
.l_band-dark .c_offer {
  background: var(--dark-2);
  border-color: var(--on-dark-line);
}
.l_band-dark .c_offer h3 {
  color: var(--on-dark);
}
.l_band-dark .c_offer p {
  color: var(--on-dark-mute);
}
.l_band-dark .c_offer .c_offer__who {
  color: var(--c_accent_ondark);
}
.l_band-dark .c_offer .c_offer__steps li {
  color: var(--on-dark-mute);
}
.l_band-dark .c_offer .c_offer__steps li::before {
  color: var(--c_accent_ondark);
}

.l_page-body {
  padding: 76px 0 112px;
}
@media (max-width: 680px) {
  .l_page-body {
    padding: 56px 0 80px;
  }
}

.l_footnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 18px 28px;
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
}

.l_article {
  padding: 56px 0 112px;
}
.l_article__head {
  margin: 0 0 40px;
}
.l_article__head h1 {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(27px, 3.6vw, 34px);
  line-height: 1.4;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 16px 0 0;
}
.l_article__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 10px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 20px;
}

.l_workgroup {
  margin-bottom: 64px;
}
.l_workgroup:last-child {
  margin-bottom: 0;
}
.l_workgroup .l_workgroup__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 10px;
  margin-bottom: 26px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.l_workgroup .l_workgroup__label h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.l_workgroup .l_workgroup__label .l_workgroup__count {
  font-family: var(--font-label);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--ink-4);
}

.l_hero-cta {
  margin-top: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 14px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 680px) {
  .l_hero-cta .c_btn {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
}

/* ============================================================
  .l_loading — PJAX 遷移が遅いときだけ出るローディング
  ・main.js の loadingInit() が barba の before/after で hidden 属性を付け外しする。
    遷移開始から LOADING_DELAY(400ms) を超えたときだけ表示＝速い遷移では一度も出ない。
  ・フェードは入れない（意図的）。閾値まで出さない方式なので、出るときは即時・消えるときも即時。
    transition/animation をここに足すと「一瞬ちらつく」原因になる。
  ・barba コンテナ(<main>)の外＝footer.php に置くので遷移しても DOM が生き残る。
============================================================ */
.l_loading {
  position: fixed;
  inset: 0;
  z-index: 10010;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: rgba(242, 243, 244, 0.72);
  cursor: progress;
}
.l_loading[hidden] {
  display: none;
}

.l_loading__ring {
  width: 44px;
  height: 44px;
  border: 3px solid var(--c_line2);
  border-top-color: var(--c_accent);
  border-radius: 50%;
  -webkit-animation: l_loading-spin 0.8s linear infinite;
          animation: l_loading-spin 0.8s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .l_loading__ring {
    -webkit-animation-duration: 2s;
            animation-duration: 2s;
  }
}

@-webkit-keyframes l_loading-spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes l_loading-spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.c_inner {
  max-width: 1024px;
  width: calc(100% - 40px);
  margin-left: auto;
  margin-right: auto;
}
.c_inner._1000 {
  max-width: 1000px;
}
.c_inner._full {
  max-width: 100%;
}

@media screen and (min-width: 1025px) {
  .c_tab {
    display: none !important;
  }
}
@media screen and (max-width: 1024px) {
  .c_tab_none {
    display: none !important;
  }
}
@media screen and (min-width: 769px) {
  .c_sp {
    display: none !important;
  }
}
@media screen and (max-width: 768px) {
  .c_pc {
    display: none !important;
  }
}
/* ============================================================
  ブロック余白ユーティリティ（エディタのツールバー ↕ から付与）
  ------------------------------------------------------------
  値は em。各ブロック自身の font-size を基準にするので、
  本文（.c_wysywig）の em ベースの縦リズムと同じ土俵に乗る。
  ※ 親を付けない素のクラスにしてあるのは、フロント（.c_wysywig）と
    管理画面（.is-root-container）のどちらにも1本で効かせるため。
  ※ !important は必須。素の値は .c_wysywig h2 等（詳細度 0,1,1）が
    持っており、クラス単体（0,1,0）では負けるため。
============================================================ */
:root {
  --gap-0: 0;
  --gap-s: 0.8em;
  --gap-m: 1.7em;
  --gap-l: 3.2em;
  --gap-xl: 5em;
}

.has-mt-0 {
  margin-top: var(--gap-0) !important;
}

.has-mb-0 {
  margin-bottom: var(--gap-0) !important;
}

.has-mt-s {
  margin-top: var(--gap-s) !important;
}

.has-mb-s {
  margin-bottom: var(--gap-s) !important;
}

.has-mt-m {
  margin-top: var(--gap-m) !important;
}

.has-mb-m {
  margin-bottom: var(--gap-m) !important;
}

.has-mt-l {
  margin-top: var(--gap-l) !important;
}

.has-mb-l {
  margin-bottom: var(--gap-l) !important;
}

.has-mt-xl {
  margin-top: var(--gap-xl) !important;
}

.has-mb-xl {
  margin-bottom: var(--gap-xl) !important;
}

/* ---------- 管理画面（ブロックエディタ）で front と余白を揃える ----------
   AI Engine が段落ブロックを、クラスの無い <div> で包む（中に neko-wrapper を
   差し込むため）。見出しや画像は包まれない。つまりエディタの本文は

     .is-root-container > div > p.wp-block   … 段落（ラッパーあり）
     .is-root-container > h2.wp-block        … 見出し（直下）

   という混在になる。_c_wysywig.scss の `.is-root-container > *` が掴むのは
   段落ではラッパーの div なので、そのままだと下の2つが起きる。

   1. div は境界も padding も持たないため、div の margin-top(1.7em) と中の p の
      margin-top が相殺し、大きいほうが勝つ。→ p を has-mt-0 にしても div の
      1.7em が残り、余白が消えない。
   2. p 自身には html :where(.wp-block) の上下 28px が入る。下マージンが残ると、
      前の要素との相殺で 28px が勝ち、has-mt-0 が効かない。

   そこで、ラッパーは余白を持たない素通しの容器に倒し、縦リズムはブロック本体で
   積む（front と同じ「上マージンだけで積む」形）。
   ※ .is-root-container も 素の .wp-block も エディタ専用（front には現れない）。 */
.is-root-container > div:not(.wp-block) {
  margin-top: 0;
  margin-bottom: 0;
}

.wp-block {
  margin-bottom: 0;
}

.c_btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 9px;
  font-family: var(--font-label);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  height: 50px;
  padding: 0 26px;
  border-radius: var(--r-sm);
  border: 1.5px solid transparent;
  cursor: pointer;
  -webkit-transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, -webkit-transform 0.14s ease, -webkit-filter 0.18s ease;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, -webkit-transform 0.14s ease, -webkit-filter 0.18s ease;
  transition: transform 0.14s ease, background 0.18s ease, border-color 0.18s ease, color 0.18s ease, filter 0.18s ease;
  transition: transform 0.14s ease, background 0.18s ease, border-color 0.18s ease, color 0.18s ease, filter 0.18s ease, -webkit-transform 0.14s ease, -webkit-filter 0.18s ease;
  white-space: nowrap;
}
.c_btn::after {
  content: "";
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 6px;
  height: 12px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M311.1%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L243.2%20256%2073.9%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M311.1%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L243.2%20256%2073.9%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-transition: -webkit-transform 0.18s ease;
  transition: -webkit-transform 0.18s ease;
  transition: transform 0.18s ease;
  transition: transform 0.18s ease, -webkit-transform 0.18s ease;
}
.c_btn:hover::after {
  -webkit-transform: translateX(3px);
          transform: translateX(3px);
}
.c_btn:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
}
.c_btn--primary {
  background: var(--accent);
  color: var(--paper);
}
.c_btn--primary:hover {
  background: transparent;
  color: var(--accent);
  border-color: var(--accent);
}
.c_btn--outline {
  background: transparent;
  color: var(--ink);
  border-color: var(--line-2);
}
.c_btn--outline:hover {
  background: var(--accent);
  color: var(--paper);
  border-color: var(--accent);
}
.c_btn--light {
  background: var(--paper);
  color: var(--ink);
}
.c_btn--light:hover {
  background: transparent;
  color: var(--on-dark);
  border-color: var(--on-dark);
}
.c_btn--noicon::after {
  content: none;
}
.c_btn--sm {
  height: 42px;
  padding: 0 18px;
  font-size: 12px;
}

.c_tlink {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
  font-family: var(--font-label);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
  padding-bottom: 4px;
  border-bottom: 1.5px solid var(--ink);
}
.c_tlink::after {
  content: "→";
  -webkit-transition: -webkit-transform 0.18s ease;
  transition: -webkit-transform 0.18s ease;
  transition: transform 0.18s ease;
  transition: transform 0.18s ease, -webkit-transform 0.18s ease;
}
.c_tlink:hover {
  color: var(--accent);
  border-color: var(--accent);
}
.c_tlink:hover::after {
  -webkit-transform: translateX(3px);
          transform: translateX(3px);
}

.l_band-dark .c_tlink,
.p_hero-fv .c_tlink {
  color: var(--on-dark);
  border-color: var(--on-dark);
}
.l_band-dark .c_tlink:hover,
.p_hero-fv .c_tlink:hover {
  color: var(--on-dark);
  border-color: var(--on-dark);
}

.c_badge {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 9px;
  background: transparent;
  border: 1px solid var(--line-2);
  color: var(--ink-2);
  font-family: var(--font-label);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: var(--r-xs);
  padding: 7px 14px;
}
.c_badge .c_badge__dot {
  width: 6px;
  height: 6px;
  border-radius: var(--r-xs);
  background: var(--accent);
  display: inline-block;
}

.c_tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-family: var(--font-label);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
  border: 1px solid var(--line-2);
  padding: 5px 10px;
  border-radius: var(--r-xs);
}

.c_hbanners {
  list-style: none;
  margin: 36px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  max-width: 900px;
}
@media (max-width: 680px) {
  .c_hbanners {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

.c_hbanner {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 14px;
  padding: 18px 20px;
  border-radius: var(--r-lg);
  background: rgba(0, 0, 0, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: var(--on-dark);
  -webkit-transition: background 0.2s ease, border-color 0.2s ease, -webkit-transform 0.2s ease;
  transition: background 0.2s ease, border-color 0.2s ease, -webkit-transform 0.2s ease;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
}
@media (max-width: 680px) {
  .c_hbanner {
    padding: 12px 20px;
  }
}
.c_hbanner::after {
  content: "";
  position: absolute;
  right: -8px;
  bottom: -14px;
  height: 92px;
  max-height: 100%;
  aspect-ratio: 1/1;
  z-index: -1;
  background-color: rgba(255, 255, 255, 0.3);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.c_hbanner:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.3);
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}
.c_hbanner__body {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-width: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4px;
}
.c_hbanner__sub {
  font-size: 11.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.66);
}
.c_hbanner__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 17px;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: #fff;
}
.c_hbanner__icon {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.6);
  display: grid;
  place-items: center;
  -webkit-transition: background 0.2s ease;
  transition: background 0.2s ease;
}
.c_hbanner__icon::after {
  content: "";
  width: 7px;
  height: 12px;
  background-color: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M311.1%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L243.2%20256%2073.9%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M311.1%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L243.2%20256%2073.9%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-transition: background-color 0.2s ease, -webkit-transform 0.18s ease;
  transition: background-color 0.2s ease, -webkit-transform 0.18s ease;
  transition: transform 0.18s ease, background-color 0.2s ease;
  transition: transform 0.18s ease, background-color 0.2s ease, -webkit-transform 0.18s ease;
}
.c_hbanner:hover .c_hbanner__icon {
  background: #fff;
}
.c_hbanner:hover .c_hbanner__icon::after {
  background-color: var(--accent);
  -webkit-transform: translateX(2px);
          transform: translateX(2px);
}
.c_hbanner--site::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M64%2096c0-35.3%2028.7-64%2064-64l384%200c35.3%200%2064%2028.7%2064%2064l0%20240-64%200%200-240-384%200%200%20240-64%200%200-240zM0%20403.2C0%20392.6%208.6%20384%2019.2%20384l601.6%200c10.6%200%2019.2%208.6%2019.2%2019.2%200%2042.4-34.4%2076.8-76.8%2076.8L76.8%20480C34.4%20480%200%20445.6%200%20403.2zM281%20209l-31%2031%2031%2031c9.4%209.4%209.4%2024.6%200%2033.9s-24.6%209.4-33.9%200l-48-48c-9.4-9.4-9.4-24.6%200-33.9l48-48c9.4-9.4%2024.6-9.4%2033.9%200s9.4%2024.6%200%2033.9zM393%20175l48%2048c9.4%209.4%209.4%2024.6%200%2033.9l-48%2048c-9.4%209.4-24.6%209.4-33.9%200s-9.4-24.6%200-33.9l31-31-31-31c-9.4-9.4-9.4-24.6%200-33.9s24.6-9.4%2033.9%200z%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M64%2096c0-35.3%2028.7-64%2064-64l384%200c35.3%200%2064%2028.7%2064%2064l0%20240-64%200%200-240-384%200%200%20240-64%200%200-240zM0%20403.2C0%20392.6%208.6%20384%2019.2%20384l601.6%200c10.6%200%2019.2%208.6%2019.2%2019.2%200%2042.4-34.4%2076.8-76.8%2076.8L76.8%20480C34.4%20480%200%20445.6%200%20403.2zM281%20209l-31%2031%2031%2031c9.4%209.4%209.4%2024.6%200%2033.9s-24.6%209.4-33.9%200l-48-48c-9.4-9.4-9.4-24.6%200-33.9l48-48c9.4-9.4%2024.6-9.4%2033.9%200s9.4%2024.6%200%2033.9zM393%20175l48%2048c9.4%209.4%209.4%2024.6%200%2033.9l-48%2048c-9.4%209.4-24.6%209.4-33.9%200s-9.4-24.6%200-33.9l31-31-31-31c-9.4-9.4-9.4-24.6%200-33.9s24.6-9.4%2033.9%200z%22%2F%3E%3C%2Fsvg%3E");
}
.c_hbanner--diag::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M64%2064c0-17.7-14.3-32-32-32S0%2046.3%200%2064L0%20400c0%2044.2%2035.8%2080%2080%2080l400%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%20416c-8.8%200-16-7.2-16-16L64%2064zm406.6%2086.6c12.5-12.5%2012.5-32.8%200-45.3s-32.8-12.5-45.3%200L320%20210.7%20262.6%20153.4c-12.5-12.5-32.8-12.5-45.3%200l-96%2096c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l73.4-73.4%2057.4%2057.4c12.5%2012.5%2032.8%2012.5%2045.3%200l128-128z%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M64%2064c0-17.7-14.3-32-32-32S0%2046.3%200%2064L0%20400c0%2044.2%2035.8%2080%2080%2080l400%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%20416c-8.8%200-16-7.2-16-16L64%2064zm406.6%2086.6c12.5-12.5%2012.5-32.8%200-45.3s-32.8-12.5-45.3%200L320%20210.7%20262.6%20153.4c-12.5-12.5-32.8-12.5-45.3%200l-96%2096c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l73.4-73.4%2057.4%2057.4c12.5%2012.5%2032.8%2012.5%2045.3%200l128-128z%22%2F%3E%3C%2Fsvg%3E");
}
.c_hbanner--sns::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M461.2%2018.9C472.7%2024%20480%2035.4%20480%2048l0%20416c0%2012.6-7.3%2024-18.8%2029.1s-24.8%203.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0%2095.7c0%2017.7-14.3%2032-32%2032l-32%200c-17.7%200-32-14.3-32-32l0-96C57.3%20384%200%20326.7%200%20256S57.3%20128%20128%20128l84.5%200c61.8-.2%20121.4-22.7%20167.9-63.3l46.6-40.7c9.4-8.3%2022.9-10.2%2034.3-5.1zM224%20320l0%20.2c70.3%202.7%20137.8%2028.5%20192%2073.4l0-275.3c-54.2%2044.9-121.7%2070.7-192%2073.4L224%20320z%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M461.2%2018.9C472.7%2024%20480%2035.4%20480%2048l0%20416c0%2012.6-7.3%2024-18.8%2029.1s-24.8%203.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0%2095.7c0%2017.7-14.3%2032-32%2032l-32%200c-17.7%200-32-14.3-32-32l0-96C57.3%20384%200%20326.7%200%20256S57.3%20128%20128%20128l84.5%200c61.8-.2%20121.4-22.7%20167.9-63.3l46.6-40.7c9.4-8.3%2022.9-10.2%2034.3-5.1zM224%20320l0%20.2c70.3%202.7%20137.8%2028.5%20192%2073.4l0-275.3c-54.2%2044.9-121.7%2070.7-192%2073.4L224%20320z%22%2F%3E%3C%2Fsvg%3E");
}

.c_display {
  font-family: var(--font-display);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.c_display--xl {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(42px, 7vw, 92px);
  line-height: 1.14;
  letter-spacing: -0.035em;
  color: var(--ink);
}
@media (max-width: 680px) {
  .c_display--xl {
    font-size: 34px;
  }
}
.c_display--lg {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(30px, 4.6vw, 58px);
  line-height: 1.22;
  letter-spacing: -0.03em;
  color: var(--ink);
}
@media (max-width: 680px) {
  .c_display--lg {
    font-size: 25px;
  }
}
.c_display--md {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(23px, 3vw, 34px);
  line-height: 1.4;
  letter-spacing: -0.02em;
  color: var(--ink);
}
@media (max-width: 680px) {
  .c_display--md {
    font-size: 20px;
  }
}
.c_display--sm {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(19px, 2.2vw, 24px);
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: var(--ink);
}
@media (max-width: 680px) {
  .c_display--sm {
    font-size: 17px;
  }
}
.c_display--caps {
  text-transform: uppercase;
  letter-spacing: -0.01em;
  font-weight: 900;
}

h1,
h2,
h3,
h4 {
  margin: 0;
  font-weight: 700;
  color: var(--ink);
}

.c_eyebrow {
  font-family: var(--font-label);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.c_eyebrow--accent {
  color: var(--accent);
}
.c_eyebrow .c_idx {
  color: var(--accent);
}

.c_hl {
  color: var(--ink);
  font-weight: 700;
}

.c_xl-em {
  font-weight: 900;
  color: var(--ink);
}

.c_mark {
  border-bottom: 2px solid var(--ink);
  padding-bottom: 1px;
}

.c_section-head {
  margin-bottom: 60px;
}
.c_section-head .c_eyebrow {
  display: block;
  margin-bottom: 18px;
}

.c_section-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(28px, 4.2vw, 50px);
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: var(--ink);
}
@media (max-width: 680px) {
  .c_section-title {
    font-size: 25px;
  }
}

.c_section-sub {
  margin-top: 20px;
  color: var(--ink-2);
  font-size: 16.5px;
  line-height: 1.9;
}

.c_lead {
  font-size: 16px;
  line-height: 1.9;
  color: var(--ink-2);
  font-weight: 500;
}
@media (max-width: 680px) {
  .c_lead {
    font-size: 15px;
  }
}

.c_body {
  font-size: 14px;
  line-height: 1.9;
  color: var(--ink-2);
}
@media (max-width: 680px) {
  .c_body {
    font-size: 13.5px;
  }
}

.c_small {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--ink-3);
}

.c_muted {
  color: var(--ink-3);
}

.c_bloglist {
  border-top: 1px solid var(--line);
}

.c_blogrow {
  display: grid;
  grid-template-columns: 116px 1fr;
  gap: 28px;
  padding: 30px 4px;
  border-bottom: 1px solid var(--line);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
@media (max-width: 680px) {
  .c_blogrow {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.c_blogrow__date {
  font-family: var(--font-label);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink-4);
  padding-top: 3px;
}
.c_blogrow__bt {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: var(--ink);
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.c_blogrow:hover .c_blogrow__bt {
  color: var(--accent);
}
.c_blogrow__excerpt {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.85;
  color: var(--ink-3);
}
.c_blogrow__cat {
  margin-top: 12px;
}

.c_form__row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 680px) {
  .c_form__row2 {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
.c_form__submit {
  margin-top: 10px;
}
.c_form__note {
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--ink-4);
  margin-top: 18px;
}

.c_field {
  margin-bottom: 24px;
}
.c_field label {
  display: block;
  font-family: var(--font-label);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 9px;
}
.c_field label .c_field__req {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 3px;
  background: #c0392b;
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
  vertical-align: 1px;
  text-transform: none;
}
.c_field input,
.c_field select,
.c_field textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--ink);
  background: var(--card);
  border: 1px solid var(--line-2);
  border-radius: var(--r-sm);
  padding: 13px 15px;
  -webkit-transition: border-color 0.15s ease;
  transition: border-color 0.15s ease;
}
.c_field input:focus,
.c_field select:focus,
.c_field textarea:focus {
  outline: none;
  border-color: var(--accent);
}
.c_field textarea {
  min-height: 168px;
  resize: vertical;
  line-height: 1.8;
}
.c_field.c_field--url textarea {
  min-height: 72px;
}
.c_field .mwform-checkbox-field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 11px;
  margin-top: 2px;
}
.c_field .mwform-checkbox-field .vertical-item,
.c_field .mwform-checkbox-field .horizontal-item {
  margin: 0;
}
.c_field .mwform-checkbox-field label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  margin: 0;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  cursor: pointer;
}
.c_field .mwform-checkbox-field input[type=checkbox] {
  width: 18px;
  height: 18px;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin: 0;
  padding: 0;
  accent-color: var(--accent);
  cursor: pointer;
}
.c_field .error,
.c_field .akismet_error {
  display: block;
  margin-top: 8px;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.6;
  color: #c0392b;
}
.c_field:has(.error) input,
.c_field:has(.error) select,
.c_field:has(.error) textarea {
  border-color: #c0392b;
  background: #fdf3f2;
}
.c_field:has(.error) input:focus,
.c_field:has(.error) select:focus,
.c_field:has(.error) textarea:focus {
  border-color: #c0392b;
}

/* ============================================================
  c_pankuzu — パンくず（プラグイン出力HTML準拠: schema.org BreadcrumbList）
  既定は明背景（本文上）配色。暗いページヘッダ帯の上では下部でオンダークに上書き。
============================================================ */
.c_pankuzu {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  overflow: hidden;
  white-space: nowrap;
  font-family: var(--font-label);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.c_pankuzu > span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.c_pankuzu > span + span::before {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin: 0 8px;
  content: "/";
  color: var(--ink-4);
}
.c_pankuzu > span > a {
  color: var(--ink-3);
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
@media (any-hover: hover) {
  .c_pankuzu > span > a:hover {
    color: var(--accent);
  }
}
.c_pankuzu > span .current-item {
  pointer-events: none;
  text-decoration: underline;
}
.c_pankuzu > span:last-child {
  min-width: 0;
  -ms-flex-negative: 1;
      flex-shrink: 1;
}
.c_pankuzu > span:last-child .current-item {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.c_pankuzu-bar {
  padding: 10px 0 0;
}
.c_pankuzu-bar .c_pankuzu > span > a {
  color: var(--ink-4);
}
.c_pankuzu-bar .c_pankuzu > span + span::before {
  color: var(--ink-4);
}
.c_pankuzu-bar .c_pankuzu .current-item {
  color: var(--ink-3);
}
.c_pankuzu-bar--over {
  position: relative;
  z-index: 2;
  height: 0;
  padding: 0;
}
.c_pankuzu-bar--over .l_container {
  padding-top: 10px;
}
.c_pankuzu-bar--over .c_pankuzu > span > a {
  color: var(--on-dark-mute);
}
@media (any-hover: hover) {
  .c_pankuzu-bar--over .c_pankuzu > span > a:hover {
    color: var(--on-dark);
  }
}
.c_pankuzu-bar--over .c_pankuzu > span + span::before {
  color: var(--on-dark-mute);
}
.c_pankuzu-bar--over .c_pankuzu .current-item {
  color: var(--on-dark-mute);
}

/* ============================================================
  c_wysywig — 投稿本文（ブロックエディタ出力）
  ------------------------------------------------------------
  リニューアルのトンマナに合わせて全ブロックを整える。
  過去記事（全ブロック網羅）が組み込み後に崩れないための受け皿。
  デザイントークン（--ink / --accent / --line / --font-* 等）準拠。

  親セレクタが2つあるのは、フロントと管理画面で本文の親要素が違うため。
  フロント = parts/singular.php が the_content() を .c_wysywig で包む。
  管理画面 = ブロックエディタの編集領域。ルートは .is-root-container で、
  functions.php の add_editor_style() が読ませる CSS は WordPress 側で
  「.editor-styles-wrapper 」を前置して変換される（= .editor-styles-wrapper
  .is-root-container に一致する）。フロントに .is-root-container は無いので無害。
  ここを .c_wysywig だけにすると、管理画面では祖先が一致せず本ファイルの
  指定が丸ごと効かず、コア既定のブロックスタイルのまま表示される。
============================================================ */
.c_wysywig *:first-child {
  margin-top: 0;
}

.c_wysywig,
.is-root-container {
  font-family: var(--font-body);
  font-size: 16.5px;
  line-height: 2;
  font-weight: 500;
  color: var(--ink-2);
  overflow-wrap: break-word;
}
.c_wysywig > *,
.is-root-container > * {
  margin-top: 1.7em;
  margin-bottom: 0;
}
.c_wysywig h1,
.c_wysywig h2,
.c_wysywig h3,
.c_wysywig h4,
.c_wysywig h5,
.c_wysywig h6,
.is-root-container h1,
.is-root-container h2,
.is-root-container h3,
.is-root-container h4,
.is-root-container h5,
.is-root-container h6 {
  font-family: var(--font-display);
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.5;
}
.c_wysywig h2,
.is-root-container h2 {
  font-weight: 800;
  font-size: 24px;
  margin-top: 2.4em;
}
.c_wysywig h3,
.is-root-container h3 {
  font-weight: 800;
  font-size: 19px;
  margin-top: 2em;
}
.c_wysywig h4,
.is-root-container h4 {
  font-weight: 700;
  font-size: 16.5px;
  margin-top: 1.8em;
}
.c_wysywig h5,
.c_wysywig h6,
.is-root-container h5,
.is-root-container h6 {
  font-weight: 700;
  font-size: 15px;
  margin-top: 1.6em;
  color: var(--ink-2);
}
.c_wysywig p,
.is-root-container p {
  margin-top: 1.5em;
}
.c_wysywig strong,
.is-root-container strong {
  color: var(--ink);
  font-weight: 700;
}
.c_wysywig em,
.is-root-container em {
  font-style: italic;
}
.c_wysywig a,
.is-root-container a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.c_wysywig a:hover,
.is-root-container a:hover {
  color: var(--accent-light);
}
.c_wysywig a[target=_blank]:not(.wp-block-button__link):not(.wp-element-button):not(.c_mediacard)::after,
.is-root-container a[target=_blank]:not(.wp-block-button__link):not(.wp-element-button):not(.c_mediacard)::after {
  content: "";
  display: inline-block;
  width: 0.78em;
  height: 0.78em;
  margin-left: 0.28em;
  vertical-align: -0.06em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M320%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l82.7%200-201.4%20201.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200L448%20109.3%20448%20192c0%2017.7%2014.3%2032%2032%2032s32-14.3%2032-32l0-160c0-17.7-14.3-32-32-32L320%200zM80%2096C35.8%2096%200%20131.8%200%20176L0%20432c0%2044.2%2035.8%2080%2080%2080l256%200c44.2%200%2080-35.8%2080-80l0-80c0-17.7-14.3-32-32-32s-32%2014.3-32%2032l0%2080c0%208.8-7.2%2016-16%2016L80%20448c-8.8%200-16-7.2-16-16l0-256c0-8.8%207.2-16%2016-16l80%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%2096z%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M320%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l82.7%200-201.4%20201.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200L448%20109.3%20448%20192c0%2017.7%2014.3%2032%2032%2032s32-14.3%2032-32l0-160c0-17.7-14.3-32-32-32L320%200zM80%2096C35.8%2096%200%20131.8%200%20176L0%20432c0%2044.2%2035.8%2080%2080%2080l256%200c44.2%200%2080-35.8%2080-80l0-80c0-17.7-14.3-32-32-32s-32%2014.3-32%2032l0%2080c0%208.8-7.2%2016-16%2016L80%20448c-8.8%200-16-7.2-16-16l0-256c0-8.8%207.2-16%2016-16l80%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%2096z%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.c_wysywig code,
.is-root-container code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Noto Sans Mono", monospace;
  font-size: 0.88em;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: var(--r-xs);
  padding: 0.1em 0.4em;
}
.c_wysywig mark,
.is-root-container mark {
  background: rgba(40, 100, 207, 0.14);
  color: inherit;
  padding: 0.05em 0.2em;
}
.c_wysywig ul,
.c_wysywig ol,
.is-root-container ul,
.is-root-container ol {
  padding-left: 1.4em;
  margin-top: 1.4em;
}
.c_wysywig ul,
.is-root-container ul {
  list-style: disc;
}
.c_wysywig ol,
.is-root-container ol {
  list-style: decimal;
}
.c_wysywig li,
.is-root-container li {
  margin: 0.45em 0;
  line-height: 1.9;
}
.c_wysywig li::marker,
.is-root-container li::marker {
  color: var(--ink-4);
}
.c_wysywig li > ul,
.c_wysywig li > ol,
.is-root-container li > ul,
.is-root-container li > ol {
  margin-top: 0.3em;
}
.c_wysywig img,
.is-root-container img {
  height: auto;
  border-radius: var(--r-md);
}
.c_wysywig .wp-element-caption,
.c_wysywig figcaption,
.is-root-container .wp-element-caption,
.is-root-container figcaption {
  margin-top: 10px;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ink-4);
  text-align: center;
}
.c_wysywig .wp-block-image,
.is-root-container .wp-block-image {
  text-align: center;
}
.c_wysywig .wp-block-image.aligncenter,
.is-root-container .wp-block-image.aligncenter {
  text-align: center;
}
.c_wysywig .wp-block-image img,
.is-root-container .wp-block-image img {
  max-width: 100%;
}
.c_wysywig .wp-block-gallery,
.is-root-container .wp-block-gallery {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 12px;
}
.c_wysywig .wp-block-gallery .wp-block-image,
.is-root-container .wp-block-gallery .wp-block-image {
  margin: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
  min-width: 180px;
}
.c_wysywig blockquote.wp-block-quote,
.is-root-container blockquote.wp-block-quote {
  padding: 6px 0 6px 22px;
  border-left: 3px solid var(--accent);
}
.c_wysywig blockquote.wp-block-quote p,
.is-root-container blockquote.wp-block-quote p {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.8;
  color: var(--ink);
  margin-top: 0.6em;
}
.c_wysywig blockquote.wp-block-quote p:first-child,
.is-root-container blockquote.wp-block-quote p:first-child {
  margin-top: 0;
}
.c_wysywig blockquote.wp-block-quote cite,
.is-root-container blockquote.wp-block-quote cite {
  display: block;
  margin-top: 12px;
  font-family: var(--font-label);
  font-style: normal;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ink-4);
}
.c_wysywig blockquote.wp-block-quote cite::before,
.is-root-container blockquote.wp-block-quote cite::before {
  content: "— ";
}
.c_wysywig .wp-block-pullquote,
.is-root-container .wp-block-pullquote {
  padding: 32px 0;
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  text-align: center;
}
.c_wysywig .wp-block-pullquote p,
.is-root-container .wp-block-pullquote p {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(20px, 3vw, 26px);
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.c_wysywig .wp-block-pullquote cite,
.is-root-container .wp-block-pullquote cite {
  display: block;
  margin-top: 14px;
  font-family: var(--font-label);
  font-style: normal;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.c_wysywig hr,
.c_wysywig .wp-block-separator,
.is-root-container hr,
.is-root-container .wp-block-separator {
  height: 0;
  border: 0;
  border-top: 1px solid var(--line-2);
  margin-top: 2.4em;
}
.c_wysywig hr.is-style-dots,
.c_wysywig .wp-block-separator.is-style-dots,
.is-root-container hr.is-style-dots,
.is-root-container .wp-block-separator.is-style-dots {
  border: 0;
  text-align: center;
  line-height: 1;
}
.c_wysywig hr.is-style-dots::before,
.c_wysywig .wp-block-separator.is-style-dots::before,
.is-root-container hr.is-style-dots::before,
.is-root-container .wp-block-separator.is-style-dots::before {
  content: "···";
  color: var(--ink-4);
  font-size: 22px;
  letter-spacing: 0.4em;
}
.c_wysywig hr:not(.is-style-wide):not(.alignwide):not(.alignfull),
.c_wysywig .wp-block-separator:not(.is-style-wide):not(.alignwide):not(.alignfull),
.is-root-container hr:not(.is-style-wide):not(.alignwide):not(.alignfull),
.is-root-container .wp-block-separator:not(.is-style-wide):not(.alignwide):not(.alignfull) {
  max-width: 120px;
  margin-left: auto;
  margin-right: auto;
}
.c_wysywig .wp-block-buttons,
.is-root-container .wp-block-buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 12px;
}
.c_wysywig .wp-block-button__link,
.c_wysywig .wp-element-button,
.is-root-container .wp-block-button__link,
.is-root-container .wp-element-button {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  font-family: var(--font-label);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  padding: 16px 26px 14px;
  border-radius: var(--r-sm);
  background: var(--accent);
  color: var(--paper);
  border: 1.5px solid transparent;
  text-decoration: none;
  -webkit-transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, -webkit-filter 0.18s ease;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, -webkit-filter 0.18s ease;
  transition: filter 0.18s ease, background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  transition: filter 0.18s ease, background 0.18s ease, color 0.18s ease, border-color 0.18s ease, -webkit-filter 0.18s ease;
}
.c_wysywig .wp-block-button__link::after,
.c_wysywig .wp-element-button::after,
.is-root-container .wp-block-button__link::after,
.is-root-container .wp-element-button::after {
  content: "";
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 8px;
  height: 11px;
  position: relative;
  top: -1px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M311.1%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L243.2%20256%2073.9%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20320%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M311.1%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L243.2%20256%2073.9%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z%22%2F%3E%3C%2Fsvg%3E") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-transition: -webkit-transform 0.18s ease;
  transition: -webkit-transform 0.18s ease;
  transition: transform 0.18s ease;
  transition: transform 0.18s ease, -webkit-transform 0.18s ease;
}
.c_wysywig .wp-block-button__link:hover,
.c_wysywig .wp-element-button:hover,
.is-root-container .wp-block-button__link:hover,
.is-root-container .wp-element-button:hover {
  -webkit-filter: none;
          filter: none;
  background: transparent;
  color: var(--accent);
  border-color: var(--accent);
}
.c_wysywig .wp-block-button__link:hover::after,
.c_wysywig .wp-element-button:hover::after,
.is-root-container .wp-block-button__link:hover::after,
.is-root-container .wp-element-button:hover::after {
  -webkit-transform: translateX(3px);
          transform: translateX(3px);
}
.c_wysywig .is-style-outline .wp-block-button__link,
.is-root-container .is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--accent);
  border-color: var(--line-2);
}
.c_wysywig .is-style-outline .wp-block-button__link:hover,
.is-root-container .is-style-outline .wp-block-button__link:hover {
  -webkit-filter: none;
          filter: none;
  background: var(--accent);
  color: var(--paper);
  border-color: var(--accent);
}
.c_wysywig .wp-block-columns,
.is-root-container .wp-block-columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 28px;
}
.c_wysywig .wp-block-columns .wp-block-column,
.is-root-container .wp-block-columns .wp-block-column {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 240px;
          flex: 1 1 240px;
  min-width: 0;
}
.c_wysywig .wp-block-columns .wp-block-column > *,
.is-root-container .wp-block-columns .wp-block-column > * {
  margin-top: 1.2em;
}
.c_wysywig .wp-block-columns .wp-block-column > *:first-child,
.is-root-container .wp-block-columns .wp-block-column > *:first-child {
  margin-top: 0;
}
@media screen and (max-width: 680px) {
  .c_wysywig .wp-block-columns,
  .is-root-container .wp-block-columns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 20px;
  }
}
.c_wysywig .wp-block-group.has-background,
.is-root-container .wp-block-group.has-background {
  padding: 24px 26px;
  border-radius: var(--r-md);
}
.c_wysywig .wp-block-group.is-style-callout,
.is-root-container .wp-block-group.is-style-callout {
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 22px 24px;
}
.c_wysywig .wp-block-table,
.c_wysywig .wp-block-flexible-table-block,
.is-root-container .wp-block-table,
.is-root-container .wp-block-flexible-table-block {
  overflow-x: auto;
}
.c_wysywig table,
.is-root-container table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14.5px;
  line-height: 1.7;
}
.c_wysywig table th,
.c_wysywig table td,
.is-root-container table th,
.is-root-container table td {
  padding: 18px 20px;
  border: 0;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.c_wysywig table th:not([class*=has-text-align]),
.c_wysywig table td:not([class*=has-text-align]),
.is-root-container table th:not([class*=has-text-align]),
.is-root-container table td:not([class*=has-text-align]) {
  text-align: left;
}
.c_wysywig table :is(th, td):first-child,
.is-root-container table :is(th, td):first-child {
  padding-left: 0;
}
.c_wysywig table :is(th, td):last-child,
.is-root-container table :is(th, td):last-child {
  padding-right: 0;
}
.c_wysywig table thead th,
.is-root-container table thead th {
  font-family: var(--font-label);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-4);
  padding: 0 20px 14px;
  border-bottom: 1px solid var(--line-2);
  white-space: nowrap;
}
.c_wysywig table tbody th,
.c_wysywig table tfoot th,
.is-root-container table tbody th,
.is-root-container table tfoot th {
  padding-right: 24px;
  color: var(--ink-3);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.6;
  white-space: nowrap;
}
.c_wysywig table td,
.is-root-container table td {
  color: var(--ink-2);
}
.c_wysywig .wp-block-table.is-style-stripes,
.is-root-container .wp-block-table.is-style-stripes {
  border-bottom: 0;
}
.c_wysywig .wp-block-table.is-style-stripes table,
.is-root-container .wp-block-table.is-style-stripes table {
  border-collapse: collapse;
}
.c_wysywig .wp-block-table.is-style-stripes tbody tr:nth-child(odd),
.is-root-container .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background: var(--paper-2);
}
.c_wysywig .wp-block-table.is-style-stripes :is(th, td):first-child,
.is-root-container .wp-block-table.is-style-stripes :is(th, td):first-child {
  padding-left: 20px;
}
.c_wysywig .wp-block-table.is-style-stripes :is(th, td):last-child,
.is-root-container .wp-block-table.is-style-stripes :is(th, td):last-child {
  padding-right: 20px;
}
.c_wysywig pre,
.c_wysywig .wp-block-code,
.c_wysywig .wp-block-preformatted,
.is-root-container pre,
.is-root-container .wp-block-code,
.is-root-container .wp-block-preformatted {
  background: var(--dark);
  color: var(--on-dark);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Noto Sans Mono", monospace;
  font-size: 13.5px;
  line-height: 1.75;
  padding: 20px 22px;
  border-radius: var(--r-md);
  overflow-x: auto;
}
.c_wysywig pre code,
.c_wysywig .wp-block-code code,
.c_wysywig .wp-block-preformatted code,
.is-root-container pre code,
.is-root-container .wp-block-code code,
.is-root-container .wp-block-preformatted code {
  background: none;
  border: 0;
  padding: 0;
  color: inherit;
  font-size: inherit;
}
.c_wysywig .wp-block-embed,
.is-root-container .wp-block-embed {
  margin-top: 1.7em;
}
.c_wysywig .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper,
.is-root-container .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper {
  position: relative;
  aspect-ratio: 16/9;
}
.c_wysywig .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper iframe,
.is-root-container .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: var(--r-md);
}
.c_wysywig .wp-block-embed figcaption,
.is-root-container .wp-block-embed figcaption {
  margin-top: 10px;
}
.c_wysywig .wp-block-embed.is-provider-x .wp-block-embed__wrapper, .c_wysywig .wp-block-embed.is-provider-twitter .wp-block-embed__wrapper, .c_wysywig .wp-block-embed.wp-block-embed-x .wp-block-embed__wrapper, .c_wysywig .wp-block-embed.wp-block-embed-twitter .wp-block-embed__wrapper,
.is-root-container .wp-block-embed.is-provider-x .wp-block-embed__wrapper,
.is-root-container .wp-block-embed.is-provider-twitter .wp-block-embed__wrapper,
.is-root-container .wp-block-embed.wp-block-embed-x .wp-block-embed__wrapper,
.is-root-container .wp-block-embed.wp-block-embed-twitter .wp-block-embed__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
}
.c_wysywig .wp-block-embed.is-provider-x .twitter-tweet, .c_wysywig .wp-block-embed.is-provider-twitter .twitter-tweet, .c_wysywig .wp-block-embed.wp-block-embed-x .twitter-tweet, .c_wysywig .wp-block-embed.wp-block-embed-twitter .twitter-tweet,
.is-root-container .wp-block-embed.is-provider-x .twitter-tweet,
.is-root-container .wp-block-embed.is-provider-twitter .twitter-tweet,
.is-root-container .wp-block-embed.wp-block-embed-x .twitter-tweet,
.is-root-container .wp-block-embed.wp-block-embed-twitter .twitter-tweet {
  margin-left: auto !important;
  margin-right: auto !important;
}
.c_wysywig .wp-block-embed.is-provider-x .twitter-tweet:not(.twitter-tweet-rendered), .c_wysywig .wp-block-embed.is-provider-twitter .twitter-tweet:not(.twitter-tweet-rendered), .c_wysywig .wp-block-embed.wp-block-embed-x .twitter-tweet:not(.twitter-tweet-rendered), .c_wysywig .wp-block-embed.wp-block-embed-twitter .twitter-tweet:not(.twitter-tweet-rendered),
.is-root-container .wp-block-embed.is-provider-x .twitter-tweet:not(.twitter-tweet-rendered),
.is-root-container .wp-block-embed.is-provider-twitter .twitter-tweet:not(.twitter-tweet-rendered),
.is-root-container .wp-block-embed.wp-block-embed-x .twitter-tweet:not(.twitter-tweet-rendered),
.is-root-container .wp-block-embed.wp-block-embed-twitter .twitter-tweet:not(.twitter-tweet-rendered) {
  display: block;
  max-width: 500px;
  width: 100%;
  margin: 0 auto !important;
  padding: 20px 22px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-md);
  background: var(--card);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.85;
  color: var(--ink-2);
  text-align: left;
}
.c_wysywig .wp-block-embed.is-provider-x .twitter-tweet:not(.twitter-tweet-rendered) p, .c_wysywig .wp-block-embed.is-provider-twitter .twitter-tweet:not(.twitter-tweet-rendered) p, .c_wysywig .wp-block-embed.wp-block-embed-x .twitter-tweet:not(.twitter-tweet-rendered) p, .c_wysywig .wp-block-embed.wp-block-embed-twitter .twitter-tweet:not(.twitter-tweet-rendered) p,
.is-root-container .wp-block-embed.is-provider-x .twitter-tweet:not(.twitter-tweet-rendered) p,
.is-root-container .wp-block-embed.is-provider-twitter .twitter-tweet:not(.twitter-tweet-rendered) p,
.is-root-container .wp-block-embed.wp-block-embed-x .twitter-tweet:not(.twitter-tweet-rendered) p,
.is-root-container .wp-block-embed.wp-block-embed-twitter .twitter-tweet:not(.twitter-tweet-rendered) p {
  margin: 0 0 12px;
}
.c_wysywig .wp-block-embed.is-provider-x .twitter-tweet:not(.twitter-tweet-rendered) a, .c_wysywig .wp-block-embed.is-provider-twitter .twitter-tweet:not(.twitter-tweet-rendered) a, .c_wysywig .wp-block-embed.wp-block-embed-x .twitter-tweet:not(.twitter-tweet-rendered) a, .c_wysywig .wp-block-embed.wp-block-embed-twitter .twitter-tweet:not(.twitter-tweet-rendered) a,
.is-root-container .wp-block-embed.is-provider-x .twitter-tweet:not(.twitter-tweet-rendered) a,
.is-root-container .wp-block-embed.is-provider-twitter .twitter-tweet:not(.twitter-tweet-rendered) a,
.is-root-container .wp-block-embed.wp-block-embed-x .twitter-tweet:not(.twitter-tweet-rendered) a,
.is-root-container .wp-block-embed.wp-block-embed-twitter .twitter-tweet:not(.twitter-tweet-rendered) a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.c_wysywig video,
.c_wysywig .wp-block-video video,
.is-root-container video,
.is-root-container .wp-block-video video {
  width: 100%;
  border-radius: var(--r-md);
}
.c_wysywig .wp-block-file,
.is-root-container .wp-block-file {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 12px 16px;
  padding: 16px 18px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  font-size: 14px;
}
.c_wysywig .wp-block-file a:not(.wp-block-file__button),
.is-root-container .wp-block-file a:not(.wp-block-file__button) {
  color: var(--ink);
  font-weight: 700;
  text-decoration: none;
}
.c_wysywig .wp-block-file .wp-block-file__button,
.is-root-container .wp-block-file .wp-block-file__button {
  margin-left: auto;
  background: var(--accent);
  color: var(--paper);
  border-radius: var(--r-sm);
  padding: 8px 16px;
  font-family: var(--font-label);
  font-size: 12px;
  font-weight: 700;
}
.c_wysywig #ez-toc-container,
.is-root-container #ez-toc-container {
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 20px 24px;
  margin-bottom: -1.5em;
}
.c_wysywig #ez-toc-container .ez-toc-title-container,
.is-root-container #ez-toc-container .ez-toc-title-container {
  margin-bottom: 12px;
}
.c_wysywig #ez-toc-container .ez-toc-title,
.is-root-container #ez-toc-container .ez-toc-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 15px;
  letter-spacing: 0.02em;
  color: var(--ink);
}
.c_wysywig #ez-toc-container nav ul,
.is-root-container #ez-toc-container nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.c_wysywig #ez-toc-container li,
.is-root-container #ez-toc-container li {
  margin: 6px 0;
  line-height: 1.6;
}
.c_wysywig #ez-toc-container ul[class*=level-3],
.c_wysywig #ez-toc-container ul[class*=level-4],
.is-root-container #ez-toc-container ul[class*=level-3],
.is-root-container #ez-toc-container ul[class*=level-4] {
  margin-top: 6px;
  padding-left: 1.3em;
}
.c_wysywig #ez-toc-container a.ez-toc-link,
.is-root-container #ez-toc-container a.ez-toc-link {
  color: var(--ink-2);
  font-size: 14px;
  text-decoration: none;
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.c_wysywig #ez-toc-container a.ez-toc-link:hover,
.is-root-container #ez-toc-container a.ez-toc-link:hover {
  color: var(--accent);
}
.c_wysywig #ez-toc-container.ez-toc-counter nav ul,
.is-root-container #ez-toc-container.ez-toc-counter nav ul {
  counter-reset: ez;
}
.c_wysywig #ez-toc-container.ez-toc-counter a.ez-toc-link::before,
.is-root-container #ez-toc-container.ez-toc-counter a.ez-toc-link::before {
  counter-increment: ez;
  content: counters(ez, ".") ". ";
  margin-right: 5px;
  color: var(--ink-4);
  font-family: var(--font-label);
  font-weight: 700;
}
@media screen and (max-width: 680px) {
  .c_wysywig,
  .is-root-container {
    font-size: 15.5px;
  }
  .c_wysywig h2,
  .is-root-container h2 {
    font-size: 21px;
  }
  .c_wysywig h3,
  .is-root-container h3 {
    font-size: 18px;
  }
}

.c_grid {
  display: grid;
  gap: 0;
}
.c_grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1023px) {
  .c_grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 680px) {
  .c_grid--3 {
    grid-template-columns: 1fr;
  }
}
.c_grid--2 {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 680px) {
  .c_grid--2 {
    grid-template-columns: 1fr;
  }
}
.c_grid.c_grid--gap {
  gap: 48px 48px;
}

.c_cells {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--line);
}
.c_cells > * {
  border-bottom: 1px solid var(--line);
  border-left: 1px solid var(--line);
  padding: 48px 48px 52px;
}
.c_cells > *:nth-child(odd) {
  border-left: 0;
}
@media (max-width: 680px) {
  .c_cells {
    grid-template-columns: 1fr;
  }
  .c_cells > * {
    border-left: 0;
    padding: 32px 4px;
  }
}

.c_card {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  padding: 26px 0 0;
}
.c_card h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: -0.02em;
  margin: 0 0 10px;
  color: var(--ink);
}
.c_card .c_metric {
  margin: 0 0 14px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.01em;
  color: var(--ink-3);
}
.c_card p {
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.9;
  margin: 0;
}
.c_card .c_more {
  margin-top: 20px;
}
.c_card .c_more .c_tlink {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 12.5px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink-3);
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  gap: 6px;
}
@media (max-width: 680px) {
  .c_card h3 {
    font-size: 18px;
  }
}
.c_card--link {
  -webkit-transition: -webkit-transform 0.14s ease;
  transition: -webkit-transform 0.14s ease;
  transition: transform 0.14s ease;
  transition: transform 0.14s ease, -webkit-transform 0.14s ease;
}
.c_card--link:hover h3 {
  color: var(--accent);
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.c_card--link:hover .c_more .c_tlink {
  color: var(--accent);
}
.c_card--link:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
}

.c_mgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 52px 44px;
}
@media (max-width: 1023px) {
  .c_mgrid {
    grid-template-columns: repeat(2, 1fr);
    gap: 44px 36px;
  }
}
@media (max-width: 680px) {
  .c_mgrid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 680px) {
  .c_mgrid--rail {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    grid-template-columns: none;
    gap: 32px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-inline: -20px;
    padding: 0 20px 4px;
    scrollbar-width: none;
  }
  .c_mgrid--rail::-webkit-scrollbar {
    display: none;
  }
  .c_mgrid--rail > .c_mcard {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 78%;
            flex: 0 0 78%;
    scroll-snap-align: start;
  }
}

.c_mcard {
  display: block;
  -webkit-transition: -webkit-transform 0.14s ease;
  transition: -webkit-transform 0.14s ease;
  transition: transform 0.14s ease;
  transition: transform 0.14s ease, -webkit-transform 0.14s ease;
}
.c_mcard:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
}
.c_mcard__thumb {
  aspect-ratio: 16/9;
  border-radius: var(--r-md);
  overflow: hidden;
  margin-bottom: 22px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: linear-gradient(135deg, var(--paper-3) 0%, var(--ink-3) 100%);
}
.c_mcard__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c_mcard__thumb svg {
  width: 34px;
  height: 34px;
  fill: var(--paper);
  opacity: 0.5;
  -webkit-transition: opacity 0.2s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.2s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.2s ease, transform 0.3s ease;
  transition: opacity 0.2s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
}
.c_mcard:nth-child(3n+2) .c_mcard__thumb {
  background: linear-gradient(210deg, var(--paper-2) 0%, var(--ink-4) 100%);
}
.c_mcard:nth-child(3n) .c_mcard__thumb {
  background: linear-gradient(60deg, var(--paper-3) 0%, var(--ink-4) 100%);
}
.c_mcard:hover .c_mcard__thumb svg {
  opacity: 0.7;
  -webkit-transform: scale(1.06);
          transform: scale(1.06);
}
.c_mcard h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.4;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
  color: var(--ink);
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
}
.c_mcard:hover h3 {
  color: var(--accent);
}
.c_mcard .c_metric {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-3);
  margin: 0 0 12px;
}
.c_mcard p {
  font-size: 14px;
  line-height: 1.85;
  color: var(--ink-2);
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}
.c_mcard .c_more .c_tlink {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 12.5px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink-3);
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  gap: 6px;
}
.c_mcard:hover .c_more .c_tlink {
  color: var(--accent);
}
@media (max-width: 680px) {
  .c_mcard h3 {
    font-size: 16px;
  }
}

.c_feature__ic {
  color: var(--ink);
  margin-bottom: 20px;
}
.c_feature__ic svg {
  height: 28px;
  width: auto;
  display: block;
  fill: currentColor;
}
.c_feature h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 19px;
  margin: 0 0 10px;
}

.c_case {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}
.c_case__no {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.c_case__no .c_idx {
  color: var(--accent);
}
.c_case h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 23px;
  line-height: 1.35;
  margin: 10px 0 20px;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.c_case__pull {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.55;
  color: var(--ink);
  padding-left: 18px;
  border-left: 2px solid var(--ink-4);
  margin: 0 0 22px;
  letter-spacing: -0.01em;
}
.c_case__blk {
  margin-top: 18px;
}
.c_case__blk .c_case__h {
  font-family: var(--font-label);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-4);
  margin-bottom: 6px;
}
.c_case__blk p {
  color: var(--ink-2);
  font-size: 14.5px;
  line-height: 1.9;
  margin: 0;
}
.c_case__result {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink);
  letter-spacing: -0.01em;
}

.c_linkgrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (max-width: 680px) {
  .c_linkgrid {
    grid-template-columns: 1fr;
  }
}

.c_linkcard {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 24px;
  height: 100%;
  padding: 28px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-lg);
  background: var(--card);
  -webkit-transition: border-color 0.2s ease, background 0.2s ease, -webkit-transform 0.14s ease;
  transition: border-color 0.2s ease, background 0.2s ease, -webkit-transform 0.14s ease;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.14s ease;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.14s ease, -webkit-transform 0.14s ease;
}
@media (max-width: 680px) {
  .c_linkcard {
    padding: 22px;
    gap: 18px;
  }
}
.c_linkcard:hover {
  border-color: var(--accent);
}
.c_linkcard:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
  background: var(--paper-2);
}
.c_linkcard__ic {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: var(--r-md);
  border: 1px solid var(--line-2);
  background: var(--paper);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: var(--ink);
  -webkit-transition: border-color 0.2s ease, color 0.2s ease;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.c_linkcard__ic svg {
  width: 24px;
  height: 24px;
}
.c_linkcard:hover .c_linkcard__ic {
  border-color: var(--accent);
  color: var(--accent);
}
.c_linkcard__body {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.c_linkcard__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 17px;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: var(--ink);
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}
.c_linkcard:hover .c_linkcard__title {
  color: var(--accent);
}
.c_linkcard__desc {
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-3);
}
.c_linkcard__chevron {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 24px;
  color: var(--ink-4);
  -webkit-transition: color 0.2s ease, -webkit-transform 0.2s ease;
  transition: color 0.2s ease, -webkit-transform 0.2s ease;
  transition: transform 0.2s ease, color 0.2s ease;
  transition: transform 0.2s ease, color 0.2s ease, -webkit-transform 0.2s ease;
}
.c_linkcard__chevron svg {
  width: 22px;
  height: 22px;
}
.c_linkcard:hover .c_linkcard__chevron {
  color: var(--accent);
  -webkit-transform: translateX(4px);
          transform: translateX(4px);
}
.c_linkcard.c_linkcard--bare {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  padding: 18px 4px;
}
.c_linkcard.c_linkcard--bare:hover {
  border-bottom-color: var(--accent);
}
.c_linkcard.c_linkcard--bare:active {
  background: transparent;
}
.c_linkcard.c_linkcard--bare .c_linkcard__ic {
  width: auto;
  height: auto;
  border: 0;
  background: transparent;
}
.c_linkcard.c_linkcard--bare .c_linkcard__ic svg {
  width: 28px;
  height: 28px;
}

.c_offers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 680px) {
  .c_offers {
    grid-template-columns: 1fr;
  }
}

.c_offers-note {
  margin-top: 26px;
  text-align: center;
}
.c_offers-note .c_tlink {
  font-size: 13px;
}

.c_offer {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border: 1px solid var(--line-2);
  border-radius: var(--r-lg);
  padding: 34px;
  background: var(--card);
}
@media (max-width: 680px) {
  .c_offer {
    padding: 20px;
  }
}
.c_offer__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.c_offer__head .c_offer__who {
  margin-bottom: 0;
}
.c_offer__who {
  font-family: var(--font-label);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
}
.c_offer__tag {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  white-space: nowrap;
}
.c_offer h3 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 20px;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 14px;
}
.c_offer p {
  font-size: 14px;
  line-height: 1.9;
  color: var(--ink-2);
  margin: 0 0 18px;
}
.c_offer__steps {
  list-style: none;
  padding: 0;
  margin: 0 0 26px;
  display: grid;
  gap: 9px;
}
.c_offer__steps li {
  position: relative;
  padding-left: 20px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-2);
}
.c_offer__steps li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}
.c_offer__act {
  margin-top: auto;
}
.c_offer::after {
  content: "";
  position: absolute;
  right: -40px;
  bottom: -40px;
  width: 230px;
  aspect-ratio: 1/1;
  z-index: -1;
  background-color: rgba(255, 255, 255, 0.12);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.c_offer--site::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M64%2096c0-35.3%2028.7-64%2064-64l384%200c35.3%200%2064%2028.7%2064%2064l0%20240-64%200%200-240-384%200%200%20240-64%200%200-240zM0%20403.2C0%20392.6%208.6%20384%2019.2%20384l601.6%200c10.6%200%2019.2%208.6%2019.2%2019.2%200%2042.4-34.4%2076.8-76.8%2076.8L76.8%20480C34.4%20480%200%20445.6%200%20403.2zM281%20209l-31%2031%2031%2031c9.4%209.4%209.4%2024.6%200%2033.9s-24.6%209.4-33.9%200l-48-48c-9.4-9.4-9.4-24.6%200-33.9l48-48c9.4-9.4%2024.6-9.4%2033.9%200s9.4%2024.6%200%2033.9zM393%20175l48%2048c9.4%209.4%209.4%2024.6%200%2033.9l-48%2048c-9.4%209.4-24.6%209.4-33.9%200s-9.4-24.6%200-33.9l31-31-31-31c-9.4-9.4-9.4-24.6%200-33.9s24.6-9.4%2033.9%200z%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M64%2096c0-35.3%2028.7-64%2064-64l384%200c35.3%200%2064%2028.7%2064%2064l0%20240-64%200%200-240-384%200%200%20240-64%200%200-240zM0%20403.2C0%20392.6%208.6%20384%2019.2%20384l601.6%200c10.6%200%2019.2%208.6%2019.2%2019.2%200%2042.4-34.4%2076.8-76.8%2076.8L76.8%20480C34.4%20480%200%20445.6%200%20403.2zM281%20209l-31%2031%2031%2031c9.4%209.4%209.4%2024.6%200%2033.9s-24.6%209.4-33.9%200l-48-48c-9.4-9.4-9.4-24.6%200-33.9l48-48c9.4-9.4%2024.6-9.4%2033.9%200s9.4%2024.6%200%2033.9zM393%20175l48%2048c9.4%209.4%209.4%2024.6%200%2033.9l-48%2048c-9.4%209.4-24.6%209.4-33.9%200s-9.4-24.6%200-33.9l31-31-31-31c-9.4-9.4-9.4-24.6%200-33.9s24.6-9.4%2033.9%200z%22%2F%3E%3C%2Fsvg%3E");
}
.c_offer--diag::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M64%2064c0-17.7-14.3-32-32-32S0%2046.3%200%2064L0%20400c0%2044.2%2035.8%2080%2080%2080l400%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%20416c-8.8%200-16-7.2-16-16L64%2064zm406.6%2086.6c12.5-12.5%2012.5-32.8%200-45.3s-32.8-12.5-45.3%200L320%20210.7%20262.6%20153.4c-12.5-12.5-32.8-12.5-45.3%200l-96%2096c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l73.4-73.4%2057.4%2057.4c12.5%2012.5%2032.8%2012.5%2045.3%200l128-128z%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M64%2064c0-17.7-14.3-32-32-32S0%2046.3%200%2064L0%20400c0%2044.2%2035.8%2080%2080%2080l400%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%20416c-8.8%200-16-7.2-16-16L64%2064zm406.6%2086.6c12.5-12.5%2012.5-32.8%200-45.3s-32.8-12.5-45.3%200L320%20210.7%20262.6%20153.4c-12.5-12.5-32.8-12.5-45.3%200l-96%2096c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l73.4-73.4%2057.4%2057.4c12.5%2012.5%2032.8%2012.5%2045.3%200l128-128z%22%2F%3E%3C%2Fsvg%3E");
}
.c_offer--sns::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M461.2%2018.9C472.7%2024%20480%2035.4%20480%2048l0%20416c0%2012.6-7.3%2024-18.8%2029.1s-24.8%203.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0%2095.7c0%2017.7-14.3%2032-32%2032l-32%200c-17.7%200-32-14.3-32-32l0-96C57.3%20384%200%20326.7%200%20256S57.3%20128%20128%20128l84.5%200c61.8-.2%20121.4-22.7%20167.9-63.3l46.6-40.7c9.4-8.3%2022.9-10.2%2034.3-5.1zM224%20320l0%20.2c70.3%202.7%20137.8%2028.5%20192%2073.4l0-275.3c-54.2%2044.9-121.7%2070.7-192%2073.4L224%20320z%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M461.2%2018.9C472.7%2024%20480%2035.4%20480%2048l0%20416c0%2012.6-7.3%2024-18.8%2029.1s-24.8%203.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0%2095.7c0%2017.7-14.3%2032-32%2032l-32%200c-17.7%200-32-14.3-32-32l0-96C57.3%20384%200%20326.7%200%20256S57.3%20128%20128%20128l84.5%200c61.8-.2%20121.4-22.7%20167.9-63.3l46.6-40.7c9.4-8.3%2022.9-10.2%2034.3-5.1zM224%20320l0%20.2c70.3%202.7%20137.8%2028.5%20192%2073.4l0-275.3c-54.2%2044.9-121.7%2070.7-192%2073.4L224%20320z%22%2F%3E%3C%2Fsvg%3E");
}

.c_table-wrap {
  width: 100%;
  overflow-x: auto;
}

.c_spec {
  width: 100%;
  border-collapse: collapse;
}
.c_spec tr {
  border-bottom: 1px solid var(--line);
}
.c_spec tr:first-child {
  border-top: 1px solid var(--line);
}
.c_spec th,
.c_spec td {
  text-align: left;
  padding: 20px 0;
  vertical-align: top;
}
.c_spec th {
  width: 28%;
  padding-right: 24px;
  color: var(--ink-3);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.6;
}
.c_spec td {
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.75;
}
.c_spec td .c_hl {
  color: var(--ink);
  font-weight: 700;
}

.c_table {
  width: 100%;
  border-collapse: collapse;
  min-width: 560px;
}
.c_table thead th {
  font-family: var(--font-label);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-4);
  text-align: left;
  padding: 0 20px 14px;
  border-bottom: 1px solid var(--line-2);
  white-space: nowrap;
}
.c_table tbody td {
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--ink-2);
  vertical-align: top;
}
.c_table tbody tr:last-child td {
  border-bottom: 0;
}
.c_table td:first-child,
.c_table th:first-child {
  padding-left: 4px;
}
.c_table td.c_table__lead-cell {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 15px;
  letter-spacing: -0.01em;
  color: var(--ink);
  white-space: nowrap;
}
.c_table td.c_table__num {
  text-align: right;
  font-family: var(--font-display);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  white-space: nowrap;
}

.c_author {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 12px;
}
.c_author__avatar {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  background: var(--c_subtle);
}
.c_author__body {
  min-width: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2px;
}
.c_author__name {
  font-weight: 700;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
}
.c_author__date {
  font-family: var(--font-label);
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--ink-4);
}

.c_sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 14px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.c_sns a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  color: var(--ink-2);
  -webkit-transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.c_sns a:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--paper);
}
.c_sns svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.l_gnav .c_sns a {
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}
.l_gnav .c_sns a:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}

/* ============================================================
  c_pager — ページネーション（WP-PageNavi 想定）
============================================================ */
.c_pager {
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .c_pager {
    margin-top: 30px;
  }
}
.c_pager .wp-pagenavi {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-family: var(--font-label);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  gap: 6px;
}
.c_pager .wp-pagenavi a,
.c_pager .wp-pagenavi span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  color: var(--ink-3);
  text-align: center;
  -webkit-transition: color 0.15s ease, border-color 0.15s ease;
  transition: color 0.15s ease, border-color 0.15s ease;
}
@media (any-hover: hover) {
  .c_pager .wp-pagenavi a:hover {
    opacity: 1;
    color: var(--accent);
  }
}
.c_pager .wp-pagenavi .pages {
  color: var(--ink-4);
}
@media screen and (max-width: 768px) {
  .c_pager .wp-pagenavi .pages {
    display: none;
  }
}
.c_pager .wp-pagenavi .current {
  color: var(--ink);
  border-bottom: 2px solid var(--accent);
}
@media screen and (max-width: 768px) {
  .c_pager .wp-pagenavi .first,
  .c_pager .wp-pagenavi .last {
    display: none;
  }
}

/* ============================================================
  c_balloon — ふきだし（自作ブロック sbw5/balloon）
  アイコン（丸）＋名前 と 吹き出し本体（三角の尻尾付き）。左右反転可。
============================================================ */
.c_balloon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 16px;
}
.c_balloon__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 64px;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.c_balloon__icon .c_balloon__img {
  display: block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  border: 1px solid var(--line);
  background: var(--paper-2);
}
.c_balloon__icon .c_balloon__img--empty {
  display: block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1px dashed var(--line-2);
  background: var(--paper-2);
}
.c_balloon__icon .c_balloon__name {
  display: block;
  margin-top: 5px;
  font-family: var(--font-label);
  font-size: 11px;
  line-height: 1.3;
  letter-spacing: 0.02em;
  color: var(--ink-4);
  word-break: break-all;
}
.c_balloon__body {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  margin-top: 6px;
  padding: 14px 18px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: 15px;
  line-height: 1.85;
  color: var(--ink-2);
}
.c_balloon__body > :first-child {
  margin-top: 0;
}
.c_balloon__body > :last-child {
  margin-bottom: 0;
}
.c_balloon__body p {
  margin: 0;
}
.c_balloon__body::before, .c_balloon__body::after {
  content: "";
  position: absolute;
  top: 18px;
  border: 8px solid transparent;
}
.c_balloon__body::before {
  right: 100%;
  border-right-color: var(--line);
}
.c_balloon__body::after {
  right: calc(100% - 1.5px);
  border-right-color: var(--paper-2);
}
.c_balloon--right {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.c_balloon--right .c_balloon__body::before, .c_balloon--right .c_balloon__body::after {
  right: auto;
}
.c_balloon--right .c_balloon__body::before {
  left: 100%;
  border-right-color: transparent;
  border-left-color: var(--line);
}
.c_balloon--right .c_balloon__body::after {
  left: calc(100% - 1.5px);
  border-right-color: transparent;
  border-left-color: var(--paper-2);
}
@media screen and (max-width: 600px) {
  .c_balloon {
    gap: 12px;
  }
  .c_balloon__icon {
    width: 48px;
  }
  .c_balloon__icon .c_balloon__img,
  .c_balloon__icon .c_balloon__img--empty {
    width: 48px;
    height: 48px;
  }
  .c_balloon__body {
    font-size: 14px;
  }
}

.c_mediacard-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
  margin-block: 2.4rem;
}

.c_wysywig .c_mediacard {
  color: inherit;
  text-decoration: none;
}

.c_mediacard {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  background: var(--c_card);
  border: 1px solid var(--c_line);
  border-radius: var(--r_lg, 6px);
  overflow: hidden;
  -webkit-transition: border-color 0.25s ease, -webkit-box-shadow 0.25s ease;
  transition: border-color 0.25s ease, -webkit-box-shadow 0.25s ease;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, -webkit-box-shadow 0.25s ease;
}
.c_mediacard:hover {
  border-color: var(--c_line2);
  -webkit-box-shadow: 0 18px 40px -30px rgba(20, 23, 26, 0.55);
          box-shadow: 0 18px 40px -30px rgba(20, 23, 26, 0.55);
}
.c_mediacard:focus-visible {
  outline: 2px solid var(--c_accent);
  outline-offset: 3px;
}
@media (min-width: 768px) {
  .c_mediacard {
    grid-template-columns: var(--mc-imgw, 42%) minmax(0, 1fr);
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
}

.c_mediacard--sp-row {
  grid-template-columns: var(--mc-imgw, 42%) minmax(0, 1fr);
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.c_mediacard__thumb {
  display: block;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--c_paper2);
  border-bottom: 1px solid var(--c_line);
}
.c_mediacard__thumb picture {
  display: block;
  width: 100%;
  height: 100%;
}
.c_mediacard__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top center;
     object-position: top center;
  display: block;
}
@media (min-width: 768px) {
  .c_mediacard__thumb {
    height: 100%;
    aspect-ratio: auto;
    border-bottom: none;
    border-right: 1px solid var(--c_line);
  }
}

.c_mediacard--sp-row .c_mediacard__thumb {
  height: 100%;
  aspect-ratio: auto;
  border-bottom: none;
  border-right: 1px solid var(--c_line);
}

.c_mediacard__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 1.6rem 1.8rem 1.8rem;
}
@media (min-width: 768px) {
  .c_mediacard__body {
    padding: 2rem 2.2rem;
  }
}

.c_mediacard__label {
  display: inline-block;
  font-family: var(--f_label, var(--f_sans));
  font-size: 1.1rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--c_accent);
  margin-bottom: 0.4rem;
}

.c_mediacard__title {
  display: block;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--c_ink);
}
.c_mediacard__title small {
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--c_ink4);
}

.c_mediacard__text {
  display: block;
  margin-top: 0.4rem;
  font-size: 1.3rem;
  line-height: 1.9;
  color: var(--c_muted);
}

.c_mediacard::before,
.c_mediacard::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.c_mediacard::before {
  top: 1rem;
  right: 1rem;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;
  background: var(--c_card);
  border: 1px solid var(--c_line);
  -webkit-box-shadow: 0 2px 8px -5px rgba(20, 23, 26, 0.45);
          box-shadow: 0 2px 8px -5px rgba(20, 23, 26, 0.45);
  z-index: 1;
  -webkit-transition: border-color 0.25s ease;
  transition: border-color 0.25s ease;
}

.c_mediacard::after {
  top: 1.6rem;
  right: 1.6rem;
  width: 1.6rem;
  height: 1.6rem;
  background-color: var(--c_muted);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  z-index: 2;
  -webkit-transition: background-color 0.25s ease;
  transition: background-color 0.25s ease;
}

.c_mediacard:hover::before {
  border-color: var(--c_accent);
}

.c_mediacard:hover::after {
  background-color: var(--c_accent);
}

@media (min-width: 768px) {
  .c_mediacard .c_mediacard__body {
    padding-right: 4.4rem;
  }
}
.c_mediacard--sp-row .c_mediacard__body {
  padding-right: 4.4rem;
}

.c_mediacard--ext::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M320%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l82.7%200L201.4%20265.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200L448%20109.3l0%2082.7c0%2017.7%2014.3%2032%2032%2032s32-14.3%2032-32l0-160c0-17.7-14.3-32-32-32L320%200zM80%2032C35.8%2032%200%2067.8%200%20112L0%20432c0%2044.2%2035.8%2080%2080%2080l320%200c44.2%200%2080-35.8%2080-80l0-112c0-17.7-14.3-32-32-32s-32%2014.3-32%2032l0%20112c0%208.8-7.2%2016-16%2016L80%20448c-8.8%200-16-7.2-16-16l0-320c0-8.8%207.2-16%2016-16l112%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%2032z%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M320%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l82.7%200L201.4%20265.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200L448%20109.3l0%2082.7c0%2017.7%2014.3%2032%2032%2032s32-14.3%2032-32l0-160c0-17.7-14.3-32-32-32L320%200zM80%2032C35.8%2032%200%2067.8%200%20112L0%20432c0%2044.2%2035.8%2080%2080%2080l320%200c44.2%200%2080-35.8%2080-80l0-112c0-17.7-14.3-32-32-32s-32%2014.3-32%2032l0%20112c0%208.8-7.2%2016-16%2016L80%20448c-8.8%200-16-7.2-16-16l0-320c0-8.8%207.2-16%2016-16l112%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%2032z%22%2F%3E%3C%2Fsvg%3E");
}

.c_mediacard--int::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20448%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M438.6%20278.6c12.5-12.5%2012.5-32.8%200-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3%200s-12.5%2032.8%200%2045.3L338.7%20224%2032%20224c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l306.7%200L233.4%20393.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l160-160z%22%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20448%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M438.6%20278.6c12.5-12.5%2012.5-32.8%200-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3%200s-12.5%2032.8%200%2045.3L338.7%20224%2032%20224c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l306.7%200L233.4%20393.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l160-160z%22%2F%3E%3C%2Fsvg%3E");
}

@media (prefers-reduced-motion: reduce) {
  .c_mediacard {
    -webkit-transition: none;
    transition: none;
  }
}
.c_pagehead {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: clamp(280px, 34vh, 380px);
  background: radial-gradient(90% 130% at 16% 0%, rgba(40, 100, 207, 0.22), transparent 55%), var(--dark);
  color: var(--on-dark);
  padding: 72px 0;
}
@media (max-width: 680px) {
  .c_pagehead {
    min-height: 220px;
    padding: 48px 0;
  }
}
.c_pagehead--bg {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(18, 21, 26, 0.62)), to(rgba(18, 21, 26, 0.82))), var(--ttlbg);
  background-image: linear-gradient(rgba(18, 21, 26, 0.62), rgba(18, 21, 26, 0.82)), var(--ttlbg);
  background-size: cover;
  background-position: center;
}
.c_pagehead__inner {
  max-width: 900px;
}
.c_pagehead h1 {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(30px, 5vw, 54px);
  line-height: 1.25;
  letter-spacing: -0.03em;
  color: var(--on-dark);
  margin: 16px 0 0;
}
.c_pagehead .c_lead {
  margin-top: 22px;
  color: var(--on-dark-mute);
  font-size: 17px;
  line-height: 1.85;
}

.p_fv-stage {
  position: relative;
  z-index: 1;
}

.p_orbs {
  position: fixed;
  inset: 0 0 0 var(--content_offset);
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  display: none;
}
.p_orbs__orb {
  position: absolute;
  will-change: transform, opacity;
  -webkit-transition: opacity 2s ease, -webkit-transform 2s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 2s ease, -webkit-transform 2s cubic-bezier(0.16, 1, 0.3, 1);
  transition: transform 2s cubic-bezier(0.16, 1, 0.3, 1), opacity 2s ease;
  transition: transform 2s cubic-bezier(0.16, 1, 0.3, 1), opacity 2s ease, -webkit-transform 2s cubic-bezier(0.16, 1, 0.3, 1);
}
.p_orbs__i {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  -webkit-filter: blur(90px);
          filter: blur(90px);
  will-change: transform;
  -webkit-transition: background 2s ease;
  transition: background 2s ease;
}
.p_orbs__1 {
  width: 58vh;
  height: 58vh;
  top: -16%;
  left: -14%;
  opacity: 0.18;
}
.p_orbs__2 {
  width: 54vh;
  height: 54vh;
  top: -8%;
  right: -14%;
  opacity: 0.18;
}
.p_orbs__3 {
  width: 50vh;
  height: 50vh;
  bottom: -18%;
  right: -2%;
  opacity: 0;
}
.p_orbs__1 .p_orbs__i {
  background: #2864cf;
  -webkit-animation: float1 13s ease-in-out infinite alternate;
          animation: float1 13s ease-in-out infinite alternate;
}
.p_orbs__2 .p_orbs__i {
  background: #5b83b5;
  -webkit-animation: float2 17s ease-in-out infinite alternate;
          animation: float2 17s ease-in-out infinite alternate;
}
.p_orbs__3 .p_orbs__i {
  background: #1c4587;
  -webkit-animation: float3 15s ease-in-out infinite alternate;
          animation: float3 15s ease-in-out infinite alternate;
}
@media (max-width: 680px) {
  .p_orbs__1 {
    width: 46vw;
    height: 46vw;
    opacity: 0.1;
  }
  .p_orbs__2 {
    width: 42vw;
    height: 42vw;
    opacity: 0.1;
  }
  .p_orbs__3 {
    width: 32vw;
    height: 32vw;
    opacity: 0.1;
  }
  .p_orbs__i {
    -webkit-filter: blur(64px);
            filter: blur(64px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p_orbs__i {
    -webkit-animation: none;
            animation: none;
  }
  .p_orbs__orb {
    -webkit-transition: none;
    transition: none;
  }
}

body.is-top .p_orbs {
  display: block;
}

.p_fv-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: var(--dark);
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(18, 21, 26, 0.62)), to(rgba(18, 21, 26, 0.82))), url("../images/fv-hero.jpg");
  background-image: linear-gradient(rgba(18, 21, 26, 0.62), rgba(18, 21, 26, 0.82)), url("../images/fv-hero.jpg");
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(18, 21, 26, 0.62)), to(rgba(18, 21, 26, 0.82))), -webkit-image-set(url("../images/fv-hero.webp") type("image/webp"), url("../images/fv-hero.jpg") type("image/jpeg"));
  background-image: linear-gradient(rgba(18, 21, 26, 0.62), rgba(18, 21, 26, 0.82)), -webkit-image-set(url("../images/fv-hero.webp") type("image/webp"), url("../images/fv-hero.jpg") type("image/jpeg"));
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(18, 21, 26, 0.62)), to(rgba(18, 21, 26, 0.82))), image-set(url("../images/fv-hero.webp") type("image/webp"), url("../images/fv-hero.jpg") type("image/jpeg"));
  background-image: linear-gradient(rgba(18, 21, 26, 0.62), rgba(18, 21, 26, 0.82)), image-set(url("../images/fv-hero.webp") type("image/webp"), url("../images/fv-hero.jpg") type("image/jpeg"));
  background-size: cover;
  background-position: center;
  display: none;
}

body.is-top .p_fv-backdrop {
  display: block;
}

@-webkit-keyframes float1 {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
  50% {
    -webkit-transform: translate(4%, -3%) scale(1.06);
            transform: translate(4%, -3%) scale(1.06);
  }
  100% {
    -webkit-transform: translate(-3%, 3%) scale(0.98);
            transform: translate(-3%, 3%) scale(0.98);
  }
}

@keyframes float1 {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
  50% {
    -webkit-transform: translate(4%, -3%) scale(1.06);
            transform: translate(4%, -3%) scale(1.06);
  }
  100% {
    -webkit-transform: translate(-3%, 3%) scale(0.98);
            transform: translate(-3%, 3%) scale(0.98);
  }
}
@-webkit-keyframes float2 {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
  50% {
    -webkit-transform: translate(-4%, 3%) scale(0.95);
            transform: translate(-4%, 3%) scale(0.95);
  }
  100% {
    -webkit-transform: translate(3%, -2%) scale(1.05);
            transform: translate(3%, -2%) scale(1.05);
  }
}
@keyframes float2 {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
  50% {
    -webkit-transform: translate(-4%, 3%) scale(0.95);
            transform: translate(-4%, 3%) scale(0.95);
  }
  100% {
    -webkit-transform: translate(3%, -2%) scale(1.05);
            transform: translate(3%, -2%) scale(1.05);
  }
}
@-webkit-keyframes float3 {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
  50% {
    -webkit-transform: translate(3%, 4%) scale(1.05);
            transform: translate(3%, 4%) scale(1.05);
  }
  100% {
    -webkit-transform: translate(-2%, -3%) scale(1);
            transform: translate(-2%, -3%) scale(1);
  }
}
@keyframes float3 {
  0% {
    -webkit-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
  }
  50% {
    -webkit-transform: translate(3%, 4%) scale(1.05);
            transform: translate(3%, 4%) scale(1.05);
  }
  100% {
    -webkit-transform: translate(-2%, -3%) scale(1);
            transform: translate(-2%, -3%) scale(1);
  }
}
main,
main > section,
main > article,
main > .l_page-body,
main > .p_fv-stage,
.l_footer {
  position: relative;
  z-index: 1;
}

.p_hero-fv {
  position: relative;
  z-index: 2;
  min-height: calc(100svh - var(--hdr_height));
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 96px 0;
  background: transparent;
  color: var(--on-dark);
}
@media (max-width: 680px) {
  .p_hero-fv {
    padding: 40px 0;
  }
}
.p_hero-fv .c_eyebrow {
  color: var(--on-dark-mute);
}
.p_hero-fv .c_hl {
  color: var(--on-dark);
}
.p_hero-fv h1 {
  max-width: 780px;
  font-size: clamp(30px, 4.4vw, 48px);
  line-height: 1.32;
  color: var(--on-dark);
}
.p_hero-fv .c_lead {
  margin-top: 26px;
  max-width: 620px;
  color: var(--on-dark-mute);
}

.p_stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
@media (max-width: 1023px) {
  .p_stats {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 680px) {
  .p_stats {
    grid-template-columns: 1fr 1fr;
  }
}

.p_stat {
  padding: 34px 28px;
  border-left: 1px solid var(--line);
}
@media (max-width: 680px) {
  .p_stat {
    padding: 20px;
  }
}
.p_stat:first-child {
  border-left: 0;
}
@media (max-width: 1023px) {
  .p_stat:nth-child(3) {
    border-left: 0;
  }
  .p_stat:nth-child(n+3) {
    border-top: 1px solid var(--line);
  }
}
.p_stat__n {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(38px, 4.6vw, 60px);
  line-height: 0.95;
  letter-spacing: -0.04em;
  color: var(--ink);
}
@media (max-width: 680px) {
  .p_stat__n {
    font-size: 34px;
  }
}
.p_stat__n .p_stat__u {
  font-size: 0.42em;
  font-weight: 800;
  color: var(--ink-3);
  margin-left: 3px;
}
.p_stat__l {
  font-family: var(--font-label);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-4);
  margin: 16px 0 6px;
}
.p_stat__d {
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.6;
}
@media (max-width: 680px) {
  .p_stat__d {
    font-size: 11px;
  }
}

@media (max-width: 680px) {
  .p_introband__cover {
    aspect-ratio: 16/10;
  }
  .p_introband__facts {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.p_introband__cover {
  width: 100%;
  aspect-ratio: 16/6.5;
  border-radius: var(--r-md);
  overflow: hidden;
  background-color: var(--dark);
  background-image: url("../images/introband.jpg");
  background-image: -webkit-image-set(url("../images/introband.webp") type("image/webp"), url("../images/introband.jpg") type("image/jpeg"));
  background-image: image-set(url("../images/introband.webp") type("image/webp"), url("../images/introband.jpg") type("image/jpeg"));
  background-size: cover;
  background-position: center;
}
.p_introband__facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 30px;
}
.p_introband__facts .p_fact .p_fact__l {
  font-family: var(--font-label);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.p_introband__facts .p_fact .p_fact__v {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-top: 8px;
}
.p_introband .p_stats {
  grid-template-columns: repeat(2, 1fr);
  margin-top: 30px;
}
.p_introband .c_more {
  margin-top: 28px;
}

.p_section-more {
  margin-top: 40px;
}

:root {
  --hdr_height: 70px;
  --sidebar_width: 280px;
  --content_offset: 0px;
  --c_paper: #f2f3f4;
  --c_paper2: #e8eaec;
  --c_paper3: #dbdfe2;
  --c_card: #fbfcfd;
  --c_subtle: #e8eaec;
  --c_ink: #14171a;
  --c_ink2: #333a40;
  --c_muted: #656d74;
  --c_ink4: #98a1a8;
  --c_line: rgba(20, 23, 26, 0.09);
  --c_line2: rgba(20, 23, 26, 0.16);
  --c_line_soft: rgba(20, 23, 26, 0.05);
  --c_accent: #1c4587;
  --c_accent_light: #2a5aa8;
  --c_accent_ondark: #6b9bd8;
  --c_ink_dark: #14171a;
  --c_dark2: #1f2327;
  --c_ondark: #f2f3f4;
  --c_ondark_mute: rgba(242, 243, 244, 0.6);
  --c_ondark_line: rgba(242, 243, 244, 0.16);
  --f_display: "Archivo", "Noto Sans JP", system-ui, sans-serif;
  --f_sans: "Noto Sans JP", system-ui, -apple-system, sans-serif;
  --paper: var(--c_paper);
  --paper-2: var(--c_paper2);
  --paper-3: var(--c_paper3);
  --card: var(--c_card);
  --dark: var(--c_ink_dark);
  --dark-2: var(--c_dark2);
  --on-dark: var(--c_ondark);
  --on-dark-mute: var(--c_ondark_mute);
  --on-dark-line: var(--c_ondark_line);
  --ink: var(--c_ink);
  --ink-2: var(--c_ink2);
  --ink-3: var(--c_muted);
  --ink-4: var(--c_ink4);
  --line: var(--c_line);
  --line-2: var(--c_line2);
  --line-soft: var(--c_line_soft);
  --accent: var(--c_accent);
  --font-display: var(--f_display);
  --font-body: var(--f_sans);
  --font-label: var(--f_display);
  --r-xs: 2px;
  --r-sm: 3px;
  --r-md: 4px;
  --r-lg: 6px;
  --maxw: 1160px;
}

@media (min-width: 1024px) {
  :root {
    --content_offset: var(--sidebar_width);
    --hdr_height: 0px;
  }
  html.is-navclosed {
    --content_offset: 0px;
  }
}
@media (max-width: 680px) {
  :root {
    --hdr_height: 50px;
  }
}
@media (max-width: 680px) {
  #wpadminbar {
    display: none !important;
  }
  html {
    margin-top: 0 !important;
  }
}/*# sourceMappingURL=style.css.map */