* { box-sizing: border-box; }
body { margin: 0; padding: 18px 10px 30px; background: #b16b4b url('/assets/backgrounds/brick-wall.png') repeat; color: #21180d; font: 16px 'Times New Roman', Times, serif; }
a { color: #0000b0; text-decoration: underline; }
a:visited { color: #651475; }
a:hover { color: #b00013; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #006b42; outline-offset: 3px; }
.site { width: 752px; margin: 0 auto; background: #fff6d6; border: 5px ridge #b2211c; box-shadow: 5px 5px 0 #693520; }
.top-ribbon { background: #165432; color: #fff7c7; text-align: center; padding: 6px 0; font: bold 12px Arial, sans-serif; }
.top-ribbon span { margin: 0 20px; }
.masthead { width: 100%; border-spacing: 0; table-layout: fixed; }
.masthead td { vertical-align: middle; text-align: center; padding: 8px 0; }
.masthead .logo-cell { width: 290px; }
.logo { display: block; margin: auto; border: 3px outset #b99357; }
.masthead .steve-cell { width: 202px; }
.steve-cell img { object-fit: contain; }
.steve-label { font: bold 13px 'Comic Sans MS', cursive; }
.welcome strong { font: bold 23px 'Times New Roman', serif; color: #a91b1c; }
.welcome p { font-size: 15px; line-height: 1.35; }
.welcome small { font-weight: bold; color: #145530; }
.tagline { background: #ffe379; border-block: 2px solid #a51c19; text-align: center; font: bold italic 23px 'Times New Roman', serif; padding: 9px 0; }
.navigation { width: 100%; table-layout: fixed; border-spacing: 3px; background: #9e221c; }
.navigation td { background: #ffe6a0; border: 3px outset #f5c779; padding: 0; text-align: center; }
.navigation a { display: block; padding: 8px 1px; color: #70100f; font: bold 12px Arial, sans-serif; text-decoration: none; }
.navigation td:has(a[aria-current]) { background: #a51c19; border-style: inset; }
.navigation a[aria-current] { color: #fffbd2; }
.navigation a:hover { background: #fff3bb; color: #70100f; }
main { padding: 12px; }
h1 { font-size: 27px; text-align: center; color: #a51816; margin: 12px 0 16px; }
h2 { color: #a21b17; font-size: 22px; margin: 0 0 12px; }
h3 { font-size: 19px; color: #9e1816; margin: 0 0 7px; }
p { line-height: 1.4; }
.opening { background: #a91916; color: #fff278; border: 3px ridge #ecb230; margin: 0; padding: 6px; font: bold 25px Arial, sans-serif; letter-spacing: 1px; }
.ticker { display: block; background: #ffe9a7; color: #851915; border-bottom: 1px solid #a31f17; padding: 5px 0; font: bold 14px Arial, sans-serif; }
.phone-block { text-align: center; padding: 9px 0 11px; }
.phone-block img { vertical-align: middle; margin-right: 10px; }
.phone-block>span { font: bold 24px Arial, sans-serif; color: #a61617; }
.phone { display: block; font: bold 40px Arial, sans-serif; color: #aa1714; padding: 5px; overflow-wrap: anywhere; }
.huge { font-size: 53px; }
.phone-block small { font: bold 13px Arial, sans-serif; }
.promotion { width: 100%; background: #fff09c; border: 4px double #b2201b; text-align: center; font-family: 'Comic Sans MS', cursive; }
.promotion td { vertical-align: middle; }
.promotion strong { color: #9e1615; font-size: 18px; }
.promotion p { margin: 8px 0; font-size: 20px; line-height: 1.25; }
.promotion em { font-size: 14px; }
.new { display: inline-block; padding: 2px 4px; background: #b11517; color: #fff873; font: bold italic 12px Arial, sans-serif; border: 1px solid #fff; }
.home-columns { width: 100%; table-layout: fixed; border-spacing: 0; margin-top: 12px; }
.home-columns td { vertical-align: top; }
.main-column { width: 67%; padding-right: 10px; }
.side-column { width: 33%; }
.panel { padding: 15px; border: 2px solid #b3281d; background: #fff8de; margin: 12px 0; }
.home-columns .panel { margin: 0 0 12px; }
.panel>p:last-child { margin-bottom: 0; }
.main-column h2 { font-size: 23px; }
.main-column p { margin: 10px 0; }
.side-column .panel { text-align: center; padding: 12px; }
.side-column h2 { font-size: 20px; }
.side-column p { font-size: 15px; }
.side-column a { font: bold 13px Arial, sans-serif; line-height: 1.5; }
.side-note { background: #fff0aa; }
.web-note { background: #f2eed0; border-style: ridge; border-width: 4px; }
.menu-preview>h2 { background: #a81b17; color: #fff1a3; padding: 7px; margin: -15px -15px 12px; font-size: 20px; }
.featured { padding: 9px 0 13px; border-bottom: 1px dotted #b21f1b; }
.featured small { font: bold 12px Arial, sans-serif; }
.featured p { font-size: 15px; }
.featured b { color: #0c572d; }
.big-link { font: bold 19px Arial, sans-serif; }
.hotel-badge { border: 5px ridge #d4a541; background: #174c36; text-align: center; padding: 12px 4px; color: #fff1a2; font: bold 17px 'Times New Roman', serif; margin: 8px 0 16px; }
.hotel-badge small { color: #fff7d7; font-size: 14px; font-weight: normal; }
.counter-box { text-align: center; font: bold 14px Arial, sans-serif; padding: 10px; }
.counter { display: inline-block; color: #aaff8b; background: #101a0d; border: 3px inset #baac75; font: bold 24px 'Courier New', monospace; letter-spacing: 4px; padding: 4px 5px 4px 9px; }
.counter-box small { display: inline-block; margin-top: 8px; font: 14px 'Times New Roman', serif; }
footer { text-align: center; padding: 0 14px 12px; }
.divider { max-width: 100%; }
footer p { font-size: 14px; line-height: 1.5; margin: 10px 0; }
footer .technical { font-size: 12px; }
.browser-note { display: inline-block; background: #e5dec2; border: 2px outset #fff2cd; padding: 5px 8px; font: 11px Arial, sans-serif; }
.center, .callout { text-align: center; }
.callout { background: #ffedb0; border: 3px double #ae2219; padding: 20px; margin: 14px 0; }
.sizes { border: 3px ridge #dfb34b; background: #ffebad; padding: 12px 3px; text-align: center; font-size: 15px; }
.menu-section { margin: 20px 0; border: 2px solid #9f231e; }
.menu-section h2 { padding: 10px; margin: 0; background: #a4201b; color: #fff0a7; text-align: center; }
.menu-table { width: 100%; border-collapse: collapse; }
.menu-table th { background: #ffe293; font: bold 14px Arial, sans-serif; padding: 8px; border: 1px solid #c07943; }
.menu-table td { border: 1px solid #c07943; padding: 12px 8px; }
.menu-table tbody tr:nth-child(even) { background: #fff0c3; }
.menu-table p { margin: 6px 0; font-size: 15px; }
.menu-table .price { white-space: nowrap; font: bold 14px Arial, sans-serif; text-align: center; }
.menu-table em { font-size: 14px; }
.badge { display: inline-block; color: #11512a; background: #e9e2a1; font: bold 11px Arial, sans-serif; margin-top: 5px; padding: 3px; }
.prose { line-height: 1.5; }
.naples { float: right; margin: 0 0 12px 18px; }
.family-table { width: 100%; border-collapse: collapse; border: 3px ridge #be4428; }
.family-table caption { font: bold 24px 'Comic Sans MS', cursive; padding: 10px; color: #9f1b17; }
.family-table th,.family-table td { border: 1px solid #ba6b38; padding: 14px; text-align: left; line-height: 1.4; }
.family-table th { width: 39%; color: #125331; background: #ffebaf; }
.family-table small { font-weight: normal; }
.address { text-align: center; font-weight: bold; }
.map { margin: 20px; padding: 18px; border: 4px ridge #d4ad59; background: #ede7c3; text-align: center; }
.map table { width: 100%; border-spacing: 12px; font-family: Arial, sans-serif; }
.map-pizza { width: 50%; padding: 15px; border: 4px outset #d62d24; background: #fff4b7; color: #a71714; line-height: 1.6; }
.map-hotel { border: 3px solid #365e5d; background: #d0e2d4; line-height: 1.6; }
.map .avenue { border-block: 4px dashed #ffeba2; background: #64625e; color: white; padding: 18px 0; font-weight: bold; }
.map small { font-size: 13px; }
.fun { font-family: 'Comic Sans MS', cursive; }
.steve-gallery { width: 100%; text-align: center; table-layout: fixed; }
.steve-gallery td { vertical-align: top; }
.steve-gallery h2 { font: bold 15px 'Comic Sans MS', cursive; }
.letter { padding: 25px 35px; font-size: 18px; border: 4px ridge #c5a15d; }
.letter-heading { font: bold 14px Arial, sans-serif; border-bottom: 1px solid #b38843; padding-bottom: 12px; color: #155432; }
.future { font-size: 24px; color: #a31b17; }
.signature { text-align: right; font-size: 15px; }
.entry-form label { display: block; font-weight: bold; margin-bottom: 5px; }
input,textarea { max-width: 100%; width: 100%; font: 16px Arial, sans-serif; border: 2px inset #d8c8a3; padding: 7px; background: #fffef3; border-radius: 0; }
textarea { resize: vertical; }
button { cursor: pointer; padding: 9px 16px; border: 3px outset #f0be68; background: #ffe595; color: #8c1713; font: bold 15px Arial, sans-serif; }
button:active { border-style: inset; }
.entry-form { max-width: 540px; margin: auto; }
.thanks { display: flex; align-items: center; gap: 15px; padding: 12px; border: 3px double #20652f; background: #e8efba; }
.error { background: #fff0d5; border: 2px solid #b51a18; color: #981717; padding: 12px; }
.book-title { text-align: center; padding: 10px; }
.guest-entry { border: 3px ridge #be652b; background: #fff3c8; margin: 12px 0; padding: 14px; overflow-wrap: anywhere; }
.guest-entry h3 { font-size: 18px; border-bottom: 1px dotted #b6753d; padding-bottom: 8px; }
.message { white-space: pre-wrap; overflow-wrap: anywhere; }
.pagination { text-align: center; margin: 20px 0; }
.pagination a { margin: 0 12px; }
.email-link { font: bold 26px 'Times New Roman', serif; }
.skip { position: absolute; left: -9999px; }
.skip:focus { position: fixed; left: 12px; top: 10px; padding: 10px; background: #fff; z-index: 10; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 775px) { body { padding-inline: 8px; } .site { margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { .ticker { visibility: hidden; height: 1px; padding: 0; } }
