.location-hub{--lh-red:#c60000;--lh-dark:#850000;--lh-gold:#f6b800;--lh-green:#24984a;--lh-bg:#fff9ee;--lh-card:#fffdf8;--lh-ink:#191313;--lh-muted:#6e615d;--lh-line:rgba(83,38,24,.13);--lh-shadow:0 26px 80px rgba(62,24,10,.14);position:relative;overflow:hidden;padding:clamp(78px,9vw,132px) 0;color:var(--lh-ink);background:radial-gradient(circle at 8% 10%,rgba(246,184,0,.12),transparent 26rem),radial-gradient(circle at 92% 90%,rgba(198,0,0,.08),transparent 30rem),var(--lh-bg)}.location-hub *{box-sizing:border-box}.location-hub__heading{max-width:1050px;margin:0 auto clamp(34px,5vw,64px);text-align:center}.location-hub__eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--lh-red);font-size:.8rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase}.location-hub__eyebrow:before,.location-hub__eyebrow:after{width:40px;height:1px;content:"";background:linear-gradient(90deg,transparent,var(--lh-gold))}.location-hub__eyebrow:after{background:linear-gradient(90deg,var(--lh-gold),transparent)}.location-hub__title{margin:.25em 0 .28em;font-size:clamp(2.5rem,5.2vw,5.35rem);line-height:.95;letter-spacing:-.055em}.location-hub__lead{max-width:810px;margin:0 auto;color:var(--lh-muted);font-size:clamp(1rem,1.6vw,1.16rem);line-height:1.7}.location-hub__layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);align-items:start;gap:22px}.location-hub__visuals,.location-hub__right{display:grid;min-width:0;gap:22px}.location-hub__visuals{grid-template-rows:280px minmax(380px,440px)}.location-hub__map-panel,.location-hub__photo-panel,.location-hub__info-panel,.popular-times{border:1px solid var(--lh-line);border-radius:28px;box-shadow:var(--lh-shadow)}.location-hub__map-panel{position:relative;min-width:0;overflow:hidden;background:var(--lh-card)}.location-hub__map-panel iframe{display:block;width:100%;height:100%;border:0}.location-hub__map-link{position:absolute;right:16px;bottom:16px;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;color:#fff;background:rgba(20,5,4,.82);border:1px solid rgba(255,255,255,.23);border-radius:999px;font-size:.82rem;font-weight:900;backdrop-filter:blur(12px);transition:.22s}.location-hub__map-link:hover,.location-hub__map-link:focus-visible{transform:translateY(-2px);background:var(--lh-red)}.location-hub__photo-panel{position:relative;min-height:0;overflow:hidden;background:#2b1710}.location-hub__photo-panel>img{display:block;width:100%;height:100%;min-height:0;object-fit:cover;object-position:center;transition:transform .8s}.location-hub__photo-panel:hover>img{transform:scale(1.035)}.location-hub__photo-panel:after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,transparent 42%,rgba(25,5,3,.8))}.location-hub__photo-copy{position:absolute;right:26px;bottom:26px;left:26px;z-index:2;color:#fff}.location-hub__photo-copy h3{max-width:590px;margin:0;font-size:clamp(1.55rem,3vw,3rem);line-height:1}.location-hub__photo-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.location-hub__photo-badges span{padding:10px 13px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(21,4,3,.55);font-size:.8rem;font-weight:900;backdrop-filter:blur(12px)}.location-hub__info-panel,.popular-times{padding:clamp(22px,3vw,36px);background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(255,249,236,.96))}.location-hub__info-head,.popular-times__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.location-hub__info-head h3{margin:0;color:var(--lh-red);font-size:1.1rem;letter-spacing:.05em;text-transform:uppercase}.location-hub__status{display:inline-flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid rgba(36,152,74,.22);border-radius:999px;color:#136c33;background:rgba(36,152,74,.09);font-weight:900;white-space:nowrap}.location-hub__status-dot{width:10px;height:10px;border-radius:50%;background:var(--lh-green);box-shadow:0 0 0 5px rgba(36,152,74,.12)}.location-hub__detail{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--lh-line)}.location-hub__detail:last-child{border-bottom:0}.location-hub__icon{display:grid;place-items:center;width:42px;height:42px;color:var(--lh-red);background:rgba(198,0,0,.08);border-radius:50%;font-size:1.2rem}.location-hub__detail strong{display:block}.location-hub__detail small{color:var(--lh-muted)}.location-hub__hours-toggle{width:100%;margin-top:10px;padding:14px 0 5px;border:0;color:var(--lh-red);background:transparent;font:inherit;font-weight:950;text-align:left;cursor:pointer}.location-hub__hours{display:grid;grid-template-columns:1fr auto;gap:9px 24px;max-height:0;overflow:hidden;opacity:0;transition:.35s}.location-hub__hours.is-open{max-height:330px;padding-top:14px;opacity:1}.location-hub__hours .is-today{color:var(--lh-red);font-weight:950}.location-hub__services{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.location-hub__service{padding:15px 12px;text-align:center;border:1px solid var(--lh-line);border-radius:18px;background:rgba(255,255,255,.66)}.location-hub__service b{display:block;margin:7px 0 2px}.location-hub__service small{color:var(--lh-muted)}.location-hub__actions{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:10px;margin-top:20px}.location-hub__button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 16px;border:1px solid var(--lh-line);border-radius:16px;font-weight:950;text-align:center;transition:.22s}.location-hub__button:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(55,20,10,.14)}.location-hub__button--primary{color:#fff;border-color:transparent;background:linear-gradient(135deg,#e10b20,var(--lh-dark))}.location-hub__button--outline{color:var(--lh-red);border-color:rgba(198,0,0,.45)}.location-hub__button--soft{background:#fff6dd}.popular-times__header h3{margin:0;font-size:clamp(1.35rem,2vw,1.8rem)}.popular-times__header p{margin:5px 0 0;color:var(--lh-muted);font-size:.9rem}.popular-times__live{min-width:168px;padding:12px 14px;border:1px solid rgba(198,0,0,.14);border-radius:15px;background:rgba(198,0,0,.05)}.popular-times__live strong,.popular-times__live span{display:block}.popular-times__live strong{color:var(--lh-red)}.popular-times__live span{margin-top:3px;color:var(--lh-muted);font-size:.82rem}.popular-times__tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:18px 0}.popular-times__tab{min-height:38px;border:0;border-bottom:3px solid transparent;color:var(--lh-muted);background:transparent;font-weight:900;cursor:pointer}.popular-times__tab.is-active{color:var(--lh-red);border-bottom-color:var(--lh-red)}.popular-times__chart-wrap{position:relative;padding-top:16px}.popular-times__chart-wrap:before{position:absolute;inset:15px 0 31px;content:"";background:linear-gradient(to top,var(--lh-line) 1px,transparent 1px) 0 100%/100% 33.333%}.popular-times__chart{position:relative;z-index:1;display:grid;grid-template-columns:repeat(24,minmax(8px,1fr));align-items:end;gap:clamp(3px,.45vw,7px);height:190px;border-bottom:1px solid rgba(31,17,12,.25)}.popular-times__bar{position:relative;min-height:7px;border:0;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#73aaff,#4f83e6);cursor:pointer;transition:.25s}.popular-times__bar:hover{filter:brightness(1.08);transform:scaleX(1.12)}.popular-times__bar.is-current{background:linear-gradient(180deg,#ee6971,#c93c46);box-shadow:0 0 0 4px rgba(198,0,0,.08)}.popular-times__bar.is-best{background:linear-gradient(180deg,#f8ca42,#e9a900)}.popular-times__tooltip{position:absolute;right:0;bottom:calc(100% + 9px);z-index:5;width:max-content;max-width:170px;padding:8px 10px;color:#fff;background:#1a1110;border-radius:9px;font-size:.76rem;line-height:1.35;pointer-events:none;opacity:0;transition:.18s}.popular-times__bar:hover .popular-times__tooltip,.popular-times__bar:focus-visible .popular-times__tooltip{opacity:1}.popular-times__labels{display:grid;grid-template-columns:repeat(8,1fr);margin-top:8px;color:var(--lh-muted);font-size:.72rem}.popular-times__labels span:last-child{text-align:right}.popular-times__insights{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.popular-times__insight{padding:14px;border:1px solid var(--lh-line);border-radius:16px;background:rgba(255,255,255,.6)}.popular-times__insight strong{display:block;color:var(--lh-red);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase}.popular-times__insight span{display:block;margin-top:5px;font-weight:850}.popular-times__footnote{margin:15px 0 0;color:var(--lh-muted);font-size:.78rem;line-height:1.5}body.location-theme-dark .location-hub{--lh-bg:#100505;--lh-card:#1b0a09;--lh-ink:#fff8ef;--lh-muted:#cdbab3;--lh-line:rgba(255,238,219,.13);--lh-shadow:0 28px 85px rgba(0,0,0,.42);background:radial-gradient(circle at 8% 10%,rgba(246,184,0,.11),transparent 25rem),radial-gradient(circle at 92% 90%,rgba(198,0,0,.2),transparent 31rem),#0d0303}body.location-theme-dark .location-hub__info-panel,body.location-theme-dark .popular-times{background:linear-gradient(145deg,rgba(37,12,11,.97),rgba(22,7,6,.98))}body.location-theme-dark .location-hub__service,body.location-theme-dark .popular-times__insight{background:rgba(255,255,255,.035)}body.location-theme-dark .location-hub__button--soft{color:#241100;background:linear-gradient(135deg,#ffe5a1,#f4ba34)}@media(max-width:1100px){.location-hub__layout{grid-template-columns:1fr}.location-hub__visuals{grid-template-rows:300px minmax(360px,430px)}}@media(max-width:760px){.location-hub__heading{text-align:left}.location-hub__eyebrow:before,.location-hub__eyebrow:after{display:none}.location-hub__lead{margin-left:0}.location-hub__visuals{grid-template-rows:260px 340px}.location-hub__services,.location-hub__actions,.popular-times__insights{grid-template-columns:1fr}.popular-times__header{display:block}.popular-times__live{margin-top:14px}.popular-times__tabs{overflow-x:auto;grid-template-columns:repeat(7,minmax(58px,1fr))}.popular-times__chart{gap:3px;height:165px}}@media(max-width:480px){.location-hub__visuals{grid-template-rows:230px 300px}.location-hub__photo-copy{right:18px;bottom:18px;left:18px}.location-hub__photo-copy h3{font-size:1.35rem}.location-hub__photo-badges span{padding:8px 10px;font-size:.72rem}}@media(prefers-reduced-motion:reduce){.location-hub *{transition-duration:.01ms!important}}


@media (min-width: 761px) and (max-width: 1100px) {
  .location-hub__trust-row {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* =========================================================
   APP ORDERING MOCKUPS — DISCLOSURE
   These styles affect only the nonfunctional concept screens
   displayed inside the existing Order section.
   ========================================================= */

.app-demo-disclosure {
  max-width: 920px;
  margin: 22px 0 26px;
  padding: 15px 18px;
  border: 1px solid rgba(198, 0, 0, .2);
  border-left: 5px solid #c60000;
  border-radius: 14px;
  color: var(--muted);
  background: rgba(198, 0, 0, .055);
  font-size: .9rem;
  line-height: 1.55;
}

.app-demo-disclosure strong {
  color: var(--red);
}

/* =========================================================
   APP ORDERING MOCKUPS — ORDER PANEL OVERRIDES
   The original order panel remains intact. JavaScript replaces
   only the right-side placeholder with a presentation mockup.
   ========================================================= */

.order-panel:has(.ordering-app-demo) {
  grid-template-columns: minmax(330px, .82fr) minmax(390px, 1.18fr);
  align-items: stretch;
}

.order-panel:has(.ordering-app-demo) .embed-shell {
  min-height: 610px;
  padding: clamp(20px, 3vw, 34px);
  overflow: hidden;
  background:
    radial-gradient(circle at 85% 10%, rgba(246, 184, 0, .14), transparent 18rem),
    linear-gradient(145deg, #1f0808, #090303);
}

.order-panel:has(.ordering-app-demo) > div:first-child {
  align-self: center;
}

/* =========================================================
   APP ORDERING MOCKUPS — STAGE & PHONE
   ========================================================= */

.ordering-app-demo {
  --app-accent: #c60000;
  --app-accent-2: #8b0000;
  --app-surface: #ffffff;
  --app-ink: #171717;
  --app-muted: #686868;

  position: relative;
  display: grid;
  grid-template-columns: minmax(250px, 340px) minmax(170px, 1fr);
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 3vw, 34px);
  width: 100%;
  min-height: 545px;
}

.ordering-app-demo::before {
  position: absolute;
  inset: 8% 2%;
  pointer-events: none;
  content: "";
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--app-accent) 28%, transparent), transparent 66%);
  filter: blur(28px);
}

