/* ===========================================================================
   Components: everything the shortcodes and HTML widgets render — menu cards,
   price chips, the build-your-own size chart, category tabs and tiles, deal
   cards, the Pizza of the Month spotlight, hours, contact, map, ticker.

   Image rules are prefixed `body .elementor` where they can land inside a
   page: Elementor's frontend resets `.elementor img{border-radius:0;
   box-shadow:none;height:auto}` at the same weight and wins by load order.
   =========================================================================== */

/* ------------------------------------------------------------ menu card */

.mgrid{
  display:grid;gap:clamp(1.25rem, .8rem + 1.4vw, 2rem);
  grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));
  list-style:none;margin:0;padding:0;
}
.mcard{
  position:relative;display:flex;flex-direction:column;
  background:var(--white);
  border:3px solid var(--red);border-radius:22px;
  padding:10px;
  box-shadow:var(--shadow-1);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
.mcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.mcard-media{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:3 / 2;background:var(--cream)}
body .elementor .mcard-media img,
.mcard-media img{width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform .5s var(--ease-out)}
.mcard:hover .mcard-media img{transform:scale(1.045)}
/* no photo: the category's icon on a warm ground, never a broken box */
.mcard-ph{
  width:100%;height:100%;display:grid;place-items:center;
  background:var(--pat-grain), radial-gradient(circle at 50% 42%, var(--paper), var(--cream) 72%) var(--cream);color:var(--red);
}
.mcard-ph .mi{width:64px;height:64px;opacity:.8}
/* the Pizza Ranch tab: hangs from the card's top rim */
.mcard-tag{
  position:absolute;top:-12px;left:50%;transform:translateX(-50%);z-index:2;
  background:var(--red);color:var(--white);white-space:nowrap;
  padding:.38rem 1.05rem .42rem;border-radius:0 0 14px 14px;
  font-family:var(--font-cond);font-weight:600;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;line-height:1;
}
.mcard-tag.is-gold{background:var(--saffron);color:var(--ink)}
.mcard-tag.is-green{background:var(--green)}
.mcard-body{display:flex;flex-direction:column;flex:1;padding:1.15rem .85rem .7rem}
.mcard-name{
  font-family:var(--font-display);font-weight:400;font-size:1.42rem;line-height:1.02;
  color:var(--ink);margin:0 0 .6rem;
}
.mcard-desc{font-size:.95rem;line-height:1.5;color:var(--muted);margin:0 0 1.2rem}
/* prices on their own full-width row, the order button under them: every
   card's foot lines up, whatever the number of sizes */
.mcard-foot{margin-top:auto;display:flex;flex-direction:column;gap:.8rem}
/* four sizes fit one row on the narrowest card (~196px inside) */
.mprices{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:.3rem}
.mprices li{
  list-style:none;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:.4rem .15rem .42rem;border-radius:var(--r-xs);min-width:0;
  background:var(--cream);
}
.mp-k{font-family:var(--font-cond);font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);line-height:1.2}
.mp-v{font-family:var(--font-cond);font-size:1rem;font-weight:600;color:var(--ink);line-height:1.15;letter-spacing:0}
.mprices.is-single{display:flex}
.mprices.is-single li{background:transparent;padding:0;align-items:flex-start}
.mprices.is-single .mp-v{font-size:1.45rem;color:var(--red-deep)}
.mcard-order{
  display:flex;align-items:center;justify-content:center;gap:.45rem;
  min-height:44px;padding:.45rem .9rem;border-radius:var(--r-xs);
  border:2px solid var(--red);color:var(--red-deep);background:transparent;
  font-family:var(--font-cond);font-weight:600;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;transition:background-color .18s var(--ease),color .18s var(--ease);
}
.mcard-order:hover{background:var(--red);color:var(--white)}
.mcard.is-soldout .mcard-media img{filter:grayscale(.9) contrast(.9)}
.mcard-out{
  position:absolute;top:44%;left:50%;transform:translate(-50%,-50%) rotate(-8deg);z-index:2;
  background:var(--ink);color:var(--on-dark);padding:.45rem .9rem;border-radius:var(--r-xs);
  font-family:var(--font-cond);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;
}

/* a horizontal rail of cards (home: fan favourites) */
.mrail-wrap{position:relative}
.mrail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(272px, 300px);
  gap:clamp(1.25rem, .8rem + 1.4vw, 2rem);
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:4px;
  padding:16px 4px 22px;margin:-16px -4px 0;
  list-style:none;scrollbar-width:thin;scrollbar-color:var(--red) transparent;
}
.mrail > li{list-style:none;scroll-snap-align:start;display:flex}
.mrail > li > .mcard{width:100%}
.mrail-nav{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.25rem}
.mrail-btn{
  width:48px;height:48px;border-radius:50%;border:2px solid var(--line-strong);background:var(--white);
  color:var(--ink);display:grid;place-items:center;cursor:pointer;
  transition:background-color .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease);
}
.mrail-btn .ico{font-size:1.2rem}
.mrail-btn.is-prev .ico{transform:rotate(180deg)}
.mrail-btn:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.mrail-btn[disabled]{opacity:.35;cursor:default;background:var(--white);color:var(--ink);border-color:var(--line-strong)}

