/* =========================================================
   HOME · home-2026.css  (hero on charcoal, pillars, three-dish composition, tasting on olive, private dining, sample quotes, visit)
   Class prefix hm- keeps this page's rules away from the header and footer.
   ========================================================= */
.hm-hero { position: relative; overflow: clip; padding-block: var(--s-8) 0; background:
  radial-gradient(60% 70% at 78% 52%, rgb(154 62 40 / .22), transparent 70%), var(--night); }
.hm-hero-grid { display: grid; gap: var(--s-6); align-items: end; }
.hm-hero-copy { padding-bottom: var(--s-6); }
.hm-hero-copy .eyebrow { margin-bottom: var(--s-4); }
.hm-hero h1 { margin-bottom: var(--s-5); max-width: 9ch; }
.hm-hero h1 em { color: var(--ember-lit); }
.hm-hero .lead { margin-bottom: var(--s-6); color: var(--cream-dim); }
.hm-meta { margin-top: var(--s-5); font: 500 var(--t-small)/1.5 var(--font-ui); letter-spacing: .02em; color: var(--cream-dim); }
.hm-hero-plate { --fade-size: clamp(40px, 12vw, 160px); margin-inline: calc(-1 * var(--margin)); }
.hm-hero-plate img { width: 100%; height: auto; }
@media (min-width: 1024px) {
  .hm-hero { padding-block: var(--s-9) 0; }
  .hm-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 0; align-items: center; }
  .hm-hero-copy { padding-block: var(--s-6) var(--s-9); position: relative; z-index: 1; }
  .hm-hero h1 { max-width: none; margin-right: -12vw; }
  .hm-hero-plate { margin-inline: 0 calc(-1 * var(--margin)); align-self: end; }
}
@media (min-width: 1440px) { .hm-hero-plate { margin-inline-end: calc(-1 * (100vw - var(--max)) / 2); } }
.hm-hero .display { font-size: clamp(3.5rem, 2rem + 6.2vw, 7.75rem); }

/* pillars */
.hm-pillars-grid { display: grid; gap: var(--s-7); align-items: center; }
.hm-pillars-photo { --fade-size: clamp(32px, 8vw, 120px); }
.hm-pillars-photo img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.hm-pillars-list { display: grid; gap: 0; }
.hm-pillars-list li { display: grid; grid-template-columns: 4.5rem 1fr; gap: var(--s-4); padding-block: var(--s-5); border-top: 1px solid var(--line-strong); }
.hm-pillars-list li:last-child { border-bottom: 1px solid var(--line-strong); }
.hm-n { font: 500 3.25rem/.9 var(--font-display); font-style: italic; color: var(--ember); }
.hm-pillars-list h2 { font-size: var(--t-h3); line-height: 1.05; margin-bottom: var(--s-2); font-weight: 600; }
.hm-pillars-list p { color: var(--ink-soft); max-width: 46ch; }
@media (min-width: 900px) { .hm-pillars-grid { grid-template-columns: 1fr 1fr; gap: var(--s-9); } .hm-pillars-photo { margin-left: calc(-1 * var(--margin)); } }

/* three dishes */
.hm-fire-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s-4); margin-bottom: var(--s-7); }
.hm-fire-head h2 em { color: var(--ember); }
.hm-fire-grid { display: grid; gap: var(--s-7); }
.hm-dish { display: grid; gap: var(--s-4); align-content: start; }
.hm-dish .img-frame img { width: 100%; height: auto; }
.hm-dish-text { display: grid; grid-template-columns: auto 1fr auto; column-gap: var(--s-3); align-items: baseline; }
.hm-dish-text h3 { font-size: var(--t-h3); line-height: 1.05; }
.hm-dish-text p:not(.hm-price) { grid-column: 1 / -1; grid-row: 2; color: var(--ink-soft); margin-top: var(--s-1); }
.hm-dots { align-self: end; height: 1px; margin-bottom: .45em; background-image: radial-gradient(circle, var(--ink-soft) 1px, transparent 1.4px); background-size: 6px 3px; background-repeat: repeat-x; background-position: left bottom; opacity: .6; }
.hm-price { font: 600 1.25rem/1 var(--font-ui); }
.hm-dish--lamb h3 { font-size: clamp(2.25rem, 1.6rem + 2vw, 3.25rem); }
.hm-dish--lamb .hm-price { font-size: 1.5rem; }
@media (min-width: 900px) {
  .hm-fire-grid { grid-template-columns: repeat(12, 1fr); gap: var(--s-7) var(--s-6); align-items: start; }
  .hm-dish--lamb { grid-column: 1 / 8; grid-row: 1 / 3; }
  .hm-dish--mezze { grid-column: 8 / 13; grid-row: 1; }
  .hm-dish--cake { grid-column: 8 / 13; grid-row: 2; }
  .hm-dish--mezze img, .hm-dish--cake img { aspect-ratio: 3 / 2; object-fit: cover; }
  .hm-dish--lamb img { aspect-ratio: 5 / 6; object-fit: cover; }
}

