@charset "UTF-8";

html {
    font-family: Noto Sans JP, Helvetica Neue, Arial, Hiragino Kaku Gothic ProN, Hiragino Sans, BIZ UDPGothic, Meiryo, sans-serif;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + var(--site-top-height))
}

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

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

::selection {
    background: hsla(0, 0%, 50%, .25)
}

.grecaptcha-badge {
    visibility: hidden
}

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

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 {
    height: auto;
    max-width: 100%
}

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

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

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

b,
strong {
    font-weight: bolder
}

em {
    font-style: normal
}

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

pre {
    white-space: pre
}

small {
    font-size: 80%
}

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

sub {
    inset-block-end: -.75em
}

sup {
    inset-block-start: -.5em
}

s {
    text-decoration: line-through
}

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

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

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

label {
    display: inline-block
}

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

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

:focus {
    outline: revert
}

details,
progress,
summary {
    all: revert
}

summary {
    display: block
}

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

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

.font-sub-extrabold {
    --sub-font--weight: var(--font-weight-extrabold);
    --sub-font--letter-spacing: 0.05em
}

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

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 {
    accent-color: var(--color--accent--orange);
    font-family: Helvetica Neue, Arial, Hiragino Kaku Gothic ProN, Hiragino Sans, BIZ UDPGothic, Meiryo, sans-serif;
    font-weight: inherit
}

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

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

select {
    width: auto
}

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

button[type=submit],
input[type=submit] {
    -webkit-appearance: none;
    appearance: none;
    background-color: var(--color--accent--orange);
    border-radius: var(--radius-oval);
    border-width: 0;
    color: var(--color--base--white);
    cursor: pointer;
    font-size: 1.125rem;
    line-height: 1.4;
    margin: 0 .625em;
    padding: 1.2em;
    position: relative;
    text-align: center;
    transition: all var(--duration) ease-out;
    width: min(35.156vw, 360px)
}

button[type=submit]:hover,
input[type=submit]:hover {
    background-color: var(--color--theme--primary)
}

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

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

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

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

.breadcrumb {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    font-size: .688rem;
    justify-content: center;
    margin-block-end: var(--margin-xl);
    margin-block-start: var(--margin-xs)
}

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

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

.page-title {
    text-align: center
}

.page-title__container {
    background-color: var(--color--use--bg);
    background-position: 50%;
    background-size: cover;
    padding: var(--margin-m)
}

.page-title__container>.title-1 {
    background-color: var(--color--base--white);
    border-radius: var(--radius-l);
    margin: 0;
    padding: var(--margin-l)
}

.title-1 {
    font-size: clamp(1.625rem, 3.906vw, 2.5rem);
    line-height: 1.4;
    margin-block-end: calc(var(--margin-xl) + var(--leading-trim));
    position: relative;
    text-align: center
}

.title-1--s {
    font-size: clamp(1.375rem, 3.516vw, 2.25rem)
}

.title-1__ja {
    font-weight: var(--font-weight-bold)
}

.title-1__en {
    color: var(--color--accent--orange);
    font-size: .4em;
    font-weight: var(--font-weight-extrabold)
}

.title-2 {
    background-color: var(--title-2--bg, var(--color--use--bg));
    border-inline-start: .417em solid var(--color--accent--orange);
    border-radius: var(--radius-s);
    font-size: var(--clamp--font-size-xl);
    line-height: 1.4;
    margin-block-end: var(--margin-s);
    padding-block: calc(.833em + var(--leading-trim));
    padding-inline: calc(.833em + var(--leading-trim))
}

.title-2,
.title-3 {
    font-weight: var(--font-weight-bold)
}

.title-3 {
    border-block-end: 2px solid var(--color--accent--orange);
    font-size: var(--clamp--font-size-l);
    margin-block-end: calc(var(--margin-xs) + var(--leading-trim));
    padding-block-end: calc(var(--margin-xs) + var(--leading-trim))
}

.title-num {
    align-items: baseline;
    color: var(--color--accent--orange);
    display: flex;
    font-size: clamp(2.5rem, 5.645vw, 4.375rem);
    font-weight: var(--font-weight-extrabold);
    gap: .143em;
    margin-block-end: calc(var(--margin-m) + var(--leading-trim-en));
    margin-block-start: var(--leading-trim-en)
}

.title-num--s {
    font-size: clamp(1.25rem, 1.935vw, 1.5rem);
    margin-block-end: calc(var(--margin-xs) + var(--leading-trim-en))
}

.title-num>span {
    font-size: max(.429em, 16px)
}

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

.title-num-increment {
    counter-increment: title_num
}

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

.l-site-top {
    display: none
}

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

.l-copyright {
    border-block-start: 1px solid var(--color--use--border);
    display: block;
    font-size: .75rem;
    margin-block-start: var(--section);
    padding-block-start: var(--margin-xs);
    text-align: center
}

#pagetop {
    display: none
}

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

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

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

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

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

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

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

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

.c-plusminus {
    aspect-ratio: 1;
    background-color: var(--c--plusminus--bg-color, transparent);
    border-radius: 50%;
    position: relative;
    width: var(--c--plusminus--size, 1.875em)
}

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

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

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

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

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

.c-arrow {
    aspect-ratio: 17/15;
    flex: 0 0 auto;
    width: var(--c--arrow--width, 1.063em);
    fill: var(--c--arrow--fill, currentColor)
}

[class*=circle] .c-arrow {
    --c--arrow--fill: var(--color--use--above);
    --c--arrow--width: 38%;
    transition: var(--duration)
}

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

.c-mail {
    aspect-ratio: 20/16;
    flex: 0 0 auto;
    width: var(--c--mail--width, 1.111em);
    fill: var(--c--mail--fill, currentColor)
}

.c-new-tab {
    aspect-ratio: 25/23;
    flex: 0 0 auto;
    width: var(--c--new-tab--width, 1.563em);
    fill: var(--c--new-tab--fill, currentColor)
}

.c-loudspeaker {
    aspect-ratio: 39/27;
    flex: 0 0 auto;
    width: var(--c--loudspeaker--width, 1.95em);
    fill: var(--c--loudspeaker--fill, currentColor)
}

.c-line {
    aspect-ratio: 28/27;
    flex: 0 0 auto;
    width: var(--c--line--width, 1.556em);
    fill: var(--c--line--fill, currentColor)
}

.c-paint {
    aspect-ratio: 43/33;
    flex: 0 0 auto;
    width: var(--c--paint--width, 1.433em)
}

.c-paintbrush {
    aspect-ratio: 29/49;
    flex: 0 0 auto;
    width: var(--c--paintbrush--width, .967em)
}

.c-rain-leak {
    aspect-ratio: 46/43;
    flex: 0 0 auto;
    width: var(--c--rain-leak--width, 1.533em)
}

.c-house {
    aspect-ratio: 43/38;
    flex: 0 0 auto;
    width: var(--c--house--width, 1.433em)
}

.c-check {
    aspect-ratio: 15/11;
    flex: 0 0 auto;
    width: var(--c--check--width, .938em);
    fill: var(--c--check--fill, currentColor)
}

[class*=circle] .c-check {
    --c--check--fill: var(--color--use--above);
    --c--check--width: 50%;
    transition: var(--duration)
}

