:root {
  --oxblood: #751428;
  --oxblood-deep: #5c101f;
  --parchment: #f1f1d8;
  --mustard: #f1c94b;
  --gold: #f4cf45;
  --teal: #425c59;
  --teal-mid: #5e8f88;
  --teal-dot: #629891;
  --cream: #fffde8;
  --nav-gold: #e8c56a;
  --ink: #2c3a36;
  --wood-tint: #243656;
  --shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
  --content: min(90rem, calc(100% - 2.5rem));
  --font-display: "Anton", "Impact", sans-serif;
  --font-slab: "Alfa Slab One", "Rockwell", serif;
  --font-script: "Great Vibes", "Snell Roundhand", cursive;
  --font-serif: "Libre Baskerville", Georgia, serif;
  --font-sans: "Libre Franklin", "Helvetica Neue", sans-serif;
  --cajun-pattern: url("../assets/images/cajun-pattern.jpg");
  --cajun-pattern-size: 85rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--oxblood);
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body {
  min-height: 100%;
  background: var(--oxblood);
}

body.nav-open {
  overflow: hidden;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
}

a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--mustard);
  outline-offset: 3px;
}

.skip {
  position: absolute;
  left: 0.75rem;
  top: -4rem;
  z-index: 20;
  padding: 0.6rem 1rem;
  background: var(--cream);
  color: var(--oxblood);
  font-weight: 800;
  text-decoration: none;
}

.skip:focus {
  top: 0.75rem;
}

/* Header / hero wood wrap */

.site-header {
  position: relative;
  z-index: 1000;
  overflow: visible;
}

.nav-bar {
  position: relative;
  z-index: 1001;
  display: grid;
  grid-template-columns: 18rem 1fr auto;
  align-items: center;
  min-height: 7.4rem;
  padding: 0 1.85rem 0 1.15rem;
  background: var(--oxblood);
}

.logo {
  position: absolute;
  left: 1.55rem;
  top: -0.15rem;
  width: 16.75rem;
  z-index: 6;
}

.logo img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.35));
}

.nav-toggle {
  display: none;
  grid-column: 3;
  justify-self: end;
  margin-right: 0.75rem;
  border: 2px solid var(--nav-gold);
  background: transparent;
  color: var(--nav-gold);
  font-family: var(--font-slab);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.4rem 0.7rem;
  cursor: pointer;
}

.site-nav {
  display: flex;
  grid-column: 2;
  justify-content: center;
  justify-self: center;
}

.nav-frame {
  display: flex;
  align-items: center;
  /* Five links: wrap inside the frame rather than pushing past the phone. */
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem;
  row-gap: 0.5rem;
  padding: 0.36rem 1.45rem 0.32rem;
  border: 1.5px solid rgba(255, 253, 232, 0.82);
  position: relative;
}

.nav-frame::before,
.nav-frame::after,
.nav-frame .flourish-l,
.nav-frame .flourish-r {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  border: 1.5px solid rgba(255, 253, 232, 0.82);
  border-radius: 0 0 0 70%;
  pointer-events: none;
}

.nav-frame::before {
  top: -7px;
  left: -7px;
  border-right: 0;
  border-bottom: 0;
  border-radius: 80% 0 0 0;
}

.nav-frame::after {
  top: -7px;
  right: -7px;
  border-left: 0;
  border-bottom: 0;
  border-radius: 0 80% 0 0;
}

.nav-frame .corner-bl,
.nav-frame .corner-br {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 1.5px solid rgba(255, 253, 232, 0.82);
  pointer-events: none;
}

.nav-frame .corner-bl {
  left: -7px;
  bottom: -7px;
  border-right: 0;
  border-top: 0;
  border-radius: 0 0 0 80%;
}

.nav-frame .corner-br {
  right: -7px;
  bottom: -7px;
  border-left: 0;
  border-top: 0;
  border-radius: 0 0 80% 0;
}

.site-nav a {
  font-family: var(--font-slab);
  font-size: 1.17rem;
  letter-spacing: 0.1em;
  -webkit-text-stroke: 0.018em currentColor;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--nav-gold);
  white-space: nowrap;
}

.site-nav a.is-current,
.site-nav a:hover {
  color: var(--cream);
}

.nav-diamond {
  color: var(--nav-gold);
  font-size: 0.71rem;
  line-height: 1;
}

.phone {
  grid-column: 3;
  justify-self: end;
  font-family: var(--font-slab);
  font-size: 1.45rem;
  letter-spacing: 0.03em;
  color: var(--cream);
  -webkit-text-stroke: 0.015em currentColor;
  text-decoration: none;
  white-space: nowrap;
}

.phone:hover {
  color: var(--nav-gold);
}

/* Hero */

.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  align-items: center;
  gap: 1rem;
  margin: 0;
  padding: 3.4rem 1rem 4.4rem;
  padding-left: max(2.4rem, calc((100% - 90rem) / 2 + 2.4rem));
  padding-right: max(1rem, calc((100% - 90rem) / 2 + 1rem));
  min-height: 36rem;
  padding-top: 4.4rem;
  background-color: var(--wood-tint);
  background-image: url("../assets/images/wood-navy.jpg");
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--cream);
}

.hero-copy,
.hero-plate {
  position: relative;
  z-index: 1;
}

.hero-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 42rem;
}

.hero-headline {
  width: min(40rem, 100%);
  display: block;
  margin: 0 0 0.4rem -0.4rem;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.25));
}

.menu-cta {
  display: inline-block;
  width: min(28rem, 100%);
  margin-left: 1.6rem;
  transition: transform 180ms ease;
}

.menu-cta:hover {
  transform: translateY(-2px);
}

.hero-plate {
  justify-self: end;
  width: min(28.5rem, 100%);
  margin-right: 1rem;
  filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.45));
}

.scallop {
  height: 18px;
  margin-top: -9px;
  margin-bottom: -9px;
  position: relative;
  z-index: 3;
  pointer-events: none;
  background: url("../assets/images/scallop.png") center / 35px 18px repeat-x;
}

.scallop-cream {
  background-color: transparent;
}

/* Bayou gator: patrols the dotted waterline at the bottom of the hero.
   All motion is CSS keyframes on inline-SVG groups; walk cycle, tail sway,
   blink, and a slow anticipation-open / snap-shut chomp on a 12s cycle.
   Feet sit on the top rank of scallop dots; markup from feed_mill_gator_html(). */
.gator-track{
  position:absolute; left:0; right:0; bottom:10px; height:0;
  z-index:4; pointer-events:none;
}
.gator-mover{
  position:absolute; bottom:0; left:0;
  width:clamp(137px, 18.6vw, 218px);
  animation:gator-route 53s linear infinite;
}
.gator-stage{ position:relative; }
.gator-flip{ animation:gator-face 53s linear infinite; transform-origin:50% 50%; will-change:transform; }
.gator-flip, .gator-svg{ display:block; width:100%; height:auto; }
.gator-svg .part{ transform-box:fill-box; }
.gator-bob { transform-origin:50% 85%; animation:gator-bob 1.12s ease-in-out infinite; }
.gator-tail{ transform-origin:96% 78%; animation:gator-tail 2.24s ease-in-out infinite; }
.gator-jaw { transform-origin:3% 20%;  animation:gator-chomp 12s linear infinite; }
.gator-maw { transform-origin:3% 20%;  animation:gator-maw 12s linear infinite; }
.gator-nudge{ transform-origin:30% 80%; animation:gator-lunge 12s linear infinite; }
.gator-lid { transform-origin:50% 0%;  animation:gator-blink 6.4s linear infinite; }
.gator-leg { transform-origin:55% 6%;  animation:gator-step 1.12s ease-in-out infinite; }
.gator-leg.is-alt{ animation-delay:-.56s; }
/* Parking windows are cut to just fit the turn, so he steps off within half a
   second of facing the new direction. */
@keyframes gator-route{
  0%,0.8%   { left:0%;   transform:translateX(-62%); animation-timing-function:cubic-bezier(.33,.06,.67,.94); }
  45%,49.2% { left:100%; transform:translateX(-38%); animation-timing-function:cubic-bezier(.33,.06,.67,.94); }
  95.4%,100%{ left:0%;   transform:translateX(-62%); }
}
/* A real turn, not a mirror: perspective rotateY sweeps his head toward the
   camera, and the easing rushes through the paper-thin edge-on instant.
   -360deg at the loop end lands back on 0deg with no snap. */
/* The side view only ever rotates ~45deg before it hands off to the head-on
   pose, so the paper-thin edge-on frame is never on screen. */
