/* Shared by several pages: CTA sections, speaker cards, subpage hero + legal layout. */
/* CTA sections ------------------------------------------ */
.ppm-cta{padding:clamp(96px,11vw,176px) 0 clamp(88px,10vw,160px)}
.ppm-cta--dark{background:var(--navy);color:#fff}
.ppm-cta--light{background:var(--light);color:var(--navy)}
.ppm-cta__kick{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-weight:500;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--pblue)}
.ppm-cta--light .ppm-cta__kick{color:var(--muted)}
.ppm-cta__kick::before{content:"";width:8px;height:8px;background:currentColor}
.ppm-cta__h2{font-weight:900;font-size:clamp(52px,7.8vw,210px);line-height:.92;letter-spacing:-.055em;margin-top:clamp(28px,3vw,48px)}
.ppm-cta__h2.is-small{font-size:clamp(44px,6vw,150px)}
.ppm-cta__h2 span{display:block}
.ppm-cta__h2 .is-blue{color:var(--blue)}
.ppm-cta__row{display:flex;justify-content:space-between;align-items:center;gap:40px;margin-top:clamp(48px,6vw,104px);flex-wrap:wrap}
.ppm-cta__row p{max-width:30em;font-size:clamp(18px,1.45vw,24px);font-weight:500;line-height:1.5;color:rgba(255,255,255,.86)}
.ppm-cta--light .ppm-cta__row p{color:var(--muted)}


/* speakers on home: natural colour photos, captions below, John right */
.ppm-sp__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(28px,2.6vw,48px) clamp(16px,1.6vw,32px);margin-top:clamp(48px,5vw,88px)}
.ppm-pc{margin:0;display:flex;flex-direction:column;min-width:0;outline-offset:6px}
.ppm-pc__img{overflow:hidden;border-radius:12px 12px 12px 40px;aspect-ratio:4/5;background:var(--light)}
.ppm-pc__img img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 18%;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.ppm-pc:hover .ppm-pc__img img,.ppm-pc:focus-within .ppm-pc__img img{transform:scale(1.05)}
.ppm-pc figcaption{padding-top:16px}
.ppm-pc h3{font-weight:900;font-size:clamp(18px,1.3vw,24px);letter-spacing:-.025em;line-height:1.15;color:var(--navy)}
.ppm-pc p{font-size:clamp(13px,.9vw,15px);line-height:1.4;color:var(--muted);margin-top:4px}
.ppm-pc strong{display:block;font-weight:900;color:var(--blue);margin-top:6px;font-size:clamp(14px,1vw,16px)}
.ppm-pc--lead{grid-column:3;grid-row:1 / span 2}
.ppm-pc--lead .ppm-pc__img{flex:1;min-height:0;aspect-ratio:auto;border-radius:12px 12px 12px clamp(56px,6vw,110px)}
.ppm-pc--lead h3{font-size:clamp(26px,2.4vw,44px);letter-spacing:-.035em}
.ppm-pc--lead .ppm-pc__bio{margin-top:12px;color:var(--ink);max-width:34em;font-size:clamp(14px,1vw,17px)}
.ppm-pc__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ppm-pc__tags span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:.55em .9em .5em;border-radius:999px;border:1px solid var(--border);color:var(--navy)}
@media (max-width:980px){.ppm-sp__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.ppm-sp__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ppm-pc--lead{grid-column:1 / -1;grid-row:auto;order:-1}.ppm-pc--lead .ppm-pc__img{flex:none;aspect-ratio:1/1}}
@media (max-width:720px){.ppm-pc:not(.ppm-pc--lead) p{display:none}}

