:root { --ink: #08121c; --ink-soft: #0e1d2b; --navy: #12283b; --navy-light: #1c3a50; --gold: #c8973b; --gold-light: #e1b75e; --cream: #f3eedf; --paper: #faf7ef; --white: #ffffff; --muted: #9cabb5; --line: rgba(255, 255, 255, 0.12); --line-dark: #d8d6ce; --success: #2e936a; --warning: #d29136; --danger: #b94c4c; --shadow: 0 20px 50px rgba(2, 9, 15, 0.18); --radius: 4px; --radius-large: 10px; --font-display: "Barlow Condensed", Impact, sans-serif; --font-body: "Inter", Arial, sans-serif; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-body); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; } body.store-body { background-image: radial-gradient(circle at 0 0, rgba(200, 151, 59, 0.06), transparent 28%), linear-gradient(rgba(8, 18, 28, 0.018) 1px, transparent 1px); background-size: auto, 100% 22px; } a { color: inherit; text-decoration: none; } button, input, select, textarea { font: inherit; } button, select { cursor: pointer; } img { max-width: 100%; } h1, h2, h3, p { margin-top: 0; } h1, h2, h3 { font-family: var(--font-display); line-height: 0.98; } h1 { font-size: clamp(3rem, 7vw, 6.8rem); letter-spacing: -0.035em; text-transform: uppercase; } h2 { font-size: clamp(2rem, 4vw, 3.7rem); letter-spacing: -0.025em; } h3 { font-size: 1.45rem; letter-spacing: -0.01em; } .container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; } .narrow-container { width: min(540px, calc(100% - 40px)); margin-inline: auto; } .section { padding-block: 88px; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .skip-link { position: fixed; z-index: 9999; left: 12px; top: -100px; padding: 10px 16px; color: var(--ink); background: var(--gold-light); } .skip-link:focus { top: 12px; } .eyebrow { display: block; color: var(--gold); font-family: var(--font-display); font-size: 0.82rem; font-weight: 800; letter-spacing: 0.17em; line-height: 1.2; text-transform: uppercase; } .button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 8px; padding: 10px 20px; border: 1px solid var(--gold); border-radius: var(--radius); color: var(--ink); background: var(--gold); font-family: var(--font-display); font-size: 0.95rem; font-weight: 800; letter-spacing: 0.06em; line-height: 1; text-transform: uppercase; transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease; } .button:hover { color: var(--ink); background: var(--gold-light); border-color: var(--gold-light); transform: translateY(-1px); } .button:disabled { cursor: not-allowed; opacity: 0.45; transform: none; } .button-small { min-height: 38px; padding: 8px 14px; font-size: 0.8rem; } .button-large { min-height: 56px; padding: 15px 25px; font-size: 1rem; } .button-block { width: 100%; } .button-outline { color: var(--ink); background: transparent; border-color: var(--ink); } .button-outline:hover { color: var(--cream); background: var(--ink); border-color: var(--ink); } .button-ghost { color: inherit; background: transparent; border-color: currentColor; } .button-light { color: var(--ink); background: var(--cream); border-color: var(--cream); } .button-danger { color: var(--white); background: var(--danger); border-color: var(--danger); } .text-link { display: inline-flex; align-items: center; color: inherit; font-weight: 700; border-bottom: 1px solid currentColor; } .text-center { justify-content: center; text-align: center; } .announcement { display: flex; min-height: 34px; align-items: center; justify-content: center; gap: 30px; padding: 6px 20px; color: var(--ink); background: var(--gold); font-family: var(--font-display); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; } .announcement-detail { opacity: 0.72; } .site-header { position: relative; z-index: 50; color: var(--cream); background: rgba(8, 18, 28, 0.98); border-bottom: 1px solid var(--line); } .nav-wrap { display: flex; min-height: 84px; align-items: center; justify-content: space-between; gap: 30px; } .brand, .admin-brand { display: flex; align-items: center; gap: 12px; } .brand-mark { display: grid; width: 48px; height: 48px; place-items: center; color: var(--ink); background: var(--gold); border: 2px solid var(--gold-light); border-radius: 50%; box-shadow: inset 0 0 0 4px var(--ink); font-family: var(--font-display); font-size: 1rem; font-weight: 800; letter-spacing: 0.02em; } .brand-copy, .admin-brand > span:last-child { display: flex; flex-direction: column; } .brand-copy strong, .admin-brand strong { font-family: var(--font-display); font-size: 1.35rem; letter-spacing: 0.03em; line-height: 1; text-transform: uppercase; } .brand-copy small, .admin-brand small { margin-top: 5px; color: var(--muted); font-size: 0.62rem; letter-spacing: 0.13em; line-height: 1; text-transform: uppercase; } .site-nav { display: flex; align-items: center; gap: 26px; font-family: var(--font-display); font-size: 0.9rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; } .site-nav > a { position: relative; padding-block: 30px; } .site-nav > a:not(.cart-link)::after { position: absolute; right: 0; bottom: 20px; left: 0; height: 2px; background: var(--gold); content: ""; transform: scaleX(0); transition: transform 160ms ease; } .site-nav > a:hover::after, .site-nav > a.is-active::after { transform: scaleX(1); } .cart-link { display: flex; min-height: 42px; align-items: center; gap: 10px; padding: 10px 14px !important; border: 1px solid var(--gold); border-radius: var(--radius); } .cart-count { display: grid; min-width: 22px; height: 22px; place-items: center; color: var(--ink); background: var(--gold); border-radius: 50%; font-family: var(--font-body); font-size: 0.7rem; } .nav-toggle { display: none; width: 46px; height: 42px; padding: 9px; border: 1px solid var(--line); background: transparent; } .nav-toggle span:not(.sr-only) { display: block; height: 2px; margin: 4px 0; background: var(--cream); } .hero { position: relative; min-height: 690px; overflow: hidden; color: var(--cream); background: linear-gradient(108deg, rgba(8, 18, 28, 0.98) 0%, rgba(12, 30, 43, 0.96) 52%, rgba(16, 42, 58, 0.9) 100%); } .hero::after { position: absolute; right: -10%; bottom: -38%; width: 60%; aspect-ratio: 1; border: 1px solid rgba(200, 151, 59, 0.16); border-radius: 50%; content: ""; box-shadow: 0 0 0 80px rgba(200, 151, 59, 0.03), 0 0 0 160px rgba(200, 151, 59, 0.025); } .hero-texture { position: absolute; inset: 0; opacity: 0.42; background-image: linear-gradient(130deg, transparent 0 49%, rgba(255, 255, 255, 0.025) 50% 51%, transparent 52%), repeating-linear-gradient(0deg, transparent 0 7px, rgba(255, 255, 255, 0.018) 8px); background-size: 90px 90px, auto; } .hero-grid { position: relative; z-index: 2; display: grid; min-height: 690px; grid-template-columns: 1.02fr 0.98fr; align-items: center; gap: 40px; } .hero-copy { padding-block: 80px; } .hero h1 { max-width: 700px; margin: 18px 0 24px; } .hero h1 em { color: var(--gold); font-style: normal; } .hero-copy > p { max-width: 620px; color: #c8d0d4; font-size: 1.08rem; } .hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 34px; } .hero-meta { display: flex; gap: 28px; margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--line); color: #aebac0; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; } .hero-meta span::before { display: inline-block; width: 7px; height: 7px; margin-right: 9px; background: var(--gold); border-radius: 50%; content: ""; } .hero-plate { position: relative; display: grid; min-height: 560px; place-items: center; } .plate-ring { display: grid; width: min(470px, 40vw); aspect-ratio: 1; place-items: center; border: 2px solid rgba(225, 183, 94, 0.35); border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, 0.11) 0 52%, rgba(255, 255, 255, 0.03) 53% 65%, transparent 66%), linear-gradient(145deg, rgba(255, 255, 255, 0.08), transparent 65%); box-shadow: 0 45px 90px rgba(0, 0, 0, 0.35); transform: rotate(-6deg); } .burger { position: relative; width: 74%; height: 250px; filter: drop-shadow(0 28px 20px rgba(0, 0, 0, 0.32)); } .burger > span { position: absolute; right: 5%; left: 5%; display: block; border-radius: 50%; } .bun { height: 67px; background: radial-gradient(ellipse at 25% 25%, #f4db8f 0 3px, transparent 4px), radial-gradient(ellipse at 60% 16%, #f4db8f 0 3px, transparent 4px), radial-gradient(ellipse at 78% 34%, #f4db8f 0 2px, transparent 3px), linear-gradient(#c98530, #e6ad4e); } .bun-top { top: 8px; height: 88px; border-radius: 60% 60% 35% 35%; } .bun-bottom { bottom: 8px; border-radius: 35% 35% 50% 50%; } .patty { top: 108px; height: 43px; background: linear-gradient(#4d2118, #24100d); box-shadow: inset 0 8px 0 rgba(255, 255, 255, 0.06); } .patty-two { top: 158px; } .lettuce { top: 91px; z-index: 2; height: 26px; background: #688c35; clip-path: polygon(0 25%, 10% 0, 20% 35%, 30% 5%, 42% 42%, 55% 2%, 68% 35%, 79% 0, 90% 35%, 100% 10%, 97% 75%, 0 80%); } .cheese { top: 135px; z-index: 2; height: 35px; background: #e6b83e; clip-path: polygon(3% 0, 97% 0, 91% 60%, 66% 54%, 52% 100%, 38% 52%, 10% 70%); } .onion { top: 151px; z-index: 3; height: 12px; border: 4px solid #cba8c5; background: transparent; } .hero-stamp { position: absolute; right: 4%; bottom: 9%; display: grid; width: 120px; height: 120px; place-content: center; text-align: center; color: var(--gold); border: 2px solid var(--gold); border-radius: 50%; transform: rotate(8deg); } .hero-stamp strong { font-family: var(--font-display); font-size: 2.4rem; line-height: 0.8; } .hero-stamp span { font-size: 0.57rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; } .section-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 36px; } .section-heading h2 { margin: 8px 0 0; } .section-heading > p { max-width: 430px; margin-bottom: 8px; color: #5b6670; } .specials-section { color: var(--cream); background: var(--navy); } .special-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; } .special-count-1 { grid-template-columns: minmax(0, 1fr); } .special-card { position: relative; min-height: 250px; padding: 30px; overflow: hidden; color: var(--cream); background: linear-gradient(145deg, rgba(255, 255, 255, 0.07), transparent 58%), var(--ink-soft); border: 1px solid rgba(200, 151, 59, 0.28); border-radius: var(--radius); } .special-card::after { position: absolute; right: -70px; bottom: -70px; width: 170px; height: 170px; border: 1px solid rgba(200, 151, 59, 0.22); border-radius: 50%; content: ""; } .special-badge, .card-badge { display: inline-block; padding: 5px 9px; color: var(--ink); background: var(--gold); border-radius: 2px; font-family: var(--font-display); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.09em; line-height: 1; text-transform: uppercase; } .special-card h3 { margin: 40px 0 12px; font-size: 2rem; text-transform: uppercase; } .special-card p { max-width: 420px; color: #b9c2c8; } .special-footer { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 24px; } .special-footer > strong { color: var(--gold-light); font-family: var(--font-display); font-size: 1.9rem; } .menu-preview { background: var(--paper); } .menu-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } .menu-card { min-width: 0; overflow: hidden; background: var(--white); border: 1px solid #dedcd4; border-radius: var(--radius-large); box-shadow: 0 8px 28px rgba(8, 18, 28, 0.06); transition: transform 160ms ease, box-shadow 160ms ease; } .menu-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); } .menu-card-art { position: relative; display: grid; height: 185px; place-items: center; overflow: hidden; color: rgba(225, 183, 94, 0.92); background: radial-gradient(circle at 70% 20%, rgba(200, 151, 59, 0.18), transparent 25%), repeating-linear-gradient(135deg, transparent 0 10px, rgba(255, 255, 255, 0.025) 11px 12px), var(--navy); background-position: center; background-size: cover; font-family: var(--font-display); font-size: 4.4rem; font-weight: 800; letter-spacing: -0.06em; } .menu-card-art::after { position: absolute; width: 150px; height: 150px; border: 1px solid rgba(200, 151, 59, 0.24); border-radius: 50%; content: ""; } .menu-card-art.has-image::after { inset: 0; width: auto; height: auto; border: 0; border-radius: 0; background: linear-gradient(transparent, rgba(8, 18, 28, 0.28)); } .menu-card-art > span:first-child { position: relative; z-index: 2; } .menu-card-art .card-badge { position: absolute; z-index: 3; top: 14px; left: 14px; font-size: 0.65rem; } .menu-card-body { padding: 22px; } .menu-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; } .menu-card-heading h3 { margin-bottom: 0; text-transform: uppercase; } .menu-card-heading > strong { color: #8e6422; white-space: nowrap; } .menu-card-body > p { min-height: 50px; margin: 12px 0 16px; color: #68737a; font-size: 0.86rem; line-height: 1.5; } .tag-list { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; } .tag-list span { padding: 3px 8px; color: #5f6b72; background: #f0eee8; border-radius: 20px; font-size: 0.65rem; font-weight: 600; } .quick-add { display: grid; grid-template-columns: 62px 1fr; gap: 8px; } .quick-add select { width: 100%; height: 38px; padding-inline: 10px; border: 1px solid #cbc9c1; border-radius: var(--radius); background: var(--white); } .category-band { padding-block: 55px; color: var(--cream); background: var(--ink); } .category-links { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 22px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); } .category-links a { display: flex; min-height: 115px; flex-direction: column; justify-content: flex-end; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background 160ms ease; } .category-links a:hover { background: var(--navy); } .category-links strong { font-family: var(--font-display); font-size: 1.2rem; text-transform: uppercase; } .category-links span { margin-top: 5px; color: var(--muted); font-size: 0.7rem; text-transform: uppercase; } .story-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 80px; } .story-grid h2 { margin: 12px 0 22px; text-transform: uppercase; } .story-grid p { margin-bottom: 30px; color: #5e6970; font-size: 1.05rem; } .story-art { position: relative; display: grid; min-height: 410px; place-items: center; overflow: hidden; color: var(--gold); background: var(--navy); } .story-number { position: relative; z-index: 2; font-family: var(--font-display); font-size: clamp(4rem, 9vw, 8.5rem); font-weight: 800; letter-spacing: -0.07em; } .mountain-lines { position: absolute; right: -8%; bottom: -18%; left: -8%; height: 70%; border-top: 1px solid rgba(225, 183, 94, 0.5); transform: skewY(-13deg); box-shadow: 0 -32px 0 -31px rgba(225, 183, 94, 0.5), 0 -64px 0 -63px rgba(225, 183, 94, 0.45), 0 -96px 0 -95px rgba(225, 183, 94, 0.38), 0 -128px 0 -127px rgba(225, 183, 94, 0.3); } .page-hero { padding-block: 72px; color: var(--cream); background: radial-gradient(circle at 80% 0, rgba(200, 151, 59, 0.18), transparent 30%), var(--navy); } .page-hero-compact { padding-block: 54px; } .page-hero h1 { margin: 12px 0 0; font-size: clamp(3.3rem, 7vw, 5.5rem); } .page-hero p { margin-bottom: 0; color: #b9c4ca; } .page-hero-inner { display: grid; grid-template-columns: 1fr minmax(340px, 0.55fr); align-items: end; gap: 70px; } .menu-search label { display: block; margin-bottom: 8px; color: #c3cbd0; font-size: 0.76rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .search-row { display: grid; grid-template-columns: 1fr auto; } .search-row input { min-width: 0; border-radius: var(--radius) 0 0 var(--radius); } .search-row .button { border-radius: 0 var(--radius) var(--radius) 0; } .category-jump { position: sticky; z-index: 30; top: 0; overflow-x: auto; color: var(--cream); background: var(--ink); border-top: 1px solid var(--line); } .category-jump .container { display: flex; gap: 32px; } .category-jump a { flex: 0 0 auto; padding-block: 16px; font-family: var(--font-display); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .category-jump a:hover { color: var(--gold); } .menu-category { scroll-margin-top: 65px; margin-bottom: 86px; } .menu-category:last-child { margin-bottom: 0; } .menu-category-heading { display: grid; grid-template-columns: 1fr minmax(280px, 0.48fr); align-items: end; gap: 40px; margin-bottom: 28px; padding-bottom: 20px; border-bottom: 2px solid var(--ink); } .menu-category-heading > div { display: flex; align-items: baseline; gap: 15px; } .menu-category-heading h2 { margin-bottom: 0; font-size: 3rem; text-transform: uppercase; } .menu-category-heading p { margin-bottom: 4px; color: #667077; } .category-index { color: var(--gold); font-family: var(--font-display); font-weight: 800; } .checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 34px; } .checkout-main { min-width: 0; } .panel, .admin-panel { padding: 30px; background: var(--white); border: 1px solid #dcdbd4; border-radius: var(--radius-large); box-shadow: 0 8px 25px rgba(8, 18, 28, 0.05); } .order-summary { position: sticky; top: 25px; padding: 28px; color: var(--cream); background: var(--navy); border-radius: var(--radius-large); box-shadow: var(--shadow); } .order-summary h2 { margin: 10px 0 22px; font-size: 2.4rem; } .order-summary dl { margin: 20px 0; } .order-summary dl > div { display: flex; justify-content: space-between; gap: 15px; padding-block: 8px; color: #b9c3c9; font-size: 0.84rem; } .order-summary dd { margin: 0; text-align: right; } .order-summary .summary-total { margin-top: 12px; padding-top: 18px; color: var(--cream); border-top: 1px solid var(--line); font-family: var(--font-display); font-size: 1.4rem; font-weight: 800; text-transform: uppercase; } .summary-note { margin: 15px 0 0; color: var(--muted); font-size: 0.72rem; text-align: center; } .cart-list { overflow: hidden; background: var(--white); border: 1px solid #dcdbd4; border-radius: var(--radius-large); } .cart-item { display: grid; grid-template-columns: 72px minmax(0, 1fr) 80px 90px 36px; align-items: center; gap: 18px; padding: 22px; border-bottom: 1px solid #e5e3db; } .cart-item:last-child { border-bottom: 0; } .cart-item-mark, .item-avatar { display: grid; width: 56px; height: 56px; place-items: center; color: var(--gold); background: var(--navy); border-radius: 50%; font-family: var(--font-display); font-size: 1.05rem; font-weight: 800; } .cart-item-copy h2 { margin-bottom: 4px; font-size: 1.35rem; text-transform: uppercase; } .cart-item-copy p, .cart-item-copy span { margin: 0; color: #758088; font-size: 0.76rem; } .quantity-field span { display: block; color: #7a8389; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; } .quantity-field input { width: 70px; } .cart-line-total { text-align: right; } .icon-button { width: 32px; height: 32px; padding: 0; color: #8d5353; background: transparent; border: 1px solid #d9c3c3; border-radius: 50%; font-size: 1.2rem; } .cart-actions { display: flex; align-items: center; justify-content: space-between; margin-top: 22px; } .form-stack { display: flex; flex-direction: column; gap: 20px; } .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; } .form-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .field-wide { grid-column: 1 / -1; } label { color: #3d4951; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.03em; } input, select, textarea { width: 100%; min-height: 46px; padding: 10px 12px; color: var(--ink); background: var(--white); border: 1px solid #c9c9c3; border-radius: var(--radius); outline: 0; transition: border-color 150ms ease, box-shadow 150ms ease; } textarea { min-height: 90px; resize: vertical; } label > input, label > select, label > textarea { display: block; margin-top: 7px; } input:focus, select:focus, textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(200, 151, 59, 0.15); } .form-section { padding-bottom: 28px; border-bottom: 1px solid #e2e0d8; } .form-section:last-of-type { padding-bottom: 0; border: 0; } .form-section-heading { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; } .form-section-heading > span { display: grid; width: 35px; height: 35px; flex: 0 0 auto; place-items: center; color: var(--ink); background: var(--gold); border-radius: 50%; font-family: var(--font-display); font-weight: 800; } .form-section-heading h2 { margin-bottom: 3px; font-size: 1.7rem; text-transform: uppercase; } .form-section-heading p { margin: 0; color: #778188; font-size: 0.77rem; } .square-card { min-height: 90px; padding: 16px; border: 1px solid #d1d0c8; border-radius: var(--radius); } .field-error { margin-top: 8px; color: var(--danger); font-size: 0.8rem; } .demo-payment { display: flex; align-items: center; gap: 15px; padding: 18px; background: #f0eee7; border: 1px dashed #b7b3a7; border-radius: var(--radius); } .demo-payment-mark { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; color: var(--cream); background: var(--navy); border-radius: 50%; font-family: var(--font-display); font-weight: 800; } .demo-payment p { margin: 2px 0 0; color: #6d777d; font-size: 0.75rem; } .mini-order-list { padding-block: 15px; border-bottom: 1px solid var(--line); } .mini-order-list > div { display: flex; justify-content: space-between; gap: 14px; padding-block: 7px; font-size: 0.8rem; } .mini-order-list b { color: var(--gold-light); } .empty-state { padding: 70px 25px; text-align: center; background: var(--white); border: 1px dashed #c5c2b7; border-radius: var(--radius-large); } .empty-state h2 { text-transform: uppercase; } .empty-state p { color: #6f797f; } .empty-state.compact { padding: 35px 20px; } .confirmation-section { min-height: 690px; color: var(--cream); background: radial-gradient(circle at 50% 0, rgba(200, 151, 59, 0.17), transparent 34%), var(--ink); } .confirmation-card { max-width: 780px; text-align: center; } .confirmation-mark { display: grid; width: 80px; height: 80px; margin: 0 auto 25px; place-items: center; color: var(--ink); background: var(--gold); border-radius: 50%; font-size: 2.3rem; font-weight: 800; } .confirmation-card h1 { margin: 16px 0 20px; font-size: clamp(3rem, 7vw, 5.5rem); } .confirmation-card > p { color: #bdc6cb; } .confirmation-details { display: grid; grid-template-columns: repeat(3, 1fr); margin-block: 40px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } .confirmation-details div { display: flex; min-height: 110px; flex-direction: column; justify-content: center; padding: 15px; border-right: 1px solid var(--line); } .confirmation-details div:last-child { border: 0; } .confirmation-details span { color: var(--muted); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .confirmation-items { max-width: 480px; margin-inline: auto; } .confirmation-items > div { display: flex; justify-content: space-between; padding-block: 8px; } .confirmation-actions { display: flex; justify-content: center; gap: 12px; margin-top: 35px; } .confirmation-actions .button-outline { color: var(--cream); border-color: var(--cream); } .auth-section { min-height: 710px; background: linear-gradient(90deg, rgba(8, 18, 28, 0.95), rgba(8, 18, 28, 0.87)), repeating-linear-gradient(135deg, var(--navy) 0 10px, var(--ink) 11px 12px); } .auth-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(440px, 0.65fr); align-items: center; gap: 100px; } .auth-grid-wide { grid-template-columns: minmax(0, 0.65fr) minmax(520px, 0.85fr); } .auth-intro { color: var(--cream); } .auth-intro h1 { margin: 16px 0 25px; } .auth-intro > p { max-width: 520px; color: #b7c1c6; font-size: 1.05rem; } .auth-callout { display: flex; flex-direction: column; margin-top: 40px; padding: 20px; border-left: 3px solid var(--gold); background: rgba(255, 255, 255, 0.04); } .auth-callout span { color: var(--muted); font-size: 0.8rem; } .auth-card { padding: 34px; background: var(--paper); border-radius: var(--radius-large); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35); } .auth-card h1, .auth-card h2 { margin: 8px 0 0; font-size: 2.4rem; text-transform: uppercase; } .auth-switch, .form-footnote { margin: 0; color: #717b81; font-size: 0.75rem; text-align: center; } .auth-switch a { color: #8c621d; font-weight: 700; } .honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; } .check-list { padding: 0; margin: 35px 0 0; list-style: none; } .check-list li { padding: 10px 0 10px 28px; color: #c2cbd0; border-bottom: 1px solid var(--line); } .check-list li::before { margin-left: -28px; margin-right: 12px; color: var(--gold); content: "✓"; } .verification-icon { display: grid; width: 68px; height: 68px; margin-inline: auto; place-items: center; color: var(--ink); background: var(--gold); border-radius: 50%; font-family: var(--font-display); font-size: 2rem; font-weight: 800; } .verify-card { text-align: center; } .code-input { min-height: 62px; font-family: var(--font-display); font-size: 2rem; font-weight: 800; letter-spacing: 0.35em; text-align: center; } .notice { padding: 13px 15px; color: #58646b; background: #f0eee7; border-left: 3px solid var(--gold); border-radius: 0 var(--radius) var(--radius) 0; font-size: 0.76rem; } .notice-error { color: #783b3b; background: #f7e6e6; border-color: var(--danger); } .check-control { display: flex; align-items: flex-start; gap: 11px; padding: 14px; background: #f4f2eb; border: 1px solid #ddd9ce; border-radius: var(--radius); } .check-control input { width: 18px; min-height: 18px; margin: 2px 0 0; } .check-control span { display: flex; flex-direction: column; } .check-control small { margin-top: 2px; color: #7a8388; font-weight: 400; } .check-control.compact { align-items: center; align-self: end; padding: 10px 12px; } .account-password { padding: 14px; background: #f4f2eb; border: 1px solid #ddd9ce; border-radius: var(--radius); } .account-password > summary { cursor: pointer; font-size: 0.78rem; font-weight: 700; } .account-password[open] > summary { margin-bottom: 16px; } .account-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr); align-items: start; gap: 28px; } .panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 25px; } .panel-heading h2 { margin: 7px 0 0; font-size: 2rem; text-transform: uppercase; } .account-email { color: #737c82; font-size: 0.75rem; } .order-history article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 14px; padding-block: 16px; border-bottom: 1px solid #e2e0d9; } .order-history article:last-child { border: 0; } .order-history article > div { display: flex; flex-direction: column; } .order-history article > div span { color: #7b8489; font-size: 0.7rem; } .status-pill, .role-badge, .count-badge { display: inline-flex; width: fit-content; align-items: center; padding: 4px 9px; color: #44515a; background: #e8e8e3; border-radius: 20px; font-size: 0.65rem; font-weight: 700; line-height: 1.2; text-transform: uppercase; white-space: nowrap; } .status-paid, .status-completed, .status-ready { color: #246449; background: #ddefe6; } .status-preparing { color: #765417; background: #f5e8c9; } .status-cancelled, .status-refunded { color: #7d3f3f; background: #f5dddd; } .status-partially_refunded { color: #80511d; background: #f5e6d2; } .flash-wrap, .admin-flash-wrap { position: fixed; z-index: 100; top: 115px; right: 20px; width: min(420px, calc(100% - 40px)); } .admin-flash-wrap { top: 20px; } .flash { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 8px; padding: 14px 16px; color: var(--white); background: var(--navy); border-left: 4px solid var(--gold); border-radius: var(--radius); box-shadow: var(--shadow); font-size: 0.8rem; } .flash-success { border-color: var(--success); } .flash-error { border-color: var(--danger); } .flash-warning { border-color: var(--warning); } .flash-close { padding: 0; color: currentColor; background: transparent; border: 0; font-size: 1.2rem; line-height: 1; } .site-footer { padding-top: 68px; color: #b6c0c6; background: #050c12; } .footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 50px; padding-bottom: 50px; } .footer-brand { color: var(--cream); font-family: var(--font-display); font-size: 2rem; font-weight: 800; text-transform: uppercase; } .footer-grid h2 { margin-bottom: 14px; color: var(--gold); font-size: 0.88rem; letter-spacing: 0.1em; text-transform: uppercase; } .footer-grid p, .footer-grid address, .footer-grid a { display: block; margin: 0 0 6px; font-size: 0.8rem; font-style: normal; } .footer-bottom { display: flex; justify-content: space-between; padding-block: 18px; color: #6e7a81; border-top: 1px solid var(--line); font-size: 0.68rem; text-transform: uppercase; } /* Dashboard */ .admin-body { color: #dbe2e6; background: #08121c; } .admin-shell { display: grid; min-height: 100vh; grid-template-columns: 250px minmax(0, 1fr); } .admin-sidebar { position: sticky; top: 0; display: flex; height: 100vh; flex-direction: column; padding: 26px 18px 20px; background: #06101a; border-right: 1px solid var(--line); } .admin-brand { min-height: 62px; padding: 0 8px 22px; color: var(--cream); border-bottom: 1px solid var(--line); } .admin-brand .brand-mark { width: 42px; height: 42px; } .admin-nav { display: flex; flex-direction: column; gap: 4px; padding-block: 28px; } .admin-nav a { padding: 11px 13px; color: #90a0aa; border-radius: var(--radius); font-family: var(--font-display); font-size: 0.86rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; } .admin-nav a:hover, .admin-nav a.is-active { color: var(--cream); background: var(--navy); } .admin-nav a.is-active { box-shadow: inset 3px 0 var(--gold); } .admin-user { display: flex; align-items: center; gap: 10px; padding: 16px 8px 0; margin-top: auto; border-top: 1px solid var(--line); } .avatar { display: grid; width: 36px; height: 36px; flex: 0 0 auto; place-items: center; color: var(--ink); background: var(--gold); border-radius: 50%; font-family: var(--font-display); font-weight: 800; } .admin-user > span:last-child { display: flex; min-width: 0; flex-direction: column; } .admin-user strong { overflow: hidden; font-size: 0.75rem; text-overflow: ellipsis; white-space: nowrap; } .admin-user small { color: var(--muted); font-size: 0.65rem; } .admin-content { min-width: 0; } .admin-topbar { display: flex; min-height: 106px; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 34px; background: var(--ink-soft); border-bottom: 1px solid var(--line); } .admin-topbar h1 { margin: 5px 0 0; font-size: 2.35rem; letter-spacing: -0.015em; } .admin-top-actions { display: flex; align-items: center; gap: 9px; } .admin-main { padding: 30px 34px 60px; } .admin-body .button-outline { color: #d9e0e4; border-color: #71818c; } .admin-body .button-outline:hover { color: var(--ink); background: var(--gold); border-color: var(--gold); } .admin-body .admin-panel { color: #dbe2e6; background: #0e1c28; border-color: var(--line); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.14); } .admin-body label { color: #aebbc3; } .admin-body input, .admin-body select, .admin-body textarea { color: #e5eaed; background: #08141f; border-color: #304251; } .admin-body input:disabled { color: #788792; background: #0b1721; } .admin-body .notice, .admin-body .check-control { color: #aebbc3; background: #0a1722; border-color: #283b49; } .admin-body .check-control small, .admin-body .muted { color: #82919b; } .stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; } .stat-card { display: flex; min-height: 150px; flex-direction: column; justify-content: center; padding: 22px; background: #0e1c28; border: 1px solid var(--line); border-radius: var(--radius-large); } .stat-card span { color: #91a1aa; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .stat-card strong { margin: 8px 0 2px; color: var(--cream); font-family: var(--font-display); font-size: 2.6rem; line-height: 1; } .stat-card small { color: #73848f; font-size: 0.68rem; } .stat-card.stat-primary { background: linear-gradient(135deg, rgba(200, 151, 59, 0.2), transparent 72%), var(--navy); border-color: rgba(200, 151, 59, 0.35); } .stat-card.stat-primary strong { color: var(--gold-light); } .admin-dashboard-grid { display: grid; grid-template-columns: 1.45fr 0.75fr; gap: 20px; } .admin-panel-wide { grid-row: span 2; } .admin-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; } .admin-panel-heading h2 { margin: 5px 0 0; font-size: 1.55rem; text-transform: uppercase; } .table-wrap { overflow-x: auto; margin: 0 -30px -30px; } table { width: 100%; border-collapse: collapse; } th, td { padding: 14px 18px; text-align: left; border-top: 1px solid var(--line); } th { color: #7f909a; font-size: 0.64rem; letter-spacing: 0.08em; text-transform: uppercase; } td { color: #cbd3d8; font-size: 0.76rem; } td a { color: var(--gold-light); font-weight: 700; } td small { display: block; color: #74848e; font-size: 0.65rem; } .empty-cell { padding: 35px; text-align: center; } .bar-chart { display: flex; min-height: 180px; align-items: end; justify-content: center; gap: 12px; padding-top: 25px; } .bar-chart > div { display: flex; flex: 1; flex-direction: column; align-items: center; gap: 5px; } .bar-chart i { display: block; width: 100%; max-width: 30px; background: linear-gradient(var(--gold-light), var(--gold)); border-radius: 3px 3px 0 0; } .bar-chart small, .bar-value { color: #7e8d96; font-size: 0.58rem; font-style: normal; } .rank-list > div { display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding-block: 11px; border-bottom: 1px solid var(--line); } .rank-list > div > span { color: var(--gold); font-family: var(--font-display); font-weight: 800; } .rank-list strong { font-size: 0.77rem; } .rank-list small { grid-column: 2; color: #71818c; font-size: 0.62rem; } .rank-list b { grid-column: 3; grid-row: 1 / span 2; color: #9faeb6; font-size: 0.72rem; } .admin-toolbar, .admin-page-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; } .admin-page-actions { margin-bottom: 20px; } .admin-page-actions p { margin: 0; color: #91a0aa; font-size: 0.78rem; } .admin-security-notice { margin: -4px 0 22px; } .admin-security-notice a { color: var(--gold-light); font-weight: 700; text-decoration: underline; } .admin-filters { display: flex; flex: 1; gap: 8px; } .admin-filters input { max-width: 330px; } .admin-filters select { max-width: 180px; } .detail-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; } .back-link { color: #93a2ab; font-size: 0.72rem; } .detail-title-row { display: flex; align-items: center; gap: 14px; } .detail-title-row h2 { margin: 8px 0 0; font-size: 2.4rem; } .detail-heading p { margin: 4px 0 0; color: #778892; font-size: 0.72rem; } .detail-total { color: var(--gold-light); font-family: var(--font-display); font-size: 2rem; } .admin-detail-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.6fr); align-items: start; gap: 20px; } .admin-detail-grid > div, .admin-detail-grid > aside { display: flex; min-width: 0; flex-direction: column; gap: 20px; } .order-item-list > div { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 12px; padding-block: 13px; border-bottom: 1px solid var(--line); } .item-quantity { color: var(--gold); font-family: var(--font-display); font-weight: 800; } .order-item-list small { display: block; color: #7f8e97; } .admin-totals { max-width: 300px; margin: 20px 0 0 auto; } .admin-totals div { display: flex; justify-content: space-between; padding-block: 4px; color: #9baab3; } .admin-totals div:last-child { margin-top: 6px; padding-top: 10px; color: var(--cream); border-top: 1px solid var(--line); font-weight: 800; } .admin-totals dd { margin: 0; } .timeline > div { display: grid; grid-template-columns: 14px 1fr; gap: 12px; padding-bottom: 20px; } .timeline i { position: relative; display: block; width: 9px; height: 9px; margin-top: 6px; background: var(--gold); border-radius: 50%; } .timeline i::after { position: absolute; top: 12px; left: 4px; width: 1px; height: 60px; background: var(--line); content: ""; } .timeline > div:last-child i::after { display: none; } .timeline p { margin: 2px 0; color: #97a5ae; font-size: 0.74rem; } .timeline small { color: #667984; font-size: 0.62rem; } .customer-card { display: flex; flex-direction: column; gap: 7px; color: #9dacb5; font-size: 0.78rem; } .customer-card strong { color: var(--cream); font-size: 0.95rem; } .customer-card a { color: var(--gold-light); } .refund-list { margin-top: 18px; border-top: 1px solid var(--line); } .refund-list > div { display: grid; grid-template-columns: auto 1fr; gap: 8px; padding-top: 12px; color: #9ba9b2; font-size: 0.68rem; } .refund-list strong { color: #df9090; } .refund-list small { grid-column: 2; color: #6d7e88; } .admin-stack { display: flex; flex-direction: column; gap: 20px; } .editable-list details, .new-record { border-top: 1px solid var(--line); } .editable-list summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto; align-items: center; gap: 15px; padding: 14px 4px; cursor: pointer; list-style: none; } .editable-list summary::-webkit-details-marker, .new-record > summary::-webkit-details-marker, .special-admin-card > summary::-webkit-details-marker { display: none; } .editable-list summary > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; } .editable-list summary small { overflow: hidden; color: #73848f; font-size: 0.65rem; text-overflow: ellipsis; white-space: nowrap; } .drag-index { display: grid; width: 30px; height: 30px; place-items: center; color: #7c8c96; background: #091722; border: 1px solid var(--line); border-radius: 50%; font-size: 0.62rem; } .status-dot { display: inline-flex; align-items: center; gap: 6px; color: #81909a; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; } .status-dot::before { width: 7px; height: 7px; background: #6a7379; border-radius: 50%; content: ""; } .status-dot.is-on::before { background: #48b384; box-shadow: 0 0 0 3px rgba(72, 179, 132, 0.12); } .edit-label { color: var(--gold); font-size: 0.65rem; font-weight: 700; text-transform: uppercase; } .item-price { color: var(--gold-light); font-size: 0.78rem; } .editable-list .item-avatar { width: 38px; height: 38px; font-size: 0.78rem; } .inline-editor { padding: 20px; margin-bottom: 12px; background: #0a1722; border: 1px solid #243845; border-radius: var(--radius); } .check-row { display: flex; flex-wrap: wrap; gap: 10px; } .new-record > summary { padding: 16px 4px 4px; color: var(--gold); cursor: pointer; font-family: var(--font-display); font-size: 0.82rem; font-weight: 800; letter-spacing: 0.06em; list-style: none; text-transform: uppercase; } .new-record[open] > summary { margin-bottom: 14px; } .special-admin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } .special-admin-card { padding: 20px; background: #091721; border: 1px solid #253846; border-radius: var(--radius); } .special-admin-card > summary { cursor: pointer; list-style: none; } .special-admin-card h3 { margin: 24px 0 8px; font-size: 1.4rem; text-transform: uppercase; } .special-admin-card p { min-height: 65px; color: #8999a2; font-size: 0.72rem; } .special-admin-card summary > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .special-admin-card summary > div > strong { color: var(--gold-light); } .special-admin-card .inline-editor { padding: 20px 0 0; margin: 20px 0 0; background: transparent; border-width: 1px 0 0; border-radius: 0; } .settings-row { display: grid; grid-template-columns: 1fr 250px; align-items: end; gap: 20px; } .sticky-save { position: sticky; z-index: 10; bottom: 15px; display: flex; justify-content: flex-end; padding: 14px; background: rgba(8, 18, 28, 0.9); border: 1px solid var(--line); border-radius: var(--radius-large); backdrop-filter: blur(8px); } .settings-followup { margin-top: 20px; } .newsletter-grid { grid-template-columns: minmax(0, 0.85fr) minmax(340px, 1.15fr); } .newsletter-history article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding-block: 14px; border-bottom: 1px solid var(--line); } .newsletter-history article > div { display: flex; min-width: 0; flex-direction: column; } .newsletter-history article span, .newsletter-history article small { color: #74858f; font-size: 0.63rem; } .newsletter-history article small { grid-column: 1 / -1; } code { padding: 2px 5px; color: var(--gold-light); background: #06101a; border-radius: 3px; } @media (max-width: 1080px) { .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hero-grid { grid-template-columns: 1.1fr 0.9fr; } .hero-plate { transform: scale(0.85); } .category-links { grid-template-columns: repeat(3, 1fr); } .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; } .footer-grid > div:last-child { grid-column: 2; } .stat-grid { grid-template-columns: repeat(2, 1fr); } .admin-dashboard-grid { grid-template-columns: 1fr; } .admin-panel-wide { grid-row: auto; } .special-admin-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 840px) { .announcement-detail { display: none; } .nav-toggle { display: block; } .site-nav { position: absolute; top: 100%; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 10px 20px 20px; background: var(--ink); border-top: 1px solid var(--line); box-shadow: 0 18px 35px rgba(0, 0, 0, 0.25); } .site-nav.is-open { display: flex; } .site-nav > a { padding: 14px 5px; border-bottom: 1px solid var(--line); } .site-nav > a::after { display: none; } .cart-link { margin-top: 10px; padding: 11px 14px !important; } .hero-grid { min-height: auto; grid-template-columns: 1fr; } .hero-copy { padding: 80px 0 40px; } .hero-plate { min-height: 400px; margin-top: -50px; } .plate-ring { width: min(470px, 78vw); } .page-hero-inner, .story-grid, .auth-grid, .auth-grid-wide, .account-grid, .checkout-layout, .admin-detail-grid, .newsletter-grid { grid-template-columns: 1fr; } .page-hero-inner { align-items: start; gap: 30px; } .menu-search { max-width: 550px; } .story-grid { gap: 40px; } .story-art { min-height: 320px; } .checkout-layout { gap: 25px; } .order-summary { position: static; } .auth-grid { gap: 45px; } .admin-shell { grid-template-columns: 1fr; } .admin-sidebar { position: static; width: 100%; height: auto; padding: 14px 20px; } .admin-brand { min-height: auto; padding: 0 0 14px; } .admin-nav { flex-direction: row; gap: 5px; padding: 12px 0 0; overflow-x: auto; } .admin-nav a { flex: 0 0 auto; padding: 8px 10px; } .admin-user { display: none; } .admin-topbar { padding-inline: 20px; } .admin-main { padding: 22px 20px 50px; } .special-admin-grid { grid-template-columns: 1fr; } } @media (max-width: 620px) { .container { width: min(100% - 28px, 1180px); } .section { padding-block: 60px; } .brand-copy strong { font-size: 1.1rem; } .brand-mark { width: 42px; height: 42px; } .hero { min-height: 0; } .hero-copy { padding-top: 65px; } .hero-actions, .hero-meta, .section-heading, .cart-actions, .admin-topbar, .admin-toolbar, .admin-page-actions, .detail-heading { align-items: stretch; flex-direction: column; } .hero-meta { gap: 10px; } .hero-plate { min-height: 330px; } .burger { height: 220px; } .hero-stamp { width: 90px; height: 90px; } .menu-grid, .category-links, .footer-grid, .form-grid, .form-grid-three, .confirmation-details, .stat-grid, .settings-row { grid-template-columns: 1fr; } .category-links a { min-height: 85px; } .footer-grid { gap: 28px; } .footer-grid > div:last-child { grid-column: auto; } .footer-bottom { flex-direction: column; gap: 5px; } .menu-category-heading { grid-template-columns: 1fr; gap: 12px; } .page-hero { padding-block: 50px; } .category-jump .container { gap: 22px; } .cart-item { grid-template-columns: 48px 1fr auto; gap: 12px; } .cart-item-mark { width: 48px; height: 48px; } .quantity-field { grid-column: 2; } .cart-line-total { grid-column: 3; grid-row: 1; } .remove-cart-item { grid-column: 3; grid-row: 2; } .confirmation-details div { min-height: 80px; border-right: 0; border-bottom: 1px solid var(--line); } .confirmation-details div:last-child { border-bottom: 0; } .confirmation-actions { flex-direction: column; } .auth-card, .panel, .admin-panel { padding: 22px; } .auth-grid, .auth-grid-wide { gap: 35px; } .auth-intro h1 { font-size: 3.2rem; } .field-wide { grid-column: auto; } .order-history article { grid-template-columns: 1fr auto; } .order-history article > strong { grid-column: 2; } .admin-top-actions .button-ghost { display: none; } .admin-topbar { flex-direction: row; align-items: center; } .table-wrap { margin: 0 -22px -22px; } .editable-list summary { grid-template-columns: auto minmax(0, 1fr) auto; } .editable-list summary .status-dot, .editable-list summary .edit-label { display: none; } .inline-editor { padding: 15px; } .admin-filters { flex-direction: column; } .admin-filters input, .admin-filters select { max-width: none; } }