.servicepro-home > [class$="-hero"] { order: 0; min-width: 0; }
.servicepro-home > .servicepro-slider-hero { order: 0; min-width: 0; }
.servicepro-slider-hero { display: grid; gap: 16px; }
.servicepro-slider-hero--contained { width: var(--servicepro-shell); margin: 24px auto 0; }
.servicepro-slider-hero--split { grid-template-columns: minmax(0, 2.5fr) minmax(280px, 1fr); padding: 16px; background: var(--servicepro-surface); }
.servicepro-slider-hero > .servicepro-hero { min-width: 0; border-radius: var(--servicepro-image-radius); }
.servicepro-home .servicepro-slider-hero .servicepro-shell { width: min(var(--servicepro-content-width), calc(100% - 64px)); }
.servicepro-home .servicepro-slider-hero .servicepro-hero__content { width: 100%; }
/* Общая типографика и для полноширинного слайдера без внешней обёртки. */
.servicepro-home .servicepro-hero :is(h1, .servicepro-hero__title) {
    font-size: clamp(36px, 4.2vw, 64px);
    line-height: 1.08;
    letter-spacing: -.035em;
    overflow-wrap: break-word;
    text-wrap: balance;
}
.servicepro-home .servicepro-hero .servicepro-hero__lead { margin-block: 24px 30px; font-size: clamp(16px, 1.25vw, 18px); line-height: 1.6; }
.servicepro-slider-card { min-width: 0; display: flex; flex-direction: column; background: var(--servicepro-page); border-radius: var(--servicepro-image-radius); overflow: hidden; }
.servicepro-slider-card__image { position: relative; flex: 1 1 auto; min-height: 220px; }
.servicepro-slider-card__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.servicepro-slider-card__content { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: clamp(20px, 2vw, 32px); overflow-wrap: anywhere; }
.servicepro-slider-card__content h2 { margin: 0; font-size: clamp(24px, 2.2vw, 34px); line-height: 1.15; font-weight: 500; }
.servicepro-slider-card__content p { margin: 0; color: var(--servicepro-ink-soft); font-size: 16px; line-height: 1.55; }
.servicepro-slider-card__content .servicepro-button { display: inline-flex; gap: 16px; justify-content: space-between; max-width: 100%; white-space: normal; font-size: 14px; letter-spacing: .04em; }
.servicepro-slider-card--text { justify-content: center; }
@media (max-width: 900px) {
    .servicepro-slider-hero--split { grid-template-columns: minmax(0, 1fr); padding: 12px; }
    .servicepro-slider-hero--contained { margin-top: 16px; }
    .servicepro-home .servicepro-slider-hero .servicepro-shell { width: calc(100% - 40px); }
    .servicepro-slider-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
    .servicepro-slider-card__image { min-height: 240px; }
    .servicepro-slider-card--text { display: flex; }
    .servicepro-slider-card__image:only-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
}
@media (max-width: 480px) {
    .servicepro-slider-card { display: flex; }
    .servicepro-slider-card__image { min-height: 0; aspect-ratio: 3 / 2; flex: none; }
    .servicepro-home .servicepro-hero :is(h1, .servicepro-hero__title) { font-size: clamp(28px, 8.2vw, 36px); line-height: 1.12; }
    .servicepro-home .servicepro-hero .servicepro-hero__lead { margin-block: 20px 24px; }
}
@media (max-width: 760px) {
    /* Все слайды участвуют в высоте: длинный текст не обрезается и не сдвигает соседние блоки при переключении. */
    .servicepro-home .servicepro-hero__slides,
    .servicepro-home .servicepro-hero__slide { position: relative; inset: auto; display: grid; }
    .servicepro-home .servicepro-hero__slide { grid-area: 1 / 1; min-width: 0; }
    .servicepro-home .servicepro-hero.servicepro-hero--with-arrows .servicepro-hero__inner { padding-bottom: 96px; }
    .servicepro-home > .servicepro-hero,
    .servicepro-home > .servicepro-slider-hero,
    .servicepro-home > [class$="-hero"] { margin-bottom: 24px; }
}
.servicepro-home-heading { display: grid; gap: 18px; margin-bottom: 36px; max-width: 900px; }
.servicepro-home-heading .servicepro-eyebrow { margin: 0; }
.servicepro-home-heading h2 { margin: 0; font-size: clamp(32px, 4.2vw, 60px); line-height: 1.08; }
.servicepro-home-heading .servicepro-text-link { justify-self: start; }
.servicepro-home-heading h2 em { font-weight: inherit; }
.servicepro-home-number { color: var(--servicepro-accent); font-size: 14px; font-weight: 650; letter-spacing: .08em; }
/* Цена слева и действие справа находятся в одной строке во всех сферах. */
.servicepro-home :is(.servicepro-dance-direction, .servicepro-education-direction, .servicepro-clinic-direction, .servicepro-beauty-treatment, .servicepro-rental-options__grid) footer,
.servicepro-home .servicepro-service-card__body > div,
.servicepro-home .servicepro-auto-works__action {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 12px;
    width: 100%;
    min-width: 0;
}
.servicepro-home :is(.servicepro-dance-direction, .servicepro-education-direction, .servicepro-clinic-direction, .servicepro-beauty-treatment, .servicepro-rental-options__grid) footer > strong,
.servicepro-home .servicepro-service-card__body > div > strong,
.servicepro-home .servicepro-auto-works__action > strong {
    min-width: 0;
    text-align: left;
    overflow-wrap: anywhere;
}
.servicepro-home :is(.servicepro-dance-direction, .servicepro-education-direction, .servicepro-clinic-direction, .servicepro-beauty-treatment, .servicepro-rental-options__grid) footer > a,
.servicepro-home .servicepro-service-card__body > div > a,
.servicepro-home .servicepro-auto-works__action > a {
    min-width: 0;
    max-width: 60%;
    margin-inline-start: auto;
    justify-content: flex-end;
    text-align: right;
    white-space: normal;
    overflow-wrap: anywhere;
}
.servicepro-home .servicepro-auto-works__list > li { grid-template-columns: 32px minmax(0, 1fr); }
.servicepro-home .servicepro-auto-works__action { grid-column: 2; }
@media (max-width: 700px) {
    .servicepro-home .servicepro-auto-works__list > li { grid-template-columns: 26px minmax(0, 1fr); }
}
.servicepro-home-placeholder { display: grid; width: 100%; height: 100%; min-height: 160px; place-items: center; background: var(--servicepro-page); color: var(--servicepro-ink); font-size: 48px; }
.servicepro-gallery figure > a { display: block; height: 100%; }
@media (min-width: 761px) {
    .servicepro-gallery__grid--regular { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: none; }
    .servicepro-gallery__grid--regular figure { aspect-ratio: 4 / 3; }
    .servicepro-gallery__grid--regular figure:first-child { grid-row: auto; }
}
.servicepro-home-links { list-style: none; padding: 0; margin: 0; }
.servicepro-home-links li { border-top: 1px solid var(--servicepro-border); }
.servicepro-home-links a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 16px; padding: 20px 0; text-decoration: none; }
.servicepro-home-links small { grid-column: 1; font-size: 14px; color: var(--servicepro-ink-soft); }
.servicepro-home-links a > span:last-child { grid-column: 2; grid-row: 1 / 3; font-size: 24px; }
.servicepro-home :is([class$="-hero"], .servicepro-services-hero) > .servicepro-hero .servicepro-shell { width: min(var(--servicepro-content-width), calc(100% - 64px)); }
.servicepro-home :is([class$="-hero"], .servicepro-services-hero) > .servicepro-hero:only-child { grid-column: 1 / -1; }
.servicepro-home :is([class$="-hero"], .servicepro-services-hero) > .servicepro-hero .servicepro-hero__content { width: 100%; }
.servicepro-home:not(.servicepro-home--universal) .servicepro-experience__grid > *,
.servicepro-home:not(.servicepro-home--universal) .servicepro-section-heading > * { min-width: 0; }
.servicepro-home:not(.servicepro-home--universal) h2,
.servicepro-home:not(.servicepro-home--universal) h3 { overflow-wrap: anywhere; }
@media (max-width: 900px) {
    .servicepro-home :is([class$="-hero"], .servicepro-services-hero) > .servicepro-hero .servicepro-shell { width: calc(100% - 40px); }
    .servicepro-home-heading { gap: 14px; margin-bottom: 28px; }
}
.servicepro-resource-booking {
    display: inline-block;
    margin-block-start: 16px;
    margin-inline-start: 20px;
    color: inherit;
    font-size: 14px;
    line-height: 1.5;
    text-underline-offset: 5px;
}

