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

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

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

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

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

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

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

  /* Prevents layout shift caused by the appearance or disappearance of the scrollbar. */
  scrollbar-gutter: stable;

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

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

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

  /* Set to `no-autospace` as it can cause misalignment with monospaced fonts. */
  text-autospace: no-autospace;
}
/* ======================================================
//  MARK: Text-level semantics
// ====================================================== */
:where(em:lang(ja)) {
  /* In Japanese, emphasis is commonly represented by bold text, so `font-weight: bolder;` is set by default. */
  font-weight: bolder;
}
:where(:is(i, cite, em, dfn, var):lang(ja)) {
  /* Italic style is not common in Japanese, so the `font-style` is reset. */
  font-style: unset;
}
:where(code, kbd, samp) {
  /*
  * Set a monospace font family referencing Tailwind.
  * @see https://tailwindcss.com/docs/font-family
  */
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    "Liberation Mono", "Courier New", monospace;

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

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

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

  /*
  * While link underlines can be useful, they are often obstructive.
  * They are disabled by default.
  * If needed, restore them using `text-decoration-line: revert;`.
  */
  text-decoration-line: unset;

  /* Set the underline thickness to the font's default thickness. */
  text-decoration-thickness: from-font;
}
/* ======================================================
//  MARK: Embedded content
// ====================================================== */
:where(img, svg, picture, video, canvas, model, audio, iframe, embed, object) {
  /* Automatically adjust block size based on content. */
  block-size: auto;

  /* Prevents overflow by setting the maximum width to `100%`. */
  max-inline-size: 100%;

  /* Prevents extra space from appearing at the bottom of the element. */
  vertical-align: bottom;
}
:where(iframe) {
  /* The `border` specified in the UA stylesheet is often unnecessary, so it is reset. */
  border: unset;
}
/* ======================================================
//  MARK: Tabular data
// ====================================================== */
:where(table) {
  /* Collapse borders for a more refined table design. */
  border-collapse: collapse;
}
:where(caption, th) {
  /* The `text-align` specified in the UA stylesheet is often unnecessary, so it is reset. */
  text-align: unset;
}
:where(caption) {
  /* Prevents the last line of text from ending with a single word, which can look awkward (known as an orphan). */
  text-wrap: pretty;
}
/* ======================================================
//  MARK: Forms
// ====================================================== */
:where(button, input, select, textarea),
::file-selector-button {
  /*
  * These elements are often styled with a border, so a `1px` border is applied by default for consistency.
  * This ensures readability even for unstyled elements.
  * When resetting, it's recommended to use `border-color: transparent` instead of `border: none` to account for forced color modes.
  */
  border-width: 1px;
  border-style: solid;

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

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

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

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

  /* The following default styles are often unnecessary, so they are reset. */
  padding: unset;
  border: unset;
}
:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  /*
  * These elements can be easily displayed by explicitly setting their `display` property.
  * To prevent them from appearing when not in an open state, they are forcibly hidden.
  */
  display: none !important;
}
:where(dialog) {
  /*
  * The max width and height of a `<dialog>` element are typically determined by the design.
  * These UA stylesheet properties are reset as they can be obstructive, especially when trying to make the dialog full-screen.
  */
  max-inline-size: unset;
  max-block-size: unset;
}
:where(dialog)::backdrop {
  /* Normalize the background color of the `::backdrop` element. */
  background-color: oklch(0% 0 0deg / 30%);
}
:where([popover]) {
  /*
  * While the UA stylesheet's `margin` for `<dialog>` elements is useful for centering with `inset: 0`,
  * but `margin` for `popover` elements is often obstructive as they frequently use Anchor Positioning.
  */
  margin: unset;
}
/* ======================================================
//  MARK: Focus Styles
// ====================================================== */
:where(:focus-visible) {
  /* Add space between the content and the focus outline. */
  outline-offset: 3px;
}
[tabindex="-1"]:focus {
  /* Prevent programmatically focused elements from displaying an outline unless they are naturally focusable. */
  outline: none !important;
}
/* ======================================================
//  MARK: Misc
// ====================================================== */
:where(:disabled, [aria-disabled="true" i]) {
  /* Display the default cursor on disabled elements to reflect their non-interactive state. */
  cursor: default;
}
[hidden]:not([hidden="until-found" i]) {
  /* Ensure that elements intended to be hidden are not displayed, improving clarity and layout control. */
  display: none !important;
}
:where(:root) {
  --spacing-base: 8;
  --spacing-base-rem: calc(var(--spacing-base) / 16 * 1rem);
  --spacing-none: 0;
  --spacing-half: calc(var(--spacing-base-rem) * 0.5);
  --spacing1x: calc(var(--spacing-base-rem) * 1);
  --spacing2x: calc(var(--spacing-base-rem) * 2);
  --spacing3x: calc(var(--spacing-base-rem) * 3);
  --spacing4x: calc(var(--spacing-base-rem) * 4);
  --spacing5x: calc(var(--spacing-base-rem) * 5);
  --spacing6x: calc(var(--spacing-base-rem) * 6);
  --spacing7x: calc(var(--spacing-base-rem) * 7);
  --spacing8x: calc(var(--spacing-base-rem) * 8);
  --spacing9x: calc(var(--spacing-base-rem) * 9);
  --spacing10x: calc(var(--spacing-base-rem) * 10);
  --spacing11x: calc(var(--spacing-base-rem) * 11);
  --spacing12x: calc(var(--spacing-base-rem) * 12);
}
:where(:root) {
  /* font family */
  --font-family-base: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --font-notosans-jp: "Noto Sans JP", sans-serif;
  --font-notoserif-jp: 'Noto Serif JP', serif;
  --font-roboto: "Roboto", sans-serif;
  --font-robotoserif: "Roboto Serif", serif;
  --font-icons: "Material Symbols Outlined";
  --font-heading--ja: var(--font-notosans-jp);
  --font-heading--en: var(--font-roboto);
  --font-heading--enserif: var(--font-robotoserif);
  --font-body--ja: var(--font-notosans-jp);



/* font size */
  --base-font-size: calc(16 / 16 * 1rem);
  --font-size-xxs: calc(var(--base-font-size) * 0.625); /*10px*/  
  --font-size-xs: calc(var(--base-font-size) * 0.75); /*12px*/
  --font-size-sm: calc(var(--base-font-size) * 0.875);/*14px*/
  --font-size-md: calc(var(--base-font-size) * 1); /*16px*/
  --font-size-lg: calc(var(--base-font-size) * 1.125); /*18px*/
  --font-size-xl: calc(var(--base-font-size) * 1.25); /*20px*/
  --font-size-xxl: calc(var(--base-font-size) * 1.5); /*24px*/

  /* line height */
  --line-height-base: 1.5;
}
:where(:root) {

  --mq-sm: 576px;
  --mq-md: 768px;
  --mq-lg: 992px;
  --mq-xl: 1200px;

  --header-height-s: 80px;
  --header-height: 120px;


  --layout-max-width: calc(1140 / 16 * 1rem);
}
:where(:root){
  --color-blue: #091b61;
  --color-blue--pale: #E1E5F2;
  --color-navy: #284872;
  --color-brown: #4f3a00;

  --color-white: #ffffff;
  --color-black: #000000;
  --color-darkgray: #333333;
}
/* html{
    scroll-behavior: smooth;
} */
/* body {
  font-family: "Helvetica Neue",
    Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    Meiryo,
    sans-serif;
} */
h1,h2,h3,h4,h5,h6,p.pre,li,a,span,div{
  margin:0;
  padding:0;
  box-sizing: border-box;
}
.dialog {
  --duration: 0.3s;
  --scale: 0.6;

  scale: var(--scale);
  transition: all var(--duration) allow-discrete;

  &[open] {
    opacity: 1;
    scale: 1;
    @starting-style {
      opacity: 0;
      scale: var(--scale);
    }
  }

  /* ------------------------------------------------- */
  /* 装飾 */

  width: 100%;
  max-width: calc(360px);
  padding: 0;
  opacity: 0;
  border: 0;
  border-radius: 16px;
  inset: 0; /* （Safari 18.6）閉じるときも上下中央を維持するために指定 */
  position: fixed; /* （Safari 18.6）閉じるときも上下中央を維持するために指定 */

  .dialog__inner {
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 4%);
    background-color: #fff;
    padding: 16px;
    position: relative;
  }

  .dialog__close-button {
    width: 32px;
    height: 32px;
    position: absolute;
    right: 16px;
    top: 12px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #eaeaea;
    transition: 0.2s;

    &:hover {
      background-color: #ddd;
    }
  }

  .dialog__title {
    font-size: 1.25rem;
    font-weight: bold;
    margin-bottom: 16px;
    padding-right: 32px;
  }

  .dialog__text {
    color: #555;
    margin-bottom: 32px;
  }

  .dialog__buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }

  /* ------------------------------------------------- */
  /* 背景 */
  &::backdrop {
    background-color: rgb(0 0 0 / 25%);
    opacity: 0;
    transition: display var(--duration) allow-discrete, opacity var(--duration);
  }

  &[open]::backdrop {
    opacity: 1;
    @starting-style {
      opacity: 0;
    }
  }
}
.pagetop{
  position: fixed;
  bottom: 16px;
  right: 16px;
  color: white;
  font-size: var(--font-size-xs);
  background-color: rgba(102,102,102,0.8);
  padding: var(--spacing1x) var(--spacing2x);
  display: none;
  text-shadow: 1px 1px 2px #000;
}
.pagetop.scroll{
  display: block;
}
.button {
  text-align: center;
  padding: 8px 16px;
  background-color: #3223b3;
  color: #ffffff;
  border-radius: 8px;
  font-weight: bold;
  -webkit-user-select: none;
  user-select: none;

  &.button--secondary {
    background-color: #eaeaea;
    color: #605f6c;
    transition: 0.2s;

    &:hover {
      background-color: #ddd;
    }
  }

  &.button--tertiary {
    background-color: #ca0000;
    transition: 0.2s;

    &:hover {
      background-color: #9a0000;
    }
  }

  &.button--width-full {
    width: 100%;
  }
}
details {
  --_duration: 300ms;

  background-color: #fff;

  /* ::details-contentは<details></details>内の<summary>以外のコンテンツを包含する擬似要素。*/
  /* これをひとマスのgirdにして高さ（grid-template-rows）をクローズ時は0fr、オープン時は1frにする */
  /* そしてgrid-template-rowsをトランジションさせてアニメーション化。 */
  &::details-content {
    content-visibility: unset;
    display: block grid;

    @media (prefers-reduced-motion: no-preference) {
      transition-duration: var(--_duration);
      transition-property: grid-template-rows;
    }
  }

  &:not([open])::details-content {
    grid-template-rows: 0fr;
  }

  &[open]::details-content {
    grid-template-rows: 1fr;
  }
}
.content-wrapper {
  overflow: hidden;
}
summary {
  --_foreground-default: #f7f7f7;
  --_foreground-interactive: #f7f7f7;
  --_foreground-opened: #f7f7f7;
  --_background-default: #c41e3a;
  --_background-interactive: oklch(
    from var(--_background-default) calc(l - 0.1) c h
  );
  --_background-opened: oklch(
    from var(--_background-default) calc(l - 0.2) c h
  );

  display: block grid;
  grid-template: ". icon" / 1fr max-content;
  column-gap: 1em;
  align-items: center;
  padding-block: 1lh;
  padding-inline: 3cap;
  background-color: var(--_background-default);
  color: var(--_foreground-default);
  letter-spacing: 0.1em;
  cursor: pointer;
  transition-duration: var(--_duration);
  transition-property: background-color, color;

  &::before,
  &::after {
    content: "";
    grid-area: icon;
    inline-size: 1em;
    border-block-end: 1px solid;
    writing-mode: initial;
  }

  &::after {
    rotate: 90deg;
  }

  &:focus-visible {
    background-color: var(--_background-interactive);
    color: var(--_foreground-interactive);
  }

  &:hover {
    @media (any-hover: hover) {
      background-color: var(--_background-interactive);
      color: var(--_foreground-interactive);
    }
  }

  &:is([open] > &) {
    background-color: var(--_background-opened);
    color: var(--_foreground-opened);
  }

  &:is([open] > &)::after {
    opacity: 0;
  }
}
.content {
  padding: 1.5em;
}
/* 01.for mobile (less than 991px) */
.header__nav{
  display: none;
  opacity:0;
  visibility: hidden;
  position: fixed;
  top:0;
  left:0;
  width: 100%;
  height: 100svh;
  justify-content: center;
  align-items: center;
  background-color: #000000;
  transition: opacity 0.5s ease-out,
              display 0.5s allow-discrete, visibility 0.5s allow-discrete;
}
.header__nav.open{
  display: block flex;
  opacity: 1;
  visibility: visible;
  /* transition: opacity 0.7s eas-out allow-discrete;  */

  @starting-style {
    opacity: 0;
  }

}
.global-nav{
  display: flex;
  gap: var(--spacing3x);
  flex-direction: column
}
.global-nav__item{
  font-family: var(--font-notosans-jp);
  font-weight: 600;
  font-size: calc(var(--base-font-size) * 1.25);
}
/* 02.for PC (more than 992px) */
@media screen and (min-width:992px){
  .header__nav{
    display: block;
    position: unset;
    visibility: visible;
    opacity:1;
    background-color: transparent;
    width: auto;
    height: auto;
  }
  .global-nav{
    display: flex;
    flex-direction: row;
    gap: var(--spacing3x);
  }
  .global-nav__item{
    font-family: var(--font-body-ja);
    font-size: calc(var(--base-font-size) * 0.875);
  }
}
.header__title{
  /* color: white; */
}
#jumptoindex{
  cursor: pointer;
}
.header__title--ja{
  font-family: var(--font-notosans-jp);
  font-size: clamp(1rem, 0.84rem + 0.68vw, 1.25rem);
  font-weight: 600;
  .font-smaller{
    font-size: 64%;
    margin-left: 4px;
  }
}
.header__title--en{
  font-family: var(--font-roboto);
  font-weight: 400;
  font-size: var(--font-size-xs);
}
.card{
  padding: var(--padding, var(--spacing4x));
  border-radius: var(--border-radius, 8px);
  background-color: white;
  display: flex;
  flex-direction: column;
  gap: var(--gap, var(--spacing4x));
}
.card ol{
  border-block-start: 1px solid #ccc;
  padding-block-start: var(--padding-top, var(--spacing3x));
  list-style-type:decimal;
  display: flex;
  flex-direction: column;
  gap: var(--ol-gap, var(--spacing1x));
}
.card ol li{
  margin-left: 1.5rem;
  font-size: var(--font-size, var(--font-size-sm));
}
.card__dl{
  /* display: flex;
  flex-direction: column; */
  display: grid;
  grid-template-rows: auto auto;
  gap: var(--spacing1x);
  margin-bottom: var(--spacing3x);
}
.card__list-title--collabo{
  /* align-self: flex-start; */
  font-family: var(--font-notoserif-jp);
  font-weight: 700;
  font-size: var(--font-size-lg);
  color: var(--color-blue);
  background-color: var(--color-blue--pale);
  border: solid 0px;
  padding: 4px 16px;
  width: fit-content;
}
@media screen and (min-width: 540px){
  .card__dl{
    /* flex-direction: row; */
    grid-template-columns: 8rem 1fr;
    grid-template-rows: auto;
    gap: var(--spacing2x);
  }
  .card__list-title--collabo{
    padding: 16px 16px;
    width: 100%;
    text-align: center;
  }
}
.card__list-body--collabo{
  font-size: var(--font-size, var(--font-size-md));
}
.card-ref-link a{
  color: var(--color-blue);
  font-size: var(--font-size-sm);
  border-bottom: solid 1px;
  padding-bottom: 4px;
}
#hamburger{
	position: fixed; 
  width:30px; 
  height: var(--header-height-s);
  display: flex;
  align-items: center;
  top:0;
  right:3vw; 
  margin-bottom:0;
	z-index:9000;
  cursor: pointer;
}
@media screen and (min-width: 992px){
  #hamburger{
		display: none;
    height: var(--header-height);
  }
}
/*default hamburger*/
#nav_toggle{
	display: block; 
  width:30px; 
  height: 18px;
  position: relative;
}
#nav_toggle	span{
    display: block; 
    height:2px; 
    background-color: white;
    position: absolute; 
    width:30px; 
    left:0px; 
    transition: .4s ease-in-out;}
