@charset "utf-8";

        :root {
            /* Warm thin yellow base background from "マスクグループ 517.jpg" */
            --bg-base: #fffefa;
            --bg-thin-yellow: #fffdeb;
            --bg-yellow-pastel: #fffcee;
            --text-main: #4d443c;
            /* Softer brown-gray text for warm feeling */
            --white: #ffffff;

            /* Colorful Pop Pastel Colors inspired by 'マスクグループ 517.jpg' */
            --pink-pastel: #fff0f2;
            --pink-accent: #f7aab5;
            --mint-pastel: #eefaf6;
            --mint-accent: #68ccb8;
            --blue-pastel: #eef7fc;
            --blue-accent: #89cae6;
            --orange-pastel: #fff3e8;
            --orange-accent: #fcae83;
            --yellow-accent: #fcd46e;

            --gray-bg: #fdfaf4;
            --gray-placeholder: #f5eedf;
            --font-main: 'Zen Maru Gothic', sans-serif;
            --radius-l: 36px;
            --radius-m: 24px;
            --radius-s: 16px;
            --header-height: 80px;

            /* FV Original Tokens */
            --slide-width: 384.5782px;
            --slide-height: 573.047px;
            --slide-gap: 15px;
        }

        * {
            font-family: var(--font-main) !important;
        }

        /* Utilities */
        @media screen and (max-width: 1280px) {
            .pc-only {
                display: none !important;
            }
        }

        @media screen and (min-width: 1281px) {
            .sp-only {
                display: none !important;
            }
        }

        /* Base Styles */
        html {
            font-size: 16px;
            scroll-behavior: smooth;
        }

        body {
            font-family: var(--font-main);
            color: var(--text-main);
            background-color: var(--bg-base);
            line-height: 1.8;
            letter-spacing: 0.05em;
            overflow-x: hidden;
            margin: 0;
            background-image:
                radial-gradient(circle at 10% 20%, rgba(252, 212, 110, 0.15) 80px, transparent 120px),
                radial-gradient(circle at 90% 45%, rgba(247, 170, 181, 0.15) 100px, transparent 150px),
                radial-gradient(circle at 15% 75%, rgba(104, 204, 184, 0.12) 90px, transparent 140px);
            background-attachment: fixed;
        }

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

        a {
            transition: opacity 0.3s;
        }

        a:hover {
            opacity: 0.8;
        }

        ul {
            list-style: none;
        }

        /* Layout */
        .container {
            max-width: 1140px;
            margin: 0 auto;
            padding: 0 20px;
        }

        @media screen and (min-width: 769px) {
            .container {
                padding: 0 0px;
            }
        }

        .container--narrow {
            max-width: 800px;
        }

        .section {
            padding: 90px 0;
            position: relative;
        }

        .text-center {
            text-align: center;
        }

        .mt-20 {
            margin-top: 20px;
        }

        .mt-40 {
            margin-top: 40px;
        }

        .mb-40 {
            margin-bottom: 40px;
        }

        /* Rainbow Decorative Accent Border */
        .rainbow-border-top {
            position: relative;
        }

        .rainbow-border-top::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 6px;
            background: linear-gradient(to right, var(--pink-accent), var(--orange-accent), var(--yellow-accent), var(--mint-accent), var(--blue-accent));
            z-index: 100;
        }

        /* Decorative Pop Suns referencing 'マスクグループ 517.jpg' */
        .section-title {
            font-size: 28px;
            font-weight: 700;
            margin-bottom: 40px;
            display: inline-block;
            position: relative;
        }

        .section-title::after {
            content: '';
            display: block;
            width: 40px;
            height: 12px;
            background: radial-gradient(circle, var(--yellow-accent) 20%, transparent 60%);
            margin: 8px auto 0;
            opacity: 0.8;
        }

        .section-title img {
            max-width: 548px;
            width: 100%;
            height: auto;
            display: block;
            margin-left: auto;
            margin-right: auto;
        }

        .icon-svg {
            width: 32px;
            height: 32px;
            fill: var(--pink-accent);
        }

        .bg-pastel {
            background-color: var(--bg-thin-yellow);
        }

        .bg-white {
            background-color: var(--white);
        }

        /* Buttons with Kid-friendly bubble shadows */
        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 14px 36px;
            border-radius: 9999px;
            /* Bubble style roundness */
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            text-decoration: none;
            color: inherit;
            box-shadow: 0 6px 12px rgba(77, 68, 60, 0.08);
            border: 2px solid transparent;
        }

        .btn:hover {
            transform: translateY(-4px) scale(1.03);
            box-shadow: 0 10px 20px rgba(77, 68, 60, 0.15);
        }

        .btn--sm {
            padding: 10px 22px;
            font-size: 0.85rem;
        }

        .btn--tel {
            background-color: var(--pink-accent);
            color: var(--white);
            border: 2px solid var(--pink-accent);
        }

        .btn--tel-pink {
            background-color: var(--pink-accent) !important;
            color: var(--white) !important;
            border: 2px solid var(--pink-accent) !important;
        }

        .btn--web {
            background-color: var(--white);
            color: var(--mint-accent);
            border: 2px solid var(--mint-accent);
        }

        .btn--hp {
            background-color: var(--mint-accent);
            color: var(--white);
            border: 2px solid var(--mint-accent);
        }

        .btn--reserve {
            background-color: var(--blue-accent);
            color: var(--white);
            border: 2px solid var(--blue-accent);
            white-space: nowrap;
        }

        .btn--round {
            border-radius: 9999px !important;
            min-width: 96px;
            padding: 8px 24px;
        }

        .cta-group {
            display: flex;
            gap: 15px;
            justify-content: center;
            flex-wrap: wrap;
            margin-top: 30px;
        }

        @media screen and (max-width: 768px) {
            .cta-group {
                flex-direction: column;
                padding: 0 20px;
            }
        }

        /* Header */
        .header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 80px;
            background: rgba(255, 255, 250, 0.96);
            z-index: 1000;
            box-shadow: 0 3px 15px rgba(120, 100, 80, 0.05);
            display: flex;
            align-items: center;
        }

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

        .header__logo {
            display: flex;
            align-items: center;
            gap: 12px;
            flex-shrink: 0;
        }

        .header__logo a {
            display: flex;
            align-items: center;
            text-decoration: none;
        }

        /* Inline Brand Logo */
        .logo-svg {
            height: 54px;
            width: auto;
            display: block;
        }

        .header__nav {
            display: flex;
            align-items: center;
            flex-wrap: nowrap;
            gap: clamp(8px, 1.2vw, 15px);
        }

        .header__list {
            display: flex;
            align-items: center;
            gap: clamp(6px, 0.9vw, 12px);
            flex-wrap: nowrap;
        }

        .header__list a {
            text-decoration: none;
            color: var(--text-main);
            font-weight: 700;
            font-size: clamp(11px, 0.8vw, 14px);
            white-space: nowrap;
            padding: 6px 10px;
            border-radius: 9999px;
            transition: all 0.3s;
        }

        .header__list a:hover {
            background-color: var(--bg-thin-yellow);
            color: var(--mint-accent);
        }

        .header__cta {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: nowrap;
            flex-shrink: 0;
        }

        /* Hamburger */
        .header__hamburger {
            display: none;
        }

        @media screen and (max-width: 1280px) {
            .header__hamburger {
                display: block;
                width: 30px;
                height: 24px;
                position: relative;
                cursor: pointer;
                z-index: 2001;
            }
        }

        .header__hamburger span {
            position: absolute;
            width: 100%;
            height: 3px;
            background: var(--mint-accent);
            left: 0;
            transition: all 0.3s;
            border-radius: 9999px;
        }

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

        .header__hamburger span:nth-child(2) {
            top: 11px;
        }

        .header__hamburger span:nth-child(3) {
            top: 22px;
        }

        .header__hamburger.active span:nth-child(1) {
            transform: translateY(11px) rotate(45deg);
        }

        .header__hamburger.active span:nth-child(2) {
            opacity: 0;
        }

        .header__hamburger.active span:nth-child(3) {
            transform: translateY(-11px) rotate(-45deg);
        }

        /* SP Menu */
        .sp-menu {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            background: var(--bg-thin-yellow);
            z-index: 2000;
            padding: 100px 40px;
            transform: translateX(100%);
            transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
            background-image:
                radial-gradient(circle at 80% 20%, rgba(247, 170, 181, 0.2) 150px, transparent 200px),
                radial-gradient(circle at 10% 80%, rgba(104, 204, 184, 0.2) 150px, transparent 200px);
        }

        .sp-menu.active {
            transform: translateX(0);
        }

        .sp-menu__close {
            position: absolute;
            top: 25px;
            right: 25px;
            width: 30px;
            height: 30px;
        }

        .sp-menu__close span {
            position: absolute;
            width: 100%;
            height: 3px;
            background: var(--mint-accent);
            top: 50%;
            border-radius: 9999px;
        }

        .sp-menu__close span:nth-child(1) {
            transform: rotate(45deg);
        }

        .sp-menu__close span:nth-child(2) {
            transform: rotate(-45deg);
        }

        .sp-menu__list {
            margin-bottom: 40px;
        }

        .sp-menu__list li {
            margin-bottom: 25px;
            text-align: center;
        }

        .sp-menu__list a {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-main);
        }

        /* Consultation Section (Fitted with cozy vertical list layout) */
        .section.consultation {
            background: linear-gradient(to bottom, #fffcf0 0%, var(--bg-base) 100%);
            padding-bottom: 90px;
        }

        .consultation__box {
            background: var(--white);
            border: 4px dashed var(--blue-accent);
            /* Cute dotted dash outline */
            border-radius: var(--radius-l);
            padding: 45px 50px !important;
            box-shadow: 0 8px 24px rgba(137, 202, 230, 0.08);
            max-width: 800px;
            margin: 0 auto;
        }

        .consultation__title {
            text-align: center;
            font-size: 1.8rem;
            font-weight: 700;
            margin-bottom: 40px;
            color: var(--blue-accent);
            letter-spacing: 0.05em;
        }

        .consultation__list {
            display: flex;
            flex-direction: column;
            gap: 20px;
            margin-bottom: 40px;
            padding: 0;
        }

        .consultation__list li {
            display: flex;
            flex-direction: row;
            align-items: flex-start;
            text-align: left;
            gap: 15px;
            background: var(--bg-thin-yellow);
            padding: 24px 30px;
            border-radius: var(--radius-m);
            box-shadow: 0 4px 15px rgba(252, 212, 110, 0.12);
            transition: all 0.3s;
            border: 2px solid transparent;
        }

        .consultation__list li:hover {
            transform: translateY(-4px);
            border-color: var(--yellow-accent);
            background-color: var(--white);
        }

        .consultation__check-wrap {
            width: 38px;
            height: 38px;
            border-radius: 50%;
            background: var(--white);
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.04);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .consultation__check-wrap i {
            color: var(--mint-accent);
            font-size: 1.4rem;
        }

        .consultation__list li span {
            font-size: 1.1rem;
            font-weight: 500;
            color: var(--text-main);
            line-height: 1.6;
            padding-top: 4px;
        }

        .consultation__bottom-text {
            font-size: 1.15rem;
            font-weight: 700;
            color: var(--text-main);
            text-align: center;
            line-height: 1.8;
            margin-top: 30px;
        }

        .section.about {
            background: var(--bg-base);
        }

        .container--about {
            display: flex;
            align-items: center;
            gap: 20px;
        }

        .about__content {
            flex: 1;
        }

        .about__image {
            flex: 1;
        }

        .about__image img {
            width: 100%;
        }

        /* Wave Divider Animation */
        .wave-container {
            position: relative;
            width: 100%;
            height: 80px;
            background: var(--bg-base);
            overflow: hidden;
            margin-top: -1px;
            margin-bottom: -1px;
            z-index: 10;
        }

        .wave-container svg {
            position: absolute;
            bottom: -1px;
            left: 0;
            width: calc(200% + 2px);
            margin-left: -1px;
            height: 80px;
            display: block;
            shape-rendering: geometricPrecision;
            animation: wave-move 12s linear infinite;
        }

        .wave-container .shape-fill {
            fill: var(--bg-thin-yellow);
        }

        @keyframes wave-move {
            0% {
                transform: translateX(0);
            }

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

        /* Scroll Animations */
        .animate-ready {
            opacity: 0;
            transform: translateY(15px);
            transition: opacity 1.2s cubic-bezier(0.165, 0.84, 0.44, 1), transform 1.2s cubic-bezier(0.165, 0.84, 0.44, 1);
        }

        .animate-ready.is-animated {
            opacity: 1;
            transform: translateY(0);
        }

        /* CTA Container (Green Box redefined with warm kid-friendly pop theme) */
        .custom-cta-section {
            background-color: var(--bg-thin-yellow);
            border: 4px dashed var(--mint-accent);
            border-radius: var(--radius-l);
            padding-left: 30px !important;
            padding-right: 30px !important;
            padding-top: 40px;
            padding-bottom: 40px;
            max-width: 1100px;
            width: calc(100% - 40px);
            margin: 40px auto 90px;
            color: var(--text-main);
            box-sizing: border-box;
            display: flex;
            flex-direction: column;
            align-items: center;
            box-shadow: 0 10px 30px rgba(104, 204, 184, 0.08);
        }

        .section.about,
        #medical {
            padding-bottom: 0;
        }

        .cta-title {
            color: var(--mint-accent);
            font-size: 28px;
            font-weight: 700;
            text-align: center;
            margin-bottom: 30px;
            margin-top: 0;
            letter-spacing: 0.1em;
        }

        .cta-btn {
            display: flex;
            align-items: center;
            justify-content: center;
            height: 70px;
            border-radius: 9999px;
            font-size: 1.2rem;
            font-weight: 700;
            text-decoration: none;
            transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            box-sizing: border-box;
        }

        .cta-btn:hover {
            transform: translateY(-4px) scale(1.03);
            box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);
        }

        .btn-tel {
            background-color: var(--mint-accent);
            color: #fff;
        }

        .btn-web {
            background-color: #fff;
            color: var(--mint-accent);
            border: 2px solid var(--mint-accent);
        }

        @media (max-width: 900px) {
            .custom-cta-section {
                padding: 30px 15px !important;
                border-radius: var(--radius-m);
                margin: 20px auto;
            }

            .cta-title {
                font-size: 22px;
            }

            .cta-btn {
                height: 60px;
                font-size: 1.1rem;
            }
        }

        /* Features (Side by Side with Fluid Images) */
        .section.features {
            background: var(--pink-pastel);
            padding-bottom: 90px;
            background-image:
                radial-gradient(circle at 10% 10%, rgba(255, 255, 255, 0.6) 80px, transparent 150px),
                radial-gradient(circle at 90% 80%, rgba(255, 255, 255, 0.6) 100px, transparent 180px);
        }

        .features__list {
            display: grid;
            gap: 60px;
        }

        .feature-item {
            display: flex;
            align-items: center;
            gap: 50px;
        }

        .feature-item--rev {
            flex-direction: row-reverse;
        }

        .feature-item__img {
            flex: 1;
        }

        .feature-item__img img:not(.section-title img) {
            width: 100%;
            border-radius: var(--radius-m);
            filter: drop-shadow(10px 10px 0 var(--pink-accent));
            aspect-ratio: 16/10;
            object-fit: cover;
        }

        .feature-item__img .section-title img {
            filter: none;
        }

        .feature-item__text {
            flex: 1;
        }

        .feature-item__title {
            font-size: 1.5rem;
            font-weight: 700;
            margin-bottom: 20px;
            color: var(--text-main);
        }

        @media screen and (max-width: 768px) {

            .feature-item,
            .feature-item--rev {
                flex-direction: column;
                gap: 30px;
            }
        }

        .section.medical {
            background: var(--bg-base);
        }

        /* Donation Card specific redesign (Single powerful layout) */
        .donation-box {
            background: var(--bg-thin-yellow);
            border: 4px dashed var(--orange-accent);
            border-radius: var(--radius-l);
            padding: 50px 40px;
            box-shadow: 0 10px 30px rgba(252, 174, 131, 0.08);
            max-width: 960px;
            margin: 40px auto 0;
            text-align: center;
        }

        .donation-box__title {
            font-size: 1.8rem;
            font-weight: bold;
            color: var(--orange-accent);
            margin-bottom: 20px;
            letter-spacing: 0.05em;
        }

        .donation-box__desc {
            font-size: 1.1rem;
            line-height: 2;
            color: var(--text-main);
            margin-bottom: 35px;
            text-align: left;
        }

        .donation-box__grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
            margin-bottom: 40px;
        }

        .donation-box__item {
            background: var(--white);
            padding: 24px 15px;
            border-radius: var(--radius-m);
            box-shadow: 0 6px 15px rgba(0, 0, 0, 0.03);
            border: 2px solid transparent;
            transition: all 0.3s;
        }

        .donation-box__item:hover {
            transform: translateY(-4px);
            border-color: var(--yellow-accent);
        }

        .donation-box__icon {
            font-size: 2.2rem;
            color: var(--orange-accent);
            margin-bottom: 12px;
        }

        .donation-box__item-title {
            font-weight: bold;
            font-size: 1rem;
            color: var(--text-main);
        }

        .donation-btn-rainbow {
            background: linear-gradient(135deg, var(--pink-accent) 0%, var(--yellow-accent) 50%, var(--mint-accent) 100%);
            color: var(--white);
            font-size: 1.25rem;
            font-weight: bold;
            padding: 16px 50px;
            border-radius: 9999px;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 12px;
            box-shadow: 0 6px 20px rgba(247, 170, 181, 0.3);
            border: none;
            transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        .donation-btn-rainbow:hover {
            transform: translateY(-5px) scale(1.03);
            box-shadow: 0 12px 25px rgba(247, 170, 181, 0.45);
        }

        @media screen and (max-width: 768px) {
            .donation-box {
                padding: 30px 20px;
            }

            .donation-box__desc {
                font-size: 1rem;
            }

            .donation-box__grid {
                grid-template-columns: 1fr;
                gap: 15px;
            }
        }

        .service-arch {
            width: 100%;
            overflow: hidden;
            line-height: 0;
            background: var(--bg-base);
        }

        .service-arch svg {
            display: block;
            width: 100%;
            height: 60px;
        }

        /* Fluid Shape for Features Images */
        .feature-item__img {
            border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
            overflow: hidden;
            aspect-ratio: 1 / 1;
            box-shadow: 0 10px 25px rgba(77, 68, 60, 0.06);
            border: 8px solid var(--white);
            animation: fv-float 12s ease-in-out infinite alternate;
            /* Safari/iOSでoverflow:hiddenとborder-radiusを確実に適用 */
            -webkit-mask-image: -webkit-radial-gradient(white, black);
            mask-image: radial-gradient(white, black);
        }

        /* Alternating blob shapes */
        .feature-item:nth-child(even) .feature-item__img {
            border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
            animation-delay: -3s;
        }

        .feature-item__img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            /* Safari/iOS用フォールバック */
            -o-object-fit: cover;
            transform: scale(1.05);
        }

        .section-title-wrapper {
            text-align: center;
            margin-bottom: 50px;
        }

        .section-subtitle-en {
            display: block;
            font-size: 16px;
            color: var(--mint-accent);
            opacity: 0.9;
            letter-spacing: 0.2em;
            margin-bottom: 5px;
            font-weight: bold;
        }

        .section-title-jp {
            font-size: 36px;
            font-weight: bold;
            background: linear-gradient(to right, var(--blue-accent), var(--pink-accent), var(--orange-accent));
            background-size: 200% 100%;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: textGradient 8s ease infinite;
            display: inline-block;
        }

        @keyframes textGradient {
            0% {
                background-position: 0% 50%;
            }

            50% {
                background-position: 100% 50%;
            }

            100% {
                background-position: 0% 50%;
            }
        }

        /* Flow Section */
        .flow__container {
            display: flex;
            align-items: flex-start;
            gap: 60px;
        }

        .flow__nav {
            position: sticky;
            top: 100px;
            width: 250px;
            flex-shrink: 0;
        }

        .flow__nav-list {
            list-style: none;
            padding: 0;
            margin: 0;
            position: relative;
        }

        .flow__nav-list::before {
            content: "";
            position: absolute;
            top: 0;
            bottom: 0;
            left: 19px;
            width: 3px;
            background-color: var(--gray-placeholder);
            z-index: 1;
        }

        .flow__nav-item {
            display: flex;
            align-items: center;
            gap: 15px;
            margin-bottom: 40px;
            position: relative;
            z-index: 2;
            cursor: pointer;
            transition: all 0.3s ease;
            opacity: 0.5;
        }

        .flow__nav-item:last-child {
            margin-bottom: 0;
        }

        .flow__nav-item.is-active {
            opacity: 1;
        }

        .flow__nav-num {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background-color: var(--gray-placeholder);
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            font-weight: bold;
            transition: background-color 0.3s ease;
            flex-shrink: 0;
        }

        .flow__nav-item.is-active .flow__nav-num {
            background-color: var(--mint-accent);
        }

        .flow__nav-text {
            font-weight: bold;
            font-size: 1.1rem;
            color: var(--text-main);
        }

        .flow__content {
            flex-grow: 1;
            display: flex;
            flex-direction: column;
            gap: 40px;
        }

        .flow__step-card {
            background: #fff;
            border-radius: var(--radius-m);
            padding: 40px;
            box-shadow: 0 6px 20px rgba(120, 100, 80, 0.04);
            border: 2px solid var(--bg-thin-yellow);
        }

        .flow__step-header {
            display: flex;
            align-items: center;
            gap: 15px;
            margin-bottom: 20px;
            border-bottom: 2px dashed var(--gray-placeholder);
            padding-bottom: 15px;
        }

        .flow__step-num {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background-color: var(--mint-accent);
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.2rem;
            font-weight: bold;
            flex-shrink: 0;
        }

        .flow__step-title {
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--text-main);
            margin: 0;
        }

        .flow__step-body {
            font-size: 1.05rem;
            line-height: 1.8;
            color: var(--text-main);
        }

        .flow__btn {
            display: inline-block;
            margin-top: 20px;
            padding: 12px 30px;
            background-color: var(--pink-accent);
            color: #fff;
            text-decoration: none;
            border-radius: 9999px;
            font-weight: bold;
            transition: opacity 0.3s ease;
        }

        .flow__btn:hover {
            opacity: 0.9;
        }

        @media screen and (max-width: 900px) {
            .flow__container {
                flex-direction: column;
            }

            .flow__nav {
                display: none;
            }

            .flow__step-card {
                padding: 25px;
            }
        }

        /* Q&A Section */
        .section.faq {
            background-color: var(--bg-thin-yellow);
            padding: 90px 0;
            background-image:
                radial-gradient(circle at 10% 80%, rgba(137, 202, 230, 0.12) 120px, transparent 200px),
                radial-gradient(circle at 90% 20%, rgba(247, 170, 181, 0.12) 120px, transparent 200px);
        }

        .faq__list {
            max-width: 840px;
            margin: 0 auto;
            display: flex;
            flex-direction: column;
            gap: 24px;
        }

        .faq__item {
            background: var(--white);
            border-radius: var(--radius-m);
            padding: 30px 40px;
            box-shadow: 0 8px 24px rgba(120, 100, 80, 0.04);
            border: 2px solid transparent;
            transition: all 0.3s ease;
        }

        .faq__item:hover {
            transform: translateY(-3px);
            border-color: var(--yellow-accent);
        }

        .faq__question {
            font-size: 1.25rem;
            font-weight: 700;
            color: var(--orange-accent);
            display: flex;
            align-items: flex-start;
            gap: 15px;
            margin-bottom: 15px;
            border-bottom: 2px dashed var(--gray-placeholder);
            padding-bottom: 15px;
        }

        .faq__q-badge {
            background-color: var(--orange-accent);
            color: var(--white);
            width: 32px;
            height: 32px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            font-weight: 700;
            flex-shrink: 0;
        }

        .faq__answer {
            font-size: 1.05rem;
            line-height: 1.8;
            color: var(--text-main);
            display: flex;
            align-items: flex-start;
            gap: 15px;
        }

        .faq__a-badge {
            background-color: var(--mint-accent);
            color: var(--white);
            width: 32px;
            height: 32px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            font-weight: 700;
            flex-shrink: 0;
        }

        @media screen and (max-width: 768px) {
            .faq__item {
                padding: 24px 20px;
            }

            .faq__question,
            .faq__answer {
                gap: 10px;
                font-size: 1.1rem;
            }

            .faq__q-badge,
            .faq__a-badge {
                width: 28px;
                height: 28px;
                font-size: 0.95rem;
            }
        }

        /* Access */
        .container--access {
            display: flex;
            gap: 50px;
        }

        .access__content {
            flex: 1;
        }

        .access__map {
            flex: 1;
        }

        .access__map iframe {
            width: 100%;
            height: 450px;
            border-radius: var(--radius-m);
            border: 6px solid var(--white);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
        }

        .access__content .section-title img {
            margin-left: 0;
            margin-right: 0;
            max-width: none;
            width: 70%;
            object-fit: contain;
        }

        .access__list {
            padding: 0;
        }

        .access__list li {
            display: flex;
            align-items: flex-start;
            gap: 15px;
            margin-bottom: 20px;
            font-size: 1.1rem;
            line-height: 1.8;
        }

        .access__label {
            font-weight: 700;
            color: var(--mint-accent);
            background-color: var(--mint-pastel);
            padding: 2px 14px;
            border-radius: 9999px;
            font-size: 0.9rem;
            white-space: nowrap;
            display: inline-block;
            margin-right: 10px;
        }

        @media screen and (max-width: 900px) {
            .container--access {
                flex-direction: column;
            }

            .container--about {
                flex-direction: column-reverse;
            }

            .section-title img {
                max-width: 100%;
            }

            /* SP Title Trimming */
            .section-title {
                overflow: hidden;
            }

            /* About and Features: Consistent SP sizes */
            #about .section-title img,
            #features .section-title img {
                width: calc((100% - 40px) * 1.2);
                max-width: none;
                height: auto;
                object-fit: contain;
                object-position: left center;
                margin-left: 0;
            }

            /* Others: Cut 20px from both sides */
            #faq .section-title img,
            #medical .section-title img,
            #message .section-title img,
            #access .section-title img {
                width: calc(100% + 40px);
                max-width: none;
                object-fit: cover;
                object-position: center;
                margin-left: -20px;
            }

            #access .section-title img {
                width: 70%;
                margin-left: 0;
                object-fit: contain;
            }

            .features .container {
                display: flex;
                flex-direction: column;
            }

            /* SP Refinements */
            .about__image {
                margin-bottom: 10px !important;
            }

            .features .section-title {
                order: -1;
                width: 100%;
                margin-bottom: 30px;
            }

            .feature-item {
                flex-direction: column;
            }

            .custom-cta-section .cta-title {
                margin-bottom: 15px;
            }

            .custom-cta-section .cta-flex-container {
                display: flex;
                flex-direction: column;
                align-items: stretch;
                justify-content: flex-start;
                width: 100%;
                gap: 20px;
            }
        }

        /* Fixed CTA */
        .fixed-cta {
            position: fixed;
            bottom: 0;
            left: 0;
            width: 100%;
            display: none;
            grid-template-columns: repeat(3, 1fr);
            z-index: 1500;
        }

        @media screen and (max-width: 768px) {
            .fixed-cta {
                display: grid;
            }
        }

        .fixed-cta__btn {
            height: 60px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
            color: var(--white);
            text-decoration: none;
        }

        .fixed-cta__btn--tel {
            background: var(--mint-accent);
        }

        .fixed-cta__btn--web {
            background: var(--blue-accent);
        }

        /* Footer */
        .footer {
            padding: 80px 0;
            background: var(--bg-thin-yellow);
            border-top: 4px dashed var(--yellow-accent);
            position: relative;
        }

        .footer__logo img {
            height: 40px;
            margin-bottom: 20px;
        }

        .footer__copy {
            font-size: 0.85rem;
            color: #7d7065;
            font-weight: 700;
        }

        /* Auto Slider Section */
        .auto-slider-section {
            width: 100%;
            overflow: hidden;
            background: transparent;
            padding: 60px 0;
        }

        .auto-slider {
            width: 100%;
            overflow: hidden;
        }

        .auto-slider__track {
            display: flex;
            gap: 40px;
            width: fit-content;
            animation: auto-slide 30s linear infinite;
        }

        .auto-slider__item {
            flex-shrink: 0;
            height: auto;
            border-radius: var(--radius-m) !important;
            overflow: hidden !important;
            transform: translate3d(0, 0, 0) !important;
            -webkit-transform: translate3d(0, 0, 0) !important;
            -webkit-backface-visibility: hidden !important;
            -webkit-mask-image: -webkit-radial-gradient(white, black) !important;
        }

        .auto-slider__item img {
            height: 260px;
            width: 282px;
            /* 13:12 ratio of slide (1) */
            display: block;
            object-fit: cover;
            border-radius: var(--radius-m) !important;
            overflow: hidden !important;
            transform: translate3d(0, 0, 0) !important;
            -webkit-transform: translate3d(0, 0, 0) !important;
            box-shadow: 0 6px 20px rgba(120, 100, 80, 0.08);
            border: 6px solid var(--white);
        }

        @keyframes auto-slide {
            0% {
                transform: translateX(0);
            }

            100% {
                transform: translateX(calc(-50% - 20px));
            }
        }

        @media screen and (max-width: 768px) {
            .auto-slider-section {
                padding: 40px 0;
            }

            .auto-slider__item img {
                height: 180px;
                width: 195px;
                /* 13:12 ratio on mobile */
                border-radius: var(--radius-s);
                object-fit: cover;
            }

            .auto-slider__track {
                gap: 20px;
            }

            .auto-slider__item {
                border-radius: var(--radius-s) !important;
                overflow: hidden !important;
            }
        }

        /* ==========================================================================
           FV CSS Definitions (Crucial Restorations)
           ========================================================================== */
        .fv-new {
            position: relative;
            width: 100%;
            height: 85vh;
            min-height: 760px;
            display: flex;
            align-items: center;
            overflow: hidden;
            z-index: 1;
            background: linear-gradient(135deg, rgba(252, 212, 110, 0.25) 0%, rgba(247, 170, 181, 0.25) 100%);
            padding: 0;
            margin-top: var(--header-height);
        }

        .fv-new__circle {
            position: absolute;
            top: -100px;
            left: -100px;
            width: 500px;
            height: 500px;
            border-radius: 50%;
            background: radial-gradient(circle, var(--pink-pastel) 0%, transparent 70%);
            z-index: 2;
            opacity: 0.4;
            pointer-events: none;
        }

        .fv-new__container {
            position: relative;
            z-index: 4;
            width: 100% !important;
            max-width: 100% !important;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            padding-left: 6% !important;
            padding-right: 6% !important;
            box-sizing: border-box;
        }

        .fv-new__content-col {
            width: 40%;
            max-width: 640px;
            text-align: left;
            z-index: 5;
            padding-right: 20px;
        }

        .fv-new__logo {
            margin-bottom: 25px;
        }

        .fv-new__logo .logo-svg {
            max-width: 285px;
            height: auto;
            display: block;
        }

        .fv-new__main-title {
            font-size: clamp(33px, 3.8vw, 47px);
            margin-bottom: 25px;
            line-height: 1.5;
            font-weight: 700;
            color: var(--text-main);
            letter-spacing: 0.05em;
        }

        .fv-new__image-col {
            position: absolute;
            top: 0;
            right: 0;
            width: 58%;
            height: 100%;
            z-index: 3;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            padding-right: 20px;
        }

        .fv-new__image-wrapper {
            position: relative;
            width: 540px;
            height: 540px;
            aspect-ratio: 1 / 1;
            overflow: hidden;
            box-shadow: 0 20px 50px rgba(44, 62, 53, 0.12);
            border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
            animation: fv-float 10s ease-in-out infinite alternate;
            transform-origin: center center;
            margin-right: 90px;
        }

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

        .fv-new__bg-slide {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-size: cover !important;
            background-position: center !important;
            background-repeat: no-repeat !important;
            opacity: 0;
            /* JSがopacityをtransitionで制御 */
            transition: opacity 1.2s ease-in-out;
            will-change: opacity;
        }

        .fv-new__bg-slide.slide-1 {
            background: url('../img/fv1.jpeg');
            background-size: cover !important;
            background-position: center !important;
            /* ロード完了まで最初の1枚を表示（JS開始前の初期表示） */
            opacity: 1;
        }

        .fv-new__bg-slide.slide-2 {
            background: url('../img/fv2.jpg');
            background-size: cover !important;
            background-position: center !important;
            opacity: 0;
        }

        .fv-new__bg-slide.slide-3 {
            display: none;
        }



        @keyframes fv-float {
            0% {
                transform: translateY(0);
            }

            100% {
                transform: translateY(-15px);
            }
        }

        @media (max-width: 992px) {
            .fv-new {
                height: auto;
                min-height: auto;
                margin-top: 0 !important;
                padding: 110px 0 60px;
                display: block;
            }

            .fv-new__container {
                flex-direction: column;
                align-items: stretch;
                gap: 40px;
                height: auto;
            }

            .fv-new__content-col {
                width: 100%;
                max-width: 100%;
                padding-right: 0;
                text-align: center;
                position: relative;
                z-index: 5;
            }

            .fv-new__logo {
                display: flex;
                justify-content: center;
                margin-bottom: 20px;
            }

            .fv-new__logo .logo-svg {
                max-width: 250px;
                margin: 0 auto;
            }

            .fv-new__image-col {
                position: relative;
                top: auto;
                right: auto;
                width: 100%;
                max-width: 100%;
                height: auto;
                margin: 0 auto;
                display: flex;
                justify-content: center;
                align-items: center;
                padding-right: 0 !important;
                margin-top: -30px;
                z-index: 2;
            }

            .fv-new__image-wrapper {
                position: relative !important;
                top: auto !important;
                left: auto !important;
                width: clamp(300px, 85vw, 360px) !important;
                height: clamp(300px, 85vw, 360px) !important;
                aspect-ratio: 1 / 1 !important;
                border-radius: 42% 58% 70% 30% / 45% 45% 55% 55% !important;
                margin-right: 0 !important;
            }
        }

        /* TOPへ戻るボタン (totop) */
        .totop {
            position: fixed;
            bottom: 30px;
            right: 30px;
            width: 50px;
            height: 50px;
            background-color: var(--mint-accent);
            border-radius: 50%;
            z-index: 1800;
            opacity: 0;
            pointer-events: none;
            transition: all 0.3s ease;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
        }

        .totop::before {
            content: '';
            position: absolute;
            top: 55%;
            left: 50%;
            width: 12px;
            height: 12px;
            border-top: 3px solid #fff;
            border-left: 3px solid #fff;
            transform: translate(-50%, -50%) rotate(45deg);
        }

        .totop:hover {
            background-color: var(--pink-accent);
            transform: translateY(-3px);
            box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
        }

        .totop.is-visible {
            opacity: 1;
            pointer-events: auto;
        }

        @media screen and (max-width: 768px) {
            .totop {
                bottom: 80px !important;
                right: 15px !important;
                width: 44px !important;
                height: 44px !important;
            }

            .totop::before {
                width: 10px !important;
                height: 10px !important;
            }
        }

        /* ==========================================================================
           SP Responsive Adjustments for Comfort and Legibility (LINE/Phone CTA Optimized)
           ========================================================================== */
        @media screen and (max-width: 1280px) {

            /* ヘッダー・ロゴ・ハンバーガーメニューを1280px未満の端末（タブレット含む）すべてに適用 */
            .header {
                height: 60px !important;
                z-index: 2500 !important;
                /* ドロワー(2000)より手前に出す */
            }

            .header__inner {
                padding: 0 15px !important;
                display: flex !important;
                justify-content: space-between !important;
                align-items: center !important;
                width: 100% !important;
            }

            .header__logo {
                margin-right: auto !important;
            }

            .header__logo .logo-svg {
                height: 35px !important;
                width: auto !important;
            }

            .header__hamburger {
                display: block !important;
                position: relative !important;
                z-index: 2600 !important;
                /* 最前面に固定 */
                width: 26px !important;
                height: 18px !important;
            }

            .header__hamburger span {
                height: 2px !important;
                background: #2c3e35 !important;
            }

            .header__hamburger span:nth-child(1) {
                top: 0 !important;
            }

            .header__hamburger span:nth-child(2) {
                top: 8px !important;
            }

            .header__hamburger span:nth-child(3) {
                top: 16px !important;
            }

            .header__hamburger.active span:nth-child(1) {
                transform: translateY(8px) rotate(45deg) !important;
            }

            .header__hamburger.active span:nth-child(2) {
                opacity: 0 !important;
            }

            .header__hamburger.active span:nth-child(3) {
                transform: translateY(-8px) rotate(-45deg) !important;
            }
        }

        @media screen and (max-width: 768px) {

            /* 全体見出しサイズを20pxで統一 */
            .section-title,
            .section-title-jp,
            .final-cta__title,
            .cta-title,
            .section-title span {
                font-size: 20px !important;
                line-height: 1.4 !important;
            }

            .section-title img {
                width: auto !important;
                max-height: 35px !important;
                margin-left: 0 !important;
            }

            /* ヘッダー・ロゴ・ハンバーガーメニュー */
            .header {
                height: 60px !important;
                z-index: 2500 !important;
                /* ドロワー(2000)より手前に出す */
            }

            .header__inner {
                padding: 0 15px !important;
                display: flex !important;
                justify-content: space-between !important;
                align-items: center !important;
                width: 100% !important;
            }

            .header__logo {
                margin-right: auto !important;
            }

            .header__logo .logo-svg {
                height: 35px !important;
                width: auto !important;
            }

            .header__hamburger {
                display: block !important;
                position: relative !important;
                z-index: 2600 !important;
                /* 最前面に固定 */
                width: 26px !important;
                height: 18px !important;
            }

            .header__hamburger span {
                height: 2px !important;
                background: #2c3e35 !important;
            }

            .header__hamburger span:nth-child(1) {
                top: 0 !important;
            }

            .header__hamburger span:nth-child(2) {
                top: 8px !important;
            }

            .header__hamburger span:nth-child(3) {
                top: 16px !important;
            }

            .header__hamburger.active span:nth-child(1) {
                transform: translateY(8px) rotate(45deg) !important;
            }

            .header__hamburger.active span:nth-child(2) {
                opacity: 0 !important;
            }

            .header__hamburger.active span:nth-child(3) {
                transform: translateY(-8px) rotate(-45deg) !important;
            }

            /* SPの大見出し（セクションタイトル、最終CTAタイトルなど）は24pxに統一 */
            .section-title,
            .section-title-jp,
            .final-cta__title,
            .cta-title,
            .section-title span,
            .about-new__title,
            h2 {
                font-size: 24px !important;
                line-height: 1.4 !important;
            }

            /* 各コンテンツブロックの小見出し（SERVICE特徴、FLOWステップ、医師名など）を20pxに統一 */
            .feature-item__title,
            .flow__step-title,
            .doctor-card__name,
            .medical-card-new__title,
            .greeting__intro h3,
            h3 {
                font-size: 20px !important;
                line-height: 1.4 !important;
            }

            .doctor-card__name span {
                font-size: 13px !important;
            }

            /* 本文は基本16pxで統一（15px以下の注記や補足テキストはそのまま） */
            .about__text,
            .feature-item__desc,
            .medical-card-new__desc,
            .flow__step-body p,
            .message-text,
            .doctor-card__text {
                font-size: 16px !important;
                line-height: 1.8 !important;
            }

            /* こんな症状はご相談ください (Consultation) */
            .consultation__list {
                display: grid !important;
                grid-template-columns: 1fr !important;
                gap: 15px !important;
                padding: 0 10px !important;
            }

            .consultation__box {
                padding: 30px 15px !important;
            }

            .consultation__title {
                font-size: 20px !important;
                line-height: 1.6 !important;
                margin-bottom: 25px !important;
            }

            .consultation__list li {
                font-size: 16px !important;
                /* 本文16pxに統一 */
                display: flex !important;
                flex-direction: column !important;
                align-items: center !important;
                justify-content: center !important;
                gap: 12px !important;
                text-align: center !important;
                padding: 25px 15px !important;
            }

            .consultation__list li span {
                text-align: center !important;
                display: block !important;
            }

            /* ABOUT (当院について) 本文だけ左揃え */
            .about__text {
                text-align: left !important;
                display: block !important;
            }

            /* 中間・最終CTA */
            .cta-row-new {
                gap: 15px !important;
                flex-direction: column !important;
                align-items: center !important;
                width: 100% !important;
            }

            /* 電話番号 iPhone SE(320px) でも改行されないよう縮小 */
            .cta-row-new a[href^="tel:"] {
                font-size: 1.5rem !important;
            }

            .cta-row-new a[href*="form.html"],
            .cta-row-new a[href*="page.line.me"] {
                font-size: 1.05rem !important;
                padding: 14px 30px !important;
                width: 100% !important;
                max-width: 290px !important;
                justify-content: center !important;
            }

            /* カレンダータイトルを16pxに統一し、完全に中央揃えにする */
            .schedule-wrapper {
                text-align: center !important;
            }

            .schedule-wrapper h3 {
                font-size: 16px !important;
                text-align: center !important;
                display: block !important;
                width: 100% !important;
                margin-left: auto !important;
                margin-right: auto !important;
            }

            /* ACCESS (アクセス) のレスポンシブ崩れ対策 */
            .access__info {
                gap: 30px !important;
            }

            .access__info>div {
                width: 100% !important;
                max-width: 100% !important;
                flex: 1 1 100% !important;
                box-sizing: border-box !important;
            }

            .access__map {
                flex: 1 1 100% !important;
                width: 100% !important;
                margin-top: 15px !important;
            }

            .access__map iframe {
                height: 250px !important;
                /* スマホでは高さを縮小 */
            }

            /* FLOW (受診の流れ) 画像をDIVの中央に揃える */
            .flow__step-card {
                flex-direction: column !important;
                align-items: stretch !important;
                padding: 25px 20px !important;
            }

            .flow__step-img {
                flex: 1 1 100% !important;
                display: flex !important;
                justify-content: center !important;
                margin-top: 15px !important;
                width: 100% !important;
            }

            .flow__step-img img {
                max-width: 280px !important;
                width: 100% !important;
                margin: 0 auto !important;
            }

            /* MESSAGE (メッセージ) SP用グラデーション＆見出しフォントサイズ調整 */
            .message__fade-overlay {
                background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 1) 100%) !important;
            }

            #message h2 {
                font-size: 20px !important;
                line-height: 1.6 !important;
            }

            /* 固定CTA (SP用追従CTA) レスポンシブはみ出し防止 - LINE、電話、フォーム相談の3等分最適化 */
            .fixed-cta {
                position: fixed !important;
                bottom: 0 !important;
                left: 0 !important;
                width: 100% !important;
                display: flex !important;
                z-index: 1999 !important;
                background: #fff !important;
                box-shadow: 0 -3px 10px rgba(0, 0, 0, 0.08) !important;
                box-sizing: border-box !important;
                padding: 10px !important;
                gap: 8px !important;

                /* 初期状態：非表示（透明化＆下スライド） */
                opacity: 0 !important;
                pointer-events: none !important;
                transform: translateY(100%) !important;
                transition: opacity 0.4s ease, transform 0.4s ease !important;
            }

            /* スクロールでFVを超えた時にアクティブ表示 */
            .fixed-cta.is-active {
                opacity: 1 !important;
                pointer-events: auto !important;
                transform: translateY(0) !important;
            }

            .fixed-cta__btn {
                flex: 1 1 33.33% !important;
                display: inline-flex !important;
                align-items: center !important;
                justify-content: center !important;
                height: 46px !important;
                border-radius: 23px !important;
                font-size: 11px !important;
                /* ボタンが3つになるため、SE等の超小型画面に配慮して11pxに縮小 */
                font-weight: bold !important;
                text-decoration: none !important;
                box-sizing: border-box !important;
                white-space: nowrap !important;
                gap: 4px !important;
            }
        }

        @media screen and (max-width: 480px) {
            .about__text br.pc-only {
                display: none !important;
            }
        }

        /* SP表示（スマートフォン向け）の見切れ防止・改行固定・レイアウト微調整 */
        @media (max-width: 767px) {
            br.sp-only {
                display: inline !important;
            }

            .pc-only {
                display: none !important;
            }

            .fv-new__main-title {
                font-size: 32px !important;
                line-height: 1.4 !important;
                margin-bottom: 12px !important;
            }

            .fv-new__sub-title {
                font-size: 13px !important;
                line-height: 1.6 !important;
                margin-bottom: 20px !important;
            }

            .fv-new__logo img {
                max-width: 210px !important;
                margin: 0 auto !important;
            }
        }

        @media (max-width: 480px) {
            .fv-new__main-title {
                font-size: 30px !important;
            }

            .fv-new__sub-title {
                font-size: 12px !important;
            }

            .fv-new__logo img {
                max-width: 190px;
            }
        }

        /* コピー・ドラッグ制限 */
        body {
            -webkit-user-select: none !important;
            -moz-user-select: none !important;
            -ms-user-select: none !important;
            user-select: none !important;
        }

        img {
            pointer-events: none !important;
            -webkit-touch-callout: none !important;
            -webkit-user-drag: none !important;
        }

        /* ABOUT redesign */
        #about.about {
            min-height: 760px;
            padding: 110px 20px 120px;
            background: url("../img/aboutbg.png") center center / cover no-repeat fixed;
        }

        #about .container--about {
            max-width: 1040px;
            margin: 0 auto;
            display: block;
        }

        #about>.container--about,
        #about>.auto-slider-section {
            display: none;
        }

        #about .about-redesign {
            max-width: 1040px;
            margin: 0 auto;
        }

        #about .about__content {
            width: 100%;
            text-align: center;
        }

        .about-new__label {
            margin-bottom: 22px;
            color: #68c7b5;
            font-size: 15px;
            font-weight: 700;
            letter-spacing: .22em;
        }

        #about .about-new__title {
            margin: 0;
            color: #454545;
            font-size: clamp(28px, 3vw, 43px);
            font-weight: 700;
            line-height: 1.65;
            letter-spacing: .08em;
        }

        .about-new__highlight {
            display: inline;
            padding: 0 .18em .12em;
            background: linear-gradient(transparent 68%, rgba(255, 221, 104, .55) 68%, rgba(255, 221, 104, .55) 90%, transparent 90%);
            box-decoration-break: clone;
            -webkit-box-decoration-break: clone;
        }

        #about .about__text {
            max-width: 800px;
            margin: 42px auto 0;
            color: #555;
            font-size: 16px;
            font-weight: 500;
            line-height: 2.15;
            letter-spacing: .07em;
            text-align: center;
        }

        #about .about__text+.about__text {
            margin-top: 26px;
        }

        @media screen and (max-width: 767px) {
            #about.about {
                min-height: 0;
                padding: 82px 24px 94px;
                position: relative;
                isolation: isolate;
                overflow: clip;
                background: transparent;
            }

            #about.about::before {
                content: "";
                position: fixed;
                inset: 0;
                z-index: 0;
                background: url("../img/aboutspbg.png") center center / cover no-repeat;
                pointer-events: none;
            }

            #about.about>* {
                position: relative;
                z-index: 1;
            }

            .about-new__label {
                margin-bottom: 18px;
                font-size: 13px;
            }

            #about .about-new__title {
                font-size: 24px !important;
                line-height: 1.75 !important;
                letter-spacing: .04em;
            }

            #about .about__text,
            #about .about__text+.about__text {
                margin-top: 30px;
                font-size: 15px !important;
                line-height: 2 !important;
                letter-spacing: .03em;
                text-align: left !important;
            }
        }

        /* Section image bindings - Safari/iOS対応: content:url()からbackground-imageに変更 */
        #features .feature-item:nth-child(1) .feature-item__img {
            background-image: url("../img/service1.jpg");
            background-size: cover;
            background-position: center;
        }

        #features .feature-item:nth-child(2) .feature-item__img {
            background-image: url("../img/service2.jpg");
            background-size: cover;
            background-position: center;
        }

        #features .feature-item:nth-child(3) .feature-item__img {
            background-image: url("../img/service3.jpg");
            background-size: cover;
            background-position: center;
        }

        #features .feature-item__img {
            position: relative;
            background-color: transparent;
        }

        /* img要素は非表示にして背景画像で表示 */
        #features .feature-item__img img {
            display: none !important;
        }

        .section-title-wrapper::before,
        #message .section-title::before,
        #about .about-redesign .about__content::before {
            content: "";
            display: block;
            width: 190px;
            height: 110px;
            margin: 0 auto 10px;
            background: url("../img/nizi.png") center bottom / contain no-repeat;
            mix-blend-mode: multiply;
            clip-path: inset(0 100% 0 0);
            transform: translateX(-35px);
            opacity: 0;
            transition: clip-path 1s ease, transform 1s ease, opacity .3s ease;
        }

        .section-title-wrapper.is-animated::before,
        #message .section-title.is-animated::before,
        #about .about-redesign .about__content.is-animated::before {
            clip-path: inset(0 0 0 0);
            transform: translateX(0);
            opacity: 1;
        }

        #donation.medical {
            position: relative;
            isolation: isolate;
            background:
                linear-gradient(rgba(255, 255, 255, .82), rgba(255, 255, 255, .82)),
                url("../img/donationbg.jpg") center center / cover no-repeat fixed !important;
        }

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

        #donation .donation-box {
            background: rgba(255, 252, 237, .9);
            backdrop-filter: blur(2px);
        }

        #flow.flow {
            position: relative;
            isolation: isolate;
            background:
                linear-gradient(rgba(255, 255, 255, .62), rgba(255, 255, 255, .62)),
                url("../img/aboutbg.png") center center / cover no-repeat fixed !important;
        }

        #flow>.container {
            position: relative;
            z-index: 1;
        }

        #message .message__image-col {
            isolation: isolate;
            overflow: clip;
            background: url("../img/message.jpeg") center center / cover no-repeat;
        }

        #message .message__image-col>img {
            display: none;
        }

        .message-slider {
            width: 100%;
            overflow: hidden;
            background: #fff;
        }

        .message-slider__track {
            display: flex;
            will-change: transform;
            /* CSSアニメーションはSafari/iOSで問題が起きるためJSで制御 */
        }

        .message-slider__item {
            flex: 0 0 clamp(240px, 25vw, 420px);
            height: clamp(165px, 18vw, 280px);
            overflow: hidden;
            flex-shrink: 0;
        }

        .message-slider__item img {
            width: 100%;
            height: 100%;
            display: block;
            object-fit: cover;
            -o-object-fit: cover;
        }

        @media screen and (max-width: 767px) {

            #donation.medical,
            #flow.flow {
                overflow: clip;
                background: transparent !important;
            }

            #donation.medical::before,
            #flow.flow::before {
                content: "";
                position: fixed;
                inset: 0;
                z-index: 0;
                pointer-events: none;
            }

            #donation.medical::before {
                background:
                    linear-gradient(rgba(255, 255, 255, .84), rgba(255, 255, 255, .84)),
                    url("../img/donationbg.jpg") center center / cover no-repeat;
            }

            #flow.flow::before {
                background:
                    linear-gradient(rgba(255, 255, 255, .62), rgba(255, 255, 255, .62)),
                    url("../img/aboutspbg.png") center center / cover no-repeat;
            }

            #message .message__image-col {
                min-height: 360px !important;
                background: url("../img/message.jpeg") center center / cover no-repeat;
            }

            .section-title-wrapper::before,
            #message .section-title::before,
            #about .about-redesign .about__content::before {
                width: 145px;
                height: 82px;
                margin-bottom: 8px;
            }

            .message-slider__item {
                flex-basis: 210px;
                height: 145px;
            }
        }

        /* Compact consultation and CTA cleanup */
        .consultation__box {
            max-width: 920px;
            padding: 32px 36px !important;
        }

        .consultation__title {
            margin-bottom: 24px;
        }

        .consultation__list {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 14px;
            margin-bottom: 24px;
        }

        .consultation__list li {
            min-height: 82px;
            padding: 14px 18px;
            align-items: center;
        }

        .consultation__check-wrap {
            width: 30px;
            height: 30px;
        }

        .consultation__check-wrap i {
            display: inline-block !important;
            font-size: 18px;
        }

        .consultation__list li span {
            padding-top: 0;
            font-size: 15px;
            line-height: 1.7;
        }

        .consultation__bottom-text {
            margin-top: 20px;
        }

        .header__cta i,
        .custom-cta-section i,
        .fixed-cta i,
        .sp-menu__cta-group i {
            display: none !important;
        }

        .sp-menu__cta-group {
            display: none !important;
        }

        .sp-menu__list a {
            text-decoration: none !important;
            border-bottom: 0 !important;
        }

        @media screen and (max-width: 768px) {
            body {
                padding-bottom: 66px;
            }

            .container {
                width: 100% !important;
                padding-left: 18px !important;
                padding-right: 18px !important;
                box-sizing: border-box;
            }

            .section {
                padding-top: 64px !important;
                padding-bottom: 64px !important;
            }

            .section-title-wrapper {
                margin-bottom: 32px !important;
            }

            .sp-menu {
                height: calc(100dvh - 66px) !important;
                padding: 78px 24px 24px !important;
                overflow-y: auto;
                box-sizing: border-box;
            }

            .sp-menu__list {
                margin-bottom: 0 !important;
            }

            .sp-menu__list li {
                margin-bottom: 18px !important;
            }

            .sp-menu__list a {
                font-size: 16px !important;
                text-decoration: none !important;
            }

            .fixed-cta {
                z-index: 3000 !important;
                min-height: 66px !important;
                padding: 8px !important;
                gap: 6px !important;
            }

            .fixed-cta__btn {
                height: 48px !important;
                padding: 0 4px !important;
                font-size: 13px !important;
                gap: 0 !important;
            }

            .sp-menu.active~.fixed-cta {
                opacity: 1 !important;
                pointer-events: auto !important;
                transform: translateY(0) !important;
            }

            .consultation__box {
                padding: 24px 12px !important;
                border-width: 3px;
            }

            .consultation__title {
                margin-bottom: 18px !important;
                font-size: 19px !important;
            }

            .consultation__list {
                grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
                gap: 8px !important;
                padding: 0 !important;
                margin-bottom: 18px !important;
            }

            .consultation__list li {
                min-height: 112px;
                padding: 12px 8px !important;
                flex-direction: column !important;
                justify-content: center !important;
                gap: 7px !important;
                text-align: center !important;
            }

            .consultation__check-wrap {
                width: 26px;
                height: 26px;
            }

            .consultation__check-wrap i {
                font-size: 16px !important;
            }

            .consultation__list li span {
                font-size: 12px !important;
                line-height: 1.6 !important;
                text-align: center !important;
            }

            .consultation__bottom-text {
                margin-top: 16px;
                font-size: 13px;
                line-height: 1.7;
            }

            .features__list {
                gap: 44px;
            }

            .feature-item,
            .feature-item--rev {
                gap: 20px !important;
            }

            .feature-item__img {
                width: min(100%, 360px);
                flex: none;
                margin: 0 auto;
            }

            .donation-box {
                margin-top: 20px;
                padding: 24px 14px !important;
            }

            .flow__container,
            .flow__content {
                gap: 20px;
            }

            #message {
                display: block !important;
            }

            #message .message__image-col,
            #message .message__text-col {
                min-width: 0 !important;
                width: 100% !important;
            }

            #message .message__text-col>div {
                padding: 48px 20px !important;
            }
        }

        /* SP/tablet visibility fallback */
        @media screen and (max-width: 1280px) {

            .animate-ready,
            .animate-ready.is-animated {
                opacity: 1 !important;
                transform: none !important;
                visibility: visible !important;
            }

            main .section-title-wrapper::before,
            #message .section-title::before,
            #about .about-redesign .about__content::before {
                clip-path: inset(0 0 0 0);
                transform: translateX(0);
                opacity: 1;
            }

            #about.about,
            #donation.medical,
            #flow.flow {
                isolation: auto !important;
                overflow: visible !important;
            }

            #about.about::before,
            #donation.medical::before,
            #flow.flow::before {
                content: none !important;
                display: none !important;
            }

            #about.about {
                min-height: auto !important;
                background: url("../img/aboutspbg.png") center top / cover no-repeat !important;
            }

            #donation.medical {
                background:
                    linear-gradient(rgba(255, 255, 255, .84), rgba(255, 255, 255, .84)),
                    url("../img/donationbg.jpg") center center / cover no-repeat !important;
            }

            #flow.flow {
                background:
                    linear-gradient(rgba(255, 255, 255, .62), rgba(255, 255, 255, .62)),
                    url("../img/aboutspbg.png") center top / cover no-repeat !important;
            }

            #about.about>*,
            #donation.medical>*,
            #flow.flow>*,
            #features>*,
            #message>* {
                position: relative !important;
                z-index: 2 !important;
                visibility: visible !important;
                opacity: 1 !important;
            }
        }

        /* Requested finishing adjustments */
        body {
            background: url("../img/aboutbg.png") center center / cover no-repeat fixed;
        }

        .consultation__check-wrap i {
            display: none !important;
        }

        .consultation__check-wrap::before {
            content: "✓";
            display: grid;
            place-items: center;
            width: 24px;
            height: 24px;
            border-radius: 50%;
            background: var(--mint-accent);
            color: #fff;
            font-size: 16px;
            font-weight: 900;
            line-height: 1;
        }

        .custom-cta-section {
            background: transparent !important;
            background-image: none !important;
            box-shadow: none !important;
        }

        #flow-step-1 .flow__step-img img {
            content: url("../img/flow1.png");
        }

        #flow-step-2 .flow__step-img img {
            content: url("../img/flow2.png");
        }

        #flow-step-3 .flow__step-img img {
            content: url("../img/flow3.png");
        }

        #flow-step-4 .flow__step-img img {
            content: url("../img/flow4.png");
        }

        #flow-step-5 .flow__step-img img {
            content: url("../img/flow5.png");
        }

        #flow .flow__step-img img {
            width: 100% !important;
            height: auto !important;
            aspect-ratio: 1 / 1 !important;
            object-fit: contain !important;
            background: rgba(255, 255, 255, .72);
        }

        @media screen and (max-width: 768px) {
            body {
                background: url("../img/aboutspbg.png") center top / cover no-repeat;
            }

            .consultation__list {
                grid-template-columns: 1fr !important;
                gap: 8px !important;
            }

            .consultation__list li {
                min-height: 0 !important;
                padding: 12px 14px !important;
                flex-direction: row !important;
                justify-content: flex-start !important;
                gap: 10px !important;
                text-align: left !important;
            }

            .consultation__list li span {
                text-align: left !important;
                font-size: 13px !important;
            }

            .consultation__check-wrap {
                width: 28px;
                height: 28px;
            }

            .consultation__check-wrap::before {
                width: 22px;
                height: 22px;
                font-size: 14px;
            }

            #flow .flow__step-card {
                gap: 12px !important;
                padding: 18px 14px !important;
            }

            #flow .flow__step-card>div:first-child {
                flex: 0 0 auto !important;
                width: 100% !important;
                min-height: 0 !important;
            }

            #flow .flow__step-body,
            #flow .flow__step-body p {
                margin-bottom: 0 !important;
            }

            #flow .flow__step-header {
                margin-bottom: 12px;
                padding-bottom: 10px;
            }

            #flow .flow__step-img {
                flex: 0 0 auto !important;
                margin-top: 0 !important;
                width: 100% !important;
            }

            #flow .flow__step-img img {
                max-width: 220px !important;
            }

            #message .message__text-col {
                justify-content: center;
                text-align: center;
            }

            #message .message__text-col>div {
                max-width: 100% !important;
                margin: 0 auto;
                text-align: center;
            }

            #message .section-title,
            #message .section-title h2 {
                text-align: center !important;
            }
        }

        /* Brand text and unified body copy */
        .section-title::after {
            content: none !important;
            display: none !important;
        }

        .brand-text {
            display: block;
            color: var(--text-main);
            font-size: 16px;
            font-weight: 700;
            line-height: 1.4;
            text-decoration: none;
            white-space: nowrap;
        }

        .access__brand-text {
            margin: 0 0 30px;
            color: var(--text-main);
            font-size: 20px;
            font-weight: 700;
            line-height: 1.5;
        }

        .access__list li {
            display: grid;
            grid-template-columns: 112px minmax(0, 1fr);
            align-items: start;
            gap: 14px;
        }

        .access__label {
            width: 112px;
            margin-right: 0;
            box-sizing: border-box;
            text-align: center;
        }

        main p,
        main .about__text,
        main .feature-item__desc,
        main .consultation__list li span,
        main .consultation__bottom-text,
        main .donation-box__desc,
        main .flow__step-body,
        main .faq__answer p,
        main .message-text,
        main .access__list li {
            font-size: 16px !important;
        }

        @media screen and (max-width: 768px) {
            .brand-text {
                max-width: 245px;
                font-size: 12px;
                white-space: normal;
            }

            .access__brand-text {
                margin-bottom: 22px;
                font-size: 17px;
            }

            #message .message__image-col,
            #message .message__text-col {
                flex: 1 1 214px !important;
            }

            .access__list li {
                grid-template-columns: 92px minmax(0, 1fr);
                gap: 10px;
            }

            .access__label {
                width: 92px;
                padding-left: 8px;
                padding-right: 8px;
            }

            main p,
            main .about__text,
            main .feature-item__desc,
            main .consultation__list li span,
            main .consultation__bottom-text,
            main .donation-box__desc,
            main .flow__step-body,
            main .faq__answer p,
            main .message-text,
            main .access__list li {
                font-size: 14px !important;
            }

            #flow .flow__step-body,
            #flow .flow__step-body p {
                font-size: 14px !important;
            }

            .faq__question {
                display: grid !important;
                grid-template-columns: 28px minmax(0, 1fr) !important;
                align-items: start !important;
                width: 100% !important;
                font-size: 16px !important;
                line-height: 1.7 !important;
                word-break: normal !important;
            }
        }

        /* Smartphone-safe fixed backgrounds */
        @media (max-width: 767px),
               (max-width: 1024px) and (hover: none) and (pointer: coarse) {
            body {
                background: none !important;
                background-attachment: scroll !important;
            }

            #about.about,
            #donation.medical,
            #flow.flow,
            .custom-cta-section {
                position: relative !important;
                background: none !important;
                background-attachment: scroll !important;
                isolation: isolate !important;
                overflow: visible !important;
                -webkit-clip-path: inset(0);
                clip-path: inset(0);
            }

            #about.about::before,
            #donation.medical::before,
            #flow.flow::before,
            .custom-cta-section::before {
                content: '' !important;
                display: block !important;
                position: fixed;
                inset: 0;
                width: 100%;
                height: 100vh;
                height: 100dvh;
                z-index: 0;
                pointer-events: none;
            }

            #about.about::before,
            .custom-cta-section::before {
                background: url("../img/aboutspbg.png") center center / cover no-repeat;
            }

            #donation.medical::before {
                background:
                    linear-gradient(rgba(255, 255, 255, .84), rgba(255, 255, 255, .84)),
                    url("../img/donationbg.jpg") center center / cover no-repeat;
            }

            #flow.flow::before {
                background:
                    linear-gradient(rgba(255, 255, 255, .62), rgba(255, 255, 255, .62)),
                    url("../img/aboutspbg.png") center center / cover no-repeat;
            }

            #about.about > *,
            #donation.medical > *,
            #flow.flow > *,
            .custom-cta-section > * {
                position: relative !important;
                z-index: 1 !important;
            }
        }

        /* FV copy hierarchy */
        .fv-new__content-col {
            width: 46%;
            max-width: 720px;
        }

        .fv-new__logo {
            margin-bottom: 18px;
        }

        .fv-new__brand-title {
            margin: 0;
            color: var(--text-main);
            font-size: clamp(40px, 4.2vw, 68px);
            font-weight: 700;
            line-height: 1.3;
            letter-spacing: .04em;
            white-space: nowrap;
        }

        .fv-new__sub-copy {
            margin: 0;
            font-size: clamp(18px, 1.8vw, 27px) !important;
            font-weight: 600;
            line-height: 1.8 !important;
            letter-spacing: .08em;
        }

        .fv-new__image-wrapper {
            margin-right: 180px;
            overflow: visible;
        }

        .fv-new__bg-slides {
            overflow: hidden;
            border-radius: inherit;
        }

        .fv-new__rainbow {
            position: absolute;
            top: -42px;
            right: -78px;
            z-index: 4;
            width: 245px;
            height: auto;
            pointer-events: none;
            transform: rotate(5deg);
            filter: drop-shadow(0 6px 10px rgba(44, 62, 53, .08));
        }

        @media (max-width: 992px) {
            .fv-new__container {
                gap: 22px;
            }

            .fv-new__brand-title {
                font-size: clamp(26px, 7.8vw, 46px);
                line-height: 1.35;
                letter-spacing: .01em;
            }

            .fv-new__sub-copy {
                font-size: 15px !important;
                line-height: 1.8 !important;
            }

            .fv-new__image-wrapper {
                margin-right: auto;
            }

            .fv-new__rainbow {
                top: -24px;
                right: -30px;
                width: 145px;
            }
        }

        @media (max-width: 768px) {
            .fv-new {
                padding: 92px 0 52px !important;
                background: url("../img/aboutspbg.png") center top / cover no-repeat !important;
            }

            .fv-new__container {
                display: flex !important;
                flex-direction: column !important;
                align-items: center !important;
                justify-content: flex-start !important;
                gap: 24px !important;
            }

            .fv-new__content-col {
                order: 1;
                width: 100% !important;
                max-width: 100% !important;
                padding: 0 !important;
                text-align: center !important;
            }

            .fv-new__logo {
                justify-content: center !important;
                margin-bottom: 14px !important;
            }

            .fv-new__brand-title {
                width: 100%;
                font-size: clamp(24px, 7.1vw, 32px);
                line-height: 1.4;
                letter-spacing: 0;
                text-align: center;
                white-space: nowrap;
            }

            .fv-new__sub-copy {
                text-align: center !important;
                font-size: 14px !important;
                line-height: 1.8 !important;
            }

            .fv-new__image-col {
                order: 2;
                position: relative !important;
                inset: auto !important;
                width: 100% !important;
                height: auto !important;
                margin: 0 !important;
                padding: 0 !important;
                justify-content: center !important;
            }

            .fv-new__image-wrapper {
                width: min(82vw, 340px) !important;
                height: min(82vw, 340px) !important;
                margin: 0 auto !important;
                background: rgba(255, 255, 255, .32);
                box-shadow: 0 16px 35px rgba(44, 62, 53, .08);
            }

            .fv-new__bg-slides {
                opacity: .82;
            }

            .fv-new__rainbow {
                top: -20px;
                right: -18px;
                width: 132px;
            }
        }