/* menu block furniture */
.menu-note{
  display:flex;align-items:flex-start;gap:.6rem;
  margin:0 0 1.75rem;padding:.9rem 1.15rem;border-radius:var(--r-sm);
  background:var(--white);border:1.5px dashed var(--line-strong);
  font-size:.95rem;color:var(--muted);
}
.menu-note .ico{color:var(--red);font-size:1.15rem;margin-top:.15em}
.menu-extra{margin-top:2.25rem}
.menu-extra-t{
  font-family:var(--font-cond);font-weight:600;font-size:1.05rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);margin:0 0 .9rem;
}

.menu-block{position:relative}
/* categories added in wp-admin after launch, rendered under the last section */
.menu-rest{margin-top:var(--section-y-tight);padding-top:var(--section-y-tight);border-top:2px dashed var(--line-strong)}
.menu-rest-t{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h2);line-height:var(--lh-display);color:var(--red);margin:0 0 .6rem}
.menu-rest-intro{font-size:var(--fs-lede);max-width:56ch;margin:0 0 1.5rem}

/* ------------------------------------------------------------ chips */

.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.chip{
  list-style:none;display:inline-flex;align-items:center;gap:.35rem;
  padding:.5rem .95rem;border-radius:var(--pill);
  background:var(--white);border:1.5px solid var(--line);
  font-weight:600;font-size:.95rem;color:var(--ink);line-height:1.2;
}
.chip.is-hot{border-color:rgba(210,61,45,.4);background:var(--red-wash)}
.chip.is-hot .ico{color:var(--red)}

/* ----------------------------------------------------------- compact list */

.mlist{list-style:none;margin:0;padding:0;columns:2 340px;column-gap:clamp(2rem, 4vw, 4.5rem)}
.mlist-row{
  list-style:none;break-inside:avoid;
  display:flex;align-items:baseline;gap:.75rem;
  padding:.85rem 0;border-bottom:1.5px dashed var(--line-strong);
}
.mlist-main{display:flex;flex-direction:column;min-width:0}
.mlist-name{font-family:var(--font-cond);font-weight:600;font-size:1.12rem;letter-spacing:.02em;color:var(--ink)}
.mlist-desc{font-size:.9rem;color:var(--muted);line-height:1.45}
.mlist-dots{flex:1;min-width:1rem}
.mlist-price{
  flex:none;font-family:var(--font-cond);font-weight:600;font-size:1.08rem;color:var(--red-deep);
  white-space:nowrap;text-align:right;
}
.mlist-price small{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:.25rem}
.mlist-price span + span{margin-left:.75rem}
.mlist-row.is-soldout .mlist-name{text-decoration:line-through;color:var(--muted)}

/* ---------------------------------------------- build-your-own size chart */