.ordering-app-demo__phone {
  position: relative;
  z-index: 2;
  width: min(100%, 330px);
  margin: auto;
  padding: 11px;
  border: 2px solid rgba(255, 255, 255, .2);
  border-radius: 42px;
  background: linear-gradient(145deg, #282828, #050505);
  box-shadow:
    0 34px 70px rgba(0, 0, 0, .48),
    inset 0 0 0 1px rgba(255, 255, 255, .1);
}

.ordering-app-demo__phone::before {
  position: absolute;
  top: 17px;
  left: 50%;
  z-index: 4;
  width: 82px;
  height: 19px;
  content: "";
  border-radius: 999px;
  background: #070707;
  transform: translateX(-50%);
}

.ordering-app-demo__screen {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  color: var(--app-ink);
  background: var(--app-surface);
  border-radius: 31px;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

.ordering-app-demo__screen button,
.ordering-app-demo__screen input {
  font: inherit;
}

.ordering-app-demo__screen button {
  cursor: default;
}

.ordering-app-demo__status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 34px;
  padding: 8px 17px 0;
  color: #111;
  font-size: .68rem;
  font-weight: 850;
}

.ordering-app-demo__brand {
  display: grid;
  place-items: center;
  min-height: 92px;
  padding: 24px 20px 12px;
}

.ordering-app-demo__brand img {
  display: block;
  width: auto;
  max-width: 170px;
  max-height: 54px;
  object-fit: contain;
}

.ordering-app-demo__content {
  padding: 16px 22px 25px;
}

.ordering-app-demo__content h4 {
  margin: 0 0 10px;
  color: var(--app-ink);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.05;
  letter-spacing: -.035em;
}

.ordering-app-demo__content > p {
  margin: 0 0 18px;
  color: var(--app-muted);
  font-size: .82rem;
  line-height: 1.45;
}

.ordering-app-demo__field {
  display: block;
  width: 100%;
  min-height: 47px;
  margin-bottom: 11px;
  padding: 0 14px;
  border: 1px solid #d7d7d7;
  border-radius: 9px;
  color: #777;
  background: #fff;
  font-size: .8rem;
}

.ordering-app-demo__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 46px;
  margin: 9px 0;
  padding: 0 15px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--app-accent);
  font-size: .86rem;
  font-weight: 900;
}

