/* SERVICES-r41 — final width pass for services-app at 360 / 430 / 768 / 1024.
   Scope: .services-app-page + .services-app-sheet only.
   Purpose: close residual tablet text overlaps, overflow and cramped grid cases after r38-r40. */

.services-app-page,
.services-app-sheet{
  --svc-r41-line:1.28;
  --svc-r41-card-gap:12px;
}
.services-app-page :where(h1,h2,h3,p,b,strong,em,small,span,button,label,input,textarea),
.services-app-sheet :where(h1,h2,h3,p,b,strong,em,small,span,button,label,input,textarea){
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
  text-wrap:pretty;
}
.services-app-page :where(.services-app-tile,.services-app-list-card,.services-app-shop-card,.services-app-selected-card,.services-app-field,.services-app-confirm-row),
.services-app-sheet :where(.services-app-sheet__panel,.services-app-sheet__options,.services-app-sheet__options button,.services-app-sheet__custom){
  min-width:0;
  max-width:100%;
}
.services-app-tile,
.services-app-list-card,
.services-app-shop-card,
.services-app-selected-card,
.services-app-field,
.services-app-confirm-row,
.services-app-sheet__options button{
  height:auto !important;
  overflow:visible !important;
}
.services-app-tile__label,
.services-app-list-body strong,
.services-app-list-body em,
.services-app-list-body b,
.services-app-shop-body strong,
.services-app-shop-body em,
.services-app-shop-body small,
.services-app-selected-card b,
.services-app-selected-card em,
.services-app-field span,
.services-app-confirm-row strong,
.services-app-sheet__options button span{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  line-height:var(--svc-r41-line);
}
.services-app-list-body,
.services-app-shop-body{
  min-width:0;
  max-width:100%;
}
.services-app-search input,
.services-app-textarea,
.services-app-sheet__custom input{
  min-width:0;
  width:100%;
}
.services-app-bottom-cta,
.services-app-submit,
.services-app-secondary,
.services-app-sheet__custom button{
  min-height:48px;
  height:auto !important;
  white-space:normal;
  line-height:1.2;
}

/* 360px / narrow phone: prevent squeezed 3-column labels. */
@media (max-width:380px){
  .services-app-page{
    padding-left:10px;
    padding-right:10px;
  }
  .services-app-phone{
    width:100%;
    max-width:100%;
    padding-left:12px;
    padding-right:12px;
  }
  .services-app-topline,
  .services-app-nav-head,
  .services-app-section-row{
    gap:8px;
  }
  .services-app-home-head h1,
  .services-app-nav-head h1{
    font-size:clamp(19px,6vw,23px);
    line-height:1.12;
  }
  .services-app-grid,
  .services-app-page--home .services-app-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:9px;
  }
  .services-app-tile{
    min-height:84px !important;
    padding:10px 8px;
    gap:8px;
  }
  .services-app-tile__label{
    font-size:11.5px;
    line-height:1.18;
  }
  .services-app-list-card,
  .services-app-shop-card{
    grid-template-columns:44px minmax(0,1fr) 18px !important;
    gap:10px;
    padding:10px;
  }
  .services-app-list-icon,
  .services-app-shop-photo{
    width:44px;
    height:44px;
  }
  .services-app-selected-card{
    display:grid !important;
    grid-template-columns:38px minmax(0,1fr);
    align-items:start;
  }
  .services-app-selected-card em{
    grid-column:2;
    text-align:left;
  }
  .services-app-field{
    align-items:flex-start;
    gap:10px;
  }
}

/* 430px / large phone: allow text growth without vertical collision. */
@media (min-width:381px) and (max-width:767px){
  .services-app-page{
    padding-left:14px;
    padding-right:14px;
  }
  .services-app-phone{
    width:min(100%, 480px);
    max-width:480px;
  }
  .services-app-grid{
    gap:10px;
  }
  .services-app-tile{
    min-height:92px !important;
    padding:12px 9px;
  }
  .services-app-tile__label{
    font-size:12px;
    line-height:1.2;
  }
  .services-app-list-card,
  .services-app-shop-card{
    min-height:92px !important;
  }
  .services-app-field,
  .services-app-selected-card{
    min-height:54px !important;
    align-items:flex-start;
  }
}