.c-circle,
.c-circle-icon,
.c-circle-s,
.c-circle-xs {
    aspect-ratio: 1;
    background-color: var(--c--circle--bg-color, var(--color--accent--orange));
    border-radius: var(--radius-oval);
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    transition: var(--duration);
    width: var(--c--circle--width, clamp(1.25rem, 3.906vw, 2.5rem))
}

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

.c-circle-s {
    --c--circle--width: clamp(1.125rem, 3.516vw, 2.25rem)
}

.c-circle-xs {
    --c--circle--width: clamp(1rem, 2.93vw, 1.875rem)
}

.c-label {
    background-color: var(--color--theme--primary);
    border-radius: var(--radius-oval);
    font-size: .75em;
    padding-block-end: .063em;
    padding-inline: .75em
}

.c-label,
.c-label-orange {
    color: var(--color--use--above);
    display: inline-block;
    text-align: center
}

.c-label-orange {
    background-color: var(--color--accent--orange);
    border-radius: var(--radius-s);
    font-size: var(--clamp--font-size-l);
    font-weight: var(--font-weight-bold);
    line-height: 1;
    padding-block: .5em;
    padding-inline: .6em
}

.c-instagram {
    aspect-ratio: 24/24;
    background: linear-gradient(135deg, #427eff, #f13f79 70%) no-repeat;
    clip-path: url(#clip-instagram);
    flex: 0 0 auto;
    width: var(--c--instagram--width, 1.333em)
}

.c-instagram:before {
    background: radial-gradient(#ffdb2c 10%, rgba(255, 105, 34, .65) 55%, rgba(255, 88, 96, 0) 70%);
    bottom: -70%;
    content: "";
    height: 130%;
    left: -50%;
    position: absolute;
    width: 130%
}

.c-price {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    font-size: var(--clamp--font-size-l);
    font-weight: var(--font-weight-bold);
    gap: .25em;
    justify-content: center;
    line-height: 1;
    margin-block-start: var(--margin-2xs)
}

.c-price--end {
    justify-content: end
}

.c-price-num {
    font-size: clamp(1.5rem, 2.344vw, 2.813rem)
}

.c-price-num,
.c-price-num-l {
    color: var(--color--accent--orange);
    margin-block: var(--leading-trim)
}

.c-price-num-l {
    font-size: clamp(1.75rem, 3.542vw, 4.25rem)
}

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

:where(:has(>.c-bg-image)) {
    position: relative
}

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

.c-button-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    justify-content: center
}

.c-btn,
.c-btn-bd-inline {
    --color--use--link: var(--color--accent--orange);
    --color--use--link-hover: var(--color--theme--primary);
    align-items: center;
    display: inline-flex;
    font-size: var(--c--btn--font-size, clamp(1rem, 1.758vw, 1.125rem));
    font-weight: var(--font-weight-bold);
    gap: var(--c--btn--gap, 1em);
    justify-content: space-between;
    line-height: 1.4;
    padding-block: var(--c--btn--padding-block, 1.111em);
    padding-inline: var(--c--btn--padding-inline, 2.222em);
    position: relative;
    text-align: var(--c--btn--text-align, start);
    transition: var(--duration)
}

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

.c-btn[href]:hover,
a[href]:hover .c-btn {
    --c--btn--bg-color: var(--color--use--link-hover)
}

.c-btn-bd-inline {
    --color--use--link: var(--color--base);
    --color--use--link-hover: var(--color--accent--orange);
    --c--btn--font-size: clamp(0.875rem, 1.563vw, 1rem);
    --c--btn--padding-inline: 1.1em;
    --c--btn--padding-block: 1.1em;
    --c--btn--text-align: center;
    --c--btn--gap: 0.5em;
    --c--btn--min-width: auto;
    --c--arrow--fill: var(--color--accent--orange);
    background-color: var(--c--btn--bg-color, var(--color--use--bg));
    box-shadow: 1px 0 0 0 var(--color--theme--primary), -1px 0 0 0 var(--color--theme--primary);
    display: grid;
    height: 100%;
    place-content: center;
    place-items: center;
    width: 100%
}

.c-btn--s {
    --c--btn--font-size: clamp(0.875rem, 1.563vw, 1rem);
    --c--btn--min-width: 220px
}

.c-btn--l {
    --c--btn--font-size: clamp(1rem, 2.344vw, 1.5rem)
}

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

.c-table tr {
    border-block-end: 1px solid var(--color--use--border);
    display: grid;
    gap: .5em var(--c-table--tr--gap, var(--margin-s));
    padding-block: var(--c-table--tr--padding, var(--margin-s))
}

.c-table th {
    font-weight: var(--font-weight-bold)
}

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

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

.c-col {
    min-width: 11.25em;
    width: 16%
}

.c-col-l {
    min-width: 18.125em;
    width: 16%
}

.c-box {
    background-color: var(--color--base--light);
    border-radius: var(--radius-l);
    padding: var(--margin-m)
}

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

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

.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--radius-s {
    border-radius: var(--radius-s)
}

.c-box--radius-m {
    border-radius: var(--radius)
}

.c-column-flex,
.c-column-flex-3,
.c-column-flex-4 {
    --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-3:has(:nth-child(3)),
.c-column-flex-4:has(:nth-child(3)),
.c-column-flex:has(:nth-child(3)) {
    justify-content: center
}

.c-column-flex-3>:not(svg),
.c-column-flex-4>: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-3>:not(svg),
    .c-column-flex-4>:not(svg),
    .c-column-flex>:not(svg) {
        flex: 100%
    }
}

.c-column-grid,
.c-column-grid-3,
.c-column-grid-4 {
    --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: 640px) {

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

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

.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-3:has(:nth-child(5)) {
    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) {

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

.c-column-flex-4:has(:nth-child(7)) {
    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: 900px) {
    .c-column-grid-3 {
        --c--column--num: 2
    }
}

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

    .c-column-grid-3[class*=c-box],
    [class*=c-box]>.c-column-grid-3 {
        --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-name: c-media-object;
    container-type: inline-size
}

.c-media-object--s {
    --c--media--image--width-vw: min(20.548vw, 300px);
    --c--media--image--width-px: 300px
}

.c-media-object--l {
    --c--media--gap: 0 var(--chg--margin-4xl);
    --c--media--image--width-vw: min(49.315vw, 720px);
    --c--media--image--width-px: 720px
}

@container c-media-object (max-width: 751px) {
    .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(--margin-m))
}

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

@container c-media-object (min-width: 751px) {
    .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: 751px) {
    .c-media-object__content {
        display: block;
        flex: 1
    }
}

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

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

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

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

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

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

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

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

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

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

.c-accordion__panel {
    border-block-start: var(--c-accordion--panel--border, 2px solid var(--color--use--border));
    margin-inline: var(--c-accordion--panel--margin-inline, var(--margin-l));
    padding-block: var(--c-accordion--panel--padding-block, var(--margin-m))
}

.c-card {
    --c--arrowhead--fill: var(--color--use--above);
    border-radius: var(--radius);
    container-type: inline-size;
    height: 100%;
    line-height: var(--line-height);
    overflow: clip
}

.c-card__image {
    --c--trim--ratio: var(--c--card--ratio, 460/200);
    border-top-left-radius: inherit;
    border-top-right-radius: inherit
}

.c-card__text {
    background-color: var(--color--base--white);
    height: inherit;
    padding-block: var(--margin-s);
    padding-inline: min(3.226vw, 40px);
    width: 100%
}

.c-card__title {
    align-items: center;
    display: flex;
    font-size: clamp(1.125rem, 6.522cqw, 1.875rem);
    font-weight: var(--font-weight-bold);
    gap: min(6.522cqw, 30px);
    justify-content: space-between
}

.c-card-fill {
    --c--arrowhead--fill: var(--color--use--above);
    border-radius: var(--radius-l);
    color: var(--color--use--above);
    container-type: inline-size;
    height: 100%;
    line-height: var(--line-height);
    overflow: clip
}

.c-card-fill__text {
    align-items: center;
    color: var(--color--use--above);
    display: flex;
    font-size: clamp(1.125rem, 6.522cqw, 1.875rem);
    font-weight: var(--font-weight-bold);
    gap: var(--margin-s);
    justify-content: space-between;
    padding-block: min(5.645vw, 70px);
    padding-inline: min(3.226vw, 40px);
    width: 100%
}

.c-point {
    --c--media--gap: 0 var(--chg--margin-xl);
    --c--media--image--width-vw: min(41.096vw, 600px);
    --c--media--image--width-px: 600px
}

.c-point__item {
    position: relative
}

.c-point__item+.c-point__item {
    margin-block-start: var(--margin-3xl)
}

.c-point__item:before {
    background-color: var(--color--base--light);
    border-radius: var(--radius);
    content: "";
    height: 100%;
    inset-block-end: calc(var(--margin-m)*-1);
    position: absolute;
    width: calc(100% - min(15.068vw, 220px));
    z-index: -1
}

@container (min-width: 751px) {
    .c-point__item:nth-child(odd) {
        padding-inline-end: var(--chg--margin-xl)
    }
}

.c-point__item:nth-child(odd):before {
    inset-inline-end: 0
}

@container (min-width: 751px) {
    .c-point__item:nth-child(2n) {
        padding-inline-start: var(--chg--margin-xl)
    }
}

.c-point__item:nth-child(2n):before {
    inset-inline-start: 0
}

.c-term-list {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-xs)
}

.c-term-list__link {
    --color--use--link: var(--color--accent--orange);
    --color--use--link-hover: var(--color--theme--primary);
    align-items: center;
    background-color: var(--color--use--link);
    border-radius: var(--radius);
    color: var(--color--use--above);
    display: flex;
    font-size: 1em;
    font-weight: var(--font-weight-bold);
    gap: 1em;
    line-height: 1.4;
    padding-block: calc(.75em + var(--leading-trim));
    padding-inline: 1.25em;
    transition: var(--duration)
}

.c-term-list__link:any-link:hover {
    background-color: var(--color--use--link-hover)
}

.p-header {
    background-color: var(--color--use--bg);
    position: relative;
    width: 100%;
    z-index: 102
}

.p-header-logo {
    align-items: center;
    color: var(--color--theme--primary);
    display: flex;
    gap: var(--margin-s)
}

.p-header-logo__text {
    font-size: clamp(.625rem, .822vw, .75rem)
}

.p-header-contact {
    height: 100%
}

.p-header-btn {
    align-items: center;
    background: var(--color--use--link);
    color: var(--color--use--above);
    display: flex;
    font-size: .563rem;
    justify-content: center;
    transition: background var(--duration)
}

.p-header-btn:hover {
    background: var(--color--use--link-hover)
}

#gnav-check {
    display: none
}

.p-main-nav {
    --color--use--link: var(--color--base);
    --color--use--link-hover: var(--color--theme--primary)
}

.p-sub-nav {
    --color--use--link: var(--color--base)
}

.p-sub-nav__link {
    --c--arrow--width: 0.714em;
    --c--arrow--fill: var(--color--accent--orange);
    align-items: center;
    display: flex;
    gap: .357em;
    padding-block: .5em;
    padding-inline: 1em
}

.p-mega-list {
    --mega-list--padding: 1em
}

.p-mega-list__link {
    --c--arrow--fill: var(--color--accent--orange);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    overflow: clip
}

.p-mega-list__thumb {
    --c--trim--ratio: 300/100
}

.p-mega-list__label {
    align-items: center;
    background-color: var(--color--base--white);
    display: flex;
    font-size: .938em;
    gap: .625em;
    justify-content: space-between;
    padding-block: calc(1.125em + var(--leading-trim));
    padding-inline: 1.25em
}

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

.p-mega-list-2nd__link {
    align-items: baseline;
    display: flex;
    gap: .5em;
    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 {
    cursor: pointer;
    height: 3.4em;
    inset-block-start: 0;
    inset-inline-end: 0;
    position: absolute;
    transition: var(--duration);
    width: 3.4em
}

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

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

.p-footer {
    background: var(--color--base--white);
    padding-block: var(--margin-xl) var(--section)
}

.p-footer__inner {
    display: flex;
    flex-direction: column;
    gap: var(--margin-2xl)
}

.p-footer-info-data {
    font-size: .813rem;
    margin-block-start: var(--margin-m)
}

.p-footer-info-data__group+.p-footer-info-data__group {
    margin-block-start: var(--margin-s)
}

.p-footer-info-data__group>dt {
    font-size: .875rem;
    font-weight: var(--font-weight-bold)
}

.p-footer-info-data__group>dd {
    display: flex;
    gap: .5em;
    margin-block-start: min(1.465vw, 15px)
}

.p-footer-info-data__group>dd:not(.no-line):before {
    background: var(--color--base);
    content: "";
    display: block;
    flex: 0 0 auto;
    height: 1px;
    position: relative;
    top: .7em;
    width: 20px
}

.p-footer-info-logo {
    align-items: center;
    color: var(--color--theme--primary);
    display: flex;
    gap: var(--margin-s)
}

.p-footer-info-logo__text {
    font-size: clamp(.625rem, .822vw, .75rem)
}

.p-footer-nav {
    display: flex;
    flex-direction: column;
    gap: 1em var(--margin-2xl);
    margin-block-start: var(--margin-xl);
    width: min(100%, 730px)
}

.p-footer-nav-list {
    font-size: .875rem
}

.p-footer-nav-list__link {
    align-items: center;
    display: flex;
    font-weight: var(--font-weight-bold);
    gap: .5em;
    padding-block: .357em
}

.p-footer-nav-list__link:before {
    background: var(--color--accent--orange);
    border-radius: var(--radius-oval);
    content: "";
    height: .429em;
    width: .429em
}

.p-footer-nav-list-2nd {
    font-size: .75rem
}

.p-footer-nav-list-2nd__link {
    align-items: baseline;
    display: flex;
    gap: .5em;
    padding-block: .208em
}

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

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

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

.p-tel {
    --color--use--link: var(--color--theme--primary);
    --color--use--link-hover: var(--color--accent--orange);
    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--end {
    --tel--text-align: end
}

.p-tel--l {
    --tel--font-size: clamp(1.5rem, 3.288vw, 3rem)
}

.p-tel--xl {
    --tel--font-size: clamp(1.875rem, 4.11vw, 3.75rem)
}

.p-tel.-header {
    --tel--font-size: clamp(1.375rem, 1.875vw, 2.25rem);
    display: grid;
    height: 100%;
    place-content: center
}

.p-tel__main {
    align-items: center;
    display: flex;
    gap: .278em;
    justify-content: var(--tel--text-align, center);
    line-height: 1
}

.p-tel__icon {
    --c--tel--fill: var(--color--accent--orange)
}

.p-tel__note {
    font-size: clamp(10px, .333em, 16px);
    line-height: 1.2;
    margin-block-start: .5em
}

.p-fixed-nav {
    --fixed-nav--width: 4.167em;
    display: grid;
    font-size: clamp(.688rem, 1.452vw, 1.125rem);
    font-weight: var(--font-weight-bold);
    gap: var(--margin-2xs);
    justify-items: end;
    line-height: 1.2;
    position: fixed;
    transition: var(--duration);
    z-index: 101
}

.p-fixed-nav.is-show {
    translate: 0 0
}

.p-fixed-nav__link {
    --c--mail--fill: var(--color--theme--secondary);
    --c--line--fill: var(--color--use--above);
    border-radius: var(--radius-l) 0 0 var(--radius-l);
    color: var(--color--use--above);
    display: block;
    overflow-x: clip;
    padding: 1.111em;
    position: relative;
    width: var(--fixed-nav--width)
}

.is-show .p-fixed-nav__link {
    box-shadow: var(--box-shadow)
}

.p-fixed-nav__link:any-link:hover {
    scale: 1.05 1.05
}

.p-fixed-nav__link.-mail {
    background-color: var(--color--theme--primary)
}

.p-fixed-nav__link.-line {
    background-color: var(--color--accent--line)
}

.p-fixed-nav__link.-instagram {
    background-color: var(--color--base--white);
    flex: 0.5
}

.p-fixed-nav__label {
    align-items: center;
    display: flex;
    gap: .556em;
    justify-content: center;
    position: relative;
    width: 100%
}

.p-page-nav {
    background-color: var(--color--base--white);
    border-radius: var(--radius-l);
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-2xl);
    padding-block: var(--margin-s);
    padding-inline: var(--margin-xl)
}

.p-page-nav-parent {
    --c--arrow--fill: var(--color--accent--orange);
    align-items: center;
    display: flex;
    font-size: 1.125em;
    gap: var(--margin-2xs)
}

.is-current .p-page-nav-parent {
    color: var(--color--theme--primary)
}

.p-page-nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-xs)
}