.ordering-app-demo__button--dark {
  background: #111;
}

.ordering-app-demo__button--light {
  color: #151515;
  border: 1px solid #dadada;
  background: #f2f2f2;
}

.ordering-app-demo__button--outline {
  color: var(--app-accent);
  border: 1px solid currentColor;
  background: transparent;
}

.ordering-app-demo__divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px 0;
  color: #999;
  font-size: .68rem;
}

.ordering-app-demo__divider::before,
.ordering-app-demo__divider::after {
  flex: 1;
  height: 1px;
  content: "";
  background: #e3e3e3;
}

.ordering-app-demo__fineprint {
  margin-top: 16px;
  color: #8b8b8b;
  font-size: .61rem;
  line-height: 1.45;
  text-align: center;
}

.ordering-app-demo__mock-label {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 3;
  padding: 6px 9px;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 999px;
  color: #555;
  background: rgba(255, 255, 255, .9);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* =========================================================
   APP ORDERING MOCKUPS — EXPLANATION PANEL
   ========================================================= */

.ordering-app-demo__explain {
  position: relative;
  z-index: 2;
  color: #fff;
}

.ordering-app-demo__explain-logo {
  display: flex;
  align-items: center;
  min-height: 58px;
  margin-bottom: 14px;
}

.ordering-app-demo__explain-logo img {
  width: auto;
  max-width: 190px;
  max-height: 62px;
  object-fit: contain;
  filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .24));
}