@keyframes gator-face{
  0%,45.5%   { transform:perspective(500px) rotateY(0deg);    animation-timing-function:cubic-bezier(.5,0,.5,1); }
  48.7%,96.4%{ transform:perspective(500px) rotateY(-180deg); animation-timing-function:cubic-bezier(.5,0,.5,1); }
  99.6%,100% { transform:perspective(500px) rotateY(-360deg); }
}
@keyframes gator-bob{
  0%,50%,100% { transform:translateY(0) rotate(0deg); }
  25%  { transform:translateY(-2.2px) rotate(.8deg); }
  75%  { transform:translateY(-2.2px) rotate(-.8deg); }
}
/* Wider swing plus a small lift on the forward reach, so each stride reads
   as a step instead of a rocking limb. */
@keyframes gator-step{
  0%,100% { transform:rotate(26deg) translateY(0); }
  25%     { transform:rotate(6deg)  translateY(-2.2px); }
  50%     { transform:rotate(-26deg) translateY(0); }
  75%     { transform:rotate(6deg)  translateY(0); }
}
@keyframes gator-tail{
  0%,100% { transform:rotate(1deg); }
  50%     { transform:rotate(-1.4deg); }
}
@keyframes gator-chomp{
  0%,66%  { transform:rotate(0deg);    animation-timing-function:ease; }
  70.5%   { transform:rotate(21deg);   animation-timing-function:linear; }
  74%     { transform:rotate(19deg);   animation-timing-function:cubic-bezier(.85,0,1,.4); }
  75.2%   { transform:rotate(-1deg);   animation-timing-function:ease-out; }
  76.6%   { transform:rotate(3deg);    animation-timing-function:ease-in-out; }
  78.5%,100%{ transform:rotate(0deg); }
}
@keyframes gator-maw{
  0%,66%  { transform:rotate(0deg);    animation-timing-function:ease; }
  70.5%   { transform:rotate(10.5deg); animation-timing-function:linear; }
  74%     { transform:rotate(9.5deg);  animation-timing-function:cubic-bezier(.85,0,1,.4); }
  75.2%   { transform:rotate(-0.5deg); animation-timing-function:ease-out; }
  76.6%   { transform:rotate(1.5deg);  animation-timing-function:ease-in-out; }
  78.5%,100%{ transform:rotate(0deg); }
}
@keyframes gator-lunge{
  0%,66%  { transform:rotate(0deg);    animation-timing-function:ease; }
  70%     { transform:rotate(-1.8deg); animation-timing-function:linear; }
  74.4%   { transform:rotate(-1.5deg); animation-timing-function:cubic-bezier(.85,0,1,.4); }
  75.6%   { transform:rotate(.9deg);   animation-timing-function:ease-out; }
  79%,100%{ transform:rotate(0deg); }
}
@keyframes gator-blink{
  0%,92%   { transform:scaleY(.08); }
  95%       { transform:scaleY(1); }
  98%,100% { transform:scaleY(.08); }
}
@media (prefers-reduced-motion: reduce){
  .gator-mover,.gator-flip,.gator-flip .gator-svg,.gator-bob,.gator-tail,.gator-jaw,.gator-maw,.gator-nudge,.gator-lid,.gator-leg{ animation:none !important; }
  .gator-mover{ left:6%; transform:none; }
}

/* Hungry / categories */

.hungry {
  position: relative;
  z-index: 5;
  isolation: isolate;
  overflow: visible;
  background: var(--parchment) url("../assets/images/parchment.jpg") center / 420px repeat;
  padding: 3.6rem 1.25rem 3.2rem;
}

.hungry::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/images/noise.png");
  opacity: 0.07;
  pointer-events: none;
}

.hungry-inner {
  position: relative;
  z-index: 1;
  width: var(--content);
  margin: 0 auto;
}

.hungry-inner .photo-strip {
  margin-top: 2.4rem;
}

/* Hungry headline.
   Live text, not a bitmap: the old PNG had the top of line 1 baked off, so no
   amount of CSS could put those pixels back. Anton matches the artwork's stroke
   weight to within 3%. The teal bracket is the mockup's, drawn as two mirrored
   SVGs so the notched corners never distort, and it is now tall enough to hold
   both lines instead of letting them hang out of it. Grain is clipped to the
   glyphs, so the paper reads through the ink the way the artwork does. */

.hungry-headline,
.fm-hungry-frame .elementor-heading-title {
  --hl-family: "Anton", "Impact", sans-serif;
  --hl-ink: var(--oxblood, #751428);
  --hl-frame-h: 2.15em;
  --hl-bracket-w: 1.34em;
  --hl-reserve: 1.69em;
  position: relative;
  z-index: 6;
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 1.4rem;
  padding: 0 var(--hl-reserve);
  font-family: var(--hl-family) !important;
  font-weight: 400 !important;
  font-style: normal;
  font-size: clamp(1.35rem, 5.1vw, 4.6rem);
  line-height: 1.089;
  letter-spacing: 0.034em;
  text-transform: uppercase;
  text-align: center;
  /* The <br> still sets the break; without nowrap, longer text edited in
     Elementor wraps inside the frame instead of overflowing it. */
  color: transparent !important;
  background-image: url("../assets/images/ink-speckle.png"),
    linear-gradient(var(--hl-ink), var(--hl-ink));
  /* One speckle tile per text line, so the faded band lands mid-letter the way
     it does in the artwork. Ink thins in the core of a stroke, not at its edge,
     so the stroke is repainted solid to keep the letter edges crisp. */
  background-size: 4.9em 1.089em, 100% 100%;
  background-repeat: repeat, no-repeat;
  background-position: 0 0;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-stroke: 0.012em var(--hl-ink);
}

/* The two halves of the ticket bracket. */
.hungry-headline::before,
.hungry-headline::after,
.fm-hungry-frame .elementor-heading-title::before,
.fm-hungry-frame .elementor-heading-title::after {
  content: "";
  position: absolute;
  top: 0;
  width: var(--hl-bracket-w);
  height: var(--hl-frame-h);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='134' height='215' viewBox='0 0 134 215' fill='none' stroke='%235e8f88' stroke-width='3.8'%3E%3Cpath d='M134 1.9H22.9A21 21 0 0 1 1.9 22.9V192.1A21 21 0 0 1 22.9 213.1H134'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
  pointer-events: none;
}

.hungry-headline::before,
.fm-hungry-frame .elementor-heading-title::before {
  left: 0;
}

.hungry-headline::after,
.fm-hungry-frame .elementor-heading-title::after {
  right: 0;
  transform: scaleX(-1);
}

/* No background-clip:text (very old browsers): plain oxblood, still uncropped. */
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .hungry-headline,
  .fm-hungry-frame .elementor-heading-title {
    color: var(--hl-ink) !important;
    background-image: none;
  }
}

.categories {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem 1.35rem;
}

.category {
  text-align: center;
}

.category img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center;
  border-radius: 1.15rem;
  display: block;
  box-shadow: var(--shadow);
}

.photo-strip {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr 1fr;
  gap: 0.6rem;
  margin: 2rem 0 0;
}

.photo-strip img,
.story-photos img,
.room img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.photo-strip img {
  aspect-ratio: 4 / 3;
  border-radius: 0.6rem;
}

.story-hero-photo {
  width: 100%;
  max-height: 26rem;
  object-fit: cover;
  display: block;
}

.story-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin: 2rem 0 0;
}

.story-photos img {
  aspect-ratio: 3 / 2;
}

.story-photos img:first-child {
  grid-column: 1 / -1;
  aspect-ratio: 16 / 7;
}

.room img {
  aspect-ratio: 16 / 10;
  margin: 0 0 0.85rem;
}

.menu-photos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  margin: 0 0 1.6rem;
}

.menu-photos img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.category h3 {
  margin: 1.2rem 0 0.4rem;
  color: var(--oxblood);
  font-family: var(--font-slab);
  font-size: clamp(1.28rem, 2.35vw, 2.15rem);
  letter-spacing: 0.01em;
  line-height: 1.05;
}

.category h3 .at-the {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 2.55em;
  height: 2.55em;
  margin: 0 0.12em;
  border: 2px solid var(--teal-mid);
  border-radius: 50%;
  color: var(--teal);
  font-family: var(--font-sans);
  font-size: 0.42em;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1.05;
  vertical-align: 0.28em;
}

.category p {
  margin: 0 auto 0.95rem;
  max-width: 16rem;
  color: var(--teal);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.3;
}

.pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.68rem 1.15rem 0.6rem 1.2rem;
  background: var(--oxblood);
  color: var(--mustard);
  font-family: var(--font-slab);
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-transform: uppercase;
  border: 1.5px solid var(--gold);
  box-shadow: 0 2px 0 var(--oxblood-deep);
}

.pill::after {
  content: "▸";
  font-size: 0.85rem;
  color: var(--gold);
}

.pill:hover {
  background: var(--oxblood-deep);
}

/* Story */

.story {
  position: relative;
  background-color: var(--oxblood);
  background-image: var(--cajun-pattern);
  background-size: var(--cajun-pattern-size);
  background-repeat: repeat;
  color: var(--parchment);
  text-align: center;
  padding: 4.6rem 1.25rem 4.1rem;
}

.story::before {
  content: none;
}

.story-inner {
  position: relative;
  z-index: 1;
  width: min(70rem, 100%);
  margin: 0 auto;
}

.story h2 {
  margin: 0 0 1.5rem;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 7.6vw, 6.15rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 0.9;
  text-transform: uppercase;
  color: var(--parchment);
  -webkit-text-stroke: 0.022em currentColor;
  paint-order: stroke fill;
}

.story p {
  margin: 0 auto 2.1rem;
  max-width: 48rem;
  font-family: var(--font-serif);
  font-size: clamp(1.05rem, 1.45vw, 1.22rem);
  line-height: 1.65;
}

.story-cta {
  position: relative;
  display: flex;
  justify-content: center;
}

.story-cta a {
  position: relative;
  z-index: 1;
  display: inline-block;
  width: min(28rem, 92%);
  transition: transform 180ms ease;
}

.story-cta a:hover {
  transform: translateY(-2px);
}

.metal-band {
  height: 7.4rem;
  background: url("../assets/images/metal.jpg") center / cover no-repeat;
  box-shadow: inset 0 10px 16px rgba(0, 0, 0, 0.18), inset 0 -8px 12px rgba(0, 0, 0, 0.12);
}

/* Specials */

.specials {
  position: relative;
  background: var(--mustard) url("../assets/images/yellow-paper.jpg") center / 380px repeat;
  padding: 2.6rem 1.25rem 2rem;
}

.specials-inner {
  width: var(--content);
  margin: 0 auto;
}

.specials-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  margin: 0 0 1.5rem;
  color: var(--teal);
}

.specials-heading img {
  width: 2.1rem;
  height: auto;
}

.specials-heading h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.35rem, 5.2vw, 3.9rem);
  font-weight: 400;
  letter-spacing: 0.07em;
  -webkit-text-stroke: 0.02em currentColor;
  paint-order: stroke fill;
}

.specials-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  border: 2px solid var(--teal);
  clip-path: polygon(
    18px 0,
    calc(100% - 18px) 0,
    calc(100% - 18px) 18px,
    100% 18px,
    100% 100%,
    0 100%,
    0 18px,
    18px 18px
  );
}

.special-day {
  padding: 1.15rem 0.7rem 1.35rem;
  text-align: center;
  border-right: 1.5px solid var(--teal);
}

.special-day:last-child {
  border-right: 0;
}

.special-day h3 {
  margin: 0 0 0.7rem;
  color: var(--oxblood);
  font-family: var(--font-slab);
  font-size: clamp(0.92rem, 1.4vw, 1.22rem);
  letter-spacing: 0.02em;
}

.special-day p {
  margin: 0;
  color: var(--teal);
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
}

/* Footer */

.site-header,
.nav-bar,
.hero,
.hungry,
.story,
.specials,
.metal-band,
.scallop,
.page-main,
.site-footer {
  width: 100%;
}

.site-footer {
  position: relative;
  background: var(--teal) url("../assets/images/teal-paper.jpg") center / 360px repeat;
  color: var(--cream);
  padding: 0 0 2.9rem;
  overflow: hidden;
}

.torn {
  display: block;
  width: 100%;
  max-width: none;
  height: 2.35rem;
  object-fit: cover;
  object-position: center;
  margin: 0 0 1.1rem;
}

.footer-inner {
  width: var(--content);
  margin: 0 auto;
  display: grid;
  /* nav column widened so five links hold one row at the larger size */
  grid-template-columns: 1fr 1.55fr;
  gap: 1.4rem 2rem;
  align-items: center;
}

.footer-brand {
  display: grid;
  grid-template-columns: auto auto;
  gap: 0.85rem 1rem;
  align-items: center;
  justify-content: start;
}

.footer-logo {
  width: min(11.5rem, 42vw);
  max-width: 11.5rem;
  height: auto;
  display: block;
}

.social {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.social a {
  display: block;
  width: 3.28rem;
  height: 3.28rem;
  transition: transform 160ms ease;
}

.social a:hover {
  transform: scale(1.06);
}

.social img {
  width: 100%;
  height: 100%;
  display: block;
}

.address {
  grid-column: 1 / -1;
  margin: 0.15rem 0 0;
  font-size: 1.22rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  max-width: 26rem;
}

.site-credit {
  grid-column: 1 / -1;
  margin: 0.45rem 0 0;
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: var(--mustard);
  opacity: 0.72;
}

.site-credit a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
  transition: opacity 0.18s ease;
}

.site-credit a:hover,
.site-credit a:focus-visible {
  opacity: 0.75;
}

.address a {
  text-decoration: none;
}

.address a:hover {
  text-decoration: underline;
}

.footer-nav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
}

.footer-nav .nav-frame {
  align-self: end;
  padding-left: 1rem;
  padding-right: 1rem;
  border-color: rgba(255, 253, 232, 0.9);
}

.footer-nav .nav-frame::before,
.footer-nav .nav-frame::after,
.footer-nav .corner-bl,
.footer-nav .corner-br {
  border-color: rgba(255, 253, 232, 0.9);
}

.footer-nav .site-nav-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
  row-gap: 0.4rem;
}

.footer-nav a {
  font-family: var(--font-slab);
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  white-space: nowrap;
  -webkit-text-stroke: 0.018em currentColor;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--cream);
}

.footer-nav a.is-current,
.footer-nav a:hover {
  color: var(--mustard);
}

.hours {
  list-style: none;
  margin: 0;
  padding: 0;
  color: var(--mustard);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 1.2rem;
}

.hours li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.55rem;
  align-items: baseline;
  margin: 0.35rem 0;
}

.hours .lead {
  border-bottom: 2px dotted var(--mustard);
  min-width: 2rem;
  height: 0.65em;
}

/* Interior pages */

.page-main {
  background: var(--parchment) url("../assets/images/parchment.jpg") center / 420px repeat;
}

.page-banner {
  background: var(--oxblood) var(--cajun-pattern) center / var(--cajun-pattern-size);
  color: var(--parchment);
  text-align: center;
  padding: 5.5rem 1.25rem 2.6rem;
}

.page-banner h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.7rem, 6.6vw, 4.9rem);
  font-weight: 400;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  -webkit-text-stroke: 0.022em currentColor;
  paint-order: stroke fill;
}

.page-banner p {
  margin: 0.8rem auto 0;
  max-width: 38rem;
  font-family: var(--font-serif);
  font-size: 1.05rem;
}

.page-body {
  width: min(58rem, calc(100% - 2rem));
  margin: 0 auto;
  padding: 2.8rem 0 4.5rem;
}

.menu-block {
  margin: 0 0 2.4rem;
  padding: 1.5rem 1.4rem 1.3rem;
  border: 2px solid var(--teal-mid);
  background: rgba(255, 253, 232, 0.55);
}

.menu-block h2 {
  margin: 0 0 0.35rem;
  color: var(--oxblood);
  font-family: var(--font-slab);
  font-size: 1.45rem;
}

.menu-block .lede {
  margin: 0 0 1rem;
  color: var(--teal);
  font-weight: 700;
}

.dish {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.4rem 1rem;
  padding: 0.7rem 0;
  border-top: 1px dashed rgba(66, 92, 89, 0.35);
}

.dish h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.02rem;
}

.dish .price {
  font-family: var(--font-slab);
  color: var(--oxblood);
}

.dish p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--ink);
  font-size: 0.92rem;
}

.note {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  line-height: 1.7;
}

.story-article .note + .note {
  margin-top: 1.15rem;
}

.story-article h2 {
  margin: 2rem 0 0.7rem;
  color: var(--oxblood);
  font-family: var(--font-slab);
  font-size: 1.35rem;
}

.rooms {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}

.room {
  padding: 1.3rem 1.2rem;
  background: var(--oxblood);
  color: var(--parchment);
  background-image: var(--cajun-pattern);
  background-size: var(--cajun-pattern-size);
}

