

:root {
  --c-black:       #111009;
  --c-charcoal:    #1e1a14;
  --c-terracotta:  #c0522a;
  --c-terra-dark:  #8c3318;
  --c-terra-light: #d9724a;
  --c-saffron:     #e8a020;
  --c-saffron-lt:  #f5c45e;
  --c-cream:       #f5efe4;
  --c-cream-dark:  #ede4d3;
  --c-tile:        #2b2116;
  --c-white:       #ffffff;
  --c-text:        #2a2018;
  --c-text-muted:  #6b5c48;

  --ff-display: 'Playfair Display', Georgia, serif;
  --ff-body:    'DM Sans', system-ui, sans-serif;

  --fs-xs:   clamp(0.75rem,  1.5vw, 0.875rem);
  --fs-sm:   clamp(0.875rem, 2vw,   1rem);
  --fs-base: clamp(1rem,     2.2vw, 1.125rem);
  --fs-md:   clamp(1.125rem, 2.5vw, 1.375rem);
  --fs-lg:   clamp(1.5rem,   3vw,   2rem);
  --fs-xl:   clamp(2rem,     5vw,   3.25rem);
  --fs-2xl:  clamp(2.75rem,  7vw,   5rem);

  --space-xs:  0.5rem;
  --space-sm:  1rem;
  --space-md:  1.75rem;
  --space-lg:  3rem;
  --space-xl:  5rem;
  --space-2xl: 8rem;

  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 20px;

  --transition: 0.22s ease;
  --shadow-card: 0 8px 32px rgba(17,9,0,0.18);
}

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

html { scroll-behavior: smooth; }

body {
  font-family: var(--ff-body);
  font-size: var(--fs-base);
  color: var(--c-text);
  background-color: var(--c-cream);
  line-height: 1.65;
  overflow-x: hidden;
}

img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

a { color: inherit; text-decoration: none; }

ul { list-style: none; }



.container {
  width: min(100%, 1160px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 5vw, 3rem);
}

.section-label {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-terracotta);
  margin-bottom: var(--space-xs);
}

.section-label--light { color: var(--c-saffron-lt); }

.section-heading {
  font-family: var(--ff-display);
  font-size: var(--fs-xl);
  font-weight: 900;
  line-height: 1.1;
  color: var(--c-charcoal);
  margin-bottom: var(--space-md);
}

.section-heading--light { color: var(--c-cream); }



.btn {
  display: inline-block;
  font-family: var(--ff-body);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: 0.05em;
  padding: 0.8em 1.8em;
  border-radius: var(--radius-sm);
  transition: background var(--transition), color var(--transition), transform var(--transition), box-shadow var(--transition);
  cursor: pointer;
}

.btn-primary {
  background: var(--c-terracotta);
  color: var(--c-white);
  border: 2px solid var(--c-terracotta);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  background: var(--c-terra-dark);
  border-color: var(--c-terra-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(192,82,42,0.35);
}

.btn-ghost {
  background: transparent;
  color: var(--c-cream);
  border: 2px solid rgba(245,239,228,0.6);
}

.btn-ghost:hover,
.btn-ghost:focus-visible {
  background: rgba(245,239,228,0.12);
  border-color: var(--c-cream);
  transform: translateY(-2px);
}

.btn-outline {
  background: transparent;
  color: var(--c-terracotta);
  border: 2px solid var(--c-terracotta);
}

.btn-outline:hover,
.btn-outline:focus-visible {
  background: var(--c-terracotta);
  color: var(--c-white);
  transform: translateY(-2px);
}



.site-header {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 100;
  background: rgba(17,9,0,0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(232,160,32,0.15);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  width: min(100%, 1160px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 5vw, 3rem);
  padding-block: 0.85rem;
}

.logo {
  display: flex;
  flex-direction: column;
  line-height: 1;
  gap: 0.15em;
  text-decoration: none;
}

.logo-main {
  font-family: var(--ff-display);
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  font-weight: 900;
  font-style: italic;
  color: var(--c-saffron);
  letter-spacing: -0.01em;
}

.logo-sub {
  font-family: var(--ff-body);
  font-size: 0.65rem;
  font-weight: 300;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-cream);
  opacity: 0.7;
}

[data-pn-nav="primary"] {
  display: flex;
  align-items: center;
  gap: clamp(0.5rem, 2.5vw, 1.75rem);
  flex-wrap: wrap;
}

[data-pn-nav="primary"] a {
  font-family: var(--ff-body);
  font-size: var(--fs-sm);
  font-weight: 400;
  color: var(--c-cream);
  opacity: 0.85;
  transition: opacity var(--transition), color var(--transition);
  padding-block: 0.25em;
  position: relative;
}

[data-pn-nav="primary"] a::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  inset-block-end: -2px;
  height: 2px;
  background: var(--c-saffron);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}

[data-pn-nav="primary"] a:hover,
[data-pn-nav="primary"] a:focus-visible {
  opacity: 1;
  color: var(--c-saffron-lt);
}

[data-pn-nav="primary"] a:hover::after,
[data-pn-nav="primary"] a[aria-current="page"]::after {
  transform: scaleX(1);
}

[data-pn-nav="primary"] a[aria-current="page"] {
  opacity: 1;
  color: var(--c-saffron-lt);
}

