:root{
  --aiwa-black:#0a0a0a;
  --aiwa-white:#ffffff;
  --aiwa-productions:#E619A0;
  --aiwa-keynotes:#FF5A1F;
  --aiwa-community:#C8F31D;
  --accent:var(--aiwa-white);
  --rule:rgba(255,255,255,.18);
  --muted:rgba(255,255,255,.62);
  --font-display:'Anton',Impact,'Haettenschweiler','Arial Narrow Bold',sans-serif;
  --font-body:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --gutter:clamp(1.25rem,5vw,5rem);
  --stack:clamp(4rem,10vw,8.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--aiwa-black);
  color:var(--aiwa-white);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.5;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* --- shared ------------------------------------------------------------- */
.wrap{max-width:78rem;margin-inline:auto;padding-inline:var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.display{
  font-family:var(--font-display);
  font-weight:400;
  text-transform:uppercase;
  line-height:.94;
  letter-spacing:.005em;
  margin:0;
  text-wrap:balance;
}
.lede{font-size:clamp(1.0625rem,1.7vw,1.375rem);line-height:1.5;max-width:46ch;color:var(--muted);font-weight:300}
.lede strong{color:var(--aiwa-white);font-weight:600}

.tag{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.75rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);margin:0 0 1.5rem;
}
.tag::before{content:"";width:2.25rem;height:3px;background:var(--accent)}

/* --- hero --------------------------------------------------------------- */
.hero{padding-block:clamp(1.75rem,4vw,3rem) clamp(3rem,7vw,6rem);border-bottom:1px solid var(--rule)}
.hero .mark{width:min(100%,34rem);margin-bottom:clamp(3rem,7vw,5rem)}
.hero h1{font-size:clamp(2.6rem,8.2vw,6.5rem);max-width:16ch}
.hero h1 em{font-style:normal;display:block}
.hero .lede{margin:clamp(1.75rem,4vw,2.5rem) 0 0}

.hero-figure{margin:0;border-top:1px solid var(--rule)}
.hero-shot{
  width:100%;
  height:clamp(15rem,50vw,31rem);
  object-fit:cover;object-position:center 32%;
  /* grayscale keeps the foundation black/white so the pillar accents stay the only colour */
  filter:grayscale(1) contrast(1.08);
  background:#151515;
}

.pillars{
  display:grid;gap:1px;background:var(--rule);
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  border-block:1px solid var(--rule);
}
.pillars a{
  background:var(--aiwa-black);text-decoration:none;
  padding:1.75rem var(--gutter);display:flex;flex-direction:column;gap:.4rem;
}
.pillars a:hover,.pillars a:focus-visible{background:#151515}
.pillars b{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:1.5rem;letter-spacing:.01em}
.pillars span{font-size:.875rem;color:var(--muted)}
.pillars a:nth-child(1) b{color:var(--aiwa-productions)}
.pillars a:nth-child(2) b{color:var(--aiwa-keynotes)}
.pillars a:nth-child(3) b{color:var(--aiwa-community)}

/* --- sections ----------------------------------------------------------- */
.section{padding-block:var(--stack);border-bottom:1px solid var(--rule)}
.section--productions{--accent:var(--aiwa-productions)}
.section--keynotes{--accent:var(--aiwa-keynotes)}
.section--community{--accent:var(--aiwa-community)}
.section h2{font-size:clamp(2.1rem,6vw,4.5rem);max-width:18ch}
.section .lede{margin-top:1.5rem}
.section-head{margin-bottom:clamp(2.5rem,6vw,4rem)}

/* shows */
.shows{display:grid;gap:1px;background:var(--rule);grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));border:1px solid var(--rule)}
.show{background:var(--aiwa-black);padding:clamp(1.5rem,3vw,2.25rem)}
.show h3{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:clamp(1.75rem,3.4vw,2.5rem);line-height:1;margin:0 0 1rem}
.show p{margin:0 0 1.25rem;color:var(--muted);max-width:38ch}
.meta{font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0}

