/* archetype: letterpress — an old shop with a printed menu. Centred, narrow, hairline
   rules above and below each section, small caps, and nothing rounded anywhere.
   Tuned for Cafe du Journal: the shop's own name means "the newspaper's café" and
   Google's own listing describes its walls as "lined with books and prints", so the
   masthead rule below and the letter-spacing throughout lean into newsprint rather
   than a generic old-shop treatment. */

h1 { font-size: clamp(2.4rem, 7.5vw, 4rem); line-height: 1.08; letter-spacing: 0.01em; }
h2 { font-size: clamp(1.7rem, 4.5vw, 2.4rem); letter-spacing: 0.01em; }
body { letter-spacing: 0.005em; }

.site-header { background: var(--color-bg); backdrop-filter: none; border-bottom: 1px solid var(--color-primary); }
.header-inner { min-height: 5.5rem; }
.brand-name { letter-spacing: 0.18em; text-transform: uppercase; font-size: 1.15rem; }
.nav-list a { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.78rem; font-weight: 600; }

.btn, .card, .menu-note, .book-panel, .nav-toggle, .map-embed, .gallery img, .status-pill { border-radius: 0; }
.btn { background: transparent; border: 1px solid var(--color-primary); color: var(--color-primary); text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.8rem; font-weight: 600; padding: 0.9rem 1.6rem; }
.btn-primary { border-color: var(--color-accent); color: var(--color-accent); }
.btn:hover { transform: none; background: color-mix(in srgb, var(--color-primary) 8%, transparent); }
.hero .btn { border-color: rgba(255,255,255,0.8); color: #fff; }

/* Everything centred, on a narrow measure, like a printed page. */
.container { width: min(100% - 2.5rem, 56rem); }
.hero { min-height: min(72vh, 42rem); align-items: center; text-align: center; }
.hero::after { background: linear-gradient(180deg, rgba(0,0,0,0.5), rgba(0,0,0,0.55)); }
.hero h1, .hero .lead { max-width: none; margin-inline: auto; }
.hero-meta, .hero .btn-row { justify-content: center; }
.page-hero { text-align: center; }
.section-head { text-align: center; }
.section-head .lead, .lead { margin-inline: auto; }
.eyebrow { letter-spacing: 0.22em; font-size: 0.72rem; }

/* A masthead rule under the eyebrow, top and tail of a newspaper column. */
.eyebrow::before, .eyebrow::after { content: ""; display: inline-block; width: 1.5em; height: 1px; background: currentColor; vertical-align: middle; margin: 0 0.6em; opacity: 0.6; }

/* A hairline above and below every section. */
.section { border-top: 1px solid var(--color-border); }
.section + .section { border-top: 1px solid var(--color-border); }
.card { border: 0; box-shadow: none; text-align: center; }

/* Menu: centred, with leaders, like a printed card. */
.menu-sections { gap: 2.75rem; }
.menu-section h3 { text-align: center; text-transform: uppercase; letter-spacing: 0.18em; font-size: 0.95rem; border-bottom: 0; }
.menu-section h3::after { content: ""; display: block; width: 2.5rem; height: 1px; background: var(--color-primary); margin: 0.6rem auto 0; }
.menu-item { border-bottom: 1px dotted var(--color-border); padding: 0.65rem 0; }
.menu-item-desc { font-style: italic; }
.quote { margin-inline: auto; text-align: center; font-style: italic; }
.menu-item-price:empty { display: none; }

/* The monogram is a white-ground JPEG; multiply lets the newsprint show through its white. */
.brand img, .footer-brand img { mix-blend-mode: multiply; }
/* Centre the Instagram block like every other letterpress heading. */
#instagram .container { text-align: center; }
#instagram .lead { margin-left: auto; margin-right: auto; }
