abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video {
    background: rgba(0,0,0,0);
    border: 0;
    font-size: 100%;
    list-style: none;
    margin: 0;
    outline: 0;
    padding: 0;
    vertical-align: baseline
}

body {
    line-height: 1
}

article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
    display: block
}

nav ul {
    list-style: none
}

blockquote,q {
    quotes: none
}

blockquote:after,blockquote:before,q:after,q:before {
    content: "";
    content: none
}

a {
    background: rgba(0,0,0,0);
    font-size: 100%;
    margin: 0;
    padding: 0;
    vertical-align: baseline
}

a,ins {
    color: inherit;
    text-decoration: none
}

ins,mark {
    background-color: #ff9
}

mark {
    color: #000;
    font-style: italic;
    font-weight: 700
}

del {
    text-decoration: line-through
}

abbr[title],dfn[title] {
    border-bottom: 1px dotted;
    cursor: help
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

hr {
    border: 0;
    border-top: 1px solid #ccc;
    display: block;
    height: 1px;
    margin: 1em 0;
    padding: 0
}

input,select {
    vertical-align: middle
}

img,video {
    font-size: 0;
    line-height: 0
}

*,*::before,*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box
}

:where([hidden]:not([hidden=until-found])) {
    display: none !important
}

:where(html) {
    -webkit-text-size-adjust: none;
    color-scheme: dark light;
    tab-size: 2
}

:where(html:has(dialog:modal[open])) {
    overflow: clip
}

:where(body) {
    line-height: 1.5;
    font-family: system-ui,sans-serif;
    -webkit-font-smoothing: antialiased
}

:where(button) {
    all: unset;
    box-sizing: border-box
}

:where(input,button,textarea,select) {
    font: inherit;
    color: inherit
}

:where(textarea) {
    resize: vertical;
    resize: block
}

:where(button,label,select,summary,[role=button],[role=option]) {
    cursor: pointer
}

:where(:disabled) {
    cursor: not-allowed
}

:where(label:has(>input:disabled),label:has(+input:disabled)) {
    cursor: not-allowed
}

:where(a) {
    color: inherit;
    text-underline-offset: .2ex
}

:where(ul,ol) {
    list-style: none
}

:where(img,svg,video,canvas,audio,iframe,embed,object) {
    display: block
}

:where(img,picture,svg,video) {
    max-inline-size: 100%;
    block-size: auto
}

:where(p,h1,h2,h3,h4,h5,h6) {
    overflow-wrap: break-word
}

:where(h1,h2,h3) {
    line-height: calc(1em + .5rem)
}

:where(hr) {
    border: none;
    border-block-start:1px solid;color: inherit;
    block-size: 0;
    overflow: visible
}

:where(dialog) {
    border: none;
    background: none;
    inset: unset;
    max-width: unset;
    max-height: unset
}

:where(dialog:not([open])) {
    display: none !important
}

:where(:focus-visible) {
    outline: 3px solid CanvasText;
    box-shadow: 0 0 0 5px Canvas;
    outline-offset: 1px
}

:where(:focus-visible,:target) {
    scroll-margin-block: 8vh
}

:where(.visually-hidden:not(:focus-within,:active)) {
    clip-path: inset(50%) !important;
    height: 1px !important;
    width: 1px !important;
    overflow: hidden !important;
    position: absolute !important;
    white-space: nowrap !important;
    border: 0 !important
}

:root {
    --vh: 1vh;
    --vw: 1vw;
    --primary-100: #e6f4e9;
    --primary-200: #c3e4c8;
    --primary-250: #73c283;
    --primary-300: #9cd2a6;
    --primary-350: #429b30;
    --primary-400: #32a94f;
    --primary-500: #2a9a46;
    --primary-600: #1f883b;
    --primary-900: #00581e;
    --secondary-50: #fbf8e7;
    --secondary-100: #fbeaaf;
    --secondary-600: #eec947;
    --accent-gold: #e5c745;
    --accent-green: #2f962d;
    --white: #fff;
    --black: #222;
    --gray-100: #f4f4f4;
    --gray-300: #d9d9d9;
    --gray-400: #cfcfcf;
    --gray-600: #9c9c9c;
    --gray-650: #707070;
    --gray-700: #666666;
    --gray-800: #555555;
    --gray-900: #333;
    --header-height: 84px;
    --scroll-offset: 24px
}

[id] {
    scroll-margin-top: calc(var(--header-height) + var(--scroll-offset))
}

html {
    scroll-behavior: smooth
}

html.is-fixed {
    position: fixed;
    width: 100%;
    overflow: hidden
}

body {
    font-size: 1.125rem;
    font-family: "Noto Sans JP",sans-serif;
    font-weight: 400;
    color: var(--black);
    line-height: 1.875;
    background-color: var(--white)
}

body.is-fixed,body.is-locked {
    width: 100vw;
    position: fixed;
    overflow: hidden
}

main {
    overflow: clip
}

main a img,aside a img {
    transition: opacity .3s ease
}

*:has(>wbr) {
    word-break: keep-all;
    overflow-wrap: anywhere
}

a:not([class]) {
    font-weight: 700;
    color: var(--primary-600);
    text-decoration: underline
}

a:not([class])[target=_blank]:not(:has(img))::after {
    content: "";
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    margin-left: .5em;
    vertical-align: -0.4em;
    background: url(/wp-content/themes/cns-hokkaido2026/assets/images/icon_new-window.svg) no-repeat center/contain
}

main p {
    margin-bottom: 24px
}

figure {
    margin-block:40px}

figure img {
    border-radius: 8px
}

::placeholder {
    color: var(--gray-600)
}

:root {
    --swiper-theme-color: #007aff
}

:host {
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 1
}

.swiper {
    display: block;
    list-style: none;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
    padding: 0;
    position: relative;
    z-index: 1
}

.swiper-vertical>.swiper-wrapper {
    flex-direction: column
}

.swiper-wrapper {
    box-sizing: initial;
    display: flex;
    height: 100%;
    position: relative;
    transition-property: transform;
    transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
    width: 100%;
    z-index: 1
}

.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper {
    transform: translateZ(0)
}

.swiper-horizontal {
    touch-action: pan-y
}

.swiper-vertical {
    touch-action: pan-x
}

.swiper-slide {
    display: block;
    flex-shrink: 0;
    height: 100%;
    position: relative;
    transition-property: transform;
    width: 100%
}

.swiper-slide-invisible-blank {
    visibility: hidden
}

.swiper-autoheight,.swiper-autoheight .swiper-slide {
    height: auto
}

.swiper-autoheight .swiper-wrapper {
    align-items: flex-start;
    transition-property: transform,height
}

.swiper-backface-hidden .swiper-slide {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0)
}

.swiper-3d.swiper-css-mode .swiper-wrapper {
    perspective: 1200px
}

.swiper-3d .swiper-wrapper {
    transform-style: preserve-3d
}

.swiper-3d {
    perspective: 1200px;
    .swiper-cube-shadow,.swiper-slide {
        transform-style: preserve-3d
    }
}

.swiper-css-mode {
    >.swiper-wrapper {
        overflow: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
        &::-webkit-scrollbar {
            display: none
        }
    }

    >.swiper-wrapper>.swiper-slide {
        scroll-snap-align: start start
    }

    &.swiper-horizontal {
        >.swiper-wrapper {
            scroll-snap-type: x mandatory
        }

        >.swiper-wrapper>.swiper-slide:first-child {
            margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start: var(--swiper-slides-offset-before)
        }

        >.swiper-wrapper>.swiper-slide:last-child {
            margin-inline-end:var(--swiper-slides-offset-after)}
    }

    &.swiper-vertical {
        >.swiper-wrapper {
            scroll-snap-type: y mandatory
        }

        >.swiper-wrapper>.swiper-slide:first-child {
            margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start: var(--swiper-slides-offset-before)
        }

        >.swiper-wrapper>.swiper-slide:last-child {
            margin-block-end:var(--swiper-slides-offset-after)}
    }

    &.swiper-free-mode {
        >.swiper-wrapper {
            scroll-snap-type: none
        }

        >.swiper-wrapper>.swiper-slide {
            scroll-snap-align: none
        }
    }

    &.swiper-centered {
        >.swiper-wrapper:before {
            content: "";
            flex-shrink: 0;
            order: 9999
        }

        >.swiper-wrapper>.swiper-slide {
            scroll-snap-align: center center;
            scroll-snap-stop:always}
    }

    &.swiper-centered.swiper-horizontal {
        >.swiper-wrapper>.swiper-slide:first-child {
            margin-inline-start:var(--swiper-centered-offset-before)}

        >.swiper-wrapper: before {
            height:100%;
            min-height: 1px;
            width: var(--swiper-centered-offset-after)
        }
    }

    &.swiper-centered.swiper-vertical {
        >.swiper-wrapper>.swiper-slide:first-child {
            margin-block-start:var(--swiper-centered-offset-before)}

        >.swiper-wrapper: before {
            height:var(--swiper-centered-offset-after);
            min-width: 1px;
            width: 100%
        }
    }
}

.swiper-3d {
    .swiper-slide-shadow,.swiper-slide-shadow-bottom,.swiper-slide-shadow-left,.swiper-slide-shadow-right,.swiper-slide-shadow-top {
        height: 100%;
        left: 0;
        pointer-events: none;
        position: absolute;
        top: 0;
        width: 100%;
        z-index: 10
    }

    .swiper-slide-shadow {
        background: rgba(0,0,0,.1490196078)
    }

    .swiper-slide-shadow-left {
        background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.5019607843), rgba(0, 0, 0, 0))
    }

    .swiper-slide-shadow-right {
        background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.5019607843), rgba(0, 0, 0, 0))
    }

    .swiper-slide-shadow-top {
        background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.5019607843), rgba(0, 0, 0, 0))
    }

    .swiper-slide-shadow-bottom {
        background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.5019607843), rgba(0, 0, 0, 0))
    }
}

.swiper-lazy-preloader {
    border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
    border-radius: 50%;
    border-top: 4px solid rgba(0,0,0,0);
    box-sizing: border-box;
    height: 42px;
    left: 50%;
    margin-left: -21px;
    margin-top: -21px;
    position: absolute;
    top: 50%;
    transform-origin: 50%;
    width: 42px;
    z-index: 10
}

.swiper-watch-progress .swiper-slide-visible,.swiper:not(.swiper-watch-progress) {
    .swiper-lazy-preloader {
        animation: swiper-preloader-spin 1s linear infinite
    }
}

.swiper-lazy-preloader-white {
    --swiper-preloader-color: #fff
}

.swiper-lazy-preloader-black {
    --swiper-preloader-color: #000
}

@keyframes swiper-preloader-spin {
    0% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(1turn)
    }
}

.header {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);
    background-color: var(--white);
    z-index: 1000;
    transition: transform .3s ease,background-color .3s ease,box-shadow .3s ease
}

.header.is-scrolled {
    box-shadow: 0 2px 8px rgba(0,0,0,.05)
}

body.top-page .header {
    position: fixed;
    transform: translateY(-110%)
}

body.top-page .header.is-scrolled {
    transform: translateY(0)
}

body.message-top-page .header,body.recruit-top-page .header {
    position: fixed;
    background-color: rgba(0,0,0,0)
}

body.message-top-page .header.is-scrolled,body.recruit-top-page .header.is-scrolled {
    background-color: var(--white)
}

.header__inner {
    max-width: 1920px;
    margin: 0 auto;
    padding: 0 40px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 64px
}

.header__logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    transition: opacity .3s ease
}

.header__logo img {
    height: 52px;
    width: auto
}

.header__nav {
    display: flex;
    align-items: center;
    gap: 40px
}

.header__nav-list {
    display: flex;
    align-items: center;
    gap: 48px;
    list-style: none
}

.header__nav-item {
    position: relative;
    white-space: nowrap
}

.header__nav-item--has-dropdown.is-active .header__nav-toggle-icon::after {
    opacity: 0;
    transform: translateX(-50%) rotate(90deg)
}

.header__nav-link {
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--black);
    text-decoration: none;
    transition: color .3s ease
}

.header__nav-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer
}

.header__nav-toggle-icon {
    position: relative;
    width: 14px;
    height: 14px
}

.header__nav-toggle-icon::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--primary-600);
    transform: translateY(-50%);
    transition: background-color .3s ease
}

.header__nav-toggle-icon::after {
    content: "";
    position: absolute;
    background-color: var(--primary-600)
}

.header__nav-toggle-icon::before {
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    transform: translateY(-50%);
    transition: background-color .3s ease
}

.header__nav-toggle-icon::after {
    top: 0;
    left: 50%;
    width: 2px;
    height: 100%;
    transform: translateX(-50%);
    transition: opacity .3s ease,transform .3s ease
}

.header__nav-toggle-icon.is-active::after {
    opacity: 0;
    transform: translateX(-50%) rotate(90deg)
}

.header__dropdown-list {
    list-style: none;
    background-color: var(--primary-600);
    background: linear-gradient(90deg, #1f883b 0%, #147731 100%);
    border-radius: 10px;
    padding: 24px 36px;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.header__dropdown-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: var(--white);
    font-size: 1.125rem;
    font-weight: 500;
    text-decoration: none;
    transition: opacity .3s ease
}

.header__dropdown-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    background-color: var(--primary-400);
    flex-shrink: 0
}

.header__dropdown-arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.header__dropdown-arrow img {
    filter: brightness(0) invert(1)
}

.header__hamburger {
    display: none;
    -webkit-appearance: none;
    appearance: none;
    background: rgba(0,0,0,0);
    border: none;
    cursor: pointer;
    width: 20px;
    height: 20px;
    position: relative;
    z-index: 1100
}

.header__hamburger-bar {
    display: block;
    width: 100%;
    height: 2px;
    background-color: var(--black);
    position: absolute;
    left: 0;
    transition: all .3s ease
}

.header__hamburger-bar:nth-child(1) {
    top: 0
}

.header__hamburger-bar:nth-child(2) {
    top: 50%;
    transform: translateY(-50%)
}

.header__hamburger-bar:nth-child(3) {
    bottom: 0
}

.header__hamburger.is-active .header__hamburger-bar:nth-child(1) {
    top: 50%;
    transform: translateY(-50%) rotate(45deg)
}

.header__hamburger.is-active .header__hamburger-bar:nth-child(2) {
    opacity: 0
}

.header__hamburger.is-active .header__hamburger-bar:nth-child(3) {
    bottom: 50%;
    transform: translateY(50%) rotate(-45deg)
}

.footer {
    background-color: var(--black);
    color: var(--white);
    padding: 96px 0 42px
}

.footer__inner {
    max-width: 1330px;
    margin: 0 auto;
    padding: 0 20px
}

.footer__main {
    display: grid;
    grid-template-columns: 1.47fr 1fr auto auto;
    gap: 80px;
    padding-bottom: 108px;
    border-bottom: 1px solid hsla(0,0%,100%,.5)
}

.footer__company {
    display: flex;
    flex-direction: column;
    gap: 48px
}

.footer__logo img {
    height: 100px;
    width: auto
}

.footer__company-info {
    background-color: var(--gray-900);
    padding: 32px;
    border-radius: 8px;
    color: hsla(0,0%,100%,.8)
}

.footer__company-info>* {
    margin-bottom: 0
}

.footer__company-name {
    font-size: 1.125rem;
    font-weight: 500;
    margin-top: 0;
    margin-bottom: 24px
}

.footer__company-address {
    font-size: 1.125rem;
    font-style: normal
}

.footer__company-address>* {
    margin-bottom: 0
}

.footer__nav-title {
    font-size: 1.25rem;
    color: var(--primary-200);
    margin-bottom: 14px
}

.footer__nav-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
    list-style: none
}

.footer__nav-list+.footer__nav-title {
    margin-top: 34px
}

.footer__nav-item {
    position: relative;
    padding-left: 16px;
    line-height: 1
}

.footer__nav-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: .6em;
    width: 6px;
    height: 6px;
    background-color: var(--white);
    border-radius: 50%
}

.footer__nav-link {
    font-size: 1.125rem;
    line-height: 1.4;
    color: var(--white);
    text-decoration: none;
    transition: color .3s ease
}

.footer__nav-sub-list {
    margin-top: 24px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    list-style: none
}

.footer__nav-sub-list .footer__nav-item {
    padding-left: 0
}

.footer__nav-sub-list .footer__nav-item::before {
    content: none
}

.footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 24px;
    gap: 32px
}

.footer__bottom-links {
    display: flex;
    gap: 32px;
    list-style: none
}

.footer__bottom-links li {
    line-height: 1
}

.footer__bottom-link {
    font-size: .875rem;
    text-decoration: none;
    transition: color .3s ease
}

.footer__copyright {
    font-size: .75rem;
    color: hsla(0,0%,100%,.5)
}