[data-pn-cta] .cta-btn {
  background: var(--c-terracotta);
  color: var(--c-white) !important;
  opacity: 1 !important;
  padding: 0.55em 1.2em;
  border-radius: var(--radius-sm);
  font-weight: 500;
  border: 2px solid var(--c-terracotta);
  transition: background var(--transition), border-color var(--transition), transform var(--transition);
}

[data-pn-cta] .cta-btn::after { display: none; }

[data-pn-cta] .cta-btn:hover,
[data-pn-cta] .cta-btn:focus-visible {
  background: var(--c-terra-dark);
  border-color: var(--c-terra-dark);
  transform: translateY(-1px);
}



.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  padding-block-end: clamp(3rem, 8vw, 7rem);
  padding-inline: clamp(1rem, 5vw, 3rem);
  overflow: hidden;
}

.hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    160deg,
    rgba(17,9,0,0.35) 0%,
    rgba(17,9,0,0.6) 50%,
    rgba(17,9,0,0.88) 100%
  );
}

.tile-strip {
  position: absolute;
  inset-inline: 0;
  height: 8px;
  z-index: 3;
  background: repeating-linear-gradient(
    90deg,
    var(--c-terracotta)   0px,
    var(--c-terracotta)   24px,
    var(--c-saffron)      24px,
    var(--c-saffron)      48px,
    var(--c-terra-dark)   48px,
    var(--c-terra-dark)   72px,
    var(--c-cream)        72px,
    var(--c-cream)        96px
  );
  opacity: 0.9;
}

.tile-strip--top { inset-block-start: 0; }
.tile-strip--bottom { inset-block-end: 0; }

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 680px;
}

.hero-eyebrow {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-saffron);
  margin-bottom: var(--space-sm);
}

.hero-heading {
  font-family: var(--ff-display);
  font-size: var(--fs-2xl);
  font-weight: 900;
  line-height: 1.0;
  color: var(--c-white);
  margin-bottom: var(--space-md);
  text-shadow: 0 2px 24px rgba(0,0,0,0.3);
}

.hero-body {
  font-size: var(--fs-md);
  font-weight: 300;
  color: rgba(245,239,228,0.88);
  max-width: 520px;
  margin-bottom: var(--space-lg);
  line-height: 1.55;
}

.hero-actions {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin-bottom: var(--space-md);
}

.hero-hours {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  font-size: var(--fs-xs);
  color: rgba(245,239,228,0.65);
  letter-spacing: 0.04em;
}

.hero-hours .divider { opacity: 0.4; }



.intro {
  position: relative;
  padding-block: var(--space-2xl);
  background: var(--c-cream);
  overflow: hidden;
}

.intro-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: center;
}

@media (min-width: 768px) {
  .intro-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.intro-text p {
  color: var(--c-text-muted);
  margin-bottom: var(--space-md);
  max-width: 520px;
}

.intro-image {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: var(--shadow-card);
  position: relative;
}

.intro-image::before {
  content: '';
  position: absolute;
  inset: -6px;
  border: 3px solid var(--c-saffron);
  border-radius: calc(var(--radius-md) + 4px);
  z-index: 1;
  pointer-events: none;
  opacity: 0.4;
}

.tile-accent {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: -60px;
  width: 200px;
  height: 100%;
  background: repeating-linear-gradient(
    45deg,
    transparent 0px,
    transparent 18px,
    rgba(192,82,42,0.06) 18px,
    rgba(192,82,42,0.06) 36px
  );
  pointer-events: none;
}



.food {
  background: var(--c-charcoal);
  padding-block: var(--space-2xl);
}

.food .section-intro {
  color: rgba(245,239,228,0.7);
  max-width: 600px;
  margin-block: 0 var(--space-xl);
  font-size: var(--fs-md);
}

.food-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

@media (min-width: 640px) {
  .food-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 900px) {
  .food-grid {
    grid-template-columns: 1fr 1.35fr 1fr;
  }
}

.food-card {
  background: var(--c-tile);
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--transition), box-shadow var(--transition);
}

.food-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.4);
}

.food-card-img {
  aspect-ratio: 3/2;
  overflow: hidden;
}

.food-card--feature .food-card-img {
  aspect-ratio: 4/3;
}

.food-card-body {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  flex: 1;
}

.food-card-body h3 {
  font-family: var(--ff-display);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--c-saffron);
}

.food-card-body p {
  color: rgba(245,239,228,0.65);
  font-size: var(--fs-sm);
  flex: 1;
}

.card-link {
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--c-terra-light);
  margin-top: auto;
  padding-top: var(--space-xs);
  transition: color var(--transition);
  display: inline-block;
}

.card-link:hover,
.card-link:focus-visible { color: var(--c-saffron); }

.food-cta {
  margin-top: var(--space-xl);
  text-align: center;
}



.specials {
  background: var(--c-cream-dark);
  padding-block: var(--space-2xl);
  position: relative;
}

.specials::before {
  content: '';
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  height: 5px;
  background: repeating-linear-gradient(
    90deg,
    var(--c-terracotta)   0px,  var(--c-terracotta)   20px,
    var(--c-saffron)      20px, var(--c-saffron)      40px,
    var(--c-cream)        40px, var(--c-cream)         60px,
    var(--c-terra-dark)   60px, var(--c-terra-dark)    80px
  );
}

.specials-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

@media (min-width: 860px) {
  .specials-inner {
    grid-template-columns: 1fr 1.6fr;
    align-items: start;
  }
}

