html, body, div, h1, h2, h3, h4, a,
img, strong, sub, sup, b, u, i, center,
dl, dt, dd, li, table, caption, tbody, tfoot, thead, tr, th,
figure, figcaption, footer, header{
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

td {vertical-align: middle;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
}

.intro > h1:nth-child(2) {text-align: center;}
.intro > p:nth-child(3)  {text-align: center;}


.page img {
  width: 48% !important; /* override RST inline 49%; frees ~2% for gap */
  max-width: 100%;
  height: auto;
  vertical-align: top;   /* align tops of side-by-side pairs */
  margin-right: 0.75%;   /* visible gap between paired images */
}

@media (max-width: 600px) {
  .page img {
    width: 100% !important; /* stack full-width on mobile */
    margin-right: 0;
  }
}

strong {
    font-weight: bold;
}

body {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto,
               "Noto Sans", "Liberation Sans", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5em;
  color: #444;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

header, #wrapper {
    min-width: 260px;
    max-width: 910px;
    margin: 0 auto 0;
     padding-left: 16px;
  padding-right: 16px;
}

a {
    text-decoration: none;
    color: #15A9DB;
}

ol, ul { list-style: outside; }
ul { list-style: outside disc; }
ol { list-style: outside decimal; }

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}
h1, h2, h3 {
    font-size: 1.5em; line-height: 1.25em;
}

#logo { width: clamp(160px, 50%, 420px); margin: 2.2em auto 0; }
#logo img { display:block; width:100%; height:auto; margin-top: 0; }

img {
  display: inline-block;
  max-width: 100%;
  height: auto;
  margin-top: 1.2em;
}

footer {
    text-align: center;
    color: #BBB;
    margin: 3em 0;
    border: 1px solid #EEE;
    border-radius: 5px;
}
footer p { margin: 0; }

.footer-brand{
  font-weight: 700;
}
.footer-copy{
  font-size: .9rem;
  opacity: .8;
}

footer a{
  text-decoration: none;
}
footer a:hover{
  text-decoration: underline;
}

.center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.menu-table-wrap {
  margin-top: .75rem;
  display: flex;
  justify-content: center;
}

/* Table */
.menu-table {
  table-layout: fixed;
  width: 100%;
  border-collapse: collapse;
  margin: 0 auto;              /* center if you don't use the wrapper */
  font-size: 0.95rem;
  line-height: 1.35;

  /* “card” look like opening-hours */
  background: rgba(255,255,255,0.85);
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
  padding: .4rem .8rem;        /* browsers apply padding fine on <table> */
}

.menu-table caption {
  caption-side: top;
  text-align: center;
  font-weight: 600;
  margin-bottom: .35rem;
}

/* Header row */
.menu-table thead th {
  font-weight: 700;
  text-align: center;
  padding: .35rem .6rem;
  border-bottom: 1px solid rgba(0,0,0,.08);
  background: rgba(0,0,0,.03);
}

/* Body cells */
.menu-table th,
.menu-table td {
  padding: .35rem .6rem;
  border-bottom: 1px solid rgba(0,0,0,.06);
  vertical-align: top;
}

/* Zebra only in tbody (skip header) */
.menu-table tbody tr:nth-child(even) td,
.menu-table tbody tr:nth-child(even) th {
  background: rgba(0,0,0,.02);
}

/* Alignments per column (tweak to taste) */
.menu-table th:nth-child(1), .menu-table td:nth-child(1) { text-align: left; }
.menu-table th:nth-child(2), .menu-table td:nth-child(2) { text-align: left; overflow-wrap: anywhere; }
.menu-table th:nth-child(3), .menu-table td:nth-child(3) { text-align: center; white-space: nowrap; }
.menu-table th:nth-child(4), .menu-table td:nth-child(4) { text-align: center; white-space: nowrap; font-weight: 600; }

.menu-table tbody tr:hover { background: rgba(0,0,0,.04); }

@media (max-width: 480px) {
  .menu-table { font-size: .9rem; max-width: 100%; }
}

.opening-hours-wrap {
    margin-top: .5rem;
    display: flex;
    justify-content: center;
    }
.opening-hours {
  table-layout: fixed;
  width: 100%;
  min-width: 200px;
  max-width: 320px; /* limit on large screens */
  border-collapse: collapse;
  font-size: 0.95rem;
  line-height: 1.35;
  text-align: left;
  background: rgba(255,255,255,0.85);
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
  padding: .4rem .8rem;

}
.opening-hours caption {
  caption-side: top;
  text-align: center;
  font-weight: 600;
  margin-bottom: .35rem;
}
.opening-hours th,
.opening-hours td {
  text-align: center;
  padding: .35rem .6rem;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.opening-hours th {
  white-space: nowrap;
  font-weight: 600;
  text-align: center;
}
.opening-hours tr:nth-child(even) td,
.opening-hours tr:nth-child(even) th {
  background: rgba(0,0,0,.02);
}
.opening-hours tr:hover {
  background: rgba(0,0,0,.04);
}

@media (max-width: 480px) {
  .opening-hours {
    font-size: .9rem;
  }
  .opening-hours th,
  .opening-hours td {
    padding: .4rem .5rem;
  }
}

.cta-row{
  display:flex;
  gap:.5rem;
  justify-content:center;
  margin: 1rem 0 0;
  flex-wrap:wrap;
}

.btn{
  display:inline-block;
  padding:.45rem .8rem;
  border:1px solid rgba(0,0,0,.12);
  border-radius:10px;
  color:#222;
  text-decoration:none;
  background: rgba(255,255,255,.9);
}

.btn:hover{
  filter: invert(10%);
}

.btn img{
  width: 22px;
  height: 22px;
  margin-top: 0;
}

.pdf-embed{
  width: 100%;
  height: min(80vh, 900px);  /* responsive, but not huge on desktop */
  min-height: 520px;         /* ensures usable height on small screens */
  border: 0;
}
/*
@media (max-width: 768px) {
  .pdf-embed iframe {
    height: 75vh;
  }
  .pdf-fallback{ display:none; }
}
*/
.admonition.note {
  margin: 16px 0 20px;
  padding: 14px 16px;
  background: #fff8e8;
  border: 1px solid #f0d9a7;
  border-left: 4px solid #d9a441;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

.admonition.note .admonition-title {
  margin: 0 0 8px;
  font-size: 0.95rem;
  font-weight: 700;
  color: #5f4300;
  line-height: 1.3;
}

.admonition.note .last {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #444;
}