﻿html {
    font-family: var(--font-family-primary);
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + var(--margin-s))
}

body {
    min-width: 320px;
    font-weight: var(--font-weight-regular);
    line-height: 1.4;
    color: var(--color--base);
    word-break: normal;
    overflow-wrap: anywhere;
    line-break: strict
}

body * {
    font-feature-settings: "palt";
    letter-spacing: .05em
}

::selection {
    background: rgba(128, 128, 128, .25)
}

.grecaptcha-badge {
    visibility: hidden
}

*,
::after,
::before {
    box-sizing: border-box;
    -webkit-appearance: revert;
    appearance: revert;
    border-style: solid;
    border-width: 0
}

html {
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0)
}

h1,
h2,
h3,
h4,
h5,
h6 {
    line-height: 1.4
}

img {
    max-width: 100%;
    height: auto
}

p+p:where(:not(.not-give)) {
    margin-block-start: var(--margin-p)
}

svg,
img,
embed,
object,
iframe {
    vertical-align: middle
}

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible;
    border-top-width: 1px
}

b,
strong {
    font-weight: bolder
}

em {
    font-style: normal
}

code,
kbd,
samp,
pre {
    font-family: ui-monospace, monospace;
    font-size: inherit
}

pre {
    white-space: pre
}

small {
    font-size: 80%
}

sub,
sup {
    position: relative;
    font-size: .688em;
    line-height: 0;
    vertical-align: baseline
}

sub {
    inset-block-end: -0.75em
}

sup {
    inset-block-start: -0.5em
}

s {
    text-decoration: line-through
}

table {
    width: 100%;
    border-collapse: collapse
}

th,
caption,
dt {
    text-align: left
}

textarea {
    overflow-wrap: revert;
    white-space: revert;
    resize: revert
}

label {
    display: inline-block;
    cursor: pointer
}

[type=button],
[type=reset],
[type=submit],
button {
    cursor: pointer
}

[type=button]:disabled,
[type=reset]:disabled,
[type=submit]:disabled,
button:disabled {
    cursor: default
}

:focus {
    outline: revert
}

summary,
details,
progress {
    all: revert
}

summary {
    display: block
}

summary::-webkit-details-marker {
    display: none
}

.font-secondary-medium,
.font-secondary {
    font-family: var(--font-family-secondary);
    font-weight: var(--font-secondary--weight, var(--font-weight-semibold));
    letter-spacing: var(--font-secondary--letter-spacing, 0.1em)
}

.font-secondary-medium {
    --font-secondary--weight: var(--font-weight-medium)
}

.font-tertiary-bold,
.font-tertiary {
    font-family: var(--font-family-tertiary);
    font-weight: var(--font-tertiary--weight, var(--font-weight-regular));
    letter-spacing: var(--font-tertiary--letter-spacing, 0)
}

.font-tertiary-bold {
    --font-tertiary--weight: var(--font-weight-bold)
}

a {
    color: var(--color--use--link);
    text-decoration: none;
    cursor: pointer;
    transition: var(--duration)
}

a:not([class], :has(img), :has(svg))[target=_blank] {
    border-block-end: 1px solid
}

a:not([class], :has(img), :has(svg))[target=_blank]::after {
    display: inline-block;
    width: 1em;
    height: fit-content;
    aspect-ratio: 1;
    margin-inline: .5em .3em;
    content: "";
    background: currentColor;
    mask: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+PHBhdGggZD0iTTAgMi4xNGwuMDgtLjM0Qy4yNyAxLjIxLjgyLjc4IDEuNDQuNzdoMy4wNHYxLjQ4SDEuNTJ2OC4yM2g4LjIzVjcuNTFoMS40OXYyLjg0YzAgLjkyLS40MyAxLjQ1LTEuMzMgMS42M2wtLjA1LjAySDEuNGwtLjA4LS4wM0MuNjEgMTEuODUuMTUgMTEuNC4wMyAxMC42OWwtLjAzLS4xVjIuMTN6Ii8+PHBhdGggZD0iTTEyIDUuMjNsLS4zMS4wM0gxMC41VjIuNkw1LjgyIDcuMjggNC43NCA2LjJsNC42OS00LjY5SDYuNzVWLjU1YzAtLjE5LjAyLS4zNy4wMy0uNTZoNS4yM3Y1LjI0eiIvPjwvc3ZnPg==) no-repeat center center/contain;
    translate: 0 .1em
}

a.under {
    text-decoration: underline
}

a.under:hover {
    color: var(--color--use--link-hover)
}

:where(a):hover {
    color: var(--color--use--link-hover)
}

::placeholder {
    color: var(--color--use--border)
}

input,
textarea {
    font-family: var(--font-family-default);
    font-weight: inherit
}

input[type=text],
input[type=tel],
input[type=email],
input[type=password],
input[type=number],
input[type=date],
textarea,
select {
    box-sizing: border-box;
    width: min(100%, 40em);
    padding: .75em;
    font-size: 1rem;
    vertical-align: baseline;
    border-color: var(--color--use--border);
    border-style: solid;
    border-width: 1px;
    border-radius: var(--radius-s);
    transition: border var(--duration)
}

input[type=text]:focus,
input[type=tel]:focus,
input[type=email]:focus,
input[type=password]:focus,
input[type=number]:focus,
input[type=date]:focus,
textarea:focus,
select:focus {
    background: var(--color--base--white);
    border-color: var(--color--theme--primary);
    outline: none
}

select {
    width: auto
}

input[type=date] {
    display: inline-flex;
    align-items: center;
    min-width: 10em
}

input[type=submit],
button[type=submit] {
    position: relative;
    width: min(200px, 100%);
    padding-block: calc(1em + var(--leading-trim));
    padding-inline: 1em;
    margin: 0 .625em;
    font-size: 1.125rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    color: var(--color--use--above);
    text-align: center;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    background: var(--color--accent--grad-blue-90);
    border-width: 0;
    border-radius: var(--radius-oval);
    transition: all var(--duration) ease-out
}

input[type=submit]:not([disabled]):hover,
button[type=submit]:not([disabled]):hover {
    filter: brightness(1.2) hue-rotate(-30deg)
}

input[type=submit][disabled],
button[type=submit][disabled] {
    background: var(--color--base--light)
}

.iw-s {
    width: min(100%, 8em) !important
}

.iw-m {
    width: min(100%, 12em) !important
}

.iw-l {
    width: min(100%, 24em) !important
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    padding-block-start: .833em;
    font-size: .75rem
}

.breadcrumb>li:not(:last-child)::after {
    margin: 0 .4em;
    content: "/"
}

.breadcrumb a {
    color: var(--color--base)
}

.page-title {
    text-align: center
}

.page-title__container {
    display: flex;
    flex-direction: column;
    gap: .556em;
    align-items: center;
    padding: var(--chg--margin-xl);
    font-size: var(--clamp--font-size-3xl);
    background-color: var(--color--use--bg);
    background-position: center;
    background-size: cover
}

.page-title__sub {
    width: fit-content;
    font-size: .5em;
    color: var(--color--theme--primary);
    background: var(--color--accent--grad-blue-90);
    -webkit-background-clip: text;
    -webkit-text-fill-color: rgba(0, 0, 0, 0)
}

.title-1 {
    position: relative;
    display: inline-block;
    margin-block-end: var(--margin-xl);
    font-size: clamp(2.5rem, 4.932vw, 4.5rem);
    line-height: 1.4
}

.title-1__en {
    margin-block: var(--leading-trim-en);
    margin-block-end: calc(.278em + var(--leading-trim-en));
    color: var(--color--theme--primary);
    background: var(--color--accent--grad-blue-90);
    -webkit-background-clip: text;
    -webkit-text-fill-color: rgba(0, 0, 0, 0)
}

.title-1__ja {
    margin-block: var(--leading-trim);
    font-size: max(18px, .278em);
    font-weight: var(--font-weight-medium)
}

.title-2 {
    display: flex;
    flex-direction: column;
    gap: .667em;
    align-items: center;
    padding-block: .667em;
    padding-inline: 1em;
    font-size: var(--clamp--font-size-2xl);
    line-height: 1.4;
    background: var(--color--theme--secondary)
}

.title-2:has(+*) {
    margin-block-end: var(--margin-xl)
}

.title-2:any-link:hover {
    filter: brightness(1.2) hue-rotate(-30deg)
}

.title-2--grad {
    background: var(--color--accent--grad-blue-90)
}

.title-2--grad>*:not(.title-2__more) {
    filter: brightness(0) invert(1)
}

.title-2__icon {
    width: 2.667em;
    aspect-ratio: 1/1
}

.title-2__ja {
    margin-block: var(--leading-trim)
}

.title-2__en {
    margin-block: var(--leading-trim-en);
    font-size: .75rem;
    color: var(--color--theme--primary);
    translate: 0 .167em
}

.title-2__more {
    display: flex;
    gap: .714em;
    align-items: center;
    padding-block: .357em;
    padding-inline: 1.071em .357em;
    font-size: .467em;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    color: var(--color--theme--primary);
    background-color: var(--color--base--white);
    border-radius: var(--radius-oval);
    transition: var(--duration)
}

.title-3 {
    margin-block-start: var(--leading-trim);
    margin-block-end: var(--margin-m);
    font-size: var(--clamp--font-size-2xl);
    line-height: 2;
    color: var(--color--theme--primary);
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-decoration-style: dashed;
    text-decoration-color: var(--color--theme--primary);
    text-underline-offset: .333em;
    text-decoration-skip-ink: none
}

.title-4 {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: .556em;
    align-items: center;
    margin-block-start: var(--leading-trim);
    margin-block-end: var(--margin-s);
    font-size: 1.125rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    color: var(--color--theme--primary)
}

.title-4::after {
    height: 1px;
    content: "";
    background-color: var(--color--theme--primary)
}

.title-5 {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .333em;
    align-items: center;
    padding-block: calc(.5em + var(--leading-trim));
    padding-inline: .667em;
    margin-block-end: var(--margin-xl);
    font-size: var(--clamp--font-size-2xl);
    line-height: 1.4;
    color: var(--color--use--above);
    background: var(--color--accent--grad-blue-90);
    border-radius: var(--radius-s)
}

.title-5--s {
    padding-block: calc(.45em + var(--leading-trim));
    padding-inline: .5em;
    margin-block-end: var(--margin-s);
    font-size: var(--clamp--font-size-l);
    font-weight: var(--font-weight-medium)
}

.title-6 {
    position: relative;
    padding-block-start: calc(1em + var(--leading-trim));
    margin-block-end: calc(var(--margin-xl) + var(--leading-trim));
    font-size: var(--clamp--font-size-2xl);
    line-height: 1.4;
    border-block-start: 3px solid var(--color--base--pale)
}

.title-6::before {
    position: absolute;
    inset-block-end: 100%;
    width: min(19.531vw, 200px);
    height: 3px;
    content: "";
    background: var(--color--accent--grad-blue-90)
}

.title-7 {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .417em;
    align-items: center;
    padding-block: calc(.833em + var(--leading-trim));
    padding-inline: .833em;
    margin-block-end: var(--margin-m);
    font-size: var(--clamp--font-size-xl);
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    background-color: var(--color--theme--secondary);
    border-radius: var(--radius-s)
}

.title-7__label {
    padding-block: calc(.385em + var(--leading-trim));
    padding-inline: .769em;
    font-size: .542em;
    color: var(--color--base--white);
    background: var(--color--accent--grad-blue-90);
    border-radius: var(--radius-oval)
}

.title-serial {
    display: flex;
    gap: .208em;
    align-items: baseline;
    font-size: var(--title-serial--font-size, var(--clamp--font-size-5xl));
    font-style: italic;
    line-height: 1.4
}

.title-serial--c {
    justify-content: center
}

.title-serial--s {
    --title-serial--font-size: var(--clamp--font-size-2xl)
}

.title-serial--l {
    --title-serial--font-size: clamp(3.75rem, 8.789vw, 5.625rem)
}

.title-serial__text {
    margin-block: var(--leading-trim-en);
    font-size: .5em
}

.title-serial__num {
    margin-block: var(--leading-trim-en)
}

.title-serial__num::after {
    content: counter(title_num, decimal-leading-zero)
}

.title-serial-reset {
    counter-reset: title_num
}

.title-serial-reset>* {
    counter-increment: title_num
}

.title-serial-2 {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .417em;
    align-items: center;
    padding: .417em;
    margin-block-end: var(--margin-m);
    font-size: var(--clamp--font-size-xl);
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    background-color: var(--color--theme--secondary);
    border-radius: var(--radius-s)
}

.title-serial-2__num {
    --c--circle--width: clamp(1.625rem, 3.906vw, 2.5rem);
    font-style: italic;
    color: var(--color--base--white)
}

.title-serial-2__num::after {
    line-height: 1;
    content: counter(title_num2, decimal-leading-zero);
    translate: -0.083em 0
}

.title-serial-2-reset {
    counter-reset: title_num2
}

.title-serial-2-reset>* {
    counter-increment: title_num2
}

.l-content {
    margin-block-end: var(--section);
    line-height: var(--line-height)
}

.l-column-2:has(>:nth-child(n+2)) {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--margin-2xl)
}

.l-column-2.-contents {
    --contents-inline-start: var(--margin--use--outside);
    --contents-inline-end: var(--margin--use--outside);
    max-width: calc(1630px + var(--contents-inline-start) + var(--contents-inline-end));
    padding-inline: var(--contents-inline-start) var(--contents-inline-end);
    margin-inline: auto
}

.l-column-2__main {
    overflow-x: clip
}

.l-column-2-side {
    order: -1
}

.-contents .l-column-2-side {
    position: relative;
    z-index: 1
}

.-contents .l-column-2-side__inner {
    position: sticky;
    inset-block-start: calc(var(--header-height) + var(--margin-s));
    inset-inline-start: 0;
    clip-path: inset(0 0 0 -100vw round 0 var(--radius-s) var(--radius-s) 0)
}

.-contents .l-column-2-side__inner::before,
.-contents .l-column-2-side__inner::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: ""
}

.-contents .l-column-2-side__inner::before {
    border-image-source: linear-gradient(to left, var(--color--theme--primary), var(--color--theme--primary));
    border-image-slice: 0 fill;
    border-image-outset: 0 0 0 100vw
}

.-contents .l-column-2-side__inner::after {
    border-image-source: var(--color--accent--grad-blue-90);
    border-image-slice: 0 fill;
    border-image-outset: 0 0 0 var(--contents-inline-start)
}

.l-site-top {
    display: none
}

.l-header {
    position: relative;
    min-height: var(--header-height)
}

.l-footer {
    padding-block: var(--margin-2xl) 0;
    background: var(--color--accent--grad-blue-90)
}

.l-copyright {
    display: block;
    padding-block: calc(var(--margin-2xs) + var(--leading-trim));
    margin-block-start: var(--margin-3xl);
    font-size: .625rem;
    color: var(--color--use--above);
    text-align: center;
    border-block-start: 1px solid
}