.specials-text p {
  color: var(--c-text-muted);
  margin-bottom: var(--space-md);
  max-width: 440px;
}

.specials-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-sm);
}

@media (min-width: 500px) {
  .specials-cards { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 860px) {
  .specials-cards { grid-template-columns: 1fr; }
}

.special-card {
  background: var(--c-white);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  border-left: 4px solid var(--c-terracotta);
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  transition: box-shadow var(--transition), transform var(--transition);
}

.special-card:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,0.1);
  transform: translateY(-2px);
}

.special-card-icon {
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
  line-height: 1;
}

.special-card h3 {
  font-family: var(--ff-display);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--c-charcoal);
  margin-bottom: 0.4rem;
}

.special-card p {
  font-size: var(--fs-sm);
  color: var(--c-text-muted);
}



.music {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  padding-block: var(--space-2xl);
  overflow: hidden;
}

.music-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.music-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    135deg,
    rgba(17,9,0,0.92) 0%,
    rgba(140,51,24,0.75) 60%,
    rgba(17,9,0,0.88) 100%
  );
}

.music-content {
  position: relative;
  z-index: 2;
  max-width: 680px;
}

.music-body {
  font-size: var(--fs-md);
  color: rgba(245,239,228,0.8);
  margin-bottom: var(--space-md);
  max-width: 560px;
}

.music-genres {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-bottom: var(--space-lg);
}

.genre-pill {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.4em 1em;
  border-radius: 99px;
  border: 1.5px solid var(--c-saffron);
  color: var(--c-saffron);
  background: rgba(232,160,32,0.08);
}



.visit {
  background: var(--c-cream);
  padding-block: var(--space-2xl);
}

.visit-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: center;
}

@media (min-width: 768px) {
  .visit-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.visit-info p {
  color: var(--c-text-muted);
  margin-bottom: var(--space-lg);
  max-width: 460px;
}

.visit-details {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

@media (min-width: 400px) {
  .visit-details { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 900px) {
  .visit-details { grid-template-columns: 1fr 1fr 1fr; }
}

.visit-detail-block h4 {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-terracotta);
  margin-bottom: 0.4rem;
}

.visit-detail-block p,
.visit-detail-block a {
  font-size: var(--fs-sm);
  color: var(--c-text);
  line-height: 1.6;
}

.visit-detail-block a:hover { color: var(--c-terracotta); }

.hours-table {
  border-collapse: collapse;
  font-size: var(--fs-xs);
  width: 100%;
}

.hours-table td {
  padding: 0.2em 0.8em 0.2em 0;
  color: var(--c-text);
  vertical-align: top;
  white-space: nowrap;
}

.hours-table tr:nth-child(even) td { color: var(--c-text-muted); }

.visit-image {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: var(--shadow-card);
  position: relative;
}

.visit-image::after {
  content: '';
  position: absolute;
  inset-block-end: -10px;
  inset-inline-end: -10px;
  width: 80%;
  height: 80%;
  border: 3px solid var(--c-saffron);
  border-radius: var(--radius-md);
  z-index: -1;
  opacity: 0.4;
}



.site-footer {
  background: var(--c-black);
  padding-block-start: var(--space-xl);
}

.footer-inner {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-lg);
  justify-content: space-between;
  align-items: flex-start;
  padding-block-end: var(--space-xl);
  border-bottom: 1px solid rgba(245,239,228,0.08);
}

.footer-brand {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.footer-brand .logo-main {
  font-family: var(--ff-display);
  font-size: 2rem;
  font-weight: 900;
  font-style: italic;
  color: var(--c-saffron);
}

.footer-brand .logo-sub {
  font-family: var(--ff-body);
  font-size: 0.65rem;
  font-weight: 300;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-cream);
  opacity: 0.5;
}

.footer-tagline {
  font-size: var(--fs-xs);
  color: rgba(245,239,228,0.45);
  margin-top: 0.25rem;
}

.footer-nav {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.footer-nav a {
  font-size: var(--fs-sm);
  color: rgba(245,239,228,0.6);
  transition: color var(--transition);
}

.footer-nav a:hover { color: var(--c-saffron); }

.footer-contact a {
  font-size: var(--fs-md);
  font-family: var(--ff-display);
  font-style: italic;
  color: var(--c-terra-light);
  transition: color var(--transition);
}

.footer-contact a:hover { color: var(--c-saffron); }

.footer-bottom {
  padding-block: var(--space-sm);
}

.footer-bottom p {
  text-align: center;
  font-size: var(--fs-xs);
  color: rgba(245,239,228,0.3);
}



:focus-visible {
  outline: 2px solid var(--c-saffron);
  outline-offset: 3px;
  border-radius: 2px;
}



@media (max-width: 640px) {
  [data-pn-nav="primary"] {
    gap: 0.5rem;
  }
  [data-pn-nav="primary"] > li:not([data-pn-cta]) a {
    font-size: 0.8rem;
  }
}

@media (max-width: 420px) {
  [data-pn-nav="primary"] > li:not([data-pn-cta]) {
    display: none;
  }
}





.menu-hero {
  position: relative;
  min-height: 62svh;
  display: flex;
  align-items: flex-end;
  padding-block-end: clamp(3rem, 8vw, 6rem);
  overflow: hidden;
}

.menu-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.menu-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

.menu-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    160deg,
    rgba(17,9,0,0.45) 0%,
    rgba(17,9,0,0.72) 55%,
    rgba(17,9,0,0.92) 100%
  );
}

