/* Billie: everything theme.json can't express.
   Palette from the print menus: Bolo = cream #FEEDDB / rose #A14451, Bar = mint #CEE2DF / navy #304962. */

:root {
	--b-cream: var(--wp--preset--color--cream);
	--b-rose: var(--wp--preset--color--rose);
	--b-navy: var(--wp--preset--color--navy);
	--b-mint: var(--wp--preset--color--mint);
	--b-ink: var(--wp--preset--color--ink);
	--b-accent: var(--b-rose);
	--b-rule: color-mix(in srgb, var(--b-accent) 28%, transparent);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
[id] { scroll-margin-top: 5.5rem; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- Header ---------- */
.billie-header {
	position: sticky; top: 0; z-index: 50;
	padding: 0.75rem clamp(1rem, 4vw, 2rem);
	background: var(--b-cream);
	border-bottom: 1px solid var(--b-rule);
}
.admin-bar .billie-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .billie-header { top: 0; } }
.billie-logo { display: block; line-height: 0; }
.billie-logo img { width: auto; height: 2.6rem; }
.billie-logo__mint { display: none; }
.billie-nav { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--b-accent); }
.billie-nav a { text-decoration: none; }
.billie-nav a:hover, .billie-nav a:focus-visible { text-decoration: underline; text-underline-offset: 0.3em; }
.billie-nav .wp-block-navigation__container { gap: clamp(0.9rem, 2.5vw, 2rem); }
.billie-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--b-cream); color: var(--b-accent);
	padding: 2rem;
}
.billie-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { font-size: 1.5rem; gap: 1.25rem; }

/* Bar pages: navy header, mint wordmark */
.billie-is-bar .billie-header { background: var(--b-navy); border-bottom-color: transparent; }
.billie-is-bar .billie-logo__rose { display: none; }
.billie-is-bar .billie-logo__mint { display: block; }
.billie-is-bar .billie-nav { color: var(--b-mint); }
.billie-is-bar .billie-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--b-navy); color: var(--b-mint); }

/* ---------- Main ---------- */
.billie-main { padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
.billie-lede { font-size: var(--wp--preset--font-size--large); line-height: 1.45; }
.billie-menu-note { font-style: italic; opacity: 0.8; margin-block-start: 0.25rem !important; }
.billie-menu-footnote { margin-block-start: var(--wp--preset--spacing--40) !important; opacity: 0.85; }
.billie-back a { font-weight: 600; text-decoration: none; }

/* Home hero */
.billie-main--home { padding-block-start: var(--wp--preset--spacing--30); }
.billie-hero__art { text-align: center; }
.billie-hero__art img { width: min(24rem, 78vw); }
.billie-hero { text-align: center; padding-block-end: var(--wp--preset--spacing--40); }
.billie-hero__title {
	font-family: var(--wp--preset--font-family--condensed) !important;
	font-weight: 600 !important;
	font-size: var(--wp--preset--font-size--x-large) !important;
	letter-spacing: 0.12em !important;
	text-align: center;
	margin-block-start: 0.5rem !important;
}

/* Full-bleed colour panels (Group > Styles > Bar / Bolo panel) */
.is-style-billie-bar,
.is-style-billie-bolo {
	padding: var(--wp--preset--spacing--50) clamp(1rem, 4vw, 2rem);
	margin-block: 0 !important;
}
.is-style-billie-bar { background: var(--b-navy); color: var(--b-mint); }
.is-style-billie-bar :is(h2, h3) { color: var(--b-mint); }
.is-style-billie-bar .wp-element-button { background: var(--b-mint); color: var(--b-navy); }
.is-style-billie-bar .wp-element-button:hover { background: var(--wp--preset--color--white); }
.is-style-billie-bolo { background: var(--b-rose); color: var(--b-cream); }
.is-style-billie-bolo :is(h2, h3) { color: var(--b-cream); }
.is-style-billie-bolo .wp-element-button { background: var(--b-cream); color: var(--b-rose); }
.is-style-billie-bolo .wp-element-button:hover { background: var(--wp--preset--color--white); }
:is(.is-style-billie-bar, .is-style-billie-bolo) h2 { font-size: var(--wp--preset--font-size--huge); margin-block-end: 0; }
:is(.is-style-billie-bar, .is-style-billie-bolo) h2 + h3 { margin-block-start: 0.25rem; }

.billie-home-section { padding-block-start: var(--wp--preset--spacing--50); }
.billie-home-section > h2 { text-align: center; }
.billie-home-section > .billie-menu-note { text-align: center; }

/* Framed box (Le Séparé, Party) */
.is-style-billie-box {
	border: 2px solid var(--b-accent);
	padding: var(--wp--preset--spacing--30);
	margin-block-start: var(--wp--preset--spacing--40) !important;
	text-align: center;
}
.wp-block-column > .is-style-billie-box { margin-block-start: 0 !important; height: 100%; }
.is-style-billie-box h3 { margin-block-start: 0; }
.is-style-billie-box p:last-child { margin-block-end: 0; }

/* ---------- Menu tables (Table > Styles > Menu card) ---------- */
.wp-block-table.is-style-billie-menu { margin-block-start: 0.5rem; overflow-x: visible; }
.is-style-billie-menu table { width: 100%; border-collapse: collapse; border: 0; font-variant-numeric: tabular-nums lining-nums; }
.is-style-billie-menu :is(td, th) { border: 0; border-bottom: 1px dotted var(--b-rule); padding: 0.5rem 0.4rem; vertical-align: baseline; }
.is-style-billie-menu tr:last-child td { border-bottom: 0; }
.is-style-billie-menu :is(td, th):first-child { padding-left: 0; width: 100%; }
.is-style-billie-menu :is(td, th):not(:first-child) { text-align: right; white-space: nowrap; padding-left: 0.9rem; }
.is-style-billie-menu :is(td, th):last-child { padding-right: 0; }
.is-style-billie-menu thead { border: 0; }
.is-style-billie-menu thead th {
	font-family: var(--wp--preset--font-family--condensed); font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8rem;
	color: var(--b-accent); border-bottom: 2px solid var(--b-accent);
}
.is-style-billie-menu td em {
	font-style: normal; font-size: 0.72em; text-transform: uppercase; letter-spacing: 0.06em;
	opacity: 0.7; white-space: nowrap; margin-left: 0.15em;
}
.is-style-billie-menu td strong { font-family: var(--wp--preset--font-family--condensed); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--b-accent); }