.p-page-nav-list__link {
    background-color: var(--color--base--light);
    border-radius: var(--radius-s);
    display: block;
    line-height: 1.4;
    padding-block: calc(.625em + var(--leading-trim));
    padding-inline: 1em
}

.p-page-nav-list__link.is-current,
.p-page-nav-list__link:hover {
    box-shadow: inset 0 0 0 2px var(--color--accent--orange)
}

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

#mainSlide,
#mainSlide * {
    height: 100%
}

.p-home-fv {
    background-color: #eee;
    height: calc(min(100svh, 100vh) - var(--header-height) - var(--site-top-height));
    min-height: 480px;
    position: relative
}

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

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

.p-home-fv-catch {
    display: flex;
    flex-direction: column;
    gap: var(--margin-m);
    margin-inline: auto;
    max-width: calc(1640px + var(--margin--use--outside)*2);
    padding-inline: var(--margin--use--outside);
    pointer-events: none;
    position: relative;
    translate: 0 calc(-100% - var(--margin-l));
    z-index: 1
}

.p-home-fv-post {
    --home-fv-post--padding-block: min(2.441vw, 25px);
    --home-fv-post--padding-inline: var(--margin-m);
    background-color: var(--color--base--white);
    border-radius: var(--radius-l);
    height: var(--home-fv-post--height, auto);
    padding-block: var(--home-fv-post--padding-block);
    padding-inline: var(--home-fv-post--padding-inline);
    position: relative;
    z-index: 1
}