/* dates */
.dates{margin-top:clamp(2.5rem,5vw,3.5rem)}
.dates h3{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:1.5rem;margin:0 0 1.25rem;letter-spacing:.02em}
.dates ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.dates li{
  border-bottom:1px solid var(--rule);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem 1.5rem;
  padding-block:1.1rem;
}
.dates time{font-family:var(--font-display);font-weight:400;font-size:1.375rem;letter-spacing:.02em;flex:0 0 7.5rem}
.dates .venue{flex:1 1 12rem;font-weight:600}
.dates .venue small{display:block;font-weight:400;color:var(--muted);font-size:.875rem}
.ticket{
  margin-left:auto;text-decoration:none;font-size:.8125rem;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;
  border:2px solid var(--accent);color:var(--accent);
  padding:0 1.1rem;min-height:44px;display:inline-flex;align-items:center;
}
.ticket:hover,.ticket:focus-visible{background:var(--accent);color:var(--aiwa-black)}

/* talks */
.talks{display:grid;gap:1px;background:var(--rule);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));border:1px solid var(--rule)}
.talk{background:var(--aiwa-black);padding:clamp(1.5rem,3vw,2.25rem);text-decoration:none;display:flex;flex-direction:column;gap:.75rem}
.talk:hover,.talk:focus-visible{background:#151515}
.talk h3{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:1.75rem;line-height:1;margin:0}
.talk p{margin:0;color:var(--muted)}
.talk .more{margin-top:auto;padding-top:1rem;font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}

/* community + team */
.split{display:grid;gap:clamp(2rem,5vw,4rem);grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}
.rules{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.rules li{border-bottom:1px solid var(--rule);padding-block:1.1rem;display:flex;gap:1rem;align-items:baseline}
.rules b{font-family:var(--font-display);font-weight:400;color:var(--accent);font-size:1.125rem;flex:0 0 2rem}
.team{list-style:none;margin:clamp(2.5rem,5vw,3.5rem) 0 0;padding:0;display:grid;gap:1px;background:var(--rule);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));border:1px solid var(--rule)}
.team li{background:var(--aiwa-black);padding:1.5rem}
.team b{display:block;font-size:1.0625rem;font-weight:800;margin-bottom:.25rem}
.team span{color:var(--muted);font-size:.9375rem}

/* contact */
.contact{padding-block:var(--stack)}
.contact h2{font-size:clamp(2.1rem,6vw,4.5rem)}
.contact .lede{margin-block:1.5rem clamp(2rem,4vw,2.75rem)}
.mailto{
  font-family:var(--font-display);font-weight:400;text-transform:none;
  font-size:clamp(1.5rem,4.5vw,3rem);text-decoration:none;
  border-bottom:4px solid var(--aiwa-community);display:inline-block;line-height:1.1;
  word-break:break-word;
}
.mailto:hover{color:var(--aiwa-community)}

@media (prefers-reduced-motion:no-preference){
  a,.pillars a,.ticket{transition:background-color .15s ease,color .15s ease,border-color .15s ease}
}

/* --- block editor markup ---------------------------------------------------
   The front page is built from core blocks (Forside page). These rules map the
   block structure onto the landing page styles above. */