.room h2 {
  margin: 0 0 0.5rem;
  font-family: var(--font-slab);
}

.interior-specials {
  margin-top: 1.5rem;
}

/* Menu page — diner-board spread */

.page-main.menu-page,
.page-main.interior-spread {
  --menu-paper: #fff8e7;
  --menu-ink: #24322f;
  --menu-rule: rgba(36, 50, 47, 0.28);
  --menu-press: 8px 8px 0 0 var(--oxblood);
  --menu-press-ink: 8px 8px 0 0 var(--teal);
  background: var(--cream);
  color: var(--menu-ink);
}

.menu-wrap {
  width: min(92rem, calc(100% - 5rem));
  margin: 0 auto;
}

.menu-hero,
.menu-sec-block,
.menu-feature {
  padding: 4.5rem 0;
}

.page-main.menu-page > .menu-hero {
  padding-top: 7.75rem;
}

.menu-hero-grid,
.menu-hot-grid,
.menu-split {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 3rem;
  align-items: center;
}

.menu-split {
  grid-template-columns: 0.42fr 0.58fr;
  align-items: start;
  margin-bottom: 2rem;
}

.menu-split.is-flip {
  grid-template-columns: 0.58fr 0.42fr;
}

.menu-eyebrow {
  margin: 0 0 0.4rem;
  color: var(--oxblood);
  font-family: var(--font-display);
  font-size: 1.15rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.menu-display {
  margin: 0;
  color: var(--menu-ink);
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 8vw, 8.25rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 0.92;
  text-transform: uppercase;
}

.menu-script {
  margin: -0.7rem 0 0 0.7rem;
  color: var(--oxblood);
  font-family: var(--font-script);
  font-size: clamp(2.3rem, 4.6vw, 4.75rem);
  font-weight: 400;
  line-height: 0.85;
}

.menu-lede {
  margin: 2rem 0 0;
  max-width: 38rem;
  font-family: var(--font-serif);
  font-size: 1.15rem;
  line-height: 1.6;
}

.menu-poster {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 3px solid var(--menu-ink);
  border-radius: 14px;
  background: var(--menu-paper);
  box-shadow: 10px 10px 0 0 var(--oxblood);
}

.menu-poster img,
.menu-card img,
.menu-feature-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.menu-tape {
  position: absolute;
  top: -0.35rem;
  left: 50%;
  width: 4.4rem;
  height: 1.35rem;
  background: color-mix(in srgb, var(--mustard) 82%, #fff);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.12);
  transform: translateX(-50%) rotate(-2deg);
}

.menu-jump {
  position: sticky;
  top: 0;
  z-index: 8;
  background: var(--cream);
  border-top: 2px solid var(--menu-ink);
  border-bottom: 2px solid var(--menu-ink);
}

.menu-jump-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0;
  padding: 1rem 0;
  font-family: var(--font-display);
  font-size: 0.9rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.menu-jump a {
  color: var(--menu-ink);
  text-decoration: none;
}

.menu-jump a:hover {
  color: var(--oxblood);
}

.menu-jump span {
  margin: 0 0.85rem;
  color: var(--oxblood);
  opacity: 0.55;
}

.menu-sec-block {
  scroll-margin-top: 4.25rem;
}

.menu-sec-block.is-paper {
  background: var(--parchment);
}

.menu-sec-head {
  margin: 0 0 1.5rem;
}

.menu-sec-head h2 {
  margin: 0;
  padding-top: 0.12em;
  color: var(--menu-ink);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.08;
  text-transform: uppercase;
  overflow: visible;
}

.menu-sec-head .menu-script {
  font-size: clamp(2.1rem, 4vw, 3.7rem);
}

.menu-note {
  margin: 0 0 1.6rem;
  max-width: 52rem;
  color: color-mix(in srgb, var(--menu-ink) 78%, var(--cream));
  font-family: var(--font-serif);
  font-size: 0.98rem;
  line-height: 1.55;
}

.menu-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin: 0 0 2rem;
}

.menu-cards--3 {
  grid-template-columns: minmax(0, 22rem);
  /* single plate shots sit to the right of the section */
  justify-content: end;
}

/* Section heading + note on the left, plate shot on the right, so the photo
   sits beside the copy instead of stranding a band of empty parchment. */
.menu-sec-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 22rem);
  align-items: center;
  column-gap: 2.8rem;
  row-gap: 1.6rem;
  margin: 0 0 2.2rem;
}

.menu-sec-intro-copy {
  min-width: 0;
}

.menu-sec-intro .menu-sec-head {
  margin-bottom: 1.1rem;
}

.menu-sec-intro .menu-note {
  margin-bottom: 0;
  max-width: 42rem;
}

.menu-sec-intro .menu-cards {
  margin: 0;
}

.menu-card {
  margin: 0;
  overflow: hidden;
  background: var(--menu-paper);
  border: 3px solid var(--menu-ink);
  border-radius: 14px;
  box-shadow: var(--menu-press);
}

.menu-card.is-ink {
  box-shadow: var(--menu-press-ink);
}

.menu-card img {
  aspect-ratio: 4 / 3;
  border-bottom: 3px solid var(--menu-ink);
}

.menu-card figcaption {
  padding: 1.1rem 1.3rem 1.2rem;
}

.menu-card h3,
.menu-row h3,
.menu-subhead,
.menu-chips,
.menu-feature-copy h3,
.menu-close h2 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.menu-card h3 {
  font-size: 1.35rem;
}

.menu-card .menu-script {
  margin: 0.2rem 0 0;
  font-size: 2.1rem;
}

.menu-rows {
  display: grid;
  gap: 0;
}

.menu-rows--2 {
  grid-template-columns: 1fr 1fr;
  column-gap: 3.5rem;
}

.menu-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  align-items: baseline;
  padding: 0.9rem 0;
  border-bottom: 1.5px dotted var(--menu-rule);
}

.menu-row-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.7rem;
}

.menu-row h3 {
  font-size: 1.35rem;
}

.menu-row .menu-script {
  margin: 0;
  font-size: 1.85rem;
}

.menu-row > div p {
  margin: 0.25rem 0 0;
  font-family: var(--font-serif);
  font-size: 0.92rem;
  line-height: 1.5;
  opacity: 0.85;
}

.menu-add {
  margin: 0.85rem 0 0;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--oxblood);
}

.menu-row .menu-add {
  margin: 0.25rem 0 0;
  opacity: 1;
}

.menu-price {
  margin: 0;
  color: var(--oxblood);
  font-family: var(--font-display);
  font-size: 1.35rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.menu-feature {
  padding-top: 0;
}

.menu-feature-card {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  overflow: hidden;
  background: var(--menu-paper);
  border: 3px solid var(--menu-ink);
  border-radius: 14px;
  box-shadow: 10px 10px 0 0 var(--oxblood);
}

.menu-feature-card.is-text {
  grid-template-columns: 1fr;
}

.menu-feature-card.is-text .menu-feature-copy {
  max-width: 46rem;
}

.menu-feature-copy {
  padding: 2.4rem 2.6rem;
}

.menu-feature-copy h3 {
  font-size: clamp(2.4rem, 4vw, 3.5rem);
  line-height: 1;
}

.menu-feature-copy .menu-script {
  font-size: clamp(2.1rem, 3.4vw, 3rem);
}

.menu-feature-copy > p:not(.menu-price):not(.menu-script) {
  margin: 1.3rem 0 0;
  font-family: var(--font-serif);
  font-size: 1.1rem;
  line-height: 1.55;
}

.menu-feature-copy .menu-price {
  margin-top: 1.2rem;
  font-size: 3.2rem;
}

.menu-feature-photo {
  position: relative;
  margin: 0;
  min-height: 16rem;
  border-left: 3px solid var(--menu-ink);
  overflow: hidden;
}

.menu-hot {
  position: relative;
  overflow: hidden;
  padding: 5.2rem 0;
  background: var(--oxblood);
  color: var(--cream);
  scroll-margin-top: 4.25rem;
}

.menu-hot-dots {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(var(--cream) 2.4px, transparent 3px);
  background-size: 26px 26px;
  opacity: 0.16;
  pointer-events: none;
}

.menu-hot .menu-display {
  margin-top: 0.9rem;
  color: var(--cream);
}

.menu-hot .menu-script {
  color: var(--mustard);
}

.menu-hot .menu-lede {
  color: var(--cream);
}

.menu-ribbon {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  background: var(--cream);
  color: var(--oxblood);
  font-family: var(--font-display);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 2px solid var(--oxblood);
  outline: 2px solid var(--cream);
}

.menu-hot-price {
  display: flex;
  align-items: baseline;
  gap: 0.85rem;
  margin: 1.15rem 0 0;
  font-family: var(--font-display);
  font-size: 3.1rem;
}

.menu-hot-price span {
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.75;
}

.menu-poster.is-on-hot {
  border-color: var(--cream);
  box-shadow: 10px 10px 0 0 var(--cream);
}

.menu-subhead {
  margin: 0 0 0.4rem;
  color: var(--oxblood);
  font-size: 1.1rem;
  letter-spacing: 0.08em;
}

.menu-subhead + .menu-subhead,
.menu-rows + .menu-subhead {
  margin-top: 1.8rem;
}

.menu-side-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
}

