:root {
   --red: #ee2d32;
   --red-dark: #c9141b;
   --ink: #171412;
   --cream: #f7f1e8;
   --paper: #fffdf9;
   --yellow: #f3bb35;
   --muted: #756f68;
   --border: #ded8d0
}

* {
   box-sizing: border-box
}

html {
   scroll-behavior: smooth
}

body {
   margin: 0;
   background: var(--paper);
   color: var(--ink);
   font-family: Manrope, Arial, sans-serif
}

a {
   color: inherit;
   text-decoration: none
}

img {
   display: block;
   max-width: 100%
}

.sr-only {
   position: absolute;
   width: 1px;
   height: 1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0)
}

.site-header {
   height: 82px;
   padding: 0 max(4vw, 24px);
   display: flex;
   align-items: center;
   gap: 35px;
   background: var(--paper);
   border-bottom: 1px solid #eee8df;
   position: relative;
   z-index: 20
}

.brand {
   margin-right: auto
}

.brand-mark,
.footer-logo {
   display: block;
   width: 150px;
   height: 62px;
   overflow: hidden;
   position: relative
}

.brand-mark img,
.footer-logo img {
   width: 150px;
   max-width: none;
   position: absolute;
   top: -23px;
   transform: scale(1.12)
}

nav {
   display: flex;
   align-items: center;
   gap: 34px
}

nav a {
   font-size: 13px;
   font-weight: 700
}

nav a:hover {
   color: var(--red)
}

.header-cta {
   background: var(--red);
   color: white;
   padding: 13px 18px;
   border-radius: 6px;
   font-weight: 800;
   font-size: 13px
}

.header-cta span {
   margin-left: 12px
}

.nav-toggle,
.hamburger {
   display: none
}

.mobile-order-cta {
   display: none
}