.page {
    box-sizing: content-box;
    padding-inline:32px;max-width: 1290px;
    margin-inline:auto;padding-block:64px 160px}

.page>:first-child {
    margin-top: 0
}

.page>:last-child {
    margin-bottom: 0
}

.container {
    margin-inline:auto}

.container--w-sm {
    max-width: 1024px
}

.container--w-xs {
    max-width: 764px
}

.container:first-child>:first-child {
    margin-top: 0
}

.container:last-child>:last-child {
    margin-bottom: 0
}

.button {
    display: inline-flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    min-height: 58px;
    padding: 8px 16px 8px 32px;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.5;
    text-decoration: none;
    border-radius: 50px;
    transition: all .3s ease;
    border: 1px solid rgba(0,0,0,0);
    cursor: pointer
}

.button__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    flex-shrink: 0
}

.button__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.button__download {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    flex-shrink: 0
}

.button__download img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.button[disabled] {
    opacity: .5;
    cursor: not-allowed;
    pointer-events: none
}

.button--primary,.wp-block-button:not(.is-style-button-secondary):not(.button--secondary):not(.is-style-button-tertiary):not(.button--tertiary) .button,.wp-block-file .button {
    background-color: var(--primary-600);
    color: var(--white);
    border-color: var(--primary-600)
}

.button--primary .button__arrow,.wp-block-button:not(.is-style-button-secondary):not(.button--secondary):not(.is-style-button-tertiary):not(.button--tertiary) .button .button__arrow,.wp-block-file .button .button__arrow {
    background-color: var(--primary-400)
}

.button--white {
    background-color: var(--white);
    color: var(--primary-600);
    border-color: var(--primary-600)
}

.button--white .button__arrow {
    background-color: var(--primary-100)
}

.button--white .button__arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%)
}

.button--white .button__download {
    background-color: var(--primary-100)
}

.button--white .button__download img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%)
}

.button--header {
    background: linear-gradient(to right, var(--accent-gold), var(--accent-green));
    color: var(--primary-600);
    border: none;
    position: relative;
    box-shadow: 0 0 16px var(--primary-200);
    padding: 8px 16px 8px 32px
}

.button--header::before {
    content: "";
    position: absolute;
    width: calc(100% - 8px);
    height: calc(100% - 8px);
    background-color: var(--white);
    border-radius: 50px;
    left: 4px;
    top: 4px
}

.button--header>span {
    position: relative;
    z-index: 2
}

.button--header .button__arrow {
    background: linear-gradient(to right, var(--accent-gold), var(--accent-green));
    width: 52px;
    height: 40px
}

.button--fixed-contact {
    position: fixed;
    bottom: 116px;
    right: 40px;
    z-index: 100;
    min-height: 64px;
    padding: 6px 16px 6px 20px;
    color: var(--black);
    border-color: var(--white);
    border-width: 2px;
    background-color: var(--secondary-600);
    width: 320px;
    justify-content: start;
    font-family: "Josefin Sans",sans-serif;
    font-weight: 700;
    box-shadow: 0px 0px 16px rgba(0,0,0,.16)
}

.top-page .button--fixed-contact {
    opacity: 0;
    transition: opacity .3s ease
}

.top-page .button--fixed-contact.is-visible {
    opacity: 1
}

.button--fixed-contact .button__text {
    margin-top: 6px
}

.button--fixed-contact .button__arrow {
    background-color: var(--secondary-100);
    width: 52px;
    height: 40px;
    margin-left: auto
}

.button--fixed-contact .button__arrow img {
    filter: brightness(0) saturate(100%) invert(7%) sepia(5%) saturate(200%) hue-rotate(314deg) brightness(92%) contrast(85%)
}

.button--fixed-entry {
    position: fixed;
    bottom: 116px;
    right: 40px;
    z-index: 100;
    min-width: auto;
    padding: 30px 58px 30px 46px;
    border-radius: 30px;
    border: 2px solid var(--white);
    font-weight: 700;
    justify-content: center;
    background: linear-gradient(to right, var(--accent-gold), var(--accent-green));
    color: var(--white);
    box-shadow: 0px 0px 16px rgba(0,0,0,.16);
    transition: opacity .3s ease
}

.button--fixed-entry .button__icon {
    width: 60px;
    height: auto;
    flex-shrink: 0
}

.button--fixed-entry .button__icon img {
    width: 100%;
    height: 100%
}

.button--fixed-entry .button__text {
    display: flex;
    flex-direction: column;
    font-size: 1.125rem;
    letter-spacing: .04em;
    line-height: 1;
    font-weight: 700
}

.button--fixed-entry .button__label {
    font-family: "Josefin Sans",sans-serif;
    font-size: 2.625rem;
    letter-spacing: 0;
    font-weight: 600
}

.button--fixed-entry .button__arrow {
    display: none
}

.button--lg {
    min-height: 64px
}

.button--lg .button__arrow {
    width: 52px;
    height: 40px
}

.button--xl {
    min-height: 100px;
    font-size: 1.75rem;
    padding: 8px 20px 8px 32px
}

.button--w-full {
    width: 100%
}

.button--continue {
    width: 159px;
    min-width: auto !important;
    aspect-ratio: 159/104;
    min-height: unset;
    background-color: var(--primary-600);
    color: var(--white);
    flex-direction: column;
    justify-content: center;
    border-radius: 91px 0 91px 0/92px 0 92px 0;
    padding: 3px 0 0 6px
}

.button--continue .button__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px
}

.button--continue .button__arrow {
    background-color: var(--primary-400)
}

#mv-wrapper {
    width: 100%;
    height: 180vh;
    position: relative;
    z-index: 10
}

#mv-pin-container {
    position: sticky;
    top: 0;
    width: 100%;
    min-height: 100vh;
    overflow: hidden
}

.mv__animate {
    position: absolute;
    top: 0;
    left: 50%;
    width: auto;
    height: 100%;
    z-index: 1;
    transform: translateX(-50%);
    background-color: var(--white)
}

.mv__blur-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
    background-color: hsla(0,0%,100%,.6);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    opacity: 0
}

.mv__skip-btn {
    position: absolute;
    bottom: 24px;
    left: 24px;
    z-index: 3000;
    background: rgba(0,0,0,.1);
    border: 1px solid rgba(0,0,0,.2);
    color: var(--gray-900);
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.75rem;
    cursor: pointer;
    transition: background .3s
}

.mv__skip-btn:hover {
    background: rgba(0,0,0,.2)
}

#tree-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    overflow: hidden
}

.tree-image {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) scale(0);
    height: 100%;
    width: auto;
    opacity: 0;
    transition: opacity .8s ease-in-out;
    will-change: opacity,transform
}

.tree-image:first-child {
    opacity: 1
}

.tree-image.is-bouncing {
    transform-origin: center bottom;
    animation: bounce-only .5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards
}

@keyframes bounce-only {
    0% {
        transform: translateX(-50%) scale(0)
    }

    60% {
        transform: translateX(-50%) scale(1.6)
    }

    100% {
        transform: translateX(-50%) scale(1)
    }
}

#leaf-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
    opacity: 0;
    transition: opacity 1s ease-in-out
}

#leaf-canvas.is-visible {
    opacity: 1
}

.content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-60px);
    transition: opacity 1.5s ease,transform 1.5s ease-out
}

.content.is-visible {
    opacity: 1;
    transform: translateY(-80px)
}

.content__logo {
    position: relative
}

.content__logo img {
    width: 14.8vh;
    position: relative;
    z-index: 2
}

#leaf-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    pointer-events: none
}

.leaf-image {
    position: absolute;
    opacity: 0;
    width: 60px;
    height: auto;
    transition: opacity 1s ease;
    transform-origin: top right
}

.leaf-img-1 {
    top: 18.5185185185%;
    left: 3.0208333333%;
    width: 11.6666666667%
}

.leaf-img-2 {
    bottom: 22.2222222222%;
    right: 6.8229166667%;
    width: 9.1666666667%
}

#leaf-img-3 {
    top: 6%;
    left: 50%;
    transform-origin: 0 0;
    width: 70px
}

#leaf-img-4 {
    top: 34%;
    left: 63%;
    width: 65px
}

#leaf-img-5 {
    top: 66%;
    left: 30%;
    transform-origin: 0 0;
    width: 55px
}

#mv__static-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity .5s ease
}

#mv__static-image.is-animated {
    opacity: 1
}

#mv__static-image img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.mv {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 10;
    display: flex;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    padding-top: var(--header-height)
}

.mv.is-visible {
    opacity: 1;
    visibility: visible
}

.mv__background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1
}

.mv__background::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: hsla(0,0%,100%,.4);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    z-index: 2
}

.mv__background img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.mv__content {
    position: relative;
    z-index: 3;
    padding: 20px 60px;
    max-width: 1290px;
    margin: 0 auto;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center
}

.mv__lead {
    font-size: 1.75rem;
    font-weight: bold;
    margin-block:unset;text-align: center;
    margin-bottom: 72px
}

.mv__title {
    text-align: center;
    font-size: 4.6875rem;
    font-weight: 700;
    font-family: "Josefin Sans",sans-serif;
    line-height: 1.125
}

.mv__description {
    text-align: center;
    font-size: 1.125rem;
    line-height: 2.25;
    margin-block:32px 64px;letter-spacing: .04em
}

.mv__skip {
    position: absolute;
    bottom: 40px;
    left: 50px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: opacity .3s ease;
    background-color: hsla(0,0%,100%,.9);
    padding: 12px 20px;
    border-radius: 30px;
    border: 1px solid rgba(34,34,34,.1)
}

.mv__skip-icon {
    width: 20px;
    height: 20px
}

.mv__skip-icon img {
    width: 100%;
    height: 100%
}

.mv__skip-text {
    font-size: .875rem;
    font-weight: 700;
    line-height: 1;
    font-family: "Josefin Sans",sans-serif;
    color: var(--black);
    margin-top: 2px
}

.mv__back-message-loop {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 1;
    display: flex;
    overflow: hidden
}

.mv__back-message-text {
    font-family: "Josefin Sans",sans-serif;
    font-size: 4rem;
    line-height: 1.25;
    font-weight: 500;
    color: var(--primary-200);
    white-space: nowrap;
    padding-right: .5em;
    margin-block:unset;will-change: transform;
    animation: loopText 30s linear infinite
}

@keyframes loopText {
    0% {
        transform: translateX(0)
    }

    100% {
        transform: translateX(-100%)
    }
}

.tree-parts-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transform: scale(0.9);
    will-change: opacity,transform;
    transition: opacity 1.2s ease-out,transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1)
}

.tree-part.is-visible {
    opacity: 1 !important;
    transform: scale(1) !important
}

.mv,.mv__blur-layer {
    opacity: 0;
    visibility: hidden;
    will-change: opacity,visibility;
    transition: opacity .5s ease-out,visibility .5s ease-out
}

.mv.is-visible,.mv__blur-layer.is-visible {
    opacity: 1;
    visibility: visible
}

.green-path {
    position: absolute;
    bottom: -150px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 1920px;
    height: 100%;
    pointer-events: none;
    z-index: 1
}

.green-path img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center
}

.path-container {
    position: relative;
    z-index: 1
}

.service {
    padding: 240px 0 200px;
    position: relative;
    z-index: 1
}

.service__inner {
    max-width: 1330px;
    margin: 0 auto;
    padding: 0 20px
}

.service__list {
    display: flex;
    flex-direction: column;
    gap: 200px
}

.service__item {
    display: flex;
    gap: 62px;
    align-items: center
}

.service__item:nth-child(even) {
    flex-direction: row-reverse
}

.service__item-image {
    flex: 0 0 57.519379845%;
    position: relative
}

.service__item-image img {
    width: 100%;
    height: auto;
    border-radius: 16px
}

.service__item-content {
    flex: 1
}

.service__item-title {
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--black);
    margin-bottom: 12px
}

.service__item-subtitle {
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--black);
    margin-block:0 40px;letter-spacing: .04em
}

.service__item-description {
    font-size: 1.125rem;
    line-height: 1.5;
    color: var(--black);
    margin-bottom: 44px;
    letter-spacing: .04em
}

.service__decoration {
    position: absolute;
    z-index: 0;
    opacity: .5;
    top: 15%;
    right: 5%;
    width: 250px
}

.service__decoration img {
    width: 100%;
    height: auto
}

.cases {
    padding: 120px 0 120px;
    position: relative
}

.cases::before {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
    height: 923px;
    background: linear-gradient(35deg, var(--white) 0, var(--white) 45%, var(--primary-100) 100%);
    z-index: -1
}

.cases__inner {
    max-width: 1330px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
    z-index: 1
}

.cases__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 64px
}

.cases__featured {
    display: grid;
    row-gap: 64px
}

.cases__featured-item {
    display: flex;
    gap: 16px
}

.cases__featured-content {
    display: flex;
    flex-direction: column;
    justify-content: center
}

.cases__featured-image {
    flex: 1;
    position: relative
}

.cases__featured-image>img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.cases__featured-link {
    position: absolute;
    bottom: 0;
    right: 0
}

.cases__featured-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 25px
}

.cases__featured-title {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--black);
    margin-bottom: 24px
}

.cases__featured-description {
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--black);
    margin-block:unset}

.cases__decoration {
    position: absolute;
    z-index: 0;
    opacity: .5
}

.cases__decoration--left {
    top: 20%;
    left: -5%;
    width: 220px
}

.cases__decoration img {
    width: 100%;
    height: auto
}

.news {
    padding: 150px 0 230px;
    position: relative;
    z-index: 1
}

.news__inner {
    max-width: 1290px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    gap: 51px
}

.news__header {
    flex: 0 0 17.8294573643%;
    display: flex;
    flex-direction: column;
    gap: 56px
}

.news__heading {
    margin-bottom: auto !important
}

.news__list {
    flex: 1;
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 0
}

.news__item {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1/-1;
    gap: 24px;
    padding: 16px 68px 16px 0;
    border-bottom: 1px solid var(--gray-650);
    text-decoration: none;
    transition: background-color .3s ease;
    position: relative
}

.news__item:first-child {
    border-top: 1px solid var(--gray-650)
}

.news__item-meta {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1/3;
    align-items: center;
    gap: 16px
}

.news__item-content {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 3;
    align-items: center;
    gap: 16px
}

.news__item-title {
    font-size: 1.125rem;
    font-weight: 400;
    color: var(--black);
    line-height: 1.6
}

.news__item-arrow {
    position: absolute;
    right: 0;
    top: calc(50% - 16px);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    background-color: var(--primary-100);
    transition: transform .3s ease,background-color .3s ease
}

.news__item-arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.news__item-arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%)
}

.news__decoration {
    position: absolute;
    z-index: 0;
    opacity: .5
}

.news__decoration--right {
    bottom: 10%;
    right: -5%;
    width: 200px
}

.news__decoration img {
    width: 100%;
    height: auto
}

.contact {
    padding: 115px 70px;
    background: linear-gradient(to right, rgba(229, 199, 69, 0.25), rgba(47, 150, 45, 0.25));
    position: relative;
    overflow: hidden;
    z-index: 2
}

.contact::before,.contact::after {
    content: "";
    position: absolute;
    width: 50%;
    height: 100%;
    background: url(../images/bg_contact_deco.svg) no-repeat;
    background-size: 200% auto
}

.contact::before {
    left: 0;
    top: 0;
    background-position: left top
}

.contact::after {
    right: 0;
    bottom: 0;
    background-position: right bottom
}

.contact__inner {
    max-width: 986px;
    margin: 0 auto;
    box-sizing: content-box;
    padding: 0 20px;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 55px
}

.contact__heading {
    flex: 1
}

.contact__title {
    font-size: 4rem;
    font-weight: 600;
    font-family: "Josefin Sans",sans-serif;
    color: var(--primary-600)
}

.contact__description {
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.8;
    color: var(--black);
    margin: 0
}

.contact__button {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 24px;
    background-color: var(--white);
    border-radius: 10px;
    transition: box-shadow .3s ease;
    flex-shrink: 0;
    min-height: 146px;
    position: relative
}

.contact__button-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-inline:24px}

.contact__button-icon img {
    width: 100%;
    height: 100%
}

.contact__button-text {
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--black);
    white-space: nowrap
}

.contact__button-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    background-color: var(--primary-100);
    width: 52px;
    height: 40px;
    flex-shrink: 0;
    align-self: end
}

.contact__button-arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.contact__button-arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%)
}

.recruit {
    padding-block:125px 100px;margin: 0;
    position: relative;
    z-index: 1;
    background: url("/wp-content/themes/cns-hokkaido2026/assets/images/bg_section_recruit.webp") no-repeat top center/cover
}