.p-home-fv-post-title {
    --c--loudspeaker--fill: var(--color--accent--orange);
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    font-size: var(--clamp--font-size-l);
    font-weight: var(--font-weight-bold);
    gap: var(--margin-2xs)
}

.p-home-fv-post__content {
    align-items: center;
    display: flex;
    gap: var(--margin-m);
    justify-content: space-between;
    width: 100%
}

.p-home-fv-post-link {
    --color--use--link: var(--color--base);
    align-items: baseline;
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: calc(var(--margin-2xs) + 5px)
}

.p-home-fv-post-link__title {
    flex: 1
}

.p-home-fv-post-more {
    --color--use--link: var(--color--base);
    --c--arrow--fill: var(--color--accent--orange);
    align-items: center;
    border-block-end: 1px solid;
    display: flex;
    font-size: .875rem;
    gap: var(--margin-xs);
    padding: .3em
}

.p-home-service {
    position: relative
}

.p-home-service:before {
    border-image-outset: 0 100vw 0 100vw;
    border-image-slice: 0 fill;
    border-image-source: linear-gradient(to left, var(--color--base--light), var(--color--base--light));
    content: "";
    height: calc(100% - min(19.531vw, 200px));
    inset-block-start: 50%;
    inset-inline: 0;
    position: absolute;
    translate: 0 -50%;
    z-index: -1
}

.p-home-about {
    padding-block-end: var(--section);
    position: relative
}

.p-home-about__deco {
    inset-block-end: 0;
    inset-inline-end: min(9.277vw, 95px);
    position: absolute;
    width: min(77.832vw, 797px);
    z-index: -1
}

.p-home-reason {
    --c--column--gap: var(--margin-xl);
    --c--card--ratio: 700/300;
    background-color: var(--color--base--light);
    padding-block: var(--section-s)
}

.p-home-reason__num {
    align-items: baseline;
    color: var(--color--accent--orange);
    display: flex;
    font-size: clamp(2.5rem, 5.645vw, 4.375rem);
    gap: .3em;
    inset-block-start: var(--leading-trim-en);
    inset-inline: 0;
    position: absolute;
    z-index: 1
}

.p-home-reason__num>span[data-deco=REASON] {
    font-size: .429em
}

.p-home-reason__num>span[data-deco=REASON]:before {
    -webkit-text-stroke-width: .267em
}

.p-home-reason__num>span:not([data-deco=REASON]):before {
    -webkit-text-stroke-width: .114em
}

.p-home-reason__num>span:before {
    content: attr(data-deco);
    position: absolute;
    z-index: -1;
    -webkit-text-stroke-color: var(--color--base--light)
}

.p-home-reason .c-card {
    padding-block-start: var(--margin-m);
    position: relative
}

.p-home-consideration__title {
    font-size: clamp(1.5rem, 3.516vw, 2.25rem);
    font-weight: var(--font-weight-bold);
    margin-block-end: var(--section-s);
    position: relative;
    text-align: center
}

.p-home-consideration__title>span {
    background-color: var(--color--use--bg);
    padding-inline: var(--margin-s)
}

.p-home-consideration__title:before {
    background-color: var(--color--theme--primary);
    content: "";
    height: 1px;
    inset-block-start: 50%;
    inset-inline: 0;
    position: absolute;
    translate: 0 -50%;
    width: 100%;
    z-index: -1
}

.p-home-news {
    display: flex;
    flex-direction: column;
    gap: 0 min(5.479vw, 80px)
}

.p-home-news__intro {
    display: contents
}

.p-home-news__list {
    background-color: var(--color--base--white);
    border-radius: var(--radius-l);
    margin-inline: auto;
    padding-block: var(--margin-xs);
    padding-inline: var(--margin-l)
}