#pagetop {
    display: none
}

.c-trim {
    position: var(--c--trim--position, relative);
    aspect-ratio: var(--c--trim--ratio, 3/2);
    overflow: hidden;
    background-color: var(--c--trim--bg, var(--color--base--light))
}

.c-trim--bg {
    --c--trim--ratio: auto;
    --c--trim--position: absolute;
    inset: 0;
    transition: var(--duration)
}

a:where(:has(>.c-trim--bg)) {
    display: block
}

*:where(:has(>.c-trim--bg)),
.c-trim--bg~* {
    position: relative
}

.c-trim--bg::after {
    position: absolute;
    inset: 0;
    content: "";
    transition: var(--duration)
}

a:has(.c-trim):hover .c-trim--bg::after {
    background: color-mix(in srgb, var(--color--base) 70%, transparent)
}

.c-trim>img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: auto;
    object-fit: cover;
    transition: var(--duration) ease-in-out
}

a:has(.c-trim):hover .c-trim>img {
    scale: 1.05
}

.c-plusminus {
    position: relative;
    flex: 0 0 auto;
    width: var(--c--plusminus--size, 1.875em);
    aspect-ratio: var(--c--plusminus--ratio, 1/1);
    background: var(--c--plusminus--bg-color, transparent);
    border-radius: var(--c--plusminus--radius, var(--radius-oval))
}

.c-plusminus::before,
.c-plusminus::after {
    position: absolute;
    inset: 0;
    width: var(--c--plusminus--width, 0.625em);
    height: var(--c--plusminus--height, 2px);
    margin: auto;
    content: "";
    background: var(--c--plusminus--color, var(--color--use--link));
    transition: all .4s
}

.c-plusminus::before {
    transform: rotate(0deg)
}

.c-plusminus::after {
    transform: rotate(90deg)
}

.is-opened .c-plusminus::after {
    transform: rotate(180deg)
}

.c-svg-area {
    position: absolute;
    inset-inline-start: -9999px;
    height: 0;
    overflow: hidden
}

.c-icon-arrow {
    flex: 0 0 auto;
    width: var(--c--arrow--width, 1.188em);
    aspect-ratio: 19/19;
    fill: var(--c--arrow--fill, currentColor)
}

:where([class*=circle]) .c-icon-arrow {
    --c--arrow--width: max(9px, 42%);
    fill: var(--c--arrow--fill, var(--color--theme--primary));
    transition: var(--duration)
}

:where([class*=circle--grad]) .c-icon-arrow {
    fill: var(--c--arrow--fill, var(--color--use--above))
}

.c-icon-phone {
    flex: 0 0 auto;
    width: var(--c--phone--width, 0.694em);
    aspect-ratio: 25/25;
    fill: var(--c--phone--fill, currentColor)
}

.c-icon-pin {
    flex: 0 0 auto;
    width: var(--c--pin--width, 0.714em);
    aspect-ratio: 10/13;
    fill: var(--c--pin--fill, currentColor)
}

.c-icon-users {
    flex: 0 0 auto;
    width: var(--c--users--width, 1.286em);
    aspect-ratio: 18/13;
    fill: var(--c--users--fill, currentColor)
}

.c-icon-new-tab {
    flex: 0 0 auto;
    width: var(--c--new-tab--width, 0.667em);
    aspect-ratio: 12/12;
    fill: var(--c--new-tab--fill, currentColor)
}

:where([class*=circle]) .c-icon-new-tab {
    --c--new-tab--width: max(9px, 50%);
    fill: var(--c--new-tab--fill, var(--color--theme--primary));
    transition: var(--duration)
}

:where([class*=circle--grad]) .c-icon-new-tab {
    fill: var(--c--new-tab--fill, var(--color--use--above))
}

.c-icon-speech-balloon {
    flex: 0 0 auto;
    width: var(--c--speech-balloon--width, 1.722em);
    aspect-ratio: 31/25;
    fill: var(--c--speech-balloon--fill, currentColor)
}

.c-circle-s,
.c-circle-xs,
.c-circle-2xs,
.c-circle-check,
.c-circle-icon-border,
.c-circle-icon,
.c-circle {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: var(--c--circle--width, clamp(1.5rem, 2.93vw, 1.875rem));
    aspect-ratio: 1;
    background: var(--c--circle--bg-color, var(--color--base--white));
    border-radius: var(--radius-oval);
    transition: var(--duration)
}

.c-circle-icon {
    --c--circle--width: 10px
}

.c-circle-icon-border {
    --c--circle--width: 10px;
    border: 3px solid var(--color--theme--primary)
}

.c-circle-check {
    --c--circle--width: 15px
}

.c-circle-check::before {
    width: 60%;
    aspect-ratio: 2/1;
    color: var(--color--use--above);
    content: "";
    border-block-end: 2px solid;
    border-inline-start: 2px solid;
    rotate: -45deg
}

.c-circle-2xs {
    --c--circle--width: 16px
}

.c-circle-xs {
    --c--circle--width: clamp(1.125rem, 1.953vw, 1.25rem)
}

.c-circle-s {
    --c--circle--width: clamp(1.375rem, 2.344vw, 1.5rem)
}

.c-circle--grad {
    background: var(--c--circle--bg-color, var(--color--accent--grad-blue-90))
}

.c-circle--secondary {
    background: var(--c--circle--bg-color, var(--color--theme--secondary));
    opacity: .5
}

.c-label {
    display: inline-block;
    padding-block: calc(.313em + var(--leading-trim));
    padding-inline: .938em;
    font-size: .889em;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    color: var(--color--use--above);
    text-align: center;
    background-color: var(--color--accent--green);
    border-radius: var(--radius-oval)
}

.c-label-border {
    padding-block: calc(.308em + var(--leading-trim));
    padding-inline: .385em;
    font-size: .813rem;
    line-height: 1.7;
    color: var(--color--theme--primary);
    border: 1px solid;
    border-radius: var(--radius-xs)
}

.c-bg-image {
    position: absolute;
    inset: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    object-fit: cover
}

.c-bg-image--block-start {
    inset-block-end: revert;
    height: revert
}

.c-bg-image--block-end {
    inset-block-start: revert;
    height: revert
}

*:where(:has(>.c-bg-image)) {
    position: relative;
    z-index: 1
}

.c-button-wrap {
    margin-block-start: var(--margin-xl);
    text-align: center
}

.c-button-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-s);
    justify-content: center
}

.c-btn-sideline,
.c-btn {
    --color--use--link: var(--color--accent--grad-blue-90);
    --color--use--link-hover: var(--color--theme--primary);
    position: relative;
    z-index: 1;
    display: inline-flex;
    gap: var(--c--btn--gap, 1em);
    align-items: center;
    justify-content: space-between;
    padding-block: var(--c--btn--padding-block, 0.833em);
    padding-inline: var(--c--btn--padding-inline, 1.667em);
    overflow: clip;
    font-size: var(--c--btn--font-size, clamp(1rem, 1.758vw, 1.125rem));
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    text-align: var(--c--btn--text-align, start);
    transition: var(--duration)
}

.c-btn {
    color: var(--color--use--above);
    background: var(--color--use--link);
    border-radius: var(--radius-oval)
}

.c-btn--s {
    --c--arrow--width: 0.923em;
    --c--btn--font-size: 0.813rem;
    --c--btn--gap: 0.5em;
    --c--btn--padding-block: calc(0.538em + var(--leading-trim));
    --c--btn--padding-inline: 0.769em;
    --c--btn--min-width: auto
}

.c-btn:has([class*=circle]) {
    --c--arrow--fill: var(--color--use--link-hover);
    --c--btn--padding-inline: 1.667em 0.833em
}

a:hover .c-btn:has([class*=circle]) {
    --c--arrow--fill: var(--color--use--link-hover)
}

.c-btn-sideline {
    --c--btn--font-size: 1rem;
    --c--btn--gap: 0.5em;
    --c--btn--padding-block: calc(1.125em + var(--leading-trim));
    --c--btn--padding-inline: 1.25em;
    --c--btn--min-width: auto;
    background: var(--color--base--white);
    border-inline-start: 3px solid var(--color--theme--primary);
    border-radius: var(--radius-xs);
    box-shadow: var(--box-shadow)
}

.c-table {
    border-block-start: 1px solid var(--color--use--border)
}

:where(.c-table>tbody>tr) {
    border-block-end: 1px solid var(--color--use--border)
}

:where(.c-table>tbody>tr)>:where(td, th) {
    padding-block: calc(var(--margin-m) + var(--leading-trim));
    padding-inline: var(--margin-m)
}

:where(.c-table>tbody>tr)>:where(td, th):where(:first-child) {
    font-weight: var(--font-weight-medium);
    background-color: var(--color--use--bg)
}

.c-table-keep {
    overflow-x: auto
}

.c-table-keep :is(th, td) {
    white-space: nowrap
}

.c-box {
    padding: var(--c--box-padding, var(--margin-m));
    background: var(--c--box-color, var(--color--use--bg))
}

.c-box--primary {
    --c--box-color: var(--color--theme--primary)
}

.c-box--white {
    --c--box-color: var(--color--base--white)
}

.c-box--2xs {
    padding: var(--margin-2xs)
}

.c-box--xs {
    padding: var(--margin-xs)
}

.c-box--s {
    padding: var(--margin-s)
}

.c-box--l {
    padding: var(--margin-l)
}

.c-box--xl {
    padding: var(--chg--margin-xl)
}

.c-box--2xl {
    padding: var(--chg--margin-2xl)
}

.c-box-radius-xs {
    overflow: clip;
    border-radius: var(--radius-xs)
}

.c-box-radius-s {
    overflow: clip;
    border-radius: var(--radius-s)
}

.c-box-radius {
    overflow: clip;
    border-radius: var(--radius)
}

.c-box-radius-l {
    overflow: clip;
    border-radius: var(--radius-l)
}

.c-check-list:not([class*=c-check-list--]) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .625em
}

.c-check-list--half {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(390px, 100%), 1fr));
    gap: .625em
}

.c-check-list--full {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .625em
}

.c-check-list>li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .625em;
    padding-block: calc(.625em + var(--leading-trim));
    padding-inline: 1.25em;
    font-weight: var(--font-weight-medium);
    background-color: var(--color--base--white);
    border-radius: var(--radius-xs)
}

.c-check-list>li::before {
    width: 1em;
    aspect-ratio: 1/1;
    margin-block-start: calc((1lh - 1em)/2);
    content: "";
    background-color: var(--color--accent--green);
    mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M16 1.57L14.83.5l-2.57 2.85c-1.3-1.16-3.04-1.88-4.95-1.88C3.27 1.47 0 4.62 0 8.49s3.27 7.01 7.3 7.01 7.3-3.15 7.3-7.01c0-1.39-.43-2.67-1.15-3.76L16 1.58zm-2.45 6.91c0 3.32-2.81 6.01-6.25 6.01s-6.26-2.69-6.26-6S3.85 2.47 7.3 2.47c1.65 0 3.15.62 4.27 1.63L7.06 9.09 3.71 5.87 2.59 8.02l3.47 3.74.81.97.84-.94 5.04-6.22c.5.86.79 1.86.79 2.92z"/></svg>')
}

.c-column__flex-4,
.c-column__flex-3,
.c-column__flex {
    --column-gap-row: var(--c--column--gap-row, var(--c--column--gap, var(--margin-m)));
    --column-gap-col: var(--c--column--gap-col, var(--c--column--gap, var(--margin-m)));
    display: flex;
    flex-wrap: wrap;
    gap: var(--column-gap-row) var(--column-gap-col)
}

.c-column__flex-4>*:not(svg),
.c-column__flex-3>*:not(svg),
.c-column__flex>*:not(svg) {
    --column-width: calc((100% - var(--column-gap-col) * (var(--c--column--num, 2) - 1)) / var(--c--column--num, 2));
    width: var(--column-width)
}

@container c-column (max-width: 640px) {

    .c-column__flex-4>*:not(svg),
    .c-column__flex-3>*:not(svg),
    .c-column__flex>*:not(svg) {
        flex: 100%
    }
}

.c-column__grid-4,
.c-column__grid-3,
.c-column__grid {
    --column-gap-row: var(--c--column--gap-row, var(--c--column--gap, var(--margin-m)));
    --column-gap-col: var(--c--column--gap-col, var(--c--column--gap, var(--margin-m)));
    display: grid;
    gap: var(--column-gap-row) var(--column-gap-col)
}

@container c-column (min-width: 641px) {

    .c-column__grid-4,
    .c-column__grid-3,
    .c-column__grid {
        grid-template-columns: repeat(var(--c--column--num, 2), 1fr)
    }
}

.c-column {
    container-type: inline-size;
    container-name: c-column
}

.c-column--gap-2xs {
    --c--column--gap: var(--margin-2xs)
}

.c-column--gap-xs {
    --c--column--gap: var(--margin-xs)
}

.c-column--gap-s {
    --c--column--gap: var(--margin-s)
}

.c-column--gap-m {
    --c--column--gap: var(--margin-m)
}

.c-column__flex:has(>:nth-child(2n+1):last-child) {
    justify-content: center
}

.c-column__flex-3:has(>:nth-child(3n+2):last-child) {
    justify-content: center
}

.c-column__flex-3>* {
    --c--column--num: 3
}

@container c-column (max-width: 900px) {
    .c-column__flex-3>* {
        --c--column--num: 2
    }
}

@container c-column (max-width: 1024px) {

    [class*=c-box]>.c-column__flex-3>*,
    .c-column__flex-3[class*=c-box]>* {
        --c--column--num: 2
    }
}

.c-column__flex-4:has(>:nth-child(4n+3):last-child) {
    justify-content: center
}

.c-column__flex-4>* {
    --c--column--num: 4
}

@container c-column (max-width: 1024px) {
    .c-column__flex-4>* {
        --c--column--num: 2
    }
}

.c-column__flex--fill>* {
    flex: 1 1 var(--column-width)
}

.c-column__grid-3 {
    --c--column--num: 3
}

@container c-column (max-width: 1024px) {
    .c-column__grid-3 {
        --c--column--num: 2
    }
}

@container c-column (max-width: 1024px) {

    [class*=c-box]>.c-column__grid-3,
    .c-column__grid-3[class*=c-box] {
        --c--column--num: 2
    }
}

.c-column__grid-4 {
    --c--column--num: 4
}

@container c-column (max-width: 1024px) {
    .c-column__grid-4 {
        --c--column--num: 2
    }
}

.c-media-object {
    container-type: inline-size;
    container-name: c-media-object
}

.c-media-object--270 {
    --c--media--image--width-fluid: min(44.444cqw, 270px);
    --c--media--image--width-px: 270px
}

