/* Live Music Kuta Lombok internal page. Global Candlelight Deco tokens and the
   shared shell stay authoritative; this file assembles the approved page plan only.
   Surface sequence: hero photo, pancake veil, open silk, band plain, times silk,
   evening champagne plate, book silk. No two silk sections ever sit next to each
   other (Josh 20.09.26): every second curtain section is a flat ground. */

.lm-page{overflow-x:hidden}
.lm-page main{display:block}
.lm-page :is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--champagne);outline-offset:4px}
.lm-page input[type="date"]{color-scheme:dark}
.lm-page .site-nav a[href="/live-music-kuta-lombok/"]{color:var(--cream)}

/* Hero: full-bleed real stage photograph, one H1, lead, two single-line actions. */
.lm-hero{position:relative;min-height:calc(100svh - var(--fold-rule));padding:0;overflow:hidden;
  display:flex;align-items:flex-end;background:var(--field)}
.lm-hero-photo{position:absolute;inset:0;z-index:0}
.lm-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}
.lm-hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(18,11,5,.25),transparent 40%,rgba(18,11,5,.9)),linear-gradient(90deg,rgba(18,11,5,.38),transparent 70%)}
.lm-hero::after{content:"";position:absolute;inset:0;z-index:1;background:var(--grain);opacity:.55;pointer-events:none}
.lm-hero-shell{position:relative;z-index:2;width:min(100%,var(--shell));margin:0 auto;
  padding:calc(var(--header-h) + 60px) var(--gutter) 64px}
.lm-hero-copy{max-width:850px}
.lm-hero h1{font-size:clamp(44px,5.8vw,84px);line-height:.98;letter-spacing:.085em;margin:0 0 clamp(24px,2.7vw,40px);
  text-shadow:var(--text-shadow-display)}
.lm-hero-lead{font-family:var(--font-display);font-size:clamp(21px,2.1vw,30px);line-height:1.35;
  color:var(--brand-soft);max-width:620px;margin:0;text-shadow:var(--text-shadow-small)}
.lm-hero-actions{display:grid;grid-template-columns:repeat(2,minmax(196px,1fr));width:max-content;max-width:100%;gap:12px;margin-top:32px}
.lm-hero-actions .btn{width:100%;min-width:0;white-space:nowrap}
.lm-hero-actions .btn svg{width:18px;height:18px}
.js .lm-hero-copy{opacity:0;transform:translateY(14px)}
.js .lm-page-ready .lm-hero-copy{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.16,.84,.44,1)}

/* Pancake band: the shared booking card over a plain espresso veil. */
.lm-pancake-wrap{position:relative;isolation:isolate;padding:clamp(34px,4.4vw,56px) var(--gutter);
  background:var(--field-2);border-top:1px solid var(--rule-quiet)}
.lm-pancake-wrap::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--silk-veil),var(--grain);pointer-events:none}
.lm-pancake-wrap .pancake{max-width:var(--shell)}
.lm-pancake-wrap .pancake form{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.2fr)}
.lm-pancake-wrap .pancake .submit{grid-column:auto}

/* One mount family for every content figure on this page. */
.lm-tall-figure{margin:0;position:relative;overflow:hidden;
  border-radius:var(--r-plate);box-shadow:var(--shadow-plate)}
.lm-tall-figure::after{content:"";position:absolute;inset:0;pointer-events:none;
  border:1px solid var(--rule-quiet);border-radius:inherit;box-shadow:inset 0 0 48px rgba(18,11,5,.26)}
.lm-tall-figure picture,.lm-tall-figure img{display:block;width:100%;height:100%}
.lm-tall-figure img{object-fit:cover}
.lm-tall-figure{aspect-ratio:3/4;width:min(100%,430px);justify-self:end;align-self:center}

/* Opening: reading column beside the room facing the stage, a gold hairline
   closing each paragraph so the column reads as a set of steps. */
.lm-open-grid{display:grid;grid-template-columns:minmax(0,62fr) minmax(280px,38fr);gap:clamp(40px,6vw,88px);align-items:center}
.lm-reading{max-width:760px}
.lm-reading p{padding-bottom:18px;border-bottom:1px solid var(--gold-45)}
.lm-reading p+p{margin-top:18px}
.lm-reading p:last-child{padding-bottom:0;border-bottom:0}
.lm-open-grid .lm-tall-figure{aspect-ratio:3/4}

/* House band: prose left, the keyboard player right. */
.lm-band-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.68fr);gap:clamp(40px,6vw,88px);align-items:center}
.lm-band-copy{max-width:660px}
.lm-band-copy h2{margin:0 0 20px}
.lm-band-copy p+p{margin-top:16px}