.ordering-app-demo__explain h4 {
  margin: 0 0 10px;
  font-size: clamp(1.55rem, 3vw, 2.7rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.ordering-app-demo__explain p {
  color: rgba(255, 255, 255, .76);
  line-height: 1.6;
}

.ordering-app-demo__features {
  display: grid;
  gap: 9px;
  margin-top: 20px;
}

.ordering-app-demo__feature {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 10px;
  align-items: start;
  padding: 11px 12px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 13px;
  background: rgba(255, 255, 255, .055);
}

.ordering-app-demo__feature b {
  display: block;
  margin-bottom: 2px;
  font-size: .86rem;
}

.ordering-app-demo__feature small {
  color: rgba(255, 255, 255, .68);
  line-height: 1.4;
}

/* =========================================================
   APP ORDERING MOCKUPS — PROVIDER BRAND THEMES
   ========================================================= */

.ordering-app-demo[data-provider="direct"] {
  --app-accent: #c60000;
  --app-accent-2: #8b0000;
}

.ordering-app-demo[data-provider="doordash"] {
  --app-accent: #eb1700;
  --app-accent-2: #b11100;
}

.ordering-app-demo[data-provider="ubereats"] {
  --app-accent: #06c167;
  --app-accent-2: #048d4c;
}

.ordering-app-demo[data-provider="grubhub"] {
  --app-accent: #ff8000;
  --app-accent-2: #e76700;
}

.ordering-app-demo[data-provider="rewards"] {
  --app-accent: #d4142b;
  --app-accent-2: #970718;
}

/* DoorDash-style decorative food field */
.ordering-app-demo[data-provider="doordash"] .ordering-app-demo__screen {
  background:
    radial-gradient(circle at 10% 8%, #f4d6bd 0 32px, transparent 33px),
    radial-gradient(circle at 88% 13%, #d8b59c 0 25px, transparent 26px),
    radial-gradient(circle at 12% 37%, #cfe8c5 0 39px, transparent 40px),
    radial-gradient(circle at 88% 35%, #f2d7bd 0 32px, transparent 33px),
    linear-gradient(#fff, #fff);
}

.ordering-app-demo[data-provider="doordash"] .ordering-app-demo__content {
  margin-top: 92px;
  padding-top: 0;
  background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .96) 24%);
}

/* Denny's Direct menu preview */
.ordering-app-demo__mini-menu {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin: 13px 0;
}

.ordering-app-demo__mini-item {
  overflow: hidden;
  border: 1px solid #ece4d8;
  border-radius: 12px;
  background: #fffaf2;
}

.ordering-app-demo__mini-item img {
  width: 100%;
  height: 74px;
  object-fit: cover;
}

.ordering-app-demo__mini-item span {
  display: block;
  padding: 8px;
  font-size: .68rem;
  font-weight: 850;
}

/* Rewards promotional screen */
.ordering-app-demo[data-provider="rewards"] .ordering-app-demo__screen {
  color: #fff;
  background: linear-gradient(180deg, #e51f37, #b70720);
}

.ordering-app-demo[data-provider="rewards"] .ordering-app-demo__status,
.ordering-app-demo[data-provider="rewards"] .ordering-app-demo__content h4,
.ordering-app-demo[data-provider="rewards"] .ordering-app-demo__content > p {
  color: #fff;
}

.ordering-app-demo[data-provider="rewards"] .ordering-app-demo__content {
  text-align: center;
}

.ordering-app-demo__reward-card {
  margin: 15px 0;
  padding: 18px;
  color: #34230a;
  background: linear-gradient(145deg, #fff8df, #f6c44b);
  border-radius: 18px;
  box-shadow: 0 18px 30px rgba(87, 0, 11, .24);
}

.ordering-app-demo__reward-card strong {
  display: block;
  font-size: 1.2rem;
}

/* =========================================================
   APP ORDERING MOCKUPS — RESPONSIVE
   ========================================================= */

@media (max-width: 980px) {
  .order-panel:has(.ordering-app-demo) {
    grid-template-columns: 1fr;
  }

  .ordering-app-demo {
    grid-template-columns: minmax(240px, 330px) minmax(220px, 1fr);
  }
}

@media (max-width: 680px) {
  .order-panel:has(.ordering-app-demo) .embed-shell {
    min-height: 0;
  }

  .ordering-app-demo {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .ordering-app-demo__explain {
    order: -1;
  }

  .ordering-app-demo__phone {
    width: min(100%, 315px);
  }

  .ordering-app-demo__screen {
    min-height: 500px;
  }
}