.c-media-object--300 {
    --c--media--image--width-fluid: min(44.444cqw, 300px);
    --c--media--image--width-px: 300px
}

.c-media-object--350 {
    --c--media--image--width-fluid: min(44.444cqw, 350px);
    --c--media--image--width-px: 350px
}

.c-media-object--360 {
    --c--media--image--width-fluid: min(44.444cqw, 360px);
    --c--media--image--width-px: 360px
}

.c-media-object--420 {
    --c--media--image--width-fluid: min(44.444cqw, 420px);
    --c--media--image--width-px: 420px
}

.c-media-object--900 {
    --c--media--image--width-fluid: min(44.444cqw, 900px);
    --c--media--image--width-px: 900px
}

.c-media-object--gap-s {
    --c--media--gap: 0 var(--margin-s)
}

.c-media-object--gap-m {
    --c--media--gap: 0 var(--margin-m)
}

.c-media-object--gap-l {
    --c--media--gap: 0 var(--margin-l)
}

.c-media-object--gap-xl {
    --c--media--gap: 0 var(--chg--margin-xl)
}

.c-media-object--gap-2xl {
    --c--media--gap: 0 var(--chg--margin-2xl)
}

@container c-media-object (max-width: 680px) {
    .c-media-object>:where([class*=u-width-side]) {
        padding-inline: var(--margin--use--outside)
    }
}

.c-media-object__box {
    display: flex;
    flex-direction: column;
    gap: var(--c--media--gap, 0 var(--chg--margin-xl))
}

.c-media-object__box:where([class*=u-width-side]) {
    --c--media--gap: 0 var(--chg--margin-2xl)
}

@container c-media-object (min-width: 681px) {
    .c-media-object__box {
        flex-direction: row
    }

    .c-media-object__box--reverse {
        flex-direction: row-reverse
    }
}

.c-media-object__content {
    display: contents
}

@container c-media-object (min-width: 681px) {
    .c-media-object__content {
        display: block;
        flex: 1
    }
}

.c-media-object__text {
    order: 3;
    margin-block-start: var(--margin-m)
}

@container c-media-object (min-width: 681px) {
    .c-media-object__text {
        margin: 0
    }
}

.c-media-object__image {
    position: relative;
    z-index: 1;
    margin-inline: auto
}

@container c-media-object (min-width: 681px) {
    :where(:not([class*=u-width-side])) .c-media-object__image {
        width: min(var(--c--media--image--width-fluid, min(44.444cqw, 420px)), var(--c--media--image--width-px, 420px))
    }

    :where([class*=u-width-side]) .c-media-object__image {
        width: var(--c--media--image--width-fluid, min(41.667vw, 800px))
    }

    :where([class*=u-width-side]) .c-media-object__image>img {
        width: 100%
    }
}

@container c-media-object (max-width: 680px) {
    :where([class*=u-width-side-left]) .c-media-object__image {
        margin-inline-start: calc(var(--margin--use--outside)*-1)
    }

    :where([class*=u-width-side-right]) .c-media-object__image {
        margin-inline-end: calc(var(--margin--use--outside)*-1)
    }
}

.c-tab-nav__button {
    display: inline-block;
    padding-block: .5em;
    padding-inline: 1em;
    color: var(--color--base);
    background-color: var(--color--use--bg);
    transition: revert
}

.c-tab-nav__button[aria-selected=true] {
    padding-block: .7em
}

.c-tab-panel__container {
    background-color: var(--color--use--bg)
}

.c-tab-panel__container:not([hidden=until-found]) {
    padding: 1em
}

.c-term-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: center
}

.p-header {
    position: relative;
    z-index: 102;
    width: 100%
}

.home .l-header:not(.is-passing) .p-header-logo__img {
    filter: brightness(0) invert(1)
}

#gnav-check {
    display: none
}

.p-main-nav__item {
    display: grid
}

.p-main-nav__link {
    position: relative;
    display: flex;
    grid-area: link;
    align-items: center;
    padding: 1em 1.156em;
    font-size: clamp(.875rem, .833vw, 1rem);
    font-weight: var(--font-weight-medium);
    color: var(--color--base);
    text-decoration-line: underline;
    text-decoration-color: rgba(0, 0, 0, 0);
    text-underline-offset: .313em
}

.p-main-nav__link.is-current::before,
.p-main-nav__item:has(.p-mega .is-current) .p-main-nav__link::before {
    position: absolute;
    inset-block-start: 50%;
    width: .625em;
    height: .625em;
    content: "";
    background-color: var(--color--base--white);
    border: 3px solid var(--color--theme--primary);
    border-radius: var(--radius-oval);
    translate: 0 -50%
}

.p-mega-list {
    --mega-list--padding: 1em;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--margin-2xs)
}

.p-mega-list-link {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .625em;
    align-items: center;
    height: 100%;
    padding: 1.25em;
    padding-inline-end: .625em;
    overflow: clip;
    font-size: 1rem;
    line-height: 1.4;
    background-color: var(--color--theme--secondary);
    border-radius: var(--radius-xs)
}

.p-mega-list-link:hover {
    --c--arrow--fill: var(--color--theme--primary);
    --c--circle--bg-color: var(--color--base--white);
    background-color: rgba(0, 0, 0, 0)
}

.p-mega-list-link:hover>:not([class*=c-circle]) {
    filter: brightness(0) invert(1)
}

.p-mega-list-link::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: "";
    background: var(--color--accent--grad-blue-90)
}

.p-mega-list-link__icon {
    width: clamp(30px, 3.906vw, 40px);
    aspect-ratio: 1/1
}

.p-mega-list-link__main {
    margin-block: var(--leading-trim)
}

.p-mega-list-link__sub {
    margin-block: var(--leading-trim);
    margin-block-start: calc(.909em + var(--leading-trim));
    font-size: .688em;
    color: var(--color--theme--primary)
}

.p-mega-list-2nd {
    padding-block-end: var(--mega-list--padding);
    font-size: .875em
}

.p-mega-list-2nd__link {
    display: flex;
    gap: .5em;
    align-items: baseline;
    padding-block: calc(var(--mega-list--padding)/2);
    padding-inline: calc(var(--mega-list--padding)*1.5)
}

.p-mega-list-2nd__link::before {
    content: "-"
}

.p-mega-btn {
    --c--plusminus--color: var(--color--theme--primary);
    --c--plusminus--bg-color: var(--color--use--bg);
    --c--plusminus--size: 3em;
    --c--plusminus--border-color: transparent;
    --c--plusminus--ratio: auto;
    --c--plusminus--radius: 0;
    transition: var(--duration)
}

.p-sub-nav {
    display: grid;
    grid-template-columns: auto auto;
    gap: var(--margin-2xs);
    align-items: center;
    order: 3
}

.p-sub-nav__link {
    display: inline-flex;
    gap: .357em;
    align-items: center;
    justify-content: center;
    padding-block: calc(.5em + var(--leading-trim));
    padding-inline: 1.071em;
    font-size: clamp(.813rem, 1.367vw, .875rem);
    border-radius: var(--radius-oval);
    transition: var(--duration)
}

.p-sub-nav__link--access {
    --c--pin--fill: var(--color--theme--primary);
    background: var(--color--use--bg)
}

.p-sub-nav__link--access:hover {
    --c--pin--fill: var(--color--use--above);
    color: var(--color--use--above);
    background: var(--color--theme--primary)
}

.p-sub-nav__link--contact {
    font-weight: var(--font-weight-medium);
    color: var(--color--use--above);
    contain: content;
    background: linear-gradient(90deg, #56c1e0 30%, var(--color--theme--primary) 100%)
}

#overlay {
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    cursor: default;
    backdrop-filter: blur(1px);
    opacity: 0;
    transition: all var(--duration)
}

#gnav-check:checked~.p-header #overlay {
    z-index: 104;
    pointer-events: visible;
    background: var(--color--theme--primary);
    opacity: .8
}

.p-footer {
    display: flex;
    flex-direction: column;
    gap: var(--margin-m);
    justify-content: space-between
}

.p-footer-logo {
    filter: brightness(0) invert(1)
}

.p-footer__label {
    padding-block: calc(.5em + var(--leading-trim));
    padding-inline: .5em;
    font-size: .875rem;
    color: var(--color--use--above);
    border: 1px solid;
    border-radius: var(--radius-xs)
}

.p-footer__map {
    width: 100%;
    min-height: 400px;
    border-radius: var(--radius-s)
}

.p-footer__tel {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-s);
    align-items: center;
    color: var(--color--use--above)
}
.p-footer__line {
    display: block;
    width: 245px;
}
@media (min-width: 1025px) {
    .p-footer__line {
        margin-block: 30px 0;
        margin-left: -2px;
    }
}
@media (min-width: 641px) and (max-width: 1024px) {
    .p-footer__line {
        margin-block: clamp(1.25rem, 0.204rem + 2.611vw, 1.875rem) 0;
        margin-inline: -2px 0;
    }
}
@media (max-width: 640px) {
    .p-footer__line {
        margin-block: 20px;
    }
}

.p-footer__schedule {
    --schedule--font-size: clamp(0.813rem, 1.563vw, 1rem);
    --schedule-note--font-size: 0.875rem
}

.p-footer-nav {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(265px, 100%), 1fr));
    gap: 1.333em var(--margin-xl);
    padding-block-start: var(--margin-xl);
    font-size: .938rem
}

.p-footer-nav-list {
    display: grid;
    grid-auto-rows: min-content;
    gap: 1.333em
}

.p-footer-nav-list__item+.p-footer-nav-list__item {
    margin-block-start: .5em
}

.p-footer-nav-list__link {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 var(--margin-2xs);
    align-items: center;
    padding-block: .667em;
    font-weight: var(--font-weight-medium);
    color: var(--color--use--above);
    border-block-end: 1px solid
}

.p-footer-nav-list-2nd {
    margin-block-start: var(--margin-xs);
    margin-inline-start: var(--margin-xs)
}

.p-footer-nav-list-2nd>li {
    position: relative;
    margin-inline-start: .667em
}

.p-footer-nav-list-2nd>li::before {
    position: absolute;
    inset-inline-start: -0.667em;
    color: var(--color--use--above);
    content: "-"
}

.p-footer-nav-list-2nd__link {
    display: block;
    padding-block: calc(.5em + var(--leading-trim));
    font-size: .867em;
    color: var(--color--use--above);
    text-decoration-line: underline;
    text-decoration-color: rgba(0, 0, 0, 0);
    text-underline-offset: .313em
}

.p-side-box {
    margin-block-end: var(--margin-s)
}

.p-side-box__title {
    padding-block-end: .6em;
    margin-block-end: .6em;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    border-block-end: 1px solid var(--color--use--border)
}

.p-tel {
    display: block;
    font-size: var(--tel--font-size, var(--clamp--font-size-3xl));
    text-align: var(--tel--text-align, center)
}

.p-tel--start {
    --tel--text-align: start
}

.p-tel--s {
    --tel--font-size: var(--clamp--font-size-2xl)
}

.p-tel__main {
    display: flex;
    gap: .278em;
    align-items: center;
    justify-content: var(--tel--text-align, center);
    margin-block: var(--leading-trim-en);
    color: var(--tel--color, var(--color--theme--primary))
}

.p-tel__main--white {
    --tel--color: var(--color--use--above)
}

.p-tel__note {
    margin-block-start: calc(1.143em + var(--leading-trim));
    font-size: clamp(10px, .389em, 16px);
    font-weight: var(--font-weight-medium);
    line-height: 1.2
}
@media (min-width: 1025px) {
    .p-line {
        margin-block-start: 14px;
        margin-inline: clamp(0.625rem, 0.052rem + 0.894vw, 1.125rem) clamp(0.625rem, 0.052rem + 0.894vw, 1.125rem);
    }
}
@media (min-width: 641px) and (max-width: 1024px) {
    .p-line {
        width: clamp(11.5rem, 4.073rem + 18.538vw, 15.938rem);
        margin-block-start: clamp(0.5rem, -0.359rem + 1.341vw, 1.25rem);
        margin-inline: auto;
    }
}
@media (max-width: 640px) {
    .p-line {
        width: 228px;
        margin-block-start: 10px;
        margin-inline: auto;
    }
}

.p-accordion {
    background: var(--color--base--white);
    border-radius: var(--radius);
    box-shadow: var(--box-shadow)
}

.p-accordion+.p-accordion {
    margin-block-start: var(--margin-s)
}

.p-accordion__title {
    --c--plusminus--bg-color: var(--color--theme--primary);
    --c--plusminus--color: var(--color--use--above);
    display: flex;
    gap: var(--margin-s);
    align-items: center;
    justify-content: space-between;
    padding-block: var(--margin-s);
    padding-inline: var(--margin-l);
    cursor: pointer
}

.p-accordion__panel {
    padding-block: var(--margin-m);
    margin-inline: var(--margin-l);
    border-block-start: 2px solid var(--color--theme--primary)
}

.p-schedule {
    font-size: var(--schedule--font-size, clamp(0.75rem, 1.758vw, 1.125rem))
}

.p-schedule thead th {
    font-weight: var(--font-weight-medium)
}

.p-schedule tbody th {
    font-size: 1.111em
}

.p-schedule tr {
    border-block-end: 1px solid var(--color--use--border)
}

.p-schedule :is(th, td) {
    padding: var(--margin-2xs);
    line-height: 1.2;
    text-align: center;
    vertical-align: middle
}

.p-schedule td {
    position: relative;
    font-size: .778em;
    color: var(--color--theme--primary)
}

.p-schedule td:empty::before {
    margin: auto;
    content: "－"
}

.p-schedule__label {
    padding-block: calc(.313em + var(--leading-trim));
    font-size: .889em;
    font-weight: var(--font-weight-medium);
    color: var(--color--theme--primary);
    border: 1px solid;
    border-radius: var(--radius-oval)
}

.p-schedule-note {
    font-size: var(--schedule-note--font-size, 1rem);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height)
}

.p-insta-feed__container {
    display: flex;
    gap: min(10.254vw, 105px)
}

.p-insta-feed__label {
    position: relative;
    display: grid;
    grid-template-columns: auto auto;
    gap: .208em;
    align-items: center;
    justify-content: start;
    font-size: clamp(.875rem, 4.688vw, 3rem);
    color: var(--color--theme--primary);
    background: var(--color--accent--grad-blue-90);
    -webkit-background-clip: text;
    writing-mode: vertical-rl;
    -webkit-text-fill-color: rgba(0, 0, 0, 0)
}

.p-insta-feed__label::after {
    width: 1px;
    height: 3.125em;
    content: "";
    background: currentColor
}

.p-insta-feed__body {
    flex: 1
}

.p-insta-feed-link {
    display: inline-flex;
    gap: .556em;
    align-items: center;
    justify-content: center;
    padding: 1em 1.667em;
    font-size: 1.125rem
}

.sbi_item:hover {
    background-color: var(--color--theme--primary)
}

