:root { --bh-deep-water: #1a3c4a; --bh-lake: #2c7a8c; --bh-teal: #4a9dab; --bh-sand: #e8d5b7; --bh-cream: #fdf6ed; --bh-wood: #7a4d2e; --bh-warm-white: #fffbf5; --bh-gold: #f2bf44; --bh-pine: #3a5a40; } * { box-sizing: border-box; } body { margin: 0; font-family: 'Nunito', sans-serif; color: var(--bh-warm-white); min-height: 100vh; background: radial-gradient(circle at 8% 10%, #fdf6ed2e 0 90px, transparent 91px), radial-gradient(circle at 88% 15%, #4a9dab33 0 140px, transparent 141px), linear-gradient(145deg, var(--bh-deep-water), #1e4f5e 45%, #1a3c4a); } .site-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.7rem 1rem; border-bottom: 1px solid #e8d5b740; background: linear-gradient(180deg, #152f3cf0, #1a3c4adb); backdrop-filter: blur(10px); } .brand-link { display: inline-flex; align-items: center; gap: 0.55rem; color: var(--bh-sand); text-decoration: none; font-weight: 800; letter-spacing: 0.03em; } .brand-icon { width: 2rem; height: 2rem; border-radius: 999px; border: 1px solid #e8d5b785; } .top-nav { display: inline-flex; gap: 0.35rem; flex-wrap: wrap; } .top-nav a { color: var(--bh-warm-white); text-decoration: none; font-weight: 700; border: 1px solid #e8d5b744; border-radius: 999px; padding: 0.28rem 0.72rem; background: #ffffff12; } .top-nav a:hover { background: #4a9dab3d; } .page-shell { width: min(980px, 92vw); margin: 3rem auto; display: grid; gap: 1.5rem; } .hero-card { padding: 2rem; border: 2px solid #e8d5b75c; border-radius: 24px; background: linear-gradient(170deg, #1a3c4aca, #1e4f5eca 65%, #2c7a8cbf); backdrop-filter: blur(8px); box-shadow: 0 14px 44px #03102066; text-align: center; animation: reveal 700ms ease-out both; } .logo-wrap { width: min(320px, 72vw); margin: 0 auto 1rem; padding: 0.55rem; border-radius: 20px; background: linear-gradient(135deg, #fdf6ed26, #4a9dab47); } .logo-image { width: 100%; display: block; border-radius: 16px; } .tag { margin: 0; color: var(--bh-gold); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 800; font-size: 0.74rem; } h1 { margin: 0.25rem 0 0; font-family: 'Bebas Neue', sans-serif; font-size: clamp(2.4rem, 8vw, 4rem); letter-spacing: 0.05em; color: var(--bh-sand); } .lead { margin: 0.8rem auto 1.2rem; max-width: 55ch; font-size: 1.08rem; } .pill-row { display: flex; justify-content: center; gap: 0.6rem; flex-wrap: wrap; } .pill { border: 1px solid #e8d5b77d; border-radius: 999px; padding: 0.35rem 0.9rem; background: #ffffff14; font-weight: 700; } .info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } .info-grid article { border-radius: 16px; background: linear-gradient(165deg, #fdf6ed17, #4a9dab26); border: 1px solid #e8d5b747; padding: 1rem 1.1rem; animation: reveal 900ms ease-out both; } .info-grid h2 { margin-top: 0; color: var(--bh-gold); font-size: 1rem; text-transform: uppercase; letter-spacing: 0.08em; } .info-grid p { margin: 0.45rem 0; color: var(--bh-warm-white); } .menu-board, .reservation-card, .contact-card, .about-card, .admin-card, .section-card { border-radius: 16px; background: linear-gradient(160deg, #fdf6ed1a, #4a9dab2b); border: 1px solid #e8d5b747; padding: 1rem 1.1rem; animation: reveal 1000ms ease-out both; } .menu-board h2, .reservation-card h2, .contact-card h2, .about-card h2, .admin-card h2, .section-card h2 { margin-top: 0; color: var(--bh-gold); font-size: 1rem; text-transform: uppercase; letter-spacing: 0.08em; } .menu-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.85rem; } .menu-grid article { background: #1a3c4a8a; border: 1px solid #e8d5b745; border-radius: 12px; padding: 0.75rem; } .menu-grid h3 { margin: 0; font-size: 1rem; } .menu-grid p { margin: 0.45rem 0; } .menu-grid strong { color: var(--bh-gold); } .reservation-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem 0.75rem; } .reservation-form label { grid-column: span 2; margin-top: 0.2rem; font-weight: 700; color: var(--bh-sand); } .reservation-form input { grid-column: span 2; border: 1px solid #e8d5b761; border-radius: 10px; background: #152f3cc7; color: var(--bh-warm-white); padding: 0.6rem 0.72rem; } .reservation-form button { grid-column: span 2; margin-top: 0.3rem; border: 1px solid #f5d47a66; border-radius: 12px; padding: 0.68rem 0.9rem; background: linear-gradient(145deg, #f2bf44, #d29f2f); color: #10243d; font-weight: 800; cursor: pointer; } .reservation-form button:hover { filter: brightness(1.06); } .status-banner { border-radius: 10px; padding: 0.65rem 0.8rem; font-weight: 700; margin: 0.1rem 0 0.8rem; } .status-banner.success { background: #2fa56c33; border: 1px solid #8be4b866; color: #defbe8; } .status-banner.error { background: #9f2b2b40; border: 1px solid #ffb4b499; color: #ffe7e7; } .table-wrap { overflow-x: auto; } .reservation-table { width: 100%; border-collapse: collapse; min-width: 680px; background: #1a3c4a80; border: 1px solid #e8d5b73d; } .reservation-table th, .reservation-table td { border-bottom: 1px solid #e8d5b733; padding: 0.6rem 0.55rem; text-align: left; font-size: 0.94rem; } .reservation-table thead th { color: var(--bh-gold); letter-spacing: 0.03em; font-size: 0.86rem; text-transform: uppercase; } .site-footer { width: min(980px, 92vw); margin: 0 auto 1.2rem; text-align: center; color: var(--bh-sand); font-size: 0.9rem; } @keyframes reveal { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } } @media (max-width: 860px) { .site-header { flex-direction: column; align-items: flex-start; } .info-grid { grid-template-columns: 1fr; } .menu-grid { grid-template-columns: 1fr 1fr; } .reservation-form { grid-template-columns: 1fr; } .reservation-form label, .reservation-form input, .reservation-form button { grid-column: span 1; } .hero-card { padding: 1.4rem; } .hours-location-grid, .offerings-list, .amenities-list, .contact-grid { grid-template-columns: 1fr; } } @media (max-width: 540px) { .menu-grid { grid-template-columns: 1fr; } } .hero-sub { font-size: 1.25rem; font-weight: 700; color: var(--bh-sand); margin: 0.3rem 0 0.5rem; } .btn-row { display: flex; justify-content: center; gap: 0.75rem; flex-wrap: wrap; margin-top: 1.2rem; } .btn-primary { display: inline-block; padding: 0.6rem 1.4rem; background: linear-gradient(145deg, #f2bf44, #d29f2f); color: #10243d; font-weight: 800; border-radius: 999px; text-decoration: none; font-size: 0.95rem; transition: filter 0.15s; } .btn-primary:hover { filter: brightness(1.1); } .btn-secondary { display: inline-block; padding: 0.6rem 1.4rem; background: transparent; color: var(--bh-sand); font-weight: 700; border-radius: 999px; text-decoration: none; border: 1.5px solid #e8d5b77d; font-size: 0.95rem; transition: background 0.15s; } .btn-secondary:hover { background: #4a9dab3d; } .section-card h3, .about-card h3, .contact-card h3, .menu-board h3.section-sub { color: var(--bh-sand); font-size: 1rem; font-weight: 800; margin: 1.1rem 0 0.4rem; } .section-card p, .section-card li { line-height: 1.6; } .contact-card a { color: var(--bh-teal); text-decoration: none; } .contact-card a:hover { color: var(--bh-sand); text-decoration: underline; } .hours-location-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 0.75rem; } .hours-table { border-collapse: collapse; width: 100%; margin-top: 0.5rem; } .hours-table td { padding: 0.35rem 0; color: var(--bh-warm-white); font-size: 0.95rem; } .hours-table td:first-child { font-weight: 700; color: var(--bh-sand); width: 58%; } .quiet-note { margin-top: 0.75rem; font-size: 0.88rem; color: #90d0f5; } .offerings-list { list-style: none; padding: 0; margin: 0.75rem 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; } .offerings-list li { background: #1a3c4a8a; border: 1px solid #e8d5b745; border-radius: 12px; padding: 0.85rem 1rem; } .offerings-list li strong { display: block; color: var(--bh-gold); margin-bottom: 0.35rem; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; } .menu-note { margin-top: 1rem; padding: 0.7rem 1rem; background: #1a3c4a8a; border: 1px solid #e8d5b745; border-radius: 10px; font-size: 0.9rem; color: var(--bh-sand); display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; } .amenities-list { list-style: none; padding: 0; margin: 0.75rem 0 1rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; } .amenities-list li { background: #1a3c4a8a; border: 1px solid #e8d5b745; border-radius: 10px; padding: 0.75rem 0.9rem; } .amenities-list li strong { display: block; color: var(--bh-gold); margin-bottom: 0.2rem; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; } .why-list { list-style: none; padding: 0; margin: 0.5rem 0 0; } .why-list li { padding: 0.35rem 0 0.35rem 1.4rem; position: relative; color: var(--bh-warm-white); line-height: 1.55; } .why-list li::before { content: "→"; position: absolute; left: 0; color: var(--bh-gold); font-weight: 700; } .event-item { background: #1a3c4a8a; border: 1px solid #e8d5b745; border-radius: 12px; padding: 1rem 1.1rem; margin-top: 0.85rem; } .event-item h3 { margin: 0.3rem 0 0.4rem; color: var(--bh-sand); font-size: 1rem; } .event-meta { font-size: 0.8rem; color: var(--bh-gold); font-weight: 800; text-transform: uppercase; letter-spacing: 0.07em; } .contact-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 1.5rem; margin-top: 0.75rem; } .form-fields-preview { list-style: none; padding: 0; margin: 0.5rem 0 1rem; } .form-fields-preview li { padding: 0.4rem 0.6rem; border-bottom: 1px solid #e8d5b725; color: var(--bh-sand); font-size: 0.9rem; } .social-links { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.5rem; } .social-link { display: inline-block; padding: 0.3rem 0.85rem; border: 1px solid #e8d5b77d; border-radius: 999px; background: #ffffff12; color: var(--bh-sand); text-decoration: none; font-size: 0.85rem; font-weight: 700; } .social-link:hover { background: #4a9dab3d; }