/* Elien SPA: shared layout and responsive components. */
:root {
    --wine: #8c1a4f;
    --violet: #4b49dc;
    --ink: #252525;
    --body-font: 'Montserrat', sans-serif;
    --heading-font: 'Merriweather', sans-serif;
    --section-heading-size: 48px;
    --consent-height: 0px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 150px; }
body { margin: 0; overflow-x: clip; color: #212529; background: #fff; font: 400 15px/1.5 var(--body-font); }
[hidden] { display: none !important; }
a { color: var(--violet); text-decoration: none; }
a:hover { color: #2523b3; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .55; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #32b9f3; outline-offset: 4px; }
figure, blockquote, p, h1, h2, h3, h4, h5, h6 { margin: 0; }
p { margin-bottom: 16px; }
img { max-width: 100%; vertical-align: middle; }
iframe { display: block; border: 0; width: 100%; }
h1 { font: 800 50px/1.2 'Roboto Slab', sans-serif; }
h2 { font: 900 50px/1.2 var(--heading-font); }
h3 { font: 700 var(--section-heading-size)/1 var(--heading-font); }
h4 { font: 900 20px/1.2 var(--heading-font); }
.icon { display: inline-block; width: 24px; height: 24px; flex-shrink: 0; vertical-align: middle; }
.container { width: 100%; max-width: 1140px; margin-inline: auto; padding-inline: 15px; }
.content-width { width: calc(100% + 15px); }
.two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.visually-hidden, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; top: 10px; left: 10px; padding: 12px; z-index: 110; color: #fff; background: #171717; }

/* Fixed masthead and language navigation. */
.site-header { position: fixed; inset: 0 0 auto; display: grid; grid-template-columns: 25% 50% 25%; height: 138px; padding: 10px 0; z-index: 50; color: #fff; background: var(--wine); }
.site-header a { color: #fff; }
.header-brand { position: relative; text-align: center; }
.brand-link { display: inline-block; margin-top: 5px; }
.brand-link img { display: block; width: 196px; height: 50px; object-fit: contain; }
.language-switcher { position: fixed; top: 70px; left: 110px; display: flex; gap: 20px; font-size: 10.5px; line-height: 15.75px; }
.desktop-navigation { padding: 35.4px 0 0 13.5px; }
.menu-list, .submenu { list-style: none; padding: 0; margin: 0; }
.desktop-navigation > .menu-list { display: flex; align-items: center; gap: 14px; }
.desktop-navigation > .menu-list > li { position: relative; }
.desktop-navigation a { display: block; font: 400 14px/1.4 'Roboto Condensed', sans-serif; text-transform: uppercase; }
.submenu { display: none; }
.header-contacts { margin: 5px 0 0; padding-left: 22.5px; font: normal 14px/8px var(--body-font); }
.header-contacts p { margin: 0 0 16px; }
.header-contacts img { display: inline-block; width: 14px; height: 14px; margin-right: 7px; object-fit: contain; }
.menu-toggle { display: none; }
.menu-overlay { position: fixed; inset: 0; z-index: 60; background: #0009; }
.mobile-menu { position: fixed; inset: 0 0 0 auto; z-index: 61; width: 300px; max-width: 80vw; padding: 50px 30px 30px; background: #444; color: #fff; overflow-y: auto; }
.mobile-menu a { display: block; padding: 12px 0; color: #fff; font-size: 16px; }
.menu-close { position: absolute; top: 12px; right: 12px; padding: 4px; color: #fff; background: none; border: 0; }
body.menu-open { overflow: hidden; }

/* Homepage hero. A single image needs no slider runtime. */
#main-content { padding-top: 130px; }
.hero { position: relative; height: max(720px, 100svh); margin-bottom: 30px; overflow: hidden; color: #fff; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.hero-content { position: relative; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 10px; text-align: center; transform: translateY(-25.5px); }
.hero-title { width: 100%; font: 800 48px/1.2 var(--heading-font); text-shadow: 1px 1px 3px #000; }
.hero-title a, .hero-subtitle a { display: block; color: #fff; }
.hero-subtitle { margin-top: 30px; font: 600 36px/1.5 var(--heading-font); text-shadow: 1px 1px 3px #000; }
.hero-actions { display: flex; justify-content: center; gap: 40px; margin-top: 80px; transform: translateX(25px); }
.hero-button { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 10px 30px; border: 1px solid #fff; color: #fff; background: var(--wine); font: 400 14px/21px 'Roboto', Arial, sans-serif; }
.hero-button .icon { width: 14px; height: 14px; stroke-width: 3; }
.hero-button:hover { color: #fff; background: #67143a; }
.whatsapp-intro { padding: 50px 15px 80px; text-align: center; }
.whatsapp-callout { display: inline-flex; align-items: center; justify-content: center; gap: 14px; }
.whatsapp-callout strong { padding: 22px 24px; border-radius: 8px; background: #ececec; color: #1f2b38; font: 700 18px/27px Arial, sans-serif; box-shadow: 0 1px 2px rgb(0 0 0 / 4%); }
.whatsapp-callout > span { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #2dc84d; color: #fff; box-shadow: 0 10px 20px #0002; }
.whatsapp-callout .icon { width: 34px; height: 34px; }
.whatsapp-contact { display: inline-flex; align-items: center; gap: 15px; text-align: left; }
.whatsapp-contact > .icon { width: 48px; height: 48px; color: #25d366; }
.whatsapp-contact { font: 400 21px/24px var(--body-font); }
.whatsapp-contact h6 { margin: 0; color: #252525; font: 300 21px/24px var(--body-font); }
.video-section { margin-bottom: 30px; }
.video-section h2 { margin-bottom: 20px; color: var(--wine); font-size: 40px; text-align: center; }
.video-frame { position: relative; aspect-ratio: 16 / 9; }
.video-frame iframe { position: absolute; inset: 0; height: 100%; }
.page-introduction { padding-block: 30px; color: var(--wine); text-align: center; }
.page-introduction h1 { margin-bottom: 20px; }
.page-introduction h2 { margin-bottom: 20px; }
.trust-section { padding-bottom: 10px; }
.trust-section img { display: block; margin: 0 auto 20px; }
.trust-badge { width: min(800px, 100%); height: auto; }
.studio-photo { width: 100%; height: auto; }

/* Introduction, image feature and service cards. */
.introduction { padding-block: 90px; }
.portrait-frame { align-self: center; border: 20px solid rgb(74 74 220 / 20%); transition: border-color .5s ease-in-out; }
.portrait-frame:hover { border-color: rgb(74 74 220 / 70%); }
.portrait-frame img { display: block; width: 100%; height: auto; transform: translate(45px, 45px); }
.intro-copy { padding-bottom: 20px; color: #5f5f5f; font-size: 14px; line-height: 27px; }
.intro-copy h3 { margin-bottom: 35px; color: var(--ink); }
.intro-copy p:last-child { margin-bottom: 0; }
.back-pain { position: relative; color: #fff; background: var(--wine); }
.back-pain-photo { position: absolute; inset: 0 0 0 calc(50% + 7.5px); background: url('/images/2018/07/17/massabge_spini_001.jpg') center / cover; }
.back-pain-container { width: calc(100% - 70px); max-width: 1065px; margin-inline: auto; }
.back-pain-copy { position: relative; width: 50%; padding: 120px 50px; }
.back-pain-copy h3 { margin-bottom: 8px; font-weight: 400; }
.back-pain-copy p a { color: #fff; font-weight: 700; }
.action-button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 15px; border: 0; color: #fff; background: linear-gradient(131deg, #8200ff, #4a4adc); font: 700 13px/1.25 var(--body-font); text-align: center; }
.action-button:hover { color: #fff; background: #4a4adc; }
.back-pain .action-button { margin-top: 8px; font-weight: 400; letter-spacing: 3px; }
.back-pain .action-button .icon { width: 13px; height: 13px; }
.services { padding-block: 40px; }
.services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.service-card { color: #5f5f5f; }
.service-card > img { display: block; width: 100%; max-width: 355px; height: auto; border: 5px solid #fff; }
.service-card h3 { margin: 30px 0 10px; color: #4a4a4a; font-size: 24px; line-height: 24px; }
.service-description { font-size: 14px; line-height: 27px; }

/* Booking form and the browser-native calendar. */
.booking-section { padding: 80px 0 50px; color: #fff; background: var(--wine); }
.booking-section h3 { margin-bottom: 30px; }
.benefits-grid { width: calc(100% + 15px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.benefit-item { min-height: 178px; padding: 0 15px; }
.benefit-item > .icon { display: block; width: 48px; height: 48px; margin-bottom: 10px; stroke-width: 2.5; }
.benefit-item h4 { margin-bottom: 8px; }
.benefits p a { color: #fff; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-field { padding-top: 22.5px; margin-bottom: 16px; }
.form-field input, .form-field textarea { display: block; width: 100%; border: 1px solid #ced4da; border-radius: 0; padding: 12px; color: #495057; background: #fff; font: 400 16px/24px var(--body-font); }
.form-field input::placeholder, .form-field textarea::placeholder { color: #6c757d; opacity: 1; }
.form-field textarea { resize: vertical; }
.phone-field { position: relative; }
.phone-field input { padding-left: 52px; padding-right: 6px; }
.form-field :is(input, textarea):focus { outline: 0; border-color: #80bdff; box-shadow: 0 0 0 .2rem rgb(0 123 255 / 25%); }
.phone-country { position: absolute; inset: 1px auto 1px 1px; z-index: 1; display: flex; align-items: center; width: 44.8px; padding: 0 6px 0 8px; border: 0; color: #555; background: transparent; }
.phone-country:hover, .phone-country[aria-expanded=true] { background: rgb(0 0 0 / 5%); }
.phone-country:focus-visible { outline: 1px solid #80bdff; outline-offset: -1px; }
.phone-country-arrow { margin-left: 6px; width: 0; height: 0; border-inline: 3px solid transparent; border-top: 4px solid #555; }
.phone-country[aria-expanded=true] .phone-country-arrow { transform: rotate(180deg); }
.phone-countries { position: absolute; z-index: 20; top: 100%; left: 0; width: max-content; max-width: min(420px, 100%); max-height: 200px; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 0; list-style: none; border: 1px solid #ccc; background: #fff; color: #111; box-shadow: 1px 1px 4px rgb(0 0 0 / 20%); font: 400 15px/22.5px var(--body-font); }
.phone-country-option { display: flex; align-items: center; gap: 6px; padding: 5px 10px; cursor: pointer; }
.phone-country-option.is-highlighted { background: rgb(0 0 0 / 5%); }
.phone-country-option .phone-country-name { flex: 1; }
.phone-country-option .phone-country-code { color: #999; }
.phone-country-divider { border-top: 1px solid #ccc; margin-block: 5px; }
.calendar-field { margin-bottom: 16px; }
.date-label { display: block; margin-bottom: 8px; }
.booking-calendar { display: inline-block; padding: 2px 8px 8px; width: 242px; min-height: 193px; max-width: 100%; color: #333; background: #fff; border: 1px solid #ccc; font: 12px/1.5 Arial, sans-serif; }
.booking-calendar.has-time { width: 310px; }
.calendar-header { display: flex; align-items: center; gap: 5px; min-height: 27px; }
.calendar-header button { display: grid; place-items: center; width: 20px; height: 24px; padding: 0; border: 0; color: #999; background: none; }
.calendar-header button .icon { width: 17px; height: 17px; }
.calendar-header .calendar-month { flex: 1; color: #111; font-size: 13px; font-weight: 700; text-align: center; }
.calendar-body { display: flex; gap: 8px; }
.calendar-grid { table-layout: fixed; width: 224px; max-width: 100%; border-collapse: collapse; }
.calendar-grid th { height: 22px; color: #999; background: #f1f1f1; font-weight: 700; }
.calendar-grid td { padding: 0; border: 1px solid #ddd; }
.calendar-grid td button { display: block; width: 100%; height: 25px; padding: 0; border: 0; color: #666; background: #f5f5f5; font: 12px/25px Arial, sans-serif; }
.calendar-grid td button:disabled { color: #ccc; background: #fafafa; opacity: 1; }
.calendar-grid td button.is-other-month { color: #ccc; }
.calendar-grid td button.is-today { color: #33aaff; font-weight: 700; }
.calendar-grid td button.is-selected { color: #fff; background: #33aaff; box-shadow: inset 0 0 0 1px #178fe5; font-weight: 700; }
.calendar-time { flex: 0 0 68px; width: 68px; padding: 0; border: 1px solid #ddd; border-radius: 0; color: #777; background: #f5f5f5; font: 12px/25px Arial, sans-serif; }
.calendar-time option { padding: 5px; }
.booking-form { padding-bottom: 16px; }
.form-submit { padding-top: 30px; margin-bottom: 30px; }
.submit-button { display: inline-block; padding: 6px 16px; border: 1px solid var(--violet); border-radius: 0; color: #fff; background: linear-gradient(131deg, #8200ff, #4a4adc); font: 400 16px/24px var(--body-font); }
.form-result { margin: 15px 0 0; font-size: 14px; line-height: 1.6; }

/* Reviews and footer. */
.reviews-section { position: relative; padding: 80px 0 70px; color: #fff; background: linear-gradient(rgb(140 26 79 / 50%), rgb(140 26 79 / 50%)), url('/images/2018/07/17/otzivi1.jpg') left bottom / auto repeat; }
.reviews-section h3 { margin-bottom: 30px; font-weight: 900; }
.reviews-carousel { position: relative; }
.reviews-track { position: relative; overflow: hidden; touch-action: pan-y; }
.review.is-leaving { position: absolute; inset: 0; }
.review blockquote { font: 300 32px/42px var(--body-font); }
.review blockquote p { margin: 0; }
.review a { color: #fff; }
.review figcaption { margin-top: 20px; font: 300 24px/36px var(--body-font); }
.review figcaption strong { font-weight: 400; }
.review-controls { position: absolute; right: 0; bottom: 0; display: flex; gap: 18.4px; }
.review-controls button { box-sizing: content-box; display: grid; place-items: center; width: 60px; height: 60px; padding: 0; border: 1px solid #fff; border-radius: 100px; color: #fff; background: transparent; opacity: .5; transition: color .3s ease-in-out, border-color .3s ease-in-out, opacity .3s ease-in-out; }
.review-controls button .icon { width: 12px; height: 32px; }
.review-controls button:is(:hover, :focus-visible) { opacity: 1; color: #4a4adc; border-color: #4a4adc; }
.map-section iframe { height: 450px; }
.site-footer { padding-top: 70px; color: #fff; background: #171717; font-size: 14px; line-height: 22.4px; }
.footer-grid { display: grid; grid-template-columns: 25% 75%; min-height: 260px; }
.footer-brand { padding: 0 15px; }
.footer-brand img { width: 196px; height: 50px; object-fit: contain; margin-bottom: 25px; }
.footer-brand p { max-width: 240px; }
.footer-contacts { padding: 0 15px; }
.footer-contacts p { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; }
.footer-contacts p > .icon { width: 26px; height: 26px; }
.footer-contacts a { color: #fff; }
.footer-socials { display: none; gap: 25px; }
.footer-socials .icon { width: 28px; height: 28px; }
.copyright { padding: 35px 0; border-top: 1px solid #ffffff1a; font-size: 14px; line-height: 21px; }
.scroll-top { position: fixed; right: 30px; bottom: 30px; z-index: 40; width: 35px; height: 35px; padding: 5px; border: 0; color: #fff; background: #333; }
.whatsapp-float { position: fixed; right: 20px; bottom: max(80px, calc(var(--consent-height) + 10px)); z-index: 45; display: flex; align-items: center; gap: 5px; padding: 10px 14px 10px 10px; border-radius: 999px; color: #111; background: #fff; box-shadow: 0 10px 25px rgb(0 0 0 / 15%); font-size: 14px; line-height: 1.2; text-align: center; }
.whatsapp-avatar { display: block; flex: 0 0 38px; width: 38px; height: 38px; }
.whatsapp-avatar .icon { display: block; width: 38px; height: 38px; }
.whatsapp-float strong { display: block; font-weight: 600; }
.whatsapp-float:hover { color: #111; }
.whatsapp-callout > span, .whatsapp-callout strong { transition: transform .2s ease, box-shadow .2s ease; }
.whatsapp-callout:hover > span, .whatsapp-callout:hover strong { transform: scale(1.03); }
.cookie-banner { position: fixed; inset: auto 0 0; z-index: 70; display: flex; justify-content: center; align-items: center; gap: 25px; padding: 15px 20px; background: var(--wine); color: #fff; }
.cookie-banner p { max-width: 600px; margin: 0; font-size: 14px; line-height: 22px; text-align: center; }
.cookie-banner a { color: #dd1d70; }
.cookie-actions { display: flex; gap: 12px; }
.cookie-actions button { padding: 10px 18px; border: 0; border-radius: 2px; font: 700 12px/16px Arial, sans-serif; text-transform: uppercase; }
.cookie-accept { color: #fff; background: #12d35f; }
.cookie-reject { color: var(--wine); background: #fff; }

/* Tablet. */
@media (min-width: 768px) and (max-width: 1199px) {
    .container { max-width: 960px; }
    .desktop-navigation > .menu-list { gap: 10px; }
    .desktop-navigation { padding-left: 0; }
    .desktop-navigation a { font-size: 12px; }
    .header-contacts { padding-left: 15px; font-size: 12px; }
    .language-switcher { left: 65px; }
}
@media (max-width: 991px) {
    .desktop-navigation { display: none; }
    .header-brand { position: absolute; inset: 10px auto auto 0; width: 25%; }
    .header-contacts { position: absolute; top: 15px; left: 33.333%; width: calc(50% - 20px); margin: 0; padding: 0; }
    .header-contacts p { line-height: 16px; margin-bottom: 5px; }
    .header-contacts img { width: 14px; margin-right: 5px; }
    .menu-toggle { display: flex; flex-direction: column; align-items: center; position: absolute; top: 23px; right: 20px; width: 60px; border: 0; padding: 0; color: #fff; background: none; font: 400 15px/18px var(--body-font); }
    .menu-bars { display: block; width: 32px; height: 5px; margin: 11px 0 20px; background: #fff; box-shadow: 0 -11px #fff, 0 11px #fff; }
    .brand-link img { width: 140px; height: auto; }
    .language-switcher { left: 20px; }
    .back-pain-copy { padding: 80px 40px; }
    .introduction { padding-block: 30px; }
}

/* Phone. */
@media (max-width: 767px) {
    .container { padding-inline: 25px; }
    h2 { font-size: 35px; }
    .two-columns { grid-template-columns: 1fr; }
    .hero { margin-bottom: 10px; }
    .hero-content { transform: translateY(4.5px); }
    .hero-title { max-width: 290px; font-size: 38.4px; line-height: 46.08px; }
    .hero-subtitle { max-width: 290px; font-size: 28.8px; line-height: 43.2px; }
    .hero-actions { flex-direction: column; align-items: center; gap: 40px; margin-top: 50px; transform: none; }
    .whatsapp-intro { padding-bottom: 60px; }
    .whatsapp-callout { gap: 14px; }
    .whatsapp-callout strong { padding: 22px 24px; font-size: 18px; }
    .whatsapp-contact h6 { font-size: 21px; }
    .trust-section { padding-inline: 10px; }
    .trust-section .content-width { width: 100%; }
    .trust-section img { margin-bottom: 10px; }
    .introduction { padding-block: 40px; }
    .intro-copy { padding-bottom: 16px; font-size: 13px; line-height: 16px; }
    .intro-copy p { margin-bottom: 5px; }
    .intro-copy p:last-child { margin-bottom: 0; }
    .intro-copy h3 { font-size: 19px; line-height: 30px; }
    .back-pain { padding: 0 10px 10px; }
    .back-pain-photo { position: static; height: 300px; }
    .back-pain-container { width: 100%; padding-inline: 25px; }
    .back-pain-copy { width: 100%; padding: 20px 0 40px; }
    .back-pain-copy h3 { margin-bottom: 16px; }
    .back-pain-copy p { font-size: 13px; line-height: 19.5px; }
    .action-button { padding: 10px 20px; font-size: 12px; line-height: 15px; }
    .back-pain .action-button { margin-top: 0; }
    .services { padding: 70px 10px 40px; }
    .services-grid { grid-template-columns: 1fr; gap: 30px; width: 100%; }
    .service-card h3 { margin-top: 30px; }
    .service-card:nth-child(3) { margin-top: 20px; margin-bottom: 10px; }
    .service-card:last-child .action-button { line-height: 18px; }
    .service-description p { margin-bottom: 10px; }
    .service-description { font-size: 13px; line-height: 16px; }
    .booking-section .two-columns { gap: 0; }
    .form-submit { margin-bottom: 10px; text-align: center; }
    .benefits-grid { width: 100%; grid-template-columns: 1fr; }
    .benefit-item { min-height: 140px; padding-inline: 25px 10px; }
    .benefits p { font-size: 13px; line-height: 16px; }
    .booking-calendar { max-width: 100%; }
    .reviews-section { padding-block: 40px; }
    .reviews-section .container { padding-inline: 10px; }
    .reviews-section .content-width { width: 100%; }
    .review blockquote { font-size: 14px; line-height: 24px; }
    .review blockquote p { font-size: 10px; line-height: 24px; }
    .review-controls { gap: 8.4px; }
    .review-controls button { width: 40px; height: 40px; }
    .review-controls button .icon { width: 9px; height: 22px; }
    .review figcaption { font-size: 16px; line-height: 24px; }
    .review-controls { bottom: 0; }
    
    .site-footer { padding-top: 40px; }
    .footer-grid { grid-template-columns: 1fr; padding-inline: 10px; }
    .footer-brand { min-height: 138px; }
    .footer-brand img { margin-bottom: 10px; }
    .footer-brand p { max-width: none; font-size: 13px; line-height: 16px; }
    .footer-contacts { min-height: 270px; padding: 0 15px; }
    .footer-contacts p { font-size: 13px; line-height: 16px; }
    .copyright { margin-inline: -10px; padding-block: 35px; }
    .cookie-banner { flex-direction: column; gap: 12px; padding: 15px; }
    .cookie-banner p { font-size: 12px; line-height: 18px; }
    .whatsapp-float { bottom: max(80px, calc(var(--consent-height) + 10px)); }
}
@media (max-width: 561px) {
    .header-brand { top: 10px; }
    .brand-link img { width: calc(25vw - 27px); max-width: 80px; height: auto; }
    .language-switcher { top: 58px; left: 5px; gap: 14px; font-size: 10.5px; }
    .header-contacts { top: 19px; left: calc(33.333% + 7px); width: calc(50% - 30px); font-size: 13px; }
    .opening-days { display: block; }
    .menu-toggle { right: 32px; }
    .header-contacts p { padding-right: 10px; }

}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Match the original hero entrance and staggered service-card reveals. */
@keyframes hero-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes hero-scale { from { transform: scale(0); } to { transform: scale(1); } }
@keyframes hero-blur { from { opacity: 0; filter: blur(10px); } to { opacity: 1; filter: blur(0); } }
@keyframes service-reveal { from { opacity: 0; transform: translateX(-100%); } to { opacity: 1; transform: translateX(0); } }
.hero.is-animating .hero-title { animation: hero-fade 1s both; animation-play-state: paused; }
.hero.is-animating .hero-subtitle { animation: hero-scale 1s .5s both; animation-play-state: paused; }
.hero.is-animating .hero-button { animation: hero-blur 1s .8s both; animation-play-state: paused; }
.hero.is-ready :is(.hero-title, .hero-subtitle, .hero-button) { animation-play-state: running; }
.service-card.reveal-pending { opacity: 0; }
.service-card.is-revealed { animation: service-reveal .8s both; }
.service-card.is-revealed:nth-child(2) { animation-delay: .2s; }
.service-card.is-revealed:nth-child(3) { animation-delay: .4s; }
@media (prefers-reduced-motion: reduce) {
    .hero.is-animating :is(.hero-title, .hero-subtitle, .hero-button), .service-card.is-revealed { animation: none; }
    .service-card.reveal-pending { opacity: 1; }
}

/* The original pages have language-specific typography and link treatments. */
.language-ru, .language-nn { --section-heading-size: 38px; }
body:not(.language-en) .portrait-frame { margin: 0 100px 30px 0; }
body:not(.language-en) .service-description { color: #212529; }
body:not(.language-en) .back-pain .action-button { letter-spacing: normal; }
.language-ru .page-introduction, .language-lv .page-introduction { color: #212529; }
.page-introduction h1, .page-introduction h2 { width: calc(100% + 15px); margin-bottom: 8px; }
.page-introduction h2 { color: var(--wine); }
.language-ru .page-introduction h1, .language-lv .page-introduction h1 { color: var(--wine); }
.language-ru .page-introduction h2 > span, .language-lv .page-introduction h2 > span { font-size: 32px; }
.language-lv .page-introduction h2 { font-size: 72px; line-height: 1.2; }
.language-ru .service-card .action-button, .language-lv .service-card .action-button { display: inline-block; position: relative; padding: 0 60px 0 0; color: #4a4adc; background: none; font-size: 14px; line-height: 17.5px; text-align: left; text-transform: uppercase; }
@media (max-width:767px) {
    body:not(.language-en) .portrait-frame { margin: 0 100px 30px 0; }
    .language-ru .back-pain-copy h3, .language-nn .back-pain-copy h3 { font-size: 38px; line-height: 38px; }
}
/* Original flag sprites, served locally; no telephone plugin runtime. */
.phone-flag { display:inline-block; flex:0 0 20px; width:20px; height:15px; box-shadow:0 0 1px #888; background:#dbdbdb url('/assets/phone/flags.png') no-repeat 20px 0; }
.phone-flag.flag-be {
    width: 18px; }
.phone-flag.flag-ch {
    width: 15px; }
.phone-flag.flag-mc {
    width: 19px; }
.phone-flag.flag-ne {
    width: 18px; }
.phone-flag.flag-np {
    width: 13px; }
.phone-flag.flag-va {
    width: 15px; }
.phone-flag.flag-ac {
    height: 10px;
    background-position: 0px 0px; }
.phone-flag.flag-ad {
    height: 14px;
    background-position: -22px 0px; }
.phone-flag.flag-ae {
    height: 10px;
    background-position: -44px 0px; }
.phone-flag.flag-af {
    height: 14px;
    background-position: -66px 0px; }
.phone-flag.flag-ag {
    height: 14px;
    background-position: -88px 0px; }
.phone-flag.flag-ai {
    height: 10px;
    background-position: -110px 0px; }
.phone-flag.flag-al {
    height: 15px;
    background-position: -132px 0px; }
.phone-flag.flag-am {
    height: 10px;
    background-position: -154px 0px; }
.phone-flag.flag-ao {
    height: 14px;
    background-position: -176px 0px; }
.phone-flag.flag-aq {
    height: 14px;
    background-position: -198px 0px; }
.phone-flag.flag-ar {
    height: 13px;
    background-position: -220px 0px; }
.phone-flag.flag-as {
    height: 10px;
    background-position: -242px 0px; }
.phone-flag.flag-at {
    height: 14px;
    background-position: -264px 0px; }
.phone-flag.flag-au {
    height: 10px;
    background-position: -286px 0px; }
.phone-flag.flag-aw {
    height: 14px;
    background-position: -308px 0px; }
.phone-flag.flag-ax {
    height: 13px;
    background-position: -330px 0px; }
.phone-flag.flag-az {
    height: 10px;
    background-position: -352px 0px; }
.phone-flag.flag-ba {
    height: 10px;
    background-position: -374px 0px; }
.phone-flag.flag-bb {
    height: 14px;
    background-position: -396px 0px; }
.phone-flag.flag-bd {
    height: 12px;
    background-position: -418px 0px; }
.phone-flag.flag-be {
    height: 15px;
    background-position: -440px 0px; }
.phone-flag.flag-bf {
    height: 14px;
    background-position: -460px 0px; }
.phone-flag.flag-bg {
    height: 12px;
    background-position: -482px 0px; }
.phone-flag.flag-bh {
    height: 12px;
    background-position: -504px 0px; }
.phone-flag.flag-bi {
    height: 12px;
    background-position: -526px 0px; }
.phone-flag.flag-bj {
    height: 14px;
    background-position: -548px 0px; }
.phone-flag.flag-bl {
    height: 14px;
    background-position: -570px 0px; }
.phone-flag.flag-bm {
    height: 10px;
    background-position: -592px 0px; }
.phone-flag.flag-bn {
    height: 10px;
    background-position: -614px 0px; }
.phone-flag.flag-bo {
    height: 14px;
    background-position: -636px 0px; }
.phone-flag.flag-bq {
    height: 14px;
    background-position: -658px 0px; }
.phone-flag.flag-br {
    height: 14px;
    background-position: -680px 0px; }
.phone-flag.flag-bs {
    height: 10px;
    background-position: -702px 0px; }
.phone-flag.flag-bt {
    height: 14px;
    background-position: -724px 0px; }
.phone-flag.flag-bv {
    height: 15px;
    background-position: -746px 0px; }
.phone-flag.flag-bw {
    height: 14px;
    background-position: -768px 0px; }
.phone-flag.flag-by {
    height: 10px;
    background-position: -790px 0px; }
.phone-flag.flag-bz {
    height: 14px;
    background-position: -812px 0px; }
.phone-flag.flag-ca {
    height: 10px;
    background-position: -834px 0px; }
.phone-flag.flag-cc {
    height: 10px;
    background-position: -856px 0px; }
.phone-flag.flag-cd {
    height: 15px;
    background-position: -878px 0px; }
.phone-flag.flag-cf {
    height: 14px;
    background-position: -900px 0px; }
.phone-flag.flag-cg {
    height: 14px;
    background-position: -922px 0px; }
.phone-flag.flag-ch {
    height: 15px;
    background-position: -944px 0px; }
.phone-flag.flag-ci {
    height: 14px;
    background-position: -961px 0px; }
.phone-flag.flag-ck {
    height: 10px;
    background-position: -983px 0px; }
.phone-flag.flag-cl {
    height: 14px;
    background-position: -1005px 0px; }
.phone-flag.flag-cm {
    height: 14px;
    background-position: -1027px 0px; }
.phone-flag.flag-cn {
    height: 14px;
    background-position: -1049px 0px; }
.phone-flag.flag-co {
    height: 14px;
    background-position: -1071px 0px; }
.phone-flag.flag-cp {
    height: 14px;
    background-position: -1093px 0px; }
.phone-flag.flag-cr {
    height: 12px;
    background-position: -1115px 0px; }
.phone-flag.flag-cu {
    height: 10px;
    background-position: -1137px 0px; }
.phone-flag.flag-cv {
    height: 12px;
    background-position: -1159px 0px; }
.phone-flag.flag-cw {
    height: 14px;
    background-position: -1181px 0px; }
.phone-flag.flag-cx {
    height: 10px;
    background-position: -1203px 0px; }
.phone-flag.flag-cy {
    height: 14px;
    background-position: -1225px 0px; }
.phone-flag.flag-cz {
    height: 14px;
    background-position: -1247px 0px; }
.phone-flag.flag-de {
    height: 12px;
    background-position: -1269px 0px; }
.phone-flag.flag-dg {
    height: 10px;
    background-position: -1291px 0px; }
.phone-flag.flag-dj {
    height: 14px;
    background-position: -1313px 0px; }
.phone-flag.flag-dk {
    height: 15px;
    background-position: -1335px 0px; }
.phone-flag.flag-dm {
    height: 10px;
    background-position: -1357px 0px; }
.phone-flag.flag-do {
    height: 14px;
    background-position: -1379px 0px; }
.phone-flag.flag-dz {
    height: 14px;
    background-position: -1401px 0px; }
.phone-flag.flag-ea {
    height: 14px;
    background-position: -1423px 0px; }
.phone-flag.flag-ec {
    height: 14px;
    background-position: -1445px 0px; }
.phone-flag.flag-ee {
    height: 13px;
    background-position: -1467px 0px; }
.phone-flag.flag-eg {
    height: 14px;
    background-position: -1489px 0px; }
.phone-flag.flag-eh {
    height: 10px;
    background-position: -1511px 0px; }
.phone-flag.flag-er {
    height: 10px;
    background-position: -1533px 0px; }
.phone-flag.flag-es {
    height: 14px;
    background-position: -1555px 0px; }
.phone-flag.flag-et {
    height: 10px;
    background-position: -1577px 0px; }
.phone-flag.flag-eu {
    height: 14px;
    background-position: -1599px 0px; }
.phone-flag.flag-fi {
    height: 12px;
    background-position: -1621px 0px; }
.phone-flag.flag-fj {
    height: 10px;
    background-position: -1643px 0px; }
.phone-flag.flag-fk {
    height: 10px;
    background-position: -1665px 0px; }
.phone-flag.flag-fm {
    height: 11px;
    background-position: -1687px 0px; }
.phone-flag.flag-fo {
    height: 15px;
    background-position: -1709px 0px; }
.phone-flag.flag-fr {
    height: 14px;
    background-position: -1731px 0px; }
.phone-flag.flag-ga {
    height: 15px;
    background-position: -1753px 0px; }
.phone-flag.flag-gb {
    height: 10px;
    background-position: -1775px 0px; }
.phone-flag.flag-gd {
    height: 12px;
    background-position: -1797px 0px; }
.phone-flag.flag-ge {
    height: 14px;
    background-position: -1819px 0px; }
.phone-flag.flag-gf {
    height: 14px;
    background-position: -1841px 0px; }
.phone-flag.flag-gg {
    height: 14px;
    background-position: -1863px 0px; }
.phone-flag.flag-gh {
    height: 14px;
    background-position: -1885px 0px; }
.phone-flag.flag-gi {
    height: 10px;
    background-position: -1907px 0px; }
.phone-flag.flag-gl {
    height: 14px;
    background-position: -1929px 0px; }
.phone-flag.flag-gm {
    height: 14px;
    background-position: -1951px 0px; }
.phone-flag.flag-gn {
    height: 14px;
    background-position: -1973px 0px; }
.phone-flag.flag-gp {
    height: 14px;
    background-position: -1995px 0px; }
.phone-flag.flag-gq {
    height: 14px;
    background-position: -2017px 0px; }
.phone-flag.flag-gr {
    height: 14px;
    background-position: -2039px 0px; }
.phone-flag.flag-gs {
    height: 10px;
    background-position: -2061px 0px; }
.phone-flag.flag-gt {
    height: 13px;
    background-position: -2083px 0px; }
.phone-flag.flag-gu {
    height: 11px;
    background-position: -2105px 0px; }
.phone-flag.flag-gw {
    height: 10px;
    background-position: -2127px 0px; }
.phone-flag.flag-gy {
    height: 12px;
    background-position: -2149px 0px; }
.phone-flag.flag-hk {
    height: 14px;
    background-position: -2171px 0px; }
.phone-flag.flag-hm {
    height: 10px;
    background-position: -2193px 0px; }
.phone-flag.flag-hn {
    height: 10px;
    background-position: -2215px 0px; }
.phone-flag.flag-hr {
    height: 10px;
    background-position: -2237px 0px; }
.phone-flag.flag-ht {
    height: 12px;
    background-position: -2259px 0px; }
.phone-flag.flag-hu {
    height: 10px;
    background-position: -2281px 0px; }
.phone-flag.flag-ic {
    height: 14px;
    background-position: -2303px 0px; }
.phone-flag.flag-id {
    height: 14px;
    background-position: -2325px 0px; }
.phone-flag.flag-ie {
    height: 10px;
    background-position: -2347px 0px; }
.phone-flag.flag-il {
    height: 15px;
    background-position: -2369px 0px; }
.phone-flag.flag-im {
    height: 10px;
    background-position: -2391px 0px; }
.phone-flag.flag-in {
    height: 14px;
    background-position: -2413px 0px; }
.phone-flag.flag-io {
    height: 10px;
    background-position: -2435px 0px; }
.phone-flag.flag-iq {
    height: 14px;
    background-position: -2457px 0px; }
.phone-flag.flag-ir {
    height: 12px;
    background-position: -2479px 0px; }
.phone-flag.flag-is {
    height: 15px;
    background-position: -2501px 0px; }
.phone-flag.flag-it {
    height: 14px;
    background-position: -2523px 0px; }
.phone-flag.flag-je {
    height: 12px;
    background-position: -2545px 0px; }
.phone-flag.flag-jm {
    height: 10px;
    background-position: -2567px 0px; }
.phone-flag.flag-jo {
    height: 10px;
    background-position: -2589px 0px; }
.phone-flag.flag-jp {
    height: 14px;
    background-position: -2611px 0px; }
.phone-flag.flag-ke {
    height: 14px;
    background-position: -2633px 0px; }
.phone-flag.flag-kg {
    height: 12px;
    background-position: -2655px 0px; }
.phone-flag.flag-kh {
    height: 13px;
    background-position: -2677px 0px; }
.phone-flag.flag-ki {
    height: 10px;
    background-position: -2699px 0px; }
.phone-flag.flag-km {
    height: 12px;
    background-position: -2721px 0px; }
.phone-flag.flag-kn {
    height: 14px;
    background-position: -2743px 0px; }
.phone-flag.flag-kp {
    height: 10px;
    background-position: -2765px 0px; }
.phone-flag.flag-kr {
    height: 14px;
    background-position: -2787px 0px; }
.phone-flag.flag-kw {
    height: 10px;
    background-position: -2809px 0px; }
.phone-flag.flag-ky {
    height: 10px;
    background-position: -2831px 0px; }
.phone-flag.flag-kz {
    height: 10px;
    background-position: -2853px 0px; }
.phone-flag.flag-la {
    height: 14px;
    background-position: -2875px 0px; }
.phone-flag.flag-lb {
    height: 14px;
    background-position: -2897px 0px; }
.phone-flag.flag-lc {
    height: 10px;
    background-position: -2919px 0px; }
.phone-flag.flag-li {
    height: 12px;
    background-position: -2941px 0px; }
.phone-flag.flag-lk {
    height: 10px;
    background-position: -2963px 0px; }
.phone-flag.flag-lr {
    height: 11px;
    background-position: -2985px 0px; }
.phone-flag.flag-ls {
    height: 14px;
    background-position: -3007px 0px; }
.phone-flag.flag-lt {
    height: 12px;
    background-position: -3029px 0px; }
.phone-flag.flag-lu {
    height: 12px;
    background-position: -3051px 0px; }
.phone-flag.flag-lv {
    height: 10px;
    background-position: -3073px 0px; }
.phone-flag.flag-ly {
    height: 10px;
    background-position: -3095px 0px; }
.phone-flag.flag-ma {
    height: 14px;
    background-position: -3117px 0px; }
.phone-flag.flag-mc {
    height: 15px;
    background-position: -3139px 0px; }
.phone-flag.flag-md {
    height: 10px;
    background-position: -3160px 0px; }
.phone-flag.flag-me {
    height: 10px;
    background-position: -3182px 0px; }
.phone-flag.flag-mf {
    height: 14px;
    background-position: -3204px 0px; }
.phone-flag.flag-mg {
    height: 14px;
    background-position: -3226px 0px; }
.phone-flag.flag-mh {
    height: 11px;
    background-position: -3248px 0px; }
.phone-flag.flag-mk {
    height: 10px;
    background-position: -3270px 0px; }
.phone-flag.flag-ml {
    height: 14px;
    background-position: -3292px 0px; }
.phone-flag.flag-mm {
    height: 14px;
    background-position: -3314px 0px; }
.phone-flag.flag-mn {
    height: 10px;
    background-position: -3336px 0px; }
.phone-flag.flag-mo {
    height: 14px;
    background-position: -3358px 0px; }
.phone-flag.flag-mp {
    height: 10px;
    background-position: -3380px 0px; }
.phone-flag.flag-mq {
    height: 14px;
    background-position: -3402px 0px; }
.phone-flag.flag-mr {
    height: 14px;
    background-position: -3424px 0px; }
.phone-flag.flag-ms {
    height: 10px;
    background-position: -3446px 0px; }
.phone-flag.flag-mt {
    height: 14px;
    background-position: -3468px 0px; }
.phone-flag.flag-mu {
    height: 14px;
    background-position: -3490px 0px; }
.phone-flag.flag-mv {
    height: 14px;
    background-position: -3512px 0px; }
.phone-flag.flag-mw {
    height: 14px;
    background-position: -3534px 0px; }
.phone-flag.flag-mx {
    height: 12px;
    background-position: -3556px 0px; }
.phone-flag.flag-my {
    height: 10px;
    background-position: -3578px 0px; }
.phone-flag.flag-mz {
    height: 14px;
    background-position: -3600px 0px; }
.phone-flag.flag-na {
    height: 14px;
    background-position: -3622px 0px; }
.phone-flag.flag-nc {
    height: 10px;
    background-position: -3644px 0px; }
.phone-flag.flag-ne {
    height: 15px;
    background-position: -3666px 0px; }
.phone-flag.flag-nf {
    height: 10px;
    background-position: -3686px 0px; }
.phone-flag.flag-ng {
    height: 10px;
    background-position: -3708px 0px; }
.phone-flag.flag-ni {
    height: 12px;
    background-position: -3730px 0px; }
.phone-flag.flag-nl {
    height: 14px;
    background-position: -3752px 0px; }
.phone-flag.flag-no {
    height: 15px;
    background-position: -3774px 0px; }
.phone-flag.flag-np {
    height: 15px;
    background-position: -3796px 0px; }
.phone-flag.flag-nr {
    height: 10px;
    background-position: -3811px 0px; }
.phone-flag.flag-nu {
    height: 10px;
    background-position: -3833px 0px; }
.phone-flag.flag-nz {
    height: 10px;
    background-position: -3855px 0px; }
.phone-flag.flag-om {
    height: 10px;
    background-position: -3877px 0px; }
.phone-flag.flag-pa {
    height: 14px;
    background-position: -3899px 0px; }
.phone-flag.flag-pe {
    height: 14px;
    background-position: -3921px 0px; }
.phone-flag.flag-pf {
    height: 14px;
    background-position: -3943px 0px; }
.phone-flag.flag-pg {
    height: 15px;
    background-position: -3965px 0px; }
.phone-flag.flag-ph {
    height: 10px;
    background-position: -3987px 0px; }
.phone-flag.flag-pk {
    height: 14px;
    background-position: -4009px 0px; }
.phone-flag.flag-pl {
    height: 13px;
    background-position: -4031px 0px; }
.phone-flag.flag-pm {
    height: 14px;
    background-position: -4053px 0px; }
.phone-flag.flag-pn {
    height: 10px;
    background-position: -4075px 0px; }
.phone-flag.flag-pr {
    height: 14px;
    background-position: -4097px 0px; }
.phone-flag.flag-ps {
    height: 10px;
    background-position: -4119px 0px; }
.phone-flag.flag-pt {
    height: 14px;
    background-position: -4141px 0px; }
.phone-flag.flag-pw {
    height: 13px;
    background-position: -4163px 0px; }
.phone-flag.flag-py {
    height: 11px;
    background-position: -4185px 0px; }
.phone-flag.flag-qa {
    height: 8px;
    background-position: -4207px 0px; }
.phone-flag.flag-re {
    height: 14px;
    background-position: -4229px 0px; }
.phone-flag.flag-ro {
    height: 14px;
    background-position: -4251px 0px; }
.phone-flag.flag-rs {
    height: 14px;
    background-position: -4273px 0px; }
.phone-flag.flag-ru {
    height: 14px;
    background-position: -4295px 0px; }
.phone-flag.flag-rw {
    height: 14px;
    background-position: -4317px 0px; }
.phone-flag.flag-sa {
    height: 14px;
    background-position: -4339px 0px; }
.phone-flag.flag-sb {
    height: 10px;
    background-position: -4361px 0px; }
.phone-flag.flag-sc {
    height: 10px;
    background-position: -4383px 0px; }
.phone-flag.flag-sd {
    height: 10px;
    background-position: -4405px 0px; }
.phone-flag.flag-se {
    height: 13px;
    background-position: -4427px 0px; }
.phone-flag.flag-sg {
    height: 14px;
    background-position: -4449px 0px; }
.phone-flag.flag-sh {
    height: 10px;
    background-position: -4471px 0px; }
.phone-flag.flag-si {
    height: 10px;
    background-position: -4493px 0px; }
.phone-flag.flag-sj {
    height: 15px;
    background-position: -4515px 0px; }
.phone-flag.flag-sk {
    height: 14px;
    background-position: -4537px 0px; }
.phone-flag.flag-sl {
    height: 14px;
    background-position: -4559px 0px; }
.phone-flag.flag-sm {
    height: 15px;
    background-position: -4581px 0px; }
.phone-flag.flag-sn {
    height: 14px;
    background-position: -4603px 0px; }
.phone-flag.flag-so {
    height: 14px;
    background-position: -4625px 0px; }
.phone-flag.flag-sr {
    height: 14px;
    background-position: -4647px 0px; }
.phone-flag.flag-ss {
    height: 10px;
    background-position: -4669px 0px; }
.phone-flag.flag-st {
    height: 10px;
    background-position: -4691px 0px; }
.phone-flag.flag-sv {
    height: 12px;
    background-position: -4713px 0px; }
.phone-flag.flag-sx {
    height: 14px;
    background-position: -4735px 0px; }
.phone-flag.flag-sy {
    height: 14px;
    background-position: -4757px 0px; }
.phone-flag.flag-sz {
    height: 14px;
    background-position: -4779px 0px; }
.phone-flag.flag-ta {
    height: 10px;
    background-position: -4801px 0px; }
.phone-flag.flag-tc {
    height: 10px;
    background-position: -4823px 0px; }
.phone-flag.flag-td {
    height: 14px;
    background-position: -4845px 0px; }
.phone-flag.flag-tf {
    height: 14px;
    background-position: -4867px 0px; }
.phone-flag.flag-tg {
    height: 13px;
    background-position: -4889px 0px; }
.phone-flag.flag-th {
    height: 14px;
    background-position: -4911px 0px; }
.phone-flag.flag-tj {
    height: 10px;
    background-position: -4933px 0px; }
.phone-flag.flag-tk {
    height: 10px;
    background-position: -4955px 0px; }
.phone-flag.flag-tl {
    height: 10px;
    background-position: -4977px 0px; }
.phone-flag.flag-tm {
    height: 14px;
    background-position: -4999px 0px; }
.phone-flag.flag-tn {
    height: 14px;
    background-position: -5021px 0px; }
.phone-flag.flag-to {
    height: 10px;
    background-position: -5043px 0px; }
.phone-flag.flag-tr {
    height: 14px;
    background-position: -5065px 0px; }
.phone-flag.flag-tt {
    height: 12px;
    background-position: -5087px 0px; }
.phone-flag.flag-tv {
    height: 10px;
    background-position: -5109px 0px; }
.phone-flag.flag-tw {
    height: 14px;
    background-position: -5131px 0px; }
.phone-flag.flag-tz {
    height: 14px;
    background-position: -5153px 0px; }
.phone-flag.flag-ua {
    height: 14px;
    background-position: -5175px 0px; }
.phone-flag.flag-ug {
    height: 14px;
    background-position: -5197px 0px; }
.phone-flag.flag-um {
    height: 11px;
    background-position: -5219px 0px; }
.phone-flag.flag-un {
    height: 14px;
    background-position: -5241px 0px; }
.phone-flag.flag-us {
    height: 11px;
    background-position: -5263px 0px; }
.phone-flag.flag-uy {
    height: 14px;
    background-position: -5285px 0px; }
.phone-flag.flag-uz {
    height: 10px;
    background-position: -5307px 0px; }
.phone-flag.flag-va {
    height: 15px;
    background-position: -5329px 0px; }
.phone-flag.flag-vc {
    height: 14px;
    background-position: -5346px 0px; }
.phone-flag.flag-ve {
    height: 14px;
    background-position: -5368px 0px; }
.phone-flag.flag-vg {
    height: 10px;
    background-position: -5390px 0px; }
.phone-flag.flag-vi {
    height: 14px;
    background-position: -5412px 0px; }
.phone-flag.flag-vn {
    height: 14px;
    background-position: -5434px 0px; }
.phone-flag.flag-vu {
    height: 12px;
    background-position: -5456px 0px; }
.phone-flag.flag-wf {
    height: 14px;
    background-position: -5478px 0px; }
.phone-flag.flag-ws {
    height: 10px;
    background-position: -5500px 0px; }
.phone-flag.flag-xk {
    height: 15px;
    background-position: -5522px 0px; }
.phone-flag.flag-ye {
    height: 14px;
    background-position: -5544px 0px; }
.phone-flag.flag-yt {
    height: 14px;
    background-position: -5566px 0px; }
.phone-flag.flag-za {
    height: 14px;
    background-position: -5588px 0px; }
.phone-flag.flag-zm {
    height: 14px;
    background-position: -5610px 0px; }
.phone-flag.flag-zw {
    height: 10px;
    background-position: -5632px 0px; }
.phone-flag.flag-np {
  background-color: transparent; }
@media (min-resolution:192dpi) { .phone-flag { background-image:url('/assets/phone/flags@2x.png'); background-size:5652px 15px; } }

/* Native equivalents of the original title/video section spacing. */
.video-section { margin-bottom: 0; padding-block: 20px; }
.video-section > h2, .video-section > .video-frame { width: calc(100% + 15px); }
.video-section h2 { margin-bottom: 30px; }
.page-introduction { padding-block: 20px; }
.language-ru .whatsapp-intro, .language-lv .whatsapp-intro { padding-block: 50px 70px; }
.whatsapp-contact { display: flex; align-items: flex-start; width: max-content; max-width: 100%; min-height: 52.8px; margin-inline: auto; }
.action-button { position: relative; isolation: isolate; transition: color .3s ease-in-out; }
.action-button::after { content: ''; position: absolute; z-index: -1; width: 70%; height: 50%; left: 15%; top: 55%; background: linear-gradient(131deg, #8200ff, #4a4adc); filter: blur(16px); opacity: 0; transition: opacity .3s ease-in-out; }
.action-button:hover { background: linear-gradient(131deg, #8200ff, #4a4adc); }
.action-button:is(:hover, :focus-visible)::after { opacity: 1; }
.language-ru .service-card .action-button::after, .language-lv .service-card .action-button::after { width: 40px; height: 1px; left: auto; right: 0; top: 50%; z-index: auto; background: #565656; filter: none; opacity: 1; transform: translateY(-50%); }
.language-ru .service-card .action-button:hover, .language-lv .service-card .action-button:hover { color: #8c1a4f; background: none; }
.language-lv .video-section h2 { margin-bottom: 8px; }
@media (max-width:767px) {
    .language-ru .whatsapp-intro, .language-lv .whatsapp-intro { padding: 50px 10px 60px; }
    .whatsapp-contact > .icon { width: 32px; height: 32px; margin-top: 9.6px; color: #4a4adc; }
    .video-section { padding: 20px 10px 30px; }
    .video-section > h2, .video-section > .video-frame { width: 100%; }
    .video-section h2, .language-lv .video-section h2 { font-size: 35px; line-height: 42px; margin-bottom: 10px; }
    .page-introduction { padding-inline: 10px; }
    .page-introduction h1, .page-introduction h2 { width: 100%; margin-bottom: 10px; }
    .language-lv .page-introduction h2 { font-size: 35px; line-height: 42px; }
    .language-ru .intro-copy p { margin-bottom: 16px; }
    .language-ru .intro-copy p:last-child { margin-bottom: 0; }
    .benefit-item { min-height: 0; padding-bottom: 32px; }
    .language-ru .services-grid, .language-lv .services-grid { row-gap: 10px; }
    .language-ru .service-card:first-child, .language-lv .service-card:first-child { margin-bottom: 20px; }
    .language-ru .service-card:nth-child(3), .language-lv .service-card:nth-child(3) { margin-top: 0; }
    .language-nn .service-card:nth-child(3) { margin-top: 10px; }
    .language-nn .service-card:last-child .action-button { line-height: 15px; }
}
.service-card:first-child > img { max-width: 100%; }
.service-card:not(:first-child) > img { box-sizing: content-box; width: 345px; max-width: calc(100% - 10px); }
body:not(.language-en) .back-pain .action-button { display: inline-block; }
body:not(.language-en) .back-pain .action-button .icon { width: .857142857em; height: 1em; }
@media (max-width:767px) {
    .language-lv .page-introduction h2 { line-height: 1.2; }
}
body:not(.language-en) .service-card { color: #212529; }
.back-pain .action-button { display: inline-block; }
.language-en .back-pain .action-button .icon { width: calc(.857142857em + 3px); height: 1em; }

/* About us: native HTML, with the original typography and language spacing. */
.about-page { padding-top:130px; font:400 15px/22.5px var(--body-font); }
.about-breadcrumb { display:flex; flex-wrap:wrap; list-style:none; margin:0 0 16px; padding:12px 16px; border-radius:4px; background:#e9ecef; }
.about-breadcrumb li:first-child { margin-right:0; }
.about-breadcrumb li:last-child { color:#6c757d; }
.about-breadcrumb li:last-child::before { display:inline-block; padding:0 8px; color:#6c757d; content:'/'; }
.about-container { width:100%; max-width:1140px; margin-inline:auto; padding-inline:15px; }
.about-content { width:calc(100% + 15px); display:flow-root; }
.about-title { padding-top:80px; }
.about-title h1 { font:800 72px/1.2 'Roboto Slab',sans-serif; color:var(--wine); margin:0 0 8px; }
.about-introduction { padding:40px 0 0; }
.language-lv .about-introduction { padding:50px 0 10px; }
.language-ru .about-introduction { padding:50px 0; }
.language-nn .about-introduction { padding:20px 0 0; }
.about-intro-copy,.about-story-copy { margin-bottom:30px; }
.about-page p { margin:0 0 16px; }
.about-page p:last-child { margin-bottom:0; }
.about-page strong { font-weight:700; }
.about-page a { color:#4b49ff; }
.about-page a:hover { color:#2523b3; }
.about-people { padding:50px 0; }
.language-en .about-people { padding-bottom:30px; }
.language-nn .about-people { padding-top:20px; }
.about-people-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.about-person { text-align:center; }
.about-person img { width:100%; height:auto; display:block; margin-bottom:20px; box-shadow:none; }
.about-person figcaption { margin-bottom:30px; font-size:18.666667px; line-height:28px; }
.about-signature { text-align:right; }
.about-booking-space { height:151px; background:var(--wine); }
.about-map { padding-bottom:6.5px; }
.about-map iframe { height:350px; }
@media(min-width:768px) and (max-width:1199px) { .about-container { max-width:960px; } }
@media(min-width:768px) and (max-width:991px) {
    .about-title h1 { margin-bottom:20px; }
    .about-intro-copy,.about-story-copy,.about-person figcaption { margin-bottom:20px; }
    .about-map { padding-bottom:20px; }
}
@media(max-width:767px) {
    .about-container { padding-inline:10px; }
    .about-content { width:100%; }
    .about-title h1 { margin-bottom:10px; }
    .about-page p { font-size:13px; line-height:16px; }
    .about-intro-copy,.about-story-copy { margin-bottom:16px; }
    .about-people-grid { grid-template-columns:1fr; gap:0; width:calc(100% - 15px); margin-left:15px; }
    .about-person img { margin-bottom:10px; }
    .about-person figcaption { margin-bottom:10px; }
    .about-map { padding-bottom:16.5px; }
}
.language-nn .about-signature span { font-size:16px; line-height:1.5; }
@media(max-width:767px) {
    .language-nn .about-signature span { line-height:16px; }
    .about-map { padding-inline:10px; }
}