.hero>.wp-block-group__inner-container,
.section>.wp-block-group__inner-container,
.contact>.wp-block-group__inner-container{max-width:78rem;margin-inline:auto;padding-inline:var(--gutter)}
/* zero-specificity resets so the landing page rules above keep winning */
:where(#main) .wp-block-image{margin:0}
:where(#main) .wp-block-columns{margin:0}
:where(#main p){margin-top:0}
.hero .mark img{width:100%}
.hero-figure{border-top:1px solid var(--rule)}
.hero-figure img{
  width:100%;height:clamp(15rem,50vw,31rem);object-fit:cover;object-position:center 32%;
  filter:grayscale(1) contrast(1.08);background:#151515;
}

/* hairline grids */
.pillars.wp-block-columns,.shows.wp-block-columns,.talks.wp-block-columns,.team.wp-block-columns{display:grid;gap:1px;background:var(--rule)}
.shows.wp-block-columns,.talks.wp-block-columns,.team.wp-block-columns{border:1px solid var(--rule)}
.pillars .wp-block-column,.shows .wp-block-column,.talks .wp-block-column,.team .wp-block-column{background:var(--aiwa-black);position:relative;margin:0}

.pillars .wp-block-column{padding:1.75rem var(--gutter);display:flex;flex-direction:column;gap:.4rem}
.pillars .wp-block-column:hover,.pillars .wp-block-column:focus-within{background:#151515}
.pillars p{margin:0}
.pillars a{background:none;padding:0;display:inline;text-decoration:none}
.pillars a::after,.talks .more a::after{content:"";position:absolute;inset:0}
.pillars strong{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:1.5rem;letter-spacing:.01em}
.pillars p+p{font-size:.875rem;color:var(--muted)}
.pillars .wp-block-column:nth-child(1) strong{color:var(--aiwa-productions)}
.pillars .wp-block-column:nth-child(2) strong{color:var(--aiwa-keynotes)}
.pillars .wp-block-column:nth-child(3) strong{color:var(--aiwa-community)}

.section h2.display{margin-bottom:0}
.section .lede{margin:1.5rem 0 clamp(2.5rem,6vw,4rem)}
.section--community h2.display{margin-bottom:clamp(2.5rem,6vw,4rem)}
.section .tag{margin:0 0 1.5rem}

.shows.wp-block-columns{grid-template-columns:repeat(auto-fit,minmax(19rem,1fr))}
.shows .wp-block-column{padding:clamp(1.5rem,3vw,2.25rem)}
.shows h3{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:clamp(1.75rem,3.4vw,2.5rem);line-height:1;margin:0 0 1rem}
.shows h3 a{text-decoration:none}
.shows h3 a:hover{color:var(--accent)}
.shows p{margin:0 0 1.25rem;color:var(--muted);max-width:38ch}
.shows p.meta{margin:0}

.dates-title{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:1.5rem;margin:clamp(2.5rem,5vw,3.5rem) 0 1.25rem;letter-spacing:.02em}
ul.dates{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
ul.dates li{
  border-bottom:1px solid var(--rule);padding-block:1.1rem;font-weight:600;
  display:grid;grid-template-columns:7.5rem 1fr auto;column-gap:1.5rem;align-items:center;
}
ul.dates strong{font-family:var(--font-display);font-weight:400;font-size:1.375rem;letter-spacing:.02em;grid-row:1/3}
ul.dates em{grid-column:2;grid-row:2;font-style:normal;font-weight:400;color:var(--muted);font-size:.875rem}
ul.dates a{
  grid-column:3;grid-row:1/3;text-decoration:none;font-size:.8125rem;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;border:2px solid var(--accent);color:var(--accent);
  padding:0 1.1rem;min-height:44px;display:inline-flex;align-items:center;
}
ul.dates a:hover,ul.dates a:focus-visible{background:var(--accent);color:var(--aiwa-black)}
@media (max-width:40rem){
  ul.dates li{grid-template-columns:1fr auto;row-gap:.25rem}
  ul.dates strong{grid-row:auto;grid-column:1/-1}
  ul.dates em{grid-column:1;grid-row:3}
  ul.dates a{grid-column:2;grid-row:2/4}
}

.talks.wp-block-columns{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
.talks .wp-block-column{padding:clamp(1.5rem,3vw,2.25rem);display:flex;flex-direction:column;gap:.75rem}
.talks .wp-block-column:hover,.talks .wp-block-column:focus-within{background:#151515}
.talks h3{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:1.75rem;line-height:1;margin:0}
.talks p{margin:0;color:var(--muted)}
.talks .more{margin-top:auto;padding-top:1rem;font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.talks .more a{text-decoration:none}

.split.wp-block-columns{display:grid;gap:clamp(2rem,5vw,4rem);grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}
.split .lede{margin:0}
ul.rules{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
ul.rules li{border-bottom:1px solid var(--rule);padding-block:1.1rem;display:flex;gap:1rem;align-items:baseline}
ul.rules strong{font-family:var(--font-display);font-weight:400;color:var(--accent);font-size:1.125rem;flex:0 0 2rem}

.team.wp-block-columns{margin-top:clamp(2.5rem,5vw,3.5rem)!important;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.team .wp-block-column{padding:1.5rem}
.team p{margin:0}
.team strong{display:block;font-size:1.0625rem;font-weight:800;margin-bottom:.25rem}
.team p+p{color:var(--muted);font-size:.9375rem}

.contact p.mailto a{text-decoration:none}
/* undo the generic page column/meta styles from style.css */
.split.wp-block-columns{background:none;border:0}
.split .wp-block-column{padding:0;background:none}
.pillars.wp-block-columns{border:0;border-block:1px solid var(--rule)}
.shows p.meta{color:var(--muted)!important}