/* LEGAL PAGES ------------------------------------------------- */
.lg-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse 46% 90% at 88% 0%,#0B3A86 0%,#0A1F44 72%),#0A1F44;color:#fff;padding:calc(var(--hdr-h) + clamp(64px,9vw,150px)) 0 clamp(56px,7vw,112px);border-radius:0 0 0 clamp(56px,7vw,140px)}
.lg-hero .ppm-wrap{position:relative}
.lg-kick{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--pblue)}
.lg-kick::before{content:"";width:8px;height:8px;background:currentColor}
.lg-h1{font-weight:900;font-size:clamp(48px,7.4vw,168px);line-height:.92;letter-spacing:-.055em;margin-top:clamp(24px,3vw,40px)}
.lg-h1 span{display:block;color:var(--blue)}
.lg-hero__row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-top:clamp(36px,4vw,64px)}
.lg-lead{max-width:36em;font-size:clamp(17px,1.35vw,22px);line-height:1.55;color:rgba(255,255,255,.82)}
.lg-date{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.lg-body{background:var(--white);padding:clamp(64px,8vw,136px) 0}
.lg-grid{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:clamp(40px,6vw,120px);align-items:start}
.lg-toc{position:sticky;top:calc(var(--hdr-h) + 32px)}
.lg-toc p{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.lg-toc ol{list-style:none;counter-reset:t;border-left:1px solid var(--border)}
.lg-toc li{counter-increment:t}
.lg-toc a{display:grid;grid-template-columns:30px 1fr;gap:6px;padding:8px 0 8px 18px;margin-left:-1px;border-left:2px solid transparent;font-size:15px;font-weight:500;line-height:1.35;color:var(--muted);text-decoration:none;transition:color .15s,border-color .15s}
.lg-toc a::before{content:counter(t,decimal-leading-zero);font-family:var(--mono);font-size:11px;padding-top:3px;color:var(--pblue)}
.lg-toc a:hover{color:var(--navy)}
.lg-toc a.is-on{color:var(--navy);border-left-color:var(--blue);font-weight:700}
.lg-sec{padding:clamp(36px,4vw,56px) 0;border-top:1px solid var(--border);scroll-margin-top:calc(var(--hdr-h) + 24px)}
.lg-sec:first-child{border-top:0;padding-top:0}
.lg-sec__n{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--blue);margin-bottom:12px}
.lg-sec h2{font-weight:900;font-size:clamp(28px,2.8vw,48px);line-height:1.02;letter-spacing:-.035em;color:var(--navy);margin-bottom:22px}
.lg-sec h3{font-weight:800;font-size:clamp(18px,1.4vw,22px);letter-spacing:-.015em;color:var(--navy);margin:30px 0 10px}
.lg-sec p,.lg-sec li{max-width:46em;font-size:clamp(16px,1.1vw,18px);line-height:1.7;color:#3D4F63}
.lg-sec p+p{margin-top:14px}
.lg-sec a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.lg-sec strong{color:var(--navy)}
.lg-sec ul{list-style:none;margin:10px 0 0}
.lg-sec ul li{position:relative;padding-left:22px}
.lg-sec ul li::before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:6px;background:var(--blue)}
.lg-address{padding:20px 24px;border-radius:10px 10px 10px 32px;background:var(--light)}
.lg-basis{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px!important;font-size:15px!important;color:var(--navy)!important}
.lg-basis span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:.45em .9em .4em;border-radius:999px;background:var(--light);border:1px solid var(--border);color:var(--muted)}
.tbc{background:rgba(240,140,0,.14);outline:1px dashed #F08C00;outline-offset:1px;padding:0 .25em;border-radius:3px}
.lg-close{background:var(--light);padding:clamp(56px,7vw,112px) 0}
.lg-close .ppm-wrap{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.lg-close h2{font-weight:900;font-size:clamp(32px,3.6vw,64px);line-height:1;letter-spacing:-.04em;color:var(--navy)}
.lg-close h2 span{display:block;color:var(--blue)}
.lg-cmplz{max-width:46em;padding:28px 32px;border:1px dashed var(--pblue);border-radius:10px 10px 10px 32px;background:var(--light);font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--muted)}
#cmplz-document{max-width:46em;font-size:17px;line-height:1.7;color:#3D4F63}
#cmplz-document h2{font-weight:900;font-size:clamp(26px,2.6vw,40px);letter-spacing:-.035em;color:var(--navy);margin:48px 0 16px;padding-top:28px;border-top:1px solid var(--border)}
#cmplz-document h3{font-weight:800;font-size:20px;color:var(--navy);margin:28px 0 10px}
#cmplz-document a{color:var(--blue)}
@media (max-width:900px){.lg-grid{grid-template-columns:1fr}.lg-toc{position:static}}



/* FAQ accordion (About, Tickets) */
.ab-faq__list{border-top:1px solid var(--border)}
.ab-faq__i{border-bottom:1px solid var(--border)}
.ab-faq__i summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:clamp(20px,2vw,28px) 0;cursor:pointer;font-weight:800;font-size:clamp(19px,1.5vw,26px);letter-spacing:-.02em;color:var(--navy)}
.ab-faq__i summary::-webkit-details-marker{display:none}
.ab-faq__i summary span{position:relative;flex:none;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--navy)}
.ab-faq__i summary span::before,.ab-faq__i summary span::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;background:var(--navy);transition:transform .25s}
.ab-faq__i summary span::after{transform:rotate(90deg)}
.ab-faq__i[open] summary span::after{transform:rotate(0)}
.ab-faq__i p{font-size:clamp(16px,1.15vw,19px);line-height:1.6;color:var(--muted);max-width:44em;padding:0 0 clamp(20px,2vw,28px)}
.ab-faq__i a{color:var(--blue)}

/* Partners strip (homepage before Register, /partners/ before the form). Logos in natural colours. */
.ppm-ptn{background:var(--light);padding:var(--sec-y-s) 0}
.ppm-ptn .ppm-cta__kick{color:var(--muted);font-weight:500}
.ppm-ptn__group{margin-top:clamp(28px,3vw,44px)}
.ppm-ptn__tier{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.ppm-ptn__logos{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(12px,1.4vw,24px);margin-top:18px}
.ppm-ptn__logo{display:flex;align-items:center;justify-content:center;width:clamp(220px,22vw,340px);aspect-ratio:2/1;padding:clamp(22px,2.4vw,40px);background:#fff;border:1px solid var(--border);border-radius:12px 12px 12px 40px;transition:border-color .3s,transform .4s cubic-bezier(.2,.8,.2,1)}
.ppm-ptn__logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
a.ppm-ptn__logo:hover{border-color:var(--pblue);transform:translateY(-2px)}