.p-home-news__btn {
    margin-block-start: var(--margin-m);
    order: 3
}

.p-about-nav {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    place-items: center
}

.p-access__map {
    height: 80dvh;
    width: 100%
}

.p-service-plan {
    background-color: var(--color--base--light);
    padding-block: var(--margin-2xl)
}

.p-service-plan__intro {
    --c--media--gap: 0 var(--chg--margin-xl);
    --c--media--image--width-vw: min(41.096vw, 600px);
    --c--media--image--width-px: 600px
}

.p-service-plan-price {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: var(--margin-xs);
    justify-content: center
}

:is(.p-service-plan-price__main, .p-service-plan-price__option) {
    border-radius: var(--radius-l);
    overflow: clip
}

.p-service-plan-price__main,
.p-service-plan-price__option {
    width: 100%
}

.p-service-plan-price__plus {
    aspect-ratio: 1/1;
    background-color: var(--color--base--white);
    border-radius: var(--radius-oval);
    position: relative;
    width: min(100%, 50px)
}

.p-service-plan-price__plus:after,
.p-service-plan-price__plus:before {
    background-color: var(--color--accent--orange);
    content: "";
    height: 4px;
    inset: 0;
    margin: auto;
    position: absolute;
    width: 40%
}

.p-service-plan-price__plus:after {
    rotate: 90deg
}

.p-service-plan-price__title {
    background-color: var(--color--accent--orange);
    color: var(--color--use--above);
    font-size: var(--clamp--font-size-2xl);
    font-weight: var(--font-weight-bold);
    padding-block: calc(.667em + var(--leading-trim));
    padding-inline: var(--margin-m);
    text-align: center
}

.p-service-plan-price__body {
    background-color: var(--color--base--white);
    padding: var(--margin-m)
}

.p-service-plan-price-total {
    align-items: center;
    background-color: var(--color--base--white);
    border: 2px solid var(--color--accent--orange);
    border-radius: var(--radius-l);
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-s);
    justify-content: center;
    margin-inline: auto;
    padding-block: var(--margin-l);
    padding-inline: var(--margin-2xl);
    width: min(100%, 1000px + var(--margin-2xl))
}

.p-service-plan-warranty__intro {
    --c--media--gap: 0 var(--chg--margin-4xl);
    --c--media--image--width-vw: min(29.297vw, 300px);
    --c--media--image--width-px: 300px
}

.p-service-symptoms {
    --c--column--gap: var(--margin-2xl);
    padding-block: var(--section-s)
}

.p-flow {
    --c--media--gap: 0 var(--margin-m);
    --c--media--image--width-vw: min(20.548vw, 300px);
    --c--media--image--width-px: 300px
}

.p-flow-side {
    display: none;
    font-size: .875rem;
    position: relative
}

.p-flow-side__inner {
    left: 0;
    padding-inline-start: 2.5em;
    position: sticky;
    top: calc(var(--header-height) + var(--margin-s))
}

.p-flow-side__inner:before {
    border-inline-start: 1px solid var(--color--theme--primary);
    content: "";
    height: calc(100% - 1lh);
    position: absolute;
    top: 50%;
    translate: -1.9645em -50%;
    width: 1px
}

.p-flow-side__link {
    --color--use--link: var(--color--base);
    --color--use--link-hover: var(--color--accent--orange);
    display: block;
    position: relative
}

.p-flow-side__link+.p-flow-side__link {
    margin-block-start: 1.786em
}

.p-flow-side__link:before {
    background-color: var(--side--circle-color, var(--color--base--white));
    border-radius: var(--radius-oval);
    box-shadow: inset 0 0 0 2px var(--color--accent--orange);
    content: "";
    height: 1.071em;
    position: absolute;
    top: calc(.5lh - .5355em);
    transition: var(--duration);
    translate: -2.5em 0;
    width: 1.071em
}

.p-flow-side__link.is-active {
    --side--circle-color: var(--color--accent--orange)
}

.p-flow-main__box+.p-flow-main__box {
    margin-block-start: var(--margin-xl)
}

.p-flow-main-title {
    align-items: baseline;
    background-color: var(--color--base--white);
    border-radius: var(--radius-l);
    color: var(--color--accent--orange);
    display: flex;
    font-size: clamp(1.5rem, 4.688vw, 3rem);
    font-weight: var(--font-weight-bold);
    gap: .5em;
    margin-block-end: var(--margin-m);
    padding-block: calc(.417em + var(--leading-trim-en));
    padding-inline: .625em
}

.p-flow-main-title__label {
    color: var(--color--base);
    flex: 1;
    font-size: .75em
}

.p-faq {
    --faq-before-fs: calc(var(--clamp--font-size-l)*1.5)
}

.p-faq__container {
    border-block-end: 1px solid var(--color--use--border);
    padding-block-end: var(--margin-m)
}

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

.p-faq__content {
    padding-inline-start: calc(var(--faq-before-fs) + .5em);
    position: relative
}

.p-faq__content:before {
    font-size: calc(var(--clamp--font-size-l)*1.5);
    inset-inline: 0;
    line-height: 1;
    position: absolute;
    text-align: center;
    width: 1em
}

.p-faq__content.-q {
    font-size: var(--clamp--font-size-l);
    margin-block-end: 1em
}

.p-faq__content.-q:before {
    content: "Q"
}

.p-faq__content.-a:before,
.p-faq__content.-q:before {
    font-family: var(--sub-font--family);
    font-weight: var(--font-weight-bold)
}

.p-faq__content.-a:before {
    color: var(--color--accent--orange);
    content: "A"
}

.p-contact-tel {
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-l);
    justify-content: center;
    position: relative
}

.p-contact-tel-catch {
    font-size: var(--clamp--font-size-2xl);
    font-weight: var(--font-weight-bold);
    line-height: 1.3;
    margin-block: var(--leading-trim);
    text-align: center
}

.p-contact-tel-catch__small {
    font-size: .8em
}

.p-contact-tel__human {
    inset-block-end: 0;
    inset-inline-end: var(--chg--margin-xl);
    position: absolute;
    width: min(11.719vw, 120px)
}

.p-contact-line {
    background-color: var(--color--base--light);
    padding-block: var(--section-s)
}

.p-contact-line__label {
    background-color: var(--color--base--white);
    border: 1px solid;
    border-radius: var(--radius-oval);
    color: var(--color--accent--orange);
    display: block;
    font-size: var(--clamp--font-size-xl);
    font-weight: var(--font-weight-bold);
    margin-block-end: var(--margin-xs);
    margin-inline: auto;
    padding-block: calc(.667em + var(--leading-trim-en));
    padding-inline: 1.667em;
    width: fit-content
}

.p-contact-line-column {
    --c--column--gap: clamp(60px, 10.959vw, 160px);
    overflow: clip
}

.p-contact-line-column>:not(:last-child) {
    position: relative
}

.p-contact-line-column>:not(:last-child):before {
    background-color: var(--color--accent--orange);
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    content: "";
    height: min(5.859vw, 60px);
    position: absolute;
    width: calc(min(5.859vw, 60px)/2)
}

@container c-column (min-width: 640px) {
    .p-contact-line-column>:not(:last-child):before {
        inset-block-start: 50%;
        inset-inline-start: calc(100% + var(--c--column--gap)*.375);
        translate: 0 -50%
    }
}