.recruit__inner {
    max-width: 1330px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 72px
}

.recruit__text {
    flex: 1;
    max-width: 480px
}

.recruit__label {
    display: inline-block;
    color: var(--primary-600);
    font-size: 4rem;
    font-weight: 600;
    font-family: "Josefin Sans",sans-serif;
    line-height: 1;
    margin-bottom: 5px
}

.recruit__title {
    font-size: 3.75rem;
    font-weight: bold;
    line-height: 1.5;
    color: var(--white);
    margin-bottom: 32px;
    display: flex;
    flex-direction: column;
    align-items: flex-start
}

.recruit__description {
    font-size: 1.125rem;
    color: var(--black);
    margin-bottom: 84px
}

.recruit__images {
    flex: 0 0 52.9457364341%;
    display: grid;
    align-items: end;
    grid-template-columns: 64.2752562225% 31.9180087848%;
    column-gap: 3.8067349927%;
    row-gap: 3.738317757%
}

.recruit__images img {
    width: 100%;
    height: auto
}

.recruit__images img:nth-child(1) {
    grid-column: 1;
    grid-row: 1/3
}

.recruit__images img:nth-child(2) {
    grid-column: 2;
    grid-row: 1
}

.recruit__images img:nth-child(3) {
    grid-column: 2;
    grid-row: 2
}

.text-date {
    font-family: "Josefin Sans",sans-serif;
    font-size: 1.125rem
}

.tag {
    display: inline-block;
    padding: 0 8px;
    border: 1px solid var(--primary-600);
    border-radius: 8px;
    color: var(--primary-600);
    font-size: .875rem;
    font-weight: 500
}

.page-title {
    display: grid;
    align-items: center;
    min-height: 330px;
    background: url("/wp-content/themes/cns-hokkaido2026/assets/images/bg_page-title.webp") center top/cover no-repeat;
    padding-inline:32px}

.page-title__inner {
    max-width: 1290px;
    margin-inline:auto;text-align: center
}

.page-title__text {
    font-size: 3rem;
    font-weight: 700;
    color: var(--primary-900)
}

.breadcrumb {
    padding-inline:32px}

.breadcrumb__inner {
    max-width: 1290px;
    margin-inline:auto;padding-block:16px}

.breadcrumb__list {
    display: flex;
    gap: 8px 16px;
    overflow-x: auto
}

.breadcrumb__item {
    display: flex;
    align-items: flex-start;
    gap: inherit;
    font-size: 1.125rem
}

.breadcrumb__item:first-child {
    color: var(--gray-600);
    font-weight: 500;
    text-transform: uppercase
}

.breadcrumb__item:not(:first-child) {
    color: var(--primary-600);
    font-weight: 700
}

.breadcrumb__item:not(:first-child)::before {
    content: "";
    width: 24px;
    height: 2px;
    margin-top: 15px;
    flex-shrink: 0;
    background-color: var(--primary-300)
}

.breadcrumb__text[href] {
    text-decoration: none
}

.primary-heading,.is-style-h2-heading {
    display: grid;
    margin-block:160px 40px}

.primary-heading__en,.is-style-h2-heading p {
    font-family: "Josefin Sans",sans-serif;
    font-weight: 600;
    font-size: 4rem;
    line-height: 1.12;
    color: var(--primary-600)
}

.primary-heading__ja,.is-style-h2-heading h2 {
    font-weight: 400;
    font-size: 1.75rem;
    line-height: 1.5;
    letter-spacing: .4px;
    color: var(--gray-800)
}

.primary-heading+*,.is-style-h2-heading+* {
    margin-top: unset !important
}

.secondary-heading,h2.wp-block-heading:not(.is-style-h2-heading *) {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--primary-600);
    margin-block:80px 24px}

.secondary-heading+*,h2.wp-block-heading:not(.is-style-h2-heading *)+* {
    margin-top: unset !important
}

.tertiary-heading,h3.wp-block-heading {
    font-size: 1.75rem;
    margin-block:40px 24px}

.tertiary-heading+*,h3.wp-block-heading+* {
    margin-top: unset !important
}

.quaternary-heading {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.5;
    color: var(--primary-600);
    margin-block:32px 16px}

.quaternary-heading+* {
    margin-top: unset !important
}

.forth-heading,h4.wp-block-heading {
    font-size: 1.125rem;
    margin-block:24px 16px}

.forth-heading+*,h4.wp-block-heading+* {
    margin-top: unset !important
}

.label {
    font-weight: bold
}

.label+* {
    margin-top: unset !important
}

.list {
    margin-block:1rem;padding-left: 1em
}

.list>li {
    position: relative
}

.list>li::before {
    content: "";
    position: absolute;
    top: 0;
    right: 100%;
    width: 4px;
    height: 4px;
    background-color: currentColor;
    border-radius: 50%;
    margin-top: calc((1lh - 4px)/2);
    margin-right: calc((1em - 4px)/2)
}

.list .list {
    margin-block:unset}

.list .list>li::before {
    height: 1px;
    margin-top: calc((1lh - 1px)/2);
    border-radius: unset
}

.ordered-list {
    margin-block:1rem;padding-left: 1.5em;
    counter-reset: ordered-list
}

.ordered-list>li {
    position: relative;
    counter-increment: ordered-list
}

.ordered-list>li::before {
    content: counter(ordered-list) ".";
    position: absolute;
    right: 100%;
    margin-right: .5em
}

.table,.wp-block-flexible-table-block-table:not(.is-style-stripes) table {
    margin-block:40px !important;width: 100% !important;
    border-top: 1px solid var(--gray-300) !important
}

.table th,.wp-block-flexible-table-block-table:not(.is-style-stripes) table th,.table td,.wp-block-flexible-table-block-table:not(.is-style-stripes) table td {
    padding-block:16px !important;border-bottom: 1px solid var(--gray-300) !important;
    font-size: 1.125rem !important
}

.table th,.wp-block-flexible-table-block-table:not(.is-style-stripes) table th {
    width: 8em !important;
    text-align: left !important
}

.table td,.wp-block-flexible-table-block-table:not(.is-style-stripes) table td {
    padding-left: 32px !important
}

.striped-table,.wp-block-flexible-table-block-table.is-style-stripes table {
    margin-block:40px !important;width: 100% !important;
    font-size: 1.125rem !important
}

.striped-table th,.wp-block-flexible-table-block-table.is-style-stripes table th,.striped-table td,.wp-block-flexible-table-block-table.is-style-stripes table td {
    padding: 24px !important;
    border: 1px solid var(--gray-300) !important
}

.striped-table thead th,.wp-block-flexible-table-block-table.is-style-stripes table thead th {
    font-weight: bold !important;
    text-align: center !important;
    background-color: var(--gray-100) !important
}

.striped-table tbody th,.wp-block-flexible-table-block-table.is-style-stripes table tbody th {
    font-weight: inherit !important;
    text-align: left !important
}

.striped-table tbody tr:nth-child(even) th,.wp-block-flexible-table-block-table.is-style-stripes table tbody tr:nth-child(even) th,.striped-table tbody tr:nth-child(even) td,.wp-block-flexible-table-block-table.is-style-stripes table tbody tr:nth-child(even) td {
    background-color: var(--gray-100) !important
}

.striped-table tbody tr:nth-child(odd) th,.wp-block-flexible-table-block-table.is-style-stripes table tbody tr:nth-child(odd) th,.striped-table tbody tr:nth-child(odd) td,.wp-block-flexible-table-block-table.is-style-stripes table tbody tr:nth-child(odd) td {
    background-color: var(--white) !important
}

.box {
    margin-block:80px;border-radius: 20px;
    padding-block:80px;padding-inline:32px}

.box--bg-gray {
    background-color: var(--gray-100)
}

.box--bg-primary {
    background-color: var(--primary-100)
}

.box--bordered {
    border: 1px solid #9c9c9c
}

.box--rounded-0 {
    border-radius: 0
}

.box--rounded-sm {
    border-radius: 10px
}

.box--padded-semi-sm {
    padding-block:48px;padding-inline:48px}

.box--padded-sm {
    padding-block:40px;padding-inline:40px}

.box__inner {
    max-width: 1024px;
    margin-inline:auto}

.box__inner>:first-child {
    margin-top: 0
}

.box__inner>:last-child {
    margin-bottom: 0
}

.box__inner--w-sm {
    max-width: 970px
}

.box__inner--w-xs {
    max-width: 590px
}

.page-anchor {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 40px
}

.page-anchor--col-3 {
    grid-template-columns: repeat(3, 1fr);
    gap: 0 16px
}

.page-anchor__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 8px;
    border-bottom: 1px solid var(--gray-300);
    text-decoration: none;
    color: var(--black);
    font-size: 1.125rem;
    font-weight: 500;
    transition: color .3s ease
}

.page-anchor__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    flex-shrink: 0;
    background-color: var(--primary-100)
}

.page-anchor__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.page-anchor__arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%)
}

.officer-list {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 1em
}

.officer-list__item {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1/-1
}

.officer-list__title {
    white-space: nowrap
}

.officer-list__name {
    white-space: nowrap
}

.media-block {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 32px;
    margin-block:80px}

.media-block--pc-media-right {
    grid-template-columns: 1fr auto
}

.media-block--pc-media-right .media-block__image {
    order: 2
}

.media-block--pc-media-right .media-block__body {
    order: 1
}

.media-block__body>:first-child {
    margin-top: 0
}

.media-block__body>:last-child {
    margin-bottom: 0
}

.media-block--float {
    margin-block:80px}

.media-block--float .media-block__image {
    float: left;
    margin-bottom: 32px
}

.media-block--float.media-block--pc-media-right .media-block__image {
    float: right;
    margin-bottom: 32px
}

.category-filter {
    margin-bottom: 48px
}

.category-filter__list {
    display: flex;
    flex-wrap: wrap;
    gap: 16px
}

.category-filter__item {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    padding: 8px 16px 8px 24px;
    font-size: 1rem;
    font-weight: 500;
    color: var(--primary-600);
    text-decoration: none;
    border: 1px solid var(--primary-600);
    border-radius: 50px;
    background-color: var(--white);
    transition: all .3s ease
}

.category-filter__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    background-color: var(--primary-100);
    transition: transform .3s ease
}

.category-filter__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.category-filter__arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%)
}

.category-filter__select {
    display: none
}

.evaluation-card {
    border-radius: 8px;
    border: 2px solid var(--primary-500);
    overflow: clip
}

.evaluation-card__image img {
    width: 100%;
    height: auto;
    display: block
}

.evaluation-card__content {
    padding: 20px 20px 30px
}

.evaluation-card__meta {
    display: flex;
    align-items: center;
    gap: 12px
}

.evaluation-card__title {
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: .04em;
    color: var(--primary-600)
}

.evaluation-card__period {
    font-size: 1.125rem;
    line-height: 1;
    font-weight: 500;
    padding: 10px 14px;
    background-color: var(--secondary-50);
    border-radius: 6px
}

.evaluation-card__desc {
    margin-bottom: 0
}

.benefits-card {
    background-color: var(--white);
    position: relative
}

.benefits-card::before {
    content: "";
    position: absolute;
    inset: 0;
    top: 50px;
    border: 1px solid var(--primary-500);
    border-radius: 8px;
    z-index: 0;
    pointer-events: none
}

.benefits-card__header {
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 50px 6px 40px 6px;
    background-color: var(--primary-600);
    color: var(--white);
    position: relative;
    z-index: 1;
    padding-right: 16px
}

.benefits-card__icon-area {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border: 1px solid var(--primary-500);
    border-radius: 50%;
    background-color: var(--white)
}

.benefits-card__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--white);
    line-height: 1.5
}

.benefits-card__content {
    padding: 40px 30px 50px
}

.benefits-card__heading {
    font-size: 4.125rem;
    line-height: 1;
    font-weight: 700;
    margin-block:30px 40px;letter-spacing: .04em;
    color: var(--primary-350);
    text-align: center
}

.benefits-card__amount {
    font-size: 3.875rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .04em;
    text-align: center;
    color: var(--primary-350);
    margin-block:0 10px}

.benefits-card__num {
    font-size: 11.25rem;
    letter-spacing: 0
}

.benefits-card__desc {
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.75;
    margin-block:0}

.member-card {
    display: block;
    color: var(--black);
    border-radius: 8px;
    overflow: clip;
    border: 2px solid var(--primary-600);
    background-color: var(--white);
    transition: opacity .3s ease;
    text-decoration: none
}

.member-card__image img {
    width: 100%;
    height: auto;
    display: block
}

.member-card__content {
    display: flex;
    flex-direction: column;
    padding: 20px 18px 12px
}

.member-card__year {
    font-size: 1.125rem;
    line-height: 1.5;
    letter-spacing: .04em;
    font-weight: 700
}

.member-card__role {
    font-size: 1.125rem;
    line-height: 1.5;
    letter-spacing: .04em
}

.member-card__arrow {
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    width: 52px;
    height: 40px;
    background-color: var(--primary-600);
    margin-left: auto
}

.member-card__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.news-card__image {
    border-radius: 8px;
    overflow: hidden;
    border: var(--gray-400) 1px solid;
    aspect-ratio: 396/239
}

.news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.news-card__content {
    padding-top: 16px
}

.news-card__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px
}

.news-card__title {
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.6;
    color: inherit
}

.news-card__link {
    text-decoration: none;
    color: inherit;
    transition: color .3s ease
}

.news-card__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    background-color: var(--primary-100);
    margin-left: auto;
    transition: transform .3s ease,background-color .3s ease
}

.news-card__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.news-card__arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%);
    transition: filter .3s ease
}

.news-card--horizontal {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 64px
}

.news-card--horizontal .news-card__content {
    padding-top: unset
}

.news-card--horizontal .news-card__title {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .4px;
    margin-bottom: 32px
}

.news-card--horizontal .news-card__text {
    font-size: 1.125rem;
    line-height: 1.8;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden
}

.case-card__image {
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 396/239
}

.case-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.case-card__content {
    padding-top: 40px
}

.case-card__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 32px
}

.case-card__title {
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .4px
}

.case-card__link {
    text-decoration: none;
    color: inherit;
    transition: color .3s ease
}

.case-card__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    width: 52px;
    height: 40px;
    background-color: var(--primary-100);
    margin-left: auto;
    margin-top: 32px;
    transition: transform .3s ease,background-color .3s ease
}

.case-card__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.case-card__arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%);
    transition: filter .3s ease
}

.grid {
    display: grid
}

.grid--col-2 {
    grid-template-columns: repeat(2, 1fr)
}

.grid--col-3 {
    grid-template-columns: repeat(3, 1fr)
}

.grid--col-4 {
    grid-template-columns: repeat(4, 1fr)
}

.grid--gap-10 {
    gap: 10px
}

.grid--gap-16 {
    gap: 16px
}

.grid--gap-24 {
    gap: 24px
}

.grid--gap-32 {
    gap: 32px
}

.grid--gap-40 {
    gap: 40px
}

.grid--gap-48 {
    gap: 48px
}

.grid--cg-10 {
    column-gap: 10px
}

.grid--cg-16 {
    column-gap: 16px
}

.grid--cg-24 {
    column-gap: 24px
}

.grid--cg-32 {
    column-gap: 32px
}

.grid--cg-40 {
    column-gap: 40px
}

.grid--rg-10 {
    row-gap: 10px
}

.grid--rg-16 {
    row-gap: 16px
}

.grid--rg-24 {
    row-gap: 24px
}

.grid--rg-32 {
    row-gap: 32px
}

.grid--justify-center {
    justify-items: center
}

.figure {
    margin-block:40px;display: grid;
    row-gap: 20px
}

.figure picture {
    display: block
}

.figure img {
    width: 100%;
    height: auto;
    display: block
}

.figure__caption {
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.75
}

.figure--full-bleed {
    margin-inline:calc(var(--vw)*-50 + 50%)}

.figure--full-bleed img {
    border-radius: 0
}

.pager {
    margin-block:48px;display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px
}

.pager__prev,.pager__next {
    display: flex;
    align-items: center;
    gap: 16px;
    text-decoration: none
}

.pager__prev .pager__icon,.pager__next .pager__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    background-color: var(--primary-100);
    transition: background-color .3s ease,transform .3s ease
}

.pager__prev .pager__icon img,.pager__next .pager__icon img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.pager__prev .pager__icon img,.pager__next .pager__icon img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%);
    transition: filter .3s ease
}

.pager__prev .pager__icon {
    transform: rotate(180deg)
}

.pager__prev:hover .pager__icon {
    background-color: var(--primary-600);
    transform: rotate(180deg) translateX(4px)
}

.pager__prev:hover .pager__icon img {
    filter: none
}

.pager__next:hover .pager__icon {
    background-color: var(--primary-600);
    transform: translateX(4px)
}