/* Weekly times: a gold programme board beside the percussionist. */
.lm-times-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.6fr);gap:clamp(40px,6vw,86px);align-items:center}
.lm-times-copy{max-width:700px}
.lm-times-copy h2{margin:0 0 20px}
.lm-board{list-style:none;margin:30px 0;padding:0;display:grid;gap:14px}
.lm-board li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:6px 26px;
  padding:18px 22px;border:1px solid var(--gold-45);border-left:3px solid var(--brand);
  border-radius:var(--r-card);background:linear-gradient(120deg,rgba(230,164,88,.12),rgba(41,28,15,.5))}
.lm-board-nights{font-family:var(--font-display);font-size:clamp(18px,1.6vw,22px);line-height:1.25;color:var(--cream)}
.lm-board-time{font-family:var(--font-display);font-size:clamp(19px,1.7vw,24px);line-height:1.2;
  color:var(--champagne);font-weight:700;white-space:nowrap}
.lm-board-note{grid-column:1 / -1;color:var(--on-deep-soft);font-size:14px;letter-spacing:.03em}

/* Evening: the candlelit table left, the dinner and drinks prose right,
   raised on a flat champagne plate so it never repeats the silk beside it. */
.lm-evening{position:relative;padding:var(--sec-pad) 0;background:var(--field-3)}
.lm-evening-grid{display:grid;grid-template-columns:minmax(260px,.68fr) minmax(0,1fr);gap:clamp(40px,6vw,88px);align-items:center}
.lm-evening-grid .lm-tall-figure{justify-self:start}
.lm-evening-copy{max-width:660px}
.lm-evening-copy h2{margin:0 0 20px}
.lm-evening-copy p+p{margin-top:16px}

/* Book: the day-to-night handoff above, contact lines and the bottom form below. */
.lm-handoff{max-width:620px}
.lm-handoff h2{margin:0 0 20px}
.lm-handoff p{margin:0 0 30px}
.lm-book .contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:clamp(42px,6vw,90px);align-items:center}
.lm-book .contact-lines a{color:var(--on-deep-soft)}
.lm-book .contact-lines a:hover{color:var(--cream)}

/* rk:text-image-balance - the text column drives the row height, the figure fills it. */
@media (min-width:901px){
  .lm-open-grid,.lm-band-grid,.lm-times-grid,.lm-evening-grid{align-items:stretch}
  .lm-open-grid .lm-tall-figure,.lm-band-grid .lm-tall-figure,
  .lm-times-grid .lm-tall-figure,.lm-evening-grid .lm-tall-figure{
    aspect-ratio:auto;height:100%;align-self:stretch;min-height:clamp(400px,32vw,540px)}
}

