/*
Theme Name:   The Greedy Lion
Theme URI:    https://thegreedylion.com
Author:       Cache Nerds
Author URI:   https://cachenerds.com
Description:  One-page restaurant theme for The Greedy Lion — Houston soul food. Crossfading hero, tabbed menu system with an auto-assembled full menu, Google reviews band, and delivery-partner ordering. All contact details, hours, ordering links and hero copy are editable from Appearance -> Customize -> Greedy Lion.
Version:      1.0.4
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  greedy-lion
Tags:         restaurant, one-column, custom-menu, custom-logo, editor-style, full-width-template
*/

:root{
  --espresso:#1B0D06;
  --espresso-2:#2A1509;
  --charcoal:#262626;
  --ink:#0B0B0B;
  --ember:#E1620E;
  --ember-lift:#F2751A;
  --cream:#F3ECE4;
  --muted:#A79B90;
  --hair:rgba(243,236,228,.14);
  --display:'Cormorant Garamond',Georgia,serif;
  --ui:'Jost',system-ui,sans-serif;
  --menu:'Barlow Condensed',Arial Narrow,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--cream);font-family:var(--ui);font-weight:300;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ---------- shared ---------- */
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--ui);font-size:.68rem;font-weight:400;letter-spacing:.34em;text-transform:uppercase;color:var(--muted)}
.display{font-family:var(--display);font-weight:300;line-height:1.05;letter-spacing:.005em}
h2.display{font-size:clamp(2rem,4.4vw,3.1rem)}
.rule{display:flex;gap:9px;justify-content:center;align-items:center}
.rule i{width:9px;height:9px;background:var(--ember);transform:rotate(45deg);display:block}
.rule i:nth-child(2){width:11px;height:11px}
.pointer{width:0;height:0;margin:0 auto;border-left:26px solid transparent;border-right:26px solid transparent}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:60;background:var(--espresso);border-bottom:1px solid rgba(225,98,14,.35)}
.bar{max-width:1180px;margin:0 auto;padding:14px 28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.dots{display:grid;grid-template-columns:repeat(2,5px);gap:4px;width:44px;height:44px;place-content:center;background:none;border:0;cursor:pointer;padding:0;margin-left:-11px}
.dots span{width:5px;height:5px;border-radius:50%;background:var(--ember)}
.brand{display:flex;align-items:center;justify-content:center;min-height:46px}
.brand img{height:clamp(34px,5.4vw,54px);width:auto;margin:0 auto}
.cta{justify-self:end}
.btn{font-family:var(--ui);font-size:.7rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;padding:13px 26px;border:1px solid transparent;cursor:pointer;transition:.35s;display:inline-block;text-align:center}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:var(--ember);color:#fff}
.btn-ember{background:var(--ember);color:#fff}
.btn-ember:hover{background:var(--ember-lift)}
.btn-ghost{border-color:rgba(255,255,255,.75);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--ink)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:clamp(460px,72vh,660px);display:grid;place-items:center;text-align:center;overflow:hidden;background:#0A0603}
.slides{position:absolute;inset:0}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;will-change:opacity,transform;animation:slideshow 21s cubic-bezier(.4,0,.2,1) infinite both}
.slides img:nth-child(2){animation-delay:7s}
.slides img:nth-child(3){animation-delay:14s}
@keyframes slideshow{
  0%   {opacity:0;transform:scale(1.11)}
  5%   {opacity:1}
  33%  {opacity:1}
  38%  {opacity:0;transform:scale(1)}
  100% {opacity:0;transform:scale(1)}
}
@media (prefers-reduced-motion:reduce){
  .slides img{animation-duration:0s;opacity:0;transform:none}
  .slides img:first-child{opacity:1}
}
.hero:after{content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 62% at 50% 48%, rgba(8,4,2,.42) 0%, rgba(8,4,2,.80) 100%),
    linear-gradient(180deg, rgba(8,4,2,.80) 0%, rgba(8,4,2,.52) 42%, rgba(8,4,2,.92) 100%);}
