/* Unified mobile layout contract for the home page and service/editorial pages. */
html,body{max-width:100%;overflow-x:clip}
img,svg,video{max-width:100%}
.original-header,.original-nav,.original-nav a,.shared-header,.shared-nav,.shared-nav a{min-width:0}
.original-nav,.shared-nav{flex-wrap:nowrap}
.original-nav a,.shared-nav a{white-space:nowrap}

@media(min-width:901px) and (max-width:1180px){
  .original-header{gap:12px;padding-right:14px;padding-left:14px}
  .original-logo{height:52px;max-width:170px}
  .original-nav a{padding-right:10px;padding-left:10px;font-size:13px}
  .original-book{padding-right:18px;padding-left:18px;font-size:14px}
}

@media(max-width:767px){
  body{min-width:0}
  main,section,article,header,footer,div{min-width:0}

  /* Home sections keep one predictable gutter on small screens. */
  #services,#afisha{padding-right:18px!important;padding-left:18px!important}
  [data-resp="two"],#afisha-grid{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
  }

  /* Service cards: no absolutely positioned arrow can collide with the label. */
  [data-service-card]{width:100%;min-width:0}
  [data-service-card] h3,[data-service-card] h3 a{
    display:block;
    width:100%;
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  [data-service-card] a[data-action]{
    display:flex!important;
    min-width:0!important;
    gap:12px!important;
    padding:16px 18px!important;
    justify-content:center!important;
  }
  [data-service-card] a[data-action] span{
    position:static!important;
    flex:0 0 auto;
    margin-left:2px;
    transform:none!important;
  }

  /* API event cards: replace desktop split grids with true mobile auto-layout. */
  #afisha-grid>[data-api-ticket],
  #afisha-grid>div>[data-api-ticket]{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    flex-direction:column!important;
  }
  #afisha-grid>div{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:none!important;
    width:100%!important;
    min-width:0!important;
    gap:18px!important;
  }
  #afisha-grid [data-api-ticket]>div:first-child{
    width:100%!important;
    min-width:0!important;
    height:220px!important;
    flex:0 0 220px!important;
  }
  #afisha-grid [data-api-ticket]>div:nth-child(2){
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    padding:24px 22px 26px!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:18px!important;
  }
  #afisha-grid [data-api-ticket]>div:nth-child(2)>div{
    width:100%!important;
    min-width:0!important;
  }
  #afisha-grid [data-api-ticket] h3,
  #afisha-grid [data-api-ticket] p{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    overflow:visible!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
    -webkit-line-clamp:unset!important;
  }
  #afisha-grid [data-api-ticket] h3{font-size:clamp(30px,9vw,40px)!important}
  #afisha-grid [data-api-ticket] button{width:100%;min-height:52px}

  /* Full afisha list uses cards instead of a squeezed desktop table. */
  [data-afisha-list]{padding-right:14px!important;padding-left:14px!important}
  [data-afisha-list]>div>div{
    display:grid!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    max-height:none!important;
    min-height:118px!important;
  }
  [data-afisha-list] .afo-date{
    grid-column:1;
    grid-row:1/3;
    min-width:0!important;
    padding:14px 10px!important;
    align-self:stretch;
  }
  [data-afisha-list] .afo-time,
  [data-afisha-list] .afo-name{
    min-width:0!important;
    padding:10px 14px!important;
    border-left:1px solid rgba(201,150,69,.12)!important;
  }
  [data-afisha-list] .afo-time{grid-column:2;grid-row:1;padding-bottom:3px!important}
  [data-afisha-list] .afo-name{grid-column:2;grid-row:2;padding-top:3px!important}
  [data-afisha-list] .afo-cap,[data-afisha-list] .afo-price,[data-afisha-list] img{display:none!important}

  /* Reusable service pages and article-like blocks. */
  .wrap{width:min(100% - 32px,1120px)}
  .hero{
    display:flex!important;
    width:min(100% - 32px,1120px)!important;
    padding:32px 0 64px!important;
    flex-direction:column!important;
    gap:28px!important;
    align-items:stretch!important;
  }
  .hero>div,.hero>img{width:100%!important;min-width:0!important}
  .hero>img{order:0!important;aspect-ratio:4/3!important}
  .hero h1{font-size:clamp(48px,15vw,68px);overflow-wrap:normal;word-break:normal;hyphens:none}
  .hero .lead{font-size:17px;line-height:1.6}
  .facts,.grid{grid-template-columns:minmax(0,1fr)!important}
  .fact,.card{min-width:0}
  .actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
  .actions .btn{width:100%;white-space:normal;text-align:center}
  .paper,.faq,.contact-strip{overflow:hidden}
  .footer-row{align-items:stretch!important}
  .footer-row .btn{width:100%}

  .article-head,.article-body,.blog-wrap{min-width:0}
  .article-head h1,.article-body h2{overflow-wrap:normal;word-break:normal;hyphens:none}
}

@media(max-width:380px){
  #services,#afisha{padding-right:14px!important;padding-left:14px!important}
  [data-service-card]>div:last-child{padding-right:18px!important;padding-left:18px!important}
  [data-service-card] h3{font-size:30px!important}
}