.p-external-link-sns {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-xs) var(--margin-l);
    align-items: center;
    justify-content: center;
    padding: var(--margin-m);
    background-color: var(--color--use--bg);
    border-radius: var(--radius-s)
}

.p-external-link-sns__header {
    color: var(--color--base)
}

.p-external-link-sns__body {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-xs)
}

.p-external-link-sns__link {
    display: grid;
    place-content: center;
    place-items: center;
    padding: var(--margin-xs);
    background-color: var(--color--base--white);
    border-radius: var(--radius-oval)
}

.p-external-link-sns__link>img {
    transition: var(--duration)
}

.p-external-link-bnr__link {
    display: block;
    overflow: clip;
    border-radius: var(--radius-s);
    box-shadow: var(--box-shadow)
}

.p-fixed-nav {
    position: fixed;
    z-index: 101;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    padding-block: min(1.465vw, 15px) var(--margin-2xs);
    padding-inline: var(--margin-2xs);
    background-color: var(--color--use--bg);
    border-radius: var(--radius-s) 0 0 var(--radius-s);
    box-shadow: var(--box-shadow);
    transition: var(--duration)
}

.p-fixed-nav__header {
    font-size: .813rem;
    writing-mode: vertical-rl
}

.p-fixed-nav__body {
    display: flex;
    flex-direction: column;
    gap: 5px
}

.p-fixed-nav__link {
    display: grid;
    place-content: center;
    place-items: center;
    width: 30px;
    aspect-ratio: 1/1;
    padding: 5px;
    background-color: var(--color--base--white);
    border-radius: var(--radius-oval)
}

.p-fixed-nav__link>img {
    transition: var(--duration)
}

.p-page-nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-m);
    justify-content: center;
    overflow: clip
}

.p-page-nav-list__item {
    position: relative
}

.p-page-nav-list__item::after {
    position: absolute;
    inset-block-end: 0;
    inset-inline-start: 50%;
    z-index: -1;
    width: 100vw;
    height: 1px;
    content: "";
    background-color: var(--color--use--border);
    translate: -50% 0
}

.p-page-nav-list__link {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .5em;
    align-items: center;
    padding-block: calc(1.25em + var(--leading-trim));
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    border-block-end: 1px solid rgba(0, 0, 0, 0)
}

.p-page-nav-list__link:hover,
.p-page-nav-list__link.is-current {
    border-block-end: 1px solid var(--color--theme--primary)
}

.p-page-nav-list__label {
    color: var(--color--base)
}

.p-page-nav-footer {
    overflow: clip;
    line-height: 1.75;
    border-radius: var(--radius)
}

.p-page-nav-footer__text {
    display: flex;
    flex-wrap: wrap;
    gap: 0 1.333em;
    align-items: center;
    padding-block: calc(min(7.324vw, 75px) + var(--leading-trim));
    padding-inline: min(5.859vw, 60px);
    font-size: var(--clamp--font-size-2xl)
}

.p-page-nav-footer__more {
    --c--arrow--width: 0.923em;
    flex: 0 0 auto;
    padding-block: calc(.538em + var(--leading-trim));
    padding-inline: .769em;
    font-size: .433em;
    color: var(--color--base--white);
    background: var(--color--accent--grad-blue-90);
    border-radius: var(--radius-oval)
}

.p-page-nav-footer-title {
    display: flex;
    flex-wrap: wrap;
    gap: 0 .667em;
    align-items: center
}

:any-link:hover .p-page-nav-footer-title__main {
    filter: brightness(0) invert(1)
}

.p-page-nav-footer-title__sub {
    font-size: .467em;
    color: var(--color--theme--primary);
    background: var(--color--accent--grad-blue-90);
    -webkit-background-clip: text;
    -webkit-text-fill-color: rgba(0, 0, 0, 0);
    translate: 0 .1em
}

:any-link:hover .p-page-nav-footer-title__sub {
    filter: brightness(0) invert(1)
}

#mainSlide {
    height: 100%
}

#mainSlide * {
    height: 100%
}

.p-home-fv {
    position: relative;
    height: calc(min(61.644vw, 900px) + clamp(100px, 11.719vw, 120px));
    min-height: calc(380px + clamp(100px, 11.719vw, 120px));
    margin-block-start: calc((var(--site-top-height) + var(--header-height))*-1);
    overflow: clip;
    background-color: #eee
}

.p-home-fv__bg {
    display: block;
    height: 100%
}

.p-home-fv__bg>img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

.p-home-fv__human {
    position: absolute;
    inset-block-end: clamp(100px, 11.719vw, 120px);
    inset-inline-start: calc(50% + clamp(80px, 6.164vw, 90px));
    width: calc(250px + clamp(0px, (100vw - 540px)*.485, 446px));
    translate: -50% 0
}

.p-home-fv__catch {
    position: absolute;
    inset-block-start: clamp(6.25rem, 13.699vw, 12.5rem);
    inset-inline-start: calc(50% - min(25vw, 480px));
    width: clamp(7.5rem, 22.26vw, 20.313rem);
    translate: -50% 0
}

.p-home-fv-content {
    display: grid;
    justify-content: space-between;
    padding-block: var(--margin-xl);
    margin-inline: auto;
    border-image-source: linear-gradient(to left, var(--color--use--bg), var(--color--use--bg));
    border-image-slice: 0 fill;
    border-image-outset: 0 100vw 0 100vw
}

.p-home-fv-content-info {
    position: relative;
    margin-block-start: calc((clamp(150px, 11.719vw, 290px) + var(--margin-xl))*-1);
    overflow: clip;
    font-weight: var(--font-weight-medium);
    background-color: var(--color--base--white);
    border-radius: var(--radius) 0 0 var(--radius)
}

.p-home-fv-content-info__container {
    display: flex;
    flex-wrap: wrap
}

.p-home-fv-content-info__box {
    display: grid;
    place-content: center;
    place-items: center;
    width: 50%;
    height: clamp(150px, 11.719vw, 290px);
    padding-block: max(20px, var(--margin-xs) + var(--leading-trim))
}

.p-home-fv-content-info__box:nth-child(1) {
    background: var(--color--accent--grad-blue-90)
}

.p-home-fv-content-info__box:nth-child(2) {
    background: var(--color--theme--secondary)
}

.p-home-fv-content-info__title {
    width: 100%;
    padding-block-end: calc(.625em + var(--leading-trim));
    margin-block-end: .938em;
    color: var(--color--use--above);
    text-align: center;
    border-block-end: 1px solid
}

.p-home-fv-content-info-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px
}

.p-home-fv-content-info-list__item {
    padding-block: calc(.625em + var(--leading-trim));
    padding-inline: .938em;
    font-size: clamp(.75rem, .833vw, 1rem);
    color: var(--color--theme--primary);
    text-align: center;
    background-color: var(--color--base--white);
    border-radius: var(--radius-s)
}

.p-home-fv-scroll {
    position: absolute;
    inset-block-end: clamp(30px, 6.849vw, 100px);
    inset-inline-end: clamp(100px, 11.719vw, 120px);
    font-size: .813rem;
    color: var(--color--use--above);
    writing-mode: vertical-rl
}

.p-home-fv-scroll__bar {
    position: relative;
    width: 1px;
    height: 150px;
    overflow: clip
}

.p-home-fv-scroll__bar>span {
    position: absolute;
    display: block;
    width: 1px;
    height: 100%;
    background-color: var(--color--use--above);
    animation: scroll-guide 4s linear infinite
}

.p-home-fv-scroll__bar>span:last-child {
    animation: scroll-guide 4s 2s linear infinite
}

.p-home-fv-scroll__bar>span::after {
    position: absolute;
    display: block;
    width: 1px;
    height: 20px;
    content: "";
    background-color: var(--color--theme--primary)
}

@keyframes scroll-guide {
    0% {
        translate: 0 -100%
    }

    to {
        translate: 0 100%
    }
}

.p-home-news__title {
    display: flex;
    gap: var(--margin-2xs);
    align-items: center;
    justify-content: space-between
}

.p-home-news-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 5px
}

.p-home-news-list__link {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-2xs) var(--margin-xs);
    align-items: center;
    padding-block: calc(1.25em + var(--leading-trim));
    padding-inline: 1.25em;
    background-color: var(--color--base--white);
    border-radius: var(--radius-s)
}

.p-home-news-list__label {
    padding-block: calc(.308em + var(--leading-trim));
    padding-inline: .385em;
    font-size: .813em;
    color: var(--color--theme--primary);
    border: 1px solid;
    border-radius: var(--radius-xs)
}

.p-home-blog {
    display: flex;
    flex-direction: column;
    gap: var(--margin-s);
    overflow-x: clip
}

.p-home-philosophy {
    position: relative;
    padding-block-end: var(--margin-3xl)
}

.p-home-philosophy::before {
    position: absolute;
    inset-block-end: 0;
    inset-inline-start: 0;
    z-index: -1;
    width: 100%;
    height: calc(100% - var(--margin-3xl));
    content: "";
    border-image-source: linear-gradient(to left, var(--color--use--bg), var(--color--use--bg));
    border-image-slice: 0 fill;
    border-image-outset: 0 100vw 0 100vw
}

.p-home-contents-main__box {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--margin-m);
    justify-items: center;
    padding: min(4.11vw, 60px);
    overflow: clip;
    color: var(--color--use--above);
    border-radius: var(--radius-s)
}

.p-home-contents-sub__header {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: min(1.465vw, 15px)
}

.p-home-contents-sub__icon {
    width: 60px;
    aspect-ratio: 1/1
}

.p-home-contents-sub__title {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: min(.977vw, 10px);
    align-items: center;
    justify-content: space-between;
    border-block-end: 1px dashed
}

.p-home-features-column__box {
    overflow: clip;
    border-radius: var(--radius-s)
}

.p-home-features-column__header {
    padding-block: var(--margin-xs);
    padding-inline: var(--margin-s);
    color: var(--color--use--above)
}

.p-home-features-column__body {
    padding: var(--margin-s);
    background-color: var(--color--theme--secondary)
}

.p-home-features-column__title {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: min(1.953vw, 20px);
    align-items: center;
    justify-content: space-between;
    padding-block-end: var(--margin-s);
    line-height: 1.667;
    border-block-end: 1px dashed var(--color--theme--primary)
}

.p-philosophy {
    position: relative;
    padding-block: min(8.789vw, 90px) var(--margin-3xl)
}

.p-philosophy::before {
    position: absolute;
    inset-block-end: 0;
    inset-inline-end: 0;
    z-index: -5;
    width: 64.5833333333%;
    height: 70.8860759494%;
    content: "";
    background-color: var(--color--use--bg);
    border-radius: var(--radius) 0 0 0;
    border-image-source: linear-gradient(to right, transparent 50px, var(--color--use--bg) 50px);
    border-image-slice: 0 fill;
    border-image-outset: 0 100vw 0 0
}

.p-philosophy__deco {
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 50%;
    z-index: -1;
    margin-block: var(--leading-trim-en);
    font-size: clamp(3rem, 16.438vw, 15rem);
    color: var(--color--theme--primary);
    white-space: nowrap;
    pointer-events: none;
    background: var(--color--accent--grad-blue-90);
    -webkit-background-clip: text;
    opacity: .15;
    translate: -50% 0;
    -webkit-text-fill-color: rgba(0, 0, 0, 0)
}

.p-philosophy-object {
    --c--media--image--width-fluid: min(46.875cqw, 900px)
}

.p-philosophy-object .c-media-object__image {
    z-index: -5
}

.p-greeting {
    position: relative;
}

.p-greeting__bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    max-height: clamp(700px, 87.891vw, 900px)
}

.p-greeting__deco {
    position: absolute;
    inset-block-start: var(--margin-2xl);
    inset-inline-start: 50%;
    z-index: -1;
    margin-block: var(--leading-trim-en);
    font-size: clamp(3rem, 16.438vw, 15rem);
    color: color-mix(in srgb, var(--color--use--above) 15%, transparent);
    white-space: nowrap;
    pointer-events: none;
    translate: -50% 0
}

.p-greeting-header__inner {
    position: relative;
    height: clamp(21.875rem, 9.659rem + 30.493vw, 46.25rem);
}
@media (max-width: 640px) {
    .p-greeting-header__inner {
        height: clamp(28.75rem, 12.500rem + 81.25vw, 45rem);
    }
}
.p-greeting-header__inner p {
    margin-left: calc(54vw / 19.2);
}
@media screen and (max-width: 640px) {
    .p-greeting-header__inner p {
        margin-top: -7.6rem;
        margin-left: unset;
    }
}
.p-greeting-header__chairman-name {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 0 1rem;
    font-family: var(--font-family-secondary);
}
@media (min-width: 641px) {
    .p-greeting-header__chairman-name {
        left: clamp(2.5rem, -3.451rem + 14.855vw, 14.375rem);
        bottom: clamp(0rem, -4.698rem + 9.728vw, 9.375rem);
    }
}
@media (max-width: 640px) {
    .p-greeting-header__chairman-name {
        left: clamp(2.25rem, -15.611rem + 89.028vw, 20rem);;
        bottom: 0;
    }
}

.p-greeting-header__chairman-name > div {
    font-size: 1rem;
}
.p-greeting-header__chairman-name > ruby {
    font-size: 2rem;
    ruby-align: center;
}

.p-greeting-header__chairman-name > ruby > rt {
    margin-bottom: 10px;
    font-size: 0.875rem;
}

.p-greeting-header__chairman-name > ruby > rt > span:first-of-type {
    display: inline-block;
    padding-right: 1rem;
}

.p-greeting-header__chairman-photo {
    position: absolute;
    top: clamp(1.875rem, 0.622rem + 3.127vw, 4.375rem);
    right: 0;
    width: clamp(17.5rem, 7.477rem + 25.02vw, 37.5rem);
    z-index: -1;
}
@media screen and (max-width: 640px) {
    .p-greeting-header__chairman-photo {
        position: static;
        top: unset;
        right: unset;
        width: unset;
        margin-inline-start: calc(var(--margin--use--outside) * -1);
        margin-inline-end: calc(var(--margin--use--outside) * -1);
    }
}

.p-greeting-header__sentence {
    margin: 0 auto clamp(1.5rem, -0.881rem + 5.942vw, 6.25rem);
    border-top: solid 1px var(--color--base);
    padding-top: clamp(0.625rem, -0.503rem + 2.815vw, 2.875rem);
    font-size: 1rem;
}
@media screen and (max-width: 640px) {
    .p-greeting-header__sentence {
        margin: 0 auto clamp(1rem, 0.250rem + 3.75vw, 1.75rem);
    }
}

.p-greeting-header__career {
    padding: 60px 30px 50px;
    border-radius: 10px 10px 0 0;
    background: linear-gradient(to bottom right, var(--color--add--deepblue--1), var(--color--add--deepblue--2));
    color: var(--color--base--white);
}

