/* Service Detail Page Styles */
        .page-header {
            background: #111;
            color: #fff;
            padding: 120px 0 60px;
            text-align: center;
        }

        .page-title {
            font-size: 2rem;
            font-weight: 700;
            margin-bottom: 16px;
        }

        .page-desc {
            color: #ccc;
            font-size: 1rem;
        }

        .service-detail-container {
            max-width: 900px;
            margin: 60px auto;
            padding: 0 24px;
        }

        .service-intro {
            text-align: center;
            margin-bottom: 60px;
        }

        .service-intro h2 {
            font-size: 1.8rem;
            margin-bottom: 24px;
        }

        .service-intro p {
            line-height: 1.8;
            color: #555;
        }

        .service-image-block {
            margin-bottom: 60px;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
        }

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

        .service-points {
            display: grid;
            gap: 40px;
            margin-bottom: 80px;
        }

        .point-item {
            display: flex;
            gap: 24px;
            align-items: flex-start;
        }

        .point-icon {
            width: 50px;
            height: 50px;
            background: #f0f0f0;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            flex-shrink: 0;
            color: #C5A065;
        }

        .point-content h3 {
            font-size: 1.3rem;
            margin-bottom: 12px;
        }

        .point-content p {
            line-height: 1.6;
            color: #666;
        }

        .price-table {
            width: 100%;
            border-collapse: collapse;
            margin-bottom: 60px;
            background: #fff;
            border: 1px solid #eee;
        }

        .price-table th,
        .price-table td {
            padding: 16px;
            border-bottom: 1px solid #eee;
            text-align: left;
        }

        .price-table th {
            background: #f9f9f9;
            font-weight: 700;
            width: 40%;
        }

        .custom-detail-section {
            margin: 90px 0;
            padding-top: 70px;
            border-top: 1px solid #e8e8e8;
        }

        .custom-section-heading {
            max-width: 760px;
            margin: 0 auto 34px;
            text-align: center;
        }

        .custom-section-label {
            display: inline-block;
            margin-bottom: 12px;
            color: #C5A065;
            font-size: 0.78rem;
            font-weight: 700;
            letter-spacing: 0.16em;
        }

        .custom-section-heading h2 {
            margin-bottom: 18px;
            font-size: 1.8rem;
            line-height: 1.45;
        }

        .custom-section-heading p {
            color: #555;
            line-height: 1.9;
            text-align: left;
        }

        .custom-gallery {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 16px;
            margin: 34px 0 40px;
        }

        .custom-gallery-item {
            position: relative;
            display: block;
            width: 100%;
            padding: 0;
            aspect-ratio: 4 / 3;
            overflow: hidden;
            border: 0;
            border-radius: 8px;
            background: #111;
            cursor: pointer;
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
        }

        .custom-gallery-item::after {
            content: "拡大";
            position: absolute;
            right: 10px;
            bottom: 10px;
            padding: 5px 10px;
            border: 1px solid rgba(255, 255, 255, 0.55);
            border-radius: 999px;
            background: rgba(17, 17, 17, 0.68);
            color: #fff;
            font-size: 0.72rem;
            letter-spacing: 0.08em;
            opacity: 0;
            transform: translateY(6px);
            transition: opacity 0.3s ease, transform 0.3s ease;
        }

        .custom-gallery-item img {
            width: 100%;
            height: 100%;
            display: block;
            object-fit: cover;
            transition: transform 0.45s ease, opacity 0.3s ease;
        }

        .custom-gallery-item:hover img,
        .custom-gallery-item:focus-visible img {
            transform: scale(1.06);
            opacity: 0.88;
        }

        .custom-gallery-item:hover::after,
        .custom-gallery-item:focus-visible::after {
            opacity: 1;
            transform: translateY(0);
        }

        .custom-gallery-item:focus-visible {
            outline: 3px solid #C5A065;
            outline-offset: 3px;
        }

        .custom-price-table {
            margin-bottom: 14px;
        }

        .price-note {
            margin: 0 0 20px;
            color: #777;
            font-size: 0.9rem;
            line-height: 1.8;
            text-align: right;
        }

        .custom-lightbox {
            position: fixed;
            inset: 0;
            z-index: 10000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 32px;
        }

        .custom-lightbox.is-open {
            display: flex;
        }

        .custom-lightbox-backdrop {
            position: absolute;
            inset: 0;
            background: rgba(0, 0, 0, 0.86);
        }

        .custom-lightbox-dialog {
            position: relative;
            z-index: 1;
            display: grid;
            place-items: center;
            width: min(100%, 1100px);
            min-height: min(78vh, 760px);
        }

        .custom-lightbox-image {
            max-width: 100%;
            max-height: 78vh;
            object-fit: contain;
            border-radius: 6px;
            box-shadow: 0 24px 80px rgba(0, 0, 0, 0.5);
        }

        .custom-lightbox-caption {
            margin-top: 14px;
            color: rgba(255, 255, 255, 0.82);
            font-size: 0.9rem;
            line-height: 1.6;
            text-align: center;
        }

        .custom-lightbox-close,
        .custom-lightbox-nav {
            position: absolute;
            z-index: 2;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1px solid rgba(255, 255, 255, 0.28);
            background: rgba(17, 17, 17, 0.74);
            color: #fff;
            cursor: pointer;
            transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
        }

        .custom-lightbox-close:hover,
        .custom-lightbox-nav:hover,
        .custom-lightbox-close:focus-visible,
        .custom-lightbox-nav:focus-visible {
            border-color: rgba(197, 160, 101, 0.75);
            background: rgba(197, 160, 101, 0.88);
            outline: none;
        }

        .custom-lightbox-close {
            top: 0;
            right: 0;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            font-size: 2rem;
            line-height: 1;
        }

        .custom-lightbox-nav {
            top: 50%;
            width: 48px;
            height: 72px;
            border-radius: 999px;
            font-size: 3rem;
            transform: translateY(-50%);
        }

        .custom-lightbox-prev {
            left: -72px;
        }

        .custom-lightbox-next {
            right: -72px;
        }

        body.custom-lightbox-open {
            overflow: hidden;
        }

        /* CTA Section styles removed */

        @media (max-width: 768px) {
            .point-item {
                flex-direction: column;
            }

            .service-detail-container {
                margin: 44px auto;
            }

            .service-intro {
                text-align: left;
            }

            .custom-detail-section {
                margin: 64px 0;
                padding-top: 48px;
            }

            .custom-section-heading {
                text-align: left;
            }

            .custom-section-heading h2 {
                font-size: 1.45rem;
            }

            .custom-gallery {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 10px;
            }

            .price-table th,
            .price-table td {
                display: block;
                width: 100%;
                padding: 12px 14px;
            }

            .price-table th {
                border-bottom: 0;
            }

            .price-note {
                text-align: left;
                font-size: 0.84rem;
            }

            .custom-lightbox {
                padding: 18px;
            }

            .custom-lightbox-dialog {
                min-height: 70vh;
                width: 100%;
            }

            .custom-lightbox-image {
                max-height: 72vh;
            }

            .custom-lightbox-close {
                top: -8px;
                right: -8px;
                width: 42px;
                height: 42px;
            }

            .custom-lightbox-nav {
                top: auto;
                bottom: -4px;
                width: 44px;
                height: 44px;
                font-size: 2.2rem;
                transform: none;
            }

            .custom-lightbox-prev {
                left: 12px;
            }

            .custom-lightbox-next {
                right: 12px;
            }

            .custom-lightbox-caption {
                padding: 0 58px;
                font-size: 0.78rem;
            }
        }

        @media (max-width: 420px) {
            .custom-gallery {
                grid-template-columns: 1fr;
            }
        }