@media (max-width:1080px){
  .header-book{display:none}
  .lm-open-grid{grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:38px}
  .lm-pancake-wrap .pancake form{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lm-pancake-wrap .pancake .submit{grid-column:span 2}
}

@media (max-width:900px){
  .lm-hero-photo img{object-position:50% 44%}
  .lm-hero-scrim{background:linear-gradient(180deg,rgba(18,11,5,.52) 0%,rgba(18,11,5,.28) 38%,rgba(18,11,5,.92) 100%)}
  .lm-hero-shell{padding-top:calc(var(--header-h-sm) + 70px)}
  .lm-open-grid,.lm-band-grid,.lm-times-grid,.lm-evening-grid,.lm-book .contact-grid{grid-template-columns:1fr}
  .lm-evening-grid .lm-tall-figure{order:-1}
  .lm-tall-figure{justify-self:start;width:min(100%,460px);aspect-ratio:4/5}
  .lm-reading,.lm-band-copy,.lm-times-copy,.lm-evening-copy{max-width:720px}
}

@media (max-width:760px){
  .lm-hero h1{font-size:clamp(40px,10.4vw,60px)}
  .lm-hero-lead{font-size:clamp(19px,4.8vw,24px)}
  .lm-pancake-wrap .pancake form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lm-pancake-wrap .pancake .submit{grid-column:span 2}
  .lm-board li{grid-template-columns:1fr}
}

@media (max-width:520px){
  .lm-hero-shell{padding-left:18px;padding-right:18px}
  .lm-hero-actions{grid-template-columns:1fr;width:100%}
  .lm-hero-actions .btn{width:100%;min-width:0}
  .lm-pancake-wrap{padding-left:12px;padding-right:12px}
  .lm-pancake-wrap .pancake{padding:18px 12px}
  .lm-tall-figure{aspect-ratio:3/4}
}

@media (max-width:390px){
  .lm-hero h1{font-size:37px}
}

@media (prefers-reduced-motion:reduce){
  .js .lm-hero-copy,.js .lm-page-ready .lm-hero-copy{opacity:1;transform:none;transition:none}
}
html:not(.js) .lm-hero-copy{opacity:1;transform:none}

/* Performance posters: the existing display/body roles, espresso and brass. */
.lm-main{--lm-video-type:var(--body);--lm-video-small:14px;--lm-video-title:var(--h3);--lm-video-gap:28px}
.lm-videos{padding:var(--sec-pad) 0}
.lm-video-shell{width:100%;padding:0 24px}
.lm-video-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:32px}
.lm-video-heading h2{margin:0;font-size:var(--h2)}
.lm-video-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}
.lm-video-controls[hidden]{display:none}
.lm-video-position{font:400 var(--lm-video-small)/1 var(--font-data);color:var(--on-deep-soft);font-variant-numeric:tabular-nums;margin-right:12px;min-width:48px}
.lm-video-controls button{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--rule-accent);border-radius:50%;background:var(--field-3);color:var(--champagne);font-size:22px;cursor:pointer;transition:background .16s,border-color .16s}
.lm-video-controls button:hover{background:var(--field-4);border-color:var(--champagne)}
.lm-video-controls button:disabled{opacity:.35;cursor:default}
.lm-video-track{display:flex;gap:var(--lm-video-gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:4px;list-style:none;margin:0;padding:8px 4px 24px;scrollbar-width:thin;scrollbar-color:var(--gold) var(--field-3)}
.lm-video-card{flex:0 0 clamp(280px,38vw,640px);min-width:0;scroll-snap-align:start}
.lm-video-link{display:block;text-decoration:none;color:var(--cream)}
.lm-video-image{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--rule-quiet);border-radius:var(--r-plate);background:var(--field-3);box-shadow:var(--shadow-plate)}
.lm-video-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.lm-video-link:hover .lm-video-image img{transform:scale(1.035)}
.lm-video-image::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 60%,rgba(18,11,5,.65));pointer-events:none}
.lm-video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;display:grid;place-items:center;padding-left:3px;border:1px solid var(--champagne);border-radius:50%;background:rgba(18,11,5,.65);color:var(--champagne);font-size:20px;z-index:1;transition:background .16s}
.lm-video-link:is(:hover,:focus-visible) .lm-video-play{background:var(--gold-deep);color:var(--cream)}
.lm-video-duration{position:absolute;right:16px;bottom:16px;z-index:1;font:400 var(--lm-video-small)/1 var(--font-data);color:var(--cream);padding:7px 9px;border-radius:6px;background:var(--field)}
.lm-video-caption{display:block;padding-top:20px}
.lm-video-title{display:block;font:600 var(--lm-video-title)/1.25 var(--font-display);color:var(--cream)}
.lm-video-dialog{width:min(1100px,calc(100vw - 32px));max-height:calc(100svh - 32px);padding:24px;border:1px solid var(--rule-accent);border-radius:var(--r-plate);background:var(--field-2);color:var(--cream);overflow:auto;box-shadow:var(--shadow-plate)}
.lm-video-dialog::backdrop{background:rgba(18,11,5,.94)}
.lm-player-top{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}
.lm-player-top h2{font:600 var(--h3)/1.25 var(--font-display);margin:0;letter-spacing:0;text-transform:none}
.lm-player-close{flex-shrink:0;min-height:44px;padding:10px 16px;font:400 var(--body)/1.3 var(--font-body);background:var(--field-4);border:1px solid var(--rule-quiet);border-radius:var(--r-control);color:var(--cream);cursor:pointer}
.lm-player-mount{aspect-ratio:16/9;background:var(--field)}
.lm-player-mount iframe{display:block;width:100%;height:100%;border:0}
.lm-player-youtube{display:inline-block;color:var(--champagne);margin-top:20px;font:400 var(--body)/1.5 var(--font-body)}
html:has(.lm-video-dialog[open]){overflow:hidden}
@media(max-width:760px){
 .lm-main{--lm-video-gap:18px}
 .lm-video-heading{align-items:start;flex-wrap:wrap;gap:20px}
 .lm-video-card{flex-basis:88%}
 .lm-video-heading h2{max-width:100%}
 .lm-video-controls{width:100%;justify-content:flex-end}
 .lm-video-position{margin-right:auto}
  .lm-video-shell{padding:0 16px}
 .lm-video-dialog{padding:16px}
 .lm-player-top{align-items:start;gap:16px}
 .lm-hero-shell{padding-bottom:40px}
 .lm-hero-photo img{object-position:50% 34%}
}
@media(prefers-reduced-motion:reduce){.lm-video-image img,.lm-video-play,.lm-video-controls button{transition:none}.lm-video-link:hover .lm-video-image img{transform:none}}