.byo{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.75rem, 1.4vw, 1.25rem)}
.byo-size{
  list-style:none;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
  background:var(--white);border-radius:var(--r);padding:1.5rem 1.1rem 1.3rem;box-shadow:var(--shadow-1);
  border:2px solid transparent;transition:border-color .2s var(--ease),transform .2s var(--ease);
}
.byo-size:hover{border-color:var(--red);transform:translateY(-3px)}
.byo-pie-box{height:120px;display:grid;place-items:center;margin-bottom:.9rem}
/* the pie, drawn to scale: diameter follows the size in inches */
.byo-pie{
  display:block;width:calc(var(--d, 1) * 116px);aspect-ratio:1;border-radius:50%;
  background:
    radial-gradient(circle at 34% 36%, #B5321F 0 6%, transparent 6.5%),
    radial-gradient(circle at 64% 30%, #B5321F 0 5.5%, transparent 6%),
    radial-gradient(circle at 58% 62%, #B5321F 0 6%, transparent 6.5%),
    radial-gradient(circle at 30% 64%, #B5321F 0 5%, transparent 5.5%),
    radial-gradient(circle, #F6C85F 0 66%, #E39A3A 67% 70%, #C9772A 71% 82%, #A8601E 83% 100%);
  box-shadow:0 8px 16px -8px rgba(42,26,20,.5);
}
.byo-name{font-family:var(--font-display);font-size:1.25rem;line-height:1.05;color:var(--ink)}
.byo-slices{font-family:var(--font-cond);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:.25rem 0 .75rem}
.byo-price{font-family:var(--font-cond);font-weight:600;font-size:1.7rem;color:var(--red-deep);line-height:1}
.byo-extra{font-size:.84rem;color:var(--muted);margin:.35rem 0 1rem}
.byo-order{margin-top:auto}
.byo-after{margin-top:clamp(2rem, 1.5rem + 2vw, 3rem)}

/* --------------------------------------------------------- category tabs */

.mtabs{position:relative}

body .elementor .sec-tabs{
  position:sticky;top:var(--sticky-top, var(--header-h));z-index:50;
  padding:0;background:var(--paper);
  box-shadow:0 1px 0 var(--line), 0 10px 20px -18px rgba(42,26,20,.45);
}
body.elementor-editor-active .elementor .sec-tabs{position:relative;top:auto}
.mtabs-list{
  list-style:none;margin:0;padding:.65rem 0;display:flex;gap:.35rem;
  overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;
}
.mtabs-list::-webkit-scrollbar{display:none}
.mtabs-list li{list-style:none;flex:none;scroll-snap-align:start}
.mtab{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.55rem .95rem;border-radius:var(--r-xs);
  font-family:var(--font-cond);font-weight:600;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink);text-decoration:none;white-space:nowrap;
  transition:background-color .18s var(--ease),color .18s var(--ease);
}
.mtab .mi{width:26px;height:26px;color:var(--red)}
.mtab:hover{background:var(--cream);color:var(--ink)}
.mtab.is-active{background:var(--ink);color:var(--on-dark)}
.mtab.is-active .mi{color:var(--saffron)}

/* ------------------------------------------------------------ tiles */

.tiles{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(190px,auto);
  gap:clamp(.75rem, .5rem + 1vw, 1.25rem);
}
.tiles > li{list-style:none;display:flex}
.tiles > li:first-child{grid-column:span 2;grid-row:span 2}
.tile{
  position:relative;flex:1;display:flex;align-items:flex-end;
  border-radius:var(--r-lg);overflow:hidden;isolation:isolate;
  background:var(--red-deep);color:var(--white);text-decoration:none;min-height:190px;
  box-shadow:var(--shadow-1);
}
body .elementor .tile-img,
.tile-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;border-radius:0;
  transition:transform .6s var(--ease-out)}
.tile::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to top, rgba(30,12,8,.88) 0%, rgba(30,12,8,.35) 45%, rgba(30,12,8,0) 70%);
}
.tile:hover .tile-img{transform:scale(1.06)}
.tile-body{display:flex;align-items:center;gap:.8rem;padding:1.25rem 1.4rem;width:100%}
.tile-ico{
  flex:none;width:46px;height:46px;border-radius:50%;background:var(--red);
  display:grid;place-items:center;color:var(--white);
  transition:transform .35s var(--spring);
}
.tile-ico .mi{width:30px;height:30px}
.tile:hover .tile-ico{transform:rotate(-10deg) scale(1.08)}
.tile-name{font-family:var(--font-display);font-size:1.45rem;line-height:1;color:var(--white);min-width:0;text-wrap:balance}
.tile-go{margin-left:auto;font-family:var(--font-cond);font-weight:600;font-size:.82rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--saffron);white-space:nowrap}
.tiles > li:first-child .tile-name{font-size:clamp(1.8rem, 1.2rem + 1.6vw, 2.6rem)}
.tiles > li:not(:first-child) .tile-go{display:none}
.tiles > li:first-child .tile-ico{width:58px;height:58px}
.tiles > li:first-child .tile-ico .mi{width:38px;height:38px}

/* ------------------------------------------------------------ deals */

