/* La Déesse website. Theme Rouge: the menu-book oxblood is the ground from top to bottom.
   Luxury through typography, the jewel goddess and space. No weak photography on show.
   Colours, type and spacing come from ds/ladeesse/tokens.css. */

html, body { margin: 0; background: var(--surface); }
.ldp { background: var(--surface); color: var(--ink); font-family: var(--font-text); }
.ldp .ld-siteheader--overlay { background: transparent; }
.ldp .ld-footer { background: var(--oxblood); }

.ldp-wrap { box-sizing: border-box; width: 100%; max-width: var(--width-page); margin-inline: auto; padding-inline: var(--space-8); }
.ldp-section { padding-block: var(--space-9); }
/* Stage: the original velvet red, always in motion like light on water: two slow ribbons of
   light cross each other (their overlap reads as moving reflections) while soft pools of
   light drift underneath. Transforms only. */
.ldp-stage {
  position: relative; color: var(--on-dark);
  background:
    radial-gradient(60% 50% at 50% 32%, rgba(150, 46, 62, 0.5) 0%, rgba(150, 46, 62, 0) 70%),
    radial-gradient(140% 110% at 50% 35%, #5b1922 0%, #4c141c 55%, #2a0a0f 100%),
    #5b1922;
}
.ldp-stage__sheen { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.ldp-stage__sheen::before, .ldp-stage__sheen::after, .ldp-stage__sheen > span {
  content: ""; position: absolute; top: -60%; bottom: -60%; left: -60%; right: -60%; will-change: transform;
}
/* drifting pools of light and shade */
.ldp-stage__sheen::before {
  background:
    radial-gradient(22% 18% at 32% 42%, rgba(255, 196, 186, 0.08), rgba(255, 196, 186, 0) 70%),
    radial-gradient(18% 15% at 68% 58%, rgba(255, 214, 200, 0.06), rgba(255, 214, 200, 0) 70%),
    radial-gradient(26% 20% at 55% 30%, rgba(18, 0, 4, 0.11), rgba(18, 0, 4, 0) 70%),
    radial-gradient(20% 16% at 40% 66%, rgba(18, 0, 4, 0.09), rgba(18, 0, 4, 0) 70%);
  animation: ldp-drift 36s ease-in-out infinite alternate;
}
/* ribbon A */
.ldp-stage__sheen::after {
  background: repeating-linear-gradient(90deg,
    rgba(255, 220, 205, 0) 0px, rgba(255, 220, 205, 0.03) 110px, rgba(255, 220, 205, 0) 220px,
    rgba(18, 0, 4, 0.045) 330px, rgba(255, 220, 205, 0) 440px);
  animation: ldp-flow-a 34s linear infinite;
}
/* ribbon B, crossing the other way */
.ldp-stage__sheen > span {
  background: repeating-linear-gradient(90deg,
    rgba(255, 228, 214, 0) 0px, rgba(255, 228, 214, 0.025) 80px, rgba(255, 228, 214, 0) 160px,
    rgba(18, 0, 4, 0.035) 240px, rgba(255, 228, 214, 0) 320px);
  animation: ldp-flow-b 28s linear infinite;
}
@keyframes ldp-drift {
  0% { transform: translate(-6%, -3%) rotate(-4deg) scale(1); }
  50% { transform: translate(4%, 3%) rotate(3deg) scale(1.08); }
  100% { transform: translate(7%, -4%) rotate(6deg) scale(1.02); }
}
@keyframes ldp-flow-a { from { transform: rotate(-22deg) translateX(0); } to { transform: rotate(-22deg) translateX(440px); } }
@keyframes ldp-flow-b { from { transform: rotate(28deg) translateX(0); } to { transform: rotate(28deg) translateX(-320px); } }
/* the stage's lower edge settles into one even tone (#3a0f16), so the still gradient below
   continues it without a seam; the moving light fades out before the edge */
.ldp-stage { background-image:
    linear-gradient(180deg, rgba(58, 15, 22, 0) 72%, #3a0f16 100%),
    radial-gradient(60% 50% at 50% 32%, rgba(150, 46, 62, 0.5) 0%, rgba(150, 46, 62, 0) 70%),
    radial-gradient(140% 110% at 50% 35%, #5b1922 0%, #4c141c 55%, #2a0a0f 100%); }
.ldp-stage__sheen {
  -webkit-mask-image: linear-gradient(180deg, #000 65%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 65%, transparent 100%);
}
.ldp-stage > header { position: relative; }

/* Below the stage: no animation, just a still gradient from the stage edge into the old
   velvet red, settling into oxblood where the night section begins */
.ldp-flow {
  color: var(--on-dark);
  background: linear-gradient(180deg, #3a0f16 0%, #5b1922 30%, #5b1922 65%, #210a10 100%);
}
.ldp-flow .ldp-text, .ldp-flow .ldp-dish__desc { color: var(--on-dark-muted); }
.ldp-flow .ldp-kicker, .ldp-flow .ldp-times dd, .ldp-flow .ldp-dish__price { color: var(--gilt-on-dark); }
.ldp-flow .ldp-photo { background: rgba(33, 10, 16, 0.5); }
/* the menu is long: reach the old red quickly, stay there, settle into oxblood above the footer */
.ldp-flow--menu {
  --surface: #3a0f16;
  background: linear-gradient(180deg, #3a0f16 0, #5b1922 480px, #5b1922 calc(100% - 480px), #210a10 100%);
}
.ldp-stage .ld-siteheader--overlay { background: transparent; }
.ldp-stage .ldp-lead, .ldp-stage .ldp-note, .ldp-stage .ldp-text { color: var(--on-dark-muted); }
.ldp-stage .ldp-kicker { color: var(--gilt-on-dark); }

/* Small tracked caps line */
.ldp-kicker { margin: 0; font-family: var(--font-ui); font-size: 12px; font-weight: 500; line-height: 1.4; letter-spacing: 0.32em; text-transform: uppercase; color: var(--gilt); }
.ldp-note { margin: 0; font-family: var(--font-ui); font-size: 12px; line-height: 1.5; letter-spacing: 0.02em; color: var(--ink-muted); }
.ldp-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); }

/* Hero: the gold line goddess, centred, the words beneath like a menu-book title page */
.ldp-hero { box-sizing: border-box; display: flex; flex-direction: column; align-items: center; text-align: center; padding: calc(var(--header-height-total) + var(--space-6)) var(--space-8) var(--space-8); }
/* The goddess blooms: rings of light rise from her face and travel outward, like a jellyfish
   pulse or a flower opening, while the whole figure breathes. Light gold dominates; the darker
   band is at most a third of each ring. */
@property --ldp-bloom { syntax: "<length>"; inherits: false; initial-value: 0px; }
.ldp-hero__emblem {
  display: block; width: 500px; max-width: 80%; aspect-ratio: 880 / 665; margin-bottom: var(--space-6);
  background: repeating-radial-gradient(circle at 50% 44%,
    #9a6f1a calc(var(--ldp-bloom) - 150px),
    #c3943a calc(var(--ldp-bloom) - 125px),
    #d9ae55 calc(var(--ldp-bloom) - 100px),
    #e4bd68 calc(var(--ldp-bloom) - 60px),
    #c3943a calc(var(--ldp-bloom) - 25px),
    #9a6f1a var(--ldp-bloom));
  -webkit-mask: url(../img/la-deesse-emblem-gold.svg) center / contain no-repeat;
  mask: url(../img/la-deesse-emblem-gold.svg) center / contain no-repeat;
  animation: ldp-bloom 5s linear infinite, ldp-breathe 5s ease-in-out infinite;
  will-change: transform;
}
@keyframes ldp-bloom { from { --ldp-bloom: 0px; } to { --ldp-bloom: 150px; } }
@keyframes ldp-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.025); } }
/* soft glow behind her that swells with each pulse */
.ldp-hero { position: relative; }
.ldp-hero::before {
  content: ""; position: absolute; left: 50%; top: calc(var(--header-height-total) + var(--space-6) + 150px);
  width: 640px; height: 460px; margin-left: -320px; margin-top: -230px; pointer-events: none;
  background: radial-gradient(closest-side, rgba(214, 160, 70, 0.22), rgba(214, 160, 70, 0) 100%);
  animation: ldp-glow 5s ease-in-out infinite; will-change: transform, opacity;
}
@keyframes ldp-glow { 0%, 100% { opacity: .55; transform: scale(.92); } 50% { opacity: 1; transform: scale(1.06); } }
.ldp-hero > * { position: relative; }
.ldp-hero .ldp-display {
  background: linear-gradient(100deg,
    #a8791b 0%, #a8791b 12%, #ecd08e 20%, #a8791b 28%, #a8791b 50%,
    #a8791b 62%, #ecd08e 70%, #a8791b 78%, #a8791b 100%) 0 0 / 200% 100%;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: ldp-metal 9s linear -2s infinite;
}
@keyframes ldp-metal { from { background-position: 100% 0; } to { background-position: 0% 0; } }
@media (prefers-reduced-motion: reduce) {
  .ldp-stage__sheen::before, .ldp-stage__sheen::after, .ldp-stage__sheen > span,
  .ldp-hero__emblem, .ldp-hero .ldp-display, .ldp-hero::before { animation: none; }
}

.ldp-hero .ldp-kicker { margin-bottom: var(--space-5); letter-spacing: 0.42em; }
.ldp-display { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 38px; line-height: 1; letter-spacing: 0.3em; margin-right: -0.3em; text-transform: uppercase; color: var(--gold); }
.ldp-hero__rule { display: flex; align-items: center; gap: var(--space-4); width: 200px; margin: var(--space-5) 0; }
.ldp-hero__rule span { flex: 1; height: 1px; background: var(--gold); opacity: 0.7; }
.ldp-hero__rule i { width: 7px; height: 7px; background: var(--gold); transform: rotate(45deg); }
.ldp-lead { margin: 0 0 var(--space-7); max-width: 30em; font-family: var(--font-text); font-weight: 300; font-style: italic; font-size: 18px; line-height: 1.5; color: var(--ink-muted); }
.ldp-hero .ldp-ctas { justify-content: center; }

/* Section heads */
.ldp-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-4); margin-bottom: var(--space-8); }
.ldp-title { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 48px; line-height: 1.05; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); text-wrap: balance; }
.ldp-text { margin: 0; max-width: 34em; font-size: 19px; line-height: 1.65; color: var(--ink-muted); }

/* Photos: warm grade so generated and real images sit together; slow zoom on hover */
.ldp-photo { position: relative; margin: 0; overflow: hidden; background: var(--oxblood); }
.ldp-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s cubic-bezier(.2,.7,.2,1); }
.ldp-photo:hover img { transform: scale(1.04); }
.ldp-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(168, 121, 27, 0.35); }

