/* CENTER STAGE / MANGIA! — a spirited trattoria and food-market Billboard.
   Original theme-scoped presentation. Shared Billboard layout/behavior is intact. */

body.billboard-theme-restaurant {
  background-color: #c93025;
  background-image:
    radial-gradient(circle at 50% 4%, rgb(255 222 102 / 66%), transparent 44%),
    repeating-conic-gradient(from 45deg, #df4936 0% 25%, #fff0ce 0% 50%);
  background-size: auto, 72px 72px;
  background-attachment: fixed;
}

body.billboard-theme-restaurant .billboard-page {
  --billboard-surface: #fff0ce;
  --billboard-surface-strong: #fffdf1;
  --billboard-surface-soft: #ffe2a3;
  --billboard-text: #3b3027;
  --billboard-muted-text: #685347;
  --billboard-heading: #ad3027;
  --billboard-link: #a72b24;
  --billboard-purple: #ab3026;
  --billboard-border: #df9f4a;
  --billboard-shadow: 0 17px 35px rgb(80 28 15 / 25%);
  --billboard-flair-border: rgb(184 52 39 / 45%);
  --billboard-flair-background: none;

  max-width: 1120px;
  color: var(--billboard-text);
}

body.billboard-theme-restaurant .billboard-card {
  position: relative;
  margin-bottom: 30px;
  border: 5px solid #fff4d5;
  border-radius: 17px;
  background-color: #fff3d6;
  box-shadow: 0 0 0 5px #ba3027, var(--billboard-shadow);
}

body.billboard-theme-restaurant .billboard-card::after {
  pointer-events: none;
}

/* The marquee: platter, awning, and a bold trattoria welcome. */
body.billboard-theme-restaurant .billboard-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(30px, 5vw, 64px);
  border: 8px solid #f2bb50;
  border-top: 19px solid #22854a;
  border-bottom: 19px solid #22854a;
  border-radius: 16px;
  background:
    radial-gradient(circle at 50% 43%, rgb(255 255 255 / 85%) 0 24%, transparent 46%),
    repeating-linear-gradient(90deg, rgb(204 47 36 / 8%) 0 35px, transparent 35px 70px),
    linear-gradient(180deg, #fff9e6, #ffdf9c);
  text-align: center;
  box-shadow: inset 0 0 0 5px #fff9e8, inset 0 0 0 11px #d3382b;
}

body.billboard-theme-restaurant .billboard-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 48%;
  left: 50%;
  width: min(83%, 560px);
  aspect-ratio: 1;
  border: 12px double rgb(212 60 42 / 18%);
  border-radius: 50%;
  background: radial-gradient(circle, transparent 0 39%, rgb(244 183 64 / 25%) 40% 45%, transparent 46%);
  transform: translate(-50%, -50%);
  pointer-events: none;
}

body.billboard-theme-restaurant .billboard-hero > * {
  position: relative;
  z-index: 2;
}

body.billboard-theme-restaurant .billboard-logo-frame {
  width: min(480px, 100%);
  min-height: 0;
  margin: 0 auto 20px;
  padding: clamp(12px, 2vw, 22px);
  border: 5px solid #e7ac42;
  border-radius: 50% / 21%;
  background: #fffdf2;
  box-shadow: inset 0 0 0 5px #fffdf2, inset 0 0 0 9px #21844a;
}

body.billboard-theme-restaurant .billboard-logo {
  max-width: 100%;
  max-height: 185px;
  object-fit: contain;
}