.menu-hero-content {
  position: relative;
  z-index: 2;
  padding-block-start: 7rem;
}

.menu-hero-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-top: var(--space-md);
}

.menu-hero-nav .btn-ghost {
  padding: 0.6em 1.3em;
  font-size: var(--fs-xs);
}



.menu-sticky-bar {
  position: sticky;
  top: 56px;
  z-index: 50;
  background: var(--c-black);
  border-bottom: 1px solid rgba(232,160,32,0.18);
}

.menu-sticky-inner {
  display: flex;
  gap: clamp(1rem, 3vw, 2.5rem);
  overflow-x: auto;
  padding-block: 0.75rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.menu-sticky-inner::-webkit-scrollbar { display: none; }

.menu-sticky-inner a {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(245,239,228,0.65);
  white-space: nowrap;
  transition: color var(--transition);
  padding-block: 0.2em;
  position: relative;
}

.menu-sticky-inner a::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  inset-block-end: -3px;
  height: 2px;
  background: var(--c-saffron);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}

.menu-sticky-inner a:hover {
  color: var(--c-saffron-lt);
}

.menu-sticky-inner a:hover::after {
  transform: scaleX(1);
}



.menu-section {
  padding-block: var(--space-2xl);
  background: var(--c-cream);
}

.menu-section--dark {
  background: var(--c-charcoal);
}

.menu-section--terra {
  background: var(--c-terra-dark);
}

.menu-section-header {
  max-width: 680px;
  margin-bottom: var(--space-xl);
}

.menu-section-intro {
  color: var(--c-text-muted);
  font-size: var(--fs-md);
  max-width: 600px;
  margin-top: calc(-1 * var(--space-xs));
}

.menu-section-intro--light {
  color: rgba(245,239,228,0.7);
}



.menu-section-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: start;
}

@media (min-width: 860px) {
  .menu-section-body {
    grid-template-columns: 1fr 1.5fr;
  }
}

.menu-photo {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: var(--shadow-card);
  position: relative;
}

.menu-section--dark .menu-photo::after {
  content: '';
  position: absolute;
  inset-block-end: -8px;
  inset-inline-start: -8px;
  width: 70%;
  height: 70%;
  border: 3px solid var(--c-saffron);
  border-radius: var(--radius-md);
  z-index: -1;
  opacity: 0.3;
}

.menu-photo::before {
  content: '';
  position: absolute;
  inset-block-end: -8px;
  inset-inline-start: -8px;
  width: 70%;
  height: 70%;
  border: 3px solid var(--c-saffron);
  border-radius: var(--radius-md);
  z-index: -1;
  opacity: 0.3;
}



.menu-items {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

@media (min-width: 500px) {
  .menu-items {
    grid-template-columns: 1fr 1fr;
    gap: 0 var(--space-md);
  }
}

.menu-item {
  padding-block: var(--space-sm);
  border-bottom: 1px solid rgba(42,32,24,0.1);
}

.menu-item:last-child { border-bottom: none; }

.menu-item--dark {
  border-bottom-color: rgba(245,239,228,0.1);
}

.menu-item--special {
  grid-column: 1 / -1;
  background: rgba(232,160,32,0.08);
  border: 1px solid rgba(232,160,32,0.3);
  border-radius: var(--radius-sm);
  padding-inline: var(--space-sm);
  margin-top: var(--space-xs);
}

.menu-item-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-xs);
  margin-bottom: 0.3rem;
}

.menu-item h3,
.menu-item h4 {
  font-family: var(--ff-display);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--c-charcoal);
  line-height: 1.25;
}

.menu-items--light .menu-item h3,
.menu-items--light .menu-item h4 {
  color: var(--c-saffron-lt);
}

.menu-price {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--c-terracotta);
  white-space: nowrap;
  flex-shrink: 0;
}

.menu-items--light .menu-price {
  color: var(--c-saffron);
}

.menu-item p {
  font-size: var(--fs-xs);
  color: var(--c-text-muted);
  line-height: 1.5;
}

.menu-items--light .menu-item p {
  color: rgba(245,239,228,0.6);
}



.banquet-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-top: var(--space-lg);
}

@media (min-width: 640px) {
  .banquet-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 960px) {
  .banquet-grid { grid-template-columns: 1fr 1fr 1fr; }
}

.banquet-card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(245,239,228,0.15);
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--transition), box-shadow var(--transition);
}

.banquet-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.3);
}

.banquet-card-img {
  aspect-ratio: 3/2;
  overflow: hidden;
}

.banquet-card-body {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  flex: 1;
}

.banquet-card-body h3 {
  font-family: var(--ff-display);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--c-saffron-lt);
}

.banquet-price {
  font-family: var(--ff-body);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--c-saffron);
  margin-bottom: 0.25rem;
}

.banquet-card-body p {
  font-size: var(--fs-sm);
  color: rgba(245,239,228,0.65);
  flex: 1;
}

.banquet-includes {
  list-style: none;
  margin-block: var(--space-sm);
}

.banquet-includes li {
  font-size: var(--fs-xs);
  color: rgba(245,239,228,0.55);
  padding-block: 0.25em;
  padding-inline-start: 1.1em;
  position: relative;
}

.banquet-includes li::before {
  content: '✦';
  position: absolute;
  inset-inline-start: 0;
  color: var(--c-saffron);
  font-size: 0.55rem;
  top: 0.45em;
}