@container c-column (max-width: 640px) {
    .p-contact-line-column>:not(:last-child):before {
        inset-block-start: calc(100% + var(--c--column--gap)*.375);
        inset-inline-start: 50%;
        rotate: 90deg;
        translate: -50% 0
    }
}

.p-contact-line-column__qr {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-xs) var(--margin-2xs);
    justify-content: center
}

.p-contact-line-column-list {
    display: grid;
    gap: var(--margin-2xs) 0
}

.p-contact-line-column-list>li {
    align-items: baseline;
    display: grid;
    gap: var(--margin-2xs) var(--margin-xs);
    grid-template-columns: auto 1fr
}

.p-contact-line-column-list>li>:first-child {
    grid-area: 1/1/2/1;
    translate: 0 -5px
}

.p-contact-line-column-list>li:has(>.p-contact-line-column-list__desc)>:first-child {
    grid-area: 1/1/3/1
}

.p-contact-line-column-list__title {
    color: var(--color--accent--orange);
    font-size: var(--clamp--font-size-xl);
    font-weight: var(--font-weight-bold)
}

.p-form-table {
    --table-align: center
}

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

.p-form-table__head:after {
    background: var(--color--base--greyish);
    border-radius: calc(var(--radius-s)/2);
    content: "任意";
    flex: 0 0 auto;
    font-size: .75rem;
    letter-spacing: 0;
    padding-block-end: .1em;
    padding-inline: .5em
}

.p-form-table__head.req:after {
    background: var(--color--accent--orange);
    color: var(--color--base--white);
    content: "必須"
}

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

.p-form-flex,
.p-form-submit {
    align-items: center;
    display: flex
}

.p-form-flex {
    flex-wrap: wrap;
    gap: .5em 1em
}

.p-agree {
    border: 1px solid var(--color--use--border);
    border-radius: var(--radius-s);
    margin: var(--margin-xl) auto;
    padding: var(--margin-m);
    text-align: center;
    width: min(800px, 100%)
}

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

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

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

.p-agree__check label {
    border: 1px solid var(--color--use--border);
    border-radius: var(--radius-s);
    padding: .4em 1em
}

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

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

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

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

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

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

.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 {
    line-height: 1.5;
    margin-block-start: .5em
}

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

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

.p-post-list__item+.p-post-list__item {
    border-block-start: 1px solid var(--color--use--border)
}

.p-post-list__link {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5em var(--margin-m);
    padding: var(--margin-xs) 1em;
    transition: color var(--duration)
}

.p-post-list__date {
    font-size: .875rem
}

.p-post-list__title {
    line-height: 1.5
}

.p-post-single__title {
    font-size: clamp(1.5rem, 2.93vw, 1.875rem);
    font-weight: 700;
    padding-block-end: .8em
}

.p-post-single__info {
    background: var(--color--base--light);
    border-radius: var(--radius-s);
    display: flex;
    flex-wrap: wrap;
    font-size: .75rem;
    gap: .5em 1em;
    margin-block-end: var(--margin-m);
    padding: var(--margin-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 {
    background: var(--color--use--link);
    border-radius: var(--radius-s);
    color: var(--color--use--above);
    content: "PDF";
    font-size: .5em;
    letter-spacing: 0;
    margin-inline-end: .75em;
    padding: .2em .5em;
    vertical-align: middle
}

#resultsSplide .splide__slide {
    width: min(80vw, 400px)
}

#gallerySplide .splide__slide {
    height: fit-content
}

#galleryThumbSplide {
    margin-block-start: var(--margin-xs)
}

#galleryThumbSplide .splide__slide {
    --c--trim--ratio: 210/140;
    overflow: clip;
    position: relative;
    width: min(14.384vw, 210px)
}

#galleryThumbSplide .splide__slide:after {
    content: "";
    inset: 0;
    position: absolute;
    transition: var(--duration)
}

#galleryThumbSplide .splide__slide.is-active:after {
    background-color: color-mix(in srgb, var(--color--accent--orange) 50%, transparent)
}

#galleryThumbSplide .splide-progress {
    background-color: var(--color--use--border);
    margin-block-start: var(--margin-xs);
    margin-inline: auto;
    width: 260px
}

#galleryThumbSplide .splide-progress__bar {
    background-color: var(--color--accent--orange);
    height: 5px;
    transition: width .4s ease;
    width: 0
}

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

.p-results-list__item {
    position: relative
}

.p-results-list__link {
    display: block;
    height: 100%
}

.p-results-list__thumb {
    --c--trim--ratio: 400/260
}

ul .p-results-list__thumb {
    --c--trim--ratio: 380/260
}

.p-results-list-footer {
    margin-block-start: var(--margin-xs)
}

.p-results-list-footer__info {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 5px calc(var(--margin-2xs) + 5px);
    margin-block-end: var(--margin-2xs)
}

.p-results-single-header__info {
    font-size: var(--clamp--font-size-l)
}

.p-results-single-header__info,
.p-results-single-header__terms {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--margin-2xs)
}

.p-results-single-header__title {
    border-block-end: 2px solid var(--color--accent--orange);
    font-size: var(--clamp--font-size-3xl);
    font-weight: var(--font-weight-bold);
    margin-block-end: var(--margin-xl);
    padding-block-end: calc(var(--margin-s) + var(--leading-trim))
}

.p-results-single-container {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--margin-xl)
}

.p-results-single-info {
    --c-table--tr--grid-template-columns: calc(4em + var(--margin-l)) auto
}

.p-results-single-gallery {
    --c--trim--ratio: 720/450;
    flex: 1
}

.p-voice-list:is(ul) {
    --c--column--gap: min(4.11vw, 60px)
}

.p-voice-list__item {
    background-color: var(--color--base--white);
    border: 2px solid var(--color--accent--orange);
    border-radius: var(--radius);
    box-shadow: 10px 10px var(--color--accent--orange);
    position: relative
}

.p-voice-list__link {
    display: block;
    height: 100%;
    padding: var(--margin-s)
}

.p-voice-list__info {
    gap: 5px calc(var(--margin-2xs) + 5px);
    margin-block-end: var(--margin-2xs)
}

.p-voice-list__info,
.p-voice-single__info {
    align-items: center;
    display: flex;
    flex-wrap: wrap
}

.p-voice-single__info {
    font-size: var(--clamp--font-size-l);
    gap: var(--margin-2xs);
    margin-block-end: var(--margin-xs)
}

.p-voice-single__title {
    font-size: var(--clamp--font-size-2xl);
    font-weight: var(--font-weight-bold);
    margin-block-end: calc(var(--margin-xl) + var(--leading-trim))
}

.p-voice-related {
    padding-block: var(--section-s);
    position: relative
}

.p-voice-related__human {
    inset-block-end: calc(var(--section-s)*-1);
    inset-inline-end: calc(10px + clamp(0px, (100vw - 640px) * .415, 340px));
    position: absolute;
    width: min(12.177vw, 151px)
}

.p-voice-related__inner {
    margin-inline: auto;
    max-width: calc(1780px + var(--margin--use--outside)*2);
    padding-inline: var(--margin--use--outside);
    position: relative
}

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

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

.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 {
    aspect-ratio: 1/1;
    width: 1.25em;
    fill: var(--color--base--white)
}

