/* TimesPack Front Page Viewport & Overflow Fix v1
   Final authority loaded after legacy homepage layers. */
html,
body.tp-zone-home{

  width:100%;

  max-width:100%;

  margin:0;

  overflow-x:clip;

}


body.tp-zone-home,
body.tp-zone-home *{

  box-sizing:border-box;

}


body.tp-zone-home .tp-homepage-main,
body.tp-zone-home .tp-home-v3{

  width:100% !important;

  max-width:100% !important;

  margin:0 !important;

  min-width:0 !important;

}


body.tp-zone-home .tp-home-v3{

  min-height:calc(100svh - 76px) !important;

  overflow-x:clip !important;

  overflow-y:visible !important;

}


body.tp-zone-home .tp3-hero{

  width:min(100%,1480px) !important;

  max-width:100% !important;

  min-width:0 !important;

  margin:0 auto !important;

  padding-inline:clamp(22px,4vw,64px) !important;

  grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr) !important;

  gap:clamp(24px,4vw,58px) !important;

}


body.tp-zone-home .tp3-copy,
body.tp-zone-home .tp3-visual,
body.tp-zone-home .tp3-strip,
body.tp-zone-home .tp3-strip-item{

  min-width:0 !important;

  max-width:100% !important;

}


body.tp-zone-home .tp3-copy h1,
body.tp-zone-home .tp3-copy h2,
body.tp-zone-home .tp3-desc{

  overflow-wrap:anywhere;

}


body.tp-zone-home .tp3-visual{

  width:min(100%,600px) !important;

  margin-inline:auto !important;

}


body.tp-zone-home .tp3-feature{

  max-width:min(285px,48%) !important;

}


body.tp-zone-home .tp3-strip{

  width:min(1380px,calc(100% - clamp(24px,6vw,80px))) !important;

  margin-inline:auto !important;

}


/* A normal desktop viewport shows the complete hero and trust strip without
   creating a needless page scrollbar. Short screens may scroll vertically. */
@media (min-width:901px) and (min-height:700px){

  body.tp-zone-home .tp-homepage-main{

    min-height:calc(100svh - 76px) !important;

  }

  body.tp-zone-home .tp3-hero{

    min-height:clamp(530px,calc(100svh - 190px),690px) !important;

    padding-block:clamp(24px,4vh,50px) clamp(18px,2.5vh,32px) !important;

  }

  body.tp-zone-home .tp3-strip{

    margin-block:0 14px !important;

  }

}


/* v2 — compact laptop viewport (including Edge at 974x732).
   Legacy v3 rules switch presentation near 1050px;
 explicitly reset every
   dimension that can make the hero/strip overlap at that width. */