.drinks-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  margin-top: var(--space-lg);
}

@media (min-width: 640px) {
  .drinks-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 960px) {
  .drinks-grid { grid-template-columns: 1fr 1fr 1fr; }
}

.drinks-col-heading {
  font-family: var(--ff-display);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--c-charcoal);
  margin-bottom: var(--space-sm);
  padding-bottom: var(--space-xs);
  border-bottom: 2px solid var(--c-terracotta);
}



.menu-specials-strip {
  background: var(--c-charcoal);
  padding-block: var(--space-2xl);
  position: relative;
}

.menu-specials-strip::before {
  content: '';
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  height: 5px;
  background: repeating-linear-gradient(
    90deg,
    var(--c-terracotta)   0px,  var(--c-terracotta)   20px,
    var(--c-saffron)      20px, var(--c-saffron)      40px,
    var(--c-cream)        40px, var(--c-cream)         60px,
    var(--c-terra-dark)   60px, var(--c-terra-dark)    80px
  );
}

.specials-strip-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: center;
}

@media (min-width: 768px) {
  .specials-strip-inner { grid-template-columns: 1fr 1fr; }
}

.specials-strip-text p {
  color: rgba(245,239,228,0.7);
  margin-bottom: var(--space-md);
  max-width: 440px;
}

.specials-strip-text a[href^="tel"] {
  color: var(--c-saffron-lt);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.specials-pill {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(245,239,228,0.1);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  margin-bottom: var(--space-sm);
  transition: background var(--transition);
}

.specials-pill:last-child { margin-bottom: 0; }

.specials-pill:hover { background: rgba(255,255,255,0.08); }

.specials-pill-icon {
  font-size: 1.75rem;
  line-height: 1;
  flex-shrink: 0;
}

.specials-pill strong {
  display: block;
  font-family: var(--ff-display);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--c-saffron-lt);
  margin-bottom: 0.25rem;
}

.specials-pill p {
  font-size: var(--fs-xs);
  color: rgba(245,239,228,0.6);
}



.menu-dietary {
  padding-block: var(--space-xl);
}

.menu-dietary .section-heading {
  margin-bottom: var(--space-sm);
}

.menu-dietary > p {
  color: var(--c-text-muted);
  max-width: 640px;
  margin-bottom: var(--space-md);
}

.dietary-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
}

.dietary-tag {
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 0.4em 1em;
  border-radius: 99px;
  border: 1.5px solid var(--c-terracotta);
  color: var(--c-terracotta);
  background: rgba(192,82,42,0.06);
}






.about-hero {
  position: relative;
  min-height: 70svh;
  display: flex;
  align-items: flex-end;
  padding-block-end: clamp(3rem, 8vw, 6rem);
  overflow: hidden;
}

.about-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.about-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

.about-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    160deg,
    rgba(17,9,0,0.3) 0%,
    rgba(17,9,0,0.55) 45%,
    rgba(17,9,0,0.86) 100%
  );
}

.about-hero-content {
  position: relative;
  z-index: 2;
  max-width: 720px;
}


.about-origin {
  background: var(--c-cream);
  padding-block: var(--space-2xl);
}

.about-origin-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: center;
}

@media (min-width: 768px) {
  .about-origin-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.about-origin-text p {
  color: var(--c-text-muted);
  margin-bottom: var(--space-md);
  max-width: 520px;
}

.about-origin-image {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: var(--shadow-card);
  position: relative;
}

.about-origin-image::before {
  content: '';
  position: absolute;
  inset: -6px;
  border: 3px solid var(--c-saffron);
  border-radius: calc(var(--radius-md) + 4px);
  z-index: 1;
  pointer-events: none;
  opacity: 0.4;
}


.about-philosophy {
  background: var(--c-charcoal);
  padding-block: var(--space-2xl);
  position: relative;
  overflow: hidden;
}

.about-philosophy-bg {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    45deg,
    transparent 0px,
    transparent 28px,
    rgba(192,82,42,0.05) 28px,
    rgba(192,82,42,0.05) 56px
  );
  pointer-events: none;
}

.about-philosophy-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: center;
}

@media (min-width: 768px) {
  .about-philosophy-inner {
    grid-template-columns: 1fr 1fr;
  }
}

.philosophy-image {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: 0 16px 48px rgba(0,0,0,0.4);
  order: 2;
}

@media (min-width: 768px) {
  .philosophy-image { order: 0; }
}

.philosophy-text p.philosophy-body {
  color: rgba(245,239,228,0.72);
  margin-bottom: var(--space-md);
  max-width: 520px;
  font-size: var(--fs-base);
}


.about-music {
  background: var(--c-cream-dark);
  padding-block: var(--space-2xl);
  position: relative;
}

.about-music::before {
  content: '';
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  height: 5px;
  background: repeating-linear-gradient(
    90deg,
    var(--c-terracotta)   0px,  var(--c-terracotta)   20px,
    var(--c-saffron)      20px, var(--c-saffron)      40px,
    var(--c-cream)        40px, var(--c-cream)         60px,
    var(--c-terra-dark)   60px, var(--c-terra-dark)    80px
  );
}

.about-music-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: center;
}

@media (min-width: 768px) {
  .about-music-inner {
    grid-template-columns: 1fr 1fr;
  }
}

.about-music-text p {
  color: var(--c-text-muted);
  margin-bottom: var(--space-md);
  max-width: 520px;
}