@media screen and (max-width: 640px) {
    .p-greeting-header__career {
        padding: clamp(1.875rem, 0.000rem + 9.375vw, 3.75rem) clamp(0.938rem, 0.000rem + 4.688vw, 1.875rem) clamp(1.875rem, 0.625rem + 6.25vw, 3.125rem);
        border-radius: 0;
        margin-inline-start: calc(var(--margin--use--outside) * -1);
        margin-inline-end: calc(var(--margin--use--outside) * -1);
    }
}

.p-greeting-header__career_dt {
    font-size: 2rem;
    line-height: 1;
    text-indent: 1.5rem;
    font-family: var(--font-family-secondary);
    padding-bottom: 30px;
    border-bottom: solid 1px var(--color--base--white);
}

@media screen and (max-width: 640px) {
    .p-greeting-header__career_dt {
        text-indent: 0;
        padding-bottom: clamp(0.625rem, 0.000rem + 3.125vw, 1.25rem);
    }
}

.p-greeting-header__career_dd {
    font-size: 1rem;
    margin: 18px 28px 100px;
}

@media screen and (max-width: 640px) {
    .p-greeting-header__career_dd {
        margin: clamp(0.625rem, 0.125rem + 2.5vw, 1.125rem) 0 60px;
    }
    .p-greeting-header__career_dd > br {
        display: none;
    }
}
.p-greeting-header__career_dd.mb-0 {
    margin-bottom: 0;
}

.p-greeting-header__career_year {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px 0;
}

@media screen and (max-width: 640px) {
    .p-greeting-header__career_year {
        display: block;
        flex-wrap: unset;
    }
}

.p-greeting-header__career_year > dt {
    width: 8rem;
}

.p-greeting-label {
    display: block;
    width: 7.25rem;
    font-size: 1rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    color: var(--color--add--deepblue--3);
    text-align: center;
    background-color: var(--color--base--white);
    border-radius: var(--radius-oval);
}

@media screen and (max-width: 640px) {
    .p-greeting-label {
        margin-bottom: 2px;
    }
}

.p-greeting-header__career_year > dd {
    font-size: 1rem;
    line-height: 1.7rem;
    width: calc(100% - 8rem);
}

@media screen and (max-width: 640px) {
    .p-greeting-header__career_year > dd {
        width: 100%;
        margin-bottom: 12px;
    }
}

.p-greeting-body {
    --color--use--link: var(--color--use--above);
    --color--use--link-hover: color-mix(in srgb, var(--color--use--above), transparent 30%);
    position: relative;
    padding-block: var(--margin-s) var(--margin-xl);
    color: var(--color--use--above);
}
@media screen and (max-width: 640px) {
    .p-greeting-body {
        margin-inline-start: calc(var(--margin--use--outside) * -1);
        margin-inline-end: calc(var(--margin--use--outside) * -1);
    }
}
.p-greeting-body__bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    width: 100%;
    /*width: calc(100vw - var(--margin--use--outside));*/
    max-width: revert;
    height: 100%;
    object-fit: cover;
}

.p-greeting-box {
    overflow: clip;
    background-color: color-mix(in srgb, var(--color--theme--primary-dull), transparent 40%);
    border-radius: var(--radius)
}

.p-greeting-box__label {
    display: flex;
    gap: .563em;
    align-items: center;
    width: fit-content;
    padding-block: calc(.5em + var(--leading-trim));
    padding-inline: .938em;
    font-weight: var(--font-weight-medium);
    color: var(--color--theme--primary);
    background-color: var(--color--base--white);
    border-end-end-radius: var(--radius-s)
}

.p-greeting-box__body {
    padding: var(--margin-s);
    font-size: .875rem
}

.p-greeting-box__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0 2em
}

.p-staff {
    position: relative
}

.p-staff::before {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 0;
    z-index: -1;
    width: 64.5833333333%;
    height: 78.2945736434%;
    content: "";
    background-color: var(--color--theme--secondary);
    border-radius: var(--radius) 0 0 var(--radius);
    border-image-source: linear-gradient(to left, transparent 50px, var(--color--theme--secondary) 50px);
    border-image-slice: 0 fill;
    border-image-outset: 0 0 0 100vw;
    translate: 0 -50%
}

.p-staff-object>*+* {
    margin-block-start: var(--margin-3xl)
}

.p-staff-name {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--margin-xs);
    align-items: baseline;
    margin-block: var(--leading-trim);
    font-size: var(--clamp--font-size-2xl)
}

*+.p-staff-name {
    margin-block-start: calc(var(--margin-s) + var(--leading-trim))
}

.p-staff-name:has(+*) {
    margin-block-end: calc(var(--margin-xl) + var(--leading-trim))
}

.p-staff-name__roman {
    font-size: .667em;
    color: var(--color--theme--primary);
    background: var(--color--accent--grad-blue-90);
    -webkit-background-clip: text;
    -webkit-text-fill-color: rgba(0, 0, 0, 0)
}

#gallerySplide .splide__track {
    overflow: revert
}

#gallerySplide .splide__slide {
    --c--trim--ratio: 400 / 600;
    width: min(400px, 100%)
}

.p-gallery-slide {
    overflow: clip;
    border-radius: var(--radius-s)
}

.p-gallery-slide__caption {
    position: absolute;
    inset-block-end: 0;
    inset-inline: 0;
    z-index: 1;
    padding-block: calc(.571em + var(--leading-trim));
    padding-inline: .571em;
    font-size: .875rem;
    line-height: 1.2;
    color: var(--color--use--above);
    text-align: center
}

.p-gallery-slide__caption::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    margin: auto;
    content: "";
    background: var(--color--accent--grad-blue-90);
    opacity: .9
}

.p-features-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--margin-m) var(--margin-3xl)
}

.p-features-title {
    position: relative;
    font-size: var(--clamp--font-size-6xl);
    line-height: 1.4
}

.p-features-title__en {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 0;
    z-index: -1;
    font-size: clamp(3rem, 23.438vw, 15rem);
    color: var(--color--theme--secondary);
    white-space: nowrap;
    pointer-events: none;
    translate: calc(min(16.602vw, 170px)*-1) -44%
}

.p-features-title__ja {
    position: relative;
    margin-block: var(--leading-trim);
    line-height: 1.2
}

.p-features-title__ja>.font-tertiary {
    display: inline-block;
    font-size: 2em;
    color: var(--color--theme--primary);
    background: var(--color--accent--grad-blue-90);
    -webkit-background-clip: text;
    transform: skewX(-15deg);
    -webkit-text-fill-color: rgba(0, 0, 0, 0)
}

.p-features-nav {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(clamp(180px, 37.109vw, 380px), 1fr));
    gap: 5px;
    height: fit-content
}

.p-features-nav-link {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    gap: min(2.441vw, 25px);
    justify-items: center;
    padding-block-end: min(2.441vw, 25px);
    padding-inline: min(2.441vw, 25px);
    overflow: clip;
    font-weight: var(--font-weight-medium);
    line-height: 1.75;
    background-color: var(--color--base--white);
    border-radius: var(--radius-s);
    box-shadow: var(--box-shadow)
}

.p-features-nav-link__header {
    width: calc(100% + min(2.441vw, 25px)*2);
    padding: var(--margin-2xs);
    color: var(--color--use--above);
    text-align: center;
    background: var(--color--accent--grad-blue-90)
}

.p-features-content {
    position: relative;
    padding-block: min(7.534vw, 110px);
    padding-inline-end: min(7.534vw, 110px);
    margin-block-start: var(--margin-3xl)
}

.p-features-content::before,
.p-features-content::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    clip-path: inset(0 0 0 -100vw round 0 var(--radius-3xl) var(--radius-3xl) 0);
    content: "";
    border-image-slice: 0 fill
}

.p-features-content::before {
    border-image-source: linear-gradient(to left, var(--color--theme--primary), var(--color--theme--primary));
    border-image-outset: 0 0 0 100vw
}

.p-features-content::after {
    border-image-source: var(--color--accent--grad-blue-90)
}

.p-features-content-box {
    display: flow-root;
    padding: var(--chg--margin-xl);
    color: var(--color--use--above);
    background-color: color-mix(in srgb, var(--color--base--white) 20%, transparent);
    border-radius: var(--radius)
}

.p-features-content-box+.p-features-content-box {
    margin-block-start: var(--margin-3xl)
}

.p-features-content-box__image {
    width: 100%;
    margin-block-start: calc(min(7.534vw, 110px)*-1);
    margin-block-end: var(--margin-m);
    text-align: center
}

.p-contents-box {
    position: relative
}

.p-contents-box::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: "";
    background: var(--color--accent--grad-blue-90);
    background-clip: border-box;
    background-origin: border-box;
    border: 1px solid rgba(0, 0, 0, 0);
    border-radius: var(--radius);
    mask-composite: exclude;
    mask-clip: padding-box, border-box;
    mask-image: linear-gradient(var(--color--base) 0 0), linear-gradient(var(--color--base) 0 0)
}

.p-contents-box+.p-contents-box {
    margin-block-start: var(--margin-xl)
}

.p-contents-box>.title-2 {
    border-bottom-right-radius: revert;
    border-bottom-left-radius: revert
}

.p-contents-box__body {
    padding: var(--chg--margin-xl);
    padding-block-start: revert
}

.p-contents-nav {
    padding: var(--margin-m)
}

.p-contents-nav-list {
    display: grid;
    gap: 5px
}

.p-contents-nav-list__link {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 5px;
    align-items: center;
    padding-block: calc(.5em + var(--leading-trim));
    padding-inline: .625em;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    color: var(--color--use--above);
    background-color: color-mix(in srgb, var(--color--base--white) 20%, transparent);
    border-radius: var(--radius-xs)
}

.p-contents-nav-list__link.is-current {
    --c--circle--bg-color: var(--color--accent--grad-blue-90);
    --c--arrow--fill: var(--color--use--above);
    color: var(--color--base);
    background-color: var(--color--base--white)
}

.p-contents-image-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(clamp(255px, 34.18vw, 350px), 1fr));
    gap: min(1.465vw, 15px);
    counter-reset: image_list_num
}

.p-contents-image-list__item {
    display: grid;
    grid-template-columns: 1fr auto;
    overflow: clip;
    counter-increment: image_list_num;
    background: var(--color--accent--grad-blue-90);
    border-radius: var(--radius-s)
}

.p-contents-image-list__text {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    padding-block: calc(1.167em + var(--leading-trim));
    padding-inline: 1.333em;
    font-size: var(--clamp--font-size-2xl);
    color: var(--color--use--above)
}

.p-contents-image-list__text::before {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: .125em;
    z-index: -1;
    font-family: var(--font-family-tertiary);
    font-size: 2.667em;
    font-style: italic;
    font-weight: var(--font-weight-regular);
    color: color-mix(in srgb, var(--color--use--above) 10%, transparent);
    letter-spacing: 0;
    content: counter(image_list_num, decimal-leading-zero);
    translate: 0 -50%
}

.p-contents-image-list__image {
    width: clamp(100px, 13.672vw, 140px);
    height: 100%;
    aspect-ratio: 140/100
}

.p-contents-table {
    overflow: clip;
    border-radius: var(--radius-s);
    box-shadow: 0 0 0 1px var(--color--use--border)
}

.p-contents-table tbody {
    font-size: 1.125rem;
    font-weight: var(--font-weight-medium)
}

.p-contents-table tbody>tr:not(:first-child) {
    border-block-start: 1px solid var(--color--use--border)
}

.p-contents-table tbody>tr>:is(th, td) {
    padding-block: calc(var(--margin-xs) + var(--leading-trim));
    padding-inline: var(--margin-s);
    vertical-align: middle
}

.p-contents-table tbody>tr>th {
    padding-inline: var(--margin-xs);
    text-align: center;
    background-color: var(--color--use--bg)
}

.p-contents-extra {
    padding: var(--margin-xl);
    overflow: clip;
    color: var(--color--use--above);
    background-color: var(--color--use--bg);
    border-radius: var(--radius-s)
}

.p-contents-extra-object {
    --c--media--image--width-fluid: min(44.444cqw, 200px);
    --c--media--image--width-px: 200px
}

.p-contents-extra-object .c-media-object__content {
    padding-inline-end: var(--margin-xl)
}

.p-contents-extra-object .c-media-object__text {
    position: relative;
    z-index: -1;
    text-shadow: 0 0 3em var(--color--base), 0 0 5em var(--color--base);
    filter: brightness(10)
}

.p-contents-extra-title {
    position: relative;
    margin-block-end: var(--margin-m);
    font-size: var(--clamp--font-size-2xl)
}

.p-contents-extra-title__bg {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: -0.857em;
    z-index: -1;
    font-size: clamp(3.75rem, 13.672vw, 8.75rem);
    color: color-mix(in srgb, var(--color--use--above) 10%, transparent);
    white-space: nowrap;
    content: "";
    translate: 0 -50%
}

.p-contents-extra-links {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--margin-2xs)
}

*+.p-contents-extra-links {
    margin-block-start: var(--margin-m)
}

.p-contents-extra-links__link {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0 var(--margin-2xs);
    align-items: center;
    padding-block: calc(var(--margin-s) + var(--leading-trim));
    padding-inline: var(--margin-s);
    font-size: 1.125rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    background-color: var(--color--base--white);
    border-radius: var(--radius-xs);
    box-shadow: var(--box-shadow)
}

.p-faq__panel::before,
.p-faq__title::before {
    align-self: start;
    font-family: var(--font-family-tertiary);
    font-size: var(--clamp--font-size-3xl);
    font-weight: var(--font-weight-bold);
    line-height: 1;
    color: var(--color--theme--primary);
    letter-spacing: 0;
    background: var(--color--accent--grad-blue-90);
    -webkit-background-clip: text;
    -webkit-text-fill-color: rgba(0, 0, 0, 0)
}

.p-faq__box {
    overflow: clip;
    background-color: var(--color--theme--secondary);
    border-radius: var(--radius)
}

.p-faq__box+.p-faq__box {
    margin-block-start: var(--margin-m)
}

.p-faq__title {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: var(--margin-xs);
    align-items: center;
    padding-block: calc(var(--margin-m) + var(--leading-trim));
    padding-inline: var(--margin-m);
    font-size: var(--clamp--font-size-l);
    font-weight: var(--font-weight-medium)
}

.p-faq__title::before {
    margin-block-start: calc((1lh - 1cap)/2);
    content: "Q"
}

.p-faq__icon {
    --c--plusminus--size: 100%;
    --c--plusminus--bg-color: var(--color--accent--grad-blue-90);
    --c--plusminus--color: var(--color--use--above)
}

.p-faq__panel {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: var(--margin-xs);
    padding-block: var(--margin-s) var(--margin-m);
    margin-inline: var(--margin-m);
    border-block-start: 1px dashed var(--color--theme--primary)
}

