/* Контент услуг: галереи ap-photos-*, кнопки ap-btn-orange, цены ap-price-badge */

.service-page {
    overflow-x: clip;
}

/* Фото в тексте услуги — только контентные изображения, не иконки блоков */
.service-page .service-page__content.entry-content :is(
    p > img,
    p > picture img,
    p > a > img,
    .wp-block-image img,
    .wp-caption img,
    figure.wp-block-image img
) {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
    border-radius: 10px;
    margin: clamp(1rem, 2vw, 1.75rem) auto;
    vertical-align: top;
}

.service-page .service-page__content.entry-content p:has(> img:only-child),
.service-page .service-page__content.entry-content p:has(> picture:only-child) {
    margin-block: 0;
}

.service-page .service-page__content.entry-content p:has(> img:only-child) > img,
.service-page .service-page__content.entry-content p:has(> picture:only-child) picture,
.service-page .service-page__content.entry-content p:has(> picture:only-child) img {
    margin-block: clamp(1rem, 2vw, 1.75rem);
}

/* ACF-секции — на всю ширину, без бокового padding entry-content */
.service-page .service-page__content.entry-content > :is(
    .section,
    section.section,
    section[class*='main-'],
    section[class*='contacts-'],
    section[class*='catalog-']
) {
    width: calc(100% + 2 * fluid-type(320px, 1200px, 12px, 24px));
    max-width: calc(100% + 2 * fluid-type(320px, 1200px, 12px, 24px));
    margin-left: calc(-1 * fluid-type(320px, 1200px, 12px, 24px));
    margin-right: calc(-1 * fluid-type(320px, 1200px, 12px, 24px));
}

/* Не ломаем типографику и отступы внутри ACF-блоков */
.service-page .service-page__content.entry-content :is(
    .main-consultation,
    .main-gallerysections,
    .contacts-info,
    .video-reviews,
    .main-reviews,
    .reviews-list,
    .catalog-works-list,
    .main-prices,
    .main-faq
) :is(h1, h2, h3, h4, h5, h6, p, ul, ol, li) {
    margin-top: unset;
    margin-bottom: unset;
    font-size: unset;
    font-weight: unset;
    line-height: unset;
    color: unset;
    letter-spacing: unset;
    padding-left: unset;
}

/* ACF-блоки и иконки — сбрасываем только editorial-стили, размеры оставляем блокам темы */
.service-page .service-page__content.entry-content :is(
    .video-reviews,
    .main-reviews,
    .reviews-list,
    .review-card,
    .catalog-works-list,
    .portfolio-card,
    .service-portfolio,
    .main-prices,
    .main-faq,
    .main-consultation,
    .main-gallerysections,
    .contacts-info
) :is(img, picture, video) {
    aspect-ratio: unset;
    object-fit: unset;
    object-position: unset;
    margin: 0;
    border-radius: unset;
    vertical-align: unset;
}

.service-page .service-page__content.entry-content :is(
    [class*='__icon'],
    [class$='-icon']
) :is(img, picture) {
    aspect-ratio: unset;
    object-fit: unset;
    object-position: unset;
    margin: 0;
    border-radius: 0;
}

/* Галереи ap-photos-* — на всю ширину экрана, одинаковые ячейки */
.service-page__content :is(.ap-photos-1, .ap-photos-2, .ap-photos-3, .ap-photos-4, [class*='ap-photos-']) {
    --sp-gallery-gutter: max(20px, calc((100vw - 1480px) / 2));
    --sp-gallery-ratio: 4 / 3;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: var(--sp-gallery-gutter);
    padding-right: var(--sp-gallery-gutter);
    display: grid;
    gap: clamp(8px, 1.2vw, 14px);
    margin-top: clamp(1.25rem, 2.5vw, 2rem);
    margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
    box-sizing: border-box;
    align-items: stretch;
}

.service-page__content .ap-photos-1 {
    grid-template-columns: minmax(0, 1fr);
}

.service-page__content .ap-photos-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-page__content .ap-photos-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-page__content .ap-photos-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media screen and (min-width: 600px) {
    .service-page__content .ap-photos-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (min-width: 900px) {
    .service-page__content .ap-photos-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media screen and (max-width: 599px) {
    .service-page__content :is(.ap-photos-2, .ap-photos-3, .ap-photos-4) {
        grid-template-columns: minmax(0, 1fr);
    }
}

.service-page__content :is(.ap-photos-1, .ap-photos-2, .ap-photos-3, .ap-photos-4, [class*='ap-photos-']) br {
    display: none;
}

/* Выше специфичность, чем у article.css / entry-content.css (height: auto) */
.service-page .service-page__content.entry-content :is(.ap-photos-1, .ap-photos-2, .ap-photos-3, .ap-photos-4, [class*='ap-photos-']) img {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: var(--sp-gallery-ratio) !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    border-radius: 8px !important;
    margin: 0 !important;
    vertical-align: top !important;
}

.service-page__content .ap-btn-orange {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: linear-gradient(360deg, #f28c1c 0%, #f2bc50 100%);
    color: var(--color-white) !important;
    font-weight: 700;
    font-size: max(14px, min(0.454545vw + 12.5455px, 16px));
    line-height: 1.3;
    padding: 14px 28px;
    border-radius: 8px;
    text-decoration: none !important;
    text-underline-offset: 0;
    box-shadow: 0 5px 0 0 #ca6f00;
    transition: transform 0.15s, filter 0.2s;
}

.service-page__content .ap-btn-orange:hover {
    color: var(--color-white) !important;
    filter: brightness(1.05);
    transform: translateY(-1px);
}

.service-page__content .ap-btn-orange:active {
    transform: translateY(2px);
    box-shadow: 0 3px 0 0 #ca6f00;
}

.service-page__content h2 .ap-price-badge {
    display: inline-block;
    margin-left: 0.45em;
    padding: 0.15em 0.55em;
    background: linear-gradient(360deg, #f28c1c 0%, #f2bc50 100%);
    color: var(--color-white);
    border-radius: 6px;
    font-size: 0.62em;
    font-weight: 700;
    line-height: 1.35;
    vertical-align: middle;
    white-space: nowrap;
    letter-spacing: 0;
}

.service-page > .main-consultation,
#ap-form {
    scroll-margin-top: var(--page-offset-top, 120px);
}