#nav_toggle	span:nth-child(1){top:0px;}
#nav_toggle	span:nth-child(2){top:8px;}
#nav_toggle	span:nth-child(3){top:16px;}
#nav_toggle.top > span{background:white;}
#nav_toggle.lower > span{background: #000;}
/*turn to cross*/
#hamburger.open #nav_toggle	span{ background-color: white; }
#hamburger.open #nav_toggle	span:nth-child(1){top:9px; transform: rotate(135deg);}
#hamburger.open #nav_toggle	span:nth-child(2){width: 0; left:50%;}
#hamburger.open #nav_toggle	span:nth-child(3){top:9px; transform: rotate(-135deg);}
/* scroll effect move */
@media screen and (min-width: 744px){
	.scroll-target .scroll-opacity,
	.scroll-target.scroll-opacity{
		opacity:0;
		transition: opacity .5s var(--delay, 0) ease-in-out;
	}
}
.scroll-target.scroll .scroll-opacity,
.scroll-target.scroll.scroll-opacity{
	opacity:1;
}
/* 【注意】clip-pathの場合、クリップ要素が100%隠れているとintersecrionobserverが検知してくれないため、必ず親要素をターゲットにする。
scroll effect マスク左から */
@media screen and (min-width: 744px){
	.scroll-target .clip-left,
	.scroll-target.clip-left{
		position: relative;
		clip-path: inset(0 100% 0 0);
		transition: clip-path .5s var(--delay, 0s) ease-out;
	}
}
.scroll-target.scroll .clip-left,
.scroll-target.scroll.clip-left{
	clip-path: inset(0);
}
/* scroll effect マスクダウン */
@media screen and (min-width: 744px){
	.scroll-target .clip-down,
	.scroll-target.clip-down{
		clip-path: inset(0 0 100% 0);
		transition: clip-path var(--duration, .5s) var(--delay, 0s) ease-in-out;
	}
}
.scroll-target.scroll .clip-down,
.scroll-target.scroll.clip-down{
	clip-path: inset(0);
}
/* scroll effect マスクダウン for split */
@media screen and (min-width: 744px){
	.scroll-target .clip-down-split .char{
		position: relative;
		clip-path: inset(0 0 100% 0);
		transition: var(--duration, .5s) calc(var(--char-index) * 0.1s + var(--delay, 0)) ease-in-out;
	}
}
.scroll-target.scroll .clip-down-split .char{
	clip-path: inset(0);
}
/* scroll effect マスクアップ */
@media screen and (min-width: 744px){
	.scroll-target .clip-up,
	.scroll-target.clip-up{
		position: relative;
		clip-path: inset(0 0 100% 0);
    transform: translateY(100%);
		transition: all var(--duration, .5s) var(--delay, 0) ease-out;
	}
}
.scroll-target.scroll .clip-up,
.scroll-target.scroll.clip-up{
	clip-path: inset(0);
  transform: translateY(0);
}
/* scroll effect マスクアップ for split */
@media screen and (min-width: 744px){
	.scroll-target .clip-up-split .char{
		position: relative;
		clip-path: inset(0 0 100% 0);
    transform: translateY(100%);
		/* transition: all 1s var(--delay, 0) ease-out; */
		transition: var(--duration, .5s) calc(var(--char-index) * 0.1s + var(--delay, 0)) ease-in-out;
	}
}
.scroll-target.scroll .clip-up-split .char{
	clip-path: inset(0);
  transform: translateY(0);
}
/* scroll effect マスク斜め */
@media screen and (min-width: 744px){
	.scroll-target .clip-skew{
		clip-path: polygon(0 0, 0 0, 0 0);
		transition: clip-path var(--duration, 0.75s) var(--delay, 0) ease-out;
	}
}
.scroll-target.scroll .clip-skew{
	@media screen and (min-width: 744px){
		clip-path: polygon(0 0, 200% 0, 0 200%);
	}
}
/* scroll effect マスク拡張 */
@media screen and (min-width: 744px){
	.scroll-target .clip-enlarge{
		position: relative;
		clip-path: inset(30px);
		opacity:0;
		transition: clip-path .3s var(--delay, 0) ease-out, opacity .5s var(--delay, 0) ease-out;
	}
}
.scroll-target.scroll .clip-enlarge{
	clip-path: inset(0);
	opacity:1;
}
/* scroll split sprouts（芽が出るような動き） */
@media screen and (min-width: 744px){
	.scroll-target .scroll-opacity-scale .char,
	.scroll-target.scroll-opacity-scale .char{
    opacity: 0;
    scale: .5;
    transition:.5s calc(var(--char-index) * 0.1s + var(--delay, 0)) ease-in-out;
  }
}
.scroll-target.scroll .scroll-opacity-scale .char,
.scroll-target.scroll.scroll-opacity-scale .char{
  opacity: 1;
  scale: 1;
}
/* scroll up */
@media screen and (min-width: 744px){
	.scroll-target.scroll-up,
	.scroll-target .scroll-up{
		opacity:0;
		transform: translateY(40px);
		transition: opacity var(--duration, .5s) var(--delay, 0s) ease-out,
		transform var(--duration, .5s) var(--delay, 0s) ease-out;
	}
}
.scroll-target.scroll.scroll-up,
.scroll-target.scroll .scroll-up{
	transform: translateY(0);
	opacity:1;
}
/* scale up */
@media screen and (min-width: 744px){
	.scroll-target.scale-up,
	.scroll-target .scale-up{
		opacity:0;
		scale: .5;
		transform: translateY(-80px);
		transform-origin: center;
		transition: all var(--duration, .3s) var(--delay, 0s) ease-out;
	}
}
.scroll-target.scroll.scale-up,
.scroll-target.scroll .scale-up{
	opacity:1;
	scale: 1;
	transform: translateY(0);
}
/* scroll clip-open */
@media screen and (min-width: 744px){
	.scroll-target .clip-open,
	.scroll-target.clip-open{
    clip-path: inset(20px);
    transition: clip-path var(--duration, .5s) var(--delay, 0s) ease-in-out;
  }
}
.scroll-target.scroll .clip-open,
.scroll-target.scroll.clip-open{
	clip-path: inset(0);
}
.hr--horizontal{
  width: 100%;
  height:1px;
  border:unset;
  background-color: #00000033;
  margin:0;
}
a.icon::before, a.icons::after{
  font-family: var(--font-icons);
}
a.icon::before{
  margin-inline-end: .3em;
}
a.icon::after{
  margin-inline-start: .3em;
}
a.icon-after--pdf::after,a.icon-before--pdf::before{
  content:"\e415";
}
a.icon-after--new::after,a.icon-before--new::before{
  content:"\e89e";
}
.chirashi{
  width: min(100%, 280px);
  margin-inline: auto;
}.sentinel {
  height: 0px;
  width: 100%;
}
.header__wrap{
  position: absolute;
  z-index:100;
  top:0;
  left:0;
  width: 100%;
  height: var(--header-height-s);
  display: flex;
  flex-directio: column;
  align-items: center;
}
@media screen and (min-width: 992px){
  .header__wrap{
    height: var(--header-height);
  }
}
.header__wrap.scrolled{
  background-color: white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.header{
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-inline: auto;
  padding-inline: var(--spacing2x);
  width: 100%;
  max-width: var(--layout-max-width);
  color: white;
}
@media screen and (min-width: 992px){
  .header{
    padding-inline: var(--spacing4x);
  }
}
.header.--lower .header__title{
  color: var(--color-black);
}
@media screen and (min-width: 992px){
  .header.--lower,
  .header.--lower .header__title{
    color: var(--color-black);
  }
}
.hero{
  width: 100%;
  height: 100svh;
  background-color: lightgray;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  /* overflow: hidden; */
}
/* hero image */
.hero__img{
    position: absolute;
    top:0;
    left:0;
    width:100%;
    height: 100%;
    object-fit:cover;
}
@media screen and (max-width: 768px){
  .hero__img--pc{
    display: none;
  }
}
@media screen and (min-width: 769px){
  .hero__img--sm{
      display: none;
    }
}
/* banner */
.hero__banner{
    position: absolute;
    bottom: 56px;
    right: 0;
    width:100%;
    height: auto;
    display: flex;
    justify-content: center;
}
.hero__banner a{
  width: 280px;
  border: solid 1px #fff0;
  transition: border .3s ease-in-out;
}
@media (any-hover: hover) {
  .hero__banner a:hover{
    border: solid 1px #fffc;
  }
}
@media screen and (min-width: 769px){
  .hero__banner{
    justify-content: flex-end;
    bottom: 32px;
    padding-right: 32px;
    width: 280px;
  }
.hero__banner a{
  width: 320px;
}
}
:where(.stacking-section){
  width: 100%;
  margin:0;
  min-height: 100svh;
  padding-block: var(--spacing12x);
}
@media screen and (max-width: 540px){
  .stacking-section{
    padding-block-start: var(--spacing6x);
  }
}
.container{
  width: 100%;
  max-width: var(--layout-max-width);
  margin-inline: auto;
  padding-inline: 16px;
}
.flex--row{
  display: flex;
  flex-direction: row;
  gap: var(--gap, var(--spacing4x));
}
.flex--column{
  display: flex;
  flex-direction: column;
  gap: var(--gap, var(--spacing4x));
}
.flex--column.--center{
  align-items: center;
}
.sns{
  position: absolute;
  bottom: 20px;
  left:0;
  width: 100%;
  height: auto;
}
.sns-list{
  display: flex;
  gap: var(--gap, var(--spacing3x));
  margin-inline: auto;
  width: fit-content;
  color: #999999;
}
.sns-list__item{
  width: 24px;
  height: 24px;
  color: white;
  
}
.sns-list__item a svg{
  filter: drop-shadow(0px 3px 3px rgba(0, 0, 0, 0.8));
}
@media screen and (min-width: 769px){
  .sns{
    bottom: 50px;
  }
  .sns-list__item{
    width: 38px;
    height: 38px;
  }
}
.footer{
  padding-block: var(--spacing12x);
  background-color: #000;
  color: #fff;
}
.footer:where(p){
  font-size: var(--font-size-sm);
  color:#ccc;
}
.footer .copyright{
  font-size: var(--font-size-xxs);
}
.lower-header-visual{
  --height: clamp(9.375rem, 2.655rem + 19.91vw, 15rem);
  height: var(--height);
  background: var(--color-navy);
  background-image: url(../img/lower-bg.jpg);
  margin-block-start: var(--header-height-s);
}
@media screen and (min-width: 992px){
  .lower-header-visual{
    margin-block-start: var(--header-height);
  }
}
.lower-header-visual img{
  width:100%;
  height: var(--height);
  object-fit: cover;
}
.container:has(.main-visual--lower){
  padding-inline: 0;
  position: relative;
}
.container:has(.main-visual--lower) .main-visual__title{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: clamp(1.5rem, -0.889rem + 7.08vw, 3.5rem);
  color: var(--color-white);
  font-family: var(--font-heading--enserif);
  font-weight: 200;
  font-size: clamp(1.5rem, -0.889rem + 7.08vw, 3.5rem);
  line-height: 1.2;
}/* top page profile section */
.stacking-section:has(.top-profile){
  background-color: #000;
  color:white;
}
.top-profile{
  padding-inline: var(--spacing2x);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing4x);
}
@media screen and (min-width: 576px){
  .top-profile{
    grid-template-columns: 1fr 40%;
    gap: var(--spacing6x);
  }
}
/* Photo section */
.top-profile__img{
  width: 100%;
}
@media screen and (min-width: 576px){
  .top-profile__img{
    width: minmax(50%, 300px);
  }
}
.top-profile__img img{
  width:100%;
  aspect-ratio: 1;
  height: auto;
  object-fit: cover;
}
/* Text section */
.top-profile__main{
  display: flex;
  flex-direction: column;
  gap: var(--spacing4x);
}
/* Paragraph */
.top-profile__contents p{
  line-height:1.5;
  font-size: var(--font-size-md);
}
.stacking-section:has(.top-shoryuraifuku){
  background-image: url(../img/top-shoryu-bg.jpg);
}
.top-shoryuraifuku .title--feature-jp{
  font-family: var(--font-notoserif-jp);
  font-weight: 700;
  font-size: clamp(4rem, 2.718rem + 5.47vw, 6rem);
  color: var(--color-blue);
}
.top-shoryuraifuku .title--feature-jp ruby {
  ruby-position: under;
}
.top-shoryuraifuku .title--feature-jp rt{
  font-size: clamp(0.875rem, 0.446rem + 0.89vw, 1rem);
  margin-block-start: var(--spacing-half);
}
.top-shoryuraifuku .strong{
  font-weight: 700;
}
.top-shoryuraifuku .title--lead{
  color: white;
  background-color: var(--color-blue);
  padding: var(--spacing1x) var(--spacing2x);
  width: 100%;
  text-align:center;
  font-family: var(--font-body-ja);
  font-size: clamp(0.875rem, 0.786rem + 0.45vw, 1rem);
}
.top-shoryuraifuku > *{
  margin-inline: auto;
  width: fit-content;
  max-width: 800px;

}
.title--border-inline{
  text-align: center;
  /* border-inline: solid 1px; */
  padding-inline: var(--spacing4x);
  color: var(--color-blue);
  font-family: var(--font-family-jp, 'Noto Serif JP', serif);
  font-size: clamp(1.125rem, 0.688rem + 2.19vw, 2rem);
}
.card:where(.top-shoryuraifuku .card){
  border: solid 0px var(--color-blue);
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
}
.card:where(.top-shoryuraifuku .card) .card__tit--ja{
  font-size:var(--font-size-xxl);
  /* color:  var(--color-blue); */
  line-height: 1;
}
.card:where(.top-shoryuraifuku .card) .card__tit--en{
  font-size: var(--font-size-xs);
  /* color: #999; */
}
.card:where(.top-shoryuraifuku .card) hgroup{
  padding: var(--spacing2x);
  background-color: var(--color-blue);
  color: white;
}
.top-shoryu__contact{
  color: var(--color-blue);
  border-radius: 8px;
  border: solid 1px;
  background-color: #fff6;
  padding: var(--spacing2x) var(--spacing2x);
}
.stacking-section:has(.top-discography){
        background-color: white;
        color:#000;
}
.stacking-section:has(.top-discography) hgroup h2{
        font-size:clamp(3rem, -3.857rem + 14.29vw, 5rem);
        font-weight: 700;
}
.stacking-section:has(.top-discography) hgroup h2,
.stacking-section:has(.top-discography) hgroup p{
        font-family: var(--font-family-en);
        line-height:1;
        text-align: center;
}
.stacking-section:has(.top-discography) hgroup p{
        font-size: var(--font-size-sm);
        font-weight: 700;
}
.stacking-section:has(.top-discography) a[href^="http"]{
        text-decoration: underline;
        text-underline-offset: 5px;
        text-decoration-thickness: 1px;
}
.stacking-section:has(.top-discography) .dvd img{
        width: min(100%, 200px);
}
.stacking-section:has(.top-info){
  background-image: url(../img/top-info-bg.jpg);
}
.stacking-section:has(.top-info) hgroup h2{
  font-family: var(--font-family-jp, 'Noto Serif JP', serif);
  font-size:clamp(3rem, -3.857rem + 14.29vw, 5rem);
  font-weight: 700;
  color: var(--color-brown);
}
.stacking-section:has(.top-info) .card--info{
  border-radius: 8px;
  padding: var(--spacing4x);
  background-color: white;
  width: 100%;
  max-width:800px; 
  margin-inline: auto;
}
.stacking-section:has(.top-info) .card--info hgroup h3,
.stacking-section:has(.top-info) .card--info hgroup p{
  text-align: center;
}
.stacking-section:has(.top-info) .card--info > ul{
  width: fit-content;
  margin-inline: auto;
}
.stacking-section:has(.top-info) .card--info .event-guest{
      margin-block-start:8px;
}
.stacking-section:has(.top-info) .event-info-list{
  display: grid;
  grid-template-columns: 5em 1fr;
  column-gap : var(--spacing3x);
  row-gap: var(--spacing1x);
  width: fit-content;
  margin-inline: auto;
}
.stacking-section:has(.top-info) .event-info-list dt{
  font-optical-sizing: auto;
  text-align-last: justify;
}
.stacking-section:has(.top-info) .event-info-list dt,
.stacking-section:has(.top-info) .event-info-list dd{
  font-size: var(--font-size-sm);
}
.stacking-section:has(.top-banner){
  height: auto;
  min-height: unset;
  background-color: #666;
}
.overseas hgroup{
  display: flex;
  flex-direction: column;
  gap: var(--spacing1x);
  align-items: center;
}
.overseas hgroup h2{
  font-family: var(--font-notoserif-jp, 'Noto Serif JP');
  font-size: clamp(1.875rem, 1.279rem + 2.54vw, 2.5rem);
  text-align: center;
  line-height: 1.35;
}
.overseas hgroup p{
  font-family: var(--font-roboto);
  font-size: var(--font-size-sm);
  color: #666;
}
.card-overseas{
  width: 100%;
  max-width:800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  background-color: #f5f5f5;
  padding: var(--spacing4x);

  hgroup{
    display: flex;
    flex-direction: column;
    gap: var(--spacing1x);
    align-items: center;
  }
}
.card-overseas__title--year{
  font-family: var(--font-robotoserif);
  color: var(--color-blue);
  font-weight: 400;
  font-size: clamp(1.5rem, -0.889rem + 7.08vw, 3.5rem);
  line-height: 1;
}
.card-overseas__title--countries{
  font-family: var(--font-robotoserif);
  color: var(--color-blue);
  font-weight: 500;
  font-size: var(--font-size-sm);
  width: fit-content;
  padding-block: var(--spacing-half);
  border-block: solid 1px #aaa;
}
.card-overseas-list--schedule{
  display: grid;
  grid-template-columns: 1fr;
  column-gap: 1rem;
  width: 100%;
  
}
@media screen and (min-width: 744px){
  .card-overseas-list--schedule{
    grid-template-columns: var(--dt-width, 8em) 1fr;
  }
}
.card-overseas-list__date,.card-overseas-list__content{
  font-size: var(--font-size-sm);
}
.card-overseas-list__date{
  text-align: left;
}
@media screen and (min-width: 744px){
  .card-overseas-list__date{
      text-align: right;
  }
}
.card-overseas-list__content{
  padding-block-end: var(--spacing1x);
}
.card-overseas__title--year,.card-overseas__title--countries{
  text-align: center;
}
.solo-performance hgroup{
  display: flex;
  flex-direction: column;
  gap: var(--spacing1x);
  align-items: center;
}
.solo-performance hgroup h2{
  font-family: var(--font-notoserif-jp);
  font-size: 40px;
  text-align: center;
  line-height: 1.35;
}
.solo-performance hgroup h2 span.title-name{
  font-size:24px;
}
.solo-performance hgroup h2 span.title-solo{
  font-size:56px;
}
.solo-performance p{
  font-family: var(--font-roboto);
  font-size: var(--font-size-md);
  color: #333;
}
.solo-schedule{
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing1x);
}
.solo-schedule h3{
  font-family: var(--font-notoserif-jp);
  font-weight: 700;
  font-size: var(--font-size-xxl);
  color: var(--color-blue);
}
.solo-schedule dl{
  display: grid;
  /* grid-template-columns: 1fr; */
  grid-template-columns:  9em 1fr;
}
.solo-schedule dl dt{text-align: right;}
.solo-schedule dl dt,
.solo-schedule dl dd{
  font-size: var(--font-size-sm);
}
.solo-schedule dl dt.held,
.solo-schedule dl dd.held{
  color: #999;
}
@media screen and (min-width: 744px){
  .solo-schedule dl{grid-template-columns:  9em 1fr;}
  .solo-schedule dl dt{text-align: right;}
}
.solo-note p{
  font-size: var(--font-size-sm);
}