.p-faq__panel::before {
    margin-block-start: -0.222em;
    content: "A"
}

.p-form-table__head {
    display: flex;
    gap: 0 1em;
    align-items: baseline;
    justify-content: space-between
}

.p-form-table__head::after {
    flex: 0 0 auto;
    padding-block: .182em;
    padding-inline: .818em;
    font-size: .688rem;
    line-height: 1.5em;
    letter-spacing: 0;
    background: var(--color--base--pale);
    border-radius: var(--radius-xs)
}

.p-form-table__head.req::after {
    color: var(--color--use--above);
    content: "必須";
    background: var(--color--theme--primary)
}

.p-form-submit {
    display: flex;
    flex-direction: column;
    gap: var(--margin-s);
    align-items: center;
    justify-content: center
}

.p-form-flex {
    display: flex;
    flex-wrap: wrap;
    gap: .5em 1em;
    align-items: center
}

.p-agree {
    width: min(900px, 100%);
    padding: var(--margin-m);
    margin: var(--margin-xl) auto;
    background: var(--color--theme--secondary);
    border-radius: var(--radius-s)
}

.p-agree__container {
    text-align: center
}

.p-agree__container+.p-agree__container {
    margin-block-start: var(--margin-m)
}

.p-agree__title {
    margin-block-end: .75em;
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
    color: var(--color--theme--primary)
}

.p-agree__check {
    margin-block-start: 1em;
    text-align: center
}

.p-agree__check label {
    padding: .4em 1em;
    background: var(--color--base--white);
    border-radius: var(--radius-s)
}

.p-rei {
    margin-block-end: .5em;
    font-size: .813rem;
    opacity: .6
}

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

.wpcf7-list-item+.wpcf7-list-item {
    margin-block-start: .4em
}

.wpcf7-not-valid-tip {
    padding: 0 .5em;
    color: var(--color--use--above);
    background: var(--color--accent--red);
    border-radius: var(--radius-s);
    transition: var(--duration)
}

.wpcf7-response-output {
    border-radius: var(--radius)
}

.p-blog-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(50% - var(--margin-s), 20em), 1fr));
    gap: var(--margin-m)
}

.p-blog-list__link {
    display: block;
    font-size: clamp(.875rem, 1.563vw, 1rem)
}

.p-blog-list__thumb {
    --trim-ratio: 4 / 3;
    margin-block-end: 1em
}

.p-blog-list__title {
    margin-block-start: .5em;
    line-height: 1.5
}

#blogSplide {
    width: 100%
}

#blogSplide .splide__slide {
    width: min(80vw, 360px)
}

#blogSplide .splide__arrows {
    --c--circle--width: clamp(1.875rem, 6.098vw, 3.125rem);
    --color--use--link: var(--color--theme--primary);
    position: absolute;
    inset-block-start: 35%;
    inset-inline: calc(var(--c--circle--width)/-2);
    display: flex;
    gap: var(--margin-xs);
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
    translate: 0 -50%
}

#blogSplide .splide__arrows>* {
    pointer-events: auto
}

.p-post-slide__bg {
    object-fit: cover;
    position: absolute;
    inset-block-end: 0;
    width: 100%;
    height: min(46.875vw, 480px)
}

.p-post-tags {
    padding: 0 1em;
    font-size: var(--post-tags--fs, 0.813em);
    background: var(--color--use--above);
    border: 1px solid var(--color--use--border);
    border-radius: var(--radius-oval)
}

.p-post-content .p-post-tags {
    --post-tags--fs: 1em
}

.p-post-list.-card:is(ul) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 23.75em), 1fr));
    gap: var(--margin-l)
}

.p-post-list.-card .p-post-list__item {
    position: relative
}

.p-post-list.-card .p-post-list__link {
    display: block;
    height: 100%;
    overflow: clip
}

.p-post-list.-card .p-post-list-thumb {
    --c--trim--ratio: 360 / 270
}

ul .p-post-list.-card .p-post-list-thumb {
    --c--trim--ratio: 380 / 400
}

.p-post-list.-card .p-post-list-footer {
    padding-block: calc(var(--margin-xs) + 5px + var(--leading-trim));
    font-size: .875rem;
    font-weight: var(--font-weight-medium);
    background-color: var(--color--base--white)
}

.p-post-list.-card .p-post-list__info {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-xs);
    align-items: center;
    font-size: .813rem
}

.p-post-list.-card .p-post-list__date {
    font-size: .938rem
}

.p-post-list.-stack {
    display: grid;
    gap: var(--margin-xs)
}

.p-post-list.-stack .p-post-list__item {
    border-block-end: 1px solid var(--color--use--border)
}

.p-post-list.-stack .p-post-list__item:first-child {
    border-block-start: 1px solid var(--color--use--border)
}

.p-post-list.-stack .p-post-list__link {
    display: flex;
    gap: var(--margin-s);
    align-items: start;
    padding-block: var(--margin-m);
    font-size: clamp(1rem, 1.758vw, 1.125rem);
    font-weight: var(--font-weight-medium)
}

.p-post-list.-stack .p-post-list-thumb {
    --c--trim--ratio: 160 / 120;
    width: min(15.625vw, 160px);
    min-width: 80px;
    border-radius: var(--radius-s)
}

.p-post-list.-stack .p-post-list-footer {
    flex: 1
}

.p-post-list.-stack .p-post-list__info {
    display: flex;
    flex-wrap: wrap;
    gap: .5em .778em;
    align-items: center
}

.p-post-list.-stack .p-post-list__date {
    margin-block: var(--leading-trim-en)
}

.p-post-list.-stack .p-post-list__term {
    font-size: .778em
}

.p-post-list.-stack .p-post-list__icon {
    align-self: center
}

.p-post-single__title {
    margin-block-start: var(--leading-trim);
    margin-block-end: var(--margin-xl);
    font-size: var(--clamp--font-size-2xl);
    line-height: 2;
    text-decoration: dashed underline;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--color--theme--primary);
    text-underline-offset: .333em;
    text-decoration-skip-ink: none
}

.p-post-single__info {
    display: flex;
    flex-wrap: wrap;
    gap: .5em 1em;
    align-items: center;
    margin-block-end: var(--margin-m)
}

.p-post-single__date {
    font-size: var(--clamp--font-size-xl)
}

.p-post-single__cat {
    font-size: .938rem
}

.p-post-nav {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: .875rem
}

.p-post-nav__link {
    display: block;
    padding: .714em;
    font-size: .875rem;
    font-weight: var(--font-weight-medium);
    background-color: var(--color--base--white);
    border-radius: var(--radius-xs)
}

.p-post-content {
    --post-content-mg: 1.714em;
    position: relative;
    word-wrap: break-word
}

.p-post-content a:not(.wp-block-button__link, .p-post-tags) {
    text-decoration: underline
}

.p-post-content a:not(.no-icon)[href$=".pdf"]::before {
    padding: .2em .5em;
    margin-inline-end: .75em;
    font-size: .5em;
    color: var(--color--use--above);
    letter-spacing: 0;
    vertical-align: middle;
    content: "PDF";
    background: var(--color--use--link);
    border-radius: var(--radius-s)
}

.p-archive-accordion {
    font-size: .938rem;
    font-weight: var(--font-weight-medium);
    background-color: var(--color--base--white);
    border-radius: var(--radius-xs)
}

.p-archive-accordion+.p-archive-accordion {
    margin-block-start: 5px
}

.p-archive-accordion__title {
    display: flex;
    gap: .667em;
    align-items: center;
    justify-content: space-between;
    padding-block: calc(.667em + var(--leading-trim));
    padding-inline: .667em
}

.p-archive-accordion__title::after {
    width: .4em;
    aspect-ratio: 1/1;
    content: "";
    border-block-end: .067em solid;
    border-inline-end: .067em solid;
    transition: rotate var(--duration);
    rotate: 45deg
}

[open] .p-archive-accordion__title::after {
    rotate: 225deg
}

.p-archive-accordion__panel {
    padding-block-start: calc(.667em + var(--leading-trim));
    padding-inline: .667em
}

.p-archive-accordion__list {
    padding-block: .667em;
    border-block-start: 1px solid var(--color--use--border)
}

.p-archive-accordion__list a {
    position: relative;
    display: flex;
    gap: .667em;
    align-items: center;
    padding-block: calc(.667em + var(--leading-trim));
    padding-inline: 1.167em .667em;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    border-radius: var(--radius-xs)
}

.p-archive-accordion__list a::before {
    position: absolute;
    inset-inline-start: .5em;
    content: "-"
}

.p-archive-accordion__list a>.count {
    display: grid;
    place-content: center;
    place-items: center;
    width: 1.5em;
    height: 1.5em;
    font-size: .8em;
    font-weight: var(--font-weight-regular);
    color: var(--color--use--above);
    background-color: var(--color--theme--primary);
    border-radius: var(--radius-oval);
    transition: var(--duration)
}

.p-archive-accordion__list a>.count:is(a:hover>*) {
    color: var(--color--theme--primary);
    background-color: var(--color--base--white)
}

.p-share {
    display: flex;
    gap: .313em;
    justify-content: flex-end;
    margin-block-start: var(--margin-s)
}

.p-share__link {
    display: grid;
    place-content: center;
    height: 2em;
    aspect-ratio: 1/1;
    border-radius: var(--radius-s)
}

.p-share__link--fb {
    background-color: #315096
}

.p-share__link--tw {
    background-color: #0f1419
}

.p-share__link--line {
    background-color: #00c300
}

.p-share__link--hatebu {
    background-color: #00a4de
}

.p-share__link--pocket {
    background-color: #ee4056
}

.p-share__icon {
    width: 1.25em;
    aspect-ratio: 1/1;
    fill: var(--color--base--white)
}

.p-prev-next {
    position: relative;
    display: grid;
    margin-block-start: var(--section);
    font-size: .875rem;
    line-height: 1.75;
    border-block: 1px solid var(--color--use--border)
}

.p-prev-next::after {
    align-self: stretch;
    content: "";
    border-block-start: 1px solid var(--color--use--border);
    border-inline-start: 1px solid var(--color--use--border)
}

.p-prev-next-btn {
    position: relative;
    display: flex;
    gap: var(--margin-xs);
    align-items: center;
    padding-block: var(--margin-xs);
    transition: var(--duration)
}

.p-prev-next-btn.-next {
    justify-content: flex-end;
    order: 3
}

.p-prev-next-btn.-non {
    pointer-events: none;
    opacity: .4
}

.p-prev-next-btn__arrow {
    flex: 0 0 auto
}

.-prev .p-prev-next-btn__arrow {
    transform: scale(-1, 1)
}

.p-pagination {
    margin-block-start: var(--margin-l);
    font-size: .813rem
}

.nav-links {
    display: flex;
    gap: 0 .3em;
    align-items: center;
    justify-content: center;
    text-align: center
}

.page-numbers {
    display: grid;
    place-content: center;
    width: 3em;
    aspect-ratio: 1/1;
    line-height: 1;
    color: var(--color--base);
    letter-spacing: 0;
    border: 1px solid var(--color--use--border)
}

.page-numbers:not(span):hover {
    text-decoration: none;
    background: var(--color--use--link-hover);
    border-color: currentColor
}

.page-numbers.dots {
    width: 1.25em;
    border-color: rgba(0, 0, 0, 0)
}

.page-numbers.current {
    color: var(--color--use--above);
    background-color: var(--color--base)
}

.u-width-l,
.u-width-s,
.u-width {
    --u--width--size: var(--content--width--basic);
    max-width: calc(var(--u--width--size) + var(--margin--use--outside)*2);
    padding-inline: var(--margin--use--outside);
    margin-inline: auto
}

.u-width-s {
    --u--width--size: var(--content--width--small)
}

.u-width-l {
    --u--width--size: var(--content--width--large)
}

.u-width-side-left {
    padding-inline-end: var(--margin--use--variable-basic);
    margin-inline: var(--u-width--margin-inline, auto)
}

.u-width-side-left-l {
    padding-inline-end: var(--margin--use--variable-large);
    margin-inline: var(--u-width--margin-inline, auto)
}

.u-width-side-right {
    padding-inline-start: var(--margin--use--variable-basic);
    margin-inline: var(--u-width--margin-inline, auto)
}

.u-width-side-right-l {
    padding-inline-start: var(--margin--use--variable-large);
    margin-inline: var(--u-width--margin-inline, auto)
}

.u-w100 {
    width: 100%
}

.u-section-s {
    margin-block-start: var(--section-s)
}

.u-section {
    margin-block-start: var(--section)
}

.u-catch-3xl,
.u-catch-2xl,
.u-catch-xl,
.u-catch {
    line-height: 1.6
}

.u-catch {
    font-size: var(--clamp--font-size-l)
}

.u-catch-xl {
    font-size: var(--clamp--font-size-xl)
}

.u-catch-2xl {
    font-size: var(--clamp--font-size-2xl)
}

.u-catch-3xl {
    font-size: var(--clamp--font-size-3xl)
}

.u-p-c {
    max-width: 61.25em;
    margin-inline: auto
}

.u-txt-c {
    text-align: center
}

.u-txt-l {
    text-align: left
}

.u-txt-r {
    text-align: right
}

.u-fw-medium {
    font-weight: var(--font-weight-medium)
}

.u-fw-bold {
    font-weight: var(--font-weight-bold)
}

.u-fw-black {
    font-weight: var(--font-weight-black)
}

.u-fs-xs {
    font-size: .75em
}

.u-fs-s {
    font-size: .875em
}

.u-fs-l {
    font-size: 1.125em
}

.u-fs-xl {
    font-size: 1.25em
}

.u-fs-2xl {
    font-size: 1.5em
}

.u-decimal,
.u-square,
.u-circle,
.u-disc {
    padding-inline-start: 1.1em
}

.u-disc>li {
    list-style-type: disc
}

.u-circle>li {
    list-style-type: circle
}

.u-square>li {
    list-style-type: square
}

.u-decimal>li {
    list-style-type: decimal
}

.u-decimal-circle {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
    gap: 5px;
    counter-reset: decimal_circle_num
}

.u-decimal-circle>li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .625em;
    align-items: center;
    padding-block: calc(.625em + var(--leading-trim));
    padding-inline: .625em;
    counter-increment: decimal_circle_num;
    background-color: var(--color--accent--green-pale);
    border: 1px solid var(--color--accent--green);
    border-radius: var(--radius-xs)
}

.u-decimal-circle>li::before {
    display: grid;
    place-items: center;
    width: 1.333em;
    aspect-ratio: 1/1;
    padding-block-end: .133em;
    font-size: .938em;
    line-height: 1;
    color: var(--color--use--above);
    content: counter(decimal_circle_num);
    background-color: var(--color--accent--green);
    border-radius: var(--radius-oval)
}

.u-kome>li {
    position: relative;
    margin-inline-start: 1em
}