@media (min-width:901px) and (max-width:1100px) and (min-height:650px){

  body.tp-zone-home .tp-homepage-main{

    height:calc(100svh - 76px) !important;

  }

  body.tp-zone-home .tp-home-v3{

    grid-template-rows:minmax(0,1fr) 88px !important;

  }

  body.tp-zone-home .tp3-hero{

    grid-template-columns:minmax(0,1.05fr) minmax(350px,.95fr) !important;

    gap:16px !important;

    padding:18px 24px 10px !important;

  }

  body.tp-zone-home .tp3-copy{

    align-self:center !important;

    text-align:left !important;

  }

  body.tp-zone-home .tp3-eyebrow{

    margin-bottom:12px !important;

    font-size:11px !important;

  }

  body.tp-zone-home .tp3-copy h1{

    margin:0 !important;

    font-size:clamp(43px,5.2vw,56px) !important;

    line-height:.96 !important;

    letter-spacing:-2.6px !important;

  }

  body.tp-zone-home .tp3-line{

    white-space:nowrap !important;

  }

  body.tp-zone-home .tp3-copy h2{

    margin-top:14px !important;

    font-size:clamp(19px,2.2vw,25px) !important;

  }

  body.tp-zone-home .tp3-desc{

    margin:16px 0 18px !important;

    font-size:15px !important;

    line-height:1.55 !important;

    text-align:left !important;

  }

  body.tp-zone-home .tp3-actions,
  body.tp-zone-home .tp3-trust{

    justify-content:flex-start !important;

  }

  body.tp-zone-home .tp3-btn{

    min-height:48px !important;

    padding-inline:18px !important;

    font-size:14px !important;

  }

  body.tp-zone-home .tp3-trust{

    margin-top:18px !important;

    gap:8px 14px !important;

    font-size:11px !important;

  }

  body.tp-zone-home .tp3-visual{

    align-self:center !important;

    width:100% !important;

    height:min(470px,calc(100svh - 245px)) !important;

    min-height:0 !important;

  }

  body.tp-zone-home .tp3-phone{

    left:50% !important;

    width:210px !important;

    height:min(430px,calc(100svh - 275px)) !important;

  }

  body.tp-zone-home .tp3-feature{

    width:170px !important;

    max-width:170px !important;

    min-width:0 !important;

    padding:11px 12px !important;

    gap:9px !important;

  }

  body.tp-zone-home .tp3-feature-icon{

    width:34px !important;

    height:34px !important;

    flex-basis:34px !important;

    font-size:18px !important;

  }

  body.tp-zone-home .tp3-feature strong{

    font-size:12px !important;

  }

  body.tp-zone-home .tp3-feature small{

    display:none !important;

  }

  body.tp-zone-home .tp3-safe{

    top:52px !important;

    right:0 !important;

  }

  body.tp-zone-home .tp3-fast{

    top:205px !important;

    left:0 !important;

  }

  body.tp-zone-home .tp3-price{

    right:0 !important;

    bottom:12px !important;

  }

  body.tp-zone-home .tp3-strip{

    width:calc(100% - 48px) !important;

    height:78px !important;

    min-height:78px !important;

    margin:0 auto 10px !important;

    padding:12px 14px !important;

    grid-template-columns:repeat(4,minmax(0,1fr)) !important;

    gap:0 !important;

    align-self:end !important;

    overflow:hidden !important;

  }

  body.tp-zone-home .tp3-strip-item{

    min-width:0 !important;

    padding:2px 10px !important;

    gap:8px !important;

  }

  body.tp-zone-home .tp3-strip-item>span{

    flex:0 0 auto !important;

    font-size:22px !important;

  }

  body.tp-zone-home .tp3-strip-item b{

    font-size:12px !important;

    white-space:nowrap !important;

  }

  body.tp-zone-home .tp3-strip-item small{

    margin-top:2px !important;

    font-size:10px !important;

    white-space:nowrap !important;

  }

}


@media (max-width:1180px) and (min-width:901px){

  body.tp-zone-home .tp3-hero{

    grid-template-columns:minmax(0,1fr) minmax(350px,.8fr) !important;

    padding-inline:30px !important;

    gap:24px !important;

  }

  body.tp-zone-home .tp3-copy h1{

    font-size:clamp(48px,5.3vw,66px) !important;

  }

  body.tp-zone-home .tp3-visual{

    min-height:500px !important;

  }

}


@media (max-width:900px){

  html,
  body.tp-zone-home{

    overflow-x:hidden;

  }

  body.tp-zone-home .tp-home-v3{

    min-height:calc(100svh - 66px) !important;

  }

  body.tp-zone-home .tp3-hero{

    width:100% !important;

    grid-template-columns:minmax(0,1fr) !important;

    padding-inline:clamp(16px,4vw,28px) !important;

  }

  body.tp-zone-home .tp3-visual{

    width:min(100%,620px) !important;

  }

}


@media (max-width:600px){

  body.tp-zone-home .tp3-feature{

    width:min(185px,48%) !important;

    max-width:48% !important;

  }

  body.tp-zone-home .tp3-strip{

    width:calc(100% - 24px) !important;

  }

}