/* Scroll reveal */
.ldp-js [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity 1s ease, transform 1.2s cubic-bezier(.2,.7,.2,1); }
.ldp-js [data-reveal].is-in { opacity: 1; transform: none; }
.ldp-js .ldp-dish:nth-child(2)[data-reveal] { transition-delay: .12s; }
.ldp-js .ldp-dish:nth-child(3)[data-reveal] { transition-delay: .24s; }

.ldp-title--left { text-align: left; }
.ldp-more { display: flex; justify-content: center; margin-top: var(--space-8); }

/* Das Haus: photo and words side by side */
.ldp-house__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-6); align-items: center; }
.ldp-house__photo { grid-column: 1 / span 6; aspect-ratio: 4 / 5; }
.ldp-house__copy { grid-column: 8 / span 5; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.ldp-times { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; margin: var(--space-2) 0; border-block: 1px solid var(--line); }
.ldp-times > div { padding: var(--space-4) var(--space-6) var(--space-4) 0; }
.ldp-times > div + div { padding-left: var(--space-6); border-left: 1px solid var(--line); }
.ldp-times dt { font-family: var(--font-display); font-size: 20px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink); }
.ldp-times dd { margin: var(--space-1) 0 0; font-family: var(--font-ui); font-size: 11px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); }