.u-kome>li::before {
    position: absolute;
    inset-inline-start: -1em;
    content: "※"
}

.u-sols {
    display: flex;
    flex-wrap: wrap
}

.u-sols>li:not(:last-child)::after {
    margin-inline: .2em;
    content: "/"
}

.u-list-mg>li+li {
    margin-block-start: 1em
}

.u-list-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(clamp(200px, 23.438vw, 240px), 1fr));
    gap: 0 var(--margin-s);
    justify-content: space-between
}

.u-list-flex {
    display: flex;
    flex-wrap: wrap;
    gap: 0 2em
}

.u-coming {
    padding: 3em 0;
    text-align: center;
    background: var(--color--use--bg)
}

.u-marker {
    text-decoration-line: underline;
    text-decoration-thickness: .313em;
    text-decoration-color: var(--u--marker-color, var(--color--accent--yellow));
    text-underline-offset: 0;
    text-decoration-skip-ink: none
}

.u-marker-full {
    padding-block: calc(.278em + var(--leading-trim));
    padding-inline: .278em;
    line-height: 1.944;
    background: var(--u--marker-color, var(--color--base--white));
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone
}

.u-marker-full--secondary {
    --u--marker-color: var(--color--theme--secondary)
}

.u-marker-full--grad-blue {
    --u--marker-color: var(--color--accent--grad-blue-270)
}

.u-br-up {
    display: none
}

.u-br-dn {
    display: none
}

.u-inline-block {
    display: inline-block
}

.u-overflow-x-clip {
    overflow-x: clip
}

.u-float {
    display: block;
    margin: 0 auto 1em
}

.u-flow-root {
    display: flow-root
}

.u-primary {
    color: var(--color--theme--primary)
}

.u-red {
    color: var(--color--accent--red)
}

.u-green {
    color: var(--color--accent--green)
}

.u-white {
    color: var(--color--use--above)
}

.u-border {
    border: 1px solid var(--color--use--border)
}

.u-rotate-90 {
    rotate: 90deg
}

.u-rotate-180 {
    rotate: 180deg
}

.u-flip-x {
    scale: -1 1
}

.u-flip-y {
    scale: 1 -1
}

.u-shadow {
    box-shadow: var(--box-shadow)
}

.u-mt-p {
    margin-block-start: var(--margin-p)
}

.u-mt-2xs {
    margin-block-start: var(--margin-2xs)
}

.u-mt-xs {
    margin-block-start: var(--margin-xs)
}

.u-mt-s {
    margin-block-start: var(--margin-s)
}

.u-mt-m {
    margin-block-start: var(--margin-m)
}

.u-mt-l {
    margin-block-start: var(--margin-l)
}

.u-mt-xl {
    margin-block-start: var(--margin-xl)
}

.u-mt-2xl {
    margin-block-start: var(--margin-2xl)
}

.u-mt-3xl {
    margin-block-start: var(--margin-3xl)
}

.u-mt-4xl {
    margin-block-start: var(--margin-4xl)
}

.u-mt-5xl {
    margin-block-start: var(--margin-5xl)
}

.u-mb-p {
    margin-block-end: var(--margin-p)
}

.u-mb-2xs {
    margin-block-end: var(--margin-2xs)
}

.u-mb-xs {
    margin-block-end: var(--margin-xs)
}

.u-mb-s {
    margin-block-end: var(--margin-s)
}

.u-mb-m {
    margin-block-end: var(--margin-m)
}

.u-mb-l {
    margin-block-end: var(--margin-l)
}

.u-mb-xl {
    margin-block-end: var(--margin-xl)
}

.u-mb-2xl {
    margin-block-end: var(--margin-2xl)
}

.u-mb-3xl {
    margin-block-end: var(--margin-3xl)
}

.u-mb-4xl {
    margin-block-end: var(--margin-4xl)
}

.u-mb-5xl {
    margin-block-end: var(--margin-5xl)
}

.u-leading-trim-en::before,
.u-leading-trim::before,
.u-leading-trim-en::after,
.u-leading-trim::after {
    display: block;
    inline-size: 0;
    block-size: 1px;
    content: ""
}

.u-leading-trim::before {
    margin-block-end: var(--leading-trim)
}

.u-leading-trim::after {
    margin-block-start: var(--leading-trim)
}

.u-leading-trim-en::before {
    margin-block-end: var(--leading-trim-en)
}

.u-leading-trim-en::after {
    margin-block-start: var(--leading-trim-en)
}

.u-radius {
    border-radius: var(--radius)
}

.u-radius-xs {
    border-radius: var(--radius-xs)
}

.u-radius-s {
    border-radius: var(--radius-s)
}

.u-radius-l {
    border-radius: var(--radius-l)
}

.u-radius-xl {
    border-radius: var(--radius-xl)
}

.u-radius-oval {
    border-radius: var(--radius-oval)
}

.u-radius-left {
    border-top-right-radius: revert;
    border-bottom-right-radius: revert
}

.u-radius-right {
    border-top-left-radius: revert;
    border-bottom-left-radius: revert
}

.u-radius-top {
    border-bottom-right-radius: revert;
    border-bottom-left-radius: revert
}

.u-radius-bottom {
    border-top-left-radius: revert;
    border-top-right-radius: revert
}

.u-flex {
    display: flex
}

.u-inline-flex {
    display: inline-flex
}

.u-flex-text {
    display: flex;
    gap: 0 var(--margin-2xs);
    align-items: center
}

.u-gap-2xs {
    gap: var(--margin-2xs)
}

.u-gap-xs {
    gap: var(--margin-xs)
}

.u-gap-s {
    gap: var(--margin-s)
}

.u-gap-m {
    gap: var(--margin-m)
}

.u-gap-l {
    gap: var(--margin-l)
}

.u-gap-xl {
    gap: var(--margin-xl)
}

.u-gap-2xl {
    gap: var(--margin-2xl)
}

.u-gap-col {
    row-gap: revert
}

.u-gap-row {
    column-gap: revert
}

.u-align-item-start {
    align-items: flex-start
}

.u-align-item-end {
    align-items: flex-end
}

.u-align-item-center {
    align-items: center
}

.u-align-item-baseline {
    align-items: baseline
}

.u-justify-content-start {
    justify-content: flex-start
}

.u-justify-content-end {
    justify-content: flex-end
}

.u-justify-content-center {
    justify-content: center
}

.u-justify-content-between {
    justify-content: space-between
}

.u-justify-content-around {
    justify-content: space-around
}

.u-justify-content-evenly {
    justify-content: space-evenly
}

.u-flex-wrap {
    flex-wrap: wrap
}

.u-flex-1 {
    flex: 1
}

.u-flex-direction-column {
    flex-direction: column
}

.js-accordion-trigger {
    cursor: pointer
}

.js-accordion-panel {
    overflow: hidden;
    transition: var(--duration)
}

.is-toggle+* {
    overflow: hidden;
    transition: var(--duration)
}

@keyframes splide-loading {
    0% {
        transform: rotate(0)
    }

    to {
        transform: rotate(1turn)
    }
}

.splide__track--draggable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.splide__track--fade>.splide__list>.splide__slide {
    z-index: 0;
    margin: 0 !important;
    opacity: 0
}

.splide__track--fade>.splide__list>.splide__slide.is-active {
    z-index: 1;
    opacity: 1
}

.splide--rtl {
    direction: rtl
}

.splide__track--ttb>.splide__list {
    display: block
}

.splide__container {
    position: relative;
    box-sizing: border-box
}

.splide__list {
    display: -ms-flexbox;
    display: flex;
    height: 100%;
    padding: 0 !important;
    margin: 0 !important;
    backface-visibility: hidden
}

.splide.is-initialized:not(.is-active) .splide__list {
    display: block
}

.splide__pagination {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    margin: 0;
    pointer-events: none;
    -ms-flex-align: center;
    -ms-flex-pack: center
}

.splide__pagination li {
    display: inline-block;
    margin: 0;
    line-height: 1;
    list-style-type: none;
    pointer-events: auto
}

.splide:not(.is-overflow) .splide__pagination {
    display: none
}

.splide__progress__bar {
    width: 0
}

.splide {
    position: relative;
    visibility: hidden
}

.splide.is-initialized,
.splide.is-rendered {
    visibility: visible
}

.splide__slide {
    position: relative;
    box-sizing: border-box;
    flex-shrink: 0;
    margin: 0;
    list-style-type: none !important;
    backface-visibility: hidden;
    -ms-flex-negative: 0
}

.splide__slide img {
    vertical-align: bottom
}

.splide__spinner {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: inline-block;
    width: 20px;
    height: 20px;
    margin: auto;
    border: 2px solid #999;
    border-left-color: rgba(0, 0, 0, 0);
    border-radius: 50%;
    animation: splide-loading 1s linear infinite;
    contain: strict
}

.splide__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0
}

.splide__toggle.is-active .splide__toggle__play,
.splide__toggle__pause {
    display: none
}

.splide__toggle.is-active .splide__toggle__pause {
    display: inline
}

.splide__track {
    position: relative;
    z-index: 0;
    overflow: hidden
}

@keyframes a {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes b {
    0% {
        opacity: 0;
        transform: scale(0.5)
    }

    to {
        opacity: 1;
        transform: scale(1)
    }
}

@keyframes c {
    0% {
        transform: translate(-50%, -50%) rotate(0)
    }

    50% {
        transform: translate(-50%, -50%) rotate(-180deg)
    }

    to {
        transform: translate(-50%, -50%) rotate(-1turn)
    }
}

@keyframes d {
    0% {
        transform: scale(1)
    }

    10% {
        transform: scale(1.2) translateX(6px)
    }

    25% {
        transform: scale(1.3) translateX(8px)
    }

    40% {
        transform: scale(1.2) translateX(6px)
    }

    50% {
        transform: scale(1)
    }

    60% {
        transform: scale(0.8) translateX(6px)
    }

    75% {
        transform: scale(0.7) translateX(8px)
    }

    90% {
        transform: scale(0.8) translateX(6px)
    }

    to {
        transform: scale(1)
    }
}

@keyframes e {
    0% {
        transform: scale(1)
    }

    10% {
        transform: scale(1.2) translateX(-6px)
    }

    25% {
        transform: scale(1.3) translateX(-8px)
    }

    40% {
        transform: scale(1.2) translateX(-6px)
    }

    50% {
        transform: scale(1)
    }

    60% {
        transform: scale(0.8) translateX(-6px)
    }

    75% {
        transform: scale(0.7) translateX(-8px)
    }

    90% {
        transform: scale(0.8) translateX(-6px)
    }

    to {
        transform: scale(1)
    }
}

.lum-lightbox {
    background: rgba(0, 0, 0, .6);
    z-index: 10000
}

.lum-lightbox-inner {
    bottom: 2.5%;
    left: 2.5%;
    right: 2.5%;
    top: 2.5%
}

.lum-lightbox-inner img {
    position: relative
}

.lum-lightbox-inner .lum-lightbox-caption {
    color: #fff;
    margin: 0 auto;
    max-width: 700px;
    text-align: center
}

.lum-loading .lum-lightbox-loader {
    animation: c 1.8s linear infinite;
    display: block;
    height: 20px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 66px
}

.lum-lightbox-loader:after,
.lum-lightbox-loader:before {
    background: rgba(255, 255, 255, .9);
    border-radius: 20px;
    content: "";
    display: block;
    height: 20px;
    margin-top: -10px;
    position: absolute;
    top: 50%;
    width: 20px
}

.lum-lightbox-loader:before {
    animation: d 1.8s linear infinite;
    left: 0
}

.lum-lightbox-loader:after {
    animation: e 1.8s linear infinite;
    animation-delay: -0.9s;
    right: 0
}

.lum-lightbox.lum-opening {
    animation: a .18s ease-out
}

.lum-lightbox.lum-opening .lum-lightbox-inner {
    animation: b .18s ease-out
}

.lum-lightbox.lum-closing {
    animation: a .3s ease-in;
    animation-direction: reverse
}

.lum-lightbox.lum-closing .lum-lightbox-inner {
    animation: b .3s ease-in;
    animation-direction: reverse
}

.lum-img {
    transition: opacity .12s ease-out
}

.lum-loading .lum-img {
    opacity: 0
}

.lum-gallery-button {
    background: rgba(0, 0, 0, 0);
    border: 0;
    cursor: pointer;
    height: 100px;
    margin: 0;
    max-height: 100%;
    outline: 0;
    overflow: hidden;
    padding: 0;
    position: absolute;
    text-indent: 150%;
    top: 50%;
    transform: translateY(-50%);
    white-space: nowrap;
    width: 60px
}

.lum-close-button {
    height: 32px;
    opacity: .3;
    position: absolute;
    right: 5px;
    top: 5px;
    width: 32px
}

.lum-close-button:hover {
    opacity: 1
}

.lum-close-button:after,
.lum-close-button:before {
    background-color: #fff;
    content: " ";
    height: 33px;
    left: 15px;
    position: absolute;
    width: 2px
}

.lum-close-button:before {
    transform: rotate(45deg)
}

.lum-close-button:after {
    transform: rotate(-45deg)
}

.lum-previous-button {
    left: 12px
}

.lum-next-button {
    right: 12px
}

.lum-gallery-button:after {
    border-top: 4px solid rgba(255, 255, 255, .8);
    content: "";
    display: block;
    height: 36px;
    position: absolute;
    top: 50%;
    width: 36px
}

.lum-previous-button:after {
    border-left: 4px solid rgba(255, 255, 255, .8);
    border-radius: 3px 0 0 0;
    box-shadow: -2px 0 rgba(0, 0, 0, .2);
    left: 12%;
    transform: translateY(-50%) rotate(-45deg)
}

.lum-next-button:after {
    border-radius: 0 3px 0 0;
    border-right: 4px solid rgba(255, 255, 255, .8);
    box-shadow: 2px 0 rgba(0, 0, 0, .2);
    right: 12%;
    transform: translateY(-50%) rotate(45deg)
}

@media(min-width: 641px) {
    .title-2 {
        flex-direction: row;
        flex-wrap: wrap
    }

    .title-2__more {
        margin-inline-start: auto
    }

    .c-check-list:not([class*=c-check-list--]) {
        display: flex;
        flex-wrap: wrap;
        gap: .938em
    }

    .p-tel__note>br {
        display: none
    }

    .p-contents-table tbody>tr>th {
        width: 140px
    }
}

@media(min-width: 641px)and (max-width: 1700px) {
    .-header .p-sub-nav {
        inset-block-start: 0;
        inset-inline-end: calc(var(--header-height) + var(--margin-2xs))
    }
}

@media(min-width: 821px) {

    .c-btn-sideline,
    .c-btn {
        min-width: var(--c--btn--min-width, min(300px, 100%))
    }

    :where(.c-table>tbody>tr)>:where(td, th) {
        padding-inline: var(--margin-xl)
    }

    :where(.c-table>tbody>tr)>:where(td, th):where(:first-child) {
        padding-inline: var(--margin-s)
    }

    .p-fixed-nav {
        inset-block-start: calc(var(--site-top-height) + var(--header-height) + min(19.531vw, 200px));
        inset-inline-end: 0
    }

    .p-home-blog {
        flex-direction: row;
        gap: var(--margin-m)
    }

    .p-home-blog__intro {
        flex: 0 0 250px
    }

    #gallerySplide .splide__slide {
        height: 600px
    }

    #gallerySplide .splide__slide[data-width="800"] {
        --c--trim--ratio: 800 / 600;
        width: min(800px, 100%)
    }

    .p-features-content-box:nth-child(odd) {
        margin-inline-end: min(7.534vw, 110px)
    }

    .p-features-content-box:nth-child(even) {
        margin-inline-start: min(7.534vw, 110px)
    }

    .p-features-content-box__image {
        float: right;
        width: min(27.397vw, 400px);
        margin-block-start: calc(var(--margin-3xl)*-1);
        margin-inline-start: var(--margin-m)
    }

    .p-features-content-box__text {
        margin-block-start: calc(var(--margin-3xl)*-1)
    }

    #blogSplide {
        width: calc(100% - clamp(1.875rem, 6.098vw, 3.125rem) - 250px)
    }

    .p-prev-next {
        grid-template-columns: 1fr auto 1fr;
        gap: var(--chg--margin-xl);
        padding-block: var(--margin-xs)
    }
}

