/* ==========================================================
   Grand Opening — Levain & Co., Gertrude Street, Fitzroy
   Ribbon red, flour cream, chalkboard, walnut and brass; Bodoni Moda, Jost, Lora, Caveat.
   ========================================================== */
.go {
  --g-bg: #3a1414; --g-bg2: #f7efe2; --g-ink: #fdf6ea; --g-muted: rgba(253, 246, 234, 0.82);
  --g-accent: #c9a24f; --g-accent2: #f3d48a; --g-card: #fffaf1; --g-card-ink: #2b1a14;
  --g-display: 'Bodoni Moda', serif; --g-script: 'Caveat', cursive;
  --g-body: 'Lora', serif; --g-label: 'Jost', sans-serif;
  --red: #a8262a; --red-d: #7a1f1f; --cream: #f7efe2; --flour: #fffaf1; --chalk: #23292a; --walnut: #6b4423; --ink: #2b1a14;
  --vx-accent: #a8262a; --vx-accent-ink: #fff; --vx-label: #7a1f1f;
}
.go .vx-loader { background: radial-gradient(circle at 50% 35%, #6b2420, #3a1414 70%); }
.go .gr-big { font-weight: 600; letter-spacing: 0.01em; }
.go .gr-big em { font-family: var(--g-display); font-style: italic; font-weight: 400; color: var(--g-accent2); }
.go .gr-hero .vx-btn, .go-share .vx-btn { --vx-accent: var(--g-accent2); --vx-accent-ink: #3a1414; }
.go .gr-hot { height: 90px; }
.go-cutline { position: absolute; left: 0; right: 0; top: 50%; border-top: 3px dashed rgba(255, 245, 220, 0.95); filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.6)); animation: go-blink 1.4s ease-in-out infinite; }
@keyframes go-blink { 50% { opacity: 0.35; } }
.go-scissors { position: absolute; left: 0; top: 50%; width: 92px; margin: -46px 0 0 -46px; transform: rotate(-90deg); filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.6)); }
.go-now { display: inline-block; margin: 14px 0 0; padding: 8px 22px; border: 3px solid #fff; border-radius: 8px; font: 700 1.5rem var(--g-label); letter-spacing: 0.2em; text-transform: uppercase; color: #fff; background: rgba(168, 38, 42, 0.85); box-shadow: 0 0 24px rgba(255, 120, 100, 0.6), inset 0 0 12px rgba(255, 255, 255, 0.3); transform: rotate(-4deg); }

.go-k { margin: 0 0 10px; font: 600 0.9rem var(--g-label); letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); }
.go-k--light { color: var(--g-accent2); }
.go-h2 { margin: 0 0 18px; font: 600 clamp(2.1rem, 9.6vw, 2.7rem)/1.05 var(--g-display); color: var(--ink); text-wrap: balance; }
.go-h2--light { color: var(--g-ink); }
.go-p { max-width: 340px; margin: 0 auto 16px; font: 400 1.05rem/1.6 var(--g-body); color: #4f3a30; }
.go-p--small { font-size: 1rem; margin-bottom: 24px; }
.go-swipe { margin: 6px 0 0; font: 600 1.2rem var(--g-script); color: #6b4f42; }

/* ---------- the door sign ---------- */
.go-sign-sec { padding: 60px 14px 90px; text-align: center; background: var(--cream); background-image: radial-gradient(rgba(140, 100, 60, 0.08) 1px, transparent 1px); background-size: 14px 14px; }
.go-hang { position: relative; width: 280px; height: 250px; margin: 0 auto; perspective: 900px; }
.go-nail { position: absolute; left: 50%; top: 0; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff3c6, #8a6a24); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4); z-index: 2; }
.go-cord { position: absolute; left: 40px; right: 40px; top: 4px; width: 200px; height: 60px; overflow: visible; }
.go-cord path { fill: none; stroke: #6b4423; stroke-width: 3; }
.go-sign { position: absolute; left: 0; right: 0; top: 58px; height: 170px; padding: 0; border: 0; background: none; cursor: pointer; transform-style: preserve-3d; transform-origin: 50% -40px; }
.go-sign-face { position: absolute; inset: 0; display: grid; align-content: center; justify-items: center; gap: 2px; border: 6px solid #fff; border-radius: 18px; backface-visibility: hidden; -webkit-backface-visibility: hidden; box-shadow: 0 20px 30px -16px rgba(40, 20, 10, 0.6), inset 0 0 0 2px rgba(0, 0, 0, 0.1); }
.go-sign-face b { font: 700 3.4rem/1 var(--g-display); letter-spacing: 0.04em; text-transform: uppercase; }
.go-sign-face small { font: 600 1.05rem var(--g-label); letter-spacing: 0.06em; }
.go-sign-face--closed { background: #2b2422; color: #f3e7d6; }
.go-sign-face--open { background: var(--red); color: #fff; transform: rotateY(180deg); }
.go-tap { margin: 6px 0 26px; font: 600 1.25rem var(--g-script); color: var(--red); }
.go-letter { max-width: 380px; margin: 0 auto; padding: 24px 20px; border-radius: 6px; background: #fff; color: var(--ink); text-align: left; box-shadow: 0 20px 36px -24px rgba(60, 30, 10, 0.5); border-top: 6px solid var(--red); }
.go-letter-text { margin: 0 0 16px; font: 400 1.08rem/1.7 var(--g-body); }
.go-letter-when { margin: 0 0 16px; font: 400 1rem/1.5 var(--g-body); color: #5a4438; }
.go-letter-when b { display: block; font: 700 1.12rem var(--g-body); color: var(--red-d); }
.go-hours { margin: 0; padding-top: 12px; border-top: 1px dashed rgba(60, 30, 10, 0.3); }
.go-hours div { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; font: 400 1rem var(--g-body); }
.go-hours dt { font-weight: 700; }
.go-hours dd { margin: 0; text-align: right; }

/* ---------- the oven ---------- */
.go-oven-sec { padding: 86px 14px 90px; text-align: center; background: var(--red-d) radial-gradient(circle at 50% 30%, #9a3326, transparent 65%); color: var(--g-ink); }
.go-oven { position: relative; width: 300px; margin: 0 auto 36px; padding: 0 0 18px; }
.go-oven-panel { display: flex; justify-content: space-around; align-items: center; height: 64px; border-radius: 16px 16px 0 0; background: linear-gradient(180deg, #e9e2d6, #c9bfae); box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.12); }
.go-dial { position: relative; width: 40px; height: 40px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff, #b8ad9a); box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3); }
.go-dial i { position: absolute; left: 50%; top: 4px; width: 4px; height: 14px; margin-left: -2px; border-radius: 2px; background: var(--red-d); }
.go-oven-lamp { width: 14px; height: 14px; border-radius: 50%; background: #5a2a20; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6); transition: background 0.4s, box-shadow 0.4s; }
.go-oven-lamp.is-on { background: #ffb347; box-shadow: 0 0 12px 3px rgba(255, 170, 70, 0.8); }
.go-oven-door { position: relative; height: 230px; padding: 40px 24px 24px; border-radius: 0 0 16px 16px; background: linear-gradient(180deg, #f2ece2, #d8cfc0); box-shadow: 0 30px 40px -24px rgba(0, 0, 0, 0.7); }
.go-handle { position: absolute; left: 30px; right: 30px; top: 14px; height: 12px; border-radius: 6px; background: linear-gradient(180deg, #e9e9e9, #9a9a9a); box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3); }
.go-window { position: relative; height: 100%; overflow: hidden; border: 8px solid #2b2422; border-radius: 12px; background: radial-gradient(ellipse at 50% 80%, #ffb347, #a8401c 60%, #3a1410); box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.7); }
.go-loaf { position: absolute; left: 50%; bottom: 18px; width: 150px; margin-left: -75px; transform-origin: 50% 100%; }
.go-rack { position: absolute; left: 0; right: 0; bottom: 14px; height: 4px; background: repeating-linear-gradient(90deg, #555 0 6px, transparent 6px 12px); }
.go-bake { margin: 14px 0 0; font: 600 1.05rem var(--g-label); color: var(--g-accent2); }
.go-bake b { font: 600 1.3rem var(--g-display); }
.go-timer { max-width: 360px; margin: 0 auto; }
.go-timer .vx-unit { border-color: rgba(243, 212, 138, 0.4); background: rgba(0, 0, 0, 0.18); }
.go-timer .vx-unit b { color: var(--g-accent2); }
.go-timer .vx-unit > span { color: #fff; }
.go-timer .vx-btn { --vx-accent: var(--g-accent2); --vx-accent-ink: #3a1414; }
.go-timer .vx-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, 0.6); }

/* ---------- chalk menu ---------- */
.go-menu-sec { padding: 86px 12px 90px; background: #e9dfcf; }
.go-board { max-width: 390px; margin: 0 auto; padding: 28px 18px 24px; border: 14px solid var(--walnut); border-radius: 6px; background: var(--chalk) radial-gradient(ellipse at 30% 20%, rgba(255, 255, 255, 0.07), transparent 60%); box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.5), 0 26px 40px -22px rgba(40, 20, 10, 0.7); color: #f4f1e8; text-align: center; }
.go-board-title { margin: 0 0 16px; font: 700 2.6rem var(--g-script); text-shadow: 0 0 2px rgba(255, 255, 255, 0.5); }
.go-menu { margin: 0 0 16px; padding: 0; list-style: none; text-align: left; }
.go-item { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; width: 100%; padding: 10px 2px; border: 0; border-bottom: 1px dashed rgba(244, 241, 232, 0.28); background: none; color: inherit; text-align: left; cursor: pointer; clip-path: inset(0 100% 0 0); }
.go-item img { position: absolute; right: 54px; bottom: 6px; width: 96px; opacity: 0; transform: translateY(20px) scale(0.6); pointer-events: none; filter: drop-shadow(0 8px 10px rgba(0, 0, 0, 0.5)); }
.go-item-name { font: 700 1.55rem/1.1 var(--g-script); }
.go-item-name small { display: block; font: 400 0.98rem/1.4 var(--g-body); color: rgba(244, 241, 232, 0.85); }
.go-item b { font: 700 1.6rem var(--g-script); color: var(--g-accent2); }
.go-item.is-up img { opacity: 1; transform: translateY(-20px) scale(1); transition: all 0.5s cubic-bezier(0.3, 1.6, 0.4, 1); }
.go-special { margin: 0 0 10px; padding: 12px 14px; border: 2px dashed var(--g-accent2); border-radius: 10px; font: 700 1.4rem/1.25 var(--g-script); color: var(--g-accent2); }
.go-board-hint { margin: 0; font: 400 0.95rem var(--g-label); color: rgba(244, 241, 232, 0.85); }

/* ---------- the bakers on pegs ---------- */
.go-pegs-sec { padding: 86px 0 90px; text-align: center; background: var(--flour); }
.go-line { position: relative; margin: 10px 0 0; }
.go-twine { position: absolute; left: 0; right: 0; top: 18px; height: 3px; background: #a07a52; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.15); }
.go-pegs { display: flex; gap: 16px; overflow-x: auto; overflow-y: hidden; padding: 6px 16px 26px; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.go-peg { position: relative; flex: 0 0 74%; margin: 12px 0 0; padding: 10px 10px 0; background: #fff; box-shadow: 0 16px 24px -14px rgba(60, 30, 10, 0.55); transform: rotate(var(--r)); transform-origin: 50% 0; scroll-snap-align: center; }
.go-peg img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.go-peg figcaption { padding: 10px 4px 14px; font: 600 1.3rem/1.25 var(--g-script); color: var(--ink); }
.go-clip { position: absolute; left: 50%; top: -18px; width: 14px; height: 36px; margin-left: -7px; border-radius: 3px; background: linear-gradient(90deg, #c8a06a, #e2c08a 50%, #b88c54); box-shadow: 0 2px 3px rgba(0, 0, 0, 0.3); }

/* ---------- the receipt ---------- */
.go-till-sec { padding: 86px 14px 90px; text-align: center; background: #efe6d6; }
.go-till { position: relative; max-width: 330px; margin: 0 auto; }
.go-till-slot { display: block; height: 22px; margin: 0 -12px; border-radius: 10px; background: linear-gradient(180deg, #3a3330, #1c1716); box-shadow: 0 6px 10px -4px rgba(0, 0, 0, 0.5); }
.go-receipt { position: relative; margin: -8px 6px 0; padding: 26px 18px 34px; background: #fffefa; color: #222; text-align: left; box-shadow: 0 16px 24px -16px rgba(0, 0, 0, 0.5); font: 400 1rem/1.5 'Courier New', monospace; -webkit-mask: linear-gradient(#000, #000) top / 100% calc(100% - 10px) no-repeat, conic-gradient(from -45deg at bottom, transparent, #000 1deg 89deg, transparent 90deg) bottom / 16px 10px repeat-x; mask: linear-gradient(#000, #000) top / 100% calc(100% - 10px) no-repeat, conic-gradient(from -45deg at bottom, transparent, #000 1deg 89deg, transparent 90deg) bottom / 16px 10px repeat-x; transform-origin: 50% 0; }
.go-r-shop { margin: 0 0 4px; font: 700 1.4rem var(--g-display); text-align: center; }
.go-r-addr { margin: 0 0 6px; font-size: 0.95rem; text-align: center; }
.go-r-rule { margin: 4px 0; overflow: hidden; white-space: nowrap; font-size: 0.95rem; color: #555; }
.go-r-line { display: grid; grid-template-columns: 54px 1fr auto; gap: 8px; margin: 0; padding: 4px 0; font-size: 1rem; }
.go-r-line b { font-weight: 700; }
.go-r-total { font-size: 1.1rem; font-weight: 700; }
.go-r-thanks { margin: 16px 0 10px; text-align: center; font-size: 1rem; }
.go-r-bars { height: 46px; margin: 0 10px; background: repeating-linear-gradient(90deg, #111 0 2px, transparent 2px 4px, #111 4px 7px, transparent 7px 9px, #111 9px 10px, transparent 10px 13px); }

/* ---------- awning & venue ---------- */
.go-shop-sec { position: relative; padding: 120px 16px 90px; text-align: center; background: var(--cream); }
.go-awning { position: absolute; left: 0; right: 0; top: 0; height: 70px; background: repeating-linear-gradient(90deg, var(--red) 0 34px, #fff6ea 34px 68px); -webkit-mask: radial-gradient(circle 17px at 17px 70px, transparent 97%, #000) 0 0 / 34px 100%; mask: radial-gradient(circle 17px at 17px 70px, transparent 97%, #000) 0 0 / 34px 100%; box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); }
.go-shopbell { position: absolute; right: 18px; top: 74px; padding: 0; border: 0; background: none; cursor: pointer; }
.go-shopbell img { width: 90px; transform-origin: 80% 10%; }

/* ---------- loyalty card ---------- */
.go-card-sec { padding: 86px 12px 90px; background: var(--red-d) repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.03) 0 10px, transparent 10px 20px); }
.go-loyal { max-width: 390px; margin: 0 auto; padding: 0 0 22px; border-radius: 22px; background: var(--g-card); color: var(--g-card-ink); box-shadow: 0 30px 60px -24px #000; overflow: hidden; }
.go-loyal-card { padding: 26px 18px 20px; text-align: center; background: #c9a77a linear-gradient(135deg, #d9bb8e, #b8935f); color: #2b1a14; }
.go-loyal-shop { margin: 0; font: 700 2rem var(--g-display); }
.go-loyal-k { margin: 4px 0 16px; font: 600 0.95rem var(--g-label); letter-spacing: 0.04em; }
.go-stamps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; max-width: 280px; margin: 0 auto 14px; }
.go-stamp-slot { position: relative; display: grid; place-items: center; aspect-ratio: 1; border: 2px dashed rgba(43, 26, 20, 0.45); border-radius: 50%; font-size: 1.4rem; }
.go-stamp-slot i { font-style: normal; opacity: 0.25; }
.go-stamp-slot.is-stamped { border: 3px solid var(--red); background: rgba(168, 38, 42, 0.12); }
.go-stamp-slot.is-stamped i { opacity: 1; filter: sepia(1) saturate(4) hue-rotate(-20deg); }
.go-loyal-note { margin: 0; font: 600 1.05rem/1.45 var(--g-body); }
.go-loyal .vx-rsvp, .go-loyal .vx-thanks { padding: 20px 18px 0; text-align: left; }

/* ---------- order rail ---------- */
.go-rail-sec { padding: 86px 0 90px; text-align: center; background: #e4e6e6; }
.go-rail-wrap { position: relative; margin: 0 0 6px; }
.go-rail { position: absolute; left: 0; right: 0; top: 12px; height: 22px; background: linear-gradient(180deg, #f5f5f5, #9aa0a2 60%, #6a7072); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.25); }
.go-tickets { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; padding: 20px 16px 26px; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.go-ticket { flex: 0 0 62%; padding: 18px 14px 18px; background: #fffef6; color: #222; text-align: left; box-shadow: 0 12px 18px -10px rgba(0, 0, 0, 0.45); transform: rotate(var(--r)); transform-origin: 50% 0; scroll-snap-align: center; -webkit-mask: linear-gradient(#000, #000) top / 100% calc(100% - 8px) no-repeat, conic-gradient(from -45deg at bottom, transparent, #000 1deg 89deg, transparent 90deg) bottom / 12px 8px repeat-x; mask: linear-gradient(#000, #000) top / 100% calc(100% - 8px) no-repeat, conic-gradient(from -45deg at bottom, transparent, #000 1deg 89deg, transparent 90deg) bottom / 12px 8px repeat-x; }
.go-ticket-no { margin: 0 0 8px; padding-bottom: 6px; border-bottom: 2px solid #222; font: 700 1rem 'Courier New', monospace; }
.go-ticket-msg { margin: 0 0 10px; font: 600 1.3rem/1.25 var(--g-script); color: #1d3a8a; }
.go-ticket-from { margin: 0; font: 700 0.98rem 'Courier New', monospace; }
.go-rail-sec .vx-form, .go-rail-sec form { margin-left: 14px; margin-right: 14px; }

/* ---------- the bell ---------- */
.go-end-sec { background: #3a1414; }
.go-end { position: relative; min-height: 100svh; padding: 100px 16px 60px; overflow: hidden; text-align: center; color: #fff; }
.go-end-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.go-end::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(40, 14, 10, 0.75), rgba(40, 14, 10, 0.35) 45%, rgba(40, 14, 10, 0.85)); }
.go-end > :not(.go-end-bg) { position: relative; z-index: 2; }
.go-bigbell { display: block; margin: 0 auto 20px; padding: 0; border: 0; background: none; cursor: pointer; }
.go-bigbell img { width: 170px; transform-origin: 80% 10%; filter: drop-shadow(0 14px 20px rgba(0, 0, 0, 0.6)); }
.go-end-big { margin: 0 0 12px; font: 600 clamp(2.3rem, 10.5vw, 3rem)/1.05 var(--g-display); text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6), 0 4px 24px rgba(0, 0, 0, 0.6); }
.go-end-big em { display: block; font-weight: 400; color: var(--g-accent2); }
.go-end-date { display: inline-block; margin: 0 0 14px; padding: 9px 18px; border-radius: 18px; background: rgba(40, 14, 10, 0.6); border: 1px solid rgba(243, 212, 138, 0.55); font: 600 1rem var(--g-label); }
.go-end-count { margin: 0; font: 600 1rem var(--g-label); }
.go-end-count b { font: 600 1.5rem var(--g-display); color: var(--g-accent2); }
.go-share { padding: 40px 16px 120px; text-align: center; color: var(--g-ink); }