/* Signature dishes: three photographs, the middle one lifted */
.ldp-dishes { list-style: none; margin: 0; padding: var(--space-7) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); align-items: start; }
.ldp-dish { display: flex; flex-direction: column; gap: var(--space-3); }
.ldp-dish .ldp-photo { aspect-ratio: 4 / 5; margin-bottom: var(--space-2); }
.ldp-dish--lift { margin-top: calc(var(--space-7) * -1); }
.ldp-dish__meta { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); border-bottom: 1px solid var(--line); padding-bottom: var(--space-3); }
.ldp-dish__name { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 19px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); }
.ldp-dish__price { font-family: var(--font-display); font-size: 18px; font-variant-numeric: tabular-nums; color: var(--gold); white-space: nowrap; }
.ldp-dish__desc { margin: 0; font-size: 16px; line-height: 1.5; color: var(--ink-muted); }

/* Signature: one large photograph beside the menu lines */
.ldp-sig { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-6); align-items: center; padding-top: var(--space-7); }
.ldp-sig__photo { grid-column: 1 / span 7; aspect-ratio: 3 / 2; }
.ldp-sig__list { grid-column: 9 / span 4; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-6); }
.ldp-sig__list li { display: flex; flex-direction: column; gap: var(--space-2); }

/* The night: film and bar on oxblood */
.ldp-night { background: var(--oxblood); color: var(--on-dark); }
.ldp-night .ldp-title { color: var(--gold); }
.ldp-night .ldp-text { color: var(--on-dark-muted); }
.ldp-night .ldp-kicker { color: var(--gilt-on-dark); }
.ldp-night__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-6); align-items: center; }
.ldp-night__copy { grid-column: 1 / span 5; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.ldp-night__line { margin: var(--space-2) 0 0; font-family: var(--font-ui); font-size: 11px; font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; color: var(--gilt-on-dark); }
/* Film and drink have no frame: their backgrounds are baked to the oxblood of this section,
   so the goddess and the glass float freely in the room */
.ldp-film { grid-column: 8 / span 4; margin: 0; aspect-ratio: 9 / 16; overflow: hidden; background: var(--oxblood); }
.ldp-film__video { display: block; width: 100%; height: 100%; object-fit: cover;
  /* soft oval fade: browsers render video colours a touch differently, so no edge may show */
  -webkit-mask-image: radial-gradient(ellipse 72% 62% at 50% 42%, #000 45%, transparent 100%);
  mask-image: radial-gradient(ellipse 72% 62% at 50% 42%, #000 45%, transparent 100%); }
.ldp-night__drink { grid-column: 10 / span 3; margin-top: var(--space-9); overflow: visible; background: none; }
.ldp-night__drink::after { content: none; }
.ldp-night__drink img { aspect-ratio: 4 / 5; height: auto;
  -webkit-mask-image: radial-gradient(ellipse 66% 64% at 55% 52%, #000 55%, transparent 100%);
  mask-image: radial-gradient(ellipse 66% 64% at 55% 52%, #000 55%, transparent 100%); }
.ldp-night__drink:hover img { transform: none; }
.ldp-night__drink figcaption { margin-top: var(--space-4); text-align: center; font-family: var(--font-ui); font-size: 11px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--on-dark-muted); }

/* Velvet band for the booking call */
.ldp-velvet { background: var(--velvet); color: var(--on-dark); }
.ldp-velvet .ldp-title { color: var(--on-dark); }
.ldp-velvet .ldp-text { color: var(--on-dark); opacity: 0.86; }
.ldp-velvet .ldp-kicker { color: var(--gilt-on-dark); }
.ldp-center { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-5); }

/* Inner pages */
.ldp-pagehead { box-sizing: border-box; padding: calc(var(--header-height-total) + var(--space-9)) var(--space-8) var(--space-8); display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-4); }
.ldp-pagetitle { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 88px; line-height: 1; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); }
.ldp-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-9); align-items: start; }
.ldp-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-5); }
.ldp-facts strong { display: block; margin-bottom: var(--space-1); font-family: var(--font-ui); font-size: 11px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gilt); }
.ldp-facts span { font-size: 17px; line-height: 1.6; color: var(--ink-muted); }
.ldp-h2 { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 34px; line-height: 1.1; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); }
.ldp-form { width: 100%; display: flex; flex-direction: column; gap: var(--space-5); }
.ldp-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); align-items: start; }

