:root {
  --ink: #171717;
  --muted: #555;
  --dots: #8a8a8a;
  --navy: #062a47;
  --gold: #d4af37;
  --sea: #e9f5f3;
}

* { box-sizing: border-box; }
html { background: var(--sea); }
body { background: linear-gradient(180deg,#eef8f6 0%,#e6f2f1 45%,#f6f3ea 100%); color: var(--ink); margin: 0; min-height: 100vh; position: relative; }
.greek-backdrop { inset: 0; opacity: .095; pointer-events: none; position: fixed; z-index: 0; }
.greek-backdrop::before,
.greek-backdrop::after { background-color: transparent; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cpath d='M3 33V3h30v20H13V13h10' fill='none' stroke='%23062a47' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: repeat-y; background-size: 32px 32px; bottom: 0; content: ""; position: absolute; top: 0; width: 32px; }
.greek-backdrop::before { left: 18px; }
.greek-backdrop::after { right: 18px; transform: scaleX(-1); }
.official-menu-header { align-items: center; backdrop-filter: blur(14px); background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(6,42,71,.1); display: grid; grid-template-columns: 1fr auto 1fr; height: 72px; padding: 0 clamp(20px,5vw,68px); position: relative; z-index: 10; }
.official-menu-brand { justify-self: start; }
.official-menu-brand img { display: block; height: auto; width: 118px; }
.official-menu-header-title { color: var(--navy); font: 600 .72rem/1 Inter,Arial,sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.official-menu-back { color: var(--navy); font: 700 .7rem/1 Inter,Arial,sans-serif; justify-self: end; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.official-menu-back span { color: var(--gold); font-size: 1rem; margin-left: 6px; }
.menu-closure-notice { background: rgba(255,255,255,.94); border-left: 4px solid var(--gold); box-shadow: 0 12px 34px rgba(3,28,48,.1); color: var(--navy); display: grid; gap: 5px 20px; grid-template-columns: auto minmax(0,1fr); margin: 24px auto 0; max-width: 930px; padding: 14px 20px; position: relative; width: calc(100% - clamp(40px,10vw,120px)); z-index: 2; }
.menu-closure-notice[hidden] { display: none; }
.menu-closure-notice strong { color: #8a6a09; font: 800 .66rem/1.45 Inter,Arial,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.menu-closure-notice span { font: 400 .78rem/1.5 Inter,Arial,sans-serif; }
.menu-page-shell { background: #fff; border: 1px solid rgba(6,42,71,.08); border-radius: 26px; box-shadow: 0 28px 80px rgba(6,42,71,.12); margin: clamp(30px,5vw,58px) auto 70px; max-width: 930px; overflow: hidden; position: relative; width: calc(100% - clamp(40px,10vw,120px)); z-index: 1; }
.menu-intro { background: linear-gradient(135deg,#073454 0%,#0b4963 100%); color: #fff; overflow: hidden; padding: 54px 64px 50px; position: relative; }
.menu-intro::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M4 44V4h40v28H16V16h16' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3C/svg%3E"); content: ""; inset: 0; opacity: .055; position: absolute; }
.menu-intro > * { position: relative; z-index: 1; }
.menu-intro p { color: var(--gold); font: 800 .68rem/1 Inter,Arial,sans-serif; letter-spacing: .18em; margin: 0 0 14px; text-transform: uppercase; }
.menu-intro h1 { font: 500 clamp(2.7rem,7vw,4.5rem)/.98 "Playfair Display",Georgia,serif; margin: 0; }
.menu-intro > span { color: rgba(255,255,255,.72); display: block; font: 400 .9rem/1.5 Inter,Arial,sans-serif; margin-top: 17px; }
.menu-document { padding: 64px 64px 100px; }
.menu-loading { color: var(--muted); font: 500 1rem/1.5 Inter,Arial,sans-serif; margin: 0; text-align: center; }
.pdf-section { margin: 0 0 54px; }
.pdf-section + .pdf-section { padding-top: 8px; }
.pdf-heading { align-items: start; display: grid; gap: 20px; grid-template-columns: minmax(0,1fr) auto; margin-bottom: 25px; }
.pdf-heading-titles { min-width: 0; }
.pdf-heading h2,
.pdf-heading p { font-family: "Century Gothic","Avenir Next",Inter,Arial,sans-serif; line-height: 1.08; margin: 0; text-transform: uppercase; }
.pdf-heading h2 { color: var(--navy); font-size: clamp(1rem,2.2vw,1.18rem); font-weight: 800; letter-spacing: -.015em; }
.pdf-heading p { color: var(--muted); font-size: clamp(.98rem,2.1vw,1.16rem); font-weight: 400; margin-top: 3px; }
.pdf-currency { color: var(--gold); font: 800 .67rem/1 Inter,Arial,sans-serif; letter-spacing: .04em; padding-top: 4px; }
.pdf-items { display: grid; gap: 17px; }
.pdf-item { min-width: 0; }
.pdf-item-top { align-items: end; display: grid; gap: 7px; grid-template-columns: minmax(0,auto) minmax(14px,1fr) auto; }
.pdf-item h3,
.pdf-item-description,
.pdf-price { font-family: "Century Gothic","Avenir Next",Inter,Arial,sans-serif; }
.pdf-item h3 { font-size: clamp(.98rem,2.1vw,1.12rem); font-weight: 400; line-height: 1.28; margin: 0; min-width: 0; overflow-wrap: anywhere; }
.pdf-leader { border-bottom: 1px dotted var(--dots); margin-bottom: .34em; min-width: 14px; }
.pdf-price { color: var(--navy); font-size: .77rem; font-weight: 800; line-height: 1.2; white-space: nowrap; }
.pdf-price-block { align-items: flex-end; display: flex; flex-direction: column; gap: 2px; }
.pdf-price-block small { color: var(--muted); font: 400 .55rem/1.1 "Century Gothic","Avenir Next",Inter,Arial,sans-serif; white-space: nowrap; }
.pdf-item-description { font-size: clamp(.76rem,1.65vw,.87rem); line-height: 1.36; margin: 5px 0 0; }
.pdf-footnote { color: var(--muted); font: 400 .76rem/1.45 "Century Gothic","Avenir Next",Inter,Arial,sans-serif; margin: 18px 0 0; }
.pdf-section-note { background: rgba(6,42,71,.06); color: var(--navy); font: 700 .72rem/1.4 "Century Gothic","Avenir Next",Inter,Arial,sans-serif; margin: 18px 0 0; padding: 8px 12px; text-align: center; }
.menu-error { color: #7a1d1d; font: 600 1rem/1.5 Inter,Arial,sans-serif; margin: 0; text-align: center; }
.back-to-top { align-items: center; background: var(--navy); border: 1px solid rgba(255,255,255,.22); border-radius: 999px; bottom: max(22px,env(safe-area-inset-bottom)); box-shadow: 0 12px 34px rgba(6,42,71,.25); color: #fff; cursor: pointer; display: flex; gap: 9px; opacity: 0; padding: 10px 16px 10px 12px; pointer-events: none; position: fixed; right: clamp(16px,3vw,38px); transform: translateY(14px); transition: opacity 180ms ease,transform 180ms ease,background 180ms ease; z-index: 30; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.back-to-top:hover { background: #0b4963; }
.back-to-top:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.back-to-top span { align-items: center; background: rgba(255,255,255,.12); border-radius: 50%; display: flex; font: 700 1rem/1 Inter,Arial,sans-serif; height: 28px; justify-content: center; width: 28px; }
.back-to-top strong { font: 800 .64rem/1 Inter,Arial,sans-serif; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 600px) {
  .greek-backdrop::before { left: 2px; }
  .greek-backdrop::after { right: 2px; }
  .official-menu-header { grid-template-columns: 1fr auto; height: 66px; padding-inline: 18px; }
  .official-menu-brand img { width: 104px; }
  .official-menu-header-title { display: none; }
  .official-menu-back { font-size: .62rem; }
  .menu-closure-notice { gap: 5px; grid-template-columns: 1fr; margin-top: 16px; padding: 13px 16px; width: calc(100% - 24px); }
  .menu-page-shell { border-radius: 18px; margin: 20px auto 36px; width: calc(100% - 24px); }
  .menu-intro { padding: 40px 25px 37px; }
  .menu-intro h1 { font-size: clamp(2.65rem,14vw,3.5rem); }
  .menu-document { padding: 42px 20px 72px; }
  .pdf-section { margin-bottom: 46px; }
  .pdf-heading { gap: 12px; margin-bottom: 22px; }
  .pdf-heading h2 { font-size: .98rem; }
  .pdf-heading p { font-size: .94rem; }
  .pdf-items { gap: 19px; }
  .pdf-item-top { gap: 5px; grid-template-columns: minmax(0,auto) minmax(8px,1fr) auto; }
  .pdf-item h3 { font-size: .96rem; }
  .pdf-item-description { font-size: .78rem; line-height: 1.42; }
  .pdf-price { font-size: .7rem; }
  .back-to-top { border-radius: 50%; bottom: max(14px,env(safe-area-inset-bottom)); height: 46px; padding: 8px; right: 14px; width: 46px; }
  .back-to-top span { background: transparent; height: 28px; width: 28px; }
  .back-to-top strong { display: none; }
}

@media (max-width: 340px) {
  .menu-document { padding-inline: 15px; }
  .official-menu-back { letter-spacing: .02em; }
  .pdf-heading { grid-template-columns: minmax(0,1fr); }
  .pdf-currency { display: none; }
}

@media print {
  @page { margin: 18mm; size: A4; }
  body { background: #fff; }
  .greek-backdrop,
  .official-menu-header,
  .menu-intro,
  .back-to-top { display: none; }
  .menu-page-shell { border: 0; border-radius: 0; box-shadow: none; margin: 0; max-width: none; width: 100%; }
  .menu-document { max-width: none; padding: 0; }
  .pdf-section { break-inside: avoid-page; }
  .pdf-item { break-inside: avoid; }
}