.about-music-image {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 3/4;
  box-shadow: var(--shadow-card);
  position: relative;
}

.about-music-image::after {
  content: '';
  position: absolute;
  inset-block-end: -10px;
  inset-inline-end: -10px;
  width: 80%;
  height: 80%;
  border: 3px solid var(--c-saffron);
  border-radius: var(--radius-md);
  z-index: -1;
  opacity: 0.4;
}


.about-values {
  background: var(--c-cream);
  padding-block: var(--space-2xl);
}

.about-values .section-heading {
  margin-inline: auto;
  max-width: 600px;
  text-align: center;
  margin-bottom: var(--space-xl);
}

.values-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-top: var(--space-xl);
}

@media (min-width: 600px) {
  .values-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 900px) {
  .values-grid { grid-template-columns: 1fr 1fr 1fr; }
}

.value-card {
  background: var(--c-white);
  border-radius: var(--radius-md);
  padding: var(--space-md) var(--space-md) var(--space-lg);
  border-top: 4px solid var(--c-terracotta);
  box-shadow: 0 2px 14px rgba(0,0,0,0.06);
  transition: transform var(--transition), box-shadow var(--transition);
}

.value-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 28px rgba(0,0,0,0.1);
}

.value-icon {
  font-size: 2.25rem;
  margin-bottom: var(--space-sm);
  line-height: 1;
}

.value-card h3 {
  font-family: var(--ff-display);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--c-charcoal);
  margin-bottom: 0.5rem;
}

.value-card p {
  font-size: var(--fs-sm);
  color: var(--c-text-muted);
  line-height: 1.65;
}


.about-events {
  position: relative;
  min-height: 480px;
  display: flex;
  align-items: center;
  padding-block: var(--space-2xl);
  overflow: hidden;
}

.about-events-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.about-events-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    135deg,
    rgba(17,9,0,0.90) 0%,
    rgba(140,51,24,0.78) 55%,
    rgba(17,9,0,0.90) 100%
  );
}

.about-events-content {
  position: relative;
  z-index: 2;
  max-width: 680px;
}

.about-events-body {
  font-size: var(--fs-md);
  color: rgba(245,239,228,0.8);
  margin-bottom: var(--space-lg);
  max-width: 560px;
  line-height: 1.6;
}


.about-visit {
  background: var(--c-cream-dark);
  padding-block: var(--space-2xl);
}

.about-visit-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: center;
}

@media (min-width: 768px) {
  .about-visit-inner {
    grid-template-columns: 1fr 1fr;
  }
}

.about-visit-text p {
  color: var(--c-text-muted);
  margin-bottom: var(--space-lg);
  max-width: 480px;
}

.about-visit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.about-visit-image {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: var(--shadow-card);
  position: relative;
}

.about-visit-image::after {
  content: '';
  position: absolute;
  inset-block-end: -10px;
  inset-inline-end: -10px;
  width: 80%;
  height: 80%;
  border: 3px solid var(--c-saffron);
  border-radius: var(--radius-md);
  z-index: -1;
  opacity: 0.4;
}



.contact-hero {
  position: relative;
  min-height: 52vh;
  display: flex;
  align-items: flex-end;
  padding-block-end: clamp(3rem, 8vw, 6rem);
  padding-inline: clamp(1rem, 5vw, 3rem);
  overflow: hidden;
  padding-block-start: 80px;
}

.contact-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.contact-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

.contact-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    160deg,
    rgba(17,9,0,0.45) 0%,
    rgba(17,9,0,0.7) 55%,
    rgba(17,9,0,0.9) 100%
  );
}

.contact-hero-content {
  position: relative;
  z-index: 2;
  max-width: 660px;
}

.contact-main {
  background: var(--c-cream);
  padding-block: var(--space-2xl);
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  align-items: start;
}

@media (min-width: 860px) {
  .contact-grid {
    grid-template-columns: 1.1fr 0.9fr;
  }
}

.contact-details .section-heading {
  margin-bottom: var(--space-lg);
}

.contact-block {
  display: flex;
  gap: var(--space-md);
  align-items: flex-start;
  padding-block: var(--space-md);
  border-bottom: 1px solid var(--c-cream-dark);
}

.contact-block:last-child {
  border-bottom: none;
}

.contact-block-icon {
  font-size: 1.6rem;
  line-height: 1;
  flex-shrink: 0;
  width: 2.4rem;
  text-align: center;
  padding-top: 0.15rem;
}

.contact-block h3 {
  font-family: var(--ff-display);
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--c-charcoal);
  margin-bottom: 0.3rem;
}

.contact-block p {
  font-size: var(--fs-sm);
  color: var(--c-text-muted);
  margin-bottom: 0.6rem;
  max-width: 460px;
}

.contact-link {
  display: inline-block;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--c-terracotta);
  transition: color var(--transition);
}

.contact-link:hover,
.contact-link:focus-visible {
  color: var(--c-terra-dark);
}

.contact-sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.hours-card {
  background: var(--c-white);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  box-shadow: var(--shadow-card);
  border-top: 4px solid var(--c-terracotta);
}

.hours-card-heading {
  font-family: var(--ff-display);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--c-charcoal);
  margin-bottom: var(--space-md);
  line-height: 1.2;
}

.hours-table--large td {
  padding: 0.45em 1rem 0.45em 0;
  font-size: var(--fs-sm);
  color: var(--c-text);
  border-bottom: 1px solid var(--c-cream-dark);
  white-space: nowrap;
}