@media(min-width: 1025px) {
    .l-column-2:has(>:nth-child(n+2)) {
        flex-direction: row;
        justify-content: space-between
    }

    .l-column-2__main {
        flex: 1
    }

    .l-column-2-side {
        width: 300px
    }

    .-contents .l-column-2-side {
        width: 310px
    }

    #pagetop {
        position: fixed;
        right: 0;
        bottom: var(--margin-xs);
        z-index: 103;
        display: flex;
        gap: 3px;
        align-items: center;
        justify-content: center;
        width: 50px;
        height: 80px;
        color: var(--color--use--above);
        visibility: hidden;
        background: var(--color--theme--primary);
        border-radius: var(--radius-s) 0 0 var(--radius-s);
        opacity: 0;
        writing-mode: vertical-rl;
        transition: var(--duration)
    }

    #pagetop:hover {
        text-decoration: none;
        background: var(--color--base)
    }

    #pagetop:hover::before {
        border-bottom-color: inherit
    }

    #pagetop>.c-circle-xs {
        rotate: -90deg;
        scale: 1 -1
    }

    #pagetop.is-on {
        visibility: visible;
        opacity: 1
    }

    .c-button-wrap--pc {
        text-align: left
    }

    .c-button-list--pc {
        justify-content: flex-start
    }

    .p-footer {
        flex-direction: row
    }

    .p-footer>*:nth-child(1) {
        width: min(540px, 100%)
    }

    .p-footer>*:nth-child(2) {
        width: min(620px, 100%)
    }

    .p-home-fv {
        height: min(61.644vw, 900px)
    }

    .p-home-fv__human {
        inset-block-end: 0
    }

    .p-home-fv__catch {
        inset-block-start: revert;
        inset-block-end: calc(clamp(100px, 11.719vw, 120px) - (-10px + clamp(0px, (100vw - 1024px)*.064, 28px)))
    }

    .p-home-fv-content {
        grid-template-columns: 1fr clamp(550px, 41.667vw, 800px);
        gap: min(6.25vw, 120px);
        max-width: calc(1780px + min(7.292vw, 140px));
        padding-inline-start: calc(min(7.292vw, 140px) - var(--scrollbar-width))
    }

    .p-home-fv-content-info {
        order: 2
    }

    .p-home-fv-scroll {
        inset-inline-end: 0
    }

    .p-home-news-list__link {
        padding-inline: 1.875em
    }

    .u-txt-c-up {
        text-align: center
    }

    .u-br-up {
        display: inline
    }

    .u-float--left {
        float: left;
        margin-inline-end: 2em
    }

    .u-float--right {
        float: right;
        margin-inline-start: 2em
    }
}

@media(min-width: 1241px) {
    .p-features-header {
        grid-template-columns: max-content 1fr
    }

    .p-features-title {
        margin-block-start: -0.833em
    }

    .p-features-nav {
        grid-template-columns: repeat(auto-fill, minmax(clamp(180px, 19.531vw, 200px), 1fr))
    }
}

@media(min-width: 1701px) {
    .page-title {
        padding-block-start: var(--header-height)
    }

    .l-column-2.-contents {
        --contents-inline-start: min(6.25vw, 120px);
        --contents-inline-end: min(8.854vw, 170px)
    }

    .-contents .l-column-2__main {
        flex: revert;
        width: min(62.5vw, 1200px)
    }

    .l-site-top {
        position: relative;
        z-index: 102;
        display: block;
        padding-inline: var(--margin-m);
        overflow: hidden;
        font-size: .625rem;
        line-height: var(--site-top-height);
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .p-header {
        position: absolute;
        inset-block-start: 0;
        inset-inline: 0;
        transition: var(--duration);
        translate: 0 calc(var(--header-height)*-1)
    }

    .is-passing .p-header {
        position: fixed;
        background-color: color-mix(in srgb, var(--color--base--white) 80%, transparent);
        backdrop-filter: blur(3px)
    }

    .p-header.is-show {
        translate: 0 0
    }

    .p-header__container {
        display: flex;
        gap: var(--margin-xs);
        align-items: center;
        justify-content: flex-end;
        height: var(--header-height);
        padding-inline: var(--margin-m);
        transition: height var(--duration)
    }

    .is-passing .p-header__container {
        height: calc(var(--header-height) - 30px);
        box-shadow: var(--box-shadow)
    }

    .p-header-logo {
        display: block;
        width: min(14.01vw, 269px);
        margin: 0 auto 0 0
    }

    .p-gnav {
        align-self: stretch
    }

    .p-gnav__inner {
        display: contents
    }

    .p-gnav-icon {
        display: none
    }

    .p-main-nav {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        height: 100%
    }

    .p-main-nav__item {
        flex: 1 1 auto;
        place-content: center
    }

    .p-main-nav__item--mb {
        display: none
    }

    .home .l-header:not(.is-passing) .p-main-nav__link {
        color: var(--color--use--above)
    }

    .p-main-nav__link {
        gap: .5em
    }

    .js-accordion>.p-main-nav__link::before {
        position: absolute;
        inset-block-start: calc(100% + 10px);
        inset-inline-start: 50%;
        width: 18px;
        height: 16px;
        clip-path: polygon(50% 0, 100% 100%, 0 100%);
        pointer-events: none;
        content: "";
        background: var(--color--base--white);
        opacity: 0;
        transition: var(--duration);
        translate: -50% -10px
    }

    .js-accordion:is(:hover, :focus-within)>.p-main-nav__link::before {
        pointer-events: auto;
        opacity: 1;
        translate: -50% 1px
    }

    .js-accordion>.p-main-nav__link::after {
        width: .375em;
        aspect-ratio: 1/1;
        content: "";
        border-block-end: .063em solid;
        border-inline-end: .063em solid;
        transition: translate var(--duration);
        rotate: 45deg
    }

    .js-accordion>.p-main-nav__link:hover::after {
        translate: 0 .188em
    }

    .p-main-nav__link.is-current::before,
    .p-main-nav__item:has(.p-mega .is-current) .p-main-nav__link::before {
        inset-inline-start: 0
    }

    .p-mega {
        position: absolute;
        inset-block-start: 100%;
        inset-inline-start: 50%;
        z-index: -1;
        width: min(1040px, 100%);
        height: auto !important;
        padding: var(--margin-s);
        pointer-events: none;
        background-color: var(--color--base--white);
        backdrop-filter: blur(2px);
        border-radius: var(--radius-s);
        box-shadow: var(--box-shadow);
        opacity: 0;
        translate: -50% -10px
    }

    .is-loaded .p-mega {
        transition: translate var(--duration), opacity var(--duration)
    }

    .js-accordion:is(:hover, :focus-within) .p-mega {
        z-index: 10;
        pointer-events: auto;
        opacity: 1;
        translate: -50% 0
    }

    .p-mega-btn {
        display: none
    }
}

@media(max-width: 1700px) {
    .p-header__container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: var(--header-height);
        padding-inline-end: var(--header-height);
        box-shadow: var(--box-shadow)
    }

    .p-header-logo {
        max-width: calc(100% - var(--header-height));
        padding: 0 2vw
    }

    .p-header-logo__img {
        width: auto;
        max-height: 50px
    }

    .p-gnav {
        position: fixed;
        inset-inline-end: 0;
        top: 0;
        z-index: 105;
        width: 100%;
        max-width: 480px;
        height: 100vh;
        padding-block: var(--header-height);
        overflow-y: scroll;
        overscroll-behavior-y: contain;
        background: var(--color--base--white);
        transform: translateX(100%);
        -ms-overflow-style: none;
        scrollbar-width: none
    }

    .p-gnav.is-sp {
        transition: .5s cubic-bezier(0.65, 0.05, 0.36, 1);
        transition-property: transform
    }

    .p-gnav::-webkit-scrollbar {
        display: none
    }

    #gnav-check:checked~.p-header .p-gnav {
        transform: translateX(0)
    }

    .p-gnav__inner {
        height: calc(100% + 1px)
    }

    .p-gnav-icon {
        position: fixed;
        inset-inline-end: 0;
        top: 0;
        z-index: 107;
        display: flex;
        align-items: center;
        justify-content: center;
        width: var(--header-height);
        height: var(--header-height);
        overflow: hidden;
        cursor: pointer;
        background: rgba(255, 255, 255, .4);
        border: none;
        outline: none
    }

    #gnav-check:checked~.p-header .p-gnav-icon {
        z-index: 108
    }

    .p-gnav-icon__wrap {
        width: 30px;
        margin: auto
    }

    .p-gnav-icon__inner--top,
    .p-gnav-icon__inner--middle,
    .p-gnav-icon__inner--bottom {
        position: absolute;
        display: block;
        width: 30px;
        height: 2px;
        background: var(--color--base);
        transform-origin: center
    }

    .p-gnav-icon__inner--top {
        transition: all .4s ease;
        transform: translateY(-10px)
    }

    .p-gnav-icon__inner--middle {
        transition: all .4s linear
    }

    .p-gnav-icon__inner--bottom {
        transition: all .4s ease;
        transform: translateY(10px)
    }

    #gnav-check:checked~.p-header .p-gnav-icon__inner--top {
        transform: rotate(45deg) translateY(0)
    }

    #gnav-check:checked~.p-header .p-gnav-icon__inner--middle {
        opacity: 0
    }

    #gnav-check:checked~.p-header .p-gnav-icon__inner--bottom {
        transform: rotate(-45deg) translateY(0)
    }

    .p-main-nav__item {
        position: relative;
        grid-template-areas: "link toggle" "panel panel";
        grid-template-columns: 1fr auto;
        border-block-end: 1px solid var(--color--use--border)
    }

    .p-main-nav__link.is-current::before,
    .p-main-nav__item:has(.p-mega .is-current) .p-main-nav__link::before {
        inset-inline-start: .313em
    }

    .p-mega {
        grid-area: panel;
        height: 0;
        overflow: hidden
    }

    .p-mega-list {
        grid-template-columns: minmax(0, 1fr);
        padding: 1em
    }

    .p-mega-btn {
        grid-area: toggle
    }

    .-header .p-sub-nav {
        position: fixed;
        z-index: 106;
        max-width: max(320px, 95vw);
        height: var(--header-height)
    }
}

@media(max-width: 1240px) {
    .u-flex-direction-column-l {
        flex-direction: column
    }
}

@media(max-width: 1024px) {
    .p-home-fv-content {
        grid-template-columns: minmax(0, 1fr);
        gap: min(11.719vw, 120px);
        max-width: calc(1780px + var(--margin--use--outside)*2);
        padding-inline: var(--margin--use--outside)
    }

    .p-home-fv-content-info {
        margin-inline-end: calc(var(--margin--use--outside)*-1)
    }

    .u-br-dn {
        display: inline
    }

    .u-flex-direction-column-m {
        flex-direction: column
    }
}

@media(max-width: 820px) {
    :where(.c-table>tbody>tr) {
        display: grid;
        grid-template-columns: minmax(0, 1fr)
    }

    .u-flex-direction-column-s {
        flex-direction: column
    }
}

@media(max-width: 640px) {
    .-header .p-sub-nav {
        inset-block-end: 0;
        inset-inline-start: 50%;
        width: 100%;
        translate: -50% 0
    }

    .-header .p-sub-nav__link {
        padding-block: calc(1em + var(--leading-trim))
    }

    .p-sub-nav__none {
        display: none
    }

    .p-home-fv-content-info__box {
        width: 100%
    }

    .p-home-fv-scroll {
        inset-block-end: .3em;
        inset-inline-end: 0;
        display: flex;
        gap: 5px;
        align-items: center;
        font-size: .625rem
    }

    .p-contents-table tbody>tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr)
    }

    .u-flex-direction-column-xs {
        flex-direction: column
    }
}

@media(max-width: 460px) {
    .lum-lightbox-image-wrapper {
        -webkit-overflow-scrolling: touch;
        display: flex;
        overflow: auto
    }

    .lum-lightbox-caption {
        bottom: 0;
        position: absolute;
        width: 100%
    }

    .lum-lightbox-position-helper {
        margin: auto
    }
}

@media(any-hover: hover) {
    .c-btn:hover {
        filter: brightness(1.2) hue-rotate(-30deg)
    }

    .p-main-nav__link:hover {
        text-decoration-color: currentColor
    }

    .p-sub-nav__link--contact:hover {
        filter: brightness(1.2) hue-rotate(-30deg)
    }

    .p-footer-nav-list__link:hover {
        background-color: color-mix(in srgb, var(--color--base--white) 30%, transparent)
    }

    .p-footer-nav-list-2nd__link:hover {
        text-decoration-color: currentColor
    }

    .p-external-link-sns__link:hover>img {
        scale: 1.1
    }

    .p-fixed-nav__link:hover>img {
        scale: 1.1
    }

    .p-contents-nav-list__link:hover {
        color: var(--color--theme--primary);
        background-color: color-mix(in srgb, var(--color--base--white) 80%, transparent)
    }

    .p-post-nav__link:hover {
        color: var(--color--use--above);
        background-color: var(--color--theme--primary)
    }

    .p-archive-accordion__list a:hover {
        color: var(--color--use--above);
        background-color: var(--color--theme--primary)
    }
}

@media(prefers-reduced-motion: reduce) {

    *,
    ::before,
    ::after {
        transition-duration: 1ms !important;
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important
    }
}

@media(scripting: none) {
    .c-tab-panel__container:target {
        display: revert
    }
}