/* tasting */
.hm-tasting { position: relative; overflow: clip; }
.hm-tasting-grid { display: grid; gap: var(--s-7); align-items: center; }
.hm-tasting-copy .eyebrow { color: var(--olive-lit); }
.hm-tasting h2 { font-size: var(--t-h2); margin: var(--s-3) 0 var(--s-5); }
.hm-tasting .lead { color: #e6e6d4; max-width: 34ch; }
.hm-big { margin: var(--s-5) 0 var(--s-4); font: 500 clamp(5.5rem, 3rem + 9vw, 10rem)/.85 var(--font-display); font-style: italic; letter-spacing: -.04em; color: var(--cream); }
.hm-big small { font: 600 var(--t-meta)/1 var(--font-ui); font-style: normal; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--olive-lit); }
.hm-courses { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); margin-bottom: var(--s-6); max-width: 46ch; counter-reset: c; }
.hm-courses li { counter-increment: c; font: 500 1.25rem/1.3 var(--font-display); color: #e6e6d4; }
.hm-courses li::before { content: counter(c, lower-roman) ". "; font-style: italic; color: var(--olive-lit); }
.hm-tasting-photo { --fade-size: clamp(32px, 9vw, 140px); margin-inline: calc(-1 * var(--margin)); }
.hm-tasting-photo img { width: 100%; height: auto; }
@media (min-width: 900px) {
  .hm-tasting-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--s-7); }
  .hm-tasting-photo { margin-inline: 0 calc(-1 * var(--margin)); }
}
@media (min-width: 1440px) { .hm-tasting-photo { margin-inline-end: calc(-1 * (100vw - var(--max)) / 2); } }
.hm-tasting .btn--ghost { color: var(--cream); border-color: #8a9a70; }
.hm-tasting .btn--ghost:hover { background: var(--olive-2); border-color: var(--cream); }
.hm-tasting .btn--primary { background: #a8432a; }
.hm-tasting .btn--primary:hover { background: #bd4c30; }

/* private */
.hm-private { padding-top: var(--sec); overflow: clip; }
.hm-private-grid { display: grid; gap: var(--s-7); align-items: center; }
.hm-private-photo { --fade-size: clamp(32px, 9vw, 140px); }
.hm-private-photo img { width: 100%; height: auto; }
.hm-private-copy { padding-inline: var(--margin); }
.hm-private h2 em { color: var(--ember); }
.hm-private h2 { margin: var(--s-3) 0 var(--s-5); }
.hm-rooms { display: grid; margin: var(--s-6) 0; max-width: 34rem; }
.hm-rooms li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-1) var(--s-4); padding: var(--s-3) 0; border-top: 1px solid var(--line-strong); }
.hm-rooms li:last-child { border-bottom: 1px solid var(--line-strong); }
.hm-rooms b { font: 600 1.5rem/1.1 var(--font-display); }
.hm-rooms span { color: var(--muted); font-size: var(--t-small); align-self: center; }
@media (min-width: 900px) {
  .hm-private-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--s-8); }
  .hm-private-copy { padding-inline: 0 var(--margin); max-width: 40rem; }
}
@media (min-width: 1440px) { .hm-private-copy { padding-inline-end: calc((100vw - var(--max)) / 2 + var(--margin)); } }

/* sample quotes */
.hm-quotes-title { font-size: var(--t-h3); margin-bottom: var(--s-6); }
.hm-quotes-grid { display: grid; gap: var(--s-7); }
.hm-quote { position: relative; padding-top: var(--s-5); border-top: 1px solid var(--line-strong); }
.hm-quote blockquote { margin: 0; }
.hm-quote p { max-width: 24ch; font: 500 clamp(2rem, 1.5rem + 1.6vw, 3rem)/1.12 var(--font-display); font-style: italic; letter-spacing: -.01em; }
.hm-quote figcaption { display: flex; align-items: center; gap: var(--s-3); margin-top: var(--s-4); font: 400 var(--t-small)/1.4 var(--font-ui); color: var(--muted); }
.hm-sample { padding: 2px var(--s-2); border: 1px solid var(--line-strong); border-radius: 999px; font: 600 var(--t-meta)/1.4 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
@media (min-width: 800px) { .hm-quotes-grid { grid-template-columns: 1fr 1fr; gap: var(--s-8); } }

/* visit */
.hm-visit-grid { display: grid; gap: var(--s-7); align-items: center; }
.hm-visit-photo img { width: 100%; height: auto; }
.hm-visit h2 { font-size: var(--t-h2); margin: var(--s-3) 0 var(--s-4); }
.hm-visit .hours { max-width: 30rem; margin: var(--s-6) 0; }
.hm-visit .hours li.is-today { background: var(--ember-tint); padding-inline: var(--s-3); margin-inline: calc(-1 * var(--s-3)); border-radius: var(--r-1); }
@media (min-width: 900px) { .hm-visit-grid { grid-template-columns: 1.1fr 1fr; gap: var(--s-8); } }