.menu-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 1.1rem;
}

.menu-chips li {
  padding: 0.85rem 1.1rem;
  background: var(--cream);
  border: 2px solid var(--menu-ink);
  border-radius: 6px;
  box-shadow: 4px 4px 0 0 var(--oxblood);
}

.menu-chips--priced li {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
}

.menu-chips--priced span {
  color: var(--oxblood);
}

.menu-drink-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.35rem 1.5rem;
  margin: 0.65rem 0 2.4rem;
}

.menu-drink {
  display: grid;
  grid-template-columns: 7.25rem minmax(0, 1fr);
  gap: 1rem 1.15rem;
  align-items: start;
  padding: 0.95rem 1rem;
  background: var(--cream);
  border: 2px solid var(--menu-ink);
  border-radius: 10px;
  box-shadow: 5px 5px 0 0 var(--oxblood);
}

.menu-drink-photo {
  margin: 0;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border: 2px solid var(--menu-ink);
  border-radius: 8px;
  background: var(--menu-paper);
}

.menu-drink-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.menu-drink-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.menu-drink-head h3 {
  margin: 0;
  color: var(--menu-ink);
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.1;
  text-transform: uppercase;
}

.menu-drink-head .menu-price {
  margin: 0;
  flex-shrink: 0;
  font-size: 1.2rem;
}

.menu-drink-copy > p {
  margin: 0.45rem 0 0;
  font-family: var(--font-serif);
  font-size: 0.9rem;
  line-height: 1.45;
  opacity: 0.88;
}

.menu-drink-copy .menu-add {
  margin-top: 0.4rem;
}

.menu-note--callout {
  margin-top: 1.25rem;
  padding: 0.9rem 1.1rem;
  border: 2px solid var(--oxblood);
  border-radius: 6px;
  background: color-mix(in srgb, var(--cream) 70%, transparent);
  color: var(--oxblood);
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.menu-disclaimer {
  margin: 2rem 0 0;
  max-width: 48rem;
  font-family: var(--font-serif);
  font-size: 0.78rem;
  font-style: italic;
  line-height: 1.5;
  opacity: 0.7;
}

.menu-close {
  padding: 3rem 0;
  background: var(--teal);
  color: var(--cream);
}

.menu-close-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.menu-close h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 5vw, 4rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--cream);
}

.menu-close .menu-script {
  color: var(--mustard);
  font-size: clamp(2.1rem, 3.6vw, 3.1rem);
}

.menu-close-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.menu-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 1.15rem;
  background: var(--oxblood);
  color: var(--cream);
  border: 2px solid var(--cream);
  font-family: var(--font-display);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 4px 4px 0 0 #1b2725;
}

.menu-btn.is-ghost {
  background: transparent;
}

.menu-btn:hover {
  background: var(--oxblood-deep);
}

/* Interior spreads — specials, story, events */

.spread-hero,
.spread-block {
  padding: 4.5rem 0;
}

.page-main.interior-spread > .spread-hero,
.page-main.menu-page > .menu-hero {
  padding-top: 7.75rem;
}

.spread-hero.is-pattern {
  padding-top: 10.25rem;
}

.spread-hero-grid,
.spread-split {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 3rem;
  align-items: center;
}

.spread-split.is-flip {
  grid-template-columns: 1fr 1.15fr;
}

.spread-split.is-flip > .menu-poster {
  order: -1;
}

.spread-hero.is-pattern {
  background-color: var(--oxblood);
  background-image: var(--cajun-pattern);
  background-size: var(--cajun-pattern-size);
  background-repeat: repeat;
  color: var(--parchment);
  padding: 8rem 0 4.6rem;
}

.spread-hero.is-pattern .menu-display,
.spread-hero.is-pattern .menu-lede {
  color: var(--parchment) !important;
}

.spread-hero.is-pattern .menu-eyebrow,
.spread-hero.is-pattern .menu-script {
  color: var(--mustard);
}

.spread-hero.is-pattern .menu-poster {
  border-color: var(--cream);
  box-shadow: 10px 10px 0 0 var(--mustard);
}

.spread-block.is-paper {
  background: var(--parchment) url("../assets/images/parchment.jpg") center / 420px repeat;
}

.spread-block.is-cream {
  background: var(--cream);
}

.spread-prose {
  max-width: 42rem;
}

.spread-prose p {
  margin: 0 0 1.25rem;
  font-family: var(--font-serif);
  font-size: 1.08rem;
  line-height: 1.7;
}

.spread-prose p:last-child {
  margin-bottom: 0;
}

.spread-kicker {
  margin: 0 0 0.85rem;
  color: var(--oxblood);
  font-family: var(--font-slab);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  letter-spacing: 0.02em;
}

.board-spread {
  background: var(--mustard) url("../assets/images/yellow-paper.jpg") center / 380px repeat;
  padding: 4.2rem 0 4.6rem;
}

.board-spread .specials-heading {
  margin-bottom: 2rem;
}

.week-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 2.5px solid var(--teal);
  clip-path: polygon(
    22px 0,
    calc(100% - 22px) 0,
    calc(100% - 22px) 22px,
    100% 22px,
    100% 100%,
    0 100%,
    0 22px,
    22px 22px
  );
}

.week-cell {
  padding: 2.15rem 1.35rem 2.3rem;
  text-align: center;
  border-right: 1.5px solid var(--teal);
  border-bottom: 1.5px solid var(--teal);
}

.week-cell:nth-child(3n) {
  border-right: 0;
}

.week-cell:nth-last-child(-n + 3) {
  border-bottom: 0;
}

.week-cell h3 {
  margin: 0 0 0.75rem;
  color: var(--oxblood);
  font-family: var(--font-slab);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  letter-spacing: 0.02em;
}

.week-cell p {
  margin: 0;
  color: var(--teal);
  font-family: var(--font-serif);
  font-size: clamp(1.05rem, 1.6vw, 1.28rem);
  font-weight: 700;
  line-height: 1.3;
}

.week-cell.is-prime {
  background: color-mix(in srgb, var(--oxblood) 10%, transparent);
}

.week-cell.is-closed {
  background: color-mix(in srgb, var(--teal) 12%, transparent);
}

.week-cell.is-closed p {
  font-style: italic;
}

.board-note {
  max-width: 42rem;
  margin: 1.8rem auto 0;
  text-align: center;
  color: var(--teal);
  font-family: var(--font-serif);
  font-size: 1.02rem;
  line-height: 1.55;
}

.prime-band {
  position: relative;
  overflow: hidden;
  padding: 5.2rem 0;
  background-color: var(--oxblood);
  background-image: var(--cajun-pattern);
  background-size: var(--cajun-pattern-size);
  background-repeat: repeat;
  color: var(--cream);
}

.prime-band .menu-display {
  margin-top: 0.9rem;
  color: var(--cream) !important;
}

.prime-band .menu-script {
  color: var(--mustard);
}

.prime-band .menu-lede {
  color: var(--cream) !important;
}

.prime-band .menu-btn {
  margin-top: 1.6rem;
  background: var(--cream);
  color: var(--oxblood);
  border-color: var(--cream);
}

.prime-band .menu-btn:hover {
  background: var(--mustard);
  color: var(--oxblood);
}

.hours-band .menu-display {
  font-size: clamp(2.4rem, 5vw, 4rem);
  margin: 0.2rem 0 1rem;
}

.hours-band {
  padding: 3.6rem 0;
  background: var(--parchment) url("../assets/images/parchment.jpg") center / 420px repeat;
}

.hours-band-inner {
  display: grid;
  grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
  gap: 2.5rem 4rem;
  align-items: center;
}

.hours-band .hours {
  color: var(--oxblood);
  font-size: 1.05rem;
}

.hours-band .hours .lead {
  border-bottom-color: var(--oxblood);
}