.pager__next:hover .pager__icon img {
    filter: none
}

.pager__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0
}

.pager__numbers {
    display: flex;
    align-items: center;
    gap: 32px
}

.pager__number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding-top: 4px;
    border-radius: 50%;
    background-color: var(--primary-100);
    color: var(--gray-600);
    font-family: "Josefin Sans",sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    text-decoration: none;
    transition: background-color .3s ease,color .3s ease
}

.pager__number.is-current {
    background-color: var(--primary-900);
    color: var(--white);
    pointer-events: none
}

.stack {
    padding-inline:32px;padding-block:80px;margin-inline:calc(var(--vw)*-50 + 50%)}

.stack__inner {
    max-width: 1290px;
    margin-inline:auto}

.stack__inner>:first-child {
    margin-top: 0
}

.stack__inner>:last-child {
    margin-bottom: 0
}

.stack--grad-primary {
    background: linear-gradient(261.51deg, #e6f4e9 -0.01%, #ffffff 99.99%)
}

.stack--primary-100 {
    background-color: var(--primary-100)
}

.stack--py-sm {
    padding-block:64px}

.article-title {
    margin-bottom: 64px
}

.article-title__meta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px
}

.article-title__text {
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 24px;
    letter-spacing: .4px
}

.article-eyecatch img {
    margin-inline:auto}

.sns-links {
    display: flex;
    align-items: center;
    gap: 24px
}

.sns-links__item {
    position: relative
}

.sns-links__link {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity .3s ease
}

.status-navi {
    display: none;
    position: absolute;
    top: 32px;
    padding: 10px 20px;
    border-radius: 6px;
    font-size: .875rem;
    border: var(--primary-400) 2px solid;
    background-color: rgba(var(--primary-200), 0.4);
    z-index: 100;
    width: 190px
}

.flow-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr)
}

.flow-steps__item {
    padding: 24px 16px 24px;
    border-top: 4px solid var(--primary-200)
}

.flow-steps__item:nth-child(1) {
    border-color: var(--primary-200)
}

.flow-steps__item:nth-child(1) .flow-steps__number {
    color: var(--primary-200)
}

.flow-steps__item:nth-child(2) {
    border-color: var(--primary-250)
}

.flow-steps__item:nth-child(2) .flow-steps__number {
    color: var(--primary-250)
}

.flow-steps__item:nth-child(3) {
    border-color: var(--primary-400)
}

.flow-steps__item:nth-child(3) .flow-steps__number {
    color: var(--primary-400)
}

.flow-steps__item:nth-child(4) {
    border-color: var(--primary-600)
}

.flow-steps__item:nth-child(4) .flow-steps__number {
    color: var(--primary-600)
}

.flow-steps__number {
    font-family: "Josefin Sans",sans-serif;
    font-size: 3.125rem;
    line-height: 1;
    text-align: center;
    margin-bottom: 8px
}

.flow-steps__icon {
    text-align: center;
    margin-bottom: 8px
}

.flow-steps__icon img {
    display: inline-block
}

.flow-steps__title {
    font-size: 1.5rem;
    font-weight: 500;
    text-align: center;
    line-height: 1.5
}

.flow-steps__desc {
    margin-top: 8px;
    margin-bottom: unset;
    color: var(--gray-800)
}

.form-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 53px;
    height: 29px;
    padding-inline:12px;font-size: .875rem;
    font-weight: 500;
    line-height: 1;
    border-radius: 8px;
    color: var(--white)
}

.form-badge--required {
    background-color: var(--primary-600)
}

.form-badge--optional {
    background-color: var(--black)
}

.form-field {
    display: grid;
    grid-template-columns: 320px 1fr;
    align-items: center;
    gap: 48px
}

.form-field+.form-field {
    margin-top: 24px
}

.form-field__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px
}

.form-field__label {
    font-weight: 500;
    line-height: 1.5
}

:where(.page) .confirm-area,:where(.page) .complete-area {
    display: none
}

:where(.page) .wpcf7-response-output {
    display: none
}

.js-complete-view {
    display: none
}

.screen-reader-response {
    display: none !important
}

.wpcf7-not-valid-tip {
    color: red;
    font-size: 0.875rem;
    display: block;
    margin-top: 4px
}

.form-select {
    -webkit-appearance: none;
    appearance: none;
    display: block;
    width: 100%;
    padding: 12px 48px 12px 16px;
    font-weight: 500;
    color: var(--primary-600);
    background-color: var(--white);
    border: 1px solid var(--primary-600);
    border-radius: 4px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M1 1l7 7 7-7' stroke='%231f883b' stroke-width='2' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    cursor: pointer
}

.form-input {
    display: block;
    width: 100%;
    padding: 16px;
    font-family: inherit;
    line-height: 1.5;
    border: none;
    background-color: var(--white);
    border-radius: 8px
}

.form-textarea {
    display: block;
    width: 100%;
    min-height: 200px;
    padding: 16px;
    line-height: 1.875;
    background-color: var(--white);
    border: none;
    border-radius: 8px;
    resize: vertical
}

.form-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer
}

.form-checkbox__input {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    margin: 0;
    border-radius: 2px;
    border: 1px solid var(--gray-600);
    background-color: var(--gray-100);
    flex-shrink: 0
}

.form-checkbox__input:checked {
    background-color: var(--primary-600);
    border-color: rgba(0,0,0,0);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 5l4 4L13 1' stroke='%23fff' stroke-width='2' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center
}

.form-checkbox__label {
    font-weight: 500;
    line-height: 1.5
}

.contact-form__privacy {
    margin-top: 48px;
    display: flex;
    flex-direction: column;
    align-items: center
}

.contact-form__privacy-text {
    margin-block:unset;font-size: .875rem;
    font-weight: 500;
    line-height: 1.5
}

.contact-form__privacy-checkbox {
    margin-top: 48px
}

.contact-form__privacy-link {
    margin-bottom: unset
}

.contact-form__privacy-link a {
    color: var(--primary-600);
    font-weight: 500
}

.contact-form__submit {
    margin-top: 48px;
    display: flex;
    justify-content: center
}

summary {
    display: block
}

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

.accordion {
    border-top: 2px solid var(--primary-600);
    border-bottom: 2px solid var(--primary-600)
}

.accordion+.accordion {
    margin-top: 10px
}

.accordion__summary:hover .qa-item__title,.accordion__summary:hover .accordion__summary-inner {
    text-decoration: underline
}

.accordion__summary-inner {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    line-height: 1.25;
    font-weight: bold;
    padding: 30px 0;
    font-size: 1.125rem
}

.accordion__summary-icon {
    display: block;
    position: relative;
    width: 14px;
    margin-left: 8px;
    margin-right: 15px;
    flex-shrink: 0
}

.accordion__summary-icon::before,.accordion__summary-icon::after {
    content: "";
    position: absolute;
    display: block;
    width: 14px;
    height: 2px;
    background-color: var(--primary-600)
}

.accordion__summary-icon::before {
    left: 0
}

.accordion__summary-icon::after {
    left: 0;
    transform: rotate(-90deg);
    transition: transform .3s
}

[open] .accordion__summary-icon::after {
    transform: rotate(0)
}

.accordion__content {
    overflow: hidden
}

.accordion__content-inner {
    padding-block:10px 42px}

.accordion__content-inner>*:first-child {
    margin-top: 0 !important
}

.accordion__content-inner>*:last-child {
    margin-bottom: 0 !important
}

.member {
    padding-block:80px;background-color: var(--secondary-50)
}

.member__inner {
    max-width: 1330px;
    margin: 0 auto;
    padding: 0 20px
}

.member__inner>:first-child {
    margin-top: 0
}

.member__inner>:last-child {
    margin-bottom: 0
}

.interviewer {
    margin-block:3rem;position: relative;
    padding-left: 29px
}

.interviewer::before {
    content: "";
    width: 14px;
    height: 1px;
    background-color: currentColor;
    margin-inline:5px 5px;margin-block:calc((1lh - 1px)/2);vertical-align: middle;
    position: absolute;
    left: 0;
    top: 0
}

.interviewee {
    margin-block:3rem}

.interviewee__name {
    font-weight: 700;
    float: left
}

.interviewee__name::after {
    content: "："
}

.interviewee-with-image {
    margin-block:3rem;display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 32px
}

.interviewee-with-image__image {
    width: 160px
}

.interviewee-with-image__image img {
    border-radius: 8px
}

.interviewee-with-image__content {
    align-self: center
}

.interviewee-with-image__name {
    font-weight: 700
}

.interviewee-with-image p {
    margin-block:8px 0}

.member-intro {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 64px;
    margin-block:4rem;max-width: 1053px;
    margin-inline:auto}

.member-intro__heading {
    grid-column: 1/-1;
    font-family: "Josefin Sans",sans-serif;
    font-size: 2.625rem;
    font-weight: 600;
    line-height: 1.12;
    color: var(--primary-600);
    margin-bottom: 24px
}

.member-intro__images {
    display: flex;
    gap: 48px
}

.member-intro__image img {
    border-radius: 8px
}

.member-intro__name {
    text-align: center;
    font-weight: 700;
    line-height: 1.5;
    background-color: var(--primary-300);
    padding: 4px 16px;
    margin-top: -16px;
    margin-bottom: 8px;
    width: fit-content;
    margin-inline:auto;position: relative;
    z-index: 1
}

.member-intro__position {
    text-align: center;
    line-height: 1.5
}

.member-intro__content>:first-child {
    margin-top: 0
}

.member-intro__content>:last-child {
    margin-bottom: 0
}

.page-top {
    position: fixed;
    bottom: -56px;
    right: 40px;
    z-index: 100;
    transition: bottom .3s ease
}

.page-top.is-scrolled {
    bottom: 40px
}

.page-top__link {
    display: inline-flex;
    align-items: center;
    gap: 16px
}

.page-top__text {
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.5;
    transition: color .3s ease
}

.page-top.is-on-footer .page-top__text {
    color: var(--white)
}

.page-top__icon {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background-color: var(--primary-600);
    border: 1px solid rgba(0,0,0,0);
    transition: all .3s ease
}

.page-top__icon img {
    transform: rotate(-90deg)
}

.page-top__link:hover .page-top__icon {
    background-color: var(--white);
    border-color: var(--primary-600)
}

.page-top__link:hover .page-top__icon img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%)
}

.tab {
    scroll-margin-top: calc(var(--header-height) + var(--scroll-offset))
}

.tab__nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 8px;
    align-items: end;
    min-height: 100px
}

.tab__button {
    min-height: 78px;
    padding: 16px;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    background-color: var(--gray-300);
    color: var(--white);
    cursor: pointer;
    transform-origin: bottom;
    transition: min-height .3s ease,background-color .3s ease
}

.tab__button.is-active {
    background-color: var(--primary-600);
    min-height: 100%
}

.tab__panel {
    display: none;
    padding: 32px
}

.tab__panel>:first-child {
    margin-top: unset
}

.tab__panel>:last-child {
    margin-bottom: unset
}

.tab__panel.is-active {
    display: block
}

.download-card {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity .3s ease
}

.download-card__image img {
    border-radius: 8px;
    width: 100%;
    height: auto;
    display: block
}

.download-card__content {
    padding-top: 12px;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 12px
}

.download-card__title {
    margin-block:unset;font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden
}

.download-card__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    width: 52px;
    height: 40px;
    background-color: var(--primary-100);
    transition: transform .3s ease,background-color .3s ease
}

.download-card__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.download-card__arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%);
    transition: filter .3s ease
}

.service-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 40px;
    transition: color .3s ease
}

.service-card__image {
    border-radius: 8px;
    overflow: hidden
}

.service-card__image img {
    width: 100%;
    height: auto;
    display: block
}

.service-card__title {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .4px
}

.service-card__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    width: 52px;
    height: 40px;
    background-color: var(--primary-100);
    margin-left: auto;
    margin-top: 24px;
    transition: transform .3s ease,background-color .3s ease
}

.service-card__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.service-card__arrow img {
    filter: invert(64%) sepia(23%) saturate(1026%) hue-rotate(92deg) brightness(94%) contrast(88%);
    transition: filter .3s ease
}

.lead {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .04em
}

.sub-lead {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .4px
}

.top-section__wrapper {
    position: relative;
    background-color: var(--white)
}

.top-section__wrapper::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 121.0416666667%;
    aspect-ratio: 2324/705;
    background: linear-gradient(to bottom, var(--primary-100), var(--white));
    border-radius: 50%;
    pointer-events: none
}

.top-section__path {
    position: absolute;
    left: 50%;
    bottom: -150px;
    transform: translateX(-50%);
    width: 100%;
    height: calc(100% + 150px);
    display: flex;
    justify-content: center
}

.top-section__path img {
    width: auto;
    height: 100%
}

.top-section__heading {
    margin-bottom: 80px
}

.top-section__title {
    font-size: 4rem;
    font-weight: 600;
    font-family: "Josefin Sans",sans-serif;
    color: var(--primary-600);
    line-height: 1
}

.top-section__subtitle {
    margin-block:unset;font-size: 1.125rem;
    font-weight: 400;
    color: var(--black)
}

.philosophy-and-policies {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px
}

.philosophy-and-policies__item {
    padding: 64px 40px;
    color: var(--white);
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 40px;
    row-gap: 24px
}

.philosophy-and-policies__item:nth-child(odd) {
    background-color: var(--primary-400)
}

.philosophy-and-policies__item:nth-child(even) {
    background-color: var(--primary-600)
}

.philosophy-and-policies__heading {
    font-size: 2rem
}

.philosophy-and-policies__text {
    font-size: 1.125rem
}

.philosophy-and-policies__text p {
    margin-block:unset}

.history {
    position: relative
}

.history::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(var(--vw)*-50 + 50%);
    right: calc(var(--vw)*-50 + 50%);
    background: linear-gradient(180deg, transparent 0%, #f9f6dd 50%, transparent 100%)
}

.history-timeline {
    position: relative
}

.history-timeline__item {
    display: grid;
    grid-template-columns: 40px 1fr;
    align-items: center;
    gap: 24px;
    padding-bottom: 40px;
    overflow: clip
}

.history-timeline__item:last-child {
    padding-bottom: 0
}

.history-timeline__item:last-child::before {
    display: none
}

.history-timeline__dot {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--primary-600);
    flex-shrink: 0;
    z-index: 0;
    position: relative
}

.history-timeline__dot::before,.history-timeline__dot::after {
    content: "";
    position: absolute;
    left: 18px;
    height: 100vh;
    width: 4px;
    background-color: var(--primary-300)
}

.history-timeline__dot::before {
    bottom: 100%
}

.history-timeline__dot::after {
    top: 100%
}

.history-timeline__item:first-child .history-timeline__dot::before {
    display: none
}

.history-timeline__item:last-child .history-timeline__dot::after {
    display: none
}

.history-timeline__content {
    display: flex;
    gap: 80px;
    align-items: center
}

.history-timeline__date {
    font-size: 2rem;
    font-weight: 900;
    color: var(--primary-600);
    line-height: 1;
    flex-shrink: 0;
    white-space: nowrap
}

.history-timeline__text {
    font-size: 1.125rem;
    line-height: 1.5;
    margin: 0
}

.qualifications__category,.wp-block-group.is-style-qualifications-items {
    margin-bottom: 48px
}

.qualifications__category:last-child,.wp-block-group.is-style-qualifications-items:last-child {
    margin-bottom: 0
}

.qualifications__category-header,.is-style-qualifications-heading .wp-block-group__inner-container {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--gray-300)
}

.qualifications__category-name,.is-style-qualifications-heading h3 {
    font-size: 1.5rem;
    line-height: 1.5;
    font-weight: 700
}

.qualifications__category-total,.is-style-qualifications-heading p {
    font-size: 1.5rem;
    line-height: 1.5;
    font-weight: 700
}

.qualifications__items,.wp-block-group.is-style-qualifications-items {
    display: grid;
    grid-template-columns: repeat(3, minmax(300px, 1fr));
    gap: 24px
}

.qualifications__item,.wp-block-group.is-style-qualifications-items .wp-block-columns {
    display: flex;
    align-items: center !important;
    justify-content: space-between;
    gap: 16px;
    padding: 24px;
    background-color: var(--white);
    border-radius: 10px;
    box-shadow: 0px 0px 16px rgba(0,0,0,.16)
}

.qualifications__item-name,.wp-block-group.is-style-qualifications-items .wp-block-column:first-child {
    font-size: 1.125rem;
    line-height: 1.5;
    font-weight: 700
}

.qualifications__item-count,.wp-block-group.is-style-qualifications-items .wp-block-column:last-child {
    font-size: 1.5rem;
    flex-shrink: 0;
    line-height: 1.5;
    font-weight: 700
}

