.operation-page .subpage-content-sections { padding-block: 0; }
.operation-section { padding-block: var(--section-space); }
.operation-section > .site-container, .operation-section .site-container { max-width: var(--container-max); }
.operation-section .top-section-title { margin: 0 0 var(--section-heading-gap); color: var(--color-main); font-size: var(--section-heading-size); font-weight: 700; line-height: 1.5; letter-spacing: 0.02em; }
.operation-section .top-section-title::first-letter { color: var(--color-highlight); }
.operation-section h3 { margin: 0 0 1rem; color: var(--color-main); font-size: var(--front-subheading-size); line-height: 1.5; }
.operation-section p:not(.diagnosis-pricing-note) { line-height: 1.8; }
.operation-box { padding: 2.5rem; background: var(--color-bg-sub); border-radius: 8px; }
.operation-box ul, .operation-services ul, .operation-google ul { margin: 1.25rem 0; padding-left: 1.25em; line-height: 1.8; }
.operation-box p { margin: 1.5rem 0 0; }
.operation-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 4rem; margin-top: 2rem; }
.operation-services article { min-width: 0; }
.operation-services h3, .operation-price h4, .operation-google h4 { margin: 0 0 .75rem; color: var(--color-accent); font-size: var(--front-subheading-size); line-height: 1.5; }
.operation-services p { margin: 0.75rem 0 0; }
.operation-price { display: grid; grid-template-columns: 400px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; gap: 2.5rem; padding: 2.5rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-bg-sub); }
.operation-price-amount { margin: 0.75rem 0 0; color: var(--color-text-muted); }
.operation-price-amount strong { color: var(--color-highlight); font-size: clamp(1.75rem, calc(1rem + 1.666vw), 2rem); }
.operation-price-amount strong span { font-size: 1.125rem; }

/* 診断・SEO改善パックの料金カードと同じ見出し階層。 */
.operation-price-top h3 {
    color: var(--color-main);
    font-size: clamp(1.25rem, 1.8vw, 1.5rem);
    font-weight: 700;
    line-height: 1.5;
}

.operation-price-group h4 {
    color: var(--color-main);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.5;
}

.operation-google { background: var(--color-bg-sub); }
#initial-setup { scroll-margin-top: calc(var(--header-height) + 1rem); }
/* カード直下に寄せる（余白が大きいと SP で上カード末尾が見える） */
#google-business-profile-setup { scroll-margin-top: var(--header-height); }
.operation-google > .site-container > p,
.operation-google-grid article > p:not(.operation-price-amount) { font-size: var(--front-body-size); }
.operation-google-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 2rem; margin-top: 2rem; }
.operation-google-grid article { display: flex; flex-direction: column; min-width: 0; padding: 2rem; background: var(--color-bg); border: 1px solid var(--color-border); border-radius: 8px; }
.operation-google-grid article > h3 { margin-bottom: 0.5rem; }
.operation-google-grid article > p { margin: 0.75rem 0 0; }
.operation-google-grid article > .operation-price-amount { margin: 0; }
.operation-google-grid article > h4 { margin-top: 1.5rem; margin-bottom: 0.5rem; font-size: 1.125rem; }
.operation-google-grid article > ul { margin: 0 0 2rem; }
@media (max-width: 767px) {
 .operation-section { padding-block: 3.5rem; }
 .operation-box, .operation-price, .operation-google-grid article { padding-block: 1.5rem; padding-inline: 1rem; }
 .operation-services { grid-auto-flow: row; grid-template-columns: 1fr; grid-template-rows: none; gap: 3rem; }
}

/* 既存ページの小見出しと同じ左アクセントライン。 */
.operation-services h3 {
    margin: 0;
    padding-left: 1rem;
    border-left: 3px solid var(--color-accent);
}

.operation-price-top {
    display: flex;
    flex-direction: column;
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    min-height: 0;
}

