/* The supplied phone mockups define a separate, readable mobile service view.
   Desktop cards and their morph controller remain unchanged. */
.ms-services { display: none; }
.ms-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

@media (max-width: 767px) {
  .sluzby-page .sl-section--hero { display: none !important; }
  .ms-services {
    display: block;
    padding: calc(var(--sl-nav-clearance, 88px) + 18px) 18px 40px;
    background: #fff;
    color: #0b0d10;
  }
  .ms-heading { max-width: 620px; margin: 0 auto 28px; text-align: center; }
  .ms-kicker {
    margin: 0 0 11px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  .ms-heading h1 {
    margin: 0;
    font-size: clamp(35px, 8.8vw, 55px);
    font-weight: 900;
    line-height: 1.04;
    letter-spacing: -.065em;
    text-wrap: balance;
  }
  .ms-heading h1 span { display: none; }
  .ms-heading > p:last-child { margin: 12px auto 0; color: #81818b; font-size: clamp(15px, 4vw, 19px); line-height: 1.35; }
  .ms-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    max-width: 620px;
    margin: 0 auto 18px;
  }
  .ms-tabs button {
    position: relative;
    isolation: isolate;
    min-width: 0;
    min-height: 48px;
    padding: 8px 3px;
    border: 2px solid #0b0d10;
    border-radius: 999px;
    background: #fff;
    color: #0b0d10;
    font: 900 clamp(11px, 3.1vw, 15px) Montserrat, sans-serif;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform 260ms cubic-bezier(.22, 1, .36, 1), box-shadow 260ms ease, filter 260ms ease;
  }
  .ms-tabs button:nth-child(2) { border-color: #00ef00; background: #00ef00; }
  .ms-tabs button:nth-child(3) { background: #0b0d10; color: #fff; }
  .ms-tabs button::after {
    position: absolute;
    left: 50%;
    bottom: 6px;
    width: 26px;
    height: 3px;
    border-radius: 3px;
    background: currentColor;
    content: "";
    opacity: 0;
    transform: translateX(-50%) scaleX(.2);
    transition: opacity 210ms ease, transform 300ms cubic-bezier(.22, 1, .36, 1);
  }
  .ms-tabs button:nth-child(3)::after { background: #00ef00; }
  .ms-tabs button[aria-selected="true"] { transform: translateY(-2px); box-shadow: 0 10px 22px #0002; }
  .ms-tabs button[aria-selected="true"]::after { opacity: 1; transform: translateX(-50%) scaleX(1); }
  .ms-tabs button:active { transform: translateY(0) scale(.97); }
  .ms-tabs button:focus-visible { outline: 3px solid #00d900; outline-offset: 2px; }
  .ms-panels { max-width: 620px; margin: 0 auto; touch-action: pan-y; }
  .ms-panel {
    overflow: hidden;
    padding: 12px;
    border: 1px solid #f0f0f0;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 14px 42px #0b150b12;
  }
  .ms-panel[hidden] { display: none; }
  .ms-media { position: relative; height: auto; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 18px; background: #122616; }
  .ms-photo { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
  .ms-media .ms-photo { position: absolute; inset: 0; width: 100%; height: 100%; }
  .ms-media--show {
    background-image: url('assets/podklady/01-show/children-foreground.png'), url('assets/podklady/01-show/christian-pointing.png'), url('assets/podklady/01-show/show-audience.webp');
    background-position: center bottom, 80% 48%, center;
    background-size: 100% auto, auto 120%, cover;
    background-repeat: no-repeat;
  }
  .ms-media--program {
    background-image: url('assets/podklady/02-program-na-mieru/christian-open-arms.png'), url('assets/podklady/02-program-na-mieru/udalosti/festival.webp');
    background-position: 77% 48%, center;
    background-size: auto 120%, cover;
    background-repeat: no-repeat;
  }
  .ms-media--show img, .ms-media--program img { opacity: 0; }
  .ms-person { position: absolute; z-index: 1; right: 1%; bottom: -20%; width: auto; height: 122%; max-width: none; object-fit: contain; filter: drop-shadow(0 8px 12px #0005); }
  .ms-media--program .ms-person { right: 3%; bottom: -23%; height: 128%; }
  .ms-panel-body { padding: 22px 10px 8px; }
  .ms-panel h2 {
    margin: 0 0 12px;
    font-size: clamp(33px, 10vw, 62px);
    font-weight: 900;
    letter-spacing: -.065em;
    line-height: .94;
    text-transform: uppercase;
  }
  .ms-panel-body > p:not(.ms-kicker):not(.ms-price) { margin: 0 0 12px; color: #5d6360; font-size: 15px; line-height: 1.48; }
  .ms-panel-body > .ms-lead { color: inherit !important; font-size: 17px !important; font-weight: 900; line-height: 1.3 !important; }
  .ms-features { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 0; margin: 20px 0; list-style: none; }
  .ms-features li { display: flex; align-items: center; gap: 9px; min-width: 0; font-weight: 900; }
  .ms-features li b { display: grid; flex: none; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #00ef00; color: #0b0d10; font-size: 23px; line-height: 1; }
  .ms-features li b svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
  .ms-features li span { font-size: 13px; hyphens: auto; }
  .ms-price { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin: 22px 0 14px; padding-top: 15px; border-top: 1px solid #e6e6e6; font-size: 22px; font-weight: 900; text-transform: uppercase; }
  .ms-panel--show .ms-price::before { width: 4px; height: 25px; background: #00ef00; content: ""; }
  .ms-price small { padding: 8px 12px; border-radius: 999px; background: #00ef00; color: #0b0d10; font-size: 11px; text-transform: none; }
  .ms-cta { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 12px; border-radius: 999px; background: #00ef00; color: #0b0d10; font-size: 12px; font-weight: 900; text-align: center; text-decoration: none; text-transform: uppercase; }
  .ms-cta span { font-size: 20px; line-height: 1; }
  .ms-cta:focus-visible { outline: 3px solid #0b0d10; outline-offset: 3px; }
  .ms-panel--program { background: #00ef00; border-color: #00ef00; }
  .ms-panel--program .ms-kicker, .ms-panel--program .ms-lead, .ms-panel--program .ms-panel-body > p { color: #0b0d10 !important; }
  .ms-panel--program .ms-cta { background: #0b0d10; color: #00ef00; }
  .ms-panel--program .ms-features li b { background: #0b0d10; color: #00ef00; }
  .ms-panel--promo { background: #0b0d10; color: #fff; border-color: #0b0d10; }
  .ms-panel--promo .ms-kicker, .ms-panel--promo h2 { color: #fff; }
  .ms-panel--promo h2::first-line { color: #00ef00; }
  .ms-panel--promo .ms-panel-body > p:not(.ms-kicker):not(.ms-price) { color: #b9bfc0; }
  .ms-panel--promo .ms-features li b { background: #00ef00; color: #0b0d10; }
  .ms-panel--promo .ms-price { border-color: #ffffff35; }
  .sluzby-page .sl-section--social { min-height: 0; padding-block: 40px 64px; background: #fff; background-image: none !important; }
}

@media (max-width: 360px) {
  .ms-features { gap: 9px; }
  .ms-features li { gap: 6px; }
  .ms-features li b { width: 34px; height: 34px; }
  .ms-features li b svg { width: 20px; height: 20px; }
  .ms-features li span { font-size: 11px; }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .ms-tabs button, .ms-tabs button::after { transition: none; }
}