.qualifications__num,.wp-block-group.is-style-qualifications-items .wp-block-column:last-child strong,.is-style-qualifications-heading p strong {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--primary-600)
}

.message-mv {
    padding-block:212px 160px;padding-inline:32px;background: url("/wp-content/themes/cns-hokkaido2026/assets/images/bg_message_page-title.webp") top center/100% auto no-repeat
}

.message-mv__inner {
    display: flex;
    flex-direction: column;
    align-items: center
}

.message-mv__logo {
    width: 190px;
    margin-bottom: 80px
}

.message-mv__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: var(--primary-900);
    font-weight: 700;
    text-align: center;
    gap: 8px;
    width: 100%;
    margin-bottom: 170px
}

.message-mv__title-en {
    font-family: "Josefin Sans",sans-serif;
    font-size: 4rem;
    line-height: 1.25
}

.message-mv__title-ja {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 64px;
    font-size: 2.5rem;
    line-height: 1.5;
    width: 100%;
    white-space: nowrap
}

.message-mv__title-ja::before,.message-mv__title-ja::after {
    content: "";
    flex-basis: 220px;
    height: 2px;
    background-color: var(--primary-300)
}

.message-mv__intro-text {
    margin-block:unset;text-align: center;
    font-size: 1.5rem;
    line-height: 2.6;
    letter-spacing: .04em
}

.message-philosophy {
    margin-bottom: 160px;
    position: relative
}

.message-philosophy::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin-inline:calc(var(--vw)*-50 + 50%);aspect-ratio: 1920/516;
    background: url("/wp-content/themes/cns-hokkaido2026/assets/images/bg_message_leaf.webp") center top/100% auto no-repeat;
    z-index: -1
}

.message-philosophy__list {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 80px 24px;
    max-width: 710px;
    margin-inline:auto}

.message-philosophy__item {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: subgrid;
    row-gap: 16px
}

.message-philosophy__label {
    font-family: "Josefin Sans",sans-serif;
    font-size: 3.5rem;
    line-height: 1;
    letter-spacing: .04em;
    font-weight: 700;
    color: var(--primary-900)
}

.message-philosophy__desc {
    margin-block:unset;font-size: 2.25rem;
    font-weight: bold;
    line-height: 1.33
}

.message-values {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 32px
}

.message-values__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background-color: var(--white);
    border-radius: 10px;
    padding: 60px 28px 16px;
    width: 100%;
    max-width: 320px
}

.message-values__icon {
    width: 140px;
    height: 140px
}

.message-values__label {
    font-size: 2rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.25
}

.message-ceo {
    /* display: grid; */
    /* grid-template-columns: 600fr 650fr; */
    /* gap: 40px; */
}
/* 親要素のfloat解除（clearfix） */
  .message-ceo::after {
    content: "";
    display: block;
    clear: both;
  }
.message-ceo__image{
    float: left;
    margin-right: 44px; /* 右側のテキストとの余白 */
    margin-bottom: 20px; /* 下に回り込んだテキストとの余白 */
    max-width: 525px; /* 必要に応じて画像の表示幅を指定 */
}
@media screen and (max-width: 768px) {
    .message-ceo__image{
        float:none;
        margin-right: 0;
        margin-bottom: 40px;
        max-width:100%;
    }
}
.message-ceo__image img {
    width: 100%;
    height: auto
}

.message-ceo__title {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .04em;
    margin-bottom: 40px
}

.message-ceo__meta {
    margin-bottom: 40px;
    letter-spacing: .04em
}

.message-ceo__company {
    font-size: 1.125rem;
    margin-bottom: 16px
}

.message-ceo__position {
    font-size: 1.125rem;
    display: flex;
    flex-wrap: wrap;
    column-gap: 16px;
    font-weight: 700
}

.message-ceo__name {
    font-size: 1.5rem;
    line-height: 1
}

.message-ceo__text p {
    line-height: 2.5;
    margin-block:unset
}

.message-ceo__text-more p {
    line-height: 2.5;
    margin-block:unset
}

.recruit-mv {
    position: relative;
    background: url("/wp-content/themes/cns-hokkaido2026/assets/images/bg_recruit_mv.webp") center/cover no-repeat;
    padding: clamp(140px,10vw,132px) clamp(20px,4vw,60px) clamp(30px,6.5vw,100px)
}

.recruit-mv__title {
    font-size: clamp(2.5rem,7.5vw,6.25rem);
    font-weight: 700;
    color: var(--white);
    line-height: 1.25;
    margin-bottom: clamp(-40px,-2vw + 20px,20px);
    padding-left: clamp(0px,2.5vw,40px);
    position: relative
}

.recruit-mv__images {
    display: grid;
    grid-template-columns: 480fr 720fr 480fr;
    gap: clamp(10px,4vw,60px);
    align-items: end;
    margin-bottom: clamp(10px,4vw,60px)
}

.recruit-mv__img {
    position: relative;
    overflow: clip
}

.recruit-mv__img img {
    width: 100%;
    height: auto;
    display: block;
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .6s linear
}

.recruit-mv__img img:first-child {
    position: relative;
    opacity: 1
}

.recruit-mv__img img.is-active {
    opacity: 1
}

.recruit-mv__img--left {
    border-radius: 10px 80px 10px 20px
}

.recruit-mv__img--center {
    border-radius: 10px 40px 10px 10px;
    padding-bottom: clamp(0px,2.5vw,40px)
}

.recruit-mv__img--right {
    border-radius: 50px 10px 20px 10px;
    padding-bottom: clamp(0px,2vw,30px)
}

.recruit-mv__desc>:first-child {
    margin-top: 0
}

.recruit-mv__desc>:last-child {
    margin-bottom: 0
}

.recruit-mv__desc p {
    font-size: clamp(1.125rem,1.8vw,1.75rem);
    line-height: 1.9;
    letter-spacing: .04em;
    color: var(--white);
    text-align: center
}

.recruit-mv__desc p+.recruit-mv__desc p {
    margin-top: 40px
}

.recruit-candidate-intro {
    margin-block:140px 120px !important;text-align: center;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 2.5;
    letter-spacing: .04em
}

.recruit-candidate-intro strong {
    font-size: 1.875rem;
    color: var(--primary-600)
}

.recruit-candidate-intro p {
    margin-block:40px}

.recruit-candidate-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px
}

.recruit-candidate-list__item {
    width: 360px;
    background-color: var(--white);
    border-radius: 20px;
    padding: 50px 24px 64px;
    box-shadow: 0px 0px 16px rgba(0,0,0,.16)
}

.recruit-candidate-list__item img {
    width: 180px;
    margin-inline:auto}

.recruit-candidate-list__label {
    font-size: 1.5rem;
    line-height: 1.5;
    font-weight: 700;
    margin-bottom: 30px;
    letter-spacing: .04em;
    color: var(--primary-600);
    text-align: center
}

.recruit-members-section {
    position: relative;
    padding-block:160px 80px;margin-block:120px}

.recruit-members-section::before {
    content: "";
    position: absolute;
    inset: 0;
    margin-inline:calc(var(--vw)*-50 + 50%);background-color: var(--secondary-50);
    z-index: -1;
    border-top-left-radius: 50% 158px;
    border-top-right-radius: 50% 158px;
    border-bottom-left-radius: 30px;
    border-bottom-right-radius: 30px
}

.recruit-members-section>:first-child {
    margin-top: 0
}

.recruit-members-section>:last-child {
    margin-bottom: 0
}

.recruit-members-section__inner {
    max-width: 1024px;
    margin-inline:auto}

.recruit-members {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px;
    margin-block:100px}

.recruit-members__item {
    width: 403px
}

.recruit-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px
}

.recruit-cards__item {
    display: block;
    border-radius: 8px;
    overflow: clip;
    transition: opacity .3s ease
}

.recruit-cards__image img {
    width: 100%;
    height: auto;
    display: block
}

.recruit-cards__label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: 16px;
    padding: 16px 20px 16px 20px;
    background-color: var(--primary-600);
    color: var(--white);
    font-size: 1.125rem;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: .04em
}

.recruit-cards__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    width: 52px;
    height: 40px;
    background-color: var(--primary-400);
    flex-shrink: 0
}

.recruit-cards__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.recruit-cta {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    margin-top: 160px
}

.recruit-cta__item {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: 1fr auto;
    color: var(--white);
    background-color: var(--primary-600);
    border-radius: 8px;
    overflow: clip;
    padding: 24px;
    gap: 20px 40px;
    transition: opacity .3s ease
}

.recruit-cta__image {
    grid-row: 1/3;
    width: 239px;
    border-radius: 8px;
    overflow: clip
}

.recruit-cta__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.recruit-cta__label {
    font-size: 1.75rem;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: .04em;
    margin-bottom: 12px
}

.recruit-cta__sub {
    font-size: 1.25rem;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: .04em
}

.recruit-cta__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 32px;
    border-radius: 100vh;
    transition: transform .3s ease,background-color .3s ease;
    background-color: var(--primary-400);
    width: 52px;
    height: 40px;
    grid-column: 2;
    justify-self: end;
    align-self: end
}

.recruit-cta__arrow img {
    width: 24px;
    height: 24px;
    opacity: 1 !important
}

.environment-office {
    display: grid;
    grid-template-columns: 553fr 595fr;
    gap: 52px;
    background-color: var(--white);
    border-radius: 8px;
    border: 1px solid var(--primary-500);
    padding: 40px
}

.environment-office__access {
    position: relative
}

.environment-office__access>img {
    width: 400px
}

.environment-office__access-text {
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: end;
    font-weight: 700;
    line-height: 1
}

.environment-office__access-desc {
    display: grid;
    row-gap: 10px;
    margin: 0;
    text-align: center
}

.environment-office__access-from {
    font-size: 1.5rem
}

.environment-office__access-means {
    font-size: 3.875rem;
    letter-spacing: .04em;
    color: var(--primary-350)
}

.environment-office__access-time {
    font-size: 3.875rem;
    color: var(--primary-350);
    margin: 0;
    margin-bottom: -12px
}

.environment-office__access-min {
    font-size: 11.25rem
}

.environment-office__info {
    display: flex;
    flex-direction: column;
    justify-content: end;
    row-gap: 10px
}

.environment-office__photos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
}

.environment-office__photos img {
    width: 100%;
    border-radius: 6px
}

.environment-office__address {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.75;
    margin: 0
}

.environment-office__map {
    grid-column: 1/-1;
    border-radius: 4px;
    overflow: clip
}

.environment-office__map iframe {
    width: 100%
}

.interviewee-name {
    font-weight: 500;
    font-size: 2rem;
    line-height: 1.5;
    letter-spacing: .04em;
    margin-bottom: 64px
}

.interview-heading,.is-style-interview-heading {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .03em;
    color: var(--primary-600);
    display: flex;
    column-gap: 16px;
    margin-block:64px 48px}

.interview-heading+*,.is-style-interview-heading+* {
    margin-top: unset !important
}

.interview-heading::before,.is-style-interview-heading::before {
    content: "";
    height: 1lh;
    width: 40px;
    background: url("/wp-content/themes/cns-hokkaido2026/assets/images/icon_leaf.svg") center center/contain no-repeat
}

.biz-challenge {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px
}

.biz-challenge__item {
    width: 100%;
    max-width: 414px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    text-align: center;
    background-color: var(--white);
    border-radius: 8px;
    padding: 32px 16px
}

.biz-challenge__icon {
    width: 100px;
    height: 100px
}

.biz-challenge__icon img {
    width: 100%;
    height: auto
}

.biz-challenge__text {
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.5;
    margin: 0
}

.biz-features {
    display: flex;
    flex-direction: column;
    gap: 48px
}

.biz-features__item {
    position: relative;
    background-color: var(--white);
    box-shadow: 0px 0px 16px rgba(0,0,0,.16);
    border-radius: 8px;
    overflow: hidden;
    padding-block:32px;padding-inline:24px}

.biz-features__number {
    position: absolute;
    top: 0;
    left: 0;
    width: 140px;
    height: 140px;
    background-color: var(--primary-600);
    border-radius: 0 0 100% 0;
    padding: 32px;
    font-family: "Josefin Sans",sans-serif;
    font-size: 3.75rem;
    font-weight: 700;
    line-height: 1;
    color: var(--white)
}

.biz-features__body {
    max-width: 1130px;
    margin-inline:auto;display: grid;
    grid-template-columns: auto 1fr;
    gap: 32px;
    align-items: center
}

.biz-features__content>:first-child {
    margin-top: 0
}

.biz-features__content>:last-child {
    margin-bottom: 0
}

.biz-features__title {
    font-size: 1.5rem;
    line-height: 1.5;
    font-weight: 700
}

.biz-features__desc {
    font-size: 1.25rem;
    margin-block:24px 0}

.mb-0 {
    margin-bottom: 0 !important
}

.mt-0 {
    margin-top: 0 !important
}

.mr-0 {
    margin-right: 0 !important
}

.ml-0 {
    margin-left: 0 !important
}

.mb-xs {
    margin-bottom: 4px !important
}

.mt-xs {
    margin-top: 4px !important
}

.mr-xs {
    margin-right: 4px !important
}

.ml-xs {
    margin-left: 4px !important
}

.mb-sm {
    margin-bottom: 8px !important
}

.mt-sm {
    margin-top: 8px !important
}

.mr-sm {
    margin-right: 8px !important
}

.ml-sm {
    margin-left: 8px !important
}

.mb-md {
    margin-bottom: 16px !important
}

.mt-md {
    margin-top: 16px !important
}

.mr-md {
    margin-right: 16px !important
}

.ml-md {
    margin-left: 16px !important
}

.mb-lg {
    margin-bottom: 24px !important
}

.mt-lg {
    margin-top: 24px !important
}

.mr-lg {
    margin-right: 24px !important
}

.ml-lg {
    margin-left: 24px !important
}

.mb-xl {
    margin-bottom: 32px !important
}

.mt-xl {
    margin-top: 32px !important
}

.mr-xl {
    margin-right: 32px !important
}

.ml-xl {
    margin-left: 32px !important
}

.mb-xxl {
    margin-bottom: 40px !important
}

.mt-xxl {
    margin-top: 40px !important
}

.mr-xxl {
    margin-right: 40px !important
}

.ml-xxl {
    margin-left: 40px !important
}

.mb-xxxl {
    margin-bottom: 48px !important
}

.mt-xxxl {
    margin-top: 48px !important
}

.mr-xxxl {
    margin-right: 48px !important
}

.ml-xxxl {
    margin-left: 48px !important
}

.mb-4xl {
    margin-bottom: 64px !important
}

.mt-4xl {
    margin-top: 64px !important
}

.mr-4xl {
    margin-right: 64px !important
}

.ml-4xl {
    margin-left: 64px !important
}

.mb-5xl {
    margin-bottom: 80px !important
}

.mt-5xl {
    margin-top: 80px !important
}

.mr-5xl {
    margin-right: 80px !important
}

.ml-5xl {
    margin-left: 80px !important
}

.mb-6xl {
    margin-bottom: 96px !important
}

.mt-6xl {
    margin-top: 96px !important
}

.mr-6xl {
    margin-right: 96px !important
}

.ml-6xl {
    margin-left: 96px !important
}

.mb-7xl {
    margin-bottom: 120px !important
}

.mt-7xl {
    margin-top: 120px !important
}

.mr-7xl {
    margin-right: 120px !important
}

.ml-7xl {
    margin-left: 120px !important
}

.mb-8xl {
    margin-bottom: 160px !important
}

.mt-8xl {
    margin-top: 160px !important
}

.mr-8xl {
    margin-right: 160px !important
}

.ml-8xl {
    margin-left: 160px !important
}

.ml-0 {
    margin-left: 0 !important
}

.m-inline-auto {
    margin-inline:auto !important}

.m-inline-inherit {
    margin-inline:inherit !important}

.p-0 {
    padding: 0
}

.p-sm {
    padding: 8px
}

.p-md {
    padding: 16px
}

.p-lg {
    padding: 24px
}

.p-xl {
    padding: 32px
}

.px-0 {
    padding-inline:0}

.py-0 {
    padding-block:0}

.d-none {
    display: none
}

.d-block {
    display: block
}

.d-inline {
    display: inline
}

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

.d-flex {
    display: flex
}

.d-grid {
    display: grid
}

.sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0
}

.flex {
    display: flex
}

.flex-col {
    flex-direction: column
}

.flex-row {
    flex-direction: row
}

.flex-wrap {
    flex-wrap: wrap
}

.flex-nowrap {
    flex-wrap: nowrap
}

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

.justify-center {
    justify-content: center
}

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

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

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

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

.items-center {
    align-items: center
}

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

.items-stretch {
    align-items: stretch
}

.gap-sm {
    gap: 8px
}

