/* トップページ固有：FV・装飾・スライダー・年代グラフ */

        /* FV用 スライドショー＆ズームアニメーション (Ken Burns Effect) */
        .fv-slideshow {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            overflow: hidden;
            z-index: -1;
            background-color: #EBE5D9;
        }
        .fv-slide {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background-size: cover;
            background-position: center;
            opacity: 0;
            transform: scale(1);
            animation: kenburns 20s infinite ease-in-out;
        }
        .fv-slide:nth-child(1) { animation-delay: 0s; }
        .fv-slide:nth-child(2) { animation-delay: 5s; }
        .fv-slide:nth-child(3) { animation-delay: 10s; }
        .fv-slide:nth-child(4) { animation-delay: 15s; }

        @keyframes kenburns {
            0% { opacity: 0; transform: scale(1); }
            5% { opacity: 1; }
            25% { opacity: 1; }
            30% { opacity: 0; transform: scale(1.05); }
            100% { opacity: 0; transform: scale(1.05); }
        }

        /* prefers-reduced-motion 対応 */
        @media (prefers-reduced-motion: reduce) {
            .fv-slide { animation: none; transform: none; }
            .fv-slide:nth-child(1) { opacity: 1; }
            .fv-slide:nth-child(2), .fv-slide:nth-child(3), .fv-slide:nth-child(4) { display: none; }
            .animate-fade-in-up { animation: none; opacity: 1; transform: none; }
            .section-heading::before,
            .section-heading::after,
            .section-heading.active::before,
            .section-heading.active::after {
                animation: none;
                transition: none;
            }
        }

        /* 縦書きテキスト（PC表示のアクセント用） */
        .vertical-text {
            writing-mode: vertical-rl;
            text-orientation: upright;
        }

        /* 働く魅力03：人物と資料確認の様子が中心に見えるよう切り抜き位置を調整 */
        .home-feature-ward-photo {
            object-position: 80% center;
        }

        /* HEROメインコピー：各行の文字後ろにふわっとした雲のようなハイライト */
        .hero-copy-highlight {
            position: relative;
            display: inline-block;
            padding: 0 0.18em 0.08em;
            isolation: isolate;
        }

        .hero-copy-highlight::before {
            content: '';
            position: absolute;
            left: -0.12em;
            right: -0.12em;
            top: 58%;
            height: 0.78em;
            transform: translateY(-50%);
            background: rgba(255, 255, 255, 0.52);
            border-radius: 9999px;
            filter: blur(10px);
            box-shadow:
                0 0 14px rgba(255, 255, 255, 0.38),
                0 0 28px rgba(255, 255, 255, 0.18);
            z-index: -1;
            pointer-events: none;
        }

        /* 透過PNGの手作り装飾：働く魅力以降に親近感を添える */
        .sakae-deco {
            position: absolute;
            display: none;
            z-index: 2;
            pointer-events: none;
            user-select: none;
            opacity: 0;
            transform: translateY(14px) scale(0.96) rotate(var(--deco-rotate, 0deg));
            filter: blur(6px);
            will-change: transform, opacity, filter;
        }

        .sakae-deco img {
            display: block;
            width: 100%;
            height: auto;
            background: transparent !important;
            filter: drop-shadow(0 10px 16px rgba(74, 66, 63, 0.08));
        }

        .sakae-deco.active {
            animation: sakaeDecoPop 1s cubic-bezier(0.16, 1, 0.3, 1) both;
        }

        .sakae-deco--float.active {
            animation:
                sakaeDecoPop 1s cubic-bezier(0.16, 1, 0.3, 1) both,
                sakaeDecoFloat 7.5s ease-in-out 1s infinite;
        }

        .sakae-deco--swing.active {
            transform-origin: 50% 0;
            animation:
                sakaeDecoDrop 1.05s cubic-bezier(0.16, 1, 0.3, 1) both,
                sakaeDecoSwing 7s ease-in-out 1.05s infinite;
        }

        .sakae-deco--spin.active {
            animation: sakaeDecoSpinIn 1.15s cubic-bezier(0.16, 1, 0.3, 1) both;
        }

        .sakae-deco--chair {
            pointer-events: auto;
        }

        .sakae-deco--flutter {
            pointer-events: auto;
        }

        .sakae-deco--flutter img {
            transition: filter 0.35s ease;
            transform-origin: 50% 60%;
        }

        .sakae-deco--flutter:hover img {
            animation: sakaeDecoFlutter 1.8s ease-in-out infinite;
            filter: drop-shadow(0 14px 22px rgba(74, 66, 63, 0.13));
        }

        .sakae-deco--chair img {
            transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), filter 0.35s ease, opacity 0.35s ease;
            filter: drop-shadow(0 14px 24px rgba(74, 66, 63, 0.12));
        }

        .sakae-deco--chair .deco-cta-chair-main {
            position: relative;
            z-index: 2;
            transform-origin: 50% 70%;
        }

        .sakae-deco--chair:hover .deco-cta-chair-main,
        .sakae-deco--chair:focus-visible .deco-cta-chair-main {
            transform: scale(1.28);
            filter: drop-shadow(0 18px 32px rgba(74, 66, 63, 0.16));
        }

        .garland-strands {
            position: relative;
            width: 100%;
        }

        .garland-strands--cherry {
            aspect-ratio: 2380 / 1651;
        }

        .sakae-deco .garland-strand {
            position: absolute;
            top: var(--garland-top, 0%);
            left: calc(var(--garland-anchor) - (var(--garland-width) / 2));
            width: var(--garland-width);
            max-width: none;
            height: auto;
            background: transparent;
            transform-origin: 50% 0;
            animation: garlandBreeze var(--garland-duration) ease-in-out var(--garland-delay) infinite;
            will-change: transform;
        }

        .garland-strands--flower02 {
            aspect-ratio: 2097 / 1761;
        }

        .garland-strands--water {
            aspect-ratio: 746 / 1704;
        }

        .sakae-deco .garland-hanger {
            position: absolute;
            top: 0;
            left: 0;
            z-index: 2;
            width: 100%;
            max-width: none;
            height: auto;
            background: transparent;
        }

        .garland-strands--cherry .garland-strand:nth-child(1) { --garland-anchor: 9.21877%; --garland-width: 10.84034%; --garland-duration: 6.8s; --garland-delay: -2.1s; --garland-sway-a: -1.15deg; --garland-sway-b: 0.85deg; }
        .garland-strands--cherry .garland-strand:nth-child(2) { --garland-anchor: 19.21733%; --garland-width: 12.77311%; --garland-duration: 7.4s; --garland-delay: -5.3s; --garland-sway-a: -0.75deg; --garland-sway-b: 1.05deg; }
        .garland-strands--cherry .garland-strand:nth-child(3) { --garland-anchor: 29.50360%; --garland-width: 13.44538%; --garland-duration: 6.3s; --garland-delay: -3.8s; --garland-sway-a: -1.05deg; --garland-sway-b: 0.65deg; }
        .garland-strands--cherry .garland-strand:nth-child(4) { --garland-anchor: 40.33704%; --garland-width: 11.09244%; --garland-duration: 7.9s; --garland-delay: -1.4s; --garland-sway-a: -0.65deg; --garland-sway-b: 0.9deg; }
        .garland-strands--cherry .garland-strand:nth-child(5) { --garland-anchor: 51.87301%; --garland-width: 12.10084%; --garland-duration: 6.6s; --garland-delay: -4.7s; --garland-sway-a: -0.9deg; --garland-sway-b: 1.1deg; }
        .garland-strands--cherry .garland-strand:nth-child(6) { --garland-anchor: 62.14536%; --garland-width: 13.19328%; --garland-duration: 7.2s; --garland-delay: -2.9s; --garland-sway-a: -1.1deg; --garland-sway-b: 0.7deg; }
        .garland-strands--cherry .garland-strand:nth-child(7) { --garland-anchor: 72.83838%; --garland-width: 11.09244%; --garland-duration: 6.5s; --garland-delay: -5.8s; --garland-sway-a: -0.7deg; --garland-sway-b: 1deg; }
        .garland-strands--cherry .garland-strand:nth-child(8) { --garland-anchor: 84.40532%; --garland-width: 12.35294%; --garland-duration: 7.7s; --garland-delay: -3.2s; --garland-sway-a: -1deg; --garland-sway-b: 0.8deg; }

        .garland-strands--flower02 .garland-strand:nth-child(1) { --garland-anchor: 6.15596%; --garland-width: 18.78875%; --garland-duration: 7.6s; --garland-delay: -3.4s; --garland-sway-a: -0.75deg; --garland-sway-b: 0.95deg; }
        .garland-strands--flower02 .garland-strand:nth-child(2) { --garland-anchor: 23.99722%; --garland-width: 16.30901%; --garland-duration: 6.9s; --garland-delay: -5.1s; --garland-sway-a: -1deg; --garland-sway-b: 0.7deg; }
        .garland-strands--flower02 .garland-strand:nth-child(3) { --garland-anchor: 40.66162%; --garland-width: 14.87840%; --garland-duration: 7.9s; --garland-delay: -1.8s; --garland-sway-a: -0.65deg; --garland-sway-b: 1deg; }
        .garland-strands--flower02 .garland-strand:nth-child(4) { --garland-anchor: 59.04396%; --garland-width: 14.97377%; --garland-duration: 6.5s; --garland-delay: -4.2s; --garland-sway-a: -0.95deg; --garland-sway-b: 0.8deg; }
        .garland-strands--flower02 .garland-strand:nth-child(5) { --garland-anchor: 77.89960%; --garland-width: 16.97663%; --garland-duration: 7.3s; --garland-delay: -2.6s; --garland-sway-a: -0.7deg; --garland-sway-b: 1.05deg; }
        .garland-strands--flower02 .garland-strand:nth-child(6) { --garland-anchor: 94.73127%; --garland-width: 15.45064%; --garland-duration: 6.8s; --garland-delay: -5.7s; --garland-sway-a: -1.05deg; --garland-sway-b: 0.65deg; }

        .garland-strands--water .garland-strand:nth-child(2) { --garland-anchor: 13.53135%; --garland-top: 24.94131%; --garland-width: 31.09920%; --garland-duration: 7.8s; --garland-delay: -4.5s; --garland-sway-a: -0.8deg; --garland-sway-b: 0.65deg; }
        .garland-strands--water .garland-strand:nth-child(3) { --garland-anchor: 49.03960%; --garland-top: 29.34272%; --garland-width: 29.22252%; --garland-duration: 6.9s; --garland-delay: -2.2s; --garland-sway-a: -0.55deg; --garland-sway-b: 0.85deg; }
        .garland-strands--water .garland-strand:nth-child(4) { --garland-anchor: 87.67922%; --garland-top: 24.94131%; --garland-width: 27.07775%; --garland-duration: 7.4s; --garland-delay: -5.6s; --garland-sway-a: -0.7deg; --garland-sway-b: 0.75deg; }

        .page-flower-field {
            display: none;
        }

        @supports (animation-timeline: scroll()) {
            .page-flower-field {
                position: fixed;
                inset: 0;
                display: block;
                z-index: 30;
                overflow: hidden;
                pointer-events: none;
                user-select: none;
            }

            .page-flower {
                position: absolute;
                top: var(--flower-top);
                left: var(--flower-left);
                width: var(--flower-size);
                max-width: none;
                height: auto;
                opacity: 0;
                background: transparent;
                filter: drop-shadow(0 8px 14px rgba(74, 66, 63, 0.1));
                transform: translateY(12px) scale(0.12) rotate(var(--flower-rotate));
                transform-origin: 50% 50%;
                animation: pageFlowerBloom linear both;
                animation-timeline: scroll(root block);
                animation-range: var(--flower-start) var(--flower-end);
                will-change: transform, opacity;
            }

            .page-flower--01 { --flower-left: 4%; --flower-top: 22%; --flower-size: clamp(3.2rem, 5vw, 4.8rem); --flower-rotate: -12deg; --flower-start: 3%; --flower-end: 9%; }
            .page-flower--02 { --flower-left: 86%; --flower-top: 17%; --flower-size: clamp(2.8rem, 4.3vw, 4.2rem); --flower-rotate: 8deg; --flower-start: 11%; --flower-end: 17%; }
            .page-flower--03 { --flower-left: 13%; --flower-top: 72%; --flower-size: clamp(3rem, 4.7vw, 4.5rem); --flower-rotate: -5deg; --flower-start: 19%; --flower-end: 25%; }
            .page-flower--04 { --flower-left: 78%; --flower-top: 66%; --flower-size: clamp(3.4rem, 5.2vw, 5rem); --flower-rotate: 11deg; --flower-start: 27%; --flower-end: 33%; }
            .page-flower--05 { --flower-left: 47%; --flower-top: 13%; --flower-size: clamp(2.7rem, 4.1vw, 4rem); --flower-rotate: -9deg; --flower-start: 35%; --flower-end: 41%; }
            .page-flower--06 { --flower-left: 5%; --flower-top: 48%; --flower-size: clamp(3.1rem, 4.8vw, 4.6rem); --flower-rotate: 5deg; --flower-start: 43%; --flower-end: 49%; }
            .page-flower--07 { --flower-left: 89%; --flower-top: 42%; --flower-size: clamp(3rem, 4.5vw, 4.4rem); --flower-rotate: 13deg; --flower-start: 51%; --flower-end: 57%; }
            .page-flower--08 { --flower-left: 31%; --flower-top: 78%; --flower-size: clamp(2.8rem, 4.2vw, 4.1rem); --flower-rotate: -7deg; --flower-start: 59%; --flower-end: 65%; }
            .page-flower--09 { --flower-left: 66%; --flower-top: 76%; --flower-size: clamp(3.3rem, 5vw, 4.8rem); --flower-rotate: -11deg; --flower-start: 67%; --flower-end: 73%; }
            .page-flower--10 { --flower-left: 22%; --flower-top: 15%; --flower-size: clamp(2.7rem, 4vw, 3.9rem); --flower-rotate: 9deg; --flower-start: 75%; --flower-end: 81%; }
            .page-flower--11 { --flower-left: 74%; --flower-top: 29%; --flower-size: clamp(3.1rem, 4.6vw, 4.5rem); --flower-rotate: 4deg; --flower-start: 83%; --flower-end: 89%; }
            .page-flower--12 { --flower-left: 48%; --flower-top: 64%; --flower-size: clamp(2.9rem, 4.4vw, 4.3rem); --flower-rotate: -8deg; --flower-start: 91%; --flower-end: 97%; }
        }

        @keyframes sakaeDecoPop {
            0% {
                opacity: 0;
                transform: translateY(14px) scale(0.94) rotate(var(--deco-rotate, 0deg));
                filter: blur(8px);
            }
            100% {
                opacity: var(--deco-opacity, 0.76);
                transform: translateY(0) scale(1) rotate(var(--deco-rotate, 0deg));
                filter: blur(0);
            }
        }

        @keyframes sakaeDecoFloat {
            0%, 100% {
                transform: translateY(0) scale(1) rotate(var(--deco-rotate, 0deg));
            }
            50% {
                transform: translateY(-5px) scale(1.006) rotate(calc(var(--deco-rotate, 0deg) * -0.18));
            }
        }

        @keyframes sakaeDecoDrop {
            0% {
                opacity: 0;
                transform: translateY(-16px) scale(0.98) rotate(var(--deco-rotate, 0deg));
                filter: blur(7px);
            }
            100% {
                opacity: var(--deco-opacity, 0.72);
                transform: translateY(0) scale(1) rotate(var(--deco-rotate, 0deg));
                filter: blur(0);
            }
        }

        @keyframes sakaeDecoSwing {
            0%, 100% {
                transform: translateY(0) rotate(var(--deco-rotate, 0deg));
            }
            50% {
                transform: translateY(2px) rotate(calc(var(--deco-rotate, 0deg) + 1.2deg));
            }
        }

        @keyframes sakaeDecoSpinIn {
            0% {
                opacity: 0;
                transform: translateY(14px) scale(0.9) rotate(calc(var(--deco-rotate, 0deg) - 18deg));
                filter: blur(7px);
            }
            100% {
                opacity: var(--deco-opacity, 0.72);
                transform: translateY(0) scale(1) rotate(var(--deco-rotate, 0deg));
                filter: blur(0);
            }
        }

        @keyframes sakaeDecoFlutter {
            0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
            25% { transform: translateY(-2px) rotate(-1.2deg) scale(1.015); }
            50% { transform: translateY(1px) rotate(0.8deg) scale(1.02); }
            75% { transform: translateY(-1px) rotate(-0.6deg) scale(1.012); }
        }

        @keyframes garlandBreeze {
            0%, 100% { transform: rotate(var(--garland-sway-a)); }
            48% { transform: rotate(var(--garland-sway-b)); }
            72% { transform: rotate(0.2deg); }
        }

        @keyframes ctaGarlandWind {
            0%, 100% { transform: translateY(0) rotate(-0.7deg); }
            35% { transform: translateY(-3px) rotate(0.85deg); }
            68% { transform: translateY(1px) rotate(-0.25deg); }
        }

        @keyframes pageFlowerBloom {
            0% {
                opacity: 0;
                transform: translateY(12px) scale(0.12) rotate(var(--flower-rotate));
            }
            30% {
                opacity: 0.7;
                transform: translateY(-2px) scale(1.12) rotate(var(--flower-rotate));
            }
            62% {
                opacity: 0.62;
                transform: translateY(0) scale(1) rotate(var(--flower-rotate));
            }
            100% {
                opacity: 0;
                transform: translateY(-8px) scale(0.82) rotate(var(--flower-rotate));
            }
        }

        /* section-specific placements */
        .deco-about-hat {
            right: 1%;
            bottom: 3%;
            width: clamp(7rem, 11vw, 9.5rem);
            --deco-rotate: 8deg;
            --deco-opacity: 0.60;
        }

        .deco-charm-lunch {
            left: auto;
            right: clamp(1rem, 4vw, 3.5rem);
            top: 42%;
            width: clamp(6.5rem, 9vw, 8rem);
            --deco-rotate: -3deg;
            --deco-opacity: 0.46;
        }

        .deco-charm-red {
            right: -1%;
            bottom: 5%;
            width: clamp(8rem, 13vw, 11rem);
            --deco-rotate: 6deg;
            --deco-opacity: 0.46;
        }

        .deco-goodjob-pastel {
            left: 2%;
            bottom: 8%;
            width: clamp(8rem, 14vw, 12rem);
            --deco-rotate: -4deg;
            --deco-opacity: 0.48;
        }

        .deco-goodjob-heart {
            right: 5%;
            top: 12%;
            width: clamp(5rem, 8vw, 7rem);
            --deco-rotate: 7deg;
            --deco-opacity: 0.50;
        }

        .deco-numbers-pastel {
            left: 1.5%;
            bottom: 8%;
            width: clamp(8rem, 14vw, 12rem);
            --deco-rotate: -2deg;
            --deco-opacity: 0.50;
        }

        .deco-numbers-blue {
            right: 2.5%;
            bottom: 4%;
            width: clamp(7.4rem, 12.5vw, 10.6rem);
            --deco-rotate: 4deg;
            --deco-opacity: 0.58;
        }

        .deco-voices-heart {
            right: 6%;
            top: 10%;
            width: clamp(5rem, 8vw, 7rem);
            --deco-rotate: 6deg;
            --deco-opacity: 0.58;
        }

        .deco-voices-hydrangea {
            display: block;
            left: 2%;
            bottom: 1.5rem;
            width: clamp(10rem, 17vw, 15rem);
            --deco-rotate: -3deg;
            --deco-opacity: 0.32;
        }

        .deco-voices-purple {
            left: 4%;
            top: 12%;
            width: clamp(6rem, 9vw, 8rem);
            --deco-rotate: -5deg;
            --deco-opacity: 0.42;
        }

        .deco-atmosphere-purple {
            right: 1%;
            top: 14%;
            width: clamp(8rem, 14vw, 11rem);
            --deco-rotate: 5deg;
            --deco-opacity: 0.56;
        }

        .deco-atmosphere-blue {
            left: 1.5%;
            bottom: 5%;
            width: clamp(5rem, 8vw, 7rem);
            --deco-rotate: -4deg;
            --deco-opacity: 0.62;
        }

        .deco-jobs-grape {
            right: 4%;
            top: 10%;
            width: clamp(6rem, 10vw, 8rem);
            --deco-rotate: 3deg;
            --deco-opacity: 0.52;
        }

        .deco-jobs-pastel {
            left: 3%;
            bottom: 8%;
            width: clamp(6rem, 9vw, 7.5rem);
            --deco-rotate: -2deg;
            --deco-opacity: 0.52;
        }

        .deco-cta-chair {
            left: 3.5%;
            bottom: 6%;
            width: clamp(10.5rem, 16vw, 14.5rem);
            z-index: 3;
            --deco-rotate: -3deg;
            --deco-opacity: 0.96;
        }

        .deco-cta-chair-closeup {
            position: absolute;
            top: -18%;
            left: 64%;
            width: clamp(13rem, 22vw, 20rem);
            max-width: none;
            opacity: 0;
            pointer-events: none;
            z-index: 3;
            transform: translate(-0.45rem, 0.45rem) scale(0.86);
            transform-origin: 12% 82%;
            filter: drop-shadow(0 18px 30px rgba(74, 66, 63, 0.18));
            backface-visibility: hidden;
        }

        .deco-cta-chair:hover .deco-cta-chair-closeup,
        .deco-cta-chair:focus-visible .deco-cta-chair-closeup {
            opacity: 1;
            transform: translate(0, 0) scale(1);
        }

        .deco-cta-garland {
            right: clamp(1rem, 4vw, 4rem);
            top: clamp(2.5rem, 6vw, 5.25rem);
            width: clamp(13rem, 22vw, 19rem);
            --deco-rotate: 3deg;
            --deco-opacity: 0.52;
        }

        .deco-cta-garland .garland-strands {
            transform-origin: 50% 0;
            animation: ctaGarlandWind 8.6s ease-in-out 1.2s infinite;
            will-change: transform;
        }

        @media (max-width: 1023px) {
            .deco-charm-lunch {
                right: 1rem;
                top: 40%;
                width: clamp(5rem, 12vw, 6.5rem);
                --deco-opacity: 0.36;
            }

            .deco-cta-garland {
                right: -3%;
                top: 4%;
                width: clamp(9rem, 24vw, 12rem);
                --deco-opacity: 0.34;
            }
        }

        @media (max-width: 767px) {
            #cta {
                padding-top: 15rem !important;
            }

            .deco-cta-chair {
                display: block;
                left: clamp(0.85rem, 5vw, 1.35rem);
                top: clamp(4.8rem, 18vw, 5.4rem);
                bottom: auto;
                width: clamp(5.9rem, 27vw, 7.6rem);
                --deco-rotate: -6deg;
                --deco-opacity: 0.98;
            }

            .deco-cta-chair-closeup {
                top: 0;
                left: 58%;
                width: clamp(7.8rem, 38vw, 9rem);
                opacity: 0.96;
                transform: translate(0, 0) scale(1);
                filter: drop-shadow(0 12px 20px rgba(74, 66, 63, 0.14));
            }

            .sakae-deco--chair:hover .deco-cta-chair-main,
            .sakae-deco--chair:focus-visible .deco-cta-chair-main {
                transform: scale(1.12);
            }
        }

        .voices-section {
            padding-bottom: clamp(8rem, 12vw, 10rem) !important;
        }

        @media (min-width: 768px) {
            .sakae-deco {
                display: block;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .sakae-deco,
            .sakae-deco.active,
            .sakae-deco--float.active,
            .sakae-deco--swing.active,
            .sakae-deco--spin.active {
                animation: none;
                opacity: var(--deco-opacity, 0.68);
                transform: none;
                filter: none;
            }

            .sakae-deco--chair img {
                transition: none;
            }

            .sakae-deco--flutter:hover img {
                animation: none;
            }

            .sakae-deco .garland-strand {
                animation: none;
                transform: none;
            }

            .page-flower {
                animation: none;
                opacity: 0;
                transform: none;
            }
        }

        /* Good Job! 活動 */
        .goodjob-section::before {
            content: "";
            position: absolute;
            right: -12%;
            bottom: -18%;
            width: min(38rem, 72vw);
            aspect-ratio: 1;
            border-radius: 9999px;
            background:
                radial-gradient(circle at 35% 36%, rgba(235, 203, 204, 0.34), transparent 58%),
                radial-gradient(circle at 62% 64%, rgba(216, 226, 223, 0.42), transparent 56%);
            pointer-events: none;
        }

        .goodjob-layout {
            position: relative;
            z-index: 1;
            display: grid;
            gap: clamp(2.5rem, 5vw, 4.5rem);
            align-items: center;
        }

        .goodjob-gallery {
            display: grid;
            gap: 1rem;
            max-width: 42rem;
            margin-inline: auto;
        }

        .goodjob-photo {
            margin: 0;
            overflow: hidden;
            border: 0.45rem solid rgba(255, 255, 255, 0.92);
            border-radius: 0.5rem;
            background: #FFFFFF;
            box-shadow: 0 24px 60px -38px rgba(74, 66, 63, 0.42);
        }

        .goodjob-photo img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            background-color: #EBE5D9;
        }

        .goodjob-photo--main img {
            aspect-ratio: 4 / 3;
        }

        .goodjob-subphotos {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.85rem;
        }

        .goodjob-subphotos img {
            aspect-ratio: 4 / 3;
        }

        .goodjob-photo figcaption {
            padding: 0.65rem 0.75rem 0.7rem;
            color: #7A726E;
            font-size: 0.75rem;
            line-height: 1.6;
            background: rgba(255, 255, 255, 0.92);
        }

        .goodjob-message {
            position: relative;
            padding: clamp(1.75rem, 4vw, 2.75rem);
            overflow: hidden;
            border: 1px solid rgba(235, 203, 204, 0.78);
            border-radius: 0.5rem;
            background:
                radial-gradient(circle at 92% 12%, rgba(245, 228, 228, 0.72), transparent 34%),
                rgba(255, 255, 255, 0.9);
            box-shadow: 0 24px 70px -48px rgba(74, 66, 63, 0.38);
        }

        .goodjob-message::before {
            content: "";
            position: absolute;
            top: 1.2rem;
            bottom: 1.2rem;
            left: 0;
            width: 0.35rem;
            border-radius: 9999px;
            background: linear-gradient(180deg, #EBCBCC, #D8E2DF);
        }

        .goodjob-kicker {
            display: block;
            margin-bottom: 0.85rem;
            color: #C27B75;
            font-size: 0.75rem;
            font-weight: 500;
            letter-spacing: 0.18em;
        }

        .goodjob-message h3 {
            margin-bottom: 1rem;
            color: #4A423F;
            font-family: "Noto Serif JP", serif;
            font-size: clamp(1.25rem, 3vw, 1.75rem);
            line-height: 1.8;
        }

        .goodjob-message p {
            color: rgba(74, 66, 63, 0.78);
            font-size: 0.92rem;
            line-height: 2;
        }

        .goodjob-message p + p {
            margin-top: 1rem;
        }

        .goodjob-list {
            display: grid;
            gap: 0.75rem;
            margin: 1.6rem 0 0;
            padding: 0;
            list-style: none;
        }

        .goodjob-list li {
            display: grid;
            grid-template-columns: auto 1fr;
            gap: 0.75rem;
            align-items: start;
            padding: 0.85rem 1rem;
            border-radius: 0.5rem;
            background: rgba(250, 248, 245, 0.82);
            color: rgba(74, 66, 63, 0.78);
            font-size: 0.84rem;
            line-height: 1.8;
        }

        .goodjob-list span {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 3.35rem;
            padding: 0.12rem 0.65rem 0.18rem;
            border-radius: 9999px;
            background: #D8E2DF;
            color: #4A423F;
            font-size: 0.76rem;
            font-weight: 500;
            line-height: 1.6;
        }

        .goodjob-note-slider {
            position: relative;
            z-index: 1;
            margin-top: clamp(3.5rem, 7vw, 5.5rem);
        }

        .goodjob-note-track {
            overflow: hidden;
            padding: 0.25rem 0.25rem 1.25rem;
            outline: none;
            -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
        }

        .goodjob-note-marquee {
            display: flex;
            width: max-content;
            animation: goodjobNoteMarquee 48s linear infinite;
            will-change: transform;
        }

        .goodjob-note-track:hover .goodjob-note-marquee,
        .goodjob-note-track:focus .goodjob-note-marquee,
        .goodjob-note-track:focus-within .goodjob-note-marquee {
            animation-play-state: paused;
        }

        .goodjob-note-set {
            display: flex;
            gap: 1rem;
            flex: 0 0 auto;
            padding-right: 1rem;
        }

        .goodjob-note-card {
            position: relative;
            flex: 0 0 min(82vw, 20rem);
            min-height: 13.5rem;
            scroll-snap-align: start;
            padding: 1.6rem;
            overflow: hidden;
            border: 1px solid rgba(235, 203, 204, 0.78);
            border-radius: 0.5rem;
            background:
                linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(250, 248, 245, 0.9)),
                #FFFFFF;
            box-shadow: 0 20px 50px -36px rgba(74, 66, 63, 0.38);
        }

        .goodjob-note-card::before {
            content: "";
            position: absolute;
            right: -1.25rem;
            top: -1.25rem;
            width: 4.6rem;
            height: 4.6rem;
            border-radius: 9999px;
            background: rgba(216, 226, 223, 0.62);
        }

        .goodjob-note-card span {
            position: relative;
            display: inline-flex;
            margin-bottom: 1rem;
            padding: 0.28rem 0.85rem 0.34rem;
            border-radius: 9999px;
            background: #F5E4E4;
            color: #4A423F;
            font-size: 0.76rem;
            font-weight: 500;
            letter-spacing: 0.08em;
        }

        .goodjob-note-card p {
            position: relative;
            color: rgba(74, 66, 63, 0.8);
            font-size: 0.92rem;
            line-height: 2;
        }

        .goodjob-note-card p strong {
            color: #C27B75;
            font-weight: 500;
        }

        @keyframes goodjobNoteMarquee {
            to {
                transform: translateX(-50%);
            }
        }

        @media (min-width: 768px) {
            .goodjob-layout {
                grid-template-columns: minmax(0, 1.08fr) minmax(20rem, 0.92fr);
            }

            .goodjob-photo--main {
                transform: rotate(-1.2deg);
            }

            .goodjob-photo--post {
                transform: rotate(1.4deg);
            }

            .goodjob-photo--info {
                transform: rotate(-0.8deg);
            }

            .goodjob-note-set {
                gap: 1.25rem;
                padding-right: 1.25rem;
            }

            .goodjob-note-card {
                flex-basis: 20rem;
            }
        }

        @media (max-width: 767px) {
            .goodjob-note-track {
                display: flex;
                gap: 1rem;
                overflow-x: auto;
                overflow-y: hidden;
                scroll-snap-type: x mandatory;
                scroll-padding-left: 0.25rem;
                -webkit-overflow-scrolling: touch;
                -webkit-mask-image: none;
                mask-image: none;
                scrollbar-width: thin;
                scrollbar-color: rgba(194, 123, 117, 0.35) transparent;
            }

            .goodjob-note-track::-webkit-scrollbar {
                height: 6px;
            }

            .goodjob-note-track::-webkit-scrollbar-thumb {
                border-radius: 9999px;
                background: rgba(194, 123, 117, 0.35);
            }

            .goodjob-note-marquee {
                display: contents;
                width: auto;
                animation: none;
                transform: none;
                will-change: auto;
            }

            .goodjob-note-set {
                display: contents;
                width: auto;
                padding-right: 0;
            }

            .goodjob-note-set[aria-hidden="true"] {
                display: none !important;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .goodjob-note-marquee {
                animation: none;
                transform: none;
                will-change: auto;
            }
        }

        /* 働く人の声：横スクロール＋矢印操作 */
        .voice-slider {
            position: relative;
        }

        .voice-track {
            display: flex;
            gap: 1.25rem;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scroll-behavior: smooth;
            padding: 0.25rem 0.25rem 1.25rem;
            scrollbar-width: thin;
            scrollbar-color: rgba(194, 123, 117, 0.35) transparent;
        }

        .voice-track::-webkit-scrollbar {
            height: 6px;
        }

        .voice-track::-webkit-scrollbar-track {
            background: transparent;
        }

        .voice-track::-webkit-scrollbar-thumb {
            background: rgba(194, 123, 117, 0.32);
            border-radius: 9999px;
        }

        .voice-card {
            flex: 0 0 min(86vw, 26rem);
            scroll-snap-align: start;
        }

        @media (min-width: 768px) {
            .voice-track {
                gap: 1.5rem;
            }

            .voice-card {
                flex-basis: calc((100% - 1.5rem) / 2);
            }
        }

        @media (min-width: 1024px) {
            .voice-card {
                flex-basis: calc((100% - 3rem) / 3);
            }
        }

        .voice-slider-control {
            width: 2.75rem;
            height: 2.75rem;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 9999px;
            background: rgba(255, 255, 255, 0.86);
            border: 1px solid rgba(235, 203, 204, 0.9);
            color: #4A423F;
            box-shadow: 0 12px 28px -22px rgba(74, 66, 63, 0.36);
            transition:
                transform 0.25s ease,
                background-color 0.25s ease,
                box-shadow 0.25s ease;
        }

        .voice-slider-control:hover,
        .voice-slider-control:focus-visible {
            transform: translateY(-2px);
            background: #F5E4E4;
            box-shadow: 0 18px 36px -24px rgba(74, 66, 63, 0.42);
        }

        .voice-slider-control:disabled {
            opacity: 0.38;
            pointer-events: none;
        }

        /* 数字で見る看護部：年代別スタッフ割合 */
        .age-chart-card {
            position: relative;
            display: grid;
            gap: 2rem;
            align-items: center;
            margin-top: 4rem;
            padding: 2rem;
            overflow: hidden;
            border: 1px solid rgba(235, 203, 204, 0.78);
            border-radius: 1.5rem;
            background:
                radial-gradient(circle at 10% 10%, rgba(245, 228, 228, 0.9), transparent 32%),
                radial-gradient(circle at 88% 90%, rgba(216, 226, 223, 0.6), transparent 28%),
                rgba(255, 255, 255, 0.92);
            box-shadow: 0 24px 70px -48px rgba(74, 66, 63, 0.38);
        }

        .age-chart-card::before,
        .age-chart-card::after {
            content: "";
            position: absolute;
            width: 5rem;
            height: 5rem;
            border: 1px solid rgba(194, 123, 117, 0.2);
            border-radius: 9999px;
            pointer-events: none;
        }

        .age-chart-card::before {
            top: -2.5rem;
            right: 13%;
        }

        .age-chart-card::after {
            bottom: -3rem;
            left: 8%;
            width: 7rem;
            height: 7rem;
            border-color: rgba(216, 226, 223, 0.7);
        }

        .age-chart-copy {
            position: relative;
            z-index: 1;
            text-align: center;
        }

        .age-chart-visual {
            position: relative;
            width: min(100%, 19rem);
            aspect-ratio: 1;
            margin-inline: auto;
            isolation: isolate;
        }

        .age-donut {
            display: block;
            width: 100%;
            height: 100%;
            overflow: visible;
            filter: drop-shadow(0 15px 20px rgba(74, 66, 63, 0.08));
            transform: rotate(-90deg);
        }

        .age-donut-track,
        .age-donut-segment {
            fill: none;
            stroke-width: 24;
        }

        .age-donut-track {
            stroke: rgba(235, 229, 217, 0.42);
        }

        .age-donut-segment {
            stroke-dasharray: 0 100;
            stroke-linecap: round;
            transition: stroke-dasharray 1.35s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .age-donut-segment--20 { stroke: #F5E4E4; }
        .age-donut-segment--30 { stroke: #EBCBCC; }
        .age-donut-segment--40 { stroke: #C27B75; }
        .age-donut-segment--50 { stroke: #D8E2DF; }
        .age-donut-segment--60 { stroke: #9FBDB5; }
        .age-donut-segment--70 { stroke: #81b1a5; }

        .age-chart-orbit {
            position: absolute;
            inset: 1rem;
            border: 1px dashed rgba(194, 123, 117, 0.18);
            border-radius: 9999px;
            animation: ageOrbit 28s linear infinite;
        }

        .age-chart-orbit::before,
        .age-chart-orbit::after {
            content: "";
            position: absolute;
            width: 0.6rem;
            height: 0.6rem;
            border-radius: 9999px;
            background: #EBCBCC;
            box-shadow: 0 0 0 0.45rem rgba(235, 203, 204, 0.14);
        }

        .age-chart-orbit::before {
            top: 9%;
            left: 13%;
        }

        .age-chart-orbit::after {
            right: 10%;
            bottom: 13%;
            background: #D8E2DF;
            box-shadow: 0 0 0 0.45rem rgba(216, 226, 223, 0.22);
        }

        .age-chart-total {
            position: absolute;
            inset: 28%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            border-radius: 9999px;
            background: rgba(250, 248, 245, 0.88);
            box-shadow: inset 0 0 0 1px rgba(235, 229, 217, 0.7);
            backdrop-filter: blur(4px);
        }

        .age-chart-total-number {
            font-family: "Noto Serif JP", serif;
            color: #C27B75;
            font-size: clamp(2.25rem, 8vw, 3.5rem);
            line-height: 1;
        }

        .age-chart-total-label {
            margin-top: 0.35rem;
            color: #7A726E;
            font-size: 0.62rem;
            letter-spacing: 0.24em;
        }

        .age-chart-legend {
            position: relative;
            z-index: 1;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.65rem;
        }

        .age-chart-legend-item {
            display: grid;
            grid-template-columns: auto 1fr auto;
            align-items: center;
            column-gap: 0.55rem;
            padding: 0.7rem 0.8rem;
            border-radius: 0.9rem;
            background: rgba(250, 248, 245, 0.75);
            color: #4A423F;
            font-size: 0.78rem;
            opacity: 0;
            transform: translateY(8px);
            transition:
                opacity 0.55s ease,
                transform 0.55s cubic-bezier(0.16, 1, 0.3, 1),
                background-color 0.25s ease;
        }

        .age-chart-card.is-chart-visible .age-chart-legend-item {
            opacity: 1;
            transform: translateY(0);
        }

        .age-chart-card.is-chart-visible .age-chart-legend-item:nth-child(2) { transition-delay: 80ms; }
        .age-chart-card.is-chart-visible .age-chart-legend-item:nth-child(3) { transition-delay: 160ms; }
        .age-chart-card.is-chart-visible .age-chart-legend-item:nth-child(4) { transition-delay: 240ms; }
        .age-chart-card.is-chart-visible .age-chart-legend-item:nth-child(5) { transition-delay: 320ms; }
        .age-chart-card.is-chart-visible .age-chart-legend-item:nth-child(6) { transition-delay: 400ms; }

        .age-chart-legend-item:hover {
            background: rgba(255, 255, 255, 0.96);
        }

        .age-chart-legend-item strong {
            font-weight: 500;
            color: #4A423F;
        }

        .age-chart-legend-item small {
            grid-column: 2 / -1;
            color: #7A726E;
            font-size: 0.65rem;
        }

        .age-chart-dot {
            grid-row: 1 / 3;
            width: 0.72rem;
            height: 0.72rem;
            border-radius: 9999px;
            box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.72);
        }

        .age-chart-dot--20 { background: #F5E4E4; }
        .age-chart-dot--30 { background: #EBCBCC; }
        .age-chart-dot--40 { background: #C27B75; }
        .age-chart-dot--50 { background: #D8E2DF; }
        .age-chart-dot--60 { background: #9FBDB5; }
        .age-chart-dot--70 { background: #81b1a5; }

        @keyframes ageOrbit {
            to { transform: rotate(360deg); }
        }

        @media (min-width: 768px) {
            .age-chart-card {
                grid-template-columns: minmax(0, 0.85fr) minmax(17rem, 0.7fr) minmax(0, 1fr);
                gap: 2.5rem;
                margin-top: 5rem;
                padding: 3rem;
            }

            .age-chart-copy {
                text-align: left;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .age-chart-orbit {
                animation: none;
            }

            .age-donut-segment,
            .age-chart-legend-item {
                transition: none;
            }
        }