/* Панели создаются только при наличии редактора администратора. */
.servicepro-home [data-servicepro-editable-block] { position: relative; }
.servicepro-block-tools { position: absolute; top: 8px; left: 8px; z-index: 12; display: flex; gap: 4px; padding: 4px; background: #fff; border: 1px solid #d5d3d0; border-radius: 8px; box-shadow: 0 2px 10px rgb(0 0 0 / 10%); color: #302d29; }
.servicepro-home .servicepro-block-tools__button { display: grid; place-items: center; flex: none; width: 40px; height: 40px; min-height: 40px; margin: 0; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #302d29; line-height: 1; cursor: pointer; }
.servicepro-home .servicepro-block-tools__button svg { display: block; width: 20px; height: 20px; }
.servicepro-home .servicepro-block-tools__button:hover { background: #eeece9; }
.servicepro-home .servicepro-block-tools__button:focus-visible { outline: 2px solid #302d29; outline-offset: 1px; }
.servicepro-home .servicepro-block-tools__button:disabled { opacity: .5; cursor: wait; }
.servicepro-block-tools__status:not(:empty) { position: absolute; left: 0; top: calc(100% + 6px); width: min(300px, calc(100vw - 48px)); padding: 12px; background: #fff; border: 1px solid #d5d3d0; border-radius: 4px; color: #302d29; font: 14px/1.5 var(--servicepro-sans); letter-spacing: normal; text-transform: none; box-shadow: 0 2px 10px rgb(0 0 0 / 10%); }
.servicepro-home > .servicepro-block-placeholder { width: var(--servicepro-shell); min-width: 0; margin: 12px auto; padding: 20px 20px 20px 120px; border: 1px dashed #aaa49b; border-radius: 8px; background: #faf9f7; color: #302d29; }
.servicepro-block-placeholder p { margin: 0 0 6px; font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
.servicepro-block-placeholder small { display: block; font-size: 12px; line-height: 1.5; color: #625d56; }
.servicepro-home > [data-servicepro-editable-block="slider"] > .servicepro-hero:first-child:nth-last-child(2) { grid-column: 1 / -1; }
@media (max-width: 480px) {
    .servicepro-home > .servicepro-block-placeholder { padding: 68px 16px 16px; }
}

/* Services beside the banner: shared by every homepage layout. */
.servicepro-services-hero { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(300px, 1fr); gap: 24px; width: var(--servicepro-shell); margin: 28px auto 0; }
.servicepro-services-hero > .servicepro-hero { border-radius: var(--servicepro-section-radius); }
.servicepro-clinic-hero__directions { min-width: 0; display: flex; flex-direction: column; align-items: start; gap: 24px; padding: clamp(24px, 3vw, 42px); background: var(--servicepro-surface); border: 1px solid var(--servicepro-border); border-radius: var(--servicepro-section-radius); }
.servicepro-clinic-hero__directions h2 { margin: 0; font-size: clamp(25px, 2.3vw, 34px); line-height: 1.2; }
.servicepro-clinic-hero__directions .servicepro-eyebrow { margin: 0; }
.servicepro-clinic-hero__directions .servicepro-home-links { width: 100%; }
.servicepro-clinic-hero__directions > .servicepro-button { margin-top: auto; }
.servicepro-services-hero.servicepro-services-hero--single { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 900px) { .servicepro-services-hero { grid-template-columns: minmax(0, 1fr); margin-top: 16px; } }

.servicepro-clinic-hero__directions[data-servicepro-editable-block] { padding-top: 72px; }

/* Hidden side panel controls must never reserve the banner's second column. */
.servicepro-services-hero > .servicepro-block-placeholder { grid-column: 1 / -1; min-width: 0; padding: 20px 20px 20px 120px; border: 1px dashed #aaa49b; border-radius: 8px; background: #faf9f7; color: #302d29; }
@media (max-width: 480px) { .servicepro-services-hero > .servicepro-block-placeholder { padding: 68px 16px 16px; } }

.servicepro-home #services .servicepro-service-photo { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; margin: 0 0 24px; flex: none; }