@supports not (overflow:clip){

  html,
  body.tp-zone-home,
  body.tp-zone-home .tp-home-v3{

    overflow-x:hidden !important;

  }

}


/* v1.1 — exact desktop viewport lock.
   `min-height` still allowed shadows and section margins to add a few pixels,
   which made browsers render a right-side scrollbar. */
@media (min-width:901px) and (min-height:700px){

  html{

    height:100%;

    overflow:hidden !important;

  }

  body.tp-zone-home{

    height:100svh;

    min-height:0;

    overflow:hidden !important;

  }

  body.tp-zone-home .tp-public-nav{

    height:76px;

    min-height:76px;

  }

  body.tp-zone-home .tp-homepage-main{

    height:calc(100svh - 76px) !important;

    min-height:0 !important;

    overflow:hidden !important;

  }

  body.tp-zone-home .tp-home-v3{

    display:grid !important;

    grid-template-rows:minmax(0,1fr) auto !important;

    height:100% !important;

    min-height:0 !important;

    overflow:hidden !important;

    padding-bottom:16px !important;

  }

  body.tp-zone-home .tp3-hero{

    height:100% !important;

    min-height:0 !important;

    max-height:100% !important;

    padding-block:clamp(16px,3vh,38px) clamp(12px,2vh,24px) !important;

    overflow:hidden !important;

  }

  body.tp-zone-home .tp3-visual{

    height:clamp(430px,calc(100svh - 260px),535px) !important;

    min-height:0 !important;

    max-height:100% !important;

  }

  body.tp-zone-home .tp3-phone{

    height:clamp(410px,calc(100svh - 280px),510px) !important;

  }

  body.tp-zone-home .tp3-strip{

    flex:none;

    margin-block:0 4px !important;

    padding-block:18px !important;

  }

}


/* TimesPack Premium Purple marketplace finish */
.tp-food-public-main{
  background:
    radial-gradient(circle at 8% 0%, rgba(117,68,220,.13), transparent 28%),
    radial-gradient(circle at 92% 8%, rgba(91,43,191,.10), transparent 24%),
    #eee7ff!important;
}
.tp-food-subnav{
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(91,43,191,.12);
  box-shadow:0 3px 18px rgba(50,21,111,.07);
}
.tp-food-hero{
  background:
    radial-gradient(circle at 85% 20%, rgba(154,115,239,.30), transparent 30%),
    linear-gradient(118deg,#32156f 0%,#4b1fa5 48%,#7544dc 100%);
  box-shadow:0 12px 32px rgba(50,21,111,.18);
}
.tp-food-search{
  box-shadow:0 8px 28px rgba(50,21,111,.14);
}
.tp-food-search button{
  background:linear-gradient(135deg,#5b2bbf,#7544dc);
  box-shadow:0 6px 16px rgba(91,43,191,.25);
}
.tp-food-filterbar,
.tp-food-benefits{
  border:1px solid rgba(91,43,191,.10);
  box-shadow:0 8px 24px rgba(50,21,111,.07);
}
.tp-food-dish-card,
.tp-food-restaurant-card,
.tp-food-empty{
  border:1px solid rgba(91,43,191,.08);
  box-shadow:0 8px 24px rgba(50,21,111,.07);
}
.tp-food-dish-card:hover,
.tp-food-restaurant-card:hover{
  border-color:rgba(91,43,191,.20);
  box-shadow:0 12px 30px rgba(50,21,111,.12);
  transform:translateY(-2px);
}
.tp-food-location span,
.tp-food-section-head>div>span,
.tp-food-dish-copy span,
.tp-food-meta span:first-child{
  color:#5b2bbf;
}
.tp-food-logo-placeholder{
  background:linear-gradient(135deg,#e5d9ff,#f7f4ff);
  border:1px solid rgba(91,43,191,.10);
}