.gap-md {
    gap: 16px
}

.gap-lg {
    gap: 24px
}

.gap-xl {
    gap: 32px
}

.fz-sm {
    font-size: .875rem !important
}

.fz-base {
    font-size: 1rem !important
}

.fz-m {
    font-size: 1.125rem !important
}

.fz-lg {
    font-size: 1.25rem !important
}

.fz-xl {
    font-size: 1.5rem !important
}

.fz-xl2 {
    font-size: 1.75rem !important
}

.fz-xxl {
    font-size: 2rem !important
}

.fz-xxxl {
    font-size: 2.25rem !important
}

.fw-regular {
    font-weight: 400 !important
}

.fw-medium {
    font-weight: 500 !important
}

.fw-bold {
    font-weight: bold !important
}

.lh-1 {
    line-height: 1 !important
}

.lh-sm {
    line-height: 1.3 !important
}

.lh-md {
    line-height: 1.5 !important
}

.lh-base {
    line-height: 1.875 !important
}

.lh-xl {
    line-height: 2 !important
}

.text-left {
    text-align: left !important
}

.text-right {
    text-align: right !important
}

.text-center {
    text-align: center !important
}

.text-nowrap {
    white-space: nowrap !important
}

.color-white {
    color: var(--white) !important
}

.color-dark-gray {
    color: var(--gray-600) !important
}

.color-primary {
    color: var(--primary-600) !important
}

.color-primary-light {
    color: var(--primary-350) !important
}

.color-primary-dark {
    color: var(--primary-900) !important
}

.color-alert {
    color: var(--alert) !important
}

.text-indent {
    text-indent: -1.3em;
    margin-left: 1.2em
}

.editor-styles-wrapper {
    font-family: "Noto Sans JP",system-ui,sans-serif
}

ul.wp-block-list {
    margin-left: 1em
}

ul.wp-block-list li {
    list-style-type: disc;
    letter-spacing: .05em;
    margin-block:.5rem}

ol.wp-block-list {
    margin-left: 1em
}

ol.wp-block-list li {
    list-style-type: decimal;
    letter-spacing: .05em;
    margin-block:.5rem}

.wp-block-group .wp-block-group__inner-container>*:first-child {
    margin-top: 0 !important
}

.wp-block-group .wp-block-group__inner-container>*:last-child {
    margin-bottom: 0 !important
}

.wp-block-group.is-nowrap.is-layout-flex>*:first-child {
    flex-shrink: 0
}

.wp-block-group.is-nowrap.is-layout-flex:has(>.wp-block-image.size-thumbnail) {
    gap: 32px
}

.wp-block-group.is-nowrap.is-layout-flex:has(>.wp-block-image.size-thumbnail)>.wp-block-image.size-thumbnail {
    width: 160px
}

.wp-block-group.is-style-qualifications-items .wp-block-column:first-child {
    flex-basis: auto !important
}

.wp-block-group.is-style-qualifications-items .wp-block-column:last-child {
    flex-basis: auto !important;
    flex-grow: 0
}

.wp-block-columns .wp-block-column>*:first-child {
    margin-top: 0 !important
}

.wp-block-columns .wp-block-column>*:last-child {
    margin-bottom: 0 !important
}

.wp-block-flexible-table-block-table:not(.is-style-stripes) table th,.wp-block-flexible-table-block-table:not(.is-style-stripes) table td {
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    background-color: rgba(0,0,0,0) !important;
    vertical-align: top !important
}

.wp-block-flexible-table-block-table:not(.is-style-stripes) table th {
    padding-inline:0 !important}

.wp-block-separator {
    border-top: var(--color-gray-500) 1px solid !important
}

.is-style-qualifications-heading h3 {
    margin-bottom: 0
}

.wp-block-lazyblock-accordion+.wp-block-lazyblock-accordion {
    margin-top: 10px
}

.wp-block-image {
    margin-block:24px}

.wp-block-image.is-style-width-browser-full {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%)
}

@media (min-width: 576px) {
    .mb-sm-0 {
        margin-bottom:0 !important
    }

    .mt-sm-0 {
        margin-top: 0 !important
    }

    .mr-sm-0 {
        margin-right: 0 !important
    }

    .ml-sm-0 {
        margin-left: 0 !important
    }

    .mb-sm-xs {
        margin-bottom: 4px !important
    }

    .mt-sm-xs {
        margin-top: 4px !important
    }

    .mr-sm-xs {
        margin-right: 4px !important
    }

    .ml-sm-xs {
        margin-left: 4px !important
    }

    .mb-sm-sm {
        margin-bottom: 8px !important
    }

    .mt-sm-sm {
        margin-top: 8px !important
    }

    .mr-sm-sm {
        margin-right: 8px !important
    }

    .ml-sm-sm {
        margin-left: 8px !important
    }

    .mb-sm-md {
        margin-bottom: 16px !important
    }

    .mt-sm-md {
        margin-top: 16px !important
    }

    .mr-sm-md {
        margin-right: 16px !important
    }

    .ml-sm-md {
        margin-left: 16px !important
    }

    .mb-sm-lg {
        margin-bottom: 24px !important
    }

    .mt-sm-lg {
        margin-top: 24px !important
    }

    .mr-sm-lg {
        margin-right: 24px !important
    }

    .ml-sm-lg {
        margin-left: 24px !important
    }

    .mb-sm-xl {
        margin-bottom: 32px !important
    }

    .mt-sm-xl {
        margin-top: 32px !important
    }

    .mr-sm-xl {
        margin-right: 32px !important
    }

    .ml-sm-xl {
        margin-left: 32px !important
    }

    .mb-sm-xxl {
        margin-bottom: 40px !important
    }

    .mt-sm-xxl {
        margin-top: 40px !important
    }

    .mr-sm-xxl {
        margin-right: 40px !important
    }

    .ml-sm-xxl {
        margin-left: 40px !important
    }

    .mb-sm-xxxl {
        margin-bottom: 48px !important
    }

    .mt-sm-xxxl {
        margin-top: 48px !important
    }

    .mr-sm-xxxl {
        margin-right: 48px !important
    }

    .ml-sm-xxxl {
        margin-left: 48px !important
    }

    .mb-sm-4xl {
        margin-bottom: 64px !important
    }

    .mt-sm-4xl {
        margin-top: 64px !important
    }

    .mr-sm-4xl {
        margin-right: 64px !important
    }

    .ml-sm-4xl {
        margin-left: 64px !important
    }

    .mb-sm-5xl {
        margin-bottom: 80px !important
    }

    .mt-sm-5xl {
        margin-top: 80px !important
    }

    .mr-sm-5xl {
        margin-right: 80px !important
    }

    .ml-sm-5xl {
        margin-left: 80px !important
    }

    .mb-sm-6xl {
        margin-bottom: 96px !important
    }

    .mt-sm-6xl {
        margin-top: 96px !important
    }

    .mr-sm-6xl {
        margin-right: 96px !important
    }

    .ml-sm-6xl {
        margin-left: 96px !important
    }

    .mb-sm-7xl {
        margin-bottom: 120px !important
    }

    .mt-sm-7xl {
        margin-top: 120px !important
    }

    .mr-sm-7xl {
        margin-right: 120px !important
    }

    .ml-sm-7xl {
        margin-left: 120px !important
    }

    .mb-sm-8xl {
        margin-bottom: 160px !important
    }

    .mt-sm-8xl {
        margin-top: 160px !important
    }

    .mr-sm-8xl {
        margin-right: 160px !important
    }

    .ml-sm-8xl {
        margin-left: 160px !important
    }

    .m-inline-sm-auto {
        margin-inline:auto !important}

    .m-inline-sm-inherit {
        margin-inline:inherit !important}

    .fz-sm-sm {
        font-size: .875rem !important
    }

    .fz-sm-base {
        font-size: 1rem !important
    }

    .fz-sm-m {
        font-size: 1.125rem !important
    }

    .fz-sm-lg {
        font-size: 1.25rem !important
    }

    .fz-sm-xl {
        font-size: 1.5rem !important
    }

    .fz-sm-xl2 {
        font-size: 1.75rem !important
    }

    .fz-sm-xxl {
        font-size: 2rem !important
    }

    .fz-sm-xxxl {
        font-size: 2.25rem !important
    }

    .fw-sm-bold {
        font-weight: bold !important
    }

    .lh-sm-1 {
        line-height: 1 !important
    }

    .lh-sm-sm {
        line-height: 1.3 !important
    }

    .lh-sm-md {
        line-height: 1.5 !important
    }

    .lh-sm-base {
        line-height: 1.875 !important
    }

    .lh-sm-xl {
        line-height: 2 !important
    }

    .text-sm-left {
        text-align: left !important
    }

    .text-sm-right {
        text-align: right !important
    }

    .text-sm-center {
        text-align: center !important
    }

    .text-sm-nowrap {
        white-space: nowrap !important
    }
}

@media (min-width: 769px) {
    .button {
        min-width:230px
    }

    .button--header {
        min-width: 300px;
        min-height: 64px
    }

    .button--xl .button__arrow {
        width: 81px;
        height: 63px
    }

    .button--xl .button__arrow img {
        width: 37px;
        height: 37px
    }

    .button--w-lg {
        min-width: 360px
    }

    .button--w-xl {
        min-width: 400px
    }

    .button--w-pc-full {
        width: 100%
    }

    .button--w-sp-full {
        width: 100%
    }

    .mv__animate {
        aspect-ratio: 1920/1080
    }

    .cases__featured-item--reverse {
        flex-direction: row-reverse;
        gap: 44px
    }

    .cases__featured-content {
        flex: 0 0 39.7674418605%
    }

    .cases__featured-image {
        margin-right: -17px
    }

    .table--pc-no-border-top {
        border-top: unset !important
    }

    .grid--pc-justify-center {
        justify-items: center
    }

    .status-navi {
        left: 0
    }

    .tab__button:first-child {
        border-radius: 100vh 0 0 100vh
    }

    .tab__button:last-child {
        border-radius: 0 100vh 100vh 0
    }

    .mb-md-0 {
        margin-bottom: 0 !important
    }

    .mt-md-0 {
        margin-top: 0 !important
    }

    .mr-md-0 {
        margin-right: 0 !important
    }

    .ml-md-0 {
        margin-left: 0 !important
    }

    .mb-md-xs {
        margin-bottom: 4px !important
    }

    .mt-md-xs {
        margin-top: 4px !important
    }

    .mr-md-xs {
        margin-right: 4px !important
    }

    .ml-md-xs {
        margin-left: 4px !important
    }

    .mb-md-sm {
        margin-bottom: 8px !important
    }

    .mt-md-sm {
        margin-top: 8px !important
    }

    .mr-md-sm {
        margin-right: 8px !important
    }

    .ml-md-sm {
        margin-left: 8px !important
    }

    .mb-md-md {
        margin-bottom: 16px !important
    }

    .mt-md-md {
        margin-top: 16px !important
    }

    .mr-md-md {
        margin-right: 16px !important
    }

    .ml-md-md {
        margin-left: 16px !important
    }

    .mb-md-lg {
        margin-bottom: 24px !important
    }

    .mt-md-lg {
        margin-top: 24px !important
    }

    .mr-md-lg {
        margin-right: 24px !important
    }

    .ml-md-lg {
        margin-left: 24px !important
    }

    .mb-md-xl {
        margin-bottom: 32px !important
    }

    .mt-md-xl {
        margin-top: 32px !important
    }

    .mr-md-xl {
        margin-right: 32px !important
    }

    .ml-md-xl {
        margin-left: 32px !important
    }

    .mb-md-xxl {
        margin-bottom: 40px !important
    }

    .mt-md-xxl {
        margin-top: 40px !important
    }

    .mr-md-xxl {
        margin-right: 40px !important
    }

    .ml-md-xxl {
        margin-left: 40px !important
    }

    .mb-md-xxxl {
        margin-bottom: 48px !important
    }

    .mt-md-xxxl {
        margin-top: 48px !important
    }

    .mr-md-xxxl {
        margin-right: 48px !important
    }

    .ml-md-xxxl {
        margin-left: 48px !important
    }

    .mb-md-4xl {
        margin-bottom: 64px !important
    }

    .mt-md-4xl {
        margin-top: 64px !important
    }

    .mr-md-4xl {
        margin-right: 64px !important
    }

    .ml-md-4xl {
        margin-left: 64px !important
    }

    .mb-md-5xl {
        margin-bottom: 80px !important
    }

    .mt-md-5xl {
        margin-top: 80px !important
    }

    .mr-md-5xl {
        margin-right: 80px !important
    }

    .ml-md-5xl {
        margin-left: 80px !important
    }

    .mb-md-6xl {
        margin-bottom: 96px !important
    }

    .mt-md-6xl {
        margin-top: 96px !important
    }

    .mr-md-6xl {
        margin-right: 96px !important
    }

    .ml-md-6xl {
        margin-left: 96px !important
    }

    .mb-md-7xl {
        margin-bottom: 120px !important
    }

    .mt-md-7xl {
        margin-top: 120px !important
    }

    .mr-md-7xl {
        margin-right: 120px !important
    }

    .ml-md-7xl {
        margin-left: 120px !important
    }

    .mb-md-8xl {
        margin-bottom: 160px !important
    }

    .mt-md-8xl {
        margin-top: 160px !important
    }

    .mr-md-8xl {
        margin-right: 160px !important
    }

    .ml-md-8xl {
        margin-left: 160px !important
    }

    .mt-md-100 {
        margin-top: 100px !important
    }

    .mb-md-100 {
        margin-bottom: 100px !important
    }

    .m-inline-md-auto {
        margin-inline:auto !important}

    .m-inline-md-inherit {
        margin-inline:inherit !important}

    .d-pc-none {
        display: none
    }

    .d-pc-block {
        display: block
    }

    .fz-md-sm {
        font-size: .875rem !important
    }

    .fz-md-base {
        font-size: 1rem !important
    }

    .fz-md-m {
        font-size: 1.125rem !important
    }

    .fz-md-lg {
        font-size: 1.25rem !important
    }

    .fz-md-xl {
        font-size: 1.5rem !important
    }

    .fz-md-xl2 {
        font-size: 1.75rem !important
    }

    .fz-md-xxl {
        font-size: 2rem !important
    }

    .fz-md-xxxl {
        font-size: 2.25rem !important
    }

    .fw-md-bold {
        font-weight: bold !important
    }

    .lh-md-1 {
        line-height: 1 !important
    }

    .lh-md-sm {
        line-height: 1.3 !important
    }

    .lh-md-md {
        line-height: 1.5 !important
    }

    .lh-md-base {
        line-height: 1.875 !important
    }

    .lh-md-xl {
        line-height: 2 !important
    }

    .text-md-left {
        text-align: left !important
    }

    .text-md-right {
        text-align: right !important
    }

    .text-md-center {
        text-align: center !important
    }

    .text-md-nowrap {
        white-space: nowrap !important
    }
}