.hours-table--large tr:last-child td {
  border-bottom: none;
}

.hours-table--large td:last-child {
  font-weight: 500;
  color: var(--c-terracotta);
}

.hours-note {
  font-size: var(--fs-xs);
  color: var(--c-text-muted);
  margin-top: var(--space-md);
  line-height: 1.6;
}

.map-card {
  background: var(--c-charcoal);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.map-img {
  aspect-ratio: 16/7;
  overflow: hidden;
}

.map-card-body {
  padding: var(--space-md);
}

.map-address {
  font-size: var(--fs-sm);
  color: rgba(245,239,228,0.75);
  line-height: 1.7;
}

.contact-cta-strip {
  background: var(--c-charcoal);
  padding-block: var(--space-xl);
  overflow: hidden;
}

.contact-cta-strip .tile-strip {
  position: relative;
  inset: auto;
  display: block;
  height: 6px;
  margin-block: 0;
}

.contact-cta-inner {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-lg);
  align-items: center;
  justify-content: space-between;
  padding-block: var(--space-lg);
}

.contact-cta-text {
  flex: 1 1 320px;
}

.contact-cta-text p {
  color: rgba(245,239,228,0.65);
  font-size: var(--fs-md);
  max-width: 520px;
  margin-top: var(--space-xs);
}

.contact-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  flex-shrink: 0;
}


/* pn-injected styles (links block, social bar, image fallback, photo credit) */