.p-prev-next {
    display: grid;
    font-size: .875rem;
    gap: var(--margin-xs);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    line-height: 1.5;
    margin-block-start: var(--section);
    position: relative
}

.p-prev-next-btn {
    align-items: center;
    background: var(--color--use--bg);
    border-radius: var(--radius-s);
    display: flex;
    gap: 1em;
    padding: 1.4em;
    position: relative;
    transition: var(--duration)
}

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

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

.p-prev-next-btn__arrow {
    aspect-ratio: 5/6;
    flex: 0 0 auto;
    width: .5em;
    fill: currentColor
}

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

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

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

.page-numbers {
    aspect-ratio: 1/1;
    background-color: var(--color--base--white);
    border-radius: var(--radius-s);
    color: var(--color--accent--orange);
    display: grid;
    letter-spacing: 0;
    line-height: 1;
    place-content: center;
    width: 3em
}

.page-numbers.current,
.page-numbers:not(span):hover {
    background-color: var(--color--accent--orange);
    color: var(--color--use--above)
}

.page-numbers.dots {
    width: 1.25em
}

.p-post-search {
    background: var(--color--base--white);
    border-radius: var(--radius);
    padding: var(--margin-s)
}

.p-post-search__title {
    align-items: center;
    border-block-end: 2px solid var(--color--accent--orange);
    display: flex;
    font-size: var(--clamp--font-size-xl);
    font-weight: var(--font-weight-bold);
    gap: 1em;
    justify-content: space-between;
    margin-block-end: var(--margin-xs);
    padding-block-end: calc(var(--margin-xs) + var(--leading-trim))
}

.p-post-search__all {
    --c--arrow--fill: var(--color--accent--orange);
    align-items: center;
    display: flex;
    font-size: .875rem;
    gap: var(--margin-xs)
}

.p-post-search+* {
    margin-block-start: var(--section)
}

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

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

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