@media (min-width: 1080px) {
    .media-block--float::after {
        content:"";
        clear: both;
        width: 100%;
        height: 1px
    }

    .media-block--float .media-block__image {
        width: 37%;
        margin-right: 32px
    }

    .media-block--float.media-block--pc-media-right .media-block__image {
        margin-right: 0;
        margin-left: 32px
    }

    .mb-lg-0 {
        margin-bottom: 0 !important
    }

    .mt-lg-0 {
        margin-top: 0 !important
    }

    .mr-lg-0 {
        margin-right: 0 !important
    }

    .ml-lg-0 {
        margin-left: 0 !important
    }

    .mb-lg-xs {
        margin-bottom: 4px !important
    }

    .mt-lg-xs {
        margin-top: 4px !important
    }

    .mr-lg-xs {
        margin-right: 4px !important
    }

    .ml-lg-xs {
        margin-left: 4px !important
    }

    .mb-lg-sm {
        margin-bottom: 8px !important
    }

    .mt-lg-sm {
        margin-top: 8px !important
    }

    .mr-lg-sm {
        margin-right: 8px !important
    }

    .ml-lg-sm {
        margin-left: 8px !important
    }

    .mb-lg-md {
        margin-bottom: 16px !important
    }

    .mt-lg-md {
        margin-top: 16px !important
    }

    .mr-lg-md {
        margin-right: 16px !important
    }

    .ml-lg-md {
        margin-left: 16px !important
    }

    .mb-lg-lg {
        margin-bottom: 24px !important
    }

    .mt-lg-lg {
        margin-top: 24px !important
    }

    .mr-lg-lg {
        margin-right: 24px !important
    }

    .ml-lg-lg {
        margin-left: 24px !important
    }

    .mb-lg-xl {
        margin-bottom: 32px !important
    }

    .mt-lg-xl {
        margin-top: 32px !important
    }

    .mr-lg-xl {
        margin-right: 32px !important
    }

    .ml-lg-xl {
        margin-left: 32px !important
    }

    .mb-lg-xxl {
        margin-bottom: 40px !important
    }

    .mt-lg-xxl {
        margin-top: 40px !important
    }

    .mr-lg-xxl {
        margin-right: 40px !important
    }

    .ml-lg-xxl {
        margin-left: 40px !important
    }

    .mb-lg-xxxl {
        margin-bottom: 48px !important
    }

    .mt-lg-xxxl {
        margin-top: 48px !important
    }

    .mr-lg-xxxl {
        margin-right: 48px !important
    }

    .ml-lg-xxxl {
        margin-left: 48px !important
    }

    .mb-lg-4xl {
        margin-bottom: 64px !important
    }

    .mt-lg-4xl {
        margin-top: 64px !important
    }

    .mr-lg-4xl {
        margin-right: 64px !important
    }

    .ml-lg-4xl {
        margin-left: 64px !important
    }

    .mb-lg-5xl {
        margin-bottom: 80px !important
    }

    .mt-lg-5xl {
        margin-top: 80px !important
    }

    .mr-lg-5xl {
        margin-right: 80px !important
    }

    .ml-lg-5xl {
        margin-left: 80px !important
    }

    .mb-lg-6xl {
        margin-bottom: 96px !important
    }

    .mt-lg-6xl {
        margin-top: 96px !important
    }

    .mr-lg-6xl {
        margin-right: 96px !important
    }

    .ml-lg-6xl {
        margin-left: 96px !important
    }

    .mb-lg-7xl {
        margin-bottom: 120px !important
    }

    .mt-lg-7xl {
        margin-top: 120px !important
    }

    .mr-lg-7xl {
        margin-right: 120px !important
    }

    .ml-lg-7xl {
        margin-left: 120px !important
    }

    .mb-lg-8xl {
        margin-bottom: 160px !important
    }

    .mt-lg-8xl {
        margin-top: 160px !important
    }

    .mr-lg-8xl {
        margin-right: 160px !important
    }

    .ml-lg-8xl {
        margin-left: 160px !important
    }

    .m-inline-lg-auto {
        margin-inline:auto !important}

    .m-inline-lg-inherit {
        margin-inline:inherit !important}

    .fz-lg-sm {
        font-size: .875rem !important
    }

    .fz-lg-base {
        font-size: 1rem !important
    }

    .fz-lg-m {
        font-size: 1.125rem !important
    }

    .fz-lg-lg {
        font-size: 1.25rem !important
    }

    .fz-lg-xl {
        font-size: 1.5rem !important
    }

    .fz-lg-xl2 {
        font-size: 1.75rem !important
    }

    .fz-lg-xxl {
        font-size: 2rem !important
    }

    .fz-lg-xxxl {
        font-size: 2.25rem !important
    }

    .fw-lg-bold {
        font-weight: bold !important
    }

    .lh-lg-1 {
        line-height: 1 !important
    }

    .lh-lg-sm {
        line-height: 1.3 !important
    }

    .lh-lg-md {
        line-height: 1.5 !important
    }

    .lh-lg-base {
        line-height: 1.875 !important
    }

    .lh-lg-xl {
        line-height: 2 !important
    }

    .text-lg-left {
        text-align: left !important
    }

    .text-lg-right {
        text-align: right !important
    }

    .text-lg-center {
        text-align: center !important
    }

    .text-lg-nowrap {
        white-space: nowrap !important
    }
}

@media (min-width: 1180px) {
    .header__dropdown {
        position:absolute;
        top: 100%;
        left: -48px;
        padding-top: 16px;
        opacity: 0;
        visibility: hidden
    }

    body.is-ready .header__dropdown {
        transition: opacity .3s ease,visibility .3s ease
    }

    .header__dropdown.is-active {
        opacity: 1;
        visibility: visible
    }

    .header__dropdown-list {
        min-width: 360px
    }
}

@media (max-width: 1279.98px) {
    .header__nav-link {
        font-size:1rem
    }
}

@media (max-width: 1179.98px) {
    .header__nav {
        position:fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100vh;
        background-color: var(--white);
        flex-direction: column;
        justify-content: center;
        padding: 80px 20px 40px;
        transition: transform .3s ease,opacity .3s ease;
        z-index: 1050;
        transform: translateX(100%);
        opacity: 0;
        pointer-events: none
    }

    .header__nav.is-active {
        transform: translateX(0);
        opacity: 1;
        pointer-events: auto
    }

    .header__nav-list {
        flex-direction: column;
        gap: 32px
    }

    .header__nav-item--has-dropdown {
        display: flex;
        flex-direction: column;
        align-items: center
    }

    .header__dropdown {
        overflow: hidden;
        max-height: 0
    }

    body.is-ready .header__dropdown {
        transition: max-height .3s ease
    }

    .header__dropdown.is-active {
        max-height: 200px
    }

    .header__dropdown-list {
        margin-top: 16px
    }

    .header__hamburger {
        display: block
    }
}

@media (max-width: 1079.98px) {
    .footer__main {
        grid-template-columns:1fr auto auto
    }

    .footer__company {
        grid-column: span 3
    }

    .service__item {
        flex-direction: column;
        gap: 32px
    }

    .service__item:nth-child(even) {
        flex-direction: column
    }

    .service__actions {
        display: flex;
        justify-content: center
    }

    .service__button {
        width: 100%;
        max-width: 480px
    }

    .news__list {
        grid-template-columns: auto
    }

    .news__item {
        grid-template-columns: unset;
        grid-column: unset;
        gap: 8px
    }

    .news__item-meta {
        grid-template-columns: auto 1fr;
        grid-column: unset;
        align-items: baseline;
        gap: 12px
    }

    .news__item-content {
        grid-template-columns: unset;
        grid-column: unset
    }

    .contact__inner {
        flex-direction: column;
        gap: 24px
    }

    .recruit__inner {
        flex-direction: column;
        align-items: center;
        gap: 128px
    }

    .recruit__label {
        display: block;
        text-align: center
    }

    .recruit__title {
        align-items: center
    }

    .recruit__images {
        flex: none;
        width: 100%;
        max-width: 640px;
        margin-inline:auto}

    .media-block--tb-media-first {
        grid-template-columns: auto
    }

    .media-block--tb-media-first .media-block__image img {
        display: block;
        margin-inline:auto}

    .media-block--tb-media-last {
        grid-template-columns: auto
    }

    .media-block--tb-media-last .media-block__image {
        order: 2
    }

    .media-block--tb-media-last .media-block__image img {
        display: block;
        margin-inline:auto}

    .media-block--tb-media-last .media-block__body {
        order: 1
    }

    .media-block--float .media-block__image {
        margin-bottom: 40px
    }

    .media-block--float.media-block--pc-media-right .media-block__image {
        margin-bottom: 40px
    }

    .media-block--float.media-block--tb-media-last {
        display: grid;
        align-items: center;
        gap: 32px;
        grid-template-columns: auto
    }

    .media-block--float.media-block--tb-media-last .media-block__image {
        order: 2
    }

    .media-block--float.media-block--tb-media-last .media-block__image img {
        display: block;
        margin-inline:auto}

    .media-block--float.media-block--tb-media-last .media-block__body {
        order: 1
    }

    .grid--tb-col-1 {
        grid-template-columns: 1fr
    }

    .grid--tb-col-2 {
        grid-template-columns: repeat(2, 1fr)
    }

    .philosophy-and-policies__item {
        padding: 40px 24px;
        grid-template-columns: auto
    }

    .environment-office {
        grid-template-columns: 1fr
    }
}

