/* Shared city facts and release states on the accepted Brisbane shell. */
body[data-city] { --city-blue:#1741b0; }
.city-eyebrow { font-size:13px; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.city-hero-status { margin:0 0 18px; color:#fff; font-size:16px; }
.city-offer-date { text-align:center; font-size:17px; margin:18px 0 0; }
body[data-city] .hero-stats dd { max-width:240px; }
body[data-city] .event-meta { flex-wrap:wrap; }
body[data-city] .hero-content .event-meta { font-size:clamp(14px,1.35vw,23px); }
body[data-city] .hero-content h1 { max-width:1050px; }
body[data-city] .ftr2__events { gap:10px; }
body[data-city] .speaker-grid { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); }
body[data-city] .city-venue-pending { display:block; padding:100px 0; min-height:0; color:#111; background:#fff; text-align:center; }
body[data-city] .city-venue-pending h2,body[data-city] .city-venue-pending p { position:static; transform:none; width:auto; margin:0 auto 24px; color:inherit; }
body[data-city] .city-venue-pending h2 { font-size:clamp(34px,5vw,68px); }
body[data-city] .city-venue-pending .pill-button { margin:20px auto 0; }
.city-waitlist-intro { text-align:center; max-width:600px; margin:24px auto 44px; color:#555; font-size:20px; line-height:1.5; }
.city-waitlist-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.city-waitlist-card { --tier-color:#ec443f; min-width:0; padding:35px 30px; background:#fff; border-top:8px solid var(--tier-color); box-shadow:0 0 0 1px #e4e4e4; }
.city-waitlist-card[data-tier="premium"] { --tier-color:#143d99; }
.city-waitlist-card[data-tier="vip"] { --tier-color:#a77716; }
.city-waitlist-card h3 { margin:16px 0; font-size:32px; line-height:1.1; }
.city-waitlist-card p { line-height:1.5; }
.city-price-pending { color:#555; padding:12px 0; }
.city-waitlist-card form { display:flex; flex-direction:column; gap:10px; margin-top:20px; }
.city-waitlist-card label { font-size:14px; }
.city-waitlist-card input { font:inherit; width:100%; min-height:50px; padding:12px 14px; color:#111; background:#fff; border:1px solid #aaa; border-radius:0; }
.city-waitlist-card input:focus-visible { outline:3px solid var(--tier-color); outline-offset:3px; }
.city-waitlist-button { width:100%; min-height:54px; border:0; margin:10px 0 0; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; color:#fff; background:var(--tier-color); font:inherit; font-size:16px; cursor:pointer; }
.city-waitlist-button:disabled { opacity:.55; cursor:wait; }
.city-waitlist-button:focus-visible { outline:3px solid var(--tier-color); outline-offset:5px; }
.city-waitlist-card .capture-status { min-height:48px; font-size:14px; }
.city-waitlist-privacy { margin:28px auto 0; text-align:center; color:#555; font-size:14px; }
.city-unreleased-hero { position:relative; padding:220px 0 140px; background:#fff; }
.city-unreleased-layout { display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:70px; }
.city-unreleased-copy h1 { margin:22px 0; font-weight:500; font-size:clamp(46px,5.8vw,88px); line-height:1.02; letter-spacing:-.045em; }
.city-unreleased-copy > p:not(.city-eyebrow):not(.city-release-status) { font-size:21px; line-height:1.5; color:#555; max-width:570px; }
.city-release-status { display:inline-block; background:#e9efff; color:#1741b0; font-size:16px; padding:10px 16px; margin:0 0 12px; }
.city-unreleased-copy .pill-button { display:inline-flex; align-items:center; justify-content:space-between; gap:25px; background:#1741b0; color:white; border-color:#1741b0; margin-top:32px; border-radius:0; min-height:58px; }
.city-unreleased-art { margin:0; aspect-ratio:1; overflow:hidden; clip-path:polygon(0 6%,6% 6%,6% 0,94% 0,94% 6%,100% 6%,100% 94%,94% 94%,94% 100%,6% 100%,6% 94%,0 94%); }
.city-unreleased-art img { display:block; width:100%; height:100%; object-fit:cover; }
.city-square-edge { position:absolute; inset:auto 0 0; height:24px; background:repeating-conic-gradient(#fff 0 25%,#f3f6fd 0 50%) 0 /48px 48px; }
.city-unreleased-about { text-align:center; }
.city-unreleased-about h2 { font-size:clamp(34px,4vw,62px); max-width:850px; margin:20px auto; }
.city-unreleased-about > p:not(.city-eyebrow):not(.city-proof-source) { max-width:720px; margin:0 auto; font-size:21px; line-height:1.55; color:#555; }
.city-proof { display:flex; justify-content:center; gap:100px; margin:65px auto 20px; }
.city-proof dt { font-size:64px; font-weight:500; line-height:1.15; }
.city-proof dd { max-width:220px; margin:12px 0; color:#555; }
.city-proof-source { font-size:14px; color:#666; }
.city-text-link { display:inline-block; margin:30px 0 0; font-size:18px; color:#1741b0; }
body[data-city-mode="unreleased"] .ftr2 { margin-top:0; }
@media(max-width:900px) {
 .city-waitlist-grid { gap:15px; }
 .city-waitlist-card { padding:26px 18px; }
 .city-waitlist-card h3 { font-size:27px; }
 .city-unreleased-layout { gap:30px; }
 .city-unreleased-hero { padding-top:180px; }
}
@media(max-width:600px) {
 body[data-city] .hero-stats dd { font-size:12px; }
 body[data-city] .hero-stats dt { font-size:clamp(32px,9vw,48px); }
 body[data-city] .event-meta { gap:12px; }
 body[data-city] .speaker-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .city-waitlist-grid { grid-template-columns:1fr; }
 .city-waitlist-card { padding:28px 24px; }
 .city-waitlist-card form { margin-top:14px; }
 .city-waitlist-intro { font-size:18px; }
 .city-unreleased-hero { padding:150px 0 75px; }
 .city-unreleased-layout { grid-template-columns:1fr; gap:40px; }
 .city-unreleased-copy h1 { font-size:clamp(42px,12vw,65px); }
 .city-unreleased-copy > p:not(.city-eyebrow):not(.city-release-status) { font-size:19px; }
 .city-unreleased-art { max-width:420px; width:100%; }
 .city-unreleased-about > p:not(.city-eyebrow):not(.city-proof-source) { font-size:18px; }
 .city-proof { gap:30px; margin-top:40px; }
 .city-proof dt { font-size:46px; }
 .city-proof dd { font-size:15px; }
}
body[data-city] .ticket-photo { position:relative; }
.city-ticket-photo-caption { position:absolute; right:12px; bottom:12px; z-index:3; max-width:calc(100% - 24px); padding:5px 8px; background:rgba(255,255,255,.9); color:#222; font-size:11px; line-height:1.3; pointer-events:none; }
#tickets[data-ticket-plan=regular] .city-ticket-photo-caption { top:12px; bottom:auto; }
/* Keep smaller waitlist labels readable on the red and gold tier fills. */
.city-waitlist-card[data-tier="regular"] .city-waitlist-button,
.city-waitlist-card[data-tier="vip"] .city-waitlist-button { color:#111; }
/* A stepped background keeps the full hit area and keyboard focus outline. */
.city-waitlist-button,
.city-unreleased-copy .pill-button {
  position:relative;
  isolation:isolate;
  background:transparent;
  border:0;
}
.city-waitlist-button::before,
.city-unreleased-copy .pill-button::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--tier-color,#1741b0);
  pointer-events:none;
  clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px));
}
.city-unreleased-copy .pill-button:focus-visible {
  outline:3px solid #1741b0;
  outline-offset:5px;
}
/* Announced city speakers have a readable feature above the historical cards. */
body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-speakers { padding-bottom:0; }
body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-card {
  display:grid;
  grid-template-columns:minmax(0,320px) minmax(0,1fr);
  align-items:center;
  gap:clamp(28px,5vw,72px);
  width:100%;
  max-width:900px;
  margin-inline:auto;
}
body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-card .speaker-info { margin-top:0; }
body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-card h3 { font-size:clamp(28px,3vw,42px); }
body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-card .speaker-front > p { font-size:clamp(16px,1.6vw,21px); }
body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-card .speaker-back > p { color:#555; font-size:16px; }
body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) #past-speakers { padding-top:72px; }
@media(max-width:600px) {
  body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-card { display:flex; max-width:340px; gap:0; }
  body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-card .speaker-info { margin-top:20px; }
  body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) .city-featured-card .speaker-toggle { font-size:16px; }
  body:is([data-city="adelaide"],[data-city="melbourne"],[data-city="sydney"]) #past-speakers { padding-top:54px; }
}