.hero-in{position:relative;z-index:2;padding:60px 28px;text-shadow:0 2px 24px rgba(0,0,0,.65)}
.hero .eyebrow{color:var(--cream);letter-spacing:.26em;margin:26px 0 10px;font-size:.78rem}
.hero h1{font-size:clamp(2.1rem,8.2vw,5.1rem);margin-bottom:18px}
.hero .tagline{font-family:var(--ui);font-size:.78rem;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--ember-lift);margin-bottom:36px}
.hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- creed ---------- */
.creed{background:var(--charcoal);padding:78px 0 66px;text-align:center}
.filigree{color:var(--ember);width:240px;max-width:64%;height:auto;margin:0 auto 34px;opacity:.85}
.creed p{font-family:var(--display);font-weight:300;font-size:clamp(1.22rem,2.5vw,1.72rem);line-height:2;max-width:720px;margin:0 auto;color:var(--cream)}
.pointer-charcoal{border-top:24px solid var(--charcoal)}

/* ---------- menu band ---------- */
.band{position:relative;min-height:190px;display:grid;place-items:center;overflow:hidden}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band:after{content:"";position:absolute;inset:0;background:rgba(20,10,4,.34)}
.band h2{position:relative;z-index:2;color:#fff;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(1.9rem,5vw,3.2rem);text-shadow:0 2px 26px rgba(0,0,0,.75)}

/* ---------- menu tabs ---------- */
.menu-zone{background:var(--ink);padding:34px 0 76px}
.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:56px}
.tab{font-family:var(--ui);font-size:.68rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;padding:13px 26px;background:#fff;color:var(--ink);border:0;cursor:pointer;transition:.3s;min-width:118px}
.tab:hover{background:var(--cream)}
.tab[aria-selected="true"]{background:var(--ember);color:#fff}
.tab-wide{min-width:150px;background:var(--cream)}
.full-lead{text-align:center;margin-bottom:38px}
.full-lead h2,.full-lead h3{font-size:clamp(1.9rem,3.8vw,2.6rem);color:var(--cream);text-transform:uppercase;letter-spacing:.03em}
.full-lead .eyebrow{display:block;margin-top:12px}
.menu-foot{text-align:center;margin-top:46px}
.panel{display:none;animation:rise .45s ease}
.panel.on{display:block}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.card{border:1px solid var(--hair);background:#050505;padding:clamp(18px,4.5vw,54px)}
.card + .card{margin-top:26px}
.card-head{text-align:center;margin-bottom:42px}
.card-head h3{font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,3.6vw,2.5rem);color:var(--ember);text-transform:uppercase;letter-spacing:.03em}
.card-head .when{font-family:var(--ui);font-size:.74rem;font-weight:400;letter-spacing:.24em;text-transform:uppercase;margin-top:12px;color:var(--cream)}
.badge{display:inline-block;border:1px solid var(--ember);color:var(--ember);border-radius:999px;padding:3px 11px;margin-right:11px;font-size:.68rem;letter-spacing:.12em}
.sub{font-family:var(--display);font-style:italic;font-weight:300;font-size:1.5rem;color:var(--ember-lift);text-align:center;margin:46px 0 26px;letter-spacing:.04em}
.sub:first-child{margin-top:0}

.row{display:flex;align-items:baseline;gap:16px;padding:15px 0;border-bottom:1px solid rgba(243,236,228,.08)}
.row:last-child{border-bottom:0}
.row .nm{font-family:var(--menu);font-weight:500;font-size:1.16rem;letter-spacing:.045em;text-transform:uppercase;color:var(--cream);line-height:1.25}
.row .dot{flex:1;border-bottom:1px dotted rgba(243,236,228,.2);transform:translateY(-4px)}
.row .pr{font-family:var(--ui);font-weight:400;font-size:.82rem;letter-spacing:.05em;background:#fff;color:var(--ink);border-radius:999px;padding:5px 15px;white-space:nowrap}
.row p{font-family:var(--ui);font-weight:300;font-size:.86rem;line-height:1.65;color:var(--muted);margin-top:6px;max-width:66ch}
.stack{flex:1;min-width:0}
.note{font-family:var(--ui);font-size:.72rem;font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center;margin-top:22px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:0 60px}

/* ---------- brunch ribbon ---------- */
.ribbon{background:var(--ember);text-align:center;padding:20px}
.ribbon p{font-family:var(--display);font-weight:400;font-size:clamp(1.25rem,2.8vw,1.75rem);color:#fff}
.pointer-ember{border-top:24px solid var(--ember)}

/* ---------- specials ---------- */
.specials{background:var(--espresso-2);padding:70px 0 84px;text-align:center}
.specials h2{margin-bottom:14px;text-transform:uppercase}
.specials h2 em{font-style:normal;color:var(--ember)}
.specials .eyebrow{margin-bottom:48px;display:block}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:26px}
.tile{position:relative;aspect-ratio:16/9;overflow:hidden;display:grid;place-items:center}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,8,3,.3),rgba(16,8,3,.68))}
.tile:hover img{transform:scale(1.06)}
.tile span{position:relative;z-index:2;font-family:var(--display);font-weight:400;font-size:clamp(1.3rem,2.6vw,1.75rem);color:#fff;text-transform:uppercase;letter-spacing:.06em;line-height:1.25;padding:0 22px;text-shadow:0 2px 20px rgba(0,0,0,.8)}
.tile small{display:block;font-family:var(--ui);font-size:.66rem;font-weight:400;letter-spacing:.24em;color:var(--ember-lift);margin-top:10px}

/* ---------- guests ---------- */
.guests{background:var(--ink);padding:0 0 64px}
.track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(min(280px,78vw),1fr);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:56px 28px 22px;max-width:1180px;margin:0 auto;scrollbar-width:none}
.track::-webkit-scrollbar{display:none}
.track figure{scroll-snap-align:center;aspect-ratio:4/5;overflow:hidden;background:var(--charcoal)}
.track img{width:100%;height:100%;object-fit:cover}
.arrows{display:flex;gap:12px;justify-content:center}
.arrow{width:44px;height:44px;border-radius:50%;border:1px solid var(--hair);background:#141414;color:var(--cream);cursor:pointer;font-size:1rem;line-height:1;transition:.3s}
.arrow:hover{background:var(--ember);border-color:var(--ember);color:#fff}

/* ---------- reviews (light band) ---------- */
.reviews{background:#fff;color:#1b1b1b;padding:62px 0 70px;text-align:center}
.reviews h2{font-family:var(--ui);font-weight:400;font-size:1.12rem;letter-spacing:.24em;text-transform:uppercase;color:#1b1b1b}
.stars{color:#F5B301;font-size:1.5rem;letter-spacing:.16em;margin:12px 0 6px}
.based{font-family:var(--ui);font-size:.82rem;font-weight:300;color:#5c5c5c}
.based b{font-weight:500;color:#1b1b1b}
.gsig{font-family:var(--display);font-size:1.5rem;letter-spacing:.08em;color:#4285F4;margin:14px 0 34px;font-weight:500}
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:20px;text-align:left}
.rcard{border:1px solid #e6e6e6;border-radius:3px;padding:22px 24px;background:#fff}
.rtop{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--ui);font-weight:400;font-size:.95rem;flex:none}
.rname{font-family:var(--ui);font-weight:400;font-size:.9rem;color:#1b1b1b}
.rago{font-family:var(--ui);font-weight:300;font-size:.74rem;color:#8a8a8a}
.rstars{color:#F5B301;font-size:.82rem;letter-spacing:.1em;margin-bottom:8px}
.rtext{font-family:var(--ui);font-weight:300;font-size:.86rem;line-height:1.65;color:#3d3d3d}

/* ---------- visit ---------- */
.visit{background:var(--espresso-2);padding:66px 0 74px;text-align:center}
.visit .small{font-family:var(--ui);font-size:.8rem;font-weight:300;color:var(--muted);margin:26px 0 8px}
.visit h2{text-transform:uppercase;margin-bottom:14px}
.addr{font-family:var(--ui);font-size:1.02rem;font-weight:300;letter-spacing:.06em;color:var(--ember-lift);margin-bottom:34px}
.apps{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:38px}
.app{background:#fff;border-radius:9px;width:108px;height:58px;display:grid;place-items:center;font-family:var(--ui);font-weight:500;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;line-height:1.25;transition:.3s;padding:6px;text-align:center}
.app:hover{transform:translateY(-3px)}
.hours{font-family:var(--ui);font-size:.84rem;font-weight:300;letter-spacing:.16em;text-transform:uppercase;line-height:2.35;color:var(--cream);margin-bottom:38px}
.hours span{color:var(--muted)}
.map{border:1px solid var(--hair);overflow:hidden;line-height:0}
.map iframe{width:100%;height:370px;border:0;filter:grayscale(.15)}

/* ---------- footer ---------- */
footer{background:var(--espresso);padding:52px 0 34px}
.fmark{display:block;margin:0 auto 40px;width:fit-content}
.fmark img{height:clamp(46px,7vw,66px);width:auto;opacity:.9;transition:.3s}
.fmark:hover img{opacity:1}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:34px}
.fline{display:flex;gap:13px;align-items:center;font-family:var(--ui);font-size:.9rem;font-weight:300;margin-bottom:14px;color:var(--cream)}
.fline svg{width:15px;height:15px;stroke:var(--ember);fill:none;stroke-width:1.6;flex:none}
.flink{display:block;font-family:var(--ui);font-size:.88rem;font-weight:300;color:var(--cream);padding:7px 0;transition:.3s}
.flink:hover{color:var(--ember-lift);padding-left:5px}
.flink.hot{color:var(--ember)}
.fdir{display:inline-block;font-family:var(--ui);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember);margin-top:8px}
.fbase{margin-top:40px;padding-top:22px;border-top:1px solid var(--hair);display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.fbase p{font-family:var(--ui);font-size:.76rem;font-weight:300;color:var(--muted)}
.ig{width:34px;height:34px;border:1px solid var(--hair);border-radius:50%;display:grid;place-items:center;transition:.3s}
.ig:hover{border-color:var(--ember);background:var(--ember)}
.ig svg{width:15px;height:15px;stroke:var(--cream);fill:none;stroke-width:1.5}


/* never let a long dish name force a sideways scroll */
.row .nm,.row p,.rtext,.addr{overflow-wrap:anywhere}
html,body{max-width:100%;overflow-x:hidden}

@media(max-width:820px){
  .bar{padding:12px 18px}
    .btn{padding:11px 17px;font-size:.62rem;letter-spacing:.16em}
  .wrap{padding:0 18px}
  .grid2{gap:0}
  .creed{padding:56px 0 48px}
  .track{grid-auto-columns:minmax(min(230px,72vw),1fr);padding:40px 18px 20px}
  .map iframe{height:290px}
}
@media(max-width:480px){
  /* header: keep dots + logo + button on one line at 320px */
  .bar{padding:8px 14px;gap:6px}
  .btn{padding:14px 15px;font-size:.73rem;letter-spacing:.1em;min-height:46px;display:inline-flex;align-items:center;justify-content:center}
  .wrap{padding:0 14px}

  /* tabs: 2-up grid beats 6 stacked rows */
  .tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:38px}
  .tab{min-width:0;min-height:46px;padding:6px;font-size:.66rem;letter-spacing:.09em}
  .tab-wide{grid-column:1/-1;min-width:0}

  /* menu rows: the dotted leader wastes scarce width */
  .card{padding:20px 16px}
  .row{gap:10px;padding:13px 0}
  .row .dot{display:none}
  .row .nm{font-size:1.04rem;letter-spacing:.03em}
  .row .pr{font-size:.8rem;padding:5px 12px}
  .row p{font-size:.84rem}
  .sub{font-size:1.28rem;margin:34px 0 18px}
  .note{font-size:.72rem;letter-spacing:.05em}
  .eyebrow{font-size:.7rem;letter-spacing:.2em}

  .creed p{font-size:1.08rem;line-height:1.85}
  .filigree{max-width:76%;margin-bottom:26px}
  .hero-in{padding:44px 18px}
  .hero-btns{gap:10px}
  .band{min-height:150px}
  .specials,.reviews,.visit{padding:48px 0 54px}

  /* delivery tiles: were 8.8px text in a 52px box */
  .apps{gap:9px}
  .app{width:98px;height:60px;font-size:.72rem;letter-spacing:.03em}

  .hours{font-size:.8rem;letter-spacing:.09em;line-height:2.2}
  .map iframe{height:240px}

  /* footer: 30px rows were below the tap minimum */
  .fgrid{gap:24px}
  .fline{padding:10px 0;margin-bottom:2px;min-height:44px;align-items:center}
  .flink{padding:12px 0;min-height:44px;display:flex;align-items:center}
  .fdir{padding:12px 0;min-height:44px;display:inline-flex;align-items:center}
  .fbase{justify-content:center;text-align:center;gap:14px}
  .fbase p{font-size:.8rem}
  .fbase a{padding:12px 6px;min-height:44px;display:inline-flex;align-items:center}
  .ig{width:44px;height:44px}
  .arrow{width:46px;height:46px}
}
/* ------------------------------------------------------------------
   Standalone menu page (/menu/ — the table QR-code destination)
   ------------------------------------------------------------------ */
.menu-hero{background:var(--espresso-2);padding:56px 0 44px;text-align:center;border-bottom:1px solid var(--hair)}
.menu-hero h1{font-family:var(--display);font-weight:300;font-size:clamp(2.2rem,6vw,3.4rem);text-transform:uppercase;letter-spacing:.02em;margin:22px 0 12px}
.menu-hero .eyebrow{display:block;color:var(--ember-lift)}
.menu-zone.is-standalone{padding-top:34px}
.menu-cta{background:var(--espresso-2);padding:56px 0 64px;text-align:center;border-top:1px solid var(--hair)}
.menu-cta h2{margin:22px 0 10px;text-transform:uppercase}
.menu-cta .hero-btns{margin-bottom:34px}
.menu-cta .hours{margin-bottom:26px}
.menu-back a{font-family:var(--ui);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:.3s}
.menu-back a:hover{color:var(--ember)}

/* ------------------------------------------------------------------
   Print — guests sometimes print the menu from the QR page
   ------------------------------------------------------------------ */
@media print{
  header,footer,.menu-hero,.menu-cta,.tabs,.menu-foot,.band,.ribbon,.pointer,.guests,.reviews,.specials,.hero{display:none!important}
  body{background:#fff;color:#000}
  .panel{display:none}
  .panel#p-full{display:block!important}
  .card{border:0;background:none;padding:0}
  .card-head h3,.sub{color:#000}
  .row{border-bottom:1px solid #ddd;break-inside:avoid}
  .row .nm,.row p,.pr{color:#000}
  .row .pr{background:none;border:1px solid #000}
  .row .dot{border-bottom-color:#999}
}

/* skip link — keyboard users and screen readers */
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--ember);color:#fff;
  font-family:var(--ui);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;padding:14px 22px}
.skip-link:focus{left:0}
footer address{font-style:normal}

/* ------------------------------------------------------------------
   Header hardening.

   The header bar is a <nav> landmark, which some menu plugins treat as
   an injection point — they append a <ul> of links into the first <nav>
   they find. That markup lands in the bar's left grid cell and shoves
   the logo and Order Now button out of alignment.

   The theme's own header contains exactly three children: the dots
   button, the brand link, and the CTA. Anything else that appears in
   there is from a plugin and is hidden.
   ------------------------------------------------------------------ */
header .bar > ul,
header .bar ul.menu,
header .bar .menu,
header .bar .menu-item,
header .bar nav,
header .bar .mega-menu-wrap,
header .bar .wp-block-navigation{
  display:none!important;
}

/* Pin the three real children to their columns so nothing can displace them. */
header .bar > .dots{grid-column:1;grid-row:1;justify-self:start}
header .bar > .brand{grid-column:2;grid-row:1}
header .bar > .cta{grid-column:3;grid-row:1;justify-self:end}
