/* A light refresh of the existing black, gold, and serif identity. */
:root { --jt-gold: #cda45e; --jt-muted: #d0c8bb; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--jt-gold);
  outline-offset: 4px;
}
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 10000; padding: 12px 20px; background: #0c0b09; }
.skip-link:focus { top: 12px; }
section { scroll-margin-top: 90px; }
#hero { height: auto; min-height: 88vh; padding: 160px 0 88px; }
#hero .container { padding-top: 0; }
#hero:before { background: linear-gradient(90deg, rgba(12,11,9,.86), rgba(12,11,9,.48)); }
#hero h1 { font-size: clamp(2rem, 4.2vw, 3.7rem); line-height: 1.15; max-width: 780px; }
#hero h2 { line-height: 1.5; margin-top: 24px; }
#hero p { max-width: 590px; margin-top: 16px; font-family: "Open Sans", sans-serif; font-size: 16px; line-height: 1.8; }
#hero .btns { display: flex; flex-wrap: wrap; gap: 14px; }
#hero .btn-book { margin-left: 0; }
#hero .btn-menu { background: var(--jt-gold); color: #0c0b09; }
.about .row { align-items: center; }
.about .about-img img { width: 100%; height: auto; max-height: 560px; object-fit: cover; border-radius: 4px; }
.about .section-title { padding-bottom: 20px; }
.story-lead { font-size: 19px; }
.story-link { display: inline-block; padding: 12px 0; border-bottom: 1px solid var(--jt-gold); }
.why-us .box { height: 100%; border: 1px solid #393126; border-radius: 4px; box-shadow: none; }
.why-us .box p { color: var(--jt-muted); }
.memorial { padding: 80px 0; }
.memorial .container { max-width: 1320px; }
.memorial-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr) minmax(0, 1fr); grid-template-areas: "heading heading heading" "chair copy portrait" "note note note"; gap: 32px; margin: auto; padding: 48px 32px; border: 1px solid #57452c; border-top: 3px solid var(--jt-gold); background: #13110e; }
.memorial-heading { grid-area: heading; text-align: center; max-width: 780px; margin: auto; }
.memorial-chair { grid-area: chair; }
.memorial-portrait { grid-area: portrait; }
.memorial-card figure { margin: 4px 0 0; min-width: 0; }
.memorial-card figure img, .portrait-placeholder { display: block; width: 100%; aspect-ratio: 2 / 3; height: auto; border: 1px solid #57452c; padding: 6px; background: #191510; }
.memorial-card figure img { object-fit: contain; }
.memorial-card figcaption { margin-top: 14px; color: var(--jt-muted); font-family: "Playfair Display", serif; font-style: italic; font-size: 14px; text-align: center; }
.portrait-placeholder { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 20px; background: linear-gradient(145deg, #211c14, #13110e); }
.portrait-rule { width: 36px; height: 1px; margin-bottom: 24px; background: var(--jt-gold); }
.portrait-name { font-family: "Playfair Display", serif; font-size: 26px; color: var(--jt-gold); }
.portrait-description { margin-top: 12px; font-family: "Playfair Display", serif; font-style: italic; color: #e7dfd1; }
.portrait-pending { margin-top: 24px; font-size: 12px; color: var(--jt-muted); }
.memorial-copy { grid-area: copy; min-width: 0; }
.memorial-copy p { margin-bottom: 22px; }
.memorial-closing { font-family: "Playfair Display", serif; font-size: 21px; color: var(--jt-gold); padding-top: 8px; }
.memorial-card .review-note { grid-area: note; margin: 0; }
.eyebrow { color: var(--jt-gold); text-transform: uppercase; font-size: 12px; letter-spacing: 3px; margin-bottom: 16px; }
.memorial h2 { font-size: clamp(2rem, 4vw, 2.8rem); }
.memorial-subtitle { font-family: "Playfair Display", serif; color: var(--jt-gold); font-size: 20px; margin: 16px 0 28px; }
.memorial-copy { color: #eee7dc; }
.review-note, .menu-notice { color: var(--jt-muted); font-size: 14px; border-left: 2px solid var(--jt-gold); padding: 12px 18px; background: rgba(205,164,94,.05); }
.review-note { margin-top: 28px; }
.menu-notice { max-width: 780px; margin-bottom: 28px; }
.menu .menu-ingredients { color: #c8c0b5; }
.menu .menu-content a { min-width: 0; }
.menu .menu-content span { flex-shrink: 0; white-space: nowrap; }
.menu .menu-item-text-only .menu-content, .menu .menu-item-text-only .menu-ingredients { margin-left: 0; }
.menu-policy { margin: 36px 0 0; padding-top: 20px; border-top: 1px solid #57452c; color: var(--jt-muted); font-size: 14px; }
.events .event-item img { border-radius: 4px; }
.reservation-note { max-width: 680px; margin-top: 16px; color: var(--jt-muted); }
#footer .footer-info { padding: 0 15px; }
@media (min-width: 992px) and (max-width: 1199px) {
  #header .logo { font-size: 21px; letter-spacing: 0; }
  .nav-menu a { padding-left: 10px; }
  .nav-menu .book-a-table a { padding: 8px 14px; margin-left: 10px; }
}
@media (max-width: 991px) {
  #hero { background-attachment: scroll; }
  #hero .btns { justify-content: center; }
  #hero p { margin-left: auto; margin-right: auto; }
  #header .logo { font-size: clamp(17px, 3.6vw, 26px); max-width: calc(100% - 46px); line-height: 1.25; }
  .about .about-img img { max-height: 440px; object-position: center 40%; }
  .memorial-card { padding: 32px 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "heading heading" "copy copy" "chair portrait" "note note"; gap: 28px; }
  .memorial-card figure { width: 100%; max-width: 280px; justify-self: center; }
}
@media (max-width: 575px) {
  .memorial-card { padding: 32px 20px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "heading" "chair" "copy" "portrait" "note"; }
  .memorial h2 { font-size: 30px; line-height: 1.3; }
  .memorial-subtitle { font-size: 19px; margin-bottom: 0; }
  .memorial-card figure { max-width: 240px; }
  #hero { min-height: 100svh; padding: 160px 0 64px; }
  #hero h1 { font-size: 34px; }
  #hero .btns a { width: 100%; max-width: 300px; line-height: 1.4; }
  .section-title p { font-size: 30px; line-height: 1.3; }
  .menu #menu-flters { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px; }
  .menu #menu-flters li { padding: 12px; margin: 0; }
  .menu .menu-img { width: 52px; }
  .menu .menu-content, .menu .menu-ingredients { margin-left: 64px; }
  .menu .menu-content { gap: 8px; }
  .menu .menu-content span { padding: 0; }
  .menu .menu-content::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  [data-aos] { opacity: 1 !important; transform: none !important; }
  #hero, .about, .events { background-attachment: scroll; }
}