.operation-price-terms {
    margin-top: 0.75rem;
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

.operation-price-terms p {
    margin: 0;
}

.operation-price-terms p + p {
    margin-top: 0.25rem;
    font-size: 0.8125rem;
}

.operation-price-groups {
    display: flex;
    flex-direction: column;
    grid-column: 2;
    grid-row: 1 / span 2;
    gap: 2rem;
    min-width: 0;
}

.operation-price-group h4 {
    margin: 0;
}

.operation-price-group :is(ul, div) {
    margin-top: 0.75rem;
}

.operation-price-group ul {
    margin-bottom: 0;
    padding-left: 1.25em;
    line-height: 1.8;
}

.operation-price-group p {
    margin: 0;
}

.operation-price-group p + p {
    margin-top: 0.75rem;
}

.operation-price-group .operation-price-inline-note {
    margin-top: 0.75rem;
}

.operation-price-option .operation-price-option-amount {
    margin-top: 0.75rem;
    color: var(--color-highlight);
    font-weight: 700;
}

.operation-price-group a {
    color: var(--color-accent);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.operation-price .operation-price-cta {
    grid-column: 1;
    grid-row: 2;
    align-self: end;
    justify-self: start;
    margin-top: 0;
}

.operation-price-cta {
    width: 20rem;
    max-width: 100%;
}

.operation-price-media {
    width: 400px;
    max-width: 100%;
    border-radius: 8px;
    background: var(--color-bg);
    color: var(--color-text-muted);
    font-size: 0.875rem;
    letter-spacing: 0.12em;
    box-shadow: var(--image-shadow);
}

.operation-price-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

.operation-price-top .operation-price-media {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 2rem;
    overflow: hidden;
}


.operation-google-grid article .top-button {
    align-self: center;
    margin-top: auto;
}

.operation-google-notes {
    margin-top: 1rem;
}

.operation-google-notes .diagnosis-pricing-note {
    max-width: none;
}

/* PCでは各カードが親グリッドの行を共有し、内容量が違っても各要素の開始位置を揃える。 */
@supports (grid-template-rows: subgrid) {
    @media (min-width: 1025px) {
        .operation-google-grid {
            grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
            column-gap: 2rem;
            row-gap: 0;
        }

        .operation-google-grid article {
            display: grid;
            grid-row: span 6;
            grid-template-rows: subgrid;
        }

        .operation-google-grid article > h3 {
            margin: 0 0 0.5rem;
        }

        .operation-google-grid article > .operation-price-amount {
            margin: 0 0 1.25rem;
        }

        .operation-google-grid article > p:not(.operation-price-amount) {
            margin: 0 0 1.5rem;
        }

        .operation-google-grid article > h4 {
            margin: 0 0 0.5rem;
        }

        .operation-google-grid article > ul {
            margin: 0 0 2rem;
        }

        .operation-google-grid article .top-button {
            align-self: center;
            justify-self: center;
            margin: 0;
        }
    }
}

@media (max-width: 1024px) {
    .operation-google-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 2rem;
    }

    .operation-price-top {
        display: grid;
        grid-column: auto;
        grid-row: auto;
        gap: 0;
    }

    .operation-price {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: none;
        gap: 2rem;
    }

    .operation-price-groups {
        grid-column: auto;
        grid-row: auto;
    }

    .operation-price-top > h3 {
        order: 1;
    }

    .operation-price-top .operation-price-amount {
        order: 2;
        margin: 0;
    }

    .operation-price-top .operation-price-terms {
        order: 3;
        margin-top: 0.75rem;
    }

    .operation-price-top .operation-price-media {
        order: 4;
        margin-top: 1.5rem;
        width: 100%;
        height: auto;
        max-height: 350px;
        overflow: hidden;
    }

    .operation-price-top .operation-price-media img {
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .operation-price .operation-price-cta {
        grid-column: auto;
        grid-row: auto;
        align-self: center;
        justify-self: center;
        margin-top: 2rem;
    }
}