.deals{
  list-style:none;margin:0;padding:18px 0 0;display:grid;gap:clamp(1.75rem, 1rem + 1.6vw, 2.5rem) clamp(1.25rem, .8rem + 1.4vw, 2rem);
  grid-template-columns:repeat(auto-fill,minmax(min(100%,265px),1fr));
}
.deals > li{list-style:none;display:flex}
/* the full list reads in threes (9 deals: three even rows); the home page's four sit in one row */
body .elementor .sec-deals-all .deals{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.deal{
  position:relative;flex:1;display:flex;flex-direction:column;
  background:var(--white);border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);color:var(--text);text-align:left;
}
.deal-media{position:relative;aspect-ratio:16 / 10;background:var(--cream);border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden}
body .elementor .deal-media img,
.deal-media img{width:100%;height:100%;object-fit:cover;border-radius:0}
.deal-badge{
  position:absolute;left:14px;top:14px;
  background:var(--ink);color:var(--on-dark);padding:.36rem .7rem;border-radius:var(--r-xs);
  font-family:var(--font-cond);font-weight:600;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;
}
/* the price as a starburst sticker over the photo's corner */
.deal-price{
  position:absolute;right:-12px;top:-16px;z-index:2;
  width:104px;height:104px;display:grid;place-content:center;text-align:center;padding:0 14px;
  background:var(--saffron);color:var(--ink);
  clip-path:polygon(50% 0%,59.8% 12.1%,75% 6.7%,77.6% 22.4%,93.3% 25%,87.9% 40.2%,100% 50%,87.9% 59.8%,93.3% 75%,77.6% 77.6%,75% 93.3%,59.8% 87.9%,50% 100%,40.2% 87.9%,25% 93.3%,22.4% 77.6%,6.7% 75%,12.1% 59.8%,0% 50%,12.1% 40.2%,6.7% 25%,22.4% 22.4%,25% 6.7%,40.2% 12.1%);
  transform:rotate(-8deg);
}
.deal-amt{font-family:var(--font-cond);font-weight:700;font-size:1.45rem;line-height:1;letter-spacing:.01em}
.deal-price.is-long .deal-amt{font-size:1.05rem}
.deal-pnote{font-family:var(--font-cond);font-weight:600;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin-top:.1rem}
.deal-body{display:flex;flex-direction:column;flex:1;padding:1.35rem 1.35rem 1.4rem}
.deal-title{font-family:var(--font-display);font-weight:400;font-size:1.55rem;line-height:1.02;color:var(--red);margin:0 0 .55rem}
.deal-desc{margin:0 0 .6rem;font-size:.98rem;line-height:1.5}
.deal-fine{margin:0 0 .9rem;font-size:.84rem;line-height:1.45;color:var(--muted)}
.deal-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding-top:.75rem}
.deal .code-chip{color:var(--red-deep)}
.code-k{font-family:var(--font-cond);font-size:.66rem;letter-spacing:.14em;color:var(--muted);font-weight:500}

/* ----------------------------------------------------- spotlight */

.spot{
  display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:clamp(2rem, 4vw, 4.5rem);
  color:var(--on-dark);
}
.spot-media{position:relative}
.spot-body{position:relative;min-width:0}
body .elementor .spot-media img,
.spot-media img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--r-lg);box-shadow:0 30px 60px -28px rgba(0,0,0,.8)}
.spot-burst{
  position:absolute;right:-18px;top:-22px;
  width:132px;height:132px;display:grid;place-content:center;text-align:center;
  background:var(--saffron);color:var(--ink);
  clip-path:polygon(50% 0%,59.8% 12.1%,75% 6.7%,77.6% 22.4%,93.3% 25%,87.9% 40.2%,100% 50%,87.9% 59.8%,93.3% 75%,77.6% 77.6%,75% 93.3%,59.8% 87.9%,50% 100%,40.2% 87.9%,25% 93.3%,22.4% 77.6%,6.7% 75%,12.1% 59.8%,0% 50%,12.1% 40.2%,6.7% 25%,22.4% 22.4%,25% 6.7%,40.2% 12.1%);
  transform:rotate(10deg);
}
.spot-burst span{font-family:var(--font-cond);font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.spot-burst b{font-family:var(--font-cond);font-weight:700;font-size:1.85rem;line-height:1}
.spot-kicker{font-family:var(--font-script);font-size:var(--fs-kicker);color:var(--saffron);margin:0 0 .3rem;line-height:1.1}
.spot-badge{
  display:inline-block;background:var(--red);color:var(--white);
  padding:.4rem .8rem;border-radius:var(--r-xs);margin-bottom:1rem;
  font-family:var(--font-cond);font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
}
.spot-title{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h1);line-height:.95;color:var(--white);margin:0 0 1rem}
.spot-desc{font-size:var(--fs-lede);line-height:1.55;color:var(--on-dark);max-width:48ch;margin:0 0 .8rem}
.spot-fine{font-size:.92rem;color:var(--on-dark-2);margin:0 0 1.6rem}
.spot-act{display:flex;gap:.75rem;flex-wrap:wrap}
/* on light grounds (specials page) */
.sec-cream .spot,.sec-paper .spot{color:var(--text)}
.sec-cream .spot-title,.sec-paper .spot-title{color:var(--red)}
.sec-cream .spot-desc,.sec-paper .spot-desc{color:var(--text)}
.sec-cream .spot-fine,.sec-paper .spot-fine{color:var(--muted)}
.sec-cream .spot-kicker,.sec-paper .spot-kicker{color:var(--green)}

/* ------------------------------------------------------------ hours */