.hours-band p {
  margin: 0;
  max-width: 36rem;
  font-family: var(--font-serif);
  font-size: 1.08rem;
  line-height: 1.65;
  color: var(--ink);
}

.hours-band a {
  color: var(--oxblood);
  font-weight: 700;
}

.roost-band {
  position: relative;
  overflow: hidden;
  padding: 5rem 0;
  background-color: var(--oxblood);
  background-image: var(--cajun-pattern);
  background-size: var(--cajun-pattern-size);
  background-repeat: repeat;
  color: var(--parchment);
}

.roost-band .menu-display,
.roost-band .menu-lede,
.roost-band .spread-prose {
  color: var(--parchment);
}

.roost-band .menu-eyebrow,
.roost-band .menu-script {
  color: var(--mustard);
}

.roost-band .spread-prose p {
  font-size: 1.05rem;
}

.moment-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  margin: 2.4rem 0 0;
}

.moment-grid figure {
  margin: 0;
  overflow: hidden;
  border: 3px solid var(--menu-ink);
  border-radius: 12px;
  background: var(--menu-paper);
  box-shadow: 6px 6px 0 0 var(--oxblood);
}

.moment-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3 / 2;
}

.rooms-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.room-card {
  overflow: hidden;
  background-color: var(--oxblood);
  background-image: var(--cajun-pattern);
  background-size: var(--cajun-pattern-size);
  color: var(--parchment);
  border: 3px solid var(--menu-ink);
  border-radius: 14px;
  box-shadow: 10px 10px 0 0 var(--mustard);
}

.room-card img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-bottom: 3px solid var(--menu-ink);
}

.room-card-body {
  padding: 1.85rem 1.45rem 1.7rem;
}

.room-card-body .menu-script {
  margin: 0;
  color: var(--mustard);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
}

.room-card-body h2,
.room-card-body h3 {
  margin: 0.15rem 0 0.55rem;
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 3.4vw, 3.1rem);
  font-weight: 400;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 0.95;
}

.room-card-body p {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.05rem;
  line-height: 1.5;
}

.capacity-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin: 2.4rem 0 0;
}

.capacity-card {
  padding: 1.2rem 1rem 1.3rem;
  text-align: center;
  background: var(--cream);
  border: 2px solid var(--menu-ink);
  border-radius: 8px;
  box-shadow: 4px 4px 0 0 var(--oxblood);
}

.capacity-card strong {
  display: block;
  color: var(--oxblood);
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1;
}

.capacity-card span {
  display: block;
  margin-top: 0.45rem;
  font-family: var(--font-slab);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .menu-wrap {
    width: calc(100% - 2rem);
  }

  .menu-hero,
  .menu-sec-block,
  .menu-feature {
    padding: 2.6rem 0;
  }

  .page-main.menu-page > .menu-hero {
    padding-top: 6.75rem;
  }

  .menu-hero-grid,
  .menu-hot-grid,
  .menu-split,
  .menu-split.is-flip,
  .menu-rows--2,
  .menu-cards,
  .menu-feature-card,
  .menu-sec-intro,
  .menu-side-cols,
  .menu-drink-grid {
    grid-template-columns: 1fr;
  }

  .menu-drink {
    grid-template-columns: 6.25rem minmax(0, 1fr);
  }

  .menu-feature-photo {
    border-left: 0;
    border-top: 3px solid var(--menu-ink);
    aspect-ratio: 4 / 3;
  }

  .menu-script {
    white-space: normal;
  }

  .menu-jump-inner {
    justify-content: flex-start;
    padding: 0.75rem 0;
    font-size: 0.78rem;
  }

  .menu-jump span {
    margin: 0 0.5rem;
  }

  .menu-hot {
    padding: 3rem 0;
  }

  .menu-hot-price {
    font-size: 2.2rem;
  }

  .spread-hero,
  .spread-block,
  .board-spread,
  .prime-band,
  .roost-band {
    padding: 2.8rem 0;
  }

  .page-main.interior-spread > .spread-hero,
  .page-main.menu-page > .menu-hero,
  .page-main.interior-spread > .spread-hero.is-pattern {
    padding-top: 6.75rem;
  }

  .spread-hero-grid,
  .spread-split,
  .spread-split.is-flip,
  .hours-band-inner,
  .rooms-grid,
  .moment-grid {
    grid-template-columns: 1fr;
  }

  .capacity-strip {
    grid-template-columns: 1fr 1fr;
  }

  .spread-split.is-flip > .menu-poster {
    order: 0;
  }

  .week-grid {
    clip-path: none;
  }
}

/* Responsive */

/* Below this the five links would crowd the phone number, so the nav tightens
   before it has to wrap or collapse. */
@media (max-width: 1500px) {
  .nav-bar {
    grid-template-columns: 16rem 1fr auto;
  }

  .logo {
    width: 14.6rem;
    top: 0;
  }

  .site-nav a {
    font-size: 1.08rem;
    letter-spacing: 0.06em;
  }

  .phone {
    font-size: 1.3rem;
  }

  .footer-nav a {
    font-size: 1.12rem;
  }

  .footer-nav .site-nav-links {
    gap: 0.38rem;
  }

  .site-nav .nav-frame {
    gap: 0.5rem;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
}

@media (max-width: 1100px) {
  .categories {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem 1.5rem;
  }

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

  .special-day:nth-child(3) {
    border-right: 0;
  }

  .special-day:nth-child(n + 4) {
    border-top: 1.5px solid var(--teal);
  }
}

/* Five nav links plus the logo and phone stop fitting well above the old 800px
   breakpoint, so the menu becomes a hamburger earlier. The <=800px block still
   wins below that width -- it comes after this one. */
@media (max-width: 1240px) {
  .nav-bar {
    grid-template-columns: 1fr auto;
    min-height: 5.6rem;
  }

  .logo {
    width: 13.2rem;
    top: 0.1rem;
    left: 0.7rem;
  }

  .phone {
    display: none;
  }

  .nav-toggle {
    display: inline-flex;
    grid-column: 2;
  }

  .site-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    grid-column: 1 / -1;
    background: var(--oxblood);
    padding: 1rem 1rem 1.2rem;
    box-shadow: var(--shadow);
  }

  .site-nav.is-open {
    display: block;
    z-index: 1002;
  }

  .site-nav a {
    font-size: 1.17rem;
    letter-spacing: 0.1em;
  }

  .nav-frame {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 0.65rem;
  }
}

@media (max-width: 800px) {
  .nav-bar {
    grid-template-columns: 1fr auto;
    min-height: 4.6rem;
  }

  .logo {
    width: 11.4rem;
    top: 0.1rem;
    left: 0.7rem;
  }

  .phone {
    display: none;
  }

  .nav-toggle {
    display: inline-flex;
    grid-column: 2;
  }

  .site-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    grid-column: 1 / -1;
    background: var(--oxblood);
    padding: 1rem 1rem 1.2rem;
    box-shadow: var(--shadow);
  }

  .site-nav.is-open {
    display: block;
    z-index: 1002;
  }

  .nav-frame {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 0.65rem;
  }

  .hero {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 6.5rem 1rem 2.5rem;
    text-align: center;
  }

  .hero-copy {
    align-items: center;
    max-width: none;
  }

  .menu-cta {
    margin-left: 0;
  }

  .hero-plate {
    justify-self: center;
    margin: 0.5rem 0 0;
    width: min(22rem, 92%);
  }

  .hungry-headline,
  .fm-hungry-frame .elementor-heading-title {
    margin-bottom: 2rem;
  }

  .hungry {
    padding-top: 3.2rem;
  }

  .categories {
    grid-template-columns: 1fr;
    max-width: 22rem;
    margin: 0 auto;
  }

  .photo-strip,
  .menu-photos {
    grid-template-columns: 1fr 1fr;
  }

  .story-photos,
  .footer-inner,
  .rooms {
    grid-template-columns: 1fr;
  }

  .story-photos img:first-child {
    grid-column: auto;
    aspect-ratio: 3 / 2;
  }

  .footer-nav .nav-frame,
  .footer-brand {
    justify-content: center;
    align-self: center;
  }

  .specials-grid {
    grid-template-columns: 1fr 1fr;
    clip-path: none;
  }

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

  .week-cell:nth-child(3n) {
    border-right: 1.5px solid var(--teal);
  }

  .week-cell:nth-child(2n) {
    border-right: 0;
  }

  .week-cell:nth-last-child(-n + 3) {
    border-bottom: 1.5px solid var(--teal);
  }

  .week-cell:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .special-day {
    border-right: 1.5px solid var(--teal);
    border-top: 1.5px solid var(--teal);
  }

  .special-day:nth-child(2n) {
    border-right: 0;
  }
}