@media (max-width: 768.98px) {
    :root {
        --header-height: 60px
    }

    body {
        font-size: 1rem
    }

    main img {
        display: block;
        margin-inline:auto}

    main p {
        margin-bottom: 1rem
    }

    .header__inner {
        padding: 0 20px
    }

    .header__logo img {
        height: 32px
    }

    .footer {
        padding: 60px 0 162px
    }

    .footer__inner {
        padding: 0 20px
    }

    .footer__main {
        grid-template-columns: 1fr;
        gap: 32px;
        padding-bottom: 40px
    }

    .footer__company {
        gap: 32px;
        grid-column: auto
    }

    .footer__logo img {
        height: 48px;
        margin: 0 auto
    }

    .footer__company-info {
        padding: 12px
    }

    .footer__company-name {
        font-size: 1rem;
        margin-bottom: 16px
    }

    .footer__company-address {
        font-size: .875rem
    }

    .footer__nav-title {
        font-size: 1rem;
        margin-bottom: 12px
    }

    .footer__nav-list {
        gap: 12px
    }

    .footer__nav-list+.footer__nav-title {
        margin-top: 24px
    }

    .footer__nav-link {
        font-size: .875rem
    }

    .footer__nav-sub-list {
        gap: 12px;
        margin-top: 12px
    }

    .footer__bottom {
        gap: 16px;
        flex-direction: column;
        padding-top: 16px
    }

    .footer__bottom-links {
        flex-wrap: wrap;
        gap: 16px;
        justify-content: center
    }

    .footer__bottom-link {
        font-size: .6875rem
    }

    .footer__copyright {
        font-size: .6875rem
    }

    .page {
        padding-inline:10px;padding-block:64px 80px}

    .button {
        padding: 6px 16px 6px 20px;
        font-size: 1rem
    }

    .button--header {
        padding: 8px 16px 8px 20px
    }

    .button--fixed-contact {
        bottom: 76px;
        right: 10px;
        width: 81px;
        min-height: 70px;
        padding: unset;
        justify-content: center
    }

    .button--fixed-contact .button__text {
        display: none
    }

    .button--fixed-contact .button__icon {
        display: block;
        width: 49px;
        height: 48px
    }

    .button--fixed-contact .button__arrow {
        display: none
    }

    .button--fixed-entry {
        bottom: 76px;
        right: 10px;
        width: 80px;
        min-height: 70px;
        padding: unset;
        border-radius: 100vh
    }

    .button--fixed-entry .button__icon {
        width: 49px;
        height: 48px
    }

    .button--fixed-entry .button__text {
        display: none
    }

    .button--xl {
        min-height: 64px;
        font-size: 1.125rem
    }

    .button--continue {
        font-size: .875rem
    }

    #mv-wrapper {
        height: 340vh
    }

    .mv__animate {
        width: 100%
    }

    #tree-container {
        display: none
    }

    .mv {
        min-height: 500px;
        height: 100vh;
        padding-bottom: 30vw
    }

    .mv__content {
        padding: var(--header-height) 20px 0
    }

    .mv__lead {
        font-size: 1.25rem;
        margin-bottom: 48px
    }

    .mv__title {
        font-size: clamp(1.25rem,11.2vw,2.5rem)
    }

    .mv__description {
        font-size: .875rem;
        line-height: 1.8;
        margin-block:16px 32px}

    .mv__skip {
        display: none;
        bottom: 24px;
        left: 20px;
        padding: 10px 16px
    }

    .mv__skip-text {
        font-size: .75rem
    }

    .mv__back-message-loop {
        bottom: 60px
    }

    .mv__back-message-text {
        font-size: clamp(1.875rem,16.7vw,3.75rem)
    }

    .mv__back-message-text {
        animation: loopText 20s linear infinite
    }

    .service {
        padding: 80px 0
    }

    .service__inner {
        padding: 0 20px
    }

    .service__list {
        gap: 60px
    }

    .service__item-image {
        flex: none;
        width: 100%
    }

    .service__item-title {
        font-size: 1.375rem;
        margin-bottom: 8px
    }

    .service__item-subtitle {
        font-size: 1rem;
        margin-bottom: 24px
    }

    .service__item-description {
        font-size: .875rem;
        line-height: 1.8;
        margin-bottom: 24px
    }

    .service__decoration {
        width: 150px
    }

    .cases {
        padding: 80px 0 0
    }

    .cases__inner {
        padding: 0 20px
    }

    .cases__header {
        flex-direction: column;
        align-items: center;
        gap: 24px;
        margin-bottom: 24px
    }

    .cases__featured-item {
        flex-direction: column-reverse;
        gap: 24px
    }

    .cases__featured-image {
        flex: none
    }

    .cases__featured-meta {
        margin-bottom: 12px
    }

    .cases__featured-title {
        font-size: 1.25rem;
        margin-bottom: 16px
    }

    .cases__featured-description {
        font-size: .875rem
    }

    .cases__decoration--left {
        width: 120px;
        top: .8%
    }

    .news {
        padding: 80px 0
    }

    .news__inner {
        flex-direction: column;
        padding: 0 20px;
        gap: 24px
    }

    .news__header {
        flex: none
    }

    .news__item {
        padding: 16px 0
    }

    .news__item-title {
        font-size: .875rem
    }

    .news__item-arrow {
        display: none
    }

    .news__decoration--right {
        width: 120px;
        bottom: 2%
    }

    .contact {
        padding: 40px 0
    }

    .contact::before,.contact::after {
        background-size: 330% auto
    }

    .contact__heading {
        text-align: center
    }

    .contact__title {
        font-size: 2.375rem;
        margin-bottom: 12px
    }

    .contact__description {
        font-size: 1rem
    }

    .contact__button {
        padding: 20px 16px;
        width: 100%;
        max-width: 360px
    }

    .contact__button-icon {
        margin-inline:unset}

    .contact__button-text {
        font-size: 1rem
    }

    .contact__button-arrow {
        position: absolute;
        right: 16px;
        bottom: 12px
    }

    .recruit {
        padding-block:40px}

    .recruit__inner {
        gap: 40px
    }

    .recruit__label {
        font-size: 2.375rem;
        margin-bottom: 16px
    }

    .recruit__title {
        font-size: 1.5rem;
        margin-bottom: 16px
    }

    .recruit__description {
        font-size: 1rem;
        margin-bottom: 24px
    }

    .text-date {
        font-size: .875rem
    }

    .tag {
        font-size: .75rem;
        padding: 1px 10px
    }

    .page-title {
        min-height: 380px;
        background-image: url("/wp-content/themes/cns-hokkaido2026/assets/images/bg_page-title_sp.webp");
        padding-inline:10px}

    .page-title__text {
        font-size: 2.5rem
    }

    .breadcrumb {
        padding-inline:10px}

    .breadcrumb__list {
        flex-wrap: wrap
    }

    .breadcrumb__item {
        font-size: 1rem
    }

    .primary-heading,.is-style-h2-heading {
        margin-block:80px 24px}

    .primary-heading__en,.is-style-h2-heading p {
        font-size: 2.375rem
    }

    .primary-heading__ja,.is-style-h2-heading h2 {
        font-size: 1.5rem
    }

    .secondary-heading,h2.wp-block-heading:not(.is-style-h2-heading *) {
        font-size: 2rem
    }

    .table th,.wp-block-flexible-table-block-table:not(.is-style-stripes) table th,.table td,.wp-block-flexible-table-block-table:not(.is-style-stripes) table td {
        font-size: 1rem !important
    }

    .table th,.wp-block-flexible-table-block-table:not(.is-style-stripes) table th {
        width: 6em !important
    }

    .table--sp-block {
        display: block
    }

    .table--sp-block tbody,.table--sp-block tr,.table--sp-block th,.table--sp-block td {
        display: block
    }

    .table--sp-block th {
        width: unset;
        border-bottom: unset;
        padding-bottom: unset;
        margin-bottom: 16px
    }

    .table--sp-block td {
        padding-top: unset;
        padding-left: unset
    }

    .striped-table,.wp-block-flexible-table-block-table.is-style-stripes table {
        border-top: 1px solid var(--gray-300) !important
    }

    .striped-table thead,.wp-block-flexible-table-block-table.is-style-stripes table thead {
        display: none !important
    }

    .striped-table tbody,.wp-block-flexible-table-block-table.is-style-stripes table tbody,.striped-table tr,.wp-block-flexible-table-block-table.is-style-stripes table tr,.striped-table th,.wp-block-flexible-table-block-table.is-style-stripes table th,.striped-table td,.wp-block-flexible-table-block-table.is-style-stripes table td {
        display: block !important
    }

    .striped-table th,.wp-block-flexible-table-block-table.is-style-stripes table th,.striped-table td,.wp-block-flexible-table-block-table.is-style-stripes table td {
        border-top: unset !important
    }

    .box {
        padding-inline:10px}

    .box--padded-semi-sm {
        padding-inline:16px}

    .box--padded-sm {
        padding-inline:10px}

    .box--sp-full-bleed {
        border-radius: unset;
        margin-inline:calc(10px*-1)}

    .page-anchor {
        grid-template-columns: 1fr
    }

    .page-anchor--col-3 {
        grid-template-columns: 1fr
    }

    .page-anchor__item {
        font-size: 1rem
    }

    .media-block {
        grid-template-columns: auto;
        gap: 40px;
        margin-block:48px}

    .media-block--pc-media-right {
        grid-template-columns: auto
    }

    .media-block--pc-media-right .media-block__image {
        order: 1
    }

    .media-block--pc-media-right .media-block__body {
        order: 2
    }

    .media-block--sp-media-last .media-block__image {
        order: 2
    }

    .media-block--sp-media-last .media-block__body {
        order: 1
    }

    .media-block--float.media-block--tb-media-last {
        gap: 40px
    }

    .category-filter__list {
        display: none
    }

    .category-filter__select {
        display: block;
        width: 100%;
        padding: 14px 20px;
        font-size: 1rem;
        font-weight: 700;
        color: var(--primary-600);
        background-color: var(--white);
        border: 1px solid var(--primary-600);
        border-radius: 8px;
        -webkit-appearance: none;
        appearance: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f883b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 16px center;
        background-size: 16px;
        cursor: pointer
    }

    .benefits-card__header {
        border-radius: 40px 6px 30px 6px
    }

    .benefits-card__icon-area {
        width: 80px;
        height: 80px
    }

    .benefits-card__icon-area img {
        width: 52px
    }

    .benefits-card__content {
        padding: 30px 20px 30px
    }

    .benefits-card__heading {
        font-size: 3rem;
        margin-block:0 20px}

    .benefits-card__amount {
        font-size: 3rem
    }

    .benefits-card__num {
        font-size: 9.375rem
    }

    .benefits-card__desc {
        font-size: 1.25rem;
        line-height: 1.5
    }

    .news-card--horizontal {
        grid-template-columns: unset;
        gap: 32px
    }

    .case-card__content {
        padding-top: 16px
    }

    .case-card__meta {
        gap: 8px;
        margin-bottom: 24px;
        flex-direction: column;
        align-items: start
    }

    .case-card__text-date {
        font-size: 1.125rem
    }

    .case-card__title {
        font-size: 1.5rem
    }

    .case-card__arrow {
        margin-top: 24px
    }

    .grid--sp-col-1 {
        grid-template-columns: 1fr
    }

    .grid--sp-col-2 {
        grid-template-columns: repeat(2, 1fr)
    }

    .grid--sp-gap-10 {
        gap: 10px
    }

    .grid--sp-gap-16 {
        gap: 16px
    }

    .grid--sp-gap-20 {
        gap: 16px
    }

    .grid--sp-gap-24 {
        gap: 24px
    }

    .grid--sp-gap-32 {
        gap: 32px
    }

    .grid--sp-cg-10 {
        column-gap: 10px
    }

    .grid--sp-rg-10 {
        row-gap: 10px
    }

    .grid--sp-rg-16 {
        row-gap: 16px
    }

    .grid--sp-rg-24 {
        row-gap: 24px
    }

    .grid--sp-justify-center {
        justify-items: center
    }

    .figure {
        row-gap: 40px;
        font-size: 1rem
    }

    .figure__caption {
        font-size: 1.25rem;
        line-height: 1.5
    }

    .pager__label {
        position: static;
        width: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        clip: auto;
        white-space: normal;
        font-family: "Josefin Sans",sans-serif;
        font-size: 1rem;
        font-weight: 500;
        color: var(--black)
    }

    .pager__numbers {
        display: none
    }

    .stack {
        padding-inline:10px}

    .article-title {
        margin-bottom: 48px
    }

    .sns-links__link img {
        width: 40px;
        height: 40px
    }

    .status-navi {
        right: 0;
        top: 42px;
        padding: 6px 16px
    }

    .flow-steps {
        grid-template-columns: 1fr
    }

    .flow-steps__item {
        border-left: none;
        padding: 24px
    }

    .form-field {
        grid-template-columns: 1fr;
        gap: 16px
    }

    .contact-form__privacy {
        margin-top: 32px
    }

    .contact-form__privacy-checkbox {
        margin-top: 32px
    }

    .contact-form__submit {
        margin-top: 32px;
        flex-direction: column;
        max-width: 320px;
        margin-inline:auto}

    .accordion__summary-inner {
        padding: 24px 0;
        margin-top: 9px;
        font-size: 1rem;
        align-items: flex-start
    }

    .member {
        padding-block:60px}

    .interviewee-with-image {
        align-items: center;
        column-gap: 24px;
        row-gap: 16px
    }

    .interviewee-with-image__image {
        width: 70px
    }

    .interviewee-with-image__content {
        display: contents
    }

    .interviewee-with-image p {
        margin-block:0;grid-column: 1/-1
    }

    .member-intro {
        grid-template-columns: 1fr;
        row-gap: 32px;
        column-gap: 3rem
    }

    .member-intro__heading {
        font-size: 2rem
    }

    .member-intro__images {
        justify-content: center;
        gap: 24px
    }

    .page-top {
        right: 10px
    }

    .page-top.is-scrolled {
        bottom: 10px
    }

    .page-top__text {
        font-size: .875rem
    }

    .tab__nav {
        min-height: unset;
        grid-template-columns: auto;
        row-gap: 8px
    }

    .tab__button {
        min-height: 62px;
        border-radius: 100vh
    }

    .tab__panel {
        padding: 32px 16px
    }

    .service-card {
        grid-template-columns: 1fr;
        gap: 16px
    }

    .service-card__title {
        font-size: 1.75rem
    }

    .lead {
        font-size: 2rem
    }

    .top-section__wrapper::before {
        height: 120px
    }

    .top-section__path {
        display: none
    }

    .top-section__heading {
        margin-bottom: 24px
    }

    .top-section__title {
        font-size: 2.375rem;
        text-align: center
    }

    .top-section__subtitle {
        font-size: 1.125rem;
        text-align: center
    }

    .philosophy-and-policies {
        margin-inline:calc(10px*-1);grid-template-columns: auto;
        gap: unset
    }

    .philosophy-and-policies__heading {
        text-align: center
    }

    .philosophy-and-policies__text {
        text-align: center
    }

    .history-timeline__item {
        align-items: start
    }

    .history-timeline__content {
        flex-direction: column;
        align-items: start;
        gap: 24px
    }

    .history-timeline__text {
        font-size: 1rem !important
    }

    .qualifications__items,.wp-block-group.is-style-qualifications-items {
        grid-template-columns: 1fr
    }

    .qualifications__item,.wp-block-group.is-style-qualifications-items .wp-block-columns {
        padding: 16px
    }

    .qualifications__item-name,.wp-block-group.is-style-qualifications-items .wp-block-column:first-child {
        font-size: 1rem
    }

    .qualifications__category-total .qualifications__num,.is-style-qualifications-heading p .qualifications__num,.qualifications__category-total .wp-block-group.is-style-qualifications-items .wp-block-column:last-child strong,.wp-block-group.is-style-qualifications-items .wp-block-column:last-child .qualifications__category-total strong,.is-style-qualifications-heading p .wp-block-group.is-style-qualifications-items .wp-block-column:last-child strong,.wp-block-group.is-style-qualifications-items .wp-block-column:last-child .is-style-qualifications-heading p strong,.qualifications__category-total .is-style-qualifications-heading p strong,.is-style-qualifications-heading p .qualifications__category-total strong,.is-style-qualifications-heading p strong {
        font-size: 2rem
    }

    .message-mv {
        padding-block:160px 80px;padding-inline:10px;background-image: url("/wp-content/themes/cns-hokkaido2026/assets/images/bg_message_page-title_sp.webp")
    }

    .message-mv__logo {
        width: 140px
    }

    .message-mv__title {
        margin-bottom: 80px
    }

    .message-mv__title-en {
        font-size: 2.5rem;
        line-height: 1.4
    }

    .message-mv__title-ja {
        font-size: 2rem;
        gap: unset
    }

    .message-mv__title-ja::before,.message-mv__title-ja::after {
        flex-basis: 60px
    }

    .message-mv__intro-text {
        font-size: 1rem;
        line-height: 2.4
    }

    .message-philosophy {
        padding-top: 160px;
        margin-bottom: 80px
    }

    .message-philosophy::before {
        aspect-ratio: 375/304;
        background-image: url("/wp-content/themes/cns-hokkaido2026/assets/images/bg_message_leaf_sp.webp")
    }

    .message-philosophy__list {
        grid-template-columns: auto;
        justify-items: center
    }

    .message-philosophy__item {
        text-align: center
    }

    .message-philosophy__desc {
        font-size: 1.5rem;
        line-height: 1.5
    }

    .message-values__item {
        gap: 24px;
        max-width: 355px;
        padding-top: 44px
    }

    .message-values__icon {
        width: 154px;
        height: 154px
    }

    .message-ceo {
        grid-template-columns: 1fr
    }

    .message-ceo__title {
        font-size: 1.75rem;
        margin-bottom: 64px
    }

    .message-ceo__meta {
        margin-bottom: 64px
    }

    .recruit-mv {
        padding: 140px 20px 60px
    }

    .recruit-mv__title {
        padding-left: unset;
        line-height: 1.5;
        margin-bottom: 30px
    }

    .recruit-mv__images {
        margin-bottom: 60px;
        grid-template-columns: 1fr 1fr
    }

    .recruit-mv__img--left {
        border-radius: 6px 30px 6px 12px;
        grid-column: 1;
        grid-row: 2;
        aspect-ratio: 1;
        overflow: clip
    }

    .recruit-mv__img--left img {
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover
    }

    .recruit-mv__img--center {
        border-radius: 6px 20px 6px 6px;
        grid-column: 1/-1;
        grid-row: 1;
        padding-bottom: unset
    }

    .recruit-mv__img--right {
        border-radius: 20px 6px 10px 6px;
        grid-column: 2;
        grid-row: 2;
        padding-bottom: unset;
        aspect-ratio: 1;
        overflow: clip
    }

    .recruit-mv__img--right img {
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover
    }

    .recruit-mv__desc p {
        text-align: left;
        line-height: 1.8
    }

    .recruit-candidate-intro {
        margin-block:60px !important;font-size: 1.125rem;
        line-height: 2;
        text-align: left;
        padding-inline:10px}

    .recruit-candidate-intro strong {
        font-size: 1.5rem
    }

    .recruit-candidate-intro p {
        margin-block:20px}

    .recruit-candidate-list {
        gap: 20px
    }

    .recruit-candidate-list__item {
        width: 100%
    }

    .recruit-candidate-list__item img {
        width: 175px
    }

    .recruit-members-section::before {
        border-top-left-radius: 50% 31px;
        border-top-right-radius: 50% 31px;
        border-bottom-left-radius: 10px;
        border-bottom-right-radius: 10px
    }

    .recruit-members {
        margin-block:40px;gap: 20px
    }

    .recruit-members__item {
        width: 100%
    }

    .recruit-cards {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .recruit-cards__label {
        padding: 10px 10px 10px 20px
    }

    .recruit-cta {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 80px
    }

    .recruit-cta__item {
        padding: 10px;
        gap: 10px
    }

    .recruit-cta__image {
        width: 142px
    }

    .recruit-cta__label {
        font-size: 1.125rem;
        margin-bottom: 4px
    }

    .recruit-cta__sub {
        font-size: 1rem
    }

    .environment-office {
        gap: 20px;
        padding: 30px 20px
    }

    .environment-office__access {
        padding-bottom: 40px;
        margin-bottom: 20px
    }

    .environment-office__access>img {
        width: calc(.5333333333*var(--vw)*100);
        margin-left: 0
    }

    .environment-office__access-from {
        font-size: 1.25rem
    }

    .environment-office__access-means {
        font-size: 3rem
    }

    .environment-office__access-time {
        font-size: 3rem
    }

    .environment-office__access-min {
        font-size: 9.375rem
    }

    .environment-office__photos {
        grid-template-columns: 1fr
    }

    .environment-office__address {
        font-size: 1.25rem;
        line-height: 1.5
    }

    .environment-office__map iframe {
        height: 315px
    }

    .interviewee-name {
        margin-bottom: 32px
    }

    .interview-heading,.is-style-interview-heading {
        flex-direction: column;
        font-size: 1.25rem;
        margin-block:48px}

    .biz-features {
        gap: 32px
    }

    .biz-features__item {
        padding-inline:16px}

    .biz-features__number {
        width: 84px;
        height: 84px;
        padding: 16px 12px;
        font-size: 2.5rem
    }

    .biz-features__body {
        grid-template-columns: 1fr;
        gap: 16px
    }

    .d-sp-none {
        display: none
    }

    .d-sp-block {
        display: block
    }

    .has-normal-font-size {
        font-size: 1rem
    }

    .wp-block-group.is-nowrap.is-layout-flex:has(>.wp-block-image.size-thumbnail) {
        gap: 24px
    }

    .wp-block-group.is-nowrap.is-layout-flex:has(>.wp-block-image.size-thumbnail)>.wp-block-image.size-thumbnail {
        align-self: flex-start;
        width: 70px
    }

    .is-style-qualifications-heading p strong {
        font-size: 2rem
    }
}

@media (any-hover: hover) {
    main a:hover img,aside a:hover img {
        opacity:.7
    }

    a:not([class]):hover {
        text-decoration: none
    }

    .header__logo:hover {
        opacity: .7
    }

    .header__nav-link:hover {
        color: var(--primary-600)
    }

    .header__dropdown-link:hover .header__dropdown-arrow {
        transform: translateX(4px)
    }

    .footer__nav-link:hover {
        color: var(--primary-200)
    }

    .footer__bottom-link:hover {
        color: var(--primary-200)
    }

    .button:hover .button__arrow {
        transform: translateX(4px)
    }

    .button:hover .button__download {
        transform: translateY(4px)
    }

    .button--primary:hover,.wp-block-button:not(.is-style-button-secondary):not(.button--secondary):not(.is-style-button-tertiary):not(.button--tertiary) .button:hover,.wp-block-file .button:hover {
        background-color: var(--white);
        color: var(--primary-600)
    }

    .button--white:hover {
        background-color: var(--primary-600);
        color: var(--white);
        border-color: var(--primary-600)
    }

    .button--header:hover {
        opacity: .7
    }

    .button--fixed-contact:hover {
        background-color: rgb(243.1,217.2,126.2)
    }

    .button--fixed-entry:hover {
        opacity: .8
    }

    .button--continue:hover {
        transform: scale(1.1)
    }

    .mv__skip:hover {
        opacity: .7
    }

    .news__item:hover {
        background-color: rgba(230,244,233,.3)
    }

    .news__item:hover .news__item-arrow {
        transform: translateX(4px);
        background-color: var(--primary-600)
    }

    .news__item:hover .news__item-arrow img {
        filter: none
    }

    .contact__button:hover {
        box-shadow: 0 8px 24px rgba(0,0,0,.12)
    }

    .contact__button:hover .contact__button-arrow {
        background-color: var(--primary-600);
        transform: translateX(4px)
    }

    .contact__button:hover .contact__button-arrow img {
        filter: none
    }

    .breadcrumb__text[href]:hover {
        text-decoration: underline !important
    }

    .page-anchor__item:hover {
        color: var(--primary-600)
    }

    .page-anchor__item:hover .page-anchor__arrow {
        transform: translateY(4px);
        background-color: var(--primary-600)
    }

    .page-anchor__item:hover .page-anchor__arrow img {
        filter: none
    }

    .category-filter__item:hover {
        background-color: var(--primary-600);
        color: var(--white)
    }

    .category-filter__item:hover .category-filter__arrow {
        transform: translateX(4px)
    }

    .member-card:hover {
        opacity: .8
    }

    .news-card__link:hover {
        color: var(--primary-600)
    }

    .news-card__link:hover .news-card__arrow {
        background-color: var(--primary-600);
        transform: translateX(4px)
    }

    .news-card__link:hover .news-card__arrow img {
        filter: none
    }

    .case-card__link:hover {
        color: var(--primary-600)
    }

    .case-card__link:hover .case-card__arrow {
        background-color: var(--primary-600);
        transform: translateX(4px)
    }

    .case-card__link:hover .case-card__arrow img {
        filter: none
    }

    .pager__number:hover {
        background-color: var(--primary-600);
        color: var(--white)
    }

    .sns-links__link:hover {
        opacity: .7
    }

    .tab__button:hover {
        background-color: var(--primary-600)
    }

    .download-card:hover .download-card__arrow {
        transform: translateY(4px);
        background-color: var(--primary-600)
    }

    .download-card:hover .download-card__arrow img {
        filter: none
    }

    .service-card:hover {
        color: var(--primary-600)
    }

    .service-card:hover .service-card__arrow {
        transform: translateX(4px);
        background-color: var(--primary-600)
    }

    .service-card:hover .service-card__arrow img {
        filter: none
    }

    .recruit-cards__item:hover {
        opacity: .8
    }

    .recruit-cta__item:hover {
        opacity: .8
    }
}