@media (max-width: 520px) {
	.is-style-billie-menu { font-size: 0.95rem; }
	.is-style-billie-menu :is(td, th):not(:first-child) { padding-left: 0.55rem; }
	.is-style-billie-menu td em { display: block; margin-left: 0; white-space: normal; }
}

/* Menu pages */
.billie-menu-page h1 { margin-block: 0.5rem 0.25rem; }
.billie-menu-page h2 {
	text-align: center; margin-block-start: var(--wp--preset--spacing--50);
	padding-block-end: 0.5rem; border-bottom: 3px double var(--b-accent);
}
.billie-menu-page h3 { margin-block: var(--wp--preset--spacing--30) 0 !important; }
.billie-menu-page h2 + h3, .billie-menu-page h2 + .billie-menu-note + h3 { margin-block-start: 1rem !important; }
.billie-art { text-align: center; line-height: 0; }
.billie-art img { width: min(15rem, 55vw); }
.billie-art--arch img { width: min(20rem, 70vw); }
.billie-jumpnav { font-family: var(--wp--preset--font-family--heading); font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.78rem; line-height: 2.2; }
.billie-jumpnav a { text-decoration: none; border-bottom: 2px solid currentColor; }

/* Bar page palette */
body.billie-is-bar { background: var(--b-mint); --b-accent: var(--b-navy); --b-rule: color-mix(in srgb, var(--b-navy) 30%, transparent); }
.billie-is-bar .billie-main, .billie-is-bar .billie-main :is(h1, h2, h3) { color: var(--b-navy); }
.billie-is-bar .is-style-billie-box { border-color: var(--b-navy); }

/* ---------- Events ---------- */
.billie-events { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 1rem; }
.billie-event {
	display: grid; grid-template-columns: 4.5rem 1fr auto; gap: 1.1rem; align-items: center;
	background: color-mix(in srgb, var(--wp--preset--color--white) 55%, transparent);
	padding: 1rem; border-left: 4px solid var(--b-accent);
}
.billie-event__date { display: flex; flex-direction: column; align-items: center; color: var(--b-accent); line-height: 1; }
.billie-event__day { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: 2.1rem; }
.billie-event__month { font-family: var(--wp--preset--font-family--condensed); font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; margin-top: 0.25rem; }
.billie-event__title { margin: 0 !important; font-size: 1.25rem !important; }
.billie-event__title a { text-decoration: none; }
.billie-event__title a:hover { text-decoration: underline; }
.billie-event__when { margin: 0.15rem 0 0; font-weight: 600; font-size: 0.9rem; opacity: 0.8; }
.billie-event__summary { margin: 0.35rem 0 0; }
.billie-event__img img { width: 7rem; height: 5rem; object-fit: cover; display: block; }
.billie-events-empty { text-align: center; font-style: italic; }
@media (max-width: 560px) {
	.billie-event { grid-template-columns: 3.5rem 1fr; }
	.billie-event__img { display: none; }
}
.billie-event-when { font-family: var(--wp--preset--font-family--condensed); font-weight: 600; font-size: var(--wp--preset--font-size--large); letter-spacing: 0.05em; text-transform: uppercase; color: var(--b-accent); margin-block-start: 0 !important; }
.billie-event__past { opacity: 0.6; text-transform: none; }

/* ---------- Footer ---------- */
.billie-footer {
	background: var(--b-navy); color: var(--b-mint);
	padding: var(--wp--preset--spacing--50) clamp(1rem, 4vw, 2rem) var(--wp--preset--spacing--30);
}
.billie-footer h3 { color: var(--b-mint); margin-block-end: 0.5rem; }
.billie-footer a { color: inherit; }
.billie-footer__credit { margin-block-start: var(--wp--preset--spacing--40) !important; opacity: 0.65; text-align: center; }
.billie-is-bar .billie-footer { background: var(--b-rose); color: var(--b-cream); }
.billie-is-bar .billie-footer h3 { color: var(--b-cream); }

/* Focus */
:where(a, button, .wp-element-button):focus-visible { outline: 3px solid var(--b-accent); outline-offset: 3px; }

/* Home: hero and hours */
.billie-main--home > .billie-hero__art { padding-inline: 1rem; }
.billie-main--home .wp-block-post-content > .alignfull:first-of-type { margin-block-start: var(--wp--preset--spacing--40); }
.billie-home-section .is-style-billie-menu td:last-child { line-height: 1.5; }

/* Keep the footer at the bottom on short pages */
.wp-site-blocks { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .billie-main { flex: 1 0 auto; }

/* Block editor: keep prices on one line while editing too */
.editor-styles-wrapper .is-style-billie-menu :is(td, th):not(:first-child) { white-space: nowrap !important; }
