@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400&display=swap');

/* 変数設定（theme.json の preset / custom と同期。フォールバックはエディタ外でも表示用） */
:root {
    --color-main: var(--wp--preset--color--main, #0e1a82);
    --color-main02: var(--wp--preset--color--main-02, #191c35);
    --color-main03: var(--wp--preset--color--main-03, #a4acf4);
    --color-main04: var(--wp--preset--color--main-04, #023f73);
    --color-sub: var(--wp--preset--color--sub, #3AAFC9);
    --color-sub02: var(--wp--preset--color--sub-02, #e8330a);
    --color-yellow: var(--wp--preset--color--yellow, #ffd501);
    --color-wh: var(--wp--preset--color--white, #ffffff);
    --color-bk: var(--wp--preset--color--bk, #191c35);
    --color-dark: var(--wp--preset--color--dark, #c1c1c1);
    --color-dark02: var(--wp--preset--color--dark-02, #656565);
    --color-dark03: var(--wp--preset--color--dark-03, #555656);
    --color-bg: var(--wp--preset--color--bg, #E9E9E9);
    --color-bg02: var(--wp--preset--color--bg-02, #f2f3f7);
    --color-bg03: var(--wp--preset--color--bg-03, #e9eaef);
    --color-hover: var(--wp--preset--color--hover, #eceef6);
    --color-hover02: var(--wp--preset--color--hover-02, #f5f9fd);
    --color-border02: var(--wp--preset--color--border-02, #d9d9d9);
    --color-border03: var(--wp--preset--color--border-03, #D9D9D9);
    --color-feature-yellow: var(--wp--preset--color--feature-yellow, #fff2b0);
    --font-main: var(--wp--preset--font-family--noto-sans-jp, "Noto Sans JP", sans-serif);
    --leading-trim: var(--wp--custom--leading--trim, calc((1rem - 1lh) / 2));
}
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-track {
    padding: 1px 0;
    background-color: var(--color-border02);
}
::-webkit-scrollbar-thumb {
    background-color: var(--color-dark);
    border: none;
    border-radius: 5rem;
}
@media (hover: none) {
    * {
      pointer-events: auto; 
    }
    *:hover {
      transform: none !important;
      transition: none !important;
      opacity: 1 !important;
    }
}
.wpcf7-spinner {
    display: none!important;
}
.entry-content {
    > p:first-of-type {
        line-height: calc(28/15);
    }
    .no-post {
        padding: 3rem 0;
    }
}
.mgb-res8060 {
    margin-bottom: 5rem;
    @media (768px > width) {
        margin-bottom: 3.75rem;
    }
}
.site-branding {
    width: 100%;
    max-width: 360px;
    @media (1200px > width) {
        max-width: 300px;
    }
    @media (768px > width) {
        width: calc(100% - 140px);
        max-width: 180px;
    }
}
.c-logo {
    & .c-logo__text {
        color: var(--color-main);
        @media (768px > width) {
            font-size: 1.125rem;
        }
    }
    & .c-logo__textEn {
        letter-spacing: .01rem;
        font-size: .75rem;
        font-weight: 500;
        white-space: nowrap;
        color: var(--color-sub);
    }
}
.breadcrumb {
    padding-top: 1rem;
    @media (768px > width) {
        width: 100%;
        margin-left: 0;
        padding-top: .875rem;
    }
    #breadcrumbs {
        display: flex;
        justify-content: left;
        align-items: center;
    }
    a, span {
        font-size: .875rem;
        color: var(--color-wh);
        @media (768px > width) {
            font-size: .75rem;
        }
    }
    .breadcrumb_last {
        /* overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 1;
        height: 20px; */
        color: var(--color-wh);
    }
}
.l-pageHeader {
    z-index: 2;
    position: relative;
    margin-top: 5.625rem;
    padding: 5.125rem 0 3.75rem;
    @media (768px > width) {
        margin-top: 4rem;
        padding: 2.5rem 0 1.875rem;
    }
    &::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: url('../images/bg_pc.webp') top center / 100% 100% no-repeat;
        z-index: -1;
        @media (768px > width) {
            left: 0;
            background: url('../images/bg_sp.webp') top center / 100% 100% no-repeat;
        }
    }
    & .l-pageHeader__inner {
        box-sizing: content-box;
        max-width: 1100px;
        margin: 0 auto;
        padding: 0 1.25rem;
    }
    & .l-pageHeader__title {
        position: relative;
        display: inline-block;
        margin: 0;
        font-size: 3.125rem;
        font-weight: 600;
        color: var(--color-wh);
        letter-spacing: 0.2rem;
        @media (768px > width) {
            font-size: 1.875rem;
        }
    }
}

.c-title {
    z-index: 3;
    position: relative;
    display: inline-block;
    margin-left: 3.125rem;
    line-height: 1;
    font-size: 1.5rem;
    color: var(--color-main);
    @media (768px > width) {
        margin-left: 2.125rem;
        font-size: 1.1225rem;
    }
    &::before {
        content: attr(data-en);
        display: block;
        margin: -.625rem 0 0 -3.125rem;
        font-size: 4rem;
        font-weight: 500;
        background: linear-gradient(to right, var(--color-main03) 0%, var(--color-main) 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        letter-spacing: 0.2rem;
        @media (768px > width) {
            margin: -.625rem 0 0 -2.25rem;
            font-size: 2.875rem;
        }
    }
    p {
        position: relative;
        margin-top: 1.125rem;
        letter-spacing: 0.05rem;
        font-weight: 600;
        &::before {
            position: absolute;
            content: "";
            top: 50%;
            left: -48px;
            transform: translateY(-50%);
            width: 36px;
            height: 3px;
            background: linear-gradient(to right, var(--color-main03) 0%, var(--color-main) 100%);
            @media (768px > width) {
                left: -32px;
                width: 20px;
            }
        }
    }
}
.l-inner {
    box-sizing: border-box;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 1.25rem;
}
.l-inner--content {
    box-sizing: border-box;
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    padding: 0;
}
.l-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: var(--color-wh);
    z-index: 9999;
    box-shadow: 0 4px 4px #00000040;
    & .l-header__inner {
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 90px;
        padding-left: calc(50/1400 * 100vw);
        @media (768px > width) {
            height: 64px;
        }
        .main-navigation {
            display: flex;
            justify-content: right;
            height: 100%;
            @media (1024px > width) {
                flex-direction: row-reverse;
            }
            @media (768px > width) {
                width: auto;
            }
            #menu-header-top {
                justify-content: right;
                line-height: 1.25;
                & .menu-item {
                    align-content: center;
                    &:not(:last-of-type) {
                        border-right: 1px solid #D9D9D9;
                    }
                    a {
                        padding: 0 1.25rem;
                        font-size: .75rem;
                        font-weight: 500;
                        color: var(--color-bk);
                        &:hover {
                            color: var(--color-sub);
                        }
                    }
                }
            }
            #menu-header-bottom {
                /* margin-top: .75rem; */
                & .menu-item {
                    align-content: center;
                    > ul.sub-menu {
                        flex-direction: column;
                        width: calc(100% + 100px);
                        border-bottom-left-radius: .625rem;
                        border-bottom-right-radius: .625rem;
                        border-top: 5px solid var(--color-sub);
                        background: var(--color-wh);
                        &::before {
                            position: absolute;
                            content: "";
                            background: var(--color-sub);
                            transform: translateX(-50%);
                            left: 50%;
                            top: -8px;
                            border-radius: 30px 30px 0 0;
                            padding: 3px 24px 1px;
                            line-height: 1;
                            letter-spacing: 0.05em
                        }
                        li {
                            &:not(:last-of-type) {
                                background-image : linear-gradient(to right, var(--color-border02), var(--color-border02) 4px, transparent 2px, transparent 8px);  /* 幅2の線を作る */
                                background-size: 10px 2px;          /* グラデーションの幅・高さを指定 */
                                background-position: left bottom;  /* 背景の開始位置を指定 */
                                background-repeat: repeat-x;
                            }

                        }
                        a {
                            position: relative;
                            width: 100%;
                            padding: 1.125rem 1.25rem 1.125rem 1rem;
                            font-size: .9375rem;
                            &::after {
                                position: absolute;
                                content: "";
                                top: 50%;
                                left: unset;
                                right: 1rem;
                                transform: translateY(-50%);
                                width: 7px;
                                height: 12px;
                                background: url(../images/arrow-org-button.png), top center / contain no-repeat;
                            }
                        }
                    }
                    a {
                        position: relative;
                        padding: .85rem 1.25rem;
                        font-size: .9375rem;
                        font-weight: 700;
                        color: var(--color-bk);
                        &:hover {
                            opacity: 1;
                            color: var(--color-sub);
                            &::after {
                                position: absolute;
                                content: "";
                                bottom: 0;
                                left: 50%;
                                transform: translateX(-50%);
                                width: 50px;
                                height: 5px;
                                border-radius: 1.875rem;
                                background: var(--color-sub);
                            }
                        }
                    }
                    &:last-of-type {
                        a {
                            padding: .85rem 1.25rem;
                        }
                    }
                    &.menu-item-has-children {
                        &::after {
                            position: absolute;
                            content: "";
                            top: 50%;
                            right: 0;
                            transform: translateY(-50%);
                            width: 12px;
                            height: 12px;
                            background: url(../images/icon-org-children.png), top center / contain no-repeat;
                            cursor: pointer;
                        }
                        &:hover {
                            opacity: 1;
                            &::after {
                                position: absolute;
                                content: "";
                                top: 50%;
                                right: 0;
                                transform: translateY(-50%);
                                width: 12px;
                                height: 2px;
                                background: var(--color-sub);
                                border-radius: 2px;
                            }
                        }
                    }
                }
            }
            & .l-header__contactButton {
                text-align: center;
                align-content: center;
                width: 100px;
                padding: 0;
                font-size: .875rem;
                color: var(--color-wh);
                background: var(--color-sub);
                @media (768px > width) {
                    width: 64px;
                    font-size: .6375rem;
                }
                img {
                    display: block;
                    width: 30px;
                    margin: 0 auto .5rem;
                }
                &:hover {
                    opacity: .75;
                }
            }
            & .l-header__contactMenu {
                position: relative;
                display: none;
                text-align: center;
                align-content: center;
                width: 100px;
                padding: 0;
                font-size: .875rem;
                border: none;
                border-radius: 0;
                color: var(--color-wh);
                background: var(--color-main);
                @media (1024px > width) {
                    display: block;
                }
                @media (768px > width) {
                    width: 64px;
                    font-size: .6375rem;
                }
                span {
                    /* position: absolute; */
                    display: block;
                    width: 24px;
                    height: 1px;
                    margin: 8px auto 0;
                    background: var(--color-wh);
                    &:first-of-type {
                        margin: 0 auto;
                    }
                }
                p {
                    margin: .625rem auto 0;
                    @media (768px > width) {
                        font-size: .7125rem;
                    }
                }
                img {
                    display: block;
                    word-break: 30px;
                    margin: 0 auto .5rem;
                }
            }
            & .l-headerColumn {
                padding-right: 1.5rem;
                display: flex;
                flex-direction: column;
                justify-content: center;
                @media (1024px > width) {
                    display: none;
                }
                #menu-item-178 {
                    position: relative;
                    a {
                        padding: 0 1.25rem 0 2.5rem;
                        font-size: 1.25rem;
                        font-weight: 700;
                        color: var(--color-main);
                        &:hover {
                            opacity: .8;
                            color: var(--color-main);
                        }
                    }
                    &::before {
                        position: absolute;
                        content: "";
                        top: 51%;
                        left: 10%;
                        transform: translateY(-50%);
                        width: 18px;
                        height: 18px;
                        background: url('../images/icon-tel-navy.png'), top center / contain no-repeat;
                    }
                }
                & .sp-menu {
                    display: none;
                }
            }
            &.toggled {
                & .l-header__contactMenu {
                    p {
                        margin: 1rem auto 0;
                    }
                    span {
                        &:first-of-type {
                            width: 32px;
                            transform: rotate(30deg) translate(1px, 6px);
                        }
                        &:nth-of-type(2) {
                            display: none;
                        }
                        &:last-of-type {
                            width: 32px;
                            transform: rotate(-30deg) translate(0px, -3px);
                        }
                    }
                }
                & .l-headerColumn {
                    position: fixed;
                    content: "";
                    top: 90px;
                    display: block;
                    width: 100%;
                    height: 100vh;
                    padding: 1.5rem 1.5rem 6rem;
                    background: var(--color-main);
                    overflow-y: scroll;
                    @media (768px > width) {
                        top: 64px;
                    }
                    & .menu-header-container,
                    & .menu-header-bottom-container,
                    & .menu-header-top-container {
                        display: block;
                        & .menu-item-has-children,
                        & .menu-item--product-mega {
                            & > a {
                                position: relative;
                                padding-right: 2rem;
                                &::before,
                                &::after {
                                    position: absolute;
                                    content: "";
                                    top: 50%;
                                    right: 0.125rem;
                                    width: 0.875rem;
                                    height: 2px;
                                    border: none;
                                    background: var(--color-wh);
                                    transform: translateY(-50%);
                                    transition: transform 0.2s ease, opacity 0.2s ease;
                                }
                                &::before {
                                    transform: translateY(-50%) rotate(90deg);
                                }
                            }
                            &.open > a::before {
                                opacity: 0;
                            }
                        }
                        & .menu-item--product-mega > .c-productMega {
                            position: static;
                            display: block!important;
                            max-height: 0;
                            margin-top: 0;
                            padding: 0;
                            overflow: hidden;
                            background: transparent;
                            box-shadow: none;
                            border-radius: 0;
                            opacity: 1;
                            visibility: visible;
                            pointer-events: auto;
                            transition: max-height 0.3s ease, margin-top 0.3s ease, padding-top 0.3s ease;
                            & .l-inner {
                                padding: 0;
                            }
                            & .c-productMega__section {
                                &:not(:first-of-type) {
                                    margin-top: 1.875rem;
                                }
                            }
                            .c-productMega__sectionTitle {
                                padding-bottom: .75rem;
                                font-size: 1rem;
                                font-weight: 500;
                                color: var(--color-wh);
                            }
                            .c-productMega__grid {
                                position: static;
                                display: grid;
                                grid-template-columns: repeat(3, minmax(0, 1fr));
                                gap: 1.25rem 0.625rem;

                                & .c-productMega__link {
                                    width: auto;
                                    padding: 0;
                                    & .c-productMega__label {
                                        font-size: .75rem;
                                    }
                                }
                            }
                        }
                        & .menu-item--product-mega.open {
                            .c-productMega {
                                max-height: 3000px;
                                margin-top: 1rem;
                                padding-top: 0.25rem;
                                margin-bottom: .75rem;
                            }
                        }
                        & .menu-item--product-mega.open {
                            /* margin-top: 1.875rem; */
                        }
                        & .menu-item-has-children > .sub-menu {
                            position: static;
                            display: flex;
                            align-items: flex-start;
                            justify-content: space-between;
                            max-height: 0;
                            margin-top: 0;
                            overflow: hidden;
                            visibility: hidden;
                            opacity: 0;
                            pointer-events: none;
                            transform: translateX(0);
                            transition: max-height 0.3s ease, margin-top 0.3s ease, opacity 0.2s ease, visibility 0s linear 0.3s;
                            @media (768px > width) {
                                gap: .5rem;
                            }
                            & .menu-item-50 {
                                display: none;
                            }
                            &.menu-item {
                                border-bottom: none;
                            }
                        }
                        & .menu-item-has-children.open {
                            > .sub-menu {
                                max-height: 1200px;
                                margin-top: 1rem;
                                visibility: visible;
                                opacity: 1;
                                pointer-events: auto;
                                transition-delay: 0s;
                                & .menu-item {
                                    border-bottom: none;
                                }
                            }
                        }
                        li {
                            &.menu-item {
                                border-bottom: 1px solid var(--color-border03);
                                & .sub-menu {
                                    li {
                                        @media (768px > width) {
                                            width: 50%;
                                        }
                                    }
                                }
                            }
                            a {
                                width: auto;
                                font-size: 1.25rem;
                                padding: 1rem 0;
                                color: var(--color-wh);
                            }
                        }
                    }
                    & .sp-menu {
                        display: none;
                        & .c-cta__link {
                            margin-top: 2.5rem;
                            & .c-cta__button.tel {
                                background: var(--color-wh);
                                border: 2px solid var(--color-sub);
                                color: var(--color-sub);
                                > div {
                                    &::before {
                                        position: absolute;
                                        content: "";
                                        top: 50%;
                                        left: 85%;
                                        transform: translateY(-50%);
                                        width: 0;
                                        height: 2px;
                                        background: transparent;
                                        transition: .3s ease;
                                    }
                                    &::after {
                                        position: absolute;
                                        content: "";
                                        top: 50%;
                                        right: 1rem;
                                        transform: translateY(-50%);
                                        width: 7px;
                                        height: 12px;
                                        background: url(../images/arrow-org-button.png), top center / contain no-repeat;
                                    }
                                }
                                &::before {
                                    background: url(../images/icon-tel-orange.png), top center / contain no-repeat;
                                }
                            }
                        }
                        & #menu-header-sp {
                            li {
                                padding: .875rem 0 1rem;
                                border-bottom: 1px solid var(--color-border);
                                a {
                                    position: relative;
                                    font-size: .9375rem;
                                    font-weight: 600;
                                    color: var(--color-main);
                                    &::after {
                                        position: absolute;
                                        content: "";
                                        top: 50%;
                                        right: .5rem;
                                        transform: translateY(-50%);
                                        width: 7px;
                                        height: 12px;
                                        background: url(../images/arrow-navy-next.png), top center / contain no-repeat;
                                    }
                                }
                                &.menu-item-has-children {
                                    position: relative;
                                    a {
                                        &::after {
                                            position: absolute;
                                            content: "";
                                            top: 50%;
                                            right: 0.375rem;
                                            transform: translateY(-50%);
                                            width: 12px;
                                            height: 12px;
                                            background: url(../images/icon-navy-parent.svg), center top / contain no-repeat;
                                        }
                                    }
                                    & .sub-menu {
                                        li {
                                            
                                            a {
                                                &::after {
                                                    position: absolute;
                                                    content: "";
                                                    top: 50%;
                                                    right: 1rem;
                                                    transform: translateY(-50%);
                                                    width: 7px;
                                                    height: 12px;
                                                    background: url(../images/arrow-navy-next.png), center top / contain no-repeat;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            & .sub-menu {
                                @media (1024px > width) {
                                    position: static;
                                    max-height: 0;
                                    overflow: hidden;
                                    transition: max-height 0.3s ease-out;
                                    list-style: none;
                                    box-shadow: none;
                                }
                            }
                            & .open {
                                & .sub-menu {
                                    margin-top: 1rem;
                                    float: none;
                                    transform: translateX(0);
                                    li {
                                        position: relative;
                                        margin: 3px 0;
                                        padding: 0;
                                        border-radius: .75rem;
                                        border-bottom: none;
                                        background: #f5f5f5;
                                        a {
                                            width: 100%;
                                            padding: .75rem 0 1rem 1rem;
                                            color: var(--color-main);
                                        }
                                    }
                                }
                            }
                        }

                    }
                    & .menu-header-top-container,
                    & .menu-header-bottom-container {
                        display: none;
                    }
                }
            }
        }
    }
    & .l-header__logo {
        width: 400px;
        @media (1280px > width) {
            width: 320px;
        }
        @media (1024px > width) {
            width: 236px;
        }
        @media (768px > width) {
            max-width: calc(100% - 140px);
        }
        & .c-logo__textEn {
            @media (1280px > width) {
                font-size: .625rem;
            }
            @media (768px > width) {
                font-size: .5rem;
            }
        }
        & .c-logo__text {
            font-size: 1.375rem;
            @media (1280px > width) {
                font-size: 1.125rem;
            }
            @media (768px > width) {
                font-size: .8125rem;
            }
        }
    }
}

/* サブメニュー項目のサムネイル（外観→メニューで設定） */
.l-header {
    & .sub-menu a.submenu-has-thumb {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
        &::after {
            content: none;
        }
    }
    & .sub-menu .submenu-thumb {
        display: block;
        width: 100%;
        max-width: 180px;
        line-height: 0;
        border-radius: 2px;
        overflow: hidden;
    }
    & .sub-menu .submenu-thumb__img {
        width: 100%;
        height: auto;
        display: block;
        object-fit: cover;
    }
    & .sub-menu .submenu-thumb__text {
        display: block;
        width: 100%;
        white-space: nowrap;
        font-size: 0.875rem;
        color: var(--color-wh);
        @media (768px > width) {
            font-size: 0.75rem;
        }
    }
}

/* 製品情報メガメニュー（Figma 208:199）— #menu-item-44 ホバー／フォーカス */
@media (min-width: 1280px) {
    .l-header {
        & .menu-item--product-mega {
            position: relative;
            & > .sub-menu {
                display: none !important;
            }
            &:hover .c-productMega,
            &:focus-within .c-productMega {
                opacity: 1;
                visibility: visible;
                pointer-events: auto;
            }
        }
        & .c-productMega {
            position: fixed;
            top: 90px;
            right: 3rem;
            width: calc(100% - 6rem);
            z-index: 9998;
            padding: 2rem 0 2.5rem;
            background: #0e1a82;
            box-shadow: 0 0 24px rgba(91, 91, 91, 0.37);
            border-radius: 0 0 5px 5px;
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transition:
                opacity 0.2s ease,
                visibility 0.2s ease;
        }
        & .menu-item-43 {
          & .c-productMega {
             background: #676767;
             & .c-productMega__grid {
             background: #676767;
             }
          }
        }
        & .c-productMega__inner {
            max-width: none;
        }
        & .c-productMega__section {
            display: flex;
            align-items: flex-start;
            gap: 2rem;
        }
        & .c-productMega__sectionTitle {
            flex: 0 0 8.5rem;
            margin: 0;
            font-size: 1.25rem;
            font-weight: 700;
            line-height: 1.4;
            letter-spacing: 0.05em;
            color: #fff;
        }
        & .c-productMega__grid {
            position: static;
            top: auto;
            left: auto;
            right: auto;
            width: auto;
            display: flex;
            flex-wrap: wrap;
            gap: 1.125rem 1.15rem;
            margin: 0;
            padding: 0;
            list-style: none;
        }
        & .c-productMega__rule {
            height: 1px;
            margin: 2rem 0 1.75rem;
            background: rgba(255, 255, 255, 0.35);
        }
        & .c-productMega__grid--domestic {
            /* grid-template-columns: repeat(3, minmax(0, 1fr)); */
        }
        & .c-productMega__cell {
            margin: 0;
            padding: 0;
            list-style: none;
        }
        & .c-productMega__link {
            text-align: left;
            width: 100%;
            max-width: 180px;
            padding: 0;
            text-decoration: none;
            color: inherit;
            transition: opacity 0.2s ease;
            &:hover {
                opacity: 0.88;
            }
        }
        & .c-productMega__logoBox {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            aspect-ratio: 260 / 120;
            border-radius: 2px;
            box-sizing: border-box;
            background: #fff;
            overflow: hidden;
        }
        & .c-productMega__logoImg {
            max-width: 100%;
            max-height: 5rem;
            width: auto;
            height: auto;
            object-fit: contain;
        }
        & .c-productMega__label {
            display: block;
            margin-top: 0.5rem;
            font-size: 0.875rem;
            font-weight: 500;
            line-height: 1.57;
            letter-spacing: 0.05em;
            text-align: left;
            color: #fff;
        }
        & .c-productMega__label--empty {
            min-height: 1.375rem;
        }
    }
}
@media (max-width: 1279.98px) {
    .l-header .c-productMega {
        display: none !important;
    }
}

/* フッター（Figma: パーカーコーポレーション / node 535:4531） */
.l-footer.l-footer--parker {
    --footer-parker-bg: #e8e8e8;
    --footer-parker-text: #191c35;
    --footer-parker-accent: #023f73;
    --footer-parker-muted: #878787;
    --footer-parker-cta: #40b0c8;
    --footer-parker-rule: #d0d0d0;

    position: relative;
    z-index: 999;
    margin-top: 0;
    border-radius: 0;
    background: var(--footer-parker-bg);
    font-family: var(--font-main);

    & .l-footerParker__main {
        display: grid;
        grid-template-columns: minmax(220px, 35%) 1px minmax(0, 1fr) 1px minmax(140px, 20%);
        gap: clamp(1.25rem, 3vw, 2.5rem) clamp(1rem, 2.5vw, 2rem);
        align-items: start;
        max-width: 1240px;
        padding-top: clamp(3rem, 6vw, 5.75rem);
        padding-bottom: clamp(2rem, 5vw, 4rem);
        @media (960px > width) {
            grid-template-columns: 1fr;
            gap: 2rem;
        }
    }
    
    & .l-footerFixed {
        position: fixed;
        display: block;
        bottom: 25px;
        right: 25px;
        width: 105px;
        @media (960px > width) {
            bottom: 20px;
            right: 15px;
            width: 70px;
        }
    }

    & .l-footerParker__rule {
        width: 1px;
        align-self: stretch;
        min-height: 12rem;
        background: var(--footer-parker-rule);
        @media (960px > width) {
            display: none;
        }
    }

    & .l-footerParker__col--brand {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
    }

    & .l-footerParker__logo {
        & .custom-logo-link,
        & .l-footerParker__logoLink {
            display: inline-block;
            max-width: 21rem;
        }
        & .custom-logo,
        & img {
            width: 100%;
            max-width: 21rem;
            height: auto;
        }
    }

    & .l-footerParker__logoFallback {
        font-size: 1.125rem;
        font-weight: 700;
        color: var(--color-main);
        text-decoration: none;
        &:hover {
            text-decoration: underline;
        }
    }

    & .l-footerParker__company {
        margin: 0;
        & p {
            margin: 0;
            font-size: 1rem;
            font-weight: 700;
            line-height: 1.5;
            letter-spacing: 0.05em;
            color: var(--footer-parker-text);
        }
    }

    & .l-footerParker__address {
        margin: 0;
        font-style: normal;
        & p {
            margin: 0 0 0.25rem;
            font-size: 0.9375rem;
            font-weight: 400;
            line-height: 1.6;
            letter-spacing: 0.05em;
            color: var(--footer-parker-text);
        }
        & a {
            color: inherit;
            text-decoration: none;
            &:hover {
                text-decoration: underline;
            }
        }
    }

    & .l-footerParker__copyright {
        margin: auto 0 0;
        padding-top: 8.5rem;
        font-size: 0.625rem;
        font-weight: 400;
        line-height: 1.5;
        letter-spacing: 0.15em;
        color: var(--footer-parker-muted);
        @media (960px > width) {
            padding-top: 0.5rem;
        }
    }

    & .l-footerParker__heading {
        margin: 0 0 1.25rem;
        font-size: 0.875rem;
        font-weight: 700;
        line-height: 1.7;
        letter-spacing: 0.05em;
        color: var(--footer-parker-text);
    }

    & .l-footerParker__makers {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem clamp(1.5rem, 4vw, 3rem);
        @media (640px > width) {
            grid-template-columns: 1fr;
        }
    }

    & .l-footerParker__subheading {
        margin: 0 0 0.75rem;
        font-size: 0.9375rem;
        font-weight: 600;
        line-height: 1.6;
        letter-spacing: 0.05em;
        color: var(--footer-parker-accent);
    }

    & .l-footerParker__makerList {
        margin: 0;
        padding: 0;
        list-style: none;
        & li {
            display: flex;
            align-items: flex-start;
            gap: 0.5rem;
            margin-bottom: 0.35rem;
            font-size: 0.875rem;
            font-weight: 500;
            line-height: 1.7;
            letter-spacing: 0.05em;
            a {
                white-space: nowrap;
                color: var(--footer-parker-text);
            }
        }
    }

    & .l-footerParker__bulletIcon {
        flex-shrink: 0;
        margin-top: 0.2em;
    }

    & .l-footerParker__col--nav {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 1.25rem;
        @media (960px > width) {
            flex-direction: row;
            flex-wrap: wrap;
            align-items: stretch;
        }
    }

    & .l-footerParker__nav {
        margin: 0;
        padding: 0;
        list-style: none;
        @media (960px > width) {
            width: 40%;
        }
        & li {
            margin-bottom: 0.65rem;
        }
        & a {
            font-size: 0.875rem;
            line-height: 1.7;
            letter-spacing: 0.05em;
            color: var(--footer-parker-text);
            text-decoration: none;
            &:hover {
                text-decoration: underline;
            }
        }
    }

    & .l-footerParker__nav--primary a {
        font-weight: 700;
    }

    & .l-footerParker__nav--secondary a {
        font-weight: 400;
    }

    & .l-footerParker__cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 178px;
        margin-top: 0.25rem;
        padding: 0.75rem 2.25rem;
        background: var(--footer-parker-cta);
        color: var(--color-wh);
        font-size: 0.875rem;
        font-weight: 500;
        letter-spacing: 0.05em;
        text-decoration: none;
        transform: skewX(-10deg);
        box-shadow: 0 2px 6px rgb(0 0 0 / 12%);
        transition: opacity 0.25s ease, filter 0.25s ease;
        @media (960px > width) {
            align-self: center;
            width: 100%;
            max-width: 280px;
        }
        &:hover {
            opacity: 0.92;
            filter: brightness(1.05);
        }
    }

    & .l-footerParker__ctaLabel {
        display: block;
        transform: skewX(10deg);
    }

    /* PAGE TOP（Figma node 683:9558）— フッター右下 fixed 相当の absolute */
    & .l-footerParker__pageTop {
        position: absolute;
        right: clamp(0.75rem, 3vw, 1.75rem);
        bottom: clamp(1rem, 2.5vw, 1.6rem);
        z-index: 5;
        display: block;
        width: 6.8125rem;
        min-height: 3.75rem;
        padding: 0;
        text-decoration: none;
        color: var(--color-wh);
        &:focus-visible {
            outline: 2px solid var(--color-main);
            outline-offset: 3px;
        }
    }

    & .l-footerParker__pageTop-shadow {
        position: absolute;
        inset: 0;
        z-index: 0;
        transform: translate(5px, 5px);
        clip-path: polygon(0.4rem 0, 100% 0, calc(100% - 0.4rem) 100%, 0 100%);
        background: #c5c6c9;
        pointer-events: none;
    }

    & .l-footerParker__pageTop-inner {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        min-height: 3.75rem;
        padding: 0.5rem 0.65rem 0.75rem;
        clip-path: polygon(0.4rem 0, 100% 0, calc(100% - 0.4rem) 100%, 0 100%);
        background: #0e1a82;
        transition: filter 0.2s ease, transform 0.2s ease;
    }

    & .l-footerParker__pageTop:hover .l-footerParker__pageTop-inner {
        filter: brightness(1.08);
    }

    & .l-footerParker__pageTop:active .l-footerParker__pageTop-inner {
        transform: translate(1px, 1px);
    }

    & .l-footerParker__pageTop-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 0;
        img {
            display: block;
            width: 14px;
            height: 14px;
        }
    }

    & .l-footerParker__pageTop-label {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
        font-family: 'Outfit', var(--font-main);
        font-size: 1.0625rem;
        font-weight: 400;
        line-height: 1.125rem;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        text-align: center;
        color: var(--color-wh);
    }

    & .l-footerParker__pageTop-line {
        display: block;
        margin: 0;
    }
}

.c-pageTitle {
    margin-bottom: 3.625rem;
    @media (768px > width) {
        margin-bottom: 2.5rem;
    }
    p {
        position: relative;
        margin-bottom: 1.125rem;
        padding-left: 1.375rem;
        padding-bottom: .25rem;
        border-bottom: 3px solid var(--color-bg02);
        color: var(--color-main);
        text-transform:uppercase;
        @media (768px > width) {
            margin-bottom: .375rem;
            padding-bottom: .5rem;
        }
        &::before {
            content: '';
            position: absolute;
            inset: -3px;
            border-radius: 50%;
            padding: 3px;
            background: linear-gradient(to right, var(--color-main03) 0%, var(--color-main) 100%);
            -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            -webkit-mask-composite: xor;
            mask-composite: exclude;
            top: 48%;
            left: 0;
            transform: translateY(-50%);
            width: 14px;
            height: 14px;
            @media (768px > width) {
                top: 41.5%;
            }
        }
    }
    h2 {
        font-size: 2rem;
        font-weight: 600;
        @media (768px > width) {
            font-size: 1.625rem;
        }
    }
}
.c-pagination {
    display: flex;
    justify-content: center;
    gap: 1.25rem;
    text-align: center;
    margin-top: 6.25rem;
    @media (768px > width) {
        margin-top: 3.75rem;
    }
    a {
        display: block;
        align-content: center;
        width: 54px;
        height: 54px;
        border-radius: 50%;
        border: 1px solid var(--color-main);
        background: var(--color-wh);
        color: var(--color-main);
        &.current {
            background: var(--color-main);
            color: var(--color-wh);
        }
    }

    span {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 42px;
        z-index: 0;

        &::before {
            content: "";
            position: absolute;
            inset: 0;
            transform: skewX(-15deg); /* 角度はお好みで調整 */
            z-index: -1;
            background: var(--color-main);
        }

        em {
            font-style: normal;
            color: var(--color-wh);
            position: relative;
            z-index: 1;
        }
    }
}
.c-button--back {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 327px;
    margin: 2rem auto 0;
    padding: 1.875rem 3.5rem 1.875rem 4rem;
    border: 1px solid #0e1a82;
    background: #fff;
    color: #0e1a82;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.1em;
    text-decoration: none;
    transform: skewX(-11deg);
    transition: background 0.2s ease, color 0.2s ease;
    &::after {
        position: absolute;
        content: "";
        top: 50%;
        right: 2.375rem;
        transform: translateY(-50%) skewX(11deg);
        width: 21px;
        height: 21px;
        background: url(../images/icon-arrow-right.png) top center / cover no-repeat;
        border-radius: 0;
    }
}
.u-color--wh {
    color: var(--color-wh);
}
.u-color--main {
    color: var(--color-main)!important;
}
/* utility */
.u-fw-400 {
    font-weight: 400;
}
.u-text--center {
    text-align: center;
}
.u-text--right {
    text-align: right;
}
.u-pc--hidden {
    display: none!important;
    @media (768px > width) {
        display: block!important;
    }
}
.u-sp--hidden {
    display: block!important;
    @media (768px > width) {
        display: none!important;
    }
}
.right-left {
    text-align: right;
    @media (768px > width) {
        text-align: left;
    }
}
.center-left {
    text-align: center;
    @media (768px > width) {
        text-align: left;
    }
}