.hours-card{background:var(--white);border-radius:var(--r);padding:1.4rem 1.5rem;box-shadow:var(--shadow-1)}
.open-status{
  display:inline-flex;align-items:center;gap:.55rem;margin:0 0 1rem;
  font-family:var(--font-cond);font-weight:600;font-size:.98rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);
}
.open-status .dot{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:none}
.open-status.is-open .dot{background:#2E9B4E;box-shadow:0 0 0 4px rgba(46,155,78,.18)}
.open-status.is-closed .dot{background:var(--red)}
.open-status-t{line-height:1.2}
.hours{width:100%;border-collapse:collapse}
.hours th,.hours td{padding:.55rem 0;border-bottom:1px solid var(--line);text-align:left;font-weight:500}
.hours td{text-align:right;font-family:var(--font-cond);font-weight:500;letter-spacing:.03em;font-size:1.05rem}
.hours tr:last-child th,.hours tr:last-child td{border-bottom:0}
.hours tr.is-today th,.hours tr.is-today td{color:var(--red-deep);font-weight:700}
.hours-note{margin:.9rem 0 0;font-size:.88rem;color:var(--muted)}

/* ---------------------------------------------------------- contact */

.contact-list{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:1.1rem}
.contact-list li{list-style:none;display:flex;gap:1rem;align-items:flex-start}
.cl-ico{
  flex:none;width:48px;height:48px;border-radius:50%;background:var(--red);color:var(--white);
  display:grid;place-items:center;
}
.cl-ico .ico{font-size:1.3rem}
.cl-k{display:block;font-family:var(--font-cond);font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cl-v{display:block;font-size:1.12rem;font-weight:600;color:var(--ink);text-decoration:none;line-height:1.4}
a.cl-v:hover{color:var(--red)}
.sec-red .cl-ico,.sec-ink .cl-ico,.sec-green .cl-ico{background:var(--saffron);color:var(--ink)}
.sec-red .cl-k,.sec-ink .cl-k,.sec-green .cl-k{color:var(--on-dark-2)}
.sec-red .cl-v,.sec-ink .cl-v,.sec-green .cl-v{color:var(--white)}

.map-frame{
  position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-2);
  background:var(--cream-2);min-height:380px;height:100%;
}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-frame.is-wide{min-height:440px}
body .elementor .sec-visit .map-frame{min-height:clamp(380px, 46vw, 660px)}

/* ------------------------------------------------- delivery partners */

.partners{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.partners li{list-style:none}
.partner{
  display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:var(--pill);
  background:var(--cream);color:var(--ink);text-decoration:none;
  font-family:var(--font-cond);font-weight:600;font-size:.88rem;letter-spacing:.06em;text-transform:uppercase;
}
a.partner:hover{background:var(--red);color:var(--white)}

/* ------------------------------------------------------------ ticker */

.ticker{overflow:hidden;white-space:nowrap;padding:1.05rem 0}
.ticker-track{display:inline-flex;align-items:center;gap:2.2rem;padding-right:2.2rem;will-change:transform}
.ticker-item{
  display:inline-flex;align-items:center;gap:2.2rem;
  font-family:var(--font-display);font-size:clamp(1.25rem, 1rem + .9vw, 1.9rem);color:var(--white);line-height:1;
}
.ticker-item::after{
  content:"";width:22px;height:22px;flex:none;background:var(--saffron);
  clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
}

/* ------------------------------------------------------------ steps */

body .elementor .steps{counter-reset:step}
body .elementor .step{counter-increment:step}
body .elementor .step > .elementor-widget-wrap{
  background:var(--white);border-radius:var(--r-lg);padding:2.2rem 1.6rem 1.8rem;box-shadow:var(--shadow-1);
  height:100%;text-align:center;justify-content:center;
}
body .elementor .step .title-sm .elementor-heading-title::before{
  content:counter(step);display:grid;place-items:center;margin:0 auto 1.1rem;
  width:62px;height:62px;border-radius:50%;
  background:var(--red);color:var(--white);
  font-family:var(--font-display);font-size:1.9rem;line-height:1;
  box-shadow:0 0 0 6px var(--red-wash);
}
body .elementor .step .title-sm .elementor-heading-title{color:var(--ink)}
body .elementor .step .elementor-widget-text-editor{color:var(--muted)}

/* ---------------------------------------------- ways (dine-in/carry/delivery) */

body .elementor .way > .elementor-widget-wrap{
  background:var(--white);border-radius:var(--r-lg);padding:2rem 1.6rem 1.8rem;box-shadow:var(--shadow-1);height:100%;
}
body .elementor .way .title-sm .elementor-heading-title{display:flex;align-items:center;gap:.8rem;color:var(--ink)}
body .elementor .way .title-sm .elementor-heading-title::before{
  content:"";width:54px;height:54px;flex:none;border-radius:50%;
  background:var(--red) var(--way-ico) center / 28px no-repeat;
}
body .elementor .way-dinein{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9.5 5.5 4h13L20 9.5'/%3E%3Cpath d='M4 9.5a2.7 2.7 0 0 0 5.3 0 2.7 2.7 0 0 0 5.4 0 2.7 2.7 0 0 0 5.3 0'/%3E%3Cpath d='M5.5 11.5V20h13v-8.5'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E")}
body .elementor .way-carry{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 11.2a2 2 0 0 1-2 1.8H8.2a2 2 0 0 1-2-1.8Z'/%3E%3Cpath d='M9 10V7a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E")}
body .elementor .way-delivery{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 16.5h14M3.5 16.5v-4l2-5a2 2 0 0 1 1.8-1.3h9.4a2 2 0 0 1 1.8 1.3l2 5v4'/%3E%3Cpath d='M3.5 12.5h17'/%3E%3Ccircle cx='7.5' cy='17' r='1.8'/%3E%3Ccircle cx='16.5' cy='17' r='1.8'/%3E%3C/svg%3E")}
body .elementor .way-drive{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17H3v-5l2-5h11l3 5h2v5h-2'/%3E%3Cpath d='M5 12h14M9 17h6'/%3E%3Ccircle cx='7' cy='17' r='2'/%3E%3Ccircle cx='17' cy='17' r='2'/%3E%3C/svg%3E")}
body .elementor .way .elementor-widget-text-editor{color:var(--muted)}
body .elementor .role-counter{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9.5 5.5 4h13L20 9.5'/%3E%3Cpath d='M4 9.5a2.7 2.7 0 0 0 5.3 0 2.7 2.7 0 0 0 5.4 0 2.7 2.7 0 0 0 5.3 0'/%3E%3Cpath d='M5.5 11.5V20h13v-8.5'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E")}
body .elementor .role-cook{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23fff' stroke-width='4.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 39.5c-6.4-.6-11-5.6-11-11.6 0-6.6 5.4-11.6 12-11.2C22 11 27 7.5 32.5 7.5c5.6 0 10.4 3.6 12.2 8.6 6.6-.6 12.3 4.4 12.3 11 0 6.2-4.8 11.4-11 12.2'/%3E%3Cpath d='M19 33v16a3 3 0 0 0 3 3h20a3 3 0 0 0 3-3V33M19 44h26'/%3E%3C/svg%3E")}
body .elementor .role-driver{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 16.5h14M3.5 16.5v-4l2-5a2 2 0 0 1 1.8-1.3h9.4a2 2 0 0 1 1.8 1.3l2 5v4'/%3E%3Cpath d='M3.5 12.5h17'/%3E%3Ccircle cx='7.5' cy='17' r='1.8'/%3E%3Ccircle cx='16.5' cy='17' r='1.8'/%3E%3C/svg%3E")}

/* event types on the catering page reuse the same disc */
body .elementor .evt > .elementor-widget-wrap{
  background:var(--white);border-radius:var(--r-lg);padding:1.8rem 1.4rem;box-shadow:var(--shadow-1);height:100%;text-align:center;
}
body .elementor .evt .title-sm .elementor-heading-title{color:var(--ink)}
body .elementor .evt .title-sm .elementor-heading-title::before{
  content:"";display:block;width:64px;height:64px;margin:0 auto 1rem;border-radius:50%;
  background:var(--red-wash) var(--evt-ico) center / 32px no-repeat;
}
body .elementor .evt-party{--evt-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A92A1C' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20 9 7l8 8Z'/%3E%3Cpath d='M14 4.5c.6 1 .4 2-.4 2.6M19 9.5c-1-.6-2-.4-2.6.4M17 3.5l.1.1M20.5 6.5l.1.1M12.5 10.5c2.5-2.5 2.5-4.5 1.5-6'/%3E%3C/svg%3E")}
body .elementor .evt-corp{--evt-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A92A1C' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7.5' width='18' height='12.5' rx='2'/%3E%3Cpath d='M8.5 7.5V5.5a1.5 1.5 0 0 1 1.5-1.5h4a1.5 1.5 0 0 1 1.5 1.5v2M3 12.5h18'/%3E%3C/svg%3E")}
body .elementor .evt-school{--evt-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A92A1C' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 9 12 4.5 21.5 9 12 13.5Z'/%3E%3Cpath d='M6.5 11v5c0 1.6 2.5 3 5.5 3s5.5-1.4 5.5-3v-5M21.5 9v6'/%3E%3C/svg%3E")}
body .elementor .evt-wedding{--evt-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A92A1C' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='14' r='5.5'/%3E%3Ccircle cx='15' cy='14' r='5.5'/%3E%3Cpath d='m10.5 5 1.5-2 1.5 2-1.5 1.5Z'/%3E%3C/svg%3E")}
body .elementor .evt .elementor-widget-text-editor{color:var(--muted)}

/* ------------------------------------------- franchise: the package strip */

body .elementor .perks .elementor-widget.title-sm{margin-bottom:.55rem}
body .elementor .perk .title-sm .elementor-heading-title{font-size:clamp(1.3rem, 1.1rem + .5vw, 1.6rem)}
body .elementor .perk .title-sm .elementor-heading-title::before{
  content:"";display:block;width:52px;height:52px;margin-bottom:1rem;border-radius:50%;
  background:rgba(255,246,227,.12) var(--perk-ico) center / 26px no-repeat;
  box-shadow:inset 0 0 0 1.5px rgba(255,246,227,.35);
}
body .elementor .perk-recipe{--perk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFE6A6' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21a1 1 0 0 0 1-1v-5.35c0-.46.32-.84.73-1.04a4 4 0 0 0-2.14-7.59 5 5 0 0 0-9.18 0 4 4 0 0 0-2.14 7.59c.41.2.73.58.73 1.04V20a1 1 0 0 0 1 1Z'/%3E%3Cpath d='M6 17h12'/%3E%3C/svg%3E")}
body .elementor .perk-systems{--perk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFE6A6' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E")}
body .elementor .perk-media{--perk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFE6A6' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 18-5v12L3 14v-3z'/%3E%3Cpath d='M11.6 16.8a3 3 0 1 1-5.8-1.6'/%3E%3C/svg%3E")}
body .elementor .perk-opening{--perk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFE6A6' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9 4.5 4h15L21 9'/%3E%3Cpath d='M3 9h18v1.5a3 3 0 0 1-6 0 3 3 0 0 1-6 0 3 3 0 0 1-6 0Z'/%3E%3Cpath d='M5 13v7h14v-7'/%3E%3Cpath d='M10 20v-4h4v4'/%3E%3C/svg%3E")}

/* the reasons to license, on the same discs as the ways to order */
body .elementor .way-flex{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 4h-7M10 4H3M21 12h-9M8 12H3M21 20h-5M12 20H3M14 2v4M8 10v4M16 18v4'/%3E%3C/svg%3E")}
body .elementor .way-crust{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 11h.01M11 15h.01M16 16h.01'/%3E%3Cpath d='m2 16 20 6-6-20A20 20 0 0 0 2 16'/%3E%3Cpath d='M5.71 17.11a17 17 0 0 1 11.4-11.4'/%3E%3C/svg%3E")}
body .elementor .way-mentor{--way-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17 2 2a1 1 0 1 0 3-3'/%3E%3Cpath d='m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4'/%3E%3Cpath d='m21 3 1 11h-2'/%3E%3Cpath d='M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3'/%3E%3Cpath d='M3 4h8'/%3E%3C/svg%3E")}

/* ------------------------------------------------- franchise: the film */

/* Elementor's Video widget: the cover and a red play button until clicked.
   The same rules dress the fallback templates' version (.pbg-yt). */
body .elementor .film .elementor-wrapper{
  position:relative;aspect-ratio:16 / 9;border-radius:var(--r-lg);overflow:hidden;
  background:var(--ink);box-shadow:var(--shadow-2);
}
body .elementor .film .elementor-wrapper iframe,
body .elementor .film .elementor-video{position:absolute;inset:0;width:100%;height:100%;border:0}
body .elementor .film .elementor-custom-embed-image-overlay{
  position:absolute;inset:0;background-size:cover;background-position:center;cursor:pointer;
}
body .elementor .film .elementor-custom-embed-image-overlay::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg, rgba(26,12,8,.5), rgba(26,12,8,0) 55%);
}
/* bottom-left, so the button never sits on Adam's face */
body .elementor .film .elementor-custom-embed-play{
  position:absolute;top:auto;left:clamp(16px, 3vw, 28px);bottom:clamp(16px, 3vw, 28px);z-index:1;transform:none;
  width:clamp(72px, 6vw, 96px);height:clamp(72px, 6vw, 96px);padding:0;border:0;border-radius:50%;cursor:pointer;
  display:grid;place-items:center;background:var(--red);color:var(--white);
  box-shadow:0 0 0 10px rgba(210,61,45,.28), 0 18px 40px -14px rgba(26,12,8,.7);
  transition:transform .2s var(--ease);
}
body .elementor .film .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play{transform:scale(1.07)}
/* Elementor's own icon is a ringed glyph that sits off-centre in the disc:
   hidden, and a plain triangle drawn instead, nudged right so it reads centred */
body .elementor .film .elementor-custom-embed-play svg,
body .elementor .film .elementor-custom-embed-play i{display:none}
body .elementor .film .elementor-custom-embed-play::after{
  content:"";width:34%;height:38%;margin-left:9%;background:var(--white);
  clip-path:polygon(0 0, 100% 50%, 0 100%);
}
body .elementor .film .pbg-yt{cursor:pointer}

/* five steps share a row on desktop; three, then one, below */
@media (max-width:1024px){
  body .elementor .steps-5 > .elementor-container{flex-wrap:wrap;row-gap:var(--pbg-gap)}
  body .elementor .steps-5 > .elementor-container > .elementor-column{width:33.333%}
}
@media (max-width:767px){
  body .elementor .steps-5 > .elementor-container > .elementor-column{width:100%}
}

/* --------------------------------------------------------- duo cards */

body .elementor .duo > .elementor-widget-wrap{
  background:var(--white);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-2);height:100%;
  padding:0 0 2rem;
}
body .elementor .duo{--duo-pad:clamp(1.4rem, 1rem + 1.4vw, 2.2rem)}
body .elementor .duo .elementor-widget{padding-inline:var(--duo-pad)}
body .elementor .duo .elementor-widget.duo-img{padding:0;margin-bottom:1.6rem}
body .elementor .duo .duo-img img{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:0}
body .elementor .duo .title-sm .elementor-heading-title{font-size:clamp(1.6rem, 1.3rem + .9vw, 2.15rem);color:var(--red)}
body .elementor .duo .elementor-widget.btnw{margin-left:var(--duo-pad);padding:0}

/* ------------------------------------------------------- crust trio */

body .elementor .crust > .elementor-widget-wrap{justify-content:center;text-align:center}
body .elementor .crust .plate{margin-bottom:1.2rem}
body .elementor .crust .script .elementor-heading-title{
  font-family:var(--font-script);font-size:clamp(1.9rem, 1.5rem + 1.2vw, 2.6rem);line-height:1.05;color:var(--red);
}
body .elementor .crust .elementor-widget-text-editor{color:var(--muted)}
body .elementor .crust .elementor-widget-text-editor p{max-width:34ch;margin-inline:auto}

/* ------------------------------------------------------------ stats */

body .elementor .stat > .elementor-widget-wrap{text-align:center;justify-content:center;padding-block:.5rem}
body .elementor .stat-num .elementor-heading-title{
  font-size:clamp(3.2rem, 2.2rem + 3vw, 5rem);line-height:.9;color:var(--saffron);
}
body .elementor .stat .elementor-widget-text-editor{font-family:var(--font-cond);font-weight:500;font-size:1.02rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark)}
body .elementor .stat .elementor-widget-text-editor p{max-width:20ch;margin-inline:auto}

/* --------------------------------------------------------- form card */

body .elementor .form-card > .elementor-widget-wrap{
  background:var(--white);border-radius:var(--r-lg);box-shadow:var(--shadow-2);
  padding:clamp(1.5rem, 1rem + 2vw, 2.75rem);
}
body .elementor .form-card .title-sm .elementor-heading-title{color:var(--ink);font-size:clamp(1.6rem, 1.3rem + .9vw, 2.1rem)}
body .elementor .form-card .elementor-widget-text-editor{color:var(--muted)}
/* the form plugin centers its own fields, so the card's heading and intro sit centered over them */
body .elementor .form-card .elementor-widget-heading,
body .elementor .form-card .elementor-widget-text-editor{text-align:center}
/* a white card inside a red/green/ink band inherits the band's light text;
   pin the card's own ink at the band's specificity */
body .elementor .sec-red .form-card .elementor-heading-title,
body .elementor .sec-ink .form-card .elementor-heading-title,
body .elementor .sec-green .form-card .elementor-heading-title{color:var(--ink)}
body .elementor .sec-red .form-card .elementor-widget-text-editor,
body .elementor .sec-ink .form-card .elementor-widget-text-editor,
body .elementor .sec-green .form-card .elementor-widget-text-editor{color:var(--muted)}

/* promo artwork (the shop's own graphics) */
body .elementor .promo-art img{width:100%;border-radius:var(--r-lg);box-shadow:var(--shadow-2)}
body .elementor .promo-art-tall{--promo-max:420px}
body .elementor .promo-art-tall img{max-width:var(--promo-max);margin-inline:auto}

/* note line under a form or a block */
body .elementor .fineprint{font-size:.88rem;color:var(--muted)}
body .elementor .sec-red .fineprint,body .elementor .sec-green .fineprint,body .elementor .sec-ink .fineprint{color:var(--on-dark-2)}

/* ------------------------------------------------- rewards: the five tiers */

body .elementor .tiers-w{margin-bottom:1.6rem}
body .elementor .tiers{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;max-width:560px;
}
body .elementor .tiers li{
  list-style:none;position:relative;margin:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;
  padding:1rem .4rem .9rem;border-radius:var(--r);
  background:var(--white);border:2px dashed var(--line-strong);box-shadow:var(--shadow-1);
  transition:transform .2s var(--ease),border-color .2s var(--ease);
}
body .elementor .tiers li:hover{transform:translateY(-3px);border-color:var(--red)}
body .elementor .tiers b{font-family:var(--font-display);font-weight:400;font-size:clamp(1.6rem, 1.2rem + 1vw, 2.1rem);line-height:1;color:var(--red)}
body .elementor .tiers span{font-family:var(--font-cond);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
body .elementor .tiers li:last-child{background:var(--red);border:2px solid var(--red)}
body .elementor .tiers li:last-child b,
body .elementor .tiers li:last-child span{color:var(--white)}
@media (max-width:560px){
  body .elementor .tiers{grid-template-columns:repeat(3,minmax(0,1fr))}
}
body .elementor .promo-tilt{--promo-max:480px}
body .elementor .promo-tilt img{transform:rotate(-2.5deg)}