@media (max-width: 900px) {
  .ldp-wrap { padding-inline: var(--space-4); }
  .ldp-section { padding-block: var(--space-8); }
  .ldp-hero { padding: calc(var(--header-height-phone) + var(--space-5)) var(--space-4) var(--space-7); }
  .ldp-hero::before { top: calc(var(--header-height-phone) + var(--space-5) + 95px); width: 400px; height: 300px; margin-left: -200px; margin-top: -150px; }
  .ldp-hero__emblem { width: 290px; max-width: 80%; margin-bottom: var(--space-5); }
  .ldp-hero .ldp-kicker { letter-spacing: 0.28em; }
  .ldp-hero__rule { width: 160px; margin: var(--space-4) 0; }
  .ldp-display { font-size: 26px; letter-spacing: 0.24em; margin-right: -0.24em; }
  .ldp-lead { font-size: 17px; }
  .ldp-title { font-size: 32px; }
  .ldp-house__grid, .ldp-night__grid { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-7); }
  .ldp-house__photo, .ldp-house__copy, .ldp-night__copy { grid-column: auto; }
  .ldp-dishes { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); padding-top: 0; }
  .ldp-dish--lift { margin-top: 0; }
  .ldp-film { grid-column: auto; width: 72%; justify-self: center; }
  .ldp-sig { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-7); padding-top: 0; }
  .ldp-sig__photo, .ldp-sig__list { grid-column: auto; }
  .ldp-times dt { font-size: 17px; }
  .ldp-times > div { padding-right: var(--space-4); }
  .ldp-times > div + div { padding-left: var(--space-4); }
  .ldp-pagehead { padding: calc(var(--header-height-phone) + var(--space-8)) var(--space-4) var(--space-6); }
  .ldp-pagetitle { font-size: 44px; }
  .ldp-cols, .ldp-fields { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
}

