/* Home calendar and text masthead; inherits the existing ONE palette and typography. */
.hero h1.hero-title { font-family:var(--heading); font-weight:500; font-size:clamp(70px,8.8vw,142px); line-height:.9; letter-spacing:-.07em; margin:28px 0; max-width:900px; }
.hero-title span { display:block; }
.hero-title strong { font-weight:700; }
.event-room { display:inline-flex; align-items:center; gap:5px; font-size:10px; line-height:1.45; color:var(--paper); }
.event-room svg { flex-shrink:0; }
.event-room>span { min-width:0; }
.event-badges .event-room { background:#101010d9; padding:6px 8px; }
.event-room.room-pending { color:var(--muted); }
.immersive-labels .event-room { font-size:11px; }
.weekly-programme .section-head { margin-bottom:32px; }
.week-caption { display:flex; justify-content:space-between; gap:16px; padding:0 0 20px; font-family:var(--mono); font-size:12px; }
.week-caption>p { text-transform:uppercase; }
.week-caption>span { color:var(--muted); font-size:10px; text-align:right; }
.week-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border:1px solid var(--line); }
.week-day { min-width:0; }
.week-day+.week-day { border-left:1px solid var(--line); }
.week-day-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; min-height:109px; padding:16px 12px; border-bottom:1px solid var(--line); font-weight:400; }
.week-day-name { width:100%; font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:.025em; }
.week-day-heading time { font-family:var(--heading); font-size:42px; line-height:1; letter-spacing:-.06em; }
.week-today { font-family:var(--mono); text-transform:uppercase; font-size:9px; }
.is-today .week-day-heading { background:var(--accent); color:var(--bg); }
.week-day-events { display:flex; flex-direction:column; gap:8px; padding:8px; }
.week-event { display:block; padding:12px 8px; background:var(--panel); border:1px solid transparent; transition:border-color 160ms,color 160ms; min-width:0; overflow-wrap:anywhere; }
.week-event-body { min-width:0; }
.week-event-time { display:flex; justify-content:space-between; gap:5px; font-family:var(--mono); font-size:12px; color:var(--accent); }
.week-event-time>span { color:var(--muted); }
.week-event-type { font-family:var(--mono); color:var(--muted); text-transform:uppercase; font-size:8px; line-height:1.4; margin:14px 0 7px; letter-spacing:.04em; }
.week-event h4 { font-family:var(--heading); font-size:20px; line-height:1.2; font-weight:600; letter-spacing:-.025em; }
.week-event-tags { display:flex; flex-wrap:wrap; gap:5px 8px; margin-top:14px; }
.week-event-tags .event-genre,.week-event-tags .event-room { font-size:9px; color:var(--muted); }
.week-event-tags .event-room:not(.room-pending) { color:var(--paper); }
.week-event-tags svg { width:11px; height:11px; flex-shrink:0; }
.week-event .event-prices-card { margin-top:14px; padding-top:10px; font-size:10px; gap:5px; flex-wrap:wrap; }
.week-event .price-condition { font-size:8px; line-height:1.4; }
.week-event .price-source { font-size:8px; }
.week-event-status { font-family:var(--mono); text-transform:uppercase; font-size:8px; color:var(--muted); border-top:1px solid var(--line); padding-top:10px; margin-top:14px; }
.week-event-status.is-live { color:var(--accent); }
.week-event.is-ended .week-event-time { color:var(--muted); }
.week-empty { color:var(--muted); font-size:11px; line-height:1.6; padding:12px 8px; }
.week-empty>span { display:block; font-family:var(--mono); font-size:20px; margin-bottom:8px; }
@media(hover:hover) { .week-event:hover { border-color:var(--accent); } .week-event:hover h4 { color:var(--accent); } }
@media(prefers-reduced-motion:no-preference) { .hero-title { animation:one-type-entry 420ms cubic-bezier(.2,.7,.3,1) both; } }
@media(max-width:1100px) {
  .week-grid { grid-template-columns:1fr; }
  .week-day { display:grid; grid-template-columns:125px minmax(0,1fr); }
  .week-day+.week-day { border-left:0; border-top:1px solid var(--line); }
  .week-day-heading { display:block; border-bottom:0; border-right:1px solid var(--line); padding:18px 16px; }
  .week-day-name { display:block; margin-bottom:12px; }
  .week-today { display:block; margin-top:10px; }
  .week-day-events { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; }
  .week-event { padding:14px 12px; }
  .week-empty { grid-column:1/-1; align-self:center; }
  .week-empty>span { display:none; }
}
@media(max-width:700px) {
  .hero h1.hero-title { font-size:clamp(52px,12.4vw,86px); margin:24px 0; letter-spacing:-.065em; }
  .week-caption { flex-direction:column; gap:7px; font-size:11px; }
  .week-caption>span { text-align:left; font-size:9px; }
  .week-day { grid-template-columns:1fr; }
  .week-day-heading { display:flex; align-items:center; min-height:0; gap:12px; padding:13px 16px; border:0; border-bottom:1px solid var(--line); }
  .week-day-name { display:inline; width:auto; margin:0; font-size:11px; }
  .week-day-heading time { font-size:26px; margin-left:auto; }
  .week-today { margin:0; }
  .week-day-events { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .event-badges .event-room { font-size:8px; padding:4px 6px; }
  .immersive-labels .event-room { font-size:9px; }
}
@media(max-width:440px) {
  .week-day-events { grid-template-columns:1fr; }
  .week-event { padding:14px; }
  .week-event-tags .event-genre,.week-event-tags .event-room { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .week-event { transition:none; } }

/* Shop preview while ONE Originals is being prepared. */
.shop-coming-soon { min-height:65svh; padding-block:70px 85px; }
.shop-coming-soon h1 { font-family:var(--heading); font-weight:500; font-size:clamp(76px,12vw,170px); line-height:.88; letter-spacing:-.07em; margin:42px 0 30px; }
.shop-coming-soon h1 span { display:block; color:var(--accent); }
.shop-coming-soon .body-copy { max-width:480px; margin-bottom:28px; }
.shop-soon-foot { border-top:1px solid var(--line); padding-top:22px; margin-top:60px; display:flex; justify-content:space-between; gap:20px; font-family:var(--mono); color:var(--muted); font-size:10px; }
.shop-soon-teaser { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-block:34px; display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:36px; }
.shop-soon-teaser h2 { margin-top:18px; }
.shop-soon-teaser .body-copy { max-width:410px; margin-bottom:25px; }
@media(max-width:700px) {
  .shop-coming-soon { min-height:60svh; padding-block:48px 60px; }
  .shop-coming-soon h1 { font-size:clamp(64px,17vw,110px); margin-block:30px 25px; }
  .shop-soon-teaser { grid-template-columns:1fr; gap:24px; }
  .shop-soon-foot { flex-wrap:wrap; font-size:9px; margin-top:45px; }
}

