/* London additions retain the original palette, typography and rounded cards. */
.london-dates { scroll-margin-top:110px; padding-top:58px; padding-bottom:0; }
.ld-section-top { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:26px; }
.ld-eyebrow { margin:0 0 10px; font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--primary,#1E6FE8); }
.ld-section-top h2 { font-family:'Poppins',sans-serif; font-size:30px; font-weight:800; letter-spacing:-.02em; line-height:1.2; color:var(--ink,#0E3A52); margin:0 0 12px; }
.ld-section-intro { max-width:680px; margin:0; color:var(--muted,#5C6B80); font-size:15px; line-height:1.65; }
.ld-refresh { flex:none; padding:11px 16px; border:1px solid var(--border,#E3EAF3); border-radius:10px; background:#fff; color:var(--ink,#0E3A52); font:700 13.5px 'Hanken Grotesk',sans-serif; cursor:pointer; }
.ld-refresh:disabled { cursor:wait; opacity:.7; }
.ld-venue-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.ld-venue-card { min-width:0; border:1px solid var(--border,#E3EAF3); border-radius:16px; background:#fff; overflow:hidden; box-shadow:0 8px 24px rgba(14,58,82,.035); scroll-margin-top:110px; }
.ld-venue-head { padding:24px 26px 20px; background:linear-gradient(135deg,var(--soft,#E9F1FD),#f8fbff); border-bottom:1px solid var(--border,#E3EAF3); }
.ld-area { display:inline-block; margin-bottom:10px; color:var(--primary,#1E6FE8); font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:800; }
.ld-venue-head h3 { margin:0 0 6px; color:var(--ink,#0E3A52); font-family:'Poppins',sans-serif; font-size:21px; line-height:1.25; font-weight:800; }
.ld-venue-name { margin:0 0 6px; font-weight:700; font-size:14px; color:var(--ink,#0E3A52); }
.ld-address { font-style:normal; color:var(--muted,#5C6B80); font-size:13px; line-height:1.55; }
.ld-venue-note { margin:10px 0 0; color:var(--muted,#5C6B80); font-size:13px; line-height:1.55; }
.ld-venue-note a { color:var(--primary,#1E6FE8); text-decoration:underline; text-underline-offset:3px; }
[data-london-dates] { padding:8px 26px 22px; }
.ld-session-list { padding:0; margin:0; list-style:none; }
.ld-session { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px 18px; align-items:center; border-bottom:1px solid var(--border,#E3EAF3); padding:18px 0; font-size:14px; line-height:1.45; }
.ld-session:last-child { border-bottom:0; }
.ld-session-price { text-align:right; }
.ld-session .ld-book { grid-column:1/-1; margin-top:5px; }
.ld-date { display:block; color:var(--ink,#0E3A52); font-weight:800; font-size:16px; }
.ld-time { display:block; color:var(--muted,#5C6B80); font-size:13px; margin-top:4px; }
.ld-price { display:block; color:var(--ink,#0E3A52); font-weight:800; font-size:17px; }
.ld-price-total { display:block; margin-top:2px; color:var(--muted,#5C6B80); font-size:14px; }
.ld-price small, .ld-price-total small { display:inline; color:var(--muted,#5C6B80); font-weight:400; font-size:12px; }
.ld-places { color:#166344; font-size:12px; font-weight:700; }
.ld-book { display:inline-flex; align-items:center; justify-content:center; padding:11px 16px; min-height:43px; border-radius:10px; background:var(--primary,#1E6FE8); color:#fff; font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; }
.ld-book:hover { background:#155dca; }
.ld-full { color:#5C6B80; background:#edf1f5; border-radius:8px; font-size:12px; font-weight:700; padding:7px 12px; }
.ld-empty { color:var(--muted,#5C6B80); padding:12px 0 0; font-size:14px; line-height:1.6; }
.ld-empty a { display:inline-block; color:var(--primary,#1E6FE8); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
[data-london-dates] details { border-top:1px solid var(--border,#E3EAF3); margin-top:5px; }
[data-london-dates] summary { cursor:pointer; padding:13px 0 4px; color:var(--primary,#1E6FE8); font-size:13px; font-weight:700; }
.ld-note { color:var(--muted,#5C6B80); font-size:12.5px; line-height:1.6; margin:18px 0 0; }
.ld-note a { color:var(--primary,#1E6FE8); text-decoration:underline; }
.ld-status { font-size:13px; line-height:1.6; color:var(--muted,#5C6B80); margin:12px 0 0; min-height:21px; }
.ld-refresh:focus-visible, .ld-book:focus-visible, .london-dates a:focus-visible, .london-dates summary:focus-visible { outline:3px solid #1E6FE8; outline-offset:4px; }
.london-venues { position:relative; scroll-margin-top:110px; padding:62px 0; background:var(--soft2,#F5F8FC); }
.lv-anchor { position:absolute; top:0; scroll-margin-top:110px; }
.london-venues h2 { margin:0 0 14px; font:800 30px/1.2 'Poppins',sans-serif; letter-spacing:-.02em; color:var(--ink,#0E3A52); }
.lv-intro { max-width:740px; margin:0 0 28px; color:var(--muted,#5C6B80); font-size:15px; line-height:1.65; }
.lv-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:start; }
.lv-card { min-width:0; padding:26px; background:#fff; border:1px solid var(--border,#E3EAF3); border-radius:16px; scroll-margin-top:110px; }
.lv-card h3 { margin:0 0 12px; font:800 22px/1.25 'Poppins',sans-serif; color:var(--ink,#0E3A52); }
.lv-card p { margin:14px 0; font-size:14.5px; line-height:1.65; color:var(--muted,#5C6B80); }
.lv-card .lv-name { margin:0 0 4px; font-weight:700; color:var(--ink,#0E3A52); }
.lv-card address { font-size:14px; font-style:normal; line-height:1.65; color:var(--muted,#5C6B80); }
.lv-links { display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; margin:20px 0; }
.lv-links a { color:var(--primary,#1E6FE8); font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.lv-links a:first-child { padding:11px 15px; background:var(--soft,#E9F1FD); border-radius:9px; text-decoration:none; }
.lv-card details { border-top:1px solid var(--border,#E3EAF3); }
.lv-card summary { padding-top:16px; cursor:pointer; color:var(--ink,#0E3A52); font-weight:700; font-size:14px; }
.lv-card iframe { display:block; width:100%; height:260px; margin-top:16px; border:0; border-radius:10px; }
.london-venues a:focus-visible, .london-venues summary:focus-visible { outline:3px solid #1E6FE8; outline-offset:4px; }
@media(max-width:700px) {
  .london-dates { padding-top:38px; }
  .ld-section-top { display:block; margin-bottom:22px; }
  .ld-section-top h2 { font-size:26px; }
  .ld-refresh { margin-top:18px; }
  .ld-venue-grid { grid-template-columns:1fr; gap:18px; }
  .ld-venue-head { padding:21px 20px 17px; }
  [data-london-dates] { padding:6px 20px 18px; }
  .ld-session { gap:7px 12px; }
  .ld-date { font-size:15px; }
  .london-venues { padding:40px 0; }
  .london-venues h2 { font-size:26px; }
  .lv-grid { grid-template-columns:1fr; gap:18px; }
  .lv-card { padding:22px 20px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto!important; } }
