/* Content-led details: no extra headline lettering or synthetic photographs. */
.programs, .prices, .studios, .faq { position: relative; isolation: isolate; }
.programs { background: radial-gradient(ellipse at 4% 65%, #fff2e5 0, transparent 54%), radial-gradient(ellipse at 99% 70%, #e7faff 0, transparent 48%); }
.prices { background: radial-gradient(ellipse at 15% 50%, #fff6e9, transparent 67%); }
.extras { position: relative; overflow: clip; background: radial-gradient(ellipse at 12% 25%, #fff8ef, transparent 63%), radial-gradient(ellipse at 94% 60%, #dff8ff, transparent 60%), #f5fcff; }
.extras > .wrap { position: relative; }
.studios { background: radial-gradient(ellipse at 92% 52%, #fff1f1, transparent 59%); }
.faq { padding-top: 65px; background: radial-gradient(ellipse at 7% 18%, #e7faff, transparent 50%); }
.footer { background: radial-gradient(ellipse at 12% 10%, #165682 0%, transparent 65%), #063c69; overflow: clip; }
.footer > .wrap { position: relative; }
.footer-actions .primary img { filter: brightness(0) invert(1); }
.footer-legal { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 26px; margin-top: 35px; font-size: 13px; color: #d4e9f6; }
.footer-legal a { text-underline-offset: 4px; text-decoration: underline; }
.footer-bubble { width: 84px; right: -1%; top: 18px; opacity: .82; }
.extras-bubble { width: 68px; right: 3%; top: -20px; }
.extras-bubble .floating-bubble { animation-delay: -3s; }
.photographer-delivery { color: #486b84; font-size: 14px !important; margin-top: 8px; }
.extra-discount { width: fit-content; max-width: 100%; margin: 32px 0 0 auto; font-size: 15px; font-weight: 750; padding: 13px 20px; border-radius: 14px 24px 18px 24px; background: #fff; color: var(--ink); }
.studio-info { color: #4a6a80; line-height: 1.55; }
.studio-links { display: flex; align-items: center; gap: 26px; margin-top: 15px; font-size: 15px; font-weight: 850; }
.studio-links a { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; }
.studio-links svg, .review-studio > a svg { width: 20px; height: 20px; }
.photo-open[aria-busy=true]::after { content: 'Открываем фото…'; position: absolute; inset: auto 18px 18px; padding: 12px 16px; border-radius: 16px; background: #fff; color: var(--ink); font-size: 14px; }
.photo-open { position: relative; }
.photo-navigation[hidden] { display: none; }

.party-flow { margin-top: 10px; background: radial-gradient(ellipse at 16% 63%, #fff0e6 0, transparent 56%), radial-gradient(ellipse at 98% 42%, #f0fbff, transparent 53%); }
.flow-layout { position: relative; display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: start; }
.flow-heading { padding-top: 12px; }
.flow-heading h2 { line-height: 1.08; }
.flow-heading h2 span { color: var(--pink); }
.flow-heading p { font-size: 19px; line-height: 1.6; margin-top: 24px; }
.flow-paint { margin: 28px 0 0 4px; transform: rotate(-8deg); }
.flow-list { padding: 0; margin: 0; list-style: none; }
.flow-list li { position: relative; padding: 0 0 28px 38px; }
.flow-list li::before { content: ''; width: 12px; height: 12px; position: absolute; left: 1px; top: 8px; background: var(--pink); border-radius: 60% 40% 45% 55%; transform: rotate(-18deg); }
.flow-list li:nth-child(2)::before { background: var(--orange); }
.flow-list li:nth-child(3)::before { background: #25b8d9; }
.flow-list li::after { content: ''; position: absolute; top: 29px; bottom: 9px; left: 6px; border-left: 1px dashed #c3d9e4; }
.flow-list li:last-child { padding-bottom: 0; }
.flow-list li:last-child::after { display: none; }
.flow-list h3 { font-size: 26px; line-height: 1.15; }
.flow-list p { font-size: 16px; line-height: 1.6; margin-top: 9px; max-width: 490px; color: #49687f; }
.flow-bubble { left: 31%; bottom: 9%; width: 76px; }

.washing-section { background: radial-gradient(ellipse at 85% 44%, #ccf0ff, transparent 63%), radial-gradient(ellipse at 12% 80%, #fff9ed, transparent 55%), #f5fcff; overflow: clip; }
.wash-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 105px; align-items: start; }
.wash-copy h2 { line-height: 1.08; }
.wash-copy h2 span { color: var(--pink); }
.wash-copy > p { font-size: 19px; line-height: 1.6; margin-top: 24px; }
.packing-list { margin-top: 30px; border: 0; }
.packing-list h3 { font-size: 22px; font-weight: 850; line-height: 1.3; letter-spacing: -.015em; margin-bottom: 18px; }
.partner-list summary { font-size: 22px; padding-block: 18px; }
.packing-list ul { padding: 0; margin: 0; list-style: none; display: grid; gap: 12px; }
.packing-list li { position: relative; padding-left: 24px; font-size: 16px; line-height: 1.55; }
.packing-list li::before { content: ''; width: 8px; height: 8px; background: #29b8d9; position: absolute; top: 9px; left: 0; border-radius: 40% 60% 35% 55%; }
.wash-copy > .wash-note { font-size: 15px; color: #49687f; margin-top: 28px; max-width: 450px; }
.partner-list { margin-top: 22px; border-bottom: 0; }
.partner-list summary { font-size: 17px; }
.partner-list p, .partner-list ul { font-size: 14px; line-height: 1.6; margin: 0; }
.partner-list ul { list-style: none; padding: 12px 0 0; display: grid; gap: 12px; }
.partner-list li { display: grid; gap: 2px; }
.partner-list li a { font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
.partner-list li span { color: #4a6a80; }
.wash-demo { position: relative; width: 100%; max-width: 410px; justify-self: center; }
.wash-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-bottom: 16px; }
.wash-tabs button { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 7px; border: 0; border-radius: 22px; background: #ffffff70; padding: 12px 3px; min-height: 90px; font-size: 14px; font-weight: 800; color: var(--ink); }
.wash-tabs button[aria-selected=true] { background: #fff; box-shadow: 0 7px 19px #0e719c12; }
.wash-tabs img { width: 31px; height: 39px; object-fit: contain; }
.wash-photo { position: relative; aspect-ratio: 410/500; overflow: hidden; background: #fff; border-radius: 38px 22px 46px 20px; }
.wash-photo > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: contain; }
.wash-before { clip-path: inset(0 calc(100% - var(--split)) 0 0); }
.wash-labels { display: flex; justify-content: space-between; position: absolute; inset: 16px 16px auto; pointer-events: none; }
.wash-labels span { font-size: 12px; font-weight: 800; padding: 6px 9px; border-radius: 12px; background: #fffffff0; }
.wash-divider { position: absolute; top: 0; bottom: 0; left: var(--split); width: 2px; background: #fff; pointer-events: none; }
.wash-divider span { position: absolute; left: -21px; top: calc(50% - 22px); width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; font-size: 25px; background: #fff; box-shadow: 0 4px 15px #07396614; }
.comparison-label { display: grid; gap: 10px; margin-top: 18px; font-size: 13px; font-weight: 800; }
.comparison-label input { width: 100%; height: 24px; margin: 0; accent-color: #0e95c6; cursor: ew-resize; }
.wash-caption { font-size: 13px; line-height: 1.6; margin-top: 12px; }
.wash-disclaimer { font-size: 12px; line-height: 1.5; margin-top: 3px; color: #4b6d84; }
.wash-status { position: absolute; inset: 0; display: grid; place-items: center; padding: 25px; text-align: center; background: #f4fbff; font-size: 15px; }
.wash-status[hidden] { display: none; }
.wash-bubble-one { width: 80px; right: -25%; top: 15%; }
.wash-bubble-two { width: 42px; right: -20%; top: 32%; }
.wash-bubble-two .floating-bubble { animation-delay: -4s; }

.reviews-section { background: radial-gradient(ellipse at 14% 15%, #fff1eb, transparent 55%), #fff; }
.reviews-section h2 span { color: var(--pink); }
.review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.review-studio { background: #fff8ef; border-radius: 38px 24px 42px 20px; padding: 30px; min-width: 0; }
.review-studio:last-child { margin-top: 35px; background: #eefaff; border-radius: 22px 42px 24px 36px; }
.review-studio h3 { font-size: 28px; }
.review-studio > p { font-size: 15px; margin-top: 9px; color: #4b6d84; }
.review-load { display: block; min-height: 48px; border: 0; border-radius: 16px; margin-top: 22px; padding: 12px 20px; background: #fff; color: var(--ink); font-size: 15px; font-weight: 850; box-shadow: 0 7px 16px #07396608; }
.review-load:hover { background: #fcfeff; }
.review-load[hidden] { display: none; }
.review-slot { width: 100%; margin-top: 20px; border-radius: 20px; overflow: hidden; background: #fff; }
.review-slot[hidden] { display: none; }
.review-slot iframe { width: 100%; height: 530px; display: block; border: 0; }
.review-studio > a { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 800; min-height: 44px; margin-top: 18px; }

/* Small adapters around the unchanged ZoomZam visual component. */
[data-universal-lightbox] { color: #fff; font-family: Nunito, Arial, sans-serif; }
[data-universal-lightbox] button { border: 0; font-family: inherit; cursor: pointer; }
[data-universal-lightbox] img[role=button] { outline-offset: 5px; }
[data-universal-lightbox] [aria-label^="Фото "] { position: relative; width: 32px; height: 32px; min-width: 32px; border: 0; background: transparent !important; box-sizing: border-box; }
[data-universal-lightbox] [aria-label^="Фото "]::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #ffffff66; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
[data-universal-lightbox] [aria-label^="Фото "][aria-current=true]::after { width: 24px; border-radius: 10px; background: #fff; }
[data-universal-lightbox] [aria-label="Закрыть просмотр"] { width: 44px; height: 44px; }
.kp-gallery-state { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); text-align: center; border-radius: 20px; background: #092b45e6; padding: 22px; color: #fff; font-size: 15px; pointer-events: auto; }
.kp-gallery-state button { display: block; border-radius: 12px; border: 0; min-height: 44px; padding: 10px 16px; margin: 12px auto 0; color: var(--ink); background: #fff; }
@media (max-width: 950px) {
  .flow-layout { gap: 45px; }
  .flow-list h3 { font-size: 23px; }
  .flow-bubble { left: 27%; bottom: 10%; width: 50px; }
  .wash-layout { gap: 40px; }
  .wash-copy > p { font-size: 16px; }
  .packing-list h3 { font-size: 20px; }
  .packing-list li { font-size: 14px; }
  .wash-tabs button { font-size: 12px; }
  .wash-bubble-one { right: -18%; width: 54px; }
  .wash-bubble-two { right: -14%; width: 30px; }
}
@media (max-width: 700px) {
  .flow-layout, .wash-layout, .review-grid { grid-template-columns: 1fr; gap: 30px; }
  .flow-heading { padding-top: 0; }
  .flow-heading p { font-size: 16px; margin-top: 16px; }
  .flow-paint { display: flex; position: absolute; right: 0; top: 90px; transform: scale(.7) rotate(-10deg); transform-origin: right; }
  .flow-list h3 { font-size: 23px; }
  .flow-list li { padding-left: 28px; }
  .flow-list p { font-size: 15px; }
  .flow-bubble { left: auto; right: -2%; bottom: 1%; width: 40px; opacity: .75; }
  .wash-copy > p { font-size: 16px; }
  .packing-list { margin-top: 18px; }
  .packing-list h3 { font-size: 21px; }
  .packing-list li { font-size: 15px; }
  .partner-list summary { font-size: 16px; }
  .wash-demo { max-width: 350px; padding-inline: 4px; }
  .wash-tabs button { min-height: 82px; font-size: 13px; }
  .wash-bubble-one { right: -10%; top: 30%; width: 40px; }
  .wash-bubble-two { right: -5%; top: 44%; width: 26px; }
  .review-grid { gap: 22px; }
  .review-studio { padding: 24px; }
  .review-studio:last-child { margin-top: 0; }
  .reviews-section .section-heading > p { font-size: 15px; }
  .reviews-section h2 span { display: block; }
  .extras-bubble { width: 44px; top: -26px; right: -1%; }
  .extra-discount { margin-top: 27px; font-size: 13px; line-height: 1.6; padding: 14px 16px; }
  .photographer-delivery { font-size: 13px !important; }
  .studio-links { font-size: 14px; margin-top: 8px; }
  .footer-bubble { width: 54px; top: -23px; right: -2%; opacity: .7; }
  .footer-legal { justify-content: flex-start; font-size: 12px; gap: 16px; line-height: 1.6; }
  [data-universal-lightbox] [data-ios-safe-area="bottom"] { max-width: calc(100% - 32px); margin-inline: auto; flex-wrap: wrap; column-gap: 0; row-gap: 0; }
}
