/* GuestCues: calm hospitality for guests, high-contrast utility for staff. */
:root { --ink:#173d36; --muted:#56665f; --cream:#f3f5f1; --paper:#fff; --line:#d9e2dc; --accent:#8c4c24; }
body { background:var(--cream); }
.shell { width:min(100% - 48px,1120px); padding-top:24px; }
.brand { padding-bottom:20px; border-bottom:1px solid var(--line); margin-bottom:28px; }
.brand-link { font-size:1.2rem; letter-spacing:-.04em; }
.brand-mark { width:36px; height:36px; border-radius:12px; box-shadow:none; }
.brand .eyebrow { color:var(--muted); font-size:.75rem; letter-spacing:.08em; }
.panel { background:var(--paper); border-radius:20px; padding:32px; box-shadow:0 3px 12px #173d3605; }
h1 { letter-spacing:-.045em; font-size:clamp(2rem,4.6vw,3.8rem); }
h2 { letter-spacing:-.025em; font-size:1.65rem; }
h3 { letter-spacing:-.015em; }
button,.button { border-radius:12px; font-weight:700; min-height:48px; }
button:hover,.button:hover { transform:none; box-shadow:none; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select { width:100%; min-height:50px; padding:12px 14px; border:1px solid #acbbb2; border-radius:10px; color:var(--ink); background:white; font:inherit; }
input[type=checkbox] { width:20px; height:20px; flex-shrink:0; }
.grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
:focus-visible { outline:3px solid #996027; outline-offset:4px; }
summary { cursor:pointer; padding:10px 0; font-weight:700; }
details[open]>summary { margin-bottom:12px; }
.skip-link { position:absolute; left:20px; top:-80px; padding:12px; background:white; z-index:20; }
.skip-link:focus { top:12px; }
.guest-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; align-items:start; margin-bottom:28px; }
.tag-hero { background:var(--ink); color:white; padding:36px; border:0; }
.tag-hero::after { display:none; }
.tag-hero .eyebrow,.tag-hero p { color:#d2e2d9; }
.tag-hero h1 { font-family:Georgia,serif; font-weight:400; line-height:1.08; margin:22px 0; }
.tag-hero .hero-top { flex-wrap:wrap; }
.tag-hero .button { background:#edf3e7; color:var(--ink); }
.tag-hero .button.secondary { color:white; border-color:#648178; background:transparent; }
.tag-hero .pill { background:#31564c; color:#e8f1eb; }
.guest-checkin .panel { margin-bottom:14px; padding:24px; }
.action-panel { border-top:1px solid var(--line); }
.join-panel { border:2px solid #a5bcb0; }
.join-panel summary { font-size:1.25rem; }
.returning-panel h2 { font-size:1.25rem; }
.returning-panel .section-heading { margin-bottom:12px; }
.guest-checkin button { width:100%; }
.guest-checkin .check { font-size:.9rem; background:#f6f8f5; }
.guest-checkin .enrollment-form>.muted { font-size:.875rem; margin:0; }
.guest-alternatives { padding:8px 4px; }
.guest-alternatives p { font-size:.9rem; }
.guest-alternatives .button,.guest-alternatives button { background:transparent; color:var(--ink); border:1px solid var(--line); }
.guest-privacy { margin-top:24px; border-top:1px solid #52736a; padding-top:8px; }
.guest-privacy p { font-size:.9rem; }
.menu-panel { scroll-margin-top:24px; }
.menu-panel h2 { font-family:Georgia,serif; font-size:2rem; font-weight:400; }
.menu-category h3 { font-size:1.1rem; padding-bottom:10px; }
.menu-item { padding:14px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.menu-item:last-child { border-bottom:0; }
.menu-showcase { gap:36px; grid-template-columns:minmax(180px,.35fr) minmax(0,1fr); }
.menu-cover { box-shadow:none; }
.menu-items { gap:0; }
.menu-nav { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.menu-nav a { padding:8px 14px; border:1px solid var(--line); border-radius:999px; text-decoration:none; font-size:.9rem; }
.menu-nav a:hover { background:#edf3e7; }
.menu-category { scroll-margin-top:24px; }
.queue-summary { display:flex; gap:12px; flex-wrap:wrap; margin:24px 0; }
.queue-summary div { background:#f1f5f0; padding:14px 20px; border-radius:12px; flex:1; min-width:150px; }
.queue-summary strong { display:block; font-size:1.8rem; letter-spacing:-.04em; }
.queue-summary span { color:var(--muted); font-size:.9rem; }
.arrival { padding:24px 0; align-items:start; grid-template-columns:minmax(0,1fr) 180px; }
.arrival-actions { display:grid; grid-template-columns:1fr; width:100%; }
.arrival-actions button,.arrival-actions .button { width:100%; }
.arrival-actions details { width:100%; font-size:.875rem; }
.arrival-actions details form { margin-bottom:6px; }
.arrival-actions summary { color:var(--muted); text-align:center; }
.arrival h3 { display:flex; gap:10px; flex-wrap:wrap; align-items:center; font-size:1.2rem; }
.arrival .notice { margin-top:12px; font-size:.95rem; }
.meta,.notice { overflow-wrap:anywhere; }
.checkin-success { max-width:760px; margin:auto; }
.checkin-success> .panel:first-child { background:var(--ink); color:white; }
.checkin-success> .panel:first-child p,.checkin-success> .panel:first-child a { color:#e1ece5; }
.checkin-success> .panel:first-child .eyebrow { color:#cee4d6; }
.checkin-success> .panel:first-child .notice { background:#2c5347; color:white; border-color:#93baa4; }
.checkin-success h1 { font-size:2.6rem; }
.checkin-success .stack p { font-size:.9rem; margin:0; }
.checkin-success .stack { margin-top:20px; }
.checkin-success form+h2 { margin-top:24px; }
@media(max-width:760px) {
 .shell { width:calc(100% - 28px); padding-top:16px; }
 .brand { margin-bottom:18px; padding-bottom:16px; }
 .guest-layout { grid-template-columns:1fr; gap:0; }
 .tag-hero { padding:20px; margin-bottom:18px; }
 .tag-hero .hero-top { margin-bottom:12px; gap:8px; }
 .tag-hero h1 { margin:10px 0; }
 .guest-checkin .panel { padding:20px; }
 .join-panel summary { font-size:1.125rem; }
 .tag-hero h1 { font-size:2.3rem; margin:14px 0; }
 .tag-hero .lede { font-size:1rem; }
 .tag-hero .actions { flex-wrap:nowrap; }
 .tag-hero .actions a { width:auto; flex:1; }
 .guest-privacy { margin-top:16px; }
 .panel { padding:22px; }
 .menu-showcase { grid-template-columns:1fr; }
 .menu-cover { width:160px; position:static; }
 .arrival { grid-template-columns:1fr; gap:12px; }
 .arrival-actions { max-width:none; grid-template-columns:1fr 1fr; align-items:start; gap:12px; }
 .checkin-success h1 { font-size:2rem; }
 .hero-top,.section-heading { flex-wrap:wrap; }
 .brand .eyebrow { font-size:.75rem; }
 .dashboard-actions { width:100%; }
 .dashboard-actions>.button,.dashboard-actions>form { flex:1 1 110px; }
 .queue-summary { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:18px 0; }
 .queue-summary div { min-width:0; padding:12px; }
 .queue-summary div:last-child { grid-column:1/-1; display:flex; align-items:center; gap:12px; padding:8px 12px; }
 .queue-summary strong { font-size:1.5rem; }
 .queue-summary span { font-size:.875rem; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
.service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 1rem; }
.service-card { border: 1px solid #d6ddd8; border-radius: 16px; padding: 1.2rem; background: #fafcf9; overflow-wrap: anywhere; }
.service-card li { margin-block: .5rem; }
.service-card .section-heading { flex-wrap: wrap; gap: .75rem; }
