* { box-sizing: border-box; margin: 0; padding: 0; }
:root { --ink:#111; --paper:#fff; --muted:#5c5c5c; --line:#e2e2e2; }
body { font-family:'itc-american-typewriter','American Typewriter','Cutive','Courier New',serif; font-weight:500; background:var(--paper); color:var(--ink); display:flex; flex-direction:column; min-height:100vh; }
.content { flex:1; }
a { color: var(--ink); }

/* HOME */
.home { display:flex; align-items:center; justify-content:center; min-height:calc(100vh - 140px); padding:4rem 1.5rem 5rem; }
.frame { position:relative; border:3px solid var(--ink); width:min(520px,86vw); aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; }
.frame img.logo { width:58%; height:auto; display:block; user-select:none; -webkit-user-drag:none; }
.edge, .corner { position:absolute; background:var(--paper); letter-spacing:0.16em; text-transform:uppercase; padding:5px 12px; transition:background .18s,color .18s; white-space:nowrap; font-family:inherit; color:var(--ink); font-size:clamp(10px,2.4vw,13px); text-decoration:none; }
.edge:hover,.edge:focus-visible,.corner:hover,.corner:focus-visible { background:var(--ink); color:var(--paper); outline:none; }
.edge-top { top:0; left:50%; transform:translate(-50%,-50%); }
.edge-bottom { bottom:0; left:50%; transform:translate(-50%,50%); }
.edge-left { left:0; top:50%; transform:translate(-50%,-50%) rotate(-90deg); }
.edge-right { right:0; top:50%; transform:translate(50%,-50%) rotate(90deg); }
.corner-tl { top:0; left:0; transform:translate(-30%,-50%); }
.corner-tr { top:0; right:0; transform:translate(30%,-50%); }
.corner-bl { bottom:0; left:0; transform:translate(-30%,50%); }
.corner-br { bottom:0; right:0; transform:translate(30%,50%); }
.hint { position:absolute; bottom:-3.2rem; left:50%; transform:translateX(-50%); font-size:11px; color:var(--muted); letter-spacing:0.12em; text-transform:uppercase; white-space:nowrap; }

/* PAGES */
.page { min-height:calc(100vh - 140px); padding:2.5rem clamp(1.2rem,5vw,3rem) 3rem; max-width:860px; margin:0 auto; width:100%; }
.page-header { display:flex; align-items:center; gap:1.5rem; margin-bottom:2rem; border-bottom:1.5px solid var(--ink); padding-bottom:1rem; }
.back-btn { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); border:1px solid var(--line); padding:6px 14px; background:none; font-family:inherit; text-decoration:none; }
.back-btn:hover { background:#f5f5f5; }
.page-title { font-size:1.1rem; letter-spacing:.08em; text-transform:uppercase; }
h1.page-title { font-weight: normal; }

.menu-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.menu-section { background:var(--paper); padding:1.4rem; }
.menu-section h2 { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:.8rem; font-weight:normal; }
.menu-item { display:flex; justify-content:space-between; gap:1rem; font-size:.95rem; padding:.45rem 0; border-bottom:1px solid var(--line); }
.menu-item:last-child { border-bottom:none; }
.price { color:var(--muted); flex-shrink:0; }
.menu-note { font-size:.8rem; color:var(--muted); margin-top:1.2rem; line-height:1.6; }

.prose { font-size:1rem; line-height:1.8; color:#2a2a2a; max-width:540px; }
.prose p { margin-bottom:1rem; }

.contact-grid { display:grid; gap:1.2rem; max-width:460px; }
.contact-item { display:flex; gap:1rem; align-items:flex-start; }
.contact-label { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); min-width:84px; padding-top:2px; }
.contact-value { font-size:.95rem; line-height:1.6; }

.btn { display:inline-block; margin-top:1.6rem; background:var(--ink); color:var(--paper); border:none; font-family:inherit; font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding:12px 28px; cursor:pointer; text-decoration:none; }
.btn:hover { opacity:.85; }
.btn + .btn { margin-left: 1rem; }

.map-placeholder { border:1px dashed var(--line); aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:1.5rem; max-width:600px; }
.event-card { border:1px solid var(--line); padding:1.2rem 1.4rem; margin-bottom:1rem; max-width:600px; }
.event-date { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:.3rem; }
.event-name { font-size:1rem; margin-bottom:.3rem; font-weight:normal; }
.event-desc { font-size:.85rem; color:var(--muted); line-height:1.6; }

footer { border-top:1px solid var(--line); padding:1.4rem clamp(1.2rem,5vw,3rem); text-align:center; }
.foot-links { display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; justify-content:center; margin-bottom:.9rem; }
.foot-links a { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); text-decoration:none; }
.foot-links a:hover { color:var(--ink); }
.legal { font-size:10px; color:#8a8a8a; line-height:1.7; max-width:640px; margin:0 auto; }

@media (max-width:520px) {
  .edge, .corner { padding:4px 8px; letter-spacing:.1em; }
  .corner-tl { transform:translate(-15%,-50%); }
  .corner-tr { transform:translate(15%,-50%); }
  .corner-bl { transform:translate(-15%,50%); }
  .corner-br { transform:translate(15%,50%); }
  .home { padding:3.5rem 1rem 4.5rem; }
}

/* TOP STRIP NAV (inner pages) */
.topnav { display:flex; align-items:center; justify-content:center; gap:1.6rem; flex-wrap:wrap; border-bottom:1px solid var(--line); padding:1rem clamp(1rem,4vw,2rem); }
.topnav .home-mark { border:2px solid var(--ink); padding:2px 10px; font-size:15px; text-decoration:none; color:var(--ink); }
.topnav .home-mark:hover { background:var(--ink); color:var(--paper); }
.topnav nav { display:flex; gap:1.4rem; flex-wrap:wrap; justify-content:center; }
.topnav nav a { font-size:11px; letter-spacing:.14em; text-transform:uppercase; text-decoration:none; color:var(--muted); padding-bottom:3px; }
.topnav nav a:hover { color:var(--ink); }
.topnav nav a.current { color:var(--ink); border-bottom:1.5px solid var(--ink); }
.page-header { gap:0; }
@media (max-width:520px) {
  .topnav { gap:1rem; }
  .topnav nav { gap:.9rem 1.1rem; }
  .topnav nav a { font-size:10px; letter-spacing:.1em; }
}

/* ITC American Typewriter weights: 300 light (body), 500 medium, 700 bold */
.page-title, .topnav .home-mark, .btn, .edge, .corner { font-weight: 500; }

/* FAQ */
.faq-list { max-width: 560px; }
.faq { padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.faq:last-child { border-bottom: none; }
.faq h2 { font-size: .95rem; font-weight: 500; margin-bottom: .35rem; }
.faq p { font-size: .9rem; color: #2a2a2a; line-height: 1.7; }

/* PRIVACY */
.privacy h2 { font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 500; margin: 1.6rem 0 .4rem; color: var(--muted); }
.privacy-date { font-size: .8rem; color: var(--muted); }

/* NEWSLETTER */
.newsletter { border-top: 1px solid var(--line); margin-top: 2.5rem; padding-top: 1.8rem; max-width: 460px; }
.newsletter h2 { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500; margin-bottom: .5rem; }
.newsletter p { font-size: .9rem; color: #2a2a2a; line-height: 1.7; }

/* FOOTER SMALL LINKS */
.foot-small { margin-bottom: .7rem; }
.foot-small a { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); text-decoration: none; }
.foot-small a:hover { color: var(--ink); }

.faq-pointer { font-size: .85rem; color: var(--muted); }

/* STORY PHOTO */
.story-photo { max-width: 440px; margin: 1.8rem 0; }
.story-photo img { width: 100%; height: auto; display: block; border: 1px solid var(--line); }
.story-photo figcaption { font-size: .78rem; color: var(--muted); margin-top: .5rem; letter-spacing: .03em; }

/* DISH GRID */
.dish-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-width: 540px; margin: 1.8rem 0 .6rem; }
.dish-grid img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border: 1px solid var(--line); }
.dish-grid-caption { font-size: .78rem; color: var(--muted); letter-spacing: .03em; max-width: 540px; }

.menu-download { text-align: center; margin-bottom: 2rem; }

/* COOKIE BANNER */
#cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; background: var(--paper); border-top: 1px solid var(--ink); padding: .9rem clamp(1rem,4vw,2rem); display: flex; align-items: center; justify-content: center; gap: 1.4rem; flex-wrap: wrap; font-size: .82rem; z-index: 100; }
#cookie-banner[hidden] { display: none; }
.cookie-actions { display: flex; gap: .6rem; }
#cookie-banner button { font-family: inherit; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; padding: 7px 16px; cursor: pointer; background: none; border: 1px solid var(--ink); color: var(--ink); }
#cookie-banner button:hover { background: var(--ink); color: var(--paper); }

/* 464 CATERING */
.catering-hero { display:flex; justify-content:center; margin:1.2rem 0 2.2rem; }
.catering-hero img { width:min(240px,55vw); height:auto; display:block; }
.catering-services { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:2.2rem; max-width:760px; }
.catering-service { background:var(--paper); padding:1.4rem; }
.catering-service h2 { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:.6rem; font-weight:500; }
.catering-service p { font-size:.9rem; color:#2a2a2a; line-height:1.7; }

/* CATERING FRAME */
.frame-catering img.logo { width:50%; }