.hero {
   min-height: calc(100vh - 82px);
   position: relative;
   overflow: hidden;
   background: linear-gradient(105deg, var(--paper) 0 58%, #f1e6d8 58%);
   padding: 9vh 7vw 90px
}

.hero-copy {
   width: 54%;
   position: relative;
   z-index: 3
}

.eyebrow {
   text-transform: uppercase;
   font-size: 11px;
   letter-spacing: 2.2px;
   font-weight: 800;
   margin: 0 0 23px;
   display: flex;
   align-items: center;
   gap: 10px
}

.eyebrow>span {
   display: inline-block;
   width: 26px;
   height: 2px;
   background: var(--red)
}

h1,
h2 {
   font-size: clamp(50px, 6.2vw, 94px);
   line-height: .94;
   letter-spacing: -5px;
   margin: 0;
   font-weight: 800
}

h1 em,
.how h2 em {
   font-family: "Playfair Display", serif;
   color: var(--red);
   font-weight: 700
}

.hero-text {
   font-size: 16px;
   line-height: 1.7;
   color: var(--muted);
   max-width: 590px;
   margin: 30px 0
}

.location-search {
   display: flex;
   background: #fff;
   border: 1px solid var(--border);
   padding: 7px 7px 7px 17px;
   max-width: 600px;
   box-shadow: 0 12px 35px #29170814
}

.location-search .pin-icon {
   color: var(--red);
   font-size: 10px;
   align-self: center
}

.location-search input {
   border: 0;
   outline: 0;
   padding: 15px 13px;
   min-width: 0;
   flex: 1;
   font: 600 13px Manrope
}

.location-search button {
   border: 0;
   background: var(--red);
   color: #fff;
   font: 800 13px Manrope;
   padding: 0 20px;
   cursor: pointer
}

.location-search button span {
   margin-left: 16px
}

.hero-proof {
   display: flex;
   align-items: center;
   margin-top: 28px;
   gap: 14px
}

.faces {
   display: flex
}

.faces span {
   width: 34px;
   height: 34px;
   border-radius: 50%;
   background: #fff;
   border: 2px solid #fff;
   display: grid;
   place-items: center;
   font-size: 18px;
   margin-left: -7px
}

.faces span:first-child {
   margin: 0
}

.hero-proof p {
   font-size: 10px;
   line-height: 1.5;
   margin: 0;
   color: var(--muted)
}

.hero-proof strong {
   color: var(--ink)
}

.stars {
   color: var(--yellow);
   letter-spacing: 1px;
   margin-left: 4px
}

.hero-visual {
   position: absolute;
   right: 0;
   top: 0;
   width: 43%;
   height: calc(100% - 45px)
}

.red-orbit {
   position: absolute;
   width: 460px;
   height: 460px;
   border: 90px solid var(--red);
   border-radius: 50%;
   top: 12%;
   left: 8%;
   opacity: .95
}

.food-plate {
   position: absolute;
   width: min(33vw, 485px);
   aspect-ratio: 1;
   border-radius: 50%;
   background: #efe8dd;
   top: 17%;
   left: -5%;
   padding: 25px;
   filter: drop-shadow(0 35px 25px #3a1b1628);
   transform: rotate(-8deg)
}

.plate-inner {
   height: 100%;
   border-radius: 50%;
   background: radial-gradient(circle, #e9d6b5 0 4%, #f5e7d0 5% 58%, #d9c3a2 59% 61%, #fcf6eb 62%);
   position: relative;
   display: grid;
   place-items: center
}

.burger {
   width: 68%;
   height: 65%;
   position: relative;
   filter: drop-shadow(7px 15px 7px #32130d44);
   transform: rotate(5deg)
}

.burger>* {
   display: block;
   position: absolute;
   left: 8%;
   width: 84%
}

.burger i {
   height: 34%;
   top: 2%;
   background: linear-gradient(#e89638, #f3b44d);
   border-radius: 100px 100px 25px 25px
}

.burger i:after {
   content: "·  ·   ·";
   position: absolute;
   left: 25%;
   top: 4%;
   color: #f8deb0;
   font-size: 30px;
   letter-spacing: 15px
}

.burger b {
   height: 18%;
   top: 32%;
   background: #4e2315;
   border-radius: 45%
}

.burger u {
   height: 16%;
   top: 44%;
   background: #4e9b37;
   clip-path: polygon(0 25%, 18% 0, 38% 38%, 57% 0, 75% 34%, 100% 3%, 92% 85%, 0 100%)
}

.burger strong {
   height: 16%;
   top: 53%;
   background: #e84032;
   border-radius: 50%
}

.burger small {
   height: 28%;
   top: 63%;
   background: linear-gradient(#f5ad38, #d97b22);
   border-radius: 20px 20px 80px 80px
}

.leaf {
   position: absolute;
   color: #4a9b42;
   font-size: 50px;
   z-index: 2
}

.leaf-a {
   top: 8%;
   left: 8%;
   transform: rotate(-20deg)
}

.leaf-b {
   right: 4%;
   bottom: 12%;
   transform: rotate(30deg)
}

.tomato {
   position: absolute;
   width: 45px;
   height: 45px;
   background: #e54538;
   border-radius: 50%
}

.tomato-a {
   left: 3%;
   bottom: 29%
}

.tomato-b {
   right: 10%;
   top: 13%
}

.fresh-tag {
   position: absolute;
   z-index: 4;
   right: 10%;
   top: 10%;
   font-family: "Playfair Display";
   font-style: italic;
   font-size: 18px;
   transform: rotate(7deg)
}

.fresh-tag span {
   color: var(--red)
}

.delivery-card {
   position: absolute;
   z-index: 5;
   right: 10%;
   bottom: 14%;
   width: 300px;
   background: #fff;
   padding: 15px;
   box-shadow: 0 18px 45px #25110d30;
   display: grid;
   grid-template-columns: 45px 1fr 20px;
   gap: 12px
}

.driver {
   width: 45px;
   height: 45px;
   background: #f6e2ca;
   display: grid;
   place-items: center;
   font-size: 24px
}

.delivery-card div:nth-child(2) {
   display: flex;
   flex-direction: column
}

.delivery-card small {
   font-size: 7px;
   letter-spacing: 1px;
   color: var(--muted)
}

.delivery-card strong {
   font-size: 13px
}

.delivery-card span {
   font-size: 9px;
   color: var(--muted)
}

.progress {
   grid-column: 1/-1;
   height: 3px;
   background: #eee
}

.progress i {
   display: block;
   width: 72%;
   height: 100%;
   background: var(--red)
}

.rating-bubble {
   position: absolute;
   z-index: 5;
   top: 24%;
   left: -11%;
   background: #171412;
   color: #fff;
   border-radius: 50%;
   width: 85px;
   height: 85px;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center
}

.rating-bubble span {
   color: var(--yellow)
}

.rating-bubble strong {
   font-size: 18px
}

.rating-bubble small {
   font-size: 8px
}

.marquee {
   height: 46px;
   background: var(--red);
   color: #fff;
   position: absolute;
   bottom: 0;
   left: 0;
   width: 100%;
   display: flex;
   align-items: center;
   overflow: hidden;
   white-space: nowrap;
   transform: none;
   font-size: 12px;
   font-weight: 800;
   letter-spacing: 2px
}

.marquee-track {
   display: flex;
   width: max-content;
   will-change: transform;
   animation: marquee-scroll 22s linear infinite
}

.marquee-group {
   display: flex;
   flex-shrink: 0;
   min-width: 100vw;
   align-items: center;
   justify-content: space-around;
   gap: 30px;
   padding-right: 30px
}

.marquee b {
   font-size: 11px;
   font-weight: 400
}

.marquee span {
   color: transparent;
   -webkit-text-stroke: 1px white
}

@keyframes marquee-scroll {
   to {
      transform: translateX(-50%)
   }
}

@media (prefers-reduced-motion: reduce) {
   .marquee-track {
      animation-play-state: paused
   }
}

.section {
   padding: 110px 7vw
}

.section-heading {
   display: flex;
   align-items: end;
   justify-content: space-between;
   margin-bottom: 55px
}

.section-heading h2 {
   font-size: clamp(44px, 5vw, 72px)
}

.section-heading>p {
   width: 360px;
   color: var(--muted);
   line-height: 1.7;
   font-size: 14px
}

.category-grid {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 14px
}

.category-card {
   height: 330px;
   padding: 24px;
   position: relative;
   overflow: hidden;
   transition: .25s
}

.category-card:hover {
   transform: translateY(-8px)
}

.category-card .dish {
   font-size: 100px;
   height: 180px;
   display: grid;
   place-items: center;
   filter: drop-shadow(0 15px 8px #0002)
}

.category-card h3 {
   font-size: 20px;
   margin: 30px 0 2px
}

.category-card p {
   font-size: 10px;
   margin: 0;
   opacity: .65
}

.category-card>span {
   position: absolute;
   right: 20px;
   bottom: 20px;
   border: 1px solid currentColor;
   border-radius: 50%;
   width: 32px;
   height: 32px;
   display: grid;
   place-items: center
}

.category-card.red {
   background: var(--red);
   color: #fff
}

.category-card.cream {
   background: #f2e4cf
}

.category-card.dark {
   background: #191614;
   color: #fff
}

.category-card.peach {
   background: #f5cbc0
}

.category-card.yellow {
   background: #f5c84d
}

.how {
   background: var(--ink);
   color: #fff;
   display: grid;
   grid-template-columns: 1fr 1.2fr;
   gap: 10vw
}

.eyebrow.light {
   color: #fff
}

.how-intro h2 {
   font-size: clamp(50px, 5vw, 75px)
}

.how-intro>p:not(.eyebrow) {
   color: #a8a19a;
   max-width: 390px;
   line-height: 1.7;
   margin: 28px 0
}

.text-link {
   display: inline-block;
   padding-bottom: 8px;
   border-bottom: 1px solid #777;
   font-size: 13px;
   font-weight: 800
}

.text-link span {
   margin-left: 30px
}

.steps article {
   display: grid;
   grid-template-columns: 40px 100px 1fr;
   gap: 22px;
   align-items: center;
   padding: 30px 0;
   border-top: 1px solid #3a3633
}

.step-no {
   font-size: 10px;
   color: #777
}

.step-icon {
   width: 90px;
   height: 90px;
   border-radius: 50%;
   background: var(--red);
   display: grid;
   place-items: center;
   font-size: 30px
}

.steps h3 {
   font-size: 20px;
   margin: 0 0 8px
}

.steps p {
   color: #aaa29b;
   font-size: 12px;
   line-height: 1.6;
   margin: 0
}

.centered {
   display: block;
   text-align: center
}

.centered .eyebrow {
   justify-content: center
}

.centered>p {
   margin: 20px auto 0
}

.role-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 20px
}

.role {
   padding: 0 35px 35px;
   background: #f1e7da
}

.role-art {
   height: 280px;
   margin: 0 -35px 30px;
   display: grid;
   place-items: center;
   overflow: hidden
}

.role-art span {
   font-size: 130px;
   filter: drop-shadow(0 22px 12px #0003)
}

.role.customer .role-art {
   background: #efb9a8
}

.role.vendor {
   background: var(--red);
   color: #fff
}

.role.vendor .role-art {
   background: #c81e23
}

.role.driver {
   background: #171412;
   color: #fff
}

.role.driver .role-art {
   background: #e6a93e
}

.role small {
   letter-spacing: 2px;
   font-size: 8px;
   font-weight: 800
}

.role h3 {
   font-size: 35px;
   line-height: 1.05;
   letter-spacing: -1.5px;
   margin: 16px 0
}

.role p {
   font-size: 12px;
   line-height: 1.7;
   opacity: .7
}

.role a {
   display: inline-block;
   margin-top: 15px;
   font-size: 11px;
   font-weight: 800;
   border-bottom: 1px solid;
   padding-bottom: 6px
}

.role a span {
   margin-left: 25px
}

.stats {
   background: var(--red);
   color: #fff;
   padding: 55px 7vw;
   display: grid;
   grid-template-columns: repeat(4, 1fr)
}

.stats div {
   text-align: center;
   border-right: 1px solid #ffffff55
}

.stats div:last-child {
   border: 0
}

.stats strong {
   font-size: 45px
}

.stats strong span {
   font-size: 18px
}

.stats p {
   font-size: 9px;
   text-transform: uppercase;
   letter-spacing: 1px;
   margin: 8px 0 0
}

.app-section {
   background: #171412;
   color: #fff;
   display: grid;
   grid-template-columns: .85fr 1.15fr;
   min-height: 720px;
   overflow: hidden
}

.app-copy {
   align-self: center
}

.app-copy h2 {
   font-size: clamp(50px, 5.7vw, 84px)
}

.app-copy>p:not(.eyebrow) {
   color: #aaa29b;
   line-height: 1.8;
   max-width: 500px
}

.store-buttons {
   display: flex;
   gap: 10px;
   margin-top: 35px
}

.store-buttons a {
   border: 1px solid #777;
   padding: 10px 18px;
   display: flex;
   align-items: center;
   gap: 10px;
   border-radius: 5px;
   min-width: 160px
}

.store-buttons b {
   font-size: 22px
}

.store-buttons span {
   display: flex;
   flex-direction: column;
   font-size: 15px;
   font-weight: 700
}

.store-buttons small {
   font-size: 8px;
   font-weight: 500
}

.phones {
   position: relative;
   min-height: 560px
}

.phone {
   position: absolute;
   width: 265px;
   height: 535px;
   border: 8px solid #090909;
   border-radius: 37px;
   background: #fff;
   padding: 7px;
   color: #171412;
   box-shadow: 0 30px 60px #0008;
   overflow: hidden
}

.phone:before {
   content: "";
   position: absolute;
   z-index: 4;
   top: 10px;
   left: 50%;
   transform: translateX(-50%);
   width: 70px;
   height: 17px;
   background: #090909;
   border-radius: 20px
}

.phone-screen {
   height: 100%;
   border-radius: 23px;
   background: #f5eee5;
   padding: 40px 18px 18px
}

.phone-back {
   left: 8%;
   top: 50px;
   transform: rotate(-10deg)
}

.phone-front {
   left: 44%;
   top: 5px;
   transform: rotate(7deg);
   z-index: 2
}

.phone h4 {
   font-size: 22px;
   margin: 8px 0 18px
}

.phone small {
   font-size: 9px;
   color: #777
}

.mini-search {
   background: #fff;
   padding: 12px;
   font-size: 10px;
   color: #777
}

.mini-food {
   height: 210px;
   background: #efc266;
   margin: 20px 0;
   display: grid;
   place-items: center;
   font-size: 90px
}

.map {
   height: 290px;
   margin: -40px -18px 20px;
   background: linear-gradient(30deg, #e8e1d7 12%, transparent 12% 17%, #ddd3c6 17% 24%, transparent 24% 55%, #e0d6ca 55% 63%, transparent 63%), #f3ede4;
   position: relative
}

.map .route {
   position: absolute;
   width: 170px;
   height: 170px;
   border: 4px dashed var(--red);
   border-color: var(--red) transparent transparent var(--red);
   border-radius: 50%;
   left: 45px;
   top: 70px;
   transform: rotate(-20deg)
}

.map i,
.map b {
   position: absolute;
   font-style: normal;
   background: #fff;
   border-radius: 50%;
   width: 44px;
   height: 44px;
   display: grid;
   place-items: center
}

.map i {
   top: 70px;
   right: 25px
}

.map b {
   bottom: 50px;
   left: 35px;
   color: var(--red)
}

.mini-order {
   margin-top: 16px;
   background: #fff;
   padding: 13px;
   display: flex;
   gap: 10px
}

.mini-order span {
   display: flex;
   flex-direction: column
}

.app-scribble {
   position: absolute;
   right: -3%;
   bottom: 5%;
   font-family: "Playfair Display";
   font-style: italic;
   font-size: 20px;
   transform: rotate(-8deg)
}

.app-scribble span {
   color: var(--red)
}

footer {
   background: #f4ede3;
   padding: 70px 7vw 25px
}

.footer-top {
   display: grid;
   grid-template-columns: 2fr 1fr 1.3fr 1.3fr;
   gap: 50px
}

.footer-logo {
   width: 180px;
   height: 85px
}

.footer-logo img {
   width: 180px;
   top: -28px
}

.footer-brand p {
   color: #777;
   font-size: 12px;
   line-height: 1.7
}

footer h4 {
   font-size: 11px;
   text-transform: uppercase;
   letter-spacing: 1.5px;
   margin: 0 0 22px
}

footer div>a {
   display: block;
   font-size: 11px;
   color: #655f59;
   margin: 12px 0
}

.socials {
   display: flex;
   gap: 7px
}

.socials a {
   width: 30px;
   height: 30px;
   border: 1px solid #aaa;
   border-radius: 50%;
   display: grid;
   place-items: center
}

.footer-bottom {
   border-top: 1px solid #d7cec2;
   margin-top: 55px;
   padding-top: 22px;
   display: flex;
   justify-content: space-between;
   font-size: 9px;
   color: #777
}

.footer-bottom div {
   display: flex;
   gap: 25px
}

.footer-bottom a {
   margin: 0
}

@media(max-width:1000px) {
   .site-header nav {
      gap: 18px
   }

   .hero {
      padding-left: 5vw
   }

   .hero-copy {
      width: 58%
   }

   .hero-visual {
      width: 42%
   }

   .red-orbit {
      width: 350px;
      height: 350px
   }

   .food-plate {
      width: 370px;
      left: -12%
   }

   .category-grid {
      grid-template-columns: repeat(3, 1fr)
   }

   .category-card:nth-child(n+4) {
      display: none
   }

   .role h3 {
      font-size: 28px
   }

   .phone {
      width: 230px;
      height: 480px
   }

   .phone-front {
      left: 42%
   }

   .app-scribble {
      display: none
   }
}

@media(max-width:760px) {
   .site-header {
      height: 68px;
      padding: 0 20px
   }

   .brand-mark {
      width: 125px;
      height: 55px
   }

   .brand-mark img {
      width: 125px;
      top: -20px
   }

   .header-cta {
      display: none
   }

   .hamburger {
      display: flex;
      width: 32px;
      height: 32px;
      flex-direction: column;
      justify-content: center;
      gap: 7px;
      cursor: pointer
   }

   .hamburger span {
      height: 2px;
      width: 24px;
      background: #111
   }

   .site-header nav {
      display: none;
      position: absolute;
      top: 68px;
      left: 0;
      width: 100%;
      background: #fff;
      padding: 25px;
      flex-direction: column;
      align-items: flex-start;
      border-bottom: 1px solid #ddd
   }

   .nav-toggle:checked~nav {
      display: flex
   }

   .hero {
      padding: 65px 22px 500px;
      background: var(--paper);
      min-height: auto
   }

   .hero-copy {
      width: 100%
   }

   h1,
   h2 {
      letter-spacing: -3px
   }

   .hero-text {
      font-size: 14px
   }

   .location-search button {
      padding: 0 13px
   }

   .location-search button span {
      display: none
   }

   .hero-visual {
      top: auto;
      bottom: 45px;
      width: 100%;
      height: 430px
   }

   .red-orbit {
      width: 320px;
      height: 320px;
      border-width: 60px;
      left: 16%;
      top: 40px
   }

   .food-plate {
      width: 330px;
      top: 55px;
      left: 4%
   }

   .delivery-card {
      right: 5%;
      bottom: 20px;
      width: 250px
   }

   .rating-bubble {
      left: 7%;
      top: 45px
   }

   .fresh-tag {
      right: 5%;
      top: 25px
   }

   .section {
      padding: 75px 22px
   }

   .section-heading {
      display: block
   }

   .section-heading>p {
      width: auto;
      margin-top: 20px
   }

   .section-heading h2 {
      font-size: 46px
   }

   .category-grid {
      grid-template-columns: 1fr 1fr
   }

   .category-card {
      height: 280px
   }

   .category-card:nth-child(3) {
      display: none
   }

   .category-card .dish {
      height: 145px;
      font-size: 80px
   }

   .how {
      grid-template-columns: 1fr
   }

   .steps {
      margin-top: 40px
   }

   .steps article {
      grid-template-columns: 30px 70px 1fr
   }

   .step-icon {
      width: 65px;
      height: 65px
   }

   .role-grid {
      grid-template-columns: 1fr
   }

   .role-art {
      height: 230px
   }

   .stats {
      grid-template-columns: 1fr 1fr;
      gap: 30px
   }

   .stats div:nth-child(2) {
      border: 0
   }

   .stats strong {
      font-size: 35px
   }

   .app-section {
      grid-template-columns: 1fr;
      padding-bottom: 20px
   }

   .phones {
      margin-top: 55px;
      min-height: 500px
   }

   .phone {
      width: 205px;
      height: 430px
   }

   .phone-back {
      left: 0
   }

   .phone-front {
      left: auto;
      right: -10px
   }

   .mini-food {
      height: 160px
   }

   .map {
      height: 230px
   }

   .footer-top {
      grid-template-columns: 1fr 1fr
   }

   .footer-brand {
      grid-column: 1/-1
   }

   .footer-bottom {
      flex-wrap: wrap;
      gap: 15px
   }
}

@media(max-width:420px) {
   h1 {
      font-size: 48px
   }

   .hero {
      padding-bottom: 450px
   }

   .hero-visual {
      height: 390px
   }

   .food-plate {
      width: 280px;
      left: 1%;
      top: 70px
   }

   .red-orbit {
      width: 270px;
      height: 270px;
      left: 19%
   }

   .rating-bubble {
      width: 70px;
      height: 70px
   }

   .category-grid {
      grid-template-columns: 1fr
   }

   .category-card:nth-child(2) {
      display: none
   }

   .steps article {
      grid-template-columns: 25px 55px 1fr;
      gap: 10px
   }

   .step-icon {
      width: 52px;
      height: 52px
   }

   .store-buttons {
      flex-direction: column
   }

   .phones {
      min-height: 410px
   }

   .phone {
      width: 175px;
      height: 370px;
      border-width: 5px
   }

   .phone-screen {
      padding: 33px 12px 12px
   }

   .phone h4 {
      font-size: 17px
   }

   .map {
      margin: -33px -12px 15px;
      height: 200px
   }

   .mini-food {
      height: 130px
   }

   .footer-top {
      grid-template-columns: 1fr
   }

   .footer-brand {
      grid-column: auto
   }
}

/* Clear, compact logo lockup. The source artwork has a large white canvas,
   so the pin is cropped here and paired with a readable wordmark. */
body {
   overflow-x: hidden
}

.brand-mark,
.footer-logo {
   display: flex;
   align-items: center;
   overflow: visible;
   width: auto;
   height: 64px;
   position: relative;
   gap: 9px
}

.brand-mark>img,
.footer-logo>img {
   position: relative;
   inset: auto;
   transform: none;
   width: 50px;
   height: 58px;
   max-width: none;
   object-fit: cover;
   object-position: 50% 27%;
   clip-path: inset(7% 3% 7% 3%)
}

.brand-name {
   display: flex;
   align-items: baseline;
   position: relative;
   font-size: 25px;
   font-weight: 800;
   letter-spacing: -1.8px;
   line-height: 1;
   color: #111
}

.brand-name>span {
   color: var(--red)
}

.brand-name small {
   position: absolute;
   top: 26px;
   right: 0;
   color: var(--red);
   font-size: 8px;
   letter-spacing: 0;
   font-weight: 800
}

.footer-logo {
   width: max-content;
   height: 68px
}

.footer-logo>img {
   width: 56px;
   height: 64px
}

.footer-logo .brand-name {
   font-size: 29px
}

.footer-logo .brand-name small {
   top: 30px
}

@media(max-width:760px) {
   .brand-mark {
      height: 56px;
      gap: 7px
   }

   .brand-mark>img {
      width: 43px;
      height: 50px
   }

   .brand-name {
      font-size: 22px
   }

   .brand-name small {
      top: 23px
   }

   .ecosystem {
      overflow: hidden
   }

   .role-grid,
   .role {
      width: 100%;
      min-width: 0
   }

   .role {
      padding-left: 24px;
      padding-right: 24px
   }

   .role-art {
      margin-left: -24px;
      margin-right: -24px
   }

   .stats {
      position: relative;
      z-index: 1
   }

   .app-section {
      position: relative;
      z-index: 1
   }

   .app-copy,
   .phones {
      min-width: 0
   }
}

@media(max-width:600px) {
   .section {
      padding-left: 20px;
      padding-right: 20px
   }

   .stats {
      grid-template-columns: 1fr;
      padding: 12px 20px;
      gap: 0
   }

   .stats div,
   .stats div:nth-child(2) {
      border-right: 0;
      border-bottom: 1px solid #ffffff55;
      padding: 22px 0
   }

   .stats div:last-child {
      border-bottom: 0
   }

   .stats strong {
      display: block;
      font-size: 38px;
      line-height: 1.05;
      white-space: nowrap
   }

   .stats p {
      line-height: 1.4
   }

   .app-section {
      display: block;
      min-height: 0;
      padding-top: 70px;
      padding-bottom: 60px
   }

   .app-copy h2 {
      font-size: clamp(42px, 13vw, 60px);
      line-height: .98;
      overflow-wrap: normal
   }

   .app-copy>p:not(.eyebrow) {
      font-size: 13px
   }

   .phones {
      height: 420px;
      min-height: 420px;
      margin-top: 50px
   }

   .phone {
      width: 46vw;
      max-width: 190px;
      height: 390px
   }

   .phone-back {
      left: 1%;
      top: 20px
   }

   .phone-front {
      right: 1%;
      top: 0
   }

   .store-buttons a {
      min-width: 0;
      flex: 1;
      padding: 10px
   }

   .footer-logo {
      height: 64px
   }

   .footer-logo>img {
      width: 50px;
      height: 58px
   }

   .footer-logo .brand-name {
      font-size: 25px
   }
}

/* Readable footer typography and legal policy dialogs. */
.footer-brand>p,
.footer-links a,
.footer-app p {
   font-size: 14px;
   line-height: 1.65
}

.footer-main h4 {
   font-size: 13px
}

.footer-app>a span {
   font-size: 13px
}

.footer-app>a small {
   font-size: 9px
}

.footer-bottom {
   font-size: 13px
}

.legal-link {
   appearance: none;
   border: 0;
   padding: 0;
   background: none;
   color: #5e5650;
   font: inherit;
   cursor: pointer
}

.legal-link:hover,
.legal-link:focus-visible {
   color: var(--red)
}

.legal-modal {
   width: min(680px, calc(100% - 32px));
   max-height: min(82vh, 760px);
   padding: 0;
   border: 0;
   border-radius: 20px;
   background: #fffaf4;
   color: var(--ink);
   box-shadow: 0 28px 80px #1f17145c;
   overflow: hidden
}

.legal-modal::backdrop {
   background: #1b1512b8;
   backdrop-filter: blur(5px)
}

.legal-modal__header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   padding: 24px 28px 20px;
   border-bottom: 1px solid #eadccd;
   background: #f6eadc
}

.legal-modal__header span {
   color: var(--red);
   font-size: 10px;
   font-weight: 800;
   letter-spacing: 1.8px
}

.legal-modal__header h2 {
   margin: 3px 0 0;
   font-size: clamp(25px, 4vw, 34px);
   letter-spacing: -1px
}

.modal-close {
   flex: 0 0 42px;
   width: 42px;
   height: 42px;
   border: 1px solid #d9c6b3;
   border-radius: 50%;
   background: #fffaf4;
   color: var(--ink);
   font-size: 28px;
   line-height: 1;
   cursor: pointer
}

.modal-close:hover,
.modal-close:focus-visible {
   background: var(--red);
   border-color: var(--red);
   color: #fff
}

.legal-modal__content {
   max-height: calc(82vh - 108px);
   padding: 24px 28px 30px;
   overflow-y: auto;
   overscroll-behavior: contain
}

.legal-modal__content p {
   margin: 0 0 18px;
   color: #625a53;
   font-size: 15px;
   line-height: 1.75
}

.legal-modal__content h3 {
   margin: 24px 0 8px;
   font-size: 17px
}

.legal-modal__content a {
   color: var(--red);
   font-weight: 700
}

.legal-modal__content .legal-updated {
   color: #8a7e74;
   font-size: 12px;
   font-weight: 700
}

@media(max-width:600px) {
   .footer-main h4 {
      font-size: 12px;
   }

   .footer-brand>p,
   .footer-links a,
   .footer-app p {
      font-size: 13px;
   }

   .footer-bottom {
      font-size: 12px;
   }

   .footer-bottom div {
      flex-wrap: wrap;
   }

   .legal-modal__header {
      padding: 20px;
   }

   .legal-modal__content {
      padding: 20px;
   }

   .legal-modal__content p {
      font-size: 14px;
   }
}

/* Contact form, legal pages, and final mobile app layout. */
.contact-section {
   background: #fffaf3;
   display: grid;
   grid-template-columns: .8fr 1.2fr;
   gap: clamp(40px, 8vw, 120px);
   align-items: start
}

.contact-intro h2 {
   font-size: clamp(48px, 6vw, 82px);
   margin: 10px 0 20px
}

.contact-intro>p:not(.eyebrow) {
   color: #6f6862;
   line-height: 1.8;
   max-width: 480px
}

.contact-intro>a {
   color: var(--red);
   font-weight: 800;
   display: inline-block;
   margin-top: 22px
}

.contact-form {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 22px;
   background: #f3e9dc;
   padding: clamp(24px, 4vw, 50px);
   border-radius: 18px
}

.form-field {
   display: flex;
   flex-direction: column;
   gap: 9px
}

.form-field--full {
   grid-column: 1/-1
}

.form-field label {
   font-size: 12px;
   font-weight: 800;
   letter-spacing: .8px;
   text-transform: uppercase
}

.form-field input,
.form-field textarea {
   width: 100%;
   border: 1px solid #d4c3af;
   border-radius: 7px;
   background: #fffdf9;
   color: var(--ink);
   font: inherit;
   font-size: 16px;
   padding: 15px 16px;
   outline: none
}

.form-field textarea {
   resize: vertical;
   min-height: 150px
}

.form-field input:focus,
.form-field textarea:focus {
   border-color: var(--red);
   box-shadow: 0 0 0 3px #e7412b1a
}

.contact-form button {
   grid-column: 1/-1;
   justify-self: start;
   border: 0;
   border-radius: 6px;
   background: var(--red);
   color: #fff;
   padding: 15px 24px;
   font: inherit;
   font-weight: 800;
   cursor: pointer
}

.legal-page {
   background: #fffaf3;
   color: var(--ink)
}

.legal-header {
   height: 90px;
   padding: 10px 7vw;
   display: flex;
   justify-content: space-between;
   align-items: center;
   border-bottom: 1px solid #e1d3c2;
   background: #fffaf3
}

.legal-header img {
   width: 72px;
   height: 72px;
   object-fit: contain
}

.legal-back {
   font-size: 14px;
   font-weight: 800;
   color: var(--ink);





}

.legal-document {
   max-width: 820px;
   margin: 0 auto;
   padding: 80px 24px 100px
}

.legal-document h1 {
   font-size: clamp(45px, 7vw, 76px);
   line-height: 1.05;
   margin: 15px 0
}

.legal-document .legal-updated {
   color: #81756c;
   font-size: 13px;
   margin-bottom: 48px
}

.legal-document h2 {
   font-size: 23px;
   margin: 38px 0 10px
}

.legal-document p {
   color: #5f5751;
   line-height: 1.85;
   font-size: 16px
}

.legal-document a {
   color: var(--red);
   font-weight: 700
}

@media(max-width:760px) {
   .app-section {
      display: flex;
      flex-direction: column;
      min-height: 0;
      padding-left: 20px;
      padding-right: 20px
   }

   .app-copy {
      width: 100%
   }

   .app-copy h2 {
      font-size: clamp(42px, 13vw, 62px)
   }

   .store-buttons {
      flex-direction: column;
      width: 100%;
      max-width: 320px
   }

   .store-buttons a {
      width: 100%;
      min-width: 0
   }

   .phones {
      width: 100%;
      min-height: 470px;
      margin-top: 50px;
      overflow: hidden
   }

   .phone {
      width: 190px;
      height: 385px;
      border-width: 6px;
      border-radius: 28px
   }

   .phone:before {
      width: 54px;
      height: 13px;
      top: 8px
   }

   .phone-screen {
      padding: 31px 12px 12px
   }

   .phone-back {
      left: calc(50% - 174px);
      top: 50px;
      transform: rotate(-8deg)
   }

   .phone-front {
      left: calc(50% - 12px);
      top: 18px;
      transform: rotate(7deg)
   }

   .phone h4 {
      font-size: 16px
   }

   .mini-food {
      height: 145px;
      font-size: 60px
   }

   .map {
      height: 210px;
      margin: -31px -12px 15px
   }

   .map .route {
      width: 120px;
      height: 120px;
      left: 30px;
      top: 52px
   }

   .app-scribble {
      display: none
   }

   .contact-section {
      grid-template-columns: 1fr;
      gap: 34px
   }
}

@media(max-width:480px) {
   .phones {
      min-height: 390px;
      transform: none
   }

   .phone {
      width: 158px;
      height: 326px;
      border-width: 5px;
      border-radius: 24px
   }

   .phone-back {
      left: calc(50% - 146px);
      top: 42px
   }

   .phone-front {
      left: calc(50% - 6px);
      top: 12px
   }

   .phone-screen {
      padding: 27px 10px 10px
   }

   .phone h4 {
      font-size: 14px;
      margin-bottom: 12px
   }

   .mini-search {
      padding: 8px;
      font-size: 8px
   }

   .mini-food {
      height: 120px;
      margin: 14px 0;
      font-size: 48px
   }

   .map {
      height: 175px;
      margin: -27px -10px 12px
   }

   .mini-order {
      padding: 8px;
      margin-top: 10px
   }

   .contact-form {
      grid-template-columns: 1fr;
      padding: 22px 16px
   }

   .form-field,
   .form-field--full,
   .contact-form button {
      grid-column: 1
   }

   .legal-header {
      height: 74px;
      padding: 6px 20px
   }

   .legal-header img {
      width: 60px;
      height: 60px
   }

   .legal-document {
      padding: 55px 20px 75px
   }
}

/* Customer reviews */
.reviews {
   background: #fffaf3;
}

.reviews-heading {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 50px;
   margin-bottom: 52px;
}

.reviews-heading h2 {
   font-size: clamp(44px, 5vw, 72px);
}

.reviews-heading h2 em {
   font-family: "Playfair Display", serif;
   color: var(--red);
   font-weight: 700;
}

.rating-summary {
   display: flex;
   align-items: center;
   gap: 18px;
   padding: 18px 22px;
   border-left: 3px solid var(--red);
   min-width: 290px;
}

.rating-summary>strong {
   font-size: 50px;
   line-height: 1;
   letter-spacing: -3px;
}

.rating-summary div {
   display: flex;
   flex-direction: column;
}

.rating-summary span,
.review-stars {
   color: #efab24;
   letter-spacing: 2px;
   font-size: 13px;
}

.rating-summary p {
   font-size: 9px;
   color: var(--muted);
   margin: 5px 0 0;
}

.review-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 18px;
}

.review-card {
   background: #fff;
   border: 1px solid #e4dacf;
   padding: 28px;
   min-width: 0;
   transition: transform .25s, box-shadow .25s;
}

.review-card:hover {
   transform: translateY(-6px);
   box-shadow: 0 18px 40px #5f3e2214;
}

.review-card.featured {
   background: var(--red);
   border-color: var(--red);
   color: #fff;
}

.review-top {
   display: flex;
   align-items: flex-start;
   justify-content: space-between;
}

.quote-mark {
   font-family: "Playfair Display", serif;
   font-size: 56px;
   line-height: .75;
   color: var(--red);
}

.featured .quote-mark {
   color: #fff;
}

.verified {
   font-size: 8px;
   text-transform: uppercase;
   letter-spacing: 1px;
   color: #777;
   font-weight: 800;
}

.featured .verified {
   color: #ffd7d8;
}

.review-stars {
   margin: 25px 0 12px;
}

.featured .review-stars {
   color: #ffd052;
}

.review-card blockquote {
   font-size: 15px;
   line-height: 1.75;
   margin: 0;
   min-height: 132px;
   font-weight: 600;
}

.reviewer {
   border-top: 1px solid #e7ded4;
   margin-top: 25px;
   padding-top: 20px;
   display: grid;
   grid-template-columns: 42px 1fr auto;
   align-items: center;
   gap: 11px;
}

.featured .reviewer {
   border-color: #ffffff4a;
}

.avatar {
   width: 42px;
   height: 42px;
   border-radius: 50%;
   display: grid;
   place-items: center;
   font-size: 10px;
   font-weight: 800;
   color: #201b17;
}

.avatar.coral {
   background: #ffd4cc;
}

.avatar.yellow {
   background: #f5ca54;
}

.avatar.cream {
   background: #eadac5;
}

.reviewer div {
   display: flex;
   flex-direction: column;
   min-width: 0;
}

.reviewer strong {
   font-size: 11px;
}

.reviewer small,
.reviewer time {
   font-size: 8px;
   color: #8c837c;
}

.featured .reviewer small,
.featured .reviewer time {
   color: #ffd7d8;
}

.review-foot {
   margin-top: 28px;
   padding-top: 20px;
   border-top: 1px solid #ded3c7;
   display: flex;
   justify-content: space-between;
   color: #7b736c;
   font-size: 10px;
}

.review-foot a {
   color: var(--ink);
   font-weight: 800;
}

.review-foot a b {
   color: var(--red);
   margin-left: 15px;
}

@media(max-width:900px) {
   .review-grid {
      grid-template-columns: 1fr 1fr;
   }

   .review-card:last-child {
      grid-column: 1/-1;
   }

   .review-card blockquote {
      min-height: 110px;
   }
}

@media(max-width:600px) {
   .reviews-heading {
      display: block;
      margin-bottom: 35px;
   }

   .reviews-heading h2 {
      font-size: 44px;
   }

   .rating-summary {
      margin-top: 28px;
      min-width: 0;
      padding: 14px 18px;
   }

   .rating-summary>strong {
      font-size: 42px;
   }

   .review-grid {
      grid-template-columns: 1fr;
   }

   .review-card:last-child {
      grid-column: auto;
   }

   .review-card {
      padding: 23px;
   }

   .review-card blockquote {
      min-height: 0;
      font-size: 14px;
   }

   .review-foot {
      align-items: flex-start;
      gap: 18px;
   }

   .review-foot span {
      max-width: 190px;
   }
}

/* Compact mobile reviews: swipe cards like a marketplace carousel. */
@media(max-width:600px) {
   .reviews {
      padding-top: 48px;
      padding-bottom: 48px;
      overflow: hidden;
   }

   .reviews .eyebrow {
      margin-bottom: 14px;
      font-size: 9px;
      letter-spacing: 1.5px;
   }

   .reviews-heading {
      margin-bottom: 22px;
   }

   .reviews-heading h2 {
      font-size: 34px;
      line-height: 1;
      letter-spacing: -2px;
   }

   .rating-summary {
      width: max-content;
      margin-top: 18px;
      padding: 8px 13px;
      gap: 11px;
      border-left-width: 2px;
   }

   .rating-summary>strong {
      font-size: 31px;
      letter-spacing: -2px;
   }

   .rating-summary span {
      font-size: 10px;
      letter-spacing: 1px;
   }

   .rating-summary p {
      font-size: 7px;
      margin-top: 2px;
   }

   .review-grid {
      display: flex;
      gap: 12px;
      width: calc(100% + 20px);
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      padding-right: 20px;
      padding-bottom: 4px;
   }

   .review-grid::-webkit-scrollbar {
      display: none;
   }

   .review-card,
   .review-card:last-child {
      flex: 0 0 82vw;
      max-width: 330px;
      padding: 18px;
      scroll-snap-align: start;
   }

   .quote-mark {
      font-size: 40px;
   }

   .verified {
      font-size: 7px;
   }

   .review-stars {
      margin: 13px 0 8px;
      font-size: 10px;
   }

   .review-card blockquote {
      display: -webkit-box;
      overflow: hidden;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 4;
      min-height: 76px;
      font-size: 12px;
      line-height: 1.55;
   }

   .reviewer {
      grid-template-columns: 34px 1fr auto;
      gap: 8px;
      margin-top: 15px;
      padding-top: 13px;
   }

   .avatar {
      width: 34px;
      height: 34px;
      font-size: 8px;
   }

   .reviewer strong {
      font-size: 9px;
   }

   .reviewer small,
   .reviewer time {
      font-size: 7px;
   }

   .review-foot {
      margin-top: 16px;
      padding-top: 14px;
      justify-content: flex-end;
   }

   .review-foot>span {
      display: none;
   }

   .review-foot a {
      font-size: 9px;
   }
}

@media(max-width:360px) {
   .reviews-heading h2 {
      font-size: 31px;
   }

   .review-card,
   .review-card:last-child {
      flex-basis: 86vw;
   }
}

@media(max-width:370px) {
   .brand-name {
      font-size: 19px
   }

   .brand-name small {
      top: 21px
   }

   .brand-mark>img {
      width: 38px
   }

   .site-header {
      padding-left: 13px;
      padding-right: 13px
   }

   .phone {
      width: 47vw
   }

   .store-buttons {
      flex-direction: column
   }

   .store-buttons a {
      width: 100%
   }
}

/* Layout correction: the rider card and the tiny order-status rider icon share
   a class name in the markup. Keep the full partner card in normal flow. */
.role.driver {
   display: block;
   width: auto;
   height: auto;
   border-radius: 0;
   font-size: inherit;
   place-items: initial
}

/* Display the complete supplied logo at a useful size. */
.site-header {
   height: 94px
}

.brand-mark {
   height: 90px;
   gap: 4px
}

.brand-mark>img {
   width: 86px;
   height: 86px;
   object-fit: contain;
   object-position: center;
   clip-path: none
}

.brand-mark .brand-name {
   font-size: 22px;
   letter-spacing: -1.3px
}

.brand-mark .brand-name small {
   top: 23px;
   font-size: 7px
}

.footer-logo {
   height: 92px;
   gap: 4px
}

.footer-logo>img {
   width: 88px;
   height: 88px;
   object-fit: contain;
   clip-path: none
}

.footer-logo .brand-name {
   font-size: 23px
}

.footer-logo .brand-name small {
   top: 24px
}

@media(max-width:760px) {
   .site-header {
      height: 78px;
      padding-left: 14px;
      padding-right: 14px
   }

   .site-header nav {
      top: 78px
   }

   .brand-mark {
      height: 74px;
      gap: 1px
   }

   .brand-mark>img {
      width: 70px;
      height: 70px
   }

   .brand-mark .brand-name {
      font-size: 18px;
      letter-spacing: -1px
   }

   .brand-mark .brand-name small {
      top: 19px;
      font-size: 6px
   }

   .ecosystem .role-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 18px
   }

   .role.driver {
      width: 100%;
      height: auto
   }

   .role h3 {
      overflow-wrap: normal;
      word-break: normal
   }

   .stats {
      width: 100%
   }

   .app-section {
      width: 100%
   }
}

@media(max-width:430px) {
   .brand-mark>img {
      width: 64px;
      height: 64px
   }

   .brand-mark .brand-name {
      font-size: 16px
   }

   .brand-mark .brand-name small {
      top: 17px
   }

   .hero {
      padding-left: 18px;
      padding-right: 18px
   }

   .location-search {
      padding-left: 11px
   }

   .location-search input {
      width: 100px
   }

   .category-card {
      width: 100%
   }

   .how {
      gap: 35px
   }

   .steps article {
      grid-template-columns: 22px 54px minmax(0, 1fr)
   }

   .steps h3 {
      font-size: 17px
   }

   .role {
      min-height: 0
   }

   .role-art {
      height: 210px
   }

   .role-art span {
      font-size: 105px
   }

   .role h3 {
      font-size: 30px
   }

   .phones {
      width: 100%;
      overflow: hidden
   }

   .phone {
      max-width: 180px
   }

   .footer-top {
      gap: 30px
   }
}

/* Final logo treatment: use the original lockup alone. Multiply visually removes
   the white image canvas on the warm page backgrounds without altering the file. */
.site-header {
   height: 104px
}

.brand-mark {
   width: 132px;
   height: 100px;
   display: block;
   overflow: hidden
}

.brand-mark>img {
   width: 132px;
   height: 132px;
   max-width: none;
   object-fit: contain;
   position: relative;
   top: -16px;
   mix-blend-mode: multiply
}

.footer-logo {
   width: 150px;
   height: 128px;
   display: block;
   overflow: hidden
}

.footer-logo>img {
   width: 150px;
   height: 150px;
   max-width: none;
   object-fit: contain;
   position: relative;
   top: -11px;
   mix-blend-mode: multiply
}

@media(max-width:760px) {
   .site-header {
      height: 86px
   }

   .site-header nav {
      top: 86px
   }

   .brand-mark {
      width: 108px;
      height: 84px
   }

   .brand-mark>img {
      width: 108px;
      height: 108px;
      top: -12px
   }

   .footer-logo {
      width: 130px;
      height: 110px
   }

   .footer-logo>img {
      width: 130px;
      height: 130px;
      top: -10px
   }
}

@media(max-width:430px) {
   .brand-mark {
      width: 100px;
      height: 82px
   }

   .brand-mark>img {
      width: 100px;
      height: 100px;
      top: -9px
   }
}

/* Marketplace-style footer: dense, scannable and responsive. */
footer {
   background: #151313;
   color: #fff;
   padding: 0
}

.back-to-top {
   height: 48px;
   background: #2a2625;
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
   margin: 0;
   font-size: 10px;
   font-weight: 800;
   letter-spacing: 1.5px;
   text-transform: uppercase;
   transition: background .2s
}

.back-to-top:hover {
   background: var(--red)
}

.back-to-top span {
   color: var(--red);
   font-size: 15px
}

.back-to-top:hover span {
   color: #fff
}

.footer-main {
   padding: 58px 7vw 48px;
   display: grid;
   grid-template-columns: 1.45fr repeat(3, 1fr) 1.25fr;
   gap: 4vw;
   max-width: 1500px;
   margin: auto
}

.footer-brand {
   min-width: 0
}

.footer-logo {
   width: 124px;
   height: 112px;
   background: #fff;
   border-radius: 12px;
   padding: 3px;
   overflow: hidden;
   box-shadow: 0 8px 28px #0005
}

.footer-logo>img {
   width: 118px;
   height: 118px;
   top: -6px;
   mix-blend-mode: normal
}

.footer-brand>p {
   color: #aaa3a0;
   font-size: 12px;
   line-height: 1.7;
   margin: 16px 0
}

.footer-main h4 {
   color: #fff;
   font-size: 10px;
   letter-spacing: 1.8px;
   margin: 7px 0 20px
}

.footer-links a {
   display: block;
   color: #aaa3a0;
   font-size: 11px;
   margin: 0 0 13px;
   transition: .2s
}

.footer-links a:hover {
   color: #fff;
   transform: translateX(3px)
}

.footer-socials {
   display: flex;
   gap: 7px
}

.footer-socials a {
   width: 31px;
   height: 31px;
   border: 1px solid #4b4644;
   border-radius: 50%;
   display: grid;
   place-items: center;
   color: #fff;
   font-size: 10px;
   margin: 0
}

.footer-socials a:hover {
   background: var(--red);
   border-color: var(--red)
}

.footer-app p {
   color: #aaa3a0;
   font-size: 10px;
   line-height: 1.6;
   margin-bottom: 14px
}

.footer-app>a {
   border: 1px solid #4b4644;
   border-radius: 5px;
   display: flex;
   align-items: center;
   gap: 9px;
   padding: 8px 10px;
   margin: 8px 0;
   color: #fff;
   max-width: 150px
}

.footer-app>a:hover {
   border-color: var(--red)
}

.footer-app>a b {
   font-size: 17px
}

.footer-app>a span {
   display: flex;
   flex-direction: column;
   font-size: 11px;
   font-weight: 700;
   line-height: 1.15
}

.footer-app>a small {
   font-size: 6px;
   font-weight: 500;
   color: #aaa
}

.footer-bottom {
   max-width: none;
   border-top: 1px solid #332f2e;
   margin: 0;
   padding: 20px 7vw;
   display: flex;
   align-items: center;
   justify-content: space-between;
   color: #777;
   font-size: 9px
}

.footer-bottom div {
   display: flex;
   gap: 24px
}

.footer-bottom a {
   color: #89817d
}

.footer-bottom a:hover {
   color: #fff
}



@media(max-width:1000px) {
   .footer-main {
      grid-template-columns: 1.3fr repeat(2, 1fr);
      gap: 38px
   }

   .footer-app {
      grid-column: 2
   }

   .footer-main>.footer-links:nth-of-type(3) {
      grid-column: 3
   }
}

@media(max-width:600px) {
   .back-to-top {
      height: 44px
   }

   .footer-main {
      padding: 35px 20px 30px;
      grid-template-columns: 1fr 1fr;
      gap: 32px 22px
   }

   .footer-brand {
      grid-column: 1/-1;
      display: grid;
      grid-template-columns: 105px 1fr;
      column-gap: 16px;
      align-items: center;
      border-bottom: 1px solid #332f2e;
      padding-bottom: 25px
   }

   .footer-logo {
      grid-row: 1/3;
      width: 100px;
      height: 96px;
      border-radius: 10px
   }

   .footer-logo>img {
      width: 96px;
      height: 96px;
      top: -2px
   }

   .footer-brand>p {
      margin: 0
   }

   .footer-socials {
      margin-top: 10px
   }

   .footer-main>.footer-links,
   .footer-main>.footer-links:nth-of-type(3) {
      grid-column: auto
   }

   .footer-links h4 {
      margin-bottom: 16px
   }

   .footer-links a {
      line-height: 1.4;
      margin-bottom: 11px
   }

   .footer-app {
      grid-column: 1/-1;
      border-top: 1px solid #332f2e;
      padding-top: 20px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px
   }

   .footer-app h4,
   .footer-app p {
      grid-column: 1/-1
   }

   .footer-app h4 {
      margin-bottom: 0
   }

   .footer-app p {
      margin: 0 0 5px
   }

   .footer-app>a {
      width: 100%;
      max-width: none;
      margin: 0
   }

   .footer-bottom {
      padding: 20px;
      display: grid;
      grid-template-columns: 1fr;
      gap: 14px;
      text-align: center
   }

   .footer-bottom div {
      justify-content: center;
      gap: 16px
   }


}

@media(max-width:360px) {
   .footer-main {
      padding-left: 15px;
      padding-right: 15px;
      gap: 28px 14px
   }

   .footer-brand {
      grid-template-columns: 90px 1fr
   }

   .footer-logo {
      width: 86px;
      height: 86px
   }

   .footer-logo>img {
      width: 86px;
      height: 86px
   }

   .footer-app>a {
      padding: 7px
   }

   .footer-bottom div {
      gap: 10px
   }
}

/* Warm footer palette, matched to the landing page. */
footer {
   background: #f3e9dc;
   color: var(--ink)
}

.back-to-top {
   background: #e6d6c3;
   color: var(--ink);
   border-top: 1px solid #d8c4ae
}

.back-to-top:hover {
   background: var(--red);
   color: #fff
}

.footer-main h4 {
   color: var(--ink)
}

.footer-logo {
   background: #fffdf9;
   border: 1px solid #decfbd;
   box-shadow: 0 10px 28px #6e4c2d18
}

.footer-brand>p,
.footer-links a,
.footer-app p {
   color: #746b63
}

.footer-links a:hover {
   color: var(--red)
}

.footer-socials a {
   color: var(--ink);
   border-color: #cbb9a5;
   background: #fff8ef
}

.footer-socials a:hover {
   color: #fff;
   background: var(--red);
   border-color: var(--red)
}

.footer-app>a {
   color: var(--ink);
   background: #fff8ef;
   border-color: #cbb9a5
}

.footer-app>a:hover {
   border-color: var(--red);
   background: #fff
}

.footer-app>a small {
   color: #756c64
}

.footer-bottom {
   background: #eadccb;
   border-top-color: #d5c2ad;
   color: #6e655d
}

.footer-bottom a {
   color: #5e5650
}

.footer-bottom a:hover {
   color: var(--red)
}

@media(max-width:600px) {

   .footer-brand,
   .footer-app {
      border-color: #d5c2ad
   }
}

/* Final footer type scale (kept last so earlier theme rules cannot shrink it). */
.footer-brand>p,
.footer-links a,
.footer-app p {
   font-size: 14px;
   line-height: 1.65
}

.footer-main h4 {
   font-size: 13px;
}

.footer-app>a span {
   font-size: 13px;
}

.footer-app>a small {
   font-size: 9px;
}

.footer-bottom {
   font-size: 13px;
}

@media(max-width:600px) {
   .footer-main h4 {
      font-size: 12px;
   }

   .footer-brand>p,
   .footer-links a,
   .footer-app p {
      font-size: 13px;
   }

   .footer-bottom {
      font-size: 12px;
   }
}

/* Keep these mobile overrides last so legacy rules cannot resize the mockups. */
@media(max-width:760px) {
   .app-section {
      display: flex;
      flex-direction: column;
      min-height: 0;
      padding-left: 20px;
      padding-right: 20px
   }

   .app-copy {
      width: 100%
   }

   .app-copy h2 {
      font-size: clamp(42px, 13vw, 62px)
   }

   .store-buttons {
      flex-direction: column;
      width: 100%;
      max-width: 320px
   }

   .store-buttons a {
      width: 100%;
      min-width: 0
   }

   .phones {
      width: 100%;
      min-height: 470px;
      margin-top: 50px;
      overflow: hidden;
      transform: none
   }

   .phone {
      width: 190px;
      height: 385px;
      border-width: 6px;
      border-radius: 28px
   }

   .phone:before {
      width: 54px;
      height: 13px;
      top: 8px
   }

   .phone-screen {
      padding: 31px 12px 12px
   }

   .phone-back {
      left: calc(50% - 174px);
      top: 50px;
      transform: rotate(-8deg)
   }

   .phone-front {
      left: calc(50% - 12px);
      top: 18px;
      transform: rotate(7deg)
   }

   .phone h4 {
      font-size: 16px
   }

   .mini-food {
      height: 145px;
      font-size: 60px
   }

   .map {
      height: 210px;
      margin: -31px -12px 15px
   }

   .map .route {
      width: 120px;
      height: 120px;
      left: 30px;
      top: 52px
   }

   .app-scribble {
      display: none
   }

   .contact-section {
      grid-template-columns: 1fr;
      gap: 34px
   }
}

@media(max-width:480px) {
   .phones {
      min-height: 390px
   }

   .phone {
      width: 158px;
      height: 326px;
      border-width: 5px;
      border-radius: 24px
   }

   .phone-back {
      left: calc(50% - 146px);
      top: 42px
   }

   .phone-front {
      left: calc(50% - 6px);
      top: 12px
   }

   .phone-screen {
      padding: 27px 10px 10px
   }

   .phone h4 {
      font-size: 14px;
      margin-bottom: 12px
   }

   .mini-search {
      padding: 8px;
      font-size: 8px
   }

   .mini-food {
      height: 120px;
      margin: 14px 0;
      font-size: 48px
   }

   .map {
      height: 175px;
      margin: -27px -10px 12px
   }

   .mini-order {
      padding: 8px;
      margin-top: 10px
   }

   .contact-form {
      grid-template-columns: 1fr;
      padding: 22px 16px
   }

   .form-field,
   .form-field--full,
   .contact-form button {
      grid-column: 1
   }
}

/* FAQ accordion and shared interactive feedback. */
.faq-section {
   background: #f3e9dc;
   display: grid;
   grid-template-columns: .8fr 1.2fr;
   gap: clamp(40px, 8vw, 120px);
   align-items: start
}

.faq-heading {
   position: sticky;
   top: 120px
}

.faq-heading h2 {
   font-size: clamp(45px, 5.5vw, 76px);
   line-height: 1.05;
   margin: 14px 0 22px
}

.faq-heading>p:not(.eyebrow) {
   color: #6f6862;
   line-height: 1.75;
   max-width: 420px
}

.faq-list {
   border-top: 1px solid #cdbba7
}

.faq-list details {
   border-bottom: 1px solid #cdbba7
}

.faq-list summary {
   list-style: none;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   padding: 25px 2px;
   cursor: pointer;
   font-size: clamp(16px, 1.5vw, 20px);
   font-weight: 800
}

.faq-list summary::-webkit-details-marker {
   display: none
}

.faq-list summary span {
   width: 32px;
   height: 32px;
   flex: 0 0 32px;
   border: 1px solid #b8a38d;
   border-radius: 50%;
   display: grid;
   place-items: center;
   font-size: 22px;
   line-height: 1;
   transition: transform .25s, background .25s, color .25s
}

.faq-list details[open] summary span {
   transform: rotate(45deg);
   background: var(--red);
   border-color: var(--red);
   color: #fff
}

.faq-list details>p {
   color: #6f6862;
   line-height: 1.75;
   max-width: 680px;
   padding: 0 50px 24px 2px;
   margin: 0
}

.faq-list summary:hover {
   color: var(--red)
}

.header-cta,
.location-search button,
.text-link,
.store-buttons a,
.footer-app>a,
.contact-form button,
.category-card,
.role a,
.review-foot a {
   transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease
}

.header-cta:hover,
.location-search button:hover,
.contact-form button:hover {
   transform: translateY(-3px);
   box-shadow: 0 10px 22px #e7412b45
}

.store-buttons a:hover,
.footer-app>a:hover {
   transform: translateY(-3px);
   box-shadow: 0 10px 24px #0004;
   border-color: var(--red)
}

.text-link:hover,
.role a:hover,
.review-foot a:hover {
   color: var(--red)
}

.text-link:hover span,
.role a:hover span,
.review-foot a:hover b {
   display: inline-block;
   transform: translateX(5px)
}

.category-card:hover {
   transform: translateY(-7px);
   box-shadow: 0 18px 35px #38271920
}

.header-cta:active,
.location-search button:active,
.contact-form button:active,
.store-buttons a:active,
.footer-app>a:active {
   transform: translateY(0) scale(.98)
}

@media(max-width:760px) {
   .faq-section {
      grid-template-columns: 1fr;
      gap: 36px
   }

   .faq-heading {
      position: static
   }

   .faq-heading h2 {
      font-size: clamp(42px, 12vw, 60px)
   }
}

@media(max-width:480px) {
   .faq-list summary {
      padding: 20px 0;
      font-size: 16px
   }

   .faq-list details>p {
      padding-right: 15px
   }

   .faq-list summary span {
      width: 28px;
      height: 28px;
      flex-basis: 28px
   }
}

@media(prefers-reduced-motion:reduce) {

   .header-cta,
   .location-search button,
   .text-link,
   .store-buttons a,
   .footer-app>a,
   .contact-form button,
   .category-card,
   .role a,
   .review-foot a,
   .faq-list summary span {
      transition: none
   }
}

.find-food-button {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 14px;
   margin-top: 28px;
   padding: 17px 26px;
   border-radius: 7px;
   background: var(--red);
   color: #fff;
   font-weight: 800;
   box-shadow: 0 8px 20px #e7412b30;
   transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease
}

.find-food-button span {
   font-size: 20px;
   transition: transform .2s ease
}

.find-food-button:hover {
   transform: translateY(-3px);
   box-shadow: 0 12px 25px #e7412b4d;
   background: #c92f20
}

.find-food-button:hover span {
   transform: translateX(5px)
}

.find-food-button:active {
   transform: translateY(0) scale(.98)
}

@media(prefers-reduced-motion:reduce) {

   .find-food-button,
   .find-food-button span {
      transition: none
   }
}

/* Privacy and Terms page button interaction. */
.legal-back {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   padding: 12px 18px;
   border: 1px solid #cdb9a2;
   border-radius: 7px;
   background: #fff8ef;
   box-shadow: 0 5px 14px #6e4c2d12;
   transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease
}

.legal-back:hover {
   transform: translateY(-3px);
   background: var(--red);
   border-color: var(--red);
   color: #fff;
   box-shadow: 0 10px 22px #e7412b3d
}

.legal-back:active {
   transform: translateY(0) scale(.98)
}

.legal-back:focus-visible {
   outline: 3px solid #e7412b40;
   outline-offset: 3px
}

@media(prefers-reduced-motion:reduce) {
   .legal-back {
      transition: none
   }
}

/* Isolated legal-page typography and landing-page-style CTA. */
.legal-page,
.legal-page button,
.legal-page input,
.legal-page textarea {
   font-family: "Manrope", Arial, sans-serif
}

.legal-document h1 {
   font-family: "Manrope", Arial, sans-serif;
   font-weight: 800;
   letter-spacing: -2.5px;
   line-height: 1.08
}

.legal-document h2 {
   font-family: "Manrope", Arial, sans-serif;
   font-size: clamp(21px, 2.2vw, 26px);
   font-weight: 800;
   letter-spacing: -.6px;
   line-height: 1.3;
   margin: 42px 0 12px
}

.legal-document p {
   font-family: "Manrope", Arial, sans-serif;
   font-weight: 400;
   letter-spacing: 0;
   line-height: 1.8
}

.legal-back {
   gap: 12px;
   padding: 14px 21px;
   border: 0;
   border-radius: 7px;
   background: var(--red);
   color: #fff;
   box-shadow: 0 8px 20px #e7412b30
}

.legal-back span {
   font-size: 19px;
   line-height: 1;
   transition: transform .2s ease
}

.legal-back:hover {
   background: #c92f20;
   color: #fff;
   box-shadow: 0 12px 25px #e7412b4d
}

.legal-back:hover span {
   transform: translateX(-5px)
}

@media(max-width:480px) {
   .legal-document h1 {
      letter-spacing: -1.5px
   }

   .legal-back {
      padding: 12px 15px;
      font-size: 12px
   }
}

@media(prefers-reduced-motion:reduce) {
   .legal-back span {
      transition: none
   }
}

/* Consistent vector icon system replacing platform-dependent emoji. */
.icon-sprite {
   position: absolute;
   width: 0;
   height: 0;
   overflow: hidden
}

.faces svg,
.driver svg,
.dish svg,
.role-art svg,
.mini-food svg,
.map svg,
.mini-order>svg,


.faces span {
   display: grid;
   place-items: center
}

.faces svg {
   width: 18px;
   height: 18px
}

.driver svg {
   width: 27px;
   height: 27px
}

.dish svg {
   width: 88px;
   height: 88px;
   margin: auto
}

.role-art svg {
   width: 76px;
   height: 76px
}

.mini-food svg {
   width: 90px;
   height: 90px
}

.map i svg,
.map b svg {
   width: 23px;
   height: 23px
}

.mini-order>svg {
   width: 25px;
   height: 25px;
   flex: 0 0 25px
}

/* Sticky navigation and centered mobile menu. */
html { scroll-padding-top: 112px }

.site-header {
   position: sticky;
   top: 0;
   width: 100%;
   z-index: 1000;
   background: rgba(255, 253, 249, .78);
   border-bottom: 1px solid rgba(255, 255, 255, .72);
   box-shadow: 0 8px 30px rgba(44, 25, 12, .09);
   -webkit-backdrop-filter: blur(18px) saturate(145%);
   backdrop-filter: blur(18px) saturate(145%)
}

.store-platform-icon {
   display: grid !important;
   place-items: center;
   flex: 0 0 26px;
   width: 26px;
   height: 26px;
   color: #fff
}

.store-platform-icon svg {
   display: block;
   width: 26px;
   height: 26px;
   fill: currentColor
}

/* Footer store badges use a light background, so the Apple mark must be dark. */
.footer-app>a .store-platform-icon {
   color: #111;
   visibility: visible;
   opacity: 1
}

@media(max-width:760px) {
   html { scroll-padding-top: 94px }

   .site-header {
      gap: 10px;
      padding-inline: 14px
   }

   .site-header .brand {
      min-width: 0;
      margin-right: auto
   }

   .site-header>.header-cta { display: none }

   .site-header .hamburger {
      position: relative;
      flex: 0 0 32px
   }

   .site-header .hamburger span {
      transition: transform .2s ease, opacity .2s ease
   }

   .site-header .nav-toggle:checked + .hamburger span:first-child {
      transform: translateY(4.5px) rotate(45deg)
   }

   .site-header .nav-toggle:checked + .hamburger span:last-child {
      transform: translateY(-4.5px) rotate(-45deg)
   }

   .site-header nav {
      position: fixed;
      top: 94px;
      left: 50%;
      right: auto;
      width: min(420px, calc(100vw - 28px));
      max-height: calc(100dvh - 108px);
      overflow-y: auto;
      transform: translateX(-50%);
      padding: 16px;
      background: rgba(255, 253, 249, .9);
      border: 1px solid rgba(255, 255, 255, .82);
      border-radius: 12px;
      box-shadow: 0 18px 45px rgba(44, 25, 12, .18);
      -webkit-backdrop-filter: blur(22px) saturate(150%);
      backdrop-filter: blur(22px) saturate(150%)
   }

   .site-header nav a {
      width: 100%;
      padding: 13px 14px;
      border-radius: 7px
   }

   .site-header nav a:hover,
   .site-header nav a:focus-visible { background: #f7f1e8 }

   .site-header nav .mobile-order-cta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 6px;
      padding: 13px 14px;
      background: var(--red);
      color: #fff
   }

   .site-header nav .mobile-order-cta:hover,
   .site-header nav .mobile-order-cta:focus-visible {
      background: var(--red-dark);
      color: #fff
   }
}

@media(max-width:380px) {
   .site-header .brand-mark {
      width: 82px
   }

   .site-header .brand-mark>img {
      width: 92px
   }

}