[data-ld] { display: contents; }

/* Speisekarte: the printed menu of the house. One framed card per chapter, stacked. */
.ldm { --ldm-gold: #b8892b; --ldm-line: rgba(205, 162, 71, 0.55); --ldm-ink: #f6ebcd; --ldm-muted: #c9b893;
  box-sizing: border-box; max-width: 1040px; margin: 0 auto; padding: var(--space-8) var(--space-6) var(--space-9);
  display: flex; flex-direction: column; gap: var(--space-8); }
.ldm [id] { scroll-margin-top: 88px; }
.ldm-page { position: relative; padding: 9px; border: 1px solid var(--ldm-line);
  background: radial-gradient(120% 70% at 50% 0%, #2c0c13 0%, #1b070c 60%, #150509 100%);
  box-shadow: 0 40px 90px -40px rgba(0, 0, 0, 0.85); color: var(--ldm-ink); }
.ldm-page__frame { position: relative; border: 1px solid var(--ldm-line); padding: var(--space-8) var(--space-8) var(--space-7); }
.ldm-corner { position: absolute; width: 9px; height: 9px; background: var(--ldm-gold); transform: rotate(45deg); }
.ldm-corner--tl { top: -5px; left: -5px; } .ldm-corner--tr { top: -5px; right: -5px; }
.ldm-corner--bl { bottom: -5px; left: -5px; } .ldm-corner--br { bottom: -5px; right: -5px; }

.ldm-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-3); margin-bottom: var(--space-7); }
.ldm-head__mark { width: 84px; height: auto; opacity: 0.95; margin-bottom: var(--space-2); }
.ldm-head__num { margin: 0; font-family: var(--font-ui); font-size: 10px; font-weight: 500; letter-spacing: 0.4em; text-transform: uppercase; color: var(--ldm-gold); }
.ldm-head__title { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 46px; line-height: 1.05; letter-spacing: 0.14em; margin-right: -0.14em; text-transform: uppercase; color: var(--ldm-gold); }
.ldm-head__line { margin: 0; font-family: var(--font-display); font-size: 13px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ldm-muted); }

/* "Für den Tisch": the sharing dish of the chapter, set apart in its own small frame */
.ldm-feature { display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: var(--space-5); row-gap: var(--space-1);
  max-width: 560px; margin: 0 auto var(--space-7); padding: var(--space-4) var(--space-5); border-block: 1px solid var(--ldm-line); }
.ldm-feature__kicker { grid-column: 1 / -1; margin: 0; font-family: var(--font-ui); font-size: 10px; font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; color: var(--ldm-gold); }
.ldm-feature__name { margin: 0; font-family: var(--font-display); font-size: 21px; letter-spacing: 0.1em; text-transform: uppercase; }
.ldm-feature__price { grid-row: 2; grid-column: 2; margin: 0; font-family: var(--font-display); font-size: 21px; font-variant-numeric: tabular-nums; color: var(--ldm-gold); }
.ldm-feature__desc { grid-column: 1 / -1; margin: 0; font-style: italic; font-size: 15px; color: var(--ldm-muted); }