.u-width-side-left,
.u-width-side-right {
    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 {
    font-size: var(--clamp--font-size-l);
    font-weight: var(--font-weight-bold);
    line-height: 1.6
}

.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 {
    margin-inline-end: auto;
    margin-inline-start: auto;
    max-width: 52.5em
}

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

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

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

.u-fw-medium {
    font-weight: 500
}

.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-circle,
.u-decimal,
.u-disc,
.u-disc-orange,
.u-square {
    padding-inline-start: 1.1em
}

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

.u-disc-orange>li::marker {
    color: var(--color--accent--orange)
}

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

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

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

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

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

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

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

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

.u-hover-scale {
    transition: scale var(--duration)
}

.u-hover-opacity {
    transition: opacity var(--duration)
}

.u-coming {
    background: var(--color--base--white);
    border-radius: var(--radius);
    padding: 3em 0;
    text-align: center
}

.u-marker {
    --marker-color: var(--color--theme--secondary);
    background: linear-gradient(transparent 65%, var(--marker-color) 0)
}

.u-marker-full {
    --marker-color: var(--color--accent--orange);
    background-color: var(--marker-color);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    padding-inline: .2em
}

.u-br-dn,
.u-br-up {
    display: none
}

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

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

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

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

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

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

.u-base {
    color: var(--color--base)
}

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

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

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

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

.u-border-orange {
    border: 2px solid var(--color--accent--orange)
}

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

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

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

.u-relative {
    position: relative
}

.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-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-radius {
    border-radius: var(--radius)
}

.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-2xl {
    border-radius: var(--radius-2xl)
}

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

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

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

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

.u-radius-top {
    border-bottom-right-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 {
    align-items: center;
    display: flex;
    gap: 0 var(--margin-2xs)
}

.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-align-items-start {
    align-items: start
}

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

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

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

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

.u-justify-content-end {
    justify-content: 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
}

.is-accordion-trigger {
    cursor: pointer
}

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

@keyframes a {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes b {
    0% {
        opacity: 0;
        transform: scale(.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(.8) translateX(6px)
    }

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

    90% {
        transform: scale(.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(.8) translateX(-6px)
    }

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

    90% {
        transform: scale(.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: hsla(0, 0%, 100%, .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: -.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: transparent;
    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 hsla(0, 0%, 100%, .8);
    content: "";
    display: block;
    height: 36px;
    position: absolute;
    top: 50%;
    width: 36px
}

.lum-previous-button:after {
    border-left: 4px solid hsla(0, 0%, 100%, .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 hsla(0, 0%, 100%, .8);
    box-shadow: 2px 0 rgba(0, 0, 0, .2);
    right: 12%;
    transform: translateY(-50%) rotate(45deg)
}

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

    to {
        transform: rotate(1turn)
    }
}

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

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

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

.splide--rtl {
    direction: rtl
}

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

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

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

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

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

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

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

.splide__progress__bar {
    width: 0
}

.splide {
    position: relative;
    visibility: hidden
}

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

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

.splide__slide img {
    vertical-align: bottom
}

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

.splide__sr {
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    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 {
    overflow: hidden;
    position: relative;
    z-index: 0
}

@media (min-width:641px) {
    .p-footer-nav {
        flex-direction: row;
        flex-wrap: wrap
    }

    .p-tel__note>br {
        display: none
    }

    .p-contact-tel {
        padding-inline-end: calc(min(11.719vw, 120px) + var(--chg--margin-xl))
    }

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

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

@media (min-width:821px) {
    .page-title__container>.title-1 {
        margin-inline: auto;
        min-width: 700px;
        width: fit-content
    }

    .c-btn,
    .c-btn-bd-inline {
        min-width: var(--c--btn--min-width, clamp(17.5rem, 35.156vw, 22.5rem))
    }

    .c-table tr {
        align-items: var(--table-align, baseline);
        grid-template-columns: var(--c-table--tr--grid-template-columns, 14em auto)
    }

    .p-header-btn {
        font-size: .813rem;
        font-weight: 700;
        order: 1;
        padding: 1em 1.429em
    }

    .p-home-fv-post {
        align-items: center;
        display: flex;
        gap: var(--margin-s);
        margin-inline: auto;
        width: min(100%, 1000px)
    }

    .p-about-nav {
        grid-template-columns: repeat(4, 1fr)
    }

    .p-flow {
        display: flex;
        gap: var(--margin-xl);
        justify-content: space-between
    }

    .p-flow-side {
        display: block;
        width: 280px
    }

    .p-flow-main {
        flex: 1
    }

    .p-results-single-container {
        flex-direction: row
    }

    .p-results-single-info {
        width: clamp(380px, 31.507vw, 460px)
    }

    .p-results-single-gallery {
        overflow: hidden
    }

    .p-prev-next {
        flex-direction: row
    }
}

@media (min-width:821px) and (max-width:1460px) {
    .p-header-btn {
        height: var(--header-height);
        margin: 0 0 0 auto
    }
}

@media (min-width:1025px) {
    #pagetop {
        --c--arrow--width: 2em;
        align-items: center;
        background: var(--color--accent--orange);
        border-radius: var(--radius-oval);
        color: var(--color--use--above);
        display: flex;
        flex-direction: column;
        font-size: .625rem;
        height: 60px;
        inset-block-end: var(--margin-2xl);
        inset-inline-end: var(--margin-m);
        justify-content: center;
        opacity: 0;
        position: fixed;
        rotate: -90deg;
        transition: var(--duration);
        visibility: hidden;
        width: 60px;
        z-index: 103
    }

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

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

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

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

    .p-footer__inner {
        flex-direction: row;
        justify-content: space-between
    }

    .p-footer-info {
        width: 500px
    }

    .p-fixed-nav {
        inset-block-start: calc(var(--site-top-height) + var(--header-height) + var(--margin-xl));
        inset-inline-end: 0;
        translate: var(--fixed-nav--width) 0
    }

    .p-fixed-nav__label {
        writing-mode: vertical-rl
    }

    .p-home-news {
        flex-direction: row
    }

    .p-home-news__intro {
        display: block;
        width: min(25vw, 360px)
    }

    .p-home-news__content {
        flex: 1
    }

    .p-home-news__btn {
        margin: 0
    }

    .p-service-plan-price {
        flex-direction: row
    }

    .p-service-plan-price__main {
        width: min(100%, 780px)
    }

    .p-service-plan-price__option {
        flex: 0 0 auto;
        width: clamp(330px, 25.342vw, 370px)
    }

    .p-service-plan-price-total {
        justify-content: space-between
    }

    .p-post-list__title {
        flex: 1
    }

    .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-sub-nav {
        align-items: center;
        display: flex;
        font-size: .75em;
        font-weight: var(--font-weight-bold);
        gap: .833em
    }

    .p-sub-nav--header {
        inset-block-start: -3.333em;
        inset-inline-end: 0;
        justify-content: flex-end;
        padding-inline: 1em var(--margin-s);
        position: absolute
    }

    .is-passing .p-sub-nav--header {
        inset-block-end: 100%;
        inset-block-start: auto
    }

    .p-sub-nav__link {
        padding-block: .357em;
        padding-inline: .357em
    }
}

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

    .l-site-top {
        color: var(--color--theme--primary);
        display: block;
        font-size: .625rem;
        line-height: var(--site-top-height);
        margin: 0 var(--margin-m);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

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

    .is-passing .p-header {
        position: fixed
    }

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

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

    .is-passing .p-header__container {
        box-shadow: var(--box-shadow)
    }

    .p-header-logo {
        margin: 0 auto 0 0
    }

    .p-header-logo__image {
        width: min(13.854vw, 266px)
    }

    .p-header-btn {
        border-radius: 3em
    }

    .p-gnav {
        align-self: stretch
    }

    .p-gnav__inner {
        display: contents
    }

    .p-gnav-icon {
        display: none
    }

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

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

    .p-main-nav__item {
        flex: 1 1 auto;
        height: inherit;
        position: relative
    }

    .p-main-nav__item>.is-accordion-trigger {
        cursor: default
    }

    .p-main-nav__item:has(.is-current):before {
        background: var(--color--accent--orange);
        border-radius: var(--radius-oval);
        content: "";
        height: .625em;
        left: 0;
        position: absolute;
        top: 50%;
        translate: 0 -50%;
        width: .625em
    }

    .p-main-nav__link {
        align-items: center;
        display: flex;
        font-size: clamp(.813rem, .833vw, 1rem);
        font-weight: var(--font-weight-bold);
        gap: .625em;
        height: inherit;
        padding: 1em min(1vw, 1em);
        text-align: center;
        transition: color var(--duration)
    }

    .p-main-nav__item:has(.p-mega .is-current) .p-main-nav__link,
    .p-main-nav__link.is-current {
        color: var(--color--use--link-hover)
    }

    .p-mega {
        --mega--translate-x: -50%;
        backdrop-filter: blur(2px);
        background: var(--color--base--light);
        border-radius: 0 0 var(--radius-l) var(--radius-l);
        height: auto !important;
        inset-block-start: 100%;
        inset-inline-start: 50%;
        opacity: 0;
        padding: var(--margin-m);
        pointer-events: none;
        position: absolute;
        translate: var(--mega--translate-x) 10px;
        z-index: -1
    }

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

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

    .p-mega-list {
        display: grid;
        gap: var(--margin-m);
        grid-template-columns: repeat(auto-fill, minmax(min(29.297vw, 300px), 1fr));
        margin-inline: auto;
        width: 1060px
    }

    .p-mega-btn {
        display: none
    }

    .p-footer-info-logo__image {
        width: min(13.854vw, 266px)
    }
}

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

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

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

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

    .p-gnav.is-sp {
        transition: .5s cubic-bezier(.65, .05, .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 {
        align-items: center;
        background: hsla(0, 0%, 100%, .4);
        border: none;
        cursor: pointer;
        display: flex;
        height: var(--header-height);
        inset-inline-end: 0;
        justify-content: center;
        outline: none;
        overflow: hidden;
        position: fixed;
        top: 0;
        width: var(--header-height);
        z-index: 107
    }

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

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

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

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

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

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

    #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 {
        border-block-end: 1px solid var(--color--use--border);
        position: relative
    }

    .p-main-nav__link {
        display: block;
        padding: 1em
    }

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

    .p-mega-list__thumb {
        display: none
    }

    .p-mega-list__label {
        font-size: .875em;
        padding-inline: 1.5em
    }
}

@media (max-width:1240px) {
    .p-sub-nav {
        font-size: .875em;
        margin-block-start: var(--margin-xs)
    }

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

@media (max-width:1024px) {
    .p-fixed-nav {
        --fixed-nav--height: 5em;
        display: flex;
        inset-block-end: 0;
        inset-inline-end: 0;
        inset-inline-start: 0;
        translate: 0 var(--fixed-nav--height);
        width: 100%
    }

    .p-fixed-nav__link {
        border-radius: var(--radius-l) var(--radius-l) 0 0;
        flex: 1
    }

    .p-post-list__title {
        width: 100%
    }

    .u-br-dn {
        display: inline
    }

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

@media (max-width:820px) {
    .p-header-btn {
        border-radius: 3em;
        font-size: .875rem;
        inset-block-end: 5px;
        inset-inline-start: 50%;
        max-width: 95vw;
        padding: 1em 0;
        position: fixed;
        transform: translateX(-50%);
        transition: padding .2s;
        width: 100%;
        z-index: 106
    }

    .p-header-btn:active {
        padding: 1.2em 0
    }

    .p-home-fv-post-title {
        margin-block-end: var(--margin-xs)
    }

    .p-home-fv-post__content {
        justify-content: space-between
    }

    .p-home-fv-post-link__title {
        display: -webkit-box;
        flex: auto;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2
    }

    .p-home-fv-post-more {
        position: absolute;
        right: var(--home-fv-post--padding-inline);
        top: var(--home-fv-post--padding-block);
        z-index: 1
    }

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

@media (max-width:640px) {

    .p-footer-info-logo__text,
    .p-header-logo__text {
        display: none
    }

    .p-tel.-header {
        background: var(--color--base--light);
        width: 50px
    }

    .-header .p-tel__note,
    .-header .p-tel__num,
    .p-contact-tel__human {
        display: none
    }

    .u-width-side-left,
    .u-width-side-right {
        padding-inline: var(--margin--use--outside)
    }

    .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) {
    .u-hover-scale:hover {
        scale: 1.05
    }

    .u-hover-opacity:hover {
        opacity: .7
    }
}

@media (prefers-reduced-motion:reduce) {

    *,
    :after,
    :before {
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important
    }
}