@media (max-width: 520px) {
  .week-grid,
  .capacity-strip {
    grid-template-columns: 1fr;
  }

  .week-cell,
  .week-cell:nth-child(3n),
  .week-cell:nth-child(2n),
  .week-cell:nth-last-child(-n + 3),
  .week-cell:nth-last-child(-n + 2) {
    border-right: 0;
    border-bottom: 1.5px solid var(--teal);
  }

  .week-cell:last-child {
    border-bottom: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .menu-cta,
  .story-cta a,
  .social a,
  .pill {
    transition: none;
  }
}

/* Elementor pages keep Feed Mill type — but only display classes get Anton.
   Kit defaults paint every heading giant; do not feed that. */
.elementor-widget-heading.menu-display .elementor-heading-title,
.elementor-widget-heading.spread-kicker .elementor-heading-title,
.elementor-widget-heading.fm-category-title .elementor-heading-title,
.elementor-widget-heading.fm-close-title .elementor-heading-title,
.elementor-widget-heading.fm-story-title .elementor-heading-title,
.elementor-widget-heading.fm-specials-title .elementor-heading-title {
  font-family: var(--font-display);
  color: var(--oxblood);
}

.elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-slab);
  color: var(--oxblood);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1.25;
  font-weight: 400;
}

/* Homepage-scale Anton only in known hero / wide bands — not every menu-display. */
body.elementor-page .elementor-widget-heading.menu-display .elementor-heading-title,
body.elementor-editor-active .elementor-widget-heading.menu-display .elementor-heading-title {
  font-size: clamp(2rem, 4vw, 3.25rem) !important;
  line-height: 1.05 !important;
}

body.elementor-page .fm-spread-hero .elementor-widget-heading.menu-display .elementor-heading-title,
body.elementor-page .fm-spread-block .elementor-widget-heading.menu-display .elementor-heading-title,
body.elementor-page .prime-band .elementor-widget-heading.menu-display .elementor-heading-title,
body.elementor-page .roost-band .elementor-widget-heading.menu-display .elementor-heading-title,
body.elementor-page .hours-band .elementor-widget-heading.menu-display .elementor-heading-title,
body.elementor-editor-active .fm-spread-hero .elementor-widget-heading.menu-display .elementor-heading-title,
body.elementor-editor-active .fm-spread-block .elementor-widget-heading.menu-display .elementor-heading-title {
  font-size: clamp(2.8rem, 6vw, 5.6rem) !important;
  line-height: 0.95 !important;
}

.elementor-widget-text-editor {
  font-family: var(--font-serif);
  color: var(--ink);
}

.elementor-button {
  font-family: var(--font-sans);
}

body.elementor-page .elementor-section.elementor-section-boxed > .elementor-container,
body.elementor-editor-active .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 100%;
}

body.elementor-page .elementor-section,
body.elementor-editor-active .elementor-section {
  margin: 0;
}

body.elementor-page .elementor-column-gap-no > .elementor-column > .elementor-element-populated,
body.elementor-page .elementor-widget:not(:last-child),
body.elementor-editor-active .elementor-widget:not(:last-child) {
  margin: 0;
}

body.elementor-page .elementor-widget-html .elementor-widget-container,
body.elementor-editor-active .elementor-widget-html .elementor-widget-container {
  padding: 0;
}

.fm-hero .fm-hero-headline img {
  width: min(40rem, 100%);
  height: auto;
}

.fm-hero .fm-hero-cta img {
  width: min(28rem, 100%);
  height: auto;
}

.fm-hero .fm-hero-plate img {
  width: min(28.5rem, 100%);
  height: auto;
  margin-left: auto;
  display: block;
}

.fm-hungry .hungry-headline,
.fm-hungry .fm-hungry-frame .elementor-heading-title {
  margin: 0.35rem auto 1.35rem;
}

.fm-hungry .elementor-inner-section {
  padding-top: 0.65rem !important;
  padding-bottom: 0.4rem !important;
}

.fm-hungry .elementor-widget-heading.fm-category-title {
  margin-top: 1.15rem !important;
}

.fm-scallop-row,
.fm-scallop-row.elementor-section {
  overflow: visible !important;
  min-height: 0;
}

.fm-scallop-row .elementor-widget-wrap,
.fm-scallop-row .elementor-element-populated {
  padding: 0 !important;
}

/* Logo hangs below the oxblood bar. Interior copy starts below the oval. */
body:not(.home) .elementor > .elementor-section:first-child,
body:not(.home) .elementor-section-wrap > .elementor-section:first-child,
body.elementor-editor-active:not(.home) .elementor > .elementor-section:first-child,
body.elementor-editor-preview:not(.home) .elementor > .elementor-section:first-child {
  padding-top: 7.75rem !important;
}

@media (min-width: 901px) {
  .hero-copy {
    margin-left: 14.5rem;
    max-width: 42rem;
    padding-left: 0;
  }

  .fm-hero > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap {
    padding-left: 14.5rem;
  }
}

.fm-category-photo img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 1.15rem;
  box-shadow: var(--shadow);
}

.fm-category-title .elementor-heading-title {
  font-family: var(--font-display);
  color: var(--oxblood);
  text-align: center;
}

.fm-story-title .elementor-heading-title {
  color: var(--cream);
  font-family: var(--font-display);
  text-align: center;
  font-size: clamp(2.2rem, 5vw, 4rem);
}

.fm-story-copy,
.fm-story-copy p {
  color: var(--cream) !important;
  text-align: center !important;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  font-family: var(--font-serif);
}

.fm-story-cta {
  text-align: center;
}

.fm-story-cta img {
  width: min(28rem, 100%);
  margin-left: auto;
  margin-right: auto;
}

.fm-specials-title .elementor-heading-title {
  font-family: var(--font-display);
  color: var(--teal);
  text-align: center;
}

.fm-day-title .elementor-heading-title {
  font-family: var(--font-slab);
  color: var(--oxblood);
  text-align: center;
}

.fm-day-copy,
.fm-day-copy p {
  color: var(--teal);
  text-align: center;
  font-family: var(--font-serif);
  font-weight: 700;
}

.elementor-widget-button.pill .elementor-button {
  background: var(--oxblood);
  color: var(--mustard);
  font-family: var(--font-slab);
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border: 1.5px solid var(--gold);
  border-radius: 0;
  fill: var(--mustard);
}

.elementor-widget-button.pill .elementor-button:hover {
  background: var(--oxblood-deep);
}

.elementor-widget-image img {
  height: auto;
}

body.elementor-editor-active .site-header,
body.elementor-editor-preview .site-header {
  pointer-events: auto;
}

