/* Original JoinMyRewards LuckyStarProfileTemplate styles, namespaced for Fresh Grid. */
.lp-page {
  --green: #138647;
  --green-dark: #075c30;
  --gold: #f0c43e;
  --ink: #102a43;
  --muted: #607080;
  min-height: 100vh;
  color: var(--ink);
  background: #f7f8f5;
}
.lp-page * {
  box-sizing: border-box;
}
.lp-hero {
  position: relative;
  height: clamp(430px, 58svh, 610px);
  overflow: hidden;
  color: #fff;
  background: radial-gradient(circle at 80% 20%, #1c7449, #07150e 60%);
}
.lp-hero > img,
.lp-closingSection > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lp-heroShade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.76),
      rgba(0, 0, 0, 0.26) 62%,
      transparent
    ),
    linear-gradient(0deg, rgba(0, 0, 0, 0.78), transparent 55%);
}
.lp-heroIdentity {
  position: absolute;
  z-index: 2;
  top: clamp(38px, 7vw, 82px);
  left: max(24px, calc((100vw - 1240px) /2));
  max-width: min(720px, calc(100% - 48px));
  text-shadow: 0 3px 20px rgba(0, 0, 0, 0.65);
}
.lp-heroIdentity > p,
.lp-featureCopy > p,
.lp-closingSection p {
  margin: 0 0 10px;
  color: #f8d557;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.lp-nameLine {
  display: flex;
  align-items: center;
  gap: 18px;
}
.lp-nameLine > img {
  width: 76px;
  height: 76px;
  border: 3px solid rgba(255, 255, 255, 0.8);
  border-radius: 20px;
  object-fit: cover;
  background: #fff;
}
.lp-nameLine h1 {
  max-width: 660px;
  margin: 0;
  font:
    900 clamp(42px, 7vw, 80px)/0.92 Georgia,
    serif;
  letter-spacing: -0.055em;
}
.lp-heroIdentity > span {
  display: block;
  margin-top: 16px;
  font-size: 18px;
  font-weight: 800;
}
.lp-heroActions {
  position: absolute;
  z-index: 3;
  right: max(24px, calc((100vw - 1240px) /2));
  bottom: 28px;
  left: max(24px, calc((100vw - 1240px) /2));
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
.lp-orderButton,
.lp-heroActions > button {
  display: inline-flex;
  min-height: 56px;
  min-width: min(360px, 48vw);
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 15px;
  padding: 15px 25px;
  color: #fff;
  background: linear-gradient(135deg, #19a85b, var(--green));
  box-shadow: 0 12px 32px rgba(13, 133, 69, 0.35);
  font-size: 15px;
  font-weight: 950;
  text-decoration: none;
}
.lp-heroActions > button {
  min-width: 180px;
  background: rgba(7, 30, 20, 0.82);
}
.lp-menuSection,
.lp-visitSection,
.lp-rewardsSection {
  width: min(1280px, calc(100% - 40px));
  margin-inline: auto;
}
.lp-menuSection {
  padding: clamp(58px, 7vw, 90px) 0 68px;
}
.lp-sectionHeading {
  max-width: 780px;
  margin: 0 auto 30px;
  text-align: center;
}
.lp-sectionHeading > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--green);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.lp-sectionHeading svg {
  width: 18px;
}
.lp-sectionHeading h2,
.lp-featureCopy h2,
.lp-closingSection h2 {
  margin: 10px 0 0;
  font:
    900 clamp(35px, 5vw, 60px)/0.98 Georgia,
    serif;
  letter-spacing: -0.045em;
}
.lp-sectionHeading > p {
  margin: 14px auto 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.6;
}
.lp-foodRail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.lp-foodCard {
  overflow: hidden;
  border: 1px solid #dce3df;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(21, 58, 40, 0.1);
}
.lp-foodCard > img,
.lp-foodFallback {
  width: 100%;
  height: 190px;
  object-fit: cover;
}
.lp-foodFallback {
  display: grid;
  place-items: center;
  color: #577568;
  background: linear-gradient(145deg, #e4efe7, #cbded1);
}
.lp-foodFallback svg {
  width: 36px;
}
.lp-foodCard > div {
  padding: 17px;
}
.lp-foodCard span {
  color: var(--green);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.lp-foodCard h3 {
  margin: 7px 0 0;
  font:
    900 20px/1.05 Georgia,
    serif;
}
.lp-foodCard p {
  min-height: 42px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}
.lp-foodCard footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 15px;
}
.lp-itemButton {
  min-height: 38px;
  border: 0;
  border-radius: 10px;
  padding: 0 14px;
  color: #fff;
  background: var(--green);
  font-weight: 900;
}
.lp-emptyMenu {
  display: grid;
  min-height: 280px;
  place-items: center;
  align-content: center;
  gap: 12px;
  border: 1px dashed #b8cbbf;
  border-radius: 24px;
  color: var(--muted);
  background: #fff;
  text-align: center;
}
.lp-menuOrderActions {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}
.lp-menuOrderActions a {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  border: 2px solid var(--green);
  border-radius: 14px;
  padding: 0 22px;
  color: var(--green-dark);
  font-weight: 950;
  text-decoration: none;
}
.lp-featureSection {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.8fr);
  gap: 40px;
  width: min(1280px, calc(100% - 40px));
  margin: 0 auto clamp(72px, 9vw, 110px);
  border-radius: 30px;
  padding: clamp(34px, 6vw, 72px);
  color: #fff;
  background: #0e2f23;
  box-shadow: 0 30px 70px rgba(11, 65, 43, 0.2);
}
.lp-featureCopy > p {
  display: flex;
  align-items: center;
  gap: 8px;
}
.lp-featureCopy > p svg {
  width: 18px;
}
.lp-featureCopy > span {
  display: block;
  margin-top: 20px;
  color: #d6e3dc;
  font-size: 16px;
  line-height: 1.7;
}
.lp-featureTiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-content: center;
}
.lp-featureTiles > div {
  display: grid;
  gap: 10px;
  min-height: 120px;
  align-content: center;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255, 255, 255, 0.08);
}
.lp-featureTiles svg {
  width: 22px;
  color: var(--gold);
}
.lp-visitSection {
  padding-bottom: clamp(72px, 9vw, 110px);
}
.lp-visitGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  max-width: 1040px;
  margin: 0 auto;
}
.lp-visitGrid article {
  display: flex;
  gap: 14px;
  border: 1px solid #dce3df;
  border-radius: 20px;
  padding: 22px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(28, 61, 42, 0.07);
}
.lp-visitGrid article > svg {
  flex: 0 0 auto;
  width: 24px;
  color: var(--green);
}
.lp-visitGrid article > div {
  display: grid;
  gap: 7px;
  width: 100%;
}
.lp-visitGrid span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.lp-visitGrid strong,
.lp-visitGrid a {
  color: var(--ink);
  font-size: 15px;
  font-weight: 850;
  line-height: 1.5;
  text-decoration: none;
}
.lp-hoursCard {
  grid-column: 1/-1;
}
.lp-hoursCard p {
  margin: 0;
  white-space: pre-line;
  color: #435b4e;
  font-size: 13px;
  line-height: 1.6;
}
.lp-rewardsSection {
  padding-bottom: clamp(72px, 9vw, 110px);
}
.lp-rewardGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  max-width: 1040px;
  margin: 0 auto;
}
.lp-punchCard {
  overflow: hidden;
  border: 1px solid #dac781;
  border-radius: 26px;
  padding: clamp(24px, 4vw, 38px);
  color: #18382b;
  background:
    radial-gradient(
      circle at 100% 0,
      rgba(240, 196, 62, 0.32),
      transparent 42%
    ),
    linear-gradient(145deg, #fff9df, #f1ead0);
  box-shadow: 0 24px 60px rgba(21, 58, 40, 0.12);
}
.lp-punchCardTop {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.lp-punchCardTop div {
  display: grid;
  gap: 5px;
}
.lp-punchCardTop span {
  color: var(--green);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.lp-punchCardTop strong {
  font:
    900 clamp(27px, 4vw, 39px)/1 Georgia,
    serif;
}
.lp-punchCardTop > b {
  border: 1px solid rgba(19, 134, 71, 0.34);
  border-radius: 999px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.58);
  font-size: 12px;
}
.lp-punchCard > p {
  color: #53695e;
}
.lp-punches {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-top: 24px;
}
.lp-punches i {
  display: grid;
  aspect-ratio: 1;
  place-items: center;
  border: 2px dashed rgba(19, 134, 71, 0.4);
  border-radius: 50%;
  color: rgba(19, 134, 71, 0.55);
  background: rgba(255, 255, 255, 0.42);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}
.lp-rewardStatus {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  border-top: 1px solid rgba(24, 56, 43, 0.15);
  padding-top: 18px;
}
.lp-rewardStatus > svg {
  width: 25px;
  color: var(--green);
}
.lp-rewardStatus div {
  display: grid;
  gap: 3px;
}
.lp-rewardStatus span {
  color: #5b6e64;
  font-size: 12px;
}
.lp-joinButton {
  display: flex;
  min-height: 48px;
  width: 100%;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background: var(--green);
  font-weight: 950;
}
.lp-closingSection {
  position: relative;
  display: grid;
  min-height: 360px;
  place-items: center;
  overflow: hidden;
  padding: 50px 24px;
  color: #fff;
  background: #15120d;
  text-align: center;
}
.lp-closingShade {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.66);
}
.lp-closingSection > div:last-child {
  position: relative;
  z-index: 1;
}
.lp-closingSection h2 {
  max-width: 760px;
  font-size: clamp(38px, 6vw, 68px);
}
.lp-closingSection .lp-orderButton {
  margin-top: 28px;
}
.lp-footer {
  display: flex;
  width: min(1280px, calc(100% - 40px));
  min-height: 90px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: auto;
}
.lp-footer nav {
  display: flex;
  gap: 18px;
}
.lp-footer a {
  color: #425367;
  font-size: 13px;
  font-weight: 850;
  text-decoration: none;
}
@media (max-width: 900px) {
  .lp-foodRail {
    grid-template-columns: repeat(2, 1fr);
  }
  .lp-featureSection {
    grid-template-columns: 1fr;
  }
  .lp-rewardGrid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px) {
  .lp-menuSection,
  .lp-featureSection,
  .lp-visitSection,
  .lp-rewardsSection,
  .lp-footer {
    width: min(100% - 24px, 1280px);
  }
  .lp-hero {
    height: 530px;
  }
  .lp-heroIdentity {
    left: 18px;
  }
  .lp-nameLine h1 {
    font-size: 42px;
  }
  .lp-nameLine > img {
    width: 58px;
    height: 58px;
  }
  .lp-heroActions {
    right: 14px;
    bottom: 14px;
    left: 14px;
    flex-direction: column;
  }
  .lp-orderButton,
  .lp-heroActions > button {
    width: 100%;
    min-width: 0;
  }
  .lp-foodRail {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .lp-foodCard > img,
  .lp-foodFallback {
    height: 125px;
  }
  .lp-foodCard > div {
    padding: 12px;
  }
  .lp-foodCard p {
    display: none;
  }
  .lp-featureSection {
    padding: 28px 22px;
  }
  .lp-featureTiles {
    grid-template-columns: 1fr 1fr;
  }
  .lp-visitGrid {
    grid-template-columns: 1fr;
  }
  .lp-hoursCard {
    grid-column: auto;
  }
  .lp-footer {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
  }
}

.lp-page p {
  font-size: 16px;
  line-height: 1.6;
}
.lp-page button,
.lp-page a {
  font-size: max(14px, 1em);
}
.lp-hero {
  min-height: 320px !important;
}
.lp-heroIdentity {
  min-height: 260px;
}
.lp-page input {
  font-size: 16px;
}
@media (max-width: 600px) {
  .lp-hero {
    min-height: 280px !important;
  }
}

/* Fresh Grid adapters: original layout, white page, connected ordering controls. */
.lp-heroActions .lp-orderButton[aria-pressed=true]{background:linear-gradient(135deg,#19a85b,#138647);box-shadow:0 12px 32px #0d854559}.lp-switch>div{scrollbar-width:none}.lp-switch>div::-webkit-scrollbar{display:none}
.lp-page{background:#fff}.lp-page [id]{scroll-margin-top:160px}.lp-heroIdentity{min-height:0}.lp-heroIdentity>span{max-width:650px;line-height:1.5}.lp-heroActions .lp-orderButton{min-width:240px;cursor:pointer}.lp-heroActions .lp-orderButton[aria-pressed=false]{background:rgba(7,30,20,.86);box-shadow:none}.lp-nameLine h1{color:#fff}.lp-menuSection .search{max-width:650px;margin:25px auto 18px}.lp-menuSection .categories{justify-content:center;margin-bottom:26px}.lp-foodCard{display:flex;flex-direction:column}.lp-foodCard>div{flex:1;display:flex;flex-direction:column}.lp-foodCard footer{margin-top:auto;padding-top:18px}.lp-foodCard p{font-size:14px;line-height:1.5;min-height:62px}.lp-itemButton{font-size:14px!important;cursor:pointer;min-height:44px}.lp-featureTiles>button{display:grid;gap:10px;min-height:120px;align-content:center;border:1px solid #ffffff2e;border-radius:18px;padding:18px;background:#ffffff14;color:#fff;text-align:left;font-weight:700}.lp-featureTiles>button svg{color:#f0c43e;width:22px}.lp-rewardGrid>.fg-card{padding:0;border:0;gap:15px}.lp-gridRewards{border:1px solid #dce3df;border-radius:26px;padding:30px;display:flex;flex-direction:column;justify-content:center;background:#fff}.lp-gridRewards>span{color:#138647;letter-spacing:.12em;font-size:12px;font-weight:800;text-transform:uppercase}.lp-gridRewards>strong{font:900 54px Georgia,serif;margin:18px 0 0}.lp-gridRewards h3{font:900 30px Georgia,serif;margin:8px 0}.lp-gridRewards p{color:#607080;margin:12px 0 20px}.lp-gridRewards button{align-self:flex-start}.lp-photoCredit{font-size:11px!important;text-align:center;color:#607080;margin:18px 0 0}.lp-hoursCard dl{margin:0;display:grid;gap:10px}.lp-hoursCard dl>div{display:flex;justify-content:space-between;gap:20px;font-size:14px}.lp-hoursCard dd{margin:0}.lp-closingSection .lp-orderButton{min-width:200px;margin-inline:5px;cursor:pointer}.lp-footer button{border:0;background:none;color:#425367;padding:12px;font-weight:700}.lp-switch{padding-block:16px}.lp-switch>div{flex-wrap:wrap}.lp-status{display:flex;align-items:center;gap:7px;font-size:12px;color:#607080;white-space:nowrap}.lp-status i{height:6px;width:6px;border-radius:50%;background:#138647}.fulfillment-top{display:flex;padding:4px;border:1px solid #dce5df;border-radius:12px;background:#f7faf8;gap:4px;margin-right:auto}.fulfillment-top button{border:0;background:transparent;border-radius:8px;padding:10px 14px;min-height:42px;white-space:nowrap;font-size:13px;font-weight:700;color:#577363}.fulfillment-top button[aria-pressed=true]{color:#fff;background:#18563d;box-shadow:0 3px 8px #173b2715}.topbar{gap:18px}.topbar .city{display:none}.topbar nav{gap:0}.topbar nav button{padding-inline:9px}.lp-empty{grid-column:1/-1}.lp-menuSection .lp-menuNotice{font-size:12px;line-height:1.5;color:#607080;margin:22px auto 0;text-align:center;max-width:720px}.lp-page .jmr-card p{font-size:12px}.lp-page .jmr-card h3{font-family:Georgia,serif;font-size:31px}.lp-page .jmr-card .jmr-dots{margin-block:20px}.lp-page .lp-featureCopy>p{font-size:12px}.lp-page .lp-heroIdentity>p{font-size:12px}.lp-foodCard>img{display:block;flex:none}.lp-hero>img{object-position:center 56%}
@media(max-width:1100px){.topbar{flex-wrap:wrap}.topbar nav{order:4;flex-basis:100%;justify-content:center;border-top:1px solid #edf1ee;padding-top:5px}.topbar .bag-button{margin-left:auto}.fulfillment-top{margin-right:0}}
@media(max-width:700px){.topbar{gap:10px;padding:12px 16px;position:relative}.topbar .brand{font-size:23px}.topbar .bag-button{order:1}.fulfillment-top{order:2;flex-basis:100%;width:100%}.fulfillment-top button{flex:1;padding-inline:10px}.topbar nav{order:3;padding-top:4px}.demo-bar{padding:10px 16px;gap:8px}.demo-bar>span{display:none}.demo-bar p{font-size:10px}.lp-switch{padding-block:13px}.lp-switch>div{display:flex;flex-wrap:nowrap;overflow:auto;width:100%;padding:1px 0 5px}.lp-switch button{flex:none;padding:10px;font-size:11px;gap:6px}.lp-switch button svg{width:16px}.lp-status{display:none}.lp-heroIdentity{top:42px;max-width:calc(100% - 36px)}.lp-nameLine h1{font-size:clamp(40px,10vw,55px);max-width:520px;line-height:.98}.lp-heroIdentity>span{font-size:16px;font-weight:600;line-height:1.5}.lp-hero{height:475px}.lp-heroActions{gap:10px}.lp-heroActions .lp-orderButton{min-width:0;min-height:54px;font-size:15px}.lp-menuSection{padding-top:48px}.lp-foodRail{gap:10px}.lp-foodCard h3{font-size:20px;line-height:1.12}.lp-foodCard footer{gap:7px;align-items:flex-start;flex-direction:column}.lp-foodCard .lp-itemButton{width:100%}.lp-menuSection .sectionHeading{margin-bottom:20px}.lp-page [id]{scroll-margin-top:24px}.lp-featureTiles>button{min-height:100px;padding:15px}.lp-hoursCard dl>div{font-size:13px}.lp-gridRewards{padding:25px}.lp-closingSection .lp-orderButton{display:flex;margin-inline:0}.lp-footer{padding-block:20px;gap:10px}.lp-footer nav{gap:8px}.lp-footer nav a,.lp-footer nav button{padding:8px 0}.lp-photoCredit{font-size:10px!important}.lp-menuSection .lp-menuNotice{font-size:11px}}
