/* 01 zen-expo.com — Prismatic Atrium. Page-scoped: every rule is under .pa. */
:root{
  --pa-porcelain:#FCFDFE; --pa-blue:#2451D1; --pa-ink:#182B44;
  --pa-pale:#DDE8FA; --pa-tangerine:#D65A19; --pa-action:#B8460F;
  /* Albert Sans is not installed on the build host; closest system grotesque. */
  --pa-face:system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
.pa{margin:0;background:var(--pa-porcelain);color:var(--pa-ink);
  font-family:var(--pa-face);font-size:17px;line-height:1.7;
  -webkit-text-size-adjust:100%}
.pa h1,.pa h2,.pa h3,.pa h4{line-height:1.1;letter-spacing:-.015em;font-weight:700;margin:0}
.pa p{margin:0 0 1em}
.pa a{color:var(--pa-blue)}
.pa a:focus-visible,.pa summary:focus-visible,.pa button:focus-visible{
  outline:3px solid var(--pa-action);outline-offset:3px}
.pa .pa-skip{position:absolute;left:-9999px;top:0;background:var(--pa-ink);color:#fff;
  padding:14px 20px;z-index:20}
.pa .pa-skip:focus{left:0}

/* --- slim top header ------------------------------------------------- */
.pa-top{display:flex;flex-wrap:wrap;gap:16px;align-items:center;
  justify-content:space-between;padding:14px clamp(16px,5vw,64px);
  border-bottom:1px solid var(--pa-pale)}
.pa-brand{display:flex;align-items:center;gap:14px;max-width:52ch}
.pa-brand img{background:var(--pa-ink);padding:6px 10px;width:154px;height:60px;
  object-fit:contain;display:block}
.pa-brandtext{font-size:13px;line-height:1.4;color:#38506b}
.pa-nav{display:flex;flex-wrap:wrap;gap:4px}
.pa-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;
  text-decoration:none;font-weight:600;font-size:15px}
.pa-nav a:hover{text-decoration:underline}

/* --- the atrium: one diagonal plane, never an equal split ------------- */
.pa-atrium{position:relative;overflow:hidden;padding:clamp(32px,6vw,92px) 0 0}
.pa-plane{position:absolute;inset:0;background:linear-gradient(102deg,
  var(--pa-blue) 0 46%,var(--pa-pale) 46% 60%,transparent 60%);
  clip-path:polygon(0 100%,72% 0,100% 0,100% 100%);opacity:0;
  transform:translateY(18px);animation:pa-rise .8s .1s ease-out forwards;z-index:0}
@keyframes pa-rise{to{opacity:1;transform:none}}
.pa-white{position:relative;z-index:2;width:min(58ch,62%);
  margin-left:clamp(16px,5vw,64px);background:var(--pa-porcelain);
  padding:0 32px 28px 0}
.pa-eyebrow{font-size:14px;letter-spacing:.09em;text-transform:uppercase;
  font-weight:700;color:var(--pa-action);margin-bottom:.6em}
.pa-atrium h1{font-size:clamp(38px,5.4vw,76px);margin-bottom:.35em}
.pa-lede{font-size:19px;max-width:54ch}
.pa-actions{display:flex;flex-wrap:wrap;gap:14px;margin:26px 0 30px}
.pa .pa-cta{display:inline-flex;align-items:center;min-height:52px;padding:0 26px;
  background:var(--pa-action);color:#fff;text-decoration:none;font-weight:700}
.pa .pa-cta:hover{background:#96380b}
.pa .pa-cta-2{background:var(--pa-blue)}
.pa .pa-cta-2:hover{background:#1b3ea3}
.pa-facts{display:flex;flex-wrap:wrap;gap:0 44px;margin:0}
.pa-facts dt{font-size:13px;text-transform:uppercase;letter-spacing:.07em;
  color:#3d566f;font-weight:700}
.pa-facts dd{margin:0 0 14px;font-size:18px;font-weight:600}
.pa-trapezoid{position:relative;z-index:2;margin:-40px 0 0 auto;
  width:min(420px,44%);background:var(--pa-ink);color:#fff;
  padding:44px 34px 38px;clip-path:polygon(16% 0,100% 0,100% 100%,0 100%)}
.pa-trapezoid img{width:180px;height:70px;object-fit:contain;display:block;
  margin-left:36px}
.pa-trapezoid p{margin:18px 0 0 36px;font-size:14px;color:#c6d6ea}
.pa-baseline{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:8px 40px;
  margin:0;padding:18px clamp(16px,5vw,64px);background:var(--pa-ink);color:#fff;
  font-weight:600;font-size:16px}

/* --- descending programme steps -------------------------------------- */
.pa-days{padding:clamp(40px,6vw,88px) 0}
.pa-sectionhead{padding:0 clamp(16px,5vw,64px);max-width:70ch;margin-bottom:36px}
.pa-sectionhead h2{font-size:clamp(28px,3.6vw,44px);margin-bottom:.4em}
.pa-step{display:grid;grid-template-columns:minmax(220px,26%) 1fr;gap:0;
  border-top:1px solid var(--pa-pale);background:var(--pa-porcelain)}
.pa-step-1{margin-left:0;margin-right:24%}
.pa-step-2{margin-left:6%;margin-right:18%}
.pa-step-3{margin-left:12%;margin-right:12%}
.pa-step-4{margin-left:18%;margin-right:6%}
.pa-step-5{margin-left:24%;margin-right:0}
.pa-stephead{padding:30px clamp(14px,3vw,34px);background:var(--pa-pale)}
.pa-daynum{font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  color:#2c4260;margin-bottom:.5em}
.pa-stephead h3{font-size:clamp(21px,2.2vw,28px)}
.pa-date{margin:.6em 0 0;font-weight:600}
.pa-stepbody{padding:30px clamp(14px,3vw,34px)}
.pa-themedesc{font-size:18px;max-width:62ch}
.pa-hours{font-size:15px;color:#33506f}
.pa-lineup-h{font-size:15px;text-transform:uppercase;letter-spacing:.06em;
  margin:22px 0 10px;color:#2c4260}
.pa-lineup{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px}
.pa-lineup li{display:grid;grid-template-columns:1fr;padding:10px 12px;
  background:#fff;border-left:4px solid var(--pa-blue)}
.pa-name{font-weight:700}
.pa-said{font-size:15px}
.pa-emp{font-size:14px;color:#3d566f}
.pa-stepnote{margin:18px 0 0;font-size:15px;color:#33506f;max-width:70ch}
.pa-agendalink{padding:26px clamp(16px,5vw,64px) 0;font-weight:600}

/* --- speakers in unequal pairs ---------------------------------------- */
.pa-speakers{padding:clamp(40px,6vw,88px) 0;background:#fff;
  border-top:1px solid var(--pa-pale);border-bottom:1px solid var(--pa-pale)}
.pa-pair{display:grid;gap:clamp(20px,4vw,54px);padding:26px clamp(16px,5vw,64px);
  align-items:start}
.pa-pair-1,.pa-pair-3,.pa-pair-5{grid-template-columns:1.55fr 1fr}
.pa-pair-2,.pa-pair-4,.pa-pair-6{grid-template-columns:1fr 1.55fr}
.pa-speaker{margin:0;display:grid;grid-template-columns:auto 1fr;gap:20px;
  padding:20px;background:var(--pa-porcelain);border-top:3px solid var(--pa-tangerine)}
.pa-narrow figcaption{max-width:34ch}
.pa-shot{display:block;width:132px;height:auto;object-fit:cover;background:var(--pa-pale)}
.pa-shotwrap{width:132px}
.pa-initials{width:132px;height:132px;display:grid;place-items:center;margin:0;
  background:var(--pa-ink);color:#fff;font-size:40px;font-weight:700;letter-spacing:.04em}
.pa-noshot{font-size:12px;color:#3d566f;margin:8px 0 0;line-height:1.35}
.pa-speaker h3{font-size:21px;margin-bottom:.4em}
.pa-role{margin:0 0 .35em;font-weight:600}
.pa-org{margin:0 0 .35em}
.pa-track{margin:0;font-size:14px;color:#3d566f}

/* --- participation ---------------------------------------------------- */
.pa-attend{padding:clamp(40px,6vw,88px) clamp(16px,5vw,64px)}
.pa-attend h2{font-size:clamp(28px,3.6vw,44px);margin-bottom:.4em}
.pa-attintro{max-width:66ch}
.pa-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:16px}
.pa-table caption{text-align:left;font-size:14px;color:#33506f;padding-bottom:10px}
.pa-table th,.pa-table td{border:1px solid var(--pa-pale);padding:14px 16px;
  vertical-align:top;text-align:left}
.pa-table thead th{background:var(--pa-ink);color:#fff}
.pa-table tbody th{background:var(--pa-pale);width:20%}
.pa-pricenote{font-size:15px;color:#33506f;max-width:78ch}

/* --- organisations ---------------------------------------------------- */
.pa-orgs{padding:clamp(40px,6vw,88px) clamp(16px,5vw,64px);background:var(--pa-pale)}
.pa-orgs h2{font-size:clamp(24px,3vw,36px);margin-bottom:.4em}
.pa-orgs>p{max-width:74ch}
.pa-logos{list-style:none;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin:24px 0 0;padding:0}
.pa-logos li{background:#fff;padding:16px;display:flex;align-items:center;gap:12px;
  min-height:76px}
.pa-logos img{width:52px;height:auto;object-fit:contain;flex:0 0 auto}
.pa-logos span{font-size:14px;font-weight:600}

/* --- venue + faq ------------------------------------------------------ */
.pa-venue{padding:clamp(40px,6vw,88px) clamp(16px,5vw,64px)}
.pa-venue h2{font-size:clamp(28px,3.6vw,44px);margin-bottom:.5em}
.pa-venuegrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,56px);
  align-items:start}
.pa-venuecol h3{font-size:23px;margin-bottom:.4em}
.pa-addr{font-weight:600}
.pa-venuedl{margin:0}
.pa-venuedl>div{display:grid;grid-template-columns:minmax(140px,32%) 1fr;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--pa-pale)}
.pa-venuedl dt{font-weight:700;font-size:14px;text-transform:uppercase;
  letter-spacing:.05em;color:#2c4260}
.pa-venuedl dd{margin:0}
.pa-map{margin:0}
.pa-map img{width:100%;height:auto;display:block;border:1px solid var(--pa-pale)}
.pa-map figcaption{font-size:14px;color:#33506f;padding-top:10px}
.pa-faq-h{font-size:23px;margin:44px 0 14px}
.pa-faq details{border-top:1px solid var(--pa-pale)}
.pa-faq summary{cursor:pointer;padding:16px 0;font-weight:700;font-size:18px;
  min-height:44px;display:flex;align-items:center}
.pa-detail{padding:0 0 18px;max-width:74ch}
.pa-detail ul{margin:0;padding-left:20px}

/* --- contact + legal --------------------------------------------------- */
.pa-contact{padding:clamp(40px,6vw,88px) clamp(16px,5vw,64px);background:var(--pa-ink);
  color:#fff}
.pa-contact h2{font-size:clamp(26px,3.2vw,40px);margin-bottom:.6em}
.pa-contact a{color:#bcd2f6}
.pa-contactgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:clamp(20px,4vw,56px)}
.pa-contact h3{font-size:18px;text-transform:uppercase;letter-spacing:.06em;
  margin-bottom:.8em;color:#9fbdea}
.pa-mail{font-size:20px;font-weight:700}
.pa-links{list-style:none;margin:0;padding:0}
.pa-links li{padding:4px 0}
.pa-links a{display:inline-flex;align-items:center;min-height:34px}
.pa-foot{padding:26px clamp(16px,5vw,64px);background:#0f1e30;color:#c6d6ea;font-size:14px}
.pa-foot a{color:#bcd2f6}
.pa-footlegal{margin:0}

/* --- responsive -------------------------------------------------------- */
@media (max-width:1000px){
  .pa-white{width:auto;margin-right:clamp(16px,5vw,64px);padding-right:0}
  .pa-trapezoid{width:min(360px,60%)}
  .pa-step{grid-template-columns:1fr}
  .pa-step-1,.pa-step-2,.pa-step-3,.pa-step-4,.pa-step-5{margin:0}
  .pa-step{border-left:6px solid var(--pa-blue)}
  .pa-pair-1,.pa-pair-2,.pa-pair-3,.pa-pair-4,.pa-pair-5,.pa-pair-6{
    grid-template-columns:1fr}
  .pa-venuegrid{grid-template-columns:1fr}
}
@media (max-width:640px){
  /* mobile: the diagonal becomes a shallow corner cut above the ink plane */
  .pa-plane{clip-path:polygon(0 0,100% 0,100% 34%,0 12%);
    background:linear-gradient(102deg,var(--pa-blue) 0 60%,var(--pa-pale) 60%)}
  .pa-atrium{padding-top:22px}
  .pa-white{background:transparent}
  .pa-atrium h1{font-size:clamp(34px,9vw,44px)}
  .pa-trapezoid{width:100%;margin:24px 0 0;clip-path:polygon(6% 0,100% 0,100% 100%,0 100%)}
  .pa-trapezoid img,.pa-trapezoid p{margin-left:14px}
  .pa-speaker{grid-template-columns:1fr}
  .pa-shotwrap,.pa-shot,.pa-initials{width:100%;max-width:200px}
  .pa-table,.pa-table thead,.pa-table tbody,.pa-table tr,.pa-table th,.pa-table td{
    display:block;width:auto}
  .pa-table thead{position:absolute;left:-9999px}
  .pa-table tbody th{border-bottom:0}
  .pa-table td{border-top:0}
  .pa-table td::before{content:attr(data-mode);display:block;font-weight:700;
    font-size:13px;text-transform:uppercase;color:#2c4260}
}
@media (prefers-reduced-motion:reduce){
  .pa-plane{animation:none;opacity:1;transform:none}
  .pa *{transition:none!important}
}
@media (prefers-contrast:more){
  .pa-brandtext,.pa-hours,.pa-stepnote,.pa-track,.pa-pricenote,.pa-map figcaption{color:#182B44}
}