.pn-links-rail { box-sizing: border-box; width: 100%; max-width: 100%; margin: 0; padding: 1.1rem 1.25rem 1rem; border: 1px solid rgba(0,0,0,.14); border-top: 3px solid currentColor; background: rgba(0,0,0,.015); font-family: inherit; }
.pn-links-rail__head { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; opacity: .8; margin: 0 0 .65rem; padding-bottom: .5rem; border-bottom: 1px solid rgba(0,0,0,.1); }
.pn-links-rail__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .5rem; }
.pn-links-rail__list li { line-height: 1.35; }
.pn-links-rail__list a { font-size: .92rem; color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.pn-links-rail__list a:hover { opacity: .75; }
@media (min-width: 1024px) {
  main:has(> .pn-links-rail) {
    max-width: min(1280px, calc(100vw - 3rem));
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    column-gap: 2.5rem;
    align-items: start;
    box-sizing: border-box;
  }
  main > .pn-links-rail {
    grid-column: 2;
    grid-row: 1 / span 999;
    position: sticky;
    top: 1.5rem;
    align-self: start;
  }
  main > .pn-links-hidden { grid-column: 1; grid-row: 1; }
}
@media (max-width: 1023px) {
  main > .pn-links-rail { margin: 1.5rem 0 1rem; }
}
.pn-links-hidden { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.pn-social { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; }
.pn-social__link { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; color: inherit; opacity: .82; transition: opacity .15s ease, transform .15s ease; text-decoration: none; }
.pn-social__link:hover { opacity: 1; transform: translateY(-1px); }
.pn-social__icon { display: block; width: 22px; height: 22px; }
.pn-social--header { justify-content: flex-end; margin: .35rem 1.25rem; }
.pn-social--footer { justify-content: center; margin: 0 auto .85rem; }
.pn-social--sidebar { justify-content: flex-start; margin: 0 0 1.25rem; }
@media (max-width: 720px) { .pn-social--header { justify-content: center; } }

.pn-links-rail{max-width:none;width:auto;margin:1.5rem auto .25rem;padding:0;border:none;background:none;text-align:center;}
.pn-links-rail__head{border:none;padding:0;margin:0 0 .5rem;font-size:.66rem;letter-spacing:.14em;opacity:.5;}
.pn-links-rail__list{flex-direction:row;justify-content:center;flex-wrap:wrap;gap:.35rem 1.15rem;}

.pn-photo{background-color:#e6e1d6;}

.pn-img-fallback{background:repeating-linear-gradient(135deg,#e6e1d6 0,#e6e1d6 10px,#efe9dd 10px,#efe9dd 20px);display:block;min-height:200px;width:100%;}

.pn-photo-credits{font-size:11px;line-height:1.5;opacity:.55;text-align:center;padding:10px 16px;}.pn-photo-credits a{color:inherit;}

/* pn-blog-styles:begin */
.pn-bloglist{display:grid;gap:clamp(1.5rem,4vw,2.25rem);margin:0;padding:0;list-style:none;}
.pn-bloglist__item{display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem;padding-bottom:clamp(1.5rem,4vw,2.25rem);border-bottom:1px solid var(--border, rgba(0,0,0,.12));}
.pn-bloglist__item:last-child{border-bottom:0;padding-bottom:0;}
@media (min-width:40rem){.pn-bloglist__item--media{grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:1.5rem;align-items:start;}}
.pn-bloglist__thumb{display:block;margin:0;}
.pn-bloglist__thumb img{width:100%!important;height:auto!important;display:block;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius, 6px);}
.pn-bloglist__body{min-width:0;}
.pn-bloglist__title{font-family:var(--font-serif, inherit);font-size:clamp(1.15rem,3.2vw,1.5rem);line-height:1.25;margin:0 0 .4rem;overflow-wrap:break-word;}
.pn-bloglist__title a{color:var(--brown, var(--text, inherit));text-decoration:none;}
.pn-bloglist__title a:hover{text-decoration:underline;}
.pn-bloglist__meta{font-size:.8rem;letter-spacing:.04em;opacity:.65;margin:0 0 .5rem;}
.pn-bloglist__excerpt{margin:0;line-height:1.6;opacity:.85;overflow-wrap:break-word;}
.pn-bloglist__empty{opacity:.7;}
.pn-bloglist__cats{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 clamp(1.25rem,3.5vw,2rem);padding:0;list-style:none;}
.pn-bloglist__cat{display:inline-flex;align-items:center;gap:.4em;padding:.35em .8em;border:1px solid var(--border, rgba(0,0,0,.15));border-radius:999px;font-size:.82rem;line-height:1;text-decoration:none;color:var(--text, inherit);opacity:.85;}
.pn-bloglist__cat:hover{opacity:1;border-color:var(--brown, var(--accent, currentColor));}
.pn-bloglist__cat--current{background:var(--brown, var(--accent, rgba(0,0,0,.06)));color:var(--bg, #fff);border-color:transparent;opacity:1;}
.pn-bloglist__cat-n{font-size:.75em;opacity:.7;}
.pn-bloglist__cat--current .pn-bloglist__cat-n{opacity:.85;}
/* pn-blog-styles:end */

/* pn-article-styles:begin */
.pn-article *,
.pn-article *::before,
.pn-article *::after {
  box-sizing: border-box;
}

.pn-article {
  width: min(100%, 740px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 5vw, 2.5rem);
  padding-block-start: calc(5rem + var(--space-xl));
  padding-block-end: var(--space-2xl);
  background: var(--c-cream);
  color: var(--c-text);
  font-family: var(--ff-body);
  font-size: var(--fs-base);
  line-height: 1.75;
  overflow-wrap: break-word;
}

.pn-article__head {
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 2px solid var(--c-cream-dark);
}

.pn-article__title {
  font-family: var(--ff-display);
  font-size: clamp(2rem, 6vw, 3.5rem);
  font-weight: 900;
  line-height: 1.08;
  color: var(--c-charcoal);
  margin-bottom: var(--space-sm);
  overflow-wrap: break-word;
}

.pn-article__byline {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em 1em;
}

.pn-article__byline span + span::before {
  content: '·';
  margin-inline-end: 1em;
  opacity: 0.5;
}

.pn-article__hero {
  width: min(100%, 900px);
  margin-inline: calc(50% - 50vw);
  margin-inline: auto;
  margin-bottom: var(--space-lg);
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.pn-article__hero img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: cover;
  object-position: center;
}

.pn-article__hero .photo-credit {
  position: absolute;
  inset-block-end: 0;
  inset-inline-end: 0;
  background: rgba(17, 9, 0, 0.62);
  color: rgba(245, 239, 228, 0.7);
  font-family: var(--ff-body);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  padding: 0.3em 0.7em;
  border-radius: var(--radius-sm) 0 0 0;
}

.pn-article__body {
  font-family: var(--ff-body);
  font-size: var(--fs-base);
  color: var(--c-text);
  line-height: 1.8;
  overflow-wrap: break-word;
}

.pn-article__body h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  font-weight: 900;
  line-height: 1.15;
  color: var(--c-charcoal);
  margin-block-start: var(--space-xl);
  margin-block-end: var(--space-sm);
}

.pn-article__body h3 {
  font-family: var(--ff-display);
  font-size: clamp(1.2rem, 3vw, 1.6rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--c-charcoal);
  margin-block-start: var(--space-lg);
  margin-block-end: var(--space-xs);
}

.pn-article__body p {
  margin-block-end: var(--space-md);
  color: var(--c-text);
}

.pn-article__body a {
  color: var(--c-terracotta);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color var(--transition);
}

.pn-article__body a:hover,
.pn-article__body a:focus-visible {
  color: var(--c-terra-dark);
}

.pn-article__body ul,
.pn-article__body ol {
  margin-block-end: var(--space-md);
  padding-inline-start: 1.5rem;
}

.pn-article__body ul {
  list-style: disc;
}

.pn-article__body ol {
  list-style: decimal;
}

.pn-article__body li {
  margin-block-end: 0.45em;
  color: var(--c-text);
  padding-inline-start: 0.25rem;
}

.pn-article__body figure {
  margin-block: var(--space-lg);
  margin-inline: 0;
}

.pn-article__body figure figcaption {
  font-size: var(--fs-xs);
  color: var(--c-text-muted);
  text-align: center;
  margin-block-start: 0.5rem;
  font-style: italic;
  letter-spacing: 0.03em;
}

.pn-article__body img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  object-fit: initial;
  border-radius: var(--radius-sm);
  box-shadow: 0 4px 18px rgba(17, 9, 0, 0.1);
  margin-inline: auto;
}

.pn-article__body blockquote {
  margin-block: var(--space-lg);
  margin-inline: 0;
  padding-inline: var(--space-md);
  padding-block: var(--space-sm);
  border-inline-start: 4px solid var(--c-terracotta);
  background: var(--c-cream-dark);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--c-text-muted);
  font-family: var(--ff-display);
  font-size: clamp(1.05rem, 2.5vw, 1.3rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.6;
}

.pn-article__body blockquote p {
  margin-block-end: 0;
  color: inherit;
}

.pn-article__body svg {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  fill: currentColor;
}
/* pn-article-styles:end */
