/* v44: app-style homepage on phones (640 px and below), inspired by delivery apps: search pinned under the header,
   one swipeable grid of all services, short swipe rows instead of long stacked sections, details in a bottom sheet.
   Same colours, fonts and card styles as v28.css. Wider screens are unchanged. */
.m-svc,.m-loc,.m-search,.msheet,.msheet-bg,.ft-sum{display:none}
@media (max-width:640px){
  .h-sec{padding-top:1.25rem;padding-bottom:1.25rem}
  .h-h2{font-size:1.2rem;line-height:1.25}
  .h-lead{display:none}
  .h-badge{display:none}

  /* search pinned under the header */
  .m-search{display:block;padding:0 1rem .6rem;background:#fff}
  .m-search .h-q label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .m-search .h-search{padding:.2rem .25rem .2rem .7rem;border-width:1.5px;border-radius:12px;box-shadow:none;background:var(--bg-page)}
  .m-search .h-search:focus-within{background:#fff}
  .m-search .h-search input{min-height:40px;font-size:.95rem}
  .m-search .h-search .btn{min-height:38px;padding:0 .9rem;font-size:.9rem}
  .m-search .h-sug{max-height:60vh}

  /* hero: location and open status, title, trust pills */
  .h-hero{gap:.6rem;padding-top:.9rem;padding-bottom:.25rem}
  .h-pill,.h-sub,.h-side,.h-qhint{display:none!important}
  .m-loc{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8rem;font-weight:700;color:var(--blue-primary)}
  .m-loc>span{display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap}
  .m-loc .ostat{margin:0;font-size:.78rem;gap:.35rem;flex-wrap:nowrap;white-space:nowrap}
  .m-loc .ostat small{display:none}
  .m-loc .ostat{min-width:0}.m-loc .ostat span{overflow:hidden;text-overflow:ellipsis}
  .m-loc .ostat i{width:8px;height:8px}
  .h-title{font-size:1.4rem;line-height:1.25;letter-spacing:-.01em}
  .h-intro>.h-trust{flex-wrap:nowrap;overflow-x:auto;gap:.4rem;margin:0 -1.25rem;padding:0 1.25rem .1rem;scrollbar-width:none}
  .h-intro>.h-trust::-webkit-scrollbar,.m-grid::-webkit-scrollbar,.m-chips::-webkit-scrollbar{display:none}
  .h-trust span{flex:none;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-full);padding:.28rem .65rem;font-size:.76rem;white-space:nowrap}
  .h-trust svg{width:14px;height:14px}

  /* all services: chips + two-row swipe grid */
  #services{display:none}
  .m-svc{display:block;position:relative;z-index:3;padding-top:1rem;padding-bottom:.5rem}
  .m-hd .h-h2{font-size:1.1rem}
  .m-hd{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.6rem}
  .m-hd a{font-weight:700;font-size:.85rem;white-space:nowrap}
  .m-chips{display:flex;gap:.4rem;overflow-x:auto;margin:0 -1.25rem .75rem;padding:0 1.25rem;scrollbar-width:none}
  .m-chips button{flex:none;min-height:34px;padding:0 .8rem;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:#fff;color:var(--text-body);font:600 .8rem var(--font-sans);cursor:pointer;white-space:nowrap}
  .m-chips button[aria-pressed=true]{background:var(--blue-primary);border-color:var(--blue-primary);color:#fff}
  .m-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:22.5vw;gap:.8rem .5rem;overflow-x:auto;scroll-snap-type:x proximity;margin:0 -1.25rem;padding:.4rem 1.25rem .4rem;scrollbar-width:none}
  .m-grid.few{grid-auto-columns:calc((100vw - 3.5rem) / 3)}
  .m-tile{scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:0;background:none;border:0;font:inherit;cursor:pointer;text-align:center;color:var(--text-main);-webkit-tap-highlight-color:transparent}
  .m-tile .m-ic{position:relative;width:62px;height:62px;border-radius:18px;display:grid;place-items:center;transition:transform .15s}
  .m-tile:active .m-ic{transform:scale(.94)}
  .m-tile .m-ic svg{width:30px;height:30px}
  .m-tile .hot{position:absolute;top:-7px;right:-10px;font:800 .58rem var(--font-sans);letter-spacing:.02em;background:#B45309;color:#fff;border-radius:99px;padding:.1rem .35rem;border:2px solid #fff}
  .m-tile b{font-size:.74rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}
  .m-tile small{font-size:.68rem;font-weight:700;color:var(--blue-primary);margin-top:-.15rem}
  .m-more{font-size:.78rem;color:var(--text-muted);margin:.25rem 0 0}
  .m-more a{font-weight:700}

  #track .h-trackbar{padding:.55rem .75rem;margin-top:.5rem}
  #track .h-trackbar .tx{font-size:.85rem}
  #track .h-trackbar .tx span{display:block;font-size:.78rem}
  #track .h-ic{width:34px;height:34px}

  /* swipe rows (how it works, case page, safety, reviews) */
  .h-steps,.h-feat,.h-safe,.rvgrid{display:flex!important;gap:.6rem;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -1.25rem;padding:.15rem 1.25rem .5rem;scrollbar-width:none}
  .h-steps::-webkit-scrollbar,.h-feat::-webkit-scrollbar,.h-safe::-webkit-scrollbar,.rvgrid::-webkit-scrollbar{display:none}
  .h-steps::before{display:none!important}
  .h-steps li{flex:0 0 58%;scroll-snap-align:start;padding:.8rem;gap:.35rem}
  .h-steps li .hs-ic{width:42px;height:42px}
  .h-steps li .hs-ic svg{width:22px;height:22px}
  .h-steps strong{font-size:.92rem}
  .h-steps li>span:last-child{font-size:.8rem;line-height:1.4}
  #how .h-h2{margin-bottom:.7rem}

  .h-case{gap:.6rem}
  .h-case-txt{display:block}
  .h-case-txt .btn{display:none}
  .h-case-txt p{display:none}
  .h-case-txt .h-h2{margin:0}
  .h-fi{flex:0 0 52%;scroll-snap-align:start;flex-direction:column;gap:.45rem;padding:.8rem}
  .h-fi i{width:26px;height:26px}
  .h-fi strong{font-size:.88rem}.h-fi small{font-size:.78rem}

  .h-safe+p{margin-top:.3rem!important;font-size:.85rem}
  .h-safe .h-card{flex:0 0 58%;scroll-snap-align:start;flex-direction:column;gap:.5rem;padding:.8rem}
  .h-safe .h-ic{width:36px;height:36px;border-radius:10px}
  .h-safe .h-card strong{font-size:.9rem}.h-safe .h-card p{font-size:.8rem}

  .rv-head{gap:.5rem;margin-bottom:.7rem}
  .rv-head .h-lead{display:block;font-size:.85rem;margin:0}
  .rv-bar .btn{min-height:40px;font-size:.82rem;padding:0 .6rem}
  .rvcard{flex:0 0 80%;scroll-snap-align:start;padding:.85rem .95rem;gap:.4rem}
  .rvcard blockquote{font-size:.86rem}
  .rvmap iframe,.rvmap .pv-map{height:150px}

  .h-faq{gap:.4rem}
  .h-faq summary{padding:.7rem .9rem;font-size:.9rem;min-height:44px}
  .h-faq details p{font-size:.88rem}

  .h-help .h-h2{font-size:1.1rem;margin-bottom:.7rem}
  .h-help3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
  .h-help3 .h-card{flex-direction:column;text-align:center;gap:.35rem;padding:.7rem .3rem}
  .h-help3 .h-card strong{font-size:.78rem;line-height:1.25}
  .h-help3 .h-card small{display:none}
  .h-help3 .h-ic{width:38px;height:38px}
  .h-help .ostat{display:none}

  /* service details: bottom sheet */
  .msheet-bg{display:block;position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.45);opacity:0;pointer-events:none;transition:opacity .25s}
  .msheet{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;z-index:81;max-height:88vh;background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -12px 40px rgba(15,23,42,.25);transform:translateY(105%);transition:transform .32s cubic-bezier(.2,.8,.2,1);visibility:hidden}
  .msheet.open{transform:none;visibility:visible}.msheet-bg.open{opacity:1;pointer-events:auto}
  .msheet-hd{flex:none;display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem .25rem 1.1rem;position:relative}
  .msheet-hd::before{content:"";position:absolute;left:50%;top:6px;width:40px;height:4px;margin-left:-20px;border-radius:9px;background:var(--border-strong)}
  .msheet-hd span{font-size:.8rem;font-weight:700;color:var(--text-muted);padding-top:.5rem}
  .msheet-x{width:40px;height:40px;margin-top:.3rem;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-page);color:var(--text-main);display:grid;place-items:center;cursor:pointer}
  .msheet-body{overflow-y:auto;overscroll-behavior:contain;padding:0 1.1rem}
  .msheet .h-panel{display:flex;border:0;box-shadow:none;padding:0 0 calc(1rem + env(safe-area-inset-bottom,0px));position:static;gap:.85rem}
  .msheet .h-panel h3{font-size:1.25rem}
  .msheet .h-go{position:sticky;bottom:0;z-index:2;background:#fff;padding:.6rem 0 calc(.6rem + env(safe-area-inset-bottom,0px));margin:-.25rem 0 0;box-shadow:0 -10px 14px -10px rgba(15,23,42,.18)}
  html.msheet-on,html.msheet-on body{overflow:hidden}

  /* footer: short, link groups fold */
  .site-footer{padding-top:1.25rem}
  .footer-grid{gap:0!important}
  .footer-grid>div:first-child{margin-bottom:.75rem}
  .footer-grid>div:first-child>p,.footer-grid>div:first-child>div:last-child{display:none}
  .footer-grid>div:first-child>div:first-child{margin-bottom:0!important}
  .ft-grp{border-top:1px solid rgba(255,255,255,.12)}
  .ft-grp:last-child{border-bottom:1px solid rgba(255,255,255,.12)}
  .ft-sum{display:flex;justify-content:space-between;align-items:center;min-height:46px;cursor:pointer;list-style:none;color:#fff;font-weight:700;font-size:.92rem}
  .ft-sum::-webkit-details-marker{display:none}
  .ft-sum svg{transition:transform .25s}.ft-grp[open] .ft-sum svg{transform:rotate(180deg)}
  .ft-grp .footer-col-title{display:none}
  .ft-grp .footer-links{display:grid;grid-template-columns:1fr 1fr;gap:.1rem .75rem;padding-bottom:.75rem}
  .footer-disclaimer-box{font-size:.72rem;line-height:1.5;padding:.75rem;margin-top:1rem}
  .footer-bottom{padding-top:.75rem;padding-bottom:5.25rem;font-size:.75rem}
}
/* v44 motion (phones): tiles pop in, chips and taps respond, sheet content rises in, swipe rows nudge once */
@media (max-width:640px) and (prefers-reduced-motion:no-preference){
  .m-tile{animation:mPop .42s cubic-bezier(.2,.9,.3,1.2) both;animation-delay:calc(var(--i,0) * 35ms)}
  .m-tile .hot{animation:mWig .9s 1s ease both}
  .m-chips button{transition:background-color .2s,border-color .2s,color .2s,transform .15s}
  .m-chips button:active{transform:scale(.95)}
  .m-chips button[aria-pressed=true]{animation:mChip .3s ease}
  .h-steps li,.h-fi,.h-safe .h-card,.rvcard,.h-help3 .h-card,.h-trackbar{transition:opacity .55s ease,transform .25s ease}
  .h-steps li:active,.h-fi:active,.h-safe .h-card:active,.rvcard:active,.h-help3 .h-card:active,.h-trackbar:active{transform:scale(.97)}
  .msheet-bg{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .msheet.open .h-panel>*{animation:mRise .38s cubic-bezier(.2,.8,.2,1) both}
  .msheet.open .h-panel>*:nth-child(2){animation-delay:.04s}.msheet.open .h-panel>*:nth-child(3){animation-delay:.08s}
  .msheet.open .h-panel>*:nth-child(4){animation-delay:.12s}.msheet.open .h-panel>*:nth-child(n+5){animation-delay:.16s}
  .msheet.open .h-go{animation:none}
  .m-loc .ostat.on i{animation:hRing 1.8s ease-out infinite}
  .m-nudge{animation:mNudge 1.1s .2s ease-in-out both}
  .m-search .h-search input::placeholder{transition:opacity .25s}
  .m-search .h-search input.m-ph::placeholder{opacity:0}
}
@keyframes mPop{from{opacity:0;transform:translateY(10px) scale(.86)}to{opacity:1;transform:none}}
@keyframes mWig{0%,100%{transform:none}20%{transform:rotate(-8deg) scale(1.1)}40%{transform:rotate(6deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(2deg)}}
@keyframes mChip{0%{transform:scale(.92)}60%{transform:scale(1.05)}100%{transform:none}}
@keyframes mRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes mNudge{0%,100%{transform:none}35%{transform:translateX(-26px)}60%{transform:translateX(-26px)}}
@media (max-width:640px) and (prefers-reduced-motion:reduce){.msheet,.msheet-bg{transition:none}}