body.billboard-theme-restaurant .billboard-kicker.billboard-managed-by {
  margin-bottom: 16px;
  color: #a12c24;
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.billboard-theme-restaurant .billboard-hero h1 {
  max-width: 850px;
  margin: 0 auto;
  color: #be3428;
  text-align: center;
  letter-spacing: -0.035em;
  text-shadow: 2px 3px 0 #ffe080;
}

body.billboard-theme-restaurant .billboard-category {
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  margin-top: 20px;
  padding: 9px 20px;
  border: 3px solid #21874b;
  border-radius: 999px;
  background: #ffe075;
  color: #9c2c24;
  font-weight: 900;
  letter-spacing: 0.07em;
}

body.billboard-theme-restaurant .billboard-summary {
  max-width: 740px;
  margin: 23px auto;
  color: #4d3a2d;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  font-weight: 700;
  line-height: 1.65;
  text-align: center;
}

body.billboard-theme-restaurant .billboard-actions {
  justify-content: center;
  gap: 12px;
}

body.billboard-theme-restaurant .billboard-button,
body.billboard-theme-restaurant .billboard-link {
  min-height: 49px;
  padding: 12px 21px;
  border-radius: 999px;
  font-weight: 900;
}

body.billboard-theme-restaurant .billboard-button {
  border: 3px solid #a72d25;
  background: #d7362a;
  color: #fffdf4;
  box-shadow: 0 5px 0 #942820;
}

body.billboard-theme-restaurant .billboard-link {
  border: 3px solid #21804a;
  background: #fffdf1;
  color: #17713e !important;
}

body.billboard-theme-restaurant .billboard-button:hover,
body.billboard-theme-restaurant .billboard-button:focus-visible {
  background: #ae3027;
}

body.billboard-theme-restaurant .billboard-link:hover,
body.billboard-theme-restaurant .billboard-link:focus-visible {
  background: #ffebbb;
}

body.billboard-theme-restaurant .billboard-section-label,
body.billboard-theme-restaurant .community-feedback-heading .billboard-section-label {
  color: #b33429;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-align: center;
  text-transform: uppercase;
}

body.billboard-theme-restaurant .billboard-details h2,
body.billboard-theme-restaurant .billboard-community h2,
body.billboard-theme-restaurant .community-feedback-heading h2 {
  color: #b43227;
  text-align: center;
  letter-spacing: -0.025em;
}

/* A generous market menu for information and hours. */
body.billboard-theme-restaurant .billboard-details {
  border-top: 13px solid #25864b;
  background:
    repeating-linear-gradient(90deg, transparent 0 54px, rgb(200 53 38 / 5%) 55px 57px),
    #fff2d2;
}

body.billboard-theme-restaurant .billboard-detail-grid {
  gap: 14px;
}

body.billboard-theme-restaurant .billboard-detail-item {
  padding: 18px;
  border: 2px solid #edb64b;
  border-bottom: 6px solid #25864b;
  border-radius: 12px;
  background: #fffdf0;
  box-shadow: none;
}

body.billboard-theme-restaurant .billboard-detail-item h3 {
  margin-bottom: 8px;
  color: #b53529;
  font-size: 0.85rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.billboard-theme-restaurant .billboard-page .billboard-hours-panel .billboard-hours-list {
  gap: 8px;
}

body.billboard-theme-restaurant .billboard-page .billboard-hours-panel .billboard-hours-row {
  border: 2px solid #e2a64b;
  border-radius: 9px;
  background: #fff4d8;
}

/* The photo gallery is a red-striped festival awning. */
body.billboard-theme-restaurant .billboard-media-showcase {
  border: 9px solid #ffcc51;
  border-radius: 16px;
  background: repeating-linear-gradient(90deg, #a62c26 0 38px, #d33b30 38px 76px);
  box-shadow: 0 18px 42px rgb(70 25 15 / 26%);
}

body.billboard-theme-restaurant .billboard-media-showcase h2 {
  color: #fff9e4;
}

body.billboard-theme-restaurant .billboard-media-showcase .billboard-section-label {
  color: #ffeb96;
}

body.billboard-theme-restaurant .billboard-media-carousel {
  border: 4px solid #fff3d8;
  border-radius: 12px;
  background: #503020;
}

body.billboard-theme-restaurant .billboard-media-image-link {
  background: #503020;
}

body.billboard-theme-restaurant .billboard-media-showcase .billboard-media-content {
  background: #fff9eb;
}

body.billboard-theme-restaurant .billboard-featured-publication,
body.billboard-theme-restaurant .billboard-published-feed {
  border-top: 12px solid #d73b2b;
  background: #fff1cb;
}

body.billboard-theme-restaurant .billboard-publication-placeholder {
  min-height: 0;
  border: 3px dashed #d64c32;
  border-radius: 12px;
  background: #fffcee;
}

body.billboard-theme-restaurant .billboard-published-feed .billboard-media-grid,
body.billboard-theme-restaurant .billboard-around-town .billboard-media-grid {
  gap: 20px;
}

body.billboard-theme-restaurant .billboard-snap-card {
  border: 3px solid #d85c3a;
  border-bottom: 8px solid #248b4c;
  border-radius: 13px;
  background: #fffbee;
  box-shadow: 0 8px 20px rgb(104 33 15 / 13%);
}

body.billboard-theme-restaurant .billboard-snap-card:hover {
  box-shadow: 0 13px 27px rgb(104 33 15 / 19%);
}

body.billboard-theme-restaurant .billboard-snap-card:focus-within {
  outline-color: #a52d25;
}

body.billboard-theme-restaurant .billboard-snap-card .billboard-media-content {
  border-top: 4px solid #edb949;
  background: #fffbee;
}

body.billboard-theme-restaurant .billboard-feature-art {
  background-color: #ffe1a8;
}

body.billboard-theme-restaurant .billboard-around-town {
  border-top: 12px solid #24884b;
  background: #ffe2a6;
}

body.billboard-theme-restaurant .billboard-around-town .billboard-media-content {
  background: #fffbee;
}

/* Guest postcards keep their shared postage art and accessible layout. */
body.billboard-theme-restaurant .billboard-published-comments {
  border-top: 12px solid #d73b2b;
  background: #fff0cd;
}

body.billboard-theme-restaurant .billboard-published-comment {
  border: 2px solid #e8b454;
  border-left: 8px solid #27894e;
  border-radius: 12px;
  background: #fffcee;
}

body.billboard-theme-restaurant .billboard-published-comment::before {
  color: rgb(184 57 40 / 28%);
}

body.billboard-theme-restaurant .billboard-community-postcard {
  --postcard-paper-start: #fff8df;
  --postcard-paper-end: #ffe1a6;
  --postcard-ink: #563327;
  --postcard-accent: #c5372a;
  --postcard-stamp-bg: #f9ca57;
  --postcard-stamp-ink: #197245;
  --postcard-rule: #cf6240;

  border: 4px solid #e7b94e;
  border-radius: 10px;
}

body.billboard-theme-restaurant .billboard-postcard-stamp {
  border-radius: 3px;
}

body.billboard-theme-restaurant .billboard-page .community-feedback {
  border: 7px solid #e9b94e;
  border-top: 14px solid #d53628;
  border-radius: 15px;
  background:
    repeating-conic-gradient(from 45deg, rgb(213 56 40 / 6%) 0% 25%, transparent 0% 50%) 0 0 / 42px 42px,
    #fff3d2;
}

body.billboard-page-active.billboard-theme-restaurant .billboard-page {
  --billboard-past-frame: #982d25;
  --billboard-past-accent: #edbf53;
  --billboard-past-paper: #fff7e0;
  --billboard-past-status-bg: #8f2b23;
  --billboard-past-status-text: #fff9e8;
}

body.billboard-theme-restaurant .billboard-hero .billboard-managed-by-link {
  color: #9f2e24;
  text-decoration-color: #208349;
}

body.billboard-theme-restaurant .billboard-hero .billboard-managed-by-link:hover,
body.billboard-theme-restaurant .billboard-hero .billboard-managed-by-link:focus-visible {
  color: #176d3d;
  text-decoration-color: #176d3d;
}

@media (width <= 640px) {
  body.billboard-theme-restaurant .billboard-card {
    margin-bottom: 20px;
  }

  body.billboard-theme-restaurant .billboard-hero {
    padding: 26px 17px;
    border-width: 5px;
  }

  body.billboard-theme-restaurant .billboard-logo-frame {
    width: 100%;
    padding: 12px;
  }

  body.billboard-theme-restaurant .billboard-actions {
    flex-direction: column;
    align-items: stretch;
  }

  body.billboard-theme-restaurant .billboard-button,
  body.billboard-theme-restaurant .billboard-link {
    width: 100%;
  }

  body.billboard-theme-restaurant .billboard-detail-item {
    padding: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.billboard-theme-restaurant .billboard-snap-card {
    transition: none;
  }
}
