/* Moving homepage, with a poster for reduced motion and blocked autoplay. */
.hero-photo { inset:0; background:none; filter:saturate(.65); }
.hero-video { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero::after { background:linear-gradient(90deg,#101010f5 0%,#101010ac 35%,#10101020 77%),linear-gradient(0deg,#101010 0%,transparent 40%); }
.video-toggle { position:absolute; right:4.5%; bottom:65px; z-index:2; display:flex; gap:10px; align-items:center; padding:10px 12px; background:#10101070; border:1px solid #ffffff50; min-height:40px; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.hero-video:focus { outline:none; }
.nav-shop-link { position:relative; display:grid; place-items:center; min-height:44px; min-width:27px; }
.nav-shop-link:hover { color:var(--accent); }
.cart-count { position:absolute; right:-6px; top:0; font-size:8px; min-width:15px; height:15px; display:grid; place-items:center; border-radius:50%; background:var(--paper); color:#111; letter-spacing:0; }
.nav-right { gap:14px; }
.site-nav { gap:22px; }

/* A readable menu, one section at a time. */
.restaurant-menu-link { margin-top:-10px; padding-bottom:40px; }
.menu-sample-note { border-left:2px solid var(--accent); color:var(--accent); font-size:12px; line-height:1.7; padding:10px 18px; margin-bottom:40px; background:#c9a44c08; }
.food-menu-grid { display:grid; grid-template-columns:1fr 1fr; gap:65px 70px; }
.food-category-head { display:flex; align-items:center; gap:22px; padding-bottom:20px; border-bottom:1px solid #656157; }
.food-category-head .meta { color:var(--accent); }
.food-category-head h2,.buffet-menu h2 { font-family:var(--heading); font-weight:500; font-size:48px; text-transform:uppercase; }
.food-menu-item { display:flex; justify-content:space-between; gap:25px; padding:22px 0; border-bottom:1px solid var(--line); }
.food-menu-item h3 { font-weight:400; font-size:15px; line-height:1.7; }
.food-menu-item>span { font-size:13px; color:var(--muted); white-space:nowrap; padding-top:3px; }
.menu-booking { padding-top:55px; }
.buffet-menu { padding:35px 0; }
.buffet-menu h2 { margin-top:20px; }

/* Photographic prints make the gallery action unmistakable. */
.photo-download-panel { position:relative; min-height:590px; overflow:hidden; background:radial-gradient(ellipse at 10% 20%,#42363d,#1b1a1b 65%); display:flex; justify-content:flex-end; align-items:center; padding:65px 6%; }
.photo-print { position:absolute; width:31%; padding:12px 12px 30px; background:#d6d0c4; box-shadow:15px 20px 45px #0008; }
.photo-print img { width:100%; height:280px; object-fit:cover; }
.photo-print>span { position:absolute; bottom:10px; left:14px; color:#45413a; font-size:8px; letter-spacing:.14em; }
.print-one { left:1%; top:48px; transform:rotate(-11deg); }
.print-one img { object-position:center 95%; }
.print-two { left:16%; top:180px; transform:rotate(8deg); }
.print-two img { object-position:30% 65%; }
.photo-download-copy { position:relative; z-index:1; width:44%; }
.photo-download-copy h2 { font-family:var(--heading); font-size:clamp(44px,5vw,71px); line-height:.97; font-weight:500; margin:22px 0; text-transform:uppercase; }
.photo-download-copy>p:not(.eyebrow):not(.source-note) { color:#c6c0b7; font-size:13px; line-height:1.9; }
.photo-download-cta { margin-top:26px; text-align:center; }

/* Full-width charcoal map, with a real geographic marker and visible attribution. */
.dark-map { padding-bottom:16px; }
.dark-map .map-heading { padding-top:8px; margin-bottom:25px; }
.dark-map .map-panel { height:270px; border:0; background:#181919; overflow:hidden; }
.map-visual { position:absolute; inset:0; display:block; }
.map-tiles { position:absolute; inset:0; overflow:hidden; filter:grayscale(1) invert(1) brightness(.8) contrast(.85); }
.map-tiles img { position:absolute; width:256px; height:256px; max-width:none; }
.map-shade { pointer-events:none; position:absolute; z-index:2; inset:0; background:linear-gradient(90deg,#101010b0,transparent 27%,transparent 73%,#101010b0),linear-gradient(180deg,#101010dd,transparent 30%,transparent 75%,#10101095); }
.map-location { position:absolute; left:50%; top:50%; transform:translate(-50%,-100%); z-index:3; display:flex; align-items:center; flex-direction:column; color:#c9a44c; filter:drop-shadow(0 3px 5px #0009); }
.map-location-label { color:var(--paper); background:#101010; border:1px solid #6a6156; padding:8px 12px; margin-bottom:8px; font-size:11px; font-weight:500; letter-spacing:.12em; white-space:nowrap; }
.map-visual:hover .map-location-label { border-color:var(--accent); }
.dark-map .map-credit { position:absolute; z-index:4; right:10px; bottom:7px; padding:3px 7px; background:#101010dd; font-size:10px; line-height:1.7; color:var(--muted); }
.map-credit a { text-decoration:underline; }

/* Share the news through the phone share sheet, with desktop alternatives. */
.article-back,.news-actions { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.news-actions { margin-top:26px; flex-wrap:wrap; }
.news-actions .text-link { margin-top:0; }
.share-news { gap:12px; flex-shrink:0; }
#share-dialog { background:#191919; border:1px solid #5c584f; color:var(--paper); max-width:min(540px,calc(100vw - 32px)); padding:30px; }
.share-heading { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-bottom:24px; }
.share-heading h2 { font-family:var(--heading); font-size:40px; font-weight:500; }
.share-heading button { font-size:28px; width:44px; height:44px; }
.share-options { display:flex; flex-wrap:wrap; gap:12px; margin-top:25px; }
.share-options .btn { font-size:10px; padding:13px 17px; }
.share-text { margin-top:25px; width:100%; min-height:110px; background:#111; color:#b5b0a5; border:1px solid #444; padding:14px; font:12px/1.8 var(--body); resize:vertical; }

/* Store, customer account and preview checkout. */
.shop-quick-links { display:flex; justify-content:flex-end; gap:28px; margin-bottom:30px; }
.shop-notice { border:1px solid #51483e; background:#c9a44c06; padding:18px; color:var(--accent); font-size:12px; line-height:1.75; }
.shop-notice .btn { margin-top:22px; }
.purchase-form { margin-top:28px; }
.size-options { padding:0; margin:0; border:0; display:flex; gap:10px; }
.size-options legend { font-size:11px; letter-spacing:.09em; text-transform:uppercase; margin-bottom:15px; }
.size-option { position:relative; }
.size-option input { position:absolute; opacity:0; width:1px; height:1px; }
.size-option span { display:grid; place-items:center; width:54px; height:48px; border:1px solid #605c53; cursor:pointer; font-size:14px; }
.size-option input:checked+span { background:var(--paper); color:#111; border-color:var(--paper); }
.size-option input:focus-visible+span { outline:2px solid var(--accent); outline-offset:4px; }
.size-option input:disabled+span { opacity:.35; text-decoration:line-through; cursor:not-allowed; }
.stock-available { color:var(--accent); font-size:12px; margin:18px 0; min-height:18px; }
.purchase-row { display:flex; align-items:flex-end; gap:14px; }
.quantity-field { width:95px; flex-shrink:0; }
.quantity-field>span { font-size:10px; text-transform:uppercase; }
.purchase-row .btn { margin:0; flex:1; min-height:51px; }
.event-detail .shop-quick-links { justify-content:flex-start; margin-top:30px; }
.commerce-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr); gap:60px; align-items:start; }
.cart-line { display:grid; grid-template-columns:120px minmax(0,1fr) auto; gap:25px; align-items:center; padding:25px 0; border-bottom:1px solid var(--line); }
.cart-line:first-child { border-top:1px solid var(--line); }
.cart-thumbnail { background:#24221e; aspect-ratio:1; display:grid; place-items:center; }
.cart-thumbnail svg { width:100%; }
.cart-line h2 { font-weight:500; font-size:19px; margin:0 0 12px; }
.cart-line .muted { font-size:12px; }
.cart-line>strong { font-size:15px; white-space:nowrap; }
.cart-line-controls { display:flex; gap:20px; align-items:center; margin-top:20px; }
.quantity-controls { display:flex; align-items:center; border:1px solid #555; }
.quantity-controls button { height:37px; width:34px; font-size:18px; }
.quantity-controls span { width:24px; text-align:center; font-size:12px; }
.remove-product { color:var(--muted); font-size:10px; text-decoration:underline; padding:10px 0; }
.order-summary { background:#1b1b19; border:1px solid var(--line); padding:30px; position:sticky; top:25px; }
.order-summary>.btn { width:100%; margin:25px 0; font-size:10px; }
.summary-line { display:flex; justify-content:space-between; align-items:start; gap:25px; padding:20px 0; border-bottom:1px solid var(--line); font-size:13px; line-height:1.6; }
.summary-line>span:first-child { color:var(--muted); }
.summary-line>strong { text-align:right; flex-shrink:0; }
.order-summary .body-copy { margin-top:20px; font-size:12px; }
.order-total { font-size:17px; border:0; }
.order-total strong { flex-shrink:1; }
.empty-cart { min-height:300px; }
.empty-cart h2 { font-size:26px; font-weight:400; margin-bottom:35px; }
.auth-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:60px; align-items:stretch; }
.auth-panel { border:1px solid var(--line); padding:35px; min-width:0; }
.auth-panel h2,.order-summary h2 { font-family:var(--heading); font-size:36px; line-height:1.1; font-weight:500; margin-bottom:26px; }
.auth-panel form>.field { margin-bottom:20px; }
.field>span { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:#bbb8b0; }
.auth-panel form>.btn { margin-top:26px; }
.form-error { color:#ffc1af; font-size:12px; line-height:1.7; margin-top:14px; }
.form-error:empty { display:none; }
.account-brand { min-height:370px; background:linear-gradient(#10101060,#10101090),url('assets/restaurant.webp') center 60%/cover; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:50px; gap:25px; }
.account-brand img { width:80%; max-width:360px; }
.account-brand>span { font-family:var(--heading); font-size:30px; letter-spacing:.14em; }
.account-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.account-heading .text-link { font-size:10px; }
.order-history { padding:18px 0; border-bottom:1px solid var(--line); }
.order-history strong { font-size:12px; }
.order-history p { color:var(--accent); font-size:11px; margin:9px 0; }
.order-history>span { color:var(--muted); font-size:11px; }
.checkout-signin { margin-bottom:70px; }
.delivery-options { padding:0; margin:0 0 30px; border:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.delivery-options label { display:flex; align-items:start; border:1px solid #555; padding:18px; gap:10px; font-size:13px; cursor:pointer; }
.delivery-options label:has(input:checked) { border-color:var(--accent); background:#c9a44c07; }
.delivery-options input { accent-color:var(--accent); margin:2px 0 0; }
.delivery-options small { display:block; margin-top:9px; font-size:10px; line-height:1.65; color:var(--muted); }
[hidden] { display:none!important; }
.payment-placeholder { margin-top:30px; padding:22px; background:#c9a44c08; border-left:2px solid var(--accent); }
.payment-placeholder h3 { font-size:16px; font-weight:500; margin-bottom:12px; }
.payment-placeholder p { font-size:12px; line-height:1.8; color:var(--muted); }
#checkout-form>button { margin-top:25px; }
.order-confirmation { border:1px solid var(--line); padding:45px; text-align:center; }
.order-tick { display:block; font-size:48px; color:var(--accent); margin-bottom:20px; }
.order-confirmation p+p { margin-top:15px; color:var(--accent); font-size:12px; }
.order-confirmation .btn { margin:30px 8px 0; }

@media(max-width:1150px) {
  .nav-left { gap:12px; }
  .site-nav { gap:16px; }
  .nav-right { gap:9px; }
  .nav-left a { font-size:9px; }
  .commerce-grid { gap:30px; }
  .cart-line { grid-template-columns:95px minmax(0,1fr) auto; gap:15px; }
}
@media(max-width:1000px) {
  .site-nav { grid-template-columns:1fr auto; height:auto; padding-top:16px; gap:10px 20px; }
  .nav-right { grid-column:2; grid-row:1; }
  .nav-left { grid-column:1/-1; grid-row:2; justify-content:space-between; }
  .nav-left a { font-size:10px; }
  .food-menu-grid { gap:40px; }
}
@media(max-width:700px) {
  .site-nav { padding:14px 6% 10px; }
  .nav-right { gap:13px; }
  .nav-left a { font-size:9px; }
  .nav-shop-link { min-width:24px; }
  .hero-photo { inset:0; opacity:.9; background:none; }
  .hero-video { object-position:58% center; }
  .hero::after { background:linear-gradient(90deg,#101010bc,#10101030),linear-gradient(0deg,#101010,transparent 85%); }
  .video-toggle { right:6%; bottom:55px; font-size:8px; padding:8px 10px; }
  .food-menu-grid { grid-template-columns:1fr; gap:45px; }
  .food-category-head h2 { font-size:42px; }
  .food-menu-item h3 { font-size:14px; }
  .food-menu-item { gap:20px; padding:19px 0; }
  .photo-download-panel { min-height:770px; padding:350px 25px 35px; align-items:flex-end; }
  .photo-print { width:63%; padding:9px 9px 26px; }
  .photo-print img { height:210px; }
  .print-one { top:30px; left:-7%; }
  .print-two { top:85px; left:41%; }
  .photo-download-copy { width:100%; }
  .photo-download-copy h2 { font-size:49px; }
  .photo-download-cta { width:100%; font-size:10px; padding:15px; }
  .dark-map .map-panel { height:240px; }
  .map-shade { background:linear-gradient(180deg,#101010b0,transparent 35%); }
  .article-back { gap:15px; }
  .article-back .text-link { font-size:9px; }
  .shop-quick-links { justify-content:flex-start; gap:24px; }
  .commerce-grid,.auth-layout { grid-template-columns:1fr; gap:30px; }
  .order-summary { position:static; padding:25px; }
  .cart-line { grid-template-columns:76px minmax(0,1fr); gap:17px; }
  .cart-line>strong { grid-column:2; margin-top:-4px; font-size:13px; }
  .cart-line h2 { font-size:16px; }
  .cart-line-controls { gap:16px; }
  .auth-panel { padding:25px 20px; }
  .auth-panel h2 { font-size:32px; }
  .auth-panel .form-grid { grid-template-columns:1fr; }
  .account-brand { display:none; }
  .delivery-options { grid-template-columns:1fr; }
  .delivery-options label { min-height:65px; }
  .purchase-row .btn { font-size:10px; padding:15px 12px; gap:12px; }
  .quantity-field { width:80px; }
  .order-confirmation { padding:30px 22px; }
  .order-confirmation .btn { width:100%; margin:20px 0 0; font-size:10px; }
}

.menu-allergen-codes { margin-top:6px; font-size:10px; }
.menu-allergen-legend { margin-top:60px; border-top:1px solid var(--line); padding-top:24px; }
.menu-allergen-legend h2 { font-size:20px; margin-bottom:15px; }
.menu-allergen-legend p { color:var(--muted); font-size:13px; line-height:2; margin-top:12px; }
.menu-allergen-legend span { display:inline-block; }