.fm-spread-hero .elementor-widget-heading.menu-display .elementor-heading-title,
.fm-spread-block .elementor-widget-heading.menu-display .elementor-heading-title,
.prime-band .elementor-widget-heading.menu-display .elementor-heading-title,
.roost-band .elementor-widget-heading.menu-display .elementor-heading-title {
  margin: 0;
  color: var(--menu-ink, #24322f);
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 6.5vw, 6.4rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 0.92;
  text-transform: uppercase;
}

.fm-spread-hero.is-pattern .elementor-widget-heading.menu-display .elementor-heading-title,
.roost-band .elementor-widget-heading.menu-display .elementor-heading-title,
.prime-band .elementor-widget-heading.menu-display .elementor-heading-title {
  color: var(--parchment) !important;
}

.elementor-widget-heading.menu-script .elementor-heading-title {
  color: var(--oxblood);
  font-family: var(--font-script);
  font-size: clamp(2rem, 3.8vw, 3.6rem);
  font-weight: 400;
  line-height: 0.9;
  text-transform: none;
}

.fm-spread-hero.is-pattern .elementor-widget-heading.menu-script .elementor-heading-title,
.roost-band .elementor-widget-heading.menu-script .elementor-heading-title,
.prime-band .elementor-widget-heading.menu-script .elementor-heading-title,
.fm-menu-close .elementor-widget-heading.menu-script .elementor-heading-title {
  color: var(--mustard);
}

.elementor-widget-heading.menu-eyebrow .elementor-heading-title {
  color: var(--oxblood);
  font-family: var(--font-display);
  font-size: 1.1rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.fm-spread-hero.is-pattern .elementor-widget-heading.menu-eyebrow .elementor-heading-title,
.roost-band .elementor-widget-heading.menu-eyebrow .elementor-heading-title,
.prime-band .elementor-widget-heading.menu-eyebrow .elementor-heading-title {
  color: var(--mustard);
}

.elementor-widget-heading.spread-kicker .elementor-heading-title {
  color: var(--oxblood);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.2rem);
  text-transform: uppercase;
  line-height: 1.08;
  padding-top: 0.12em;
  overflow: visible;
}

.fm-capacity .menu-sec-head,
.fm-capacity-block .menu-sec-head {
  margin: 0 0 1.25rem;
  text-align: left;
}

.fm-capacity .capacity-strip,
.fm-capacity-block .capacity-strip {
  margin-top: 1.5rem;
}

/* Elementor must not stack its default section padding on top of theme bands. */
body.elementor-page .fm-spread-block.elementor-section,
body.elementor-editor-active .fm-spread-block.elementor-section,
body.elementor-editor-preview .fm-spread-block.elementor-section {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}

body.elementor-page .fm-capacity.elementor-section,
body.elementor-editor-active .fm-capacity.elementor-section,
body.elementor-editor-preview .fm-capacity.elementor-section {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

body.elementor-page .fm-spread-block > .elementor-container > .elementor-column > .elementor-element-populated,
body.elementor-editor-active .fm-spread-block > .elementor-container > .elementor-column > .elementor-element-populated {
  padding-top: 0;
  padding-bottom: 0;
}

.elementor-widget-text-editor.menu-lede,
.elementor-widget-text-editor.spread-prose,
.elementor-widget-text-editor.spread-prose p {
  font-family: var(--font-serif);
  font-size: 1.08rem;
  line-height: 1.7;
  color: var(--menu-ink, #24322f);
}

.fm-spread-hero.is-pattern .elementor-widget-text-editor.menu-lede,
.fm-spread-hero.is-pattern .elementor-widget-text-editor.menu-lede p,
.roost-band .elementor-widget-text-editor,
.roost-band .elementor-widget-text-editor p,
.prime-band .elementor-widget-text-editor.menu-lede,
.prime-band .elementor-widget-text-editor.menu-lede p {
  color: var(--parchment) !important;
}

.fm-poster img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  border: 3px solid var(--oxblood);
  box-shadow: 8px 8px 0 0 var(--oxblood);
}

.fm-spread-hero.is-pattern .fm-poster img,
.roost-band .fm-poster img,
.prime-band .fm-poster img {
  border-color: var(--cream);
  box-shadow: 10px 10px 0 0 var(--mustard);
}

.fm-menu-close .elementor-widget-heading.fm-close-title .elementor-heading-title {
  color: var(--cream);
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  text-transform: uppercase;
}

/* Book-a-room band: no giant framed button column from Elementor defaults. */
body.elementor-page .fm-menu-close.elementor-section,
body.elementor-editor-active .fm-menu-close.elementor-section,
body.elementor-page .menu-close.elementor-section {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

body.elementor-page .fm-menu-close .elementor-column,
body.elementor-page .fm-menu-close .elementor-widget-wrap,
body.elementor-page .fm-menu-close .elementor-element-populated,
body.elementor-page .fm-menu-close-block .elementor-widget-container {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

body.elementor-page .fm-menu-close .menu-close-inner,
.fm-menu-close-block .menu-close-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem 2rem;
  max-width: 90rem;
  margin: 0 auto;
}

body.elementor-page .fm-menu-close .menu-close-inner h2,
.fm-menu-close-block .menu-close-inner h2 {
  margin: 0;
  color: var(--cream);
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  font-weight: 400;
  text-transform: uppercase;
  line-height: 1.05;
}

body.elementor-page .fm-menu-close .menu-close-actions,
.fm-menu-close-block .menu-close-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

body.elementor-page .fm-menu-close .elementor-widget-button,
body.elementor-page .fm-menu-close .elementor-button-wrapper {
  width: auto !important;
  display: inline-block !important;
}

body.elementor-page .fm-menu-close .elementor-button {
  width: auto !important;
  min-width: 0 !important;
}

/*
 * Events capacity strip (Elementor seed used menu-display on 25% columns —
 * that is homepage-sized type and blows the section up). Shrink + card chrome.
 */
body.page-template-template-events.elementor-page .elementor-col-25 > .elementor-element-populated,
body.elementor-editor-active.page-template-template-events .elementor-col-25 > .elementor-element-populated {
  padding: 1.15rem 0.85rem 1.25rem !important;
  margin: 0 0.35rem !important;
  text-align: center;
  background: var(--cream) !important;
  border: 2px solid var(--menu-ink, #24322f) !important;
  border-radius: 8px;
  box-shadow: 4px 4px 0 0 var(--oxblood);
}

body.page-template-template-events.elementor-page .elementor-col-25 .elementor-widget-heading.menu-display .elementor-heading-title,
body.elementor-editor-active.page-template-template-events .elementor-col-25 .elementor-widget-heading.menu-display .elementor-heading-title {
  color: var(--oxblood) !important;
  font-family: var(--font-display) !important;
  font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
  text-align: center !important;
  margin: 0 !important;
}

body.page-template-template-events.elementor-page .elementor-col-25 .elementor-widget-text-editor,
body.page-template-template-events.elementor-page .elementor-col-25 .elementor-widget-text-editor p,
body.elementor-editor-active.page-template-template-events .elementor-col-25 .elementor-widget-text-editor,
body.elementor-editor-active.page-template-template-events .elementor-col-25 .elementor-widget-text-editor p {
  margin: 0.45rem 0 0 !important;
  color: var(--menu-ink, #24322f) !important;
  font-family: var(--font-slab) !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  line-height: 1.25 !important;
}

body.page-template-template-events.elementor-page .elementor-inner-section,
body.elementor-editor-active.page-template-template-events .elementor-inner-section {
  padding-top: 0.75rem !important;
  padding-bottom: 0 !important;
}

body.page-template-template-events.elementor-page .elementor-top-section,
body.elementor-editor-active.page-template-template-events .elementor-top-section {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

body.page-template-template-events.elementor-page .elementor > .elementor-section:first-child,
body.elementor-editor-active.page-template-template-events .elementor > .elementor-section:first-child {
  padding-top: 7.75rem !important;
}

.elementor-widget-button.menu-btn .elementor-button {
  background: var(--oxblood);
  color: var(--cream);
  border: 2px solid var(--cream);
  border-radius: 0;
  font-family: var(--font-display);
  text-transform: uppercase;
}

.elementor-widget-button.is-ghost .elementor-button,
.elementor-widget-button.menu-btn.is-ghost .elementor-button {
  background: transparent;
  color: var(--cream);
}

@media (max-width: 800px) {
  html,
  body {
    overflow-x: hidden;
  }

  .nav-bar {
    padding: 0 0.8rem 0 8.4rem;
  }

  .logo {
    width: 7.8rem;
    top: 0.2rem;
    left: 0.5rem;
  }

  .site-nav {
    z-index: 10050;
  }

  .site-nav .nav-frame {
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
  }

  .site-nav a {
    display: block;
    padding: 0.65rem 0.35rem;
    font-size: 1rem;
  }

  .site-nav .nav-diamond {
    display: none;
  }

  .elementor-section .elementor-column {
    width: 100% !important;
  }

  .elementor-inner-section .elementor-column {
    width: 100% !important;
  }

  .fm-spread-hero .elementor-widget-heading.menu-display .elementor-heading-title,
  .fm-spread-block .elementor-widget-heading.menu-display .elementor-heading-title,
  .prime-band .elementor-widget-heading.menu-display .elementor-heading-title,
  .roost-band .elementor-widget-heading.menu-display .elementor-heading-title {
    font-size: clamp(2.1rem, 11vw, 3.15rem);
  }

  .elementor-widget-heading.menu-script .elementor-heading-title {
    font-size: clamp(1.4rem, 7vw, 2.15rem);
    margin-left: 0;
  }

  .fm-hero .fm-hero-headline img,
  .fm-hero .fm-hero-cta img,
  .fm-hero .fm-hero-plate img,
  .fm-story-cta img {
    width: min(100%, 22rem);
    margin-left: auto;
    margin-right: auto;
  }

  .fm-poster img,
  .elementor-widget-image img {
    max-width: 100%;
    height: auto;
  }

  .elementor-section {
    overflow: hidden;
  }

  body:not(.home) .elementor > .elementor-section:first-child,
  body:not(.home) .elementor-section-wrap > .elementor-section:first-child,
  body.elementor-editor-active:not(.home) .elementor > .elementor-section:first-child {
    padding-top: 6.75rem !important;
  }
}