.ldm-body { display: flex; flex-direction: column; gap: var(--space-7); }
.ldm-shead { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); margin-bottom: var(--space-5); text-align: center; }
.ldm-shead__rule { display: flex; align-items: center; gap: var(--space-3); width: 100%; max-width: 420px; }
.ldm-shead__rule span { flex: 1; height: 1px; background: var(--ldm-line); }
.ldm-shead__rule i { width: 6px; height: 6px; background: var(--ldm-gold); transform: rotate(45deg); }
.ldm-shead__title { margin: var(--space-2) 0 0; font-family: var(--font-display); font-weight: 400; font-size: 22px; letter-spacing: 0.24em; margin-right: -0.24em; text-transform: uppercase; color: var(--ldm-ink); }
.ldm-shead__sub { margin: 0; font-style: italic; font-size: 14px; color: var(--ldm-muted); }
.ldm-note { margin: calc(var(--space-3) * -1) 0 var(--space-4); text-align: center; font-style: italic; font-size: 14px; color: var(--ldm-muted); }

.ldm-items { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-8); row-gap: var(--space-5); }
.ldm-item { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ldm-item__name { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 16px; line-height: 1.35; letter-spacing: 0.07em; text-transform: uppercase; color: var(--ldm-ink); }
.ldm-item__name:not(.ldm-item__name--priced) + .ldm-line { margin-top: 2px; }
.ldm-line { display: flex; align-items: baseline; gap: var(--space-2); }
.ldm-line__name { min-width: 0; }
.ldm-item > .ldm-line .ldm-line__name { font-style: italic; font-size: 15px; text-transform: none; letter-spacing: 0; color: var(--ldm-muted); }
.ldm-line__dots { flex: 1; min-width: 24px; border-bottom: 1px dotted rgba(205, 162, 71, 0.5); transform: translateY(-4px); }
.ldm-line__price { font-family: var(--font-display); font-size: 16px; letter-spacing: 0.02em; font-variant-numeric: tabular-nums; color: var(--ldm-gold); white-space: nowrap; }
.ldm-item__desc { margin: 0; font-style: italic; font-size: 15px; line-height: 1.45; color: var(--ldm-muted); }
.ldm-item__meta { margin: 0; font-family: var(--font-ui); font-size: 9.5px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ldm-gold); opacity: 0.9; }
.ldm-sig { display: inline-block; width: 6px; height: 6px; margin: 0 9px 2px 0; background: var(--ldm-gold); transform: rotate(45deg); vertical-align: middle; }

/* Sides: a tight three-column list in its own frame */
.ldm-section--compact { padding: var(--space-5) var(--space-6) var(--space-6); border: 1px solid var(--ldm-line); }
.ldm-section--compact .ldm-items { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--space-6); row-gap: var(--space-3); }
.ldm-section--compact .ldm-item__name, .ldm-section--compact .ldm-line__price { font-size: 14px; }
.ldm-section--compact .ldm-item__desc { font-size: 13.5px; }

/* Bar: the drinks list reads in two columns of short sections */
.ldm-page--bar .ldm-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-8); row-gap: var(--space-7); }
.ldm-page--bar .ldm-items { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-4); }
.ldm-page--bar .ldm-shead__rule { max-width: 100%; }

.ldm-foot { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); margin-top: var(--space-7); text-align: center; }
.ldm-foot__closing { margin: 0; font-family: var(--font-display); font-size: 15px; letter-spacing: 0.32em; margin-right: -0.32em; text-transform: uppercase; color: var(--ldm-gold); }
.ldm-foot__small { margin: 0; font-family: var(--font-ui); font-size: 10px; letter-spacing: 0.12em; color: var(--ldm-muted); opacity: 0.85; }
.ldm-end { padding-top: var(--space-6); }