/* Tablet portrait: wider, readable, no overlapping text. */
@media (min-width:768px) and (max-width:1023px){
  .services-app-page{
    padding:24px clamp(22px,4vw,38px) calc(92px + env(safe-area-inset-bottom));
  }
  .services-app-phone{
    width:min(100%, 900px) !important;
    max-width:900px !important;
    padding:clamp(24px,3vw,34px) !important;
    border-radius:30px;
    overflow:visible;
  }
  .services-app-page--home .services-app-phone{
    display:grid;
    grid-template-columns:minmax(280px,.9fr) minmax(340px,1.1fr);
    gap:24px;
    align-items:start;
  }
  .services-app-page--home .services-app-home-head,
  .services-app-page--home .services-app-search,
  .services-app-page--home .services-app-emergency-row,
  .services-app-page--home .services-app-nearby{
    grid-column:1;
  }
  .services-app-page--home .services-app-grid{
    grid-column:2;
    grid-row:1 / span 5;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px;
    align-content:start;
  }
  .services-app-home-head h1{
    font-size:clamp(30px,4vw,40px);
    line-height:1.08;
  }
  .services-app-search{
    min-height:58px;
    height:auto;
  }
  .services-app-emergency-row{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
  }
  .services-app-emergency-row > *,
  .services-app-emergency-row button{
    min-height:58px;
    height:auto;
    white-space:normal;
    line-height:1.2;
  }
  .services-app-tile{
    min-height:130px !important;
    padding:16px 12px;
    gap:12px;
    align-content:center;
  }
  .services-app-tile__icon{
    width:42px;
    height:42px;
  }
  .services-app-tile svg{
    width:36px;
    height:36px;
  }
  .services-app-tile__label{
    font-size:15px;
    line-height:1.22;
  }
  .services-app-page--category .services-app-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px;
    padding-bottom:96px;
  }
  .services-app-list-card,
  .services-app-shop-card{
    min-height:116px !important;
    padding:16px;
    align-items:flex-start;
  }
  .services-app-list-body,
  .services-app-shop-body{
    align-self:center;
    gap:6px;
  }
  .services-app-page--request .services-app-phone{
    display:grid;
    grid-template-columns:minmax(270px,.78fr) minmax(360px,1.22fr);
    gap:24px;
    align-items:start;
  }
  .services-app-page--request .services-app-nav-head,
  .services-app-page--request .services-app-selected-card,
  .services-app-page--request .services-app-form-note{
    grid-column:1;
  }
  .services-app-page--request .services-app-form{
    grid-column:2;
    grid-row:1 / span 5;
    gap:12px;
  }
  .services-app-selected-card{
    min-height:86px !important;
    align-items:flex-start;
  }
  .services-app-field{
    min-height:58px !important;
    padding-top:12px;
    padding-bottom:12px;
    align-items:flex-start;
  }
  .services-app-textarea{
    min-height:132px;
  }
  .services-app-sheet__panel{
    width:min(820px, calc(100vw - 48px)) !important;
    max-height:min(88dvh, 780px);
  }
  .services-app-sheet__options{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .services-app-sheet__options button{
    min-height:58px;
    padding:12px 14px;
  }
}

/* 1024px / tablet landscape and desktop preview. */
@media (min-width:1024px){
  .services-app-page{
    padding:32px clamp(28px,4vw,58px) calc(96px + env(safe-area-inset-bottom));
  }
  .services-app-phone{
    width:min(100%, 1160px) !important;
    max-width:1160px !important;
    padding:34px !important;
    border-radius:34px;
  }
  .services-app-page--home .services-app-phone{
    display:grid;
    grid-template-columns:minmax(330px,.42fr) minmax(560px,.58fr);
    gap:32px;
    align-items:start;
  }
  .services-app-page--home .services-app-home-head,
  .services-app-page--home .services-app-search,
  .services-app-page--home .services-app-emergency-row,
  .services-app-page--home .services-app-nearby{
    grid-column:1;
  }
  .services-app-page--home .services-app-grid{
    grid-column:2;
    grid-row:1 / span 5;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:14px;
    align-content:start;
  }
  .services-app-home-head h1{
    font-size:clamp(38px,3.8vw,52px);
    line-height:1.05;
  }
  .services-app-tile{
    min-height:138px !important;
    padding:18px 14px;
    gap:12px;
  }
  .services-app-tile__label{
    font-size:15.5px;
    line-height:1.22;
  }
  .services-app-page--category .services-app-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .services-app-list-card,
  .services-app-shop-card{
    min-height:120px !important;
    padding:18px;
  }
  .services-app-page--request .services-app-phone{
    display:grid;
    grid-template-columns:minmax(330px,.38fr) minmax(0,.62fr);
    gap:34px;
    align-items:start;
  }
  .services-app-page--request .services-app-nav-head,
  .services-app-page--request .services-app-selected-card,
  .services-app-page--request .services-app-form-note{
    grid-column:1;
  }
  .services-app-page--request .services-app-form{
    grid-column:2;
    grid-row:1 / span 5;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 14px;
  }
  .services-app-page--request .services-app-textarea,
  .services-app-page--request .services-app-submit,
  .services-app-page--request .services-app-form-note{
    grid-column:1 / -1;
  }
  .services-app-sheet__panel{
    width:min(940px, calc(100vw - 72px)) !important;
    max-height:min(88dvh, 820px);
  }
  .services-app-sheet__options{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .services-app-sheet__options button{
    min-height:62px;
  }
}

/* Low-height tablet landscape: reduce vertical pressure, never clip labels. */
@media (min-width:768px) and (max-height:760px){
  .services-app-page{
    padding-top:12px;
    padding-bottom:84px;
  }
  .services-app-phone{
    padding-top:20px !important;
    padding-bottom:20px !important;
  }
  .services-app-home-head h1{
    font-size:clamp(28px,3vw,38px);
  }
  .services-app-tile{
    min-height:112px !important;
    padding-top:12px;
    padding-bottom:12px;
  }
  .services-app-list-card,
  .services-app-shop-card{
    min-height:102px !important;
  }
  .services-app-sheet__panel{
    max-height:92dvh;
  }
  .services-app-sheet__options{
    max-height:calc(92dvh - 180px);
    overflow:auto;
  }
}