/* Reservierung: one screen, native controls (OpenTable/Resy pattern) */
.ldb { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: var(--space-6); scroll-margin-top: var(--space-4); }
.ldb__bar { display: grid; grid-template-columns: 1fr 1.2fr 1fr; border: 1px solid var(--line-strong); background: var(--surface-raised, transparent); }
.ldb__pick { display: flex; flex-direction: column; gap: 2px; padding: var(--space-3) var(--space-4); min-width: 0; cursor: pointer; }
.ldb__pick + .ldb__pick { border-left: 1px solid var(--line); }
.ldb__pick:focus-within { box-shadow: inset 0 -2px 0 var(--gold); }
.ldb__pick > span { font-family: var(--font-ui); font-size: 10px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-muted); }
.ldb__pick select, .ldb__pick input {
  width: 100%; min-height: 32px; margin: 0; padding: 0; border: 0; background: transparent; color: var(--ink);
  font-family: var(--font-text); font-size: 18px; line-height: 1.3; color-scheme: light; cursor: pointer; outline: none;
}
.ldb__pick select:disabled { color: var(--ink-faint); cursor: not-allowed; }
.ldb__label { margin: 0 0 var(--space-4); font-family: var(--font-ui); font-size: 11px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-muted); }
.ldb__chips { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: var(--space-2); }
.ldb__chip {
  min-height: 48px; border: 1px solid var(--line-strong); background: transparent; color: var(--ink);
  font-family: var(--font-ui); font-size: 15px; font-weight: 500; letter-spacing: 0.04em; font-variant-numeric: tabular-nums; cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.ldb__chip:hover:not(:disabled) { border-color: var(--gold); }
.ldb__chip.is-on { background: var(--gold); border-color: var(--gold); color: var(--on-gold); }
.ldb__chip:disabled { color: var(--ink-faint); border-style: dashed; text-decoration: line-through; cursor: not-allowed; }
.ldb__chip:focus-visible, .ldb__more:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ldb__info { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.ldb__contact { display: flex; flex-direction: column; gap: var(--space-5); }
.ldb__fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); align-items: start; }
.ldb__chosen { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); padding-bottom: var(--space-4); border-bottom: 1px solid var(--line); }
.ldp-pagehead--compact { padding-top: calc(var(--header-height-total) + var(--space-7)); padding-bottom: var(--space-6); }
.ldp-pagehead--compact .ldp-pagetitle { font-size: 64px; }
.ldb__summary { margin: 0; font-family: var(--font-display); font-size: 22px; letter-spacing: 0.04em; color: var(--gold); }
.ldb__more { align-self: flex-start; padding: 0; border: 0; background: none; color: var(--ink-muted); font-family: var(--font-text); font-size: 16px; font-style: italic; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.ldb__submit { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); }
.ldb--done { align-items: flex-start; gap: var(--space-4); padding: var(--space-7); border: 1px solid var(--line-strong); }
.ldb__title { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: 36px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); }
@media (max-width: 640px) {
  .ldb__bar { grid-template-columns: 1fr 1fr; }
  .ldb__pick:nth-child(2) { grid-column: 1 / -1; grid-row: 1; border-left: 0; border-bottom: 1px solid var(--line); }
  .ldb__pick:nth-child(1) { border-left: 0; }
  .ldm { padding: var(--space-6) var(--space-3) var(--space-8); gap: var(--space-6); }
  .ldm-page { padding: 6px; }
  .ldm-page__frame { padding: var(--space-7) var(--space-4) var(--space-6); }
  .ldm-head__title { font-size: 28px; letter-spacing: 0.1em; margin-right: -0.1em; }
  .ldm-head__line { font-size: 11px; letter-spacing: 0.2em; }
  .ldm-items, .ldm-section--compact .ldm-items, .ldm-page--bar .ldm-body { grid-template-columns: minmax(0, 1fr); }
  .ldm-section--compact { padding: var(--space-4); }
  .ldm-shead__title { font-size: 18px; letter-spacing: 0.18em; margin-right: -0.18em; }
  .ldm-feature { padding-inline: 0; }
  .ldb { gap: var(--space-5); }
  .ldb__chips { display: flex; gap: var(--space-2); overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--space-4) * -1); padding-inline: var(--space-4); scrollbar-width: none; }
  .ldb__chips::-webkit-scrollbar { display: none; }
  .ldb__chip { flex: 0 0 78px; scroll-snap-align: start; }
  .ldb__fields { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .ldb__contact { gap: var(--space-4); }
  .ldb__pick { padding: var(--space-2) var(--space-3); }
  .ldb__pick select, .ldb__pick input { min-height: 28px; }
  .ldb__summary { font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ldb__chosen { padding-bottom: var(--space-3); }
  .ldb__submit { flex-direction: column; align-items: stretch; gap: var(--space-2); }
  .ldb__submit .ldp-note { text-align: center; }
  .ldp-pagehead--compact { padding-top: calc(var(--header-height-phone) + var(--space-6)); padding-bottom: var(--space-5); }
  .ldp-pagehead--compact .ldp-pagetitle { font-size: 36px; }
  .ldb__pick select, .ldb__pick input { font-size: 17px; }
  .ldb--done { padding: var(--space-6) var(--space-5); }
}
