*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img,picture,svg,video{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
h1,h2,h3,h4,h5,p,figure,blockquote,dl,dd{margin:0}
ul,ol{margin:0;padding:0}
table{border-collapse:collapse;width:100%}
summary{cursor:pointer}
summary::-webkit-details-marker{display:none}

/* keyboard focus must always be visible (WCAG 2.2 AA) */
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid currentColor;outline-offset:3px;border-radius:2px}

.skip{position:absolute;left:-9999px;top:0;z-index:999;padding:.75rem 1.25rem;
  background:#000;color:#fff;text-decoration:none}
.skip:focus{left:0}

.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
}

@media print{
  .skip,nav,.no-print{display:none!important}
  body{background:#fff;color:#000}
}/* ===================================================================
   01 conferenceaccess.com — EXECUTIVE PROSPECTUS
   Signature: 9-column serif title + corner date block + panorama BELOW
   all opening text + ruled speaker rows. No cards in the upper page.
   =================================================================== */
:root{
  --paper:#FAFBFD; --ink:#15243B; --blue:#2456A6; --steel:#63758B; --rule:#DCE3ED;
  --serif:'Source Serif 4',Georgia,'Times New Roman',serif;
  --sans:'Public Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --gut:clamp(20px,4vw,56px);
  --maxw:1320px;
}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}

/* ---- masthead: quiet single line ---- */
.mast{border-bottom:1px solid var(--rule);background:var(--paper)}
.mast__in{max-width:var(--maxw);margin:0 auto;padding:14px var(--gut);
  display:flex;align-items:center;justify-content:space-between;gap:24px}
.mast__brand img{width:148px;height:auto}
.mast__nav{display:flex;align-items:center;gap:clamp(14px,1.8vw,28px);flex-wrap:wrap}
.mast__nav a{color:var(--steel);text-decoration:none;font-size:14.5px;font-weight:500;
  letter-spacing:.01em;padding:6px 0}
.mast__nav a:hover{color:var(--ink)}
.mast__cta{background:var(--blue);color:#fff!important;padding:9px 18px!important;
  border-radius:3px;font-weight:600}
.mast__cta:hover{background:#1c4589}

/* ---- prospectus opening ---- */
.pro{padding:clamp(44px,6.5vw,92px) 0 clamp(28px,3.6vw,48px)}
.pro__grid{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut);
  display:grid;grid-template-columns:repeat(12,1fr);gap:0 clamp(18px,2.4vw,34px)}
.pro__title{grid-column:1/10}
.pro__eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--blue);margin-bottom:18px}
.pro h1{font-family:var(--serif);font-weight:600;
  font-size:clamp(38px,6.2vw,84px);line-height:1.03;letter-spacing:-.022em;
  text-wrap:balance}
/* corner date block, ruled, optically aligned to the title top */
.pro__meta{grid-column:10/13;padding-top:52px}
.pro__meta dl{border-top:2px solid var(--ink);padding-top:14px;
  display:grid;grid-template-columns:auto 1fr;gap:0}
.pro__meta dt{font-size:11.5px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--steel);padding:9px 16px 9px 0;
  border-bottom:1px solid var(--rule)}
.pro__meta dd{font-size:15px;font-weight:600;text-align:right;
  padding:9px 0;border-bottom:1px solid var(--rule)}
.pro__lede{grid-column:1/9;margin-top:clamp(26px,3.4vw,44px)}
.pro__lede p{max-width:66ch;font-size:clamp(17px,1.32vw,19.5px);line-height:1.62;color:#22344f}
.pro__scale{margin-top:14px!important;font-weight:600;color:var(--steel)!important;
  font-size:15.5px!important;font-variant-numeric:tabular-nums}
.pro__act{margin-top:26px!important;display:flex;gap:14px;flex-wrap:wrap}
.pro__fine{margin-top:16px!important;font-size:14px!important;color:var(--steel)!important}
.pro__fine a{color:var(--blue)}

.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:15.5px;
  padding:13px 26px;border-radius:3px;transition:background .15s,color .15s}
.btn--solid{background:var(--blue);color:#fff;border:1px solid var(--blue)}
.btn--solid:hover{background:#1c4589;border-color:#1c4589}
.btn--line{border:1px solid var(--steel);color:var(--ink)}
.btn--line:hover{border-color:var(--ink);background:#eef2f8}

/* ---- panorama: full bleed, BELOW the opening text ---- */
.pano{margin:0 0 clamp(52px,7vw,104px)}
.pano img{width:100%;height:clamp(240px,34vw,470px);object-fit:cover;object-position:50% 42%}
.pano figcaption{max-width:var(--maxw);margin:12px auto 0;padding-inline:var(--gut);
  font-size:13.5px;color:var(--steel)}

/* ---- section furniture ---- */
.sec-head{max-width:74ch;margin-bottom:clamp(30px,3.6vw,52px)}
.sec-head h2{font-family:var(--serif);font-weight:600;
  font-size:clamp(28px,3.5vw,44px);line-height:1.12;letter-spacing:-.015em}
.sec-lede{margin-top:14px;color:var(--steel);font-size:17px;max-width:64ch}
section{padding-block:clamp(40px,5.4vw,78px)}
.more{margin-top:30px;font-size:15.5px}
.more a{color:var(--blue);font-weight:600}

/* ---- reasons: open columns, no cards ---- */
.why{border-top:1px solid var(--rule)}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,3.6vw,56px)}
.col h3{font-family:var(--serif);font-size:21px;font-weight:600;line-height:1.25;
  padding-bottom:14px;border-bottom:2px solid var(--ink);margin-bottom:16px}
.col p{color:#3c4c63;font-size:16px}

/* ---- speakers: ruled editorial rows ---- */
.spk{border-top:1px solid var(--rule)}
.rows{list-style:none}
.row{display:grid;grid-template-columns:170px 1fr;gap:clamp(20px,3vw,44px);
  align-items:start;padding:clamp(22px,2.8vw,34px) 0;border-top:1px solid var(--rule)}
.row:first-child{border-top:2px solid var(--ink)}
.row:last-child{border-bottom:1px solid var(--rule)}
.row__p{width:170px;height:auto;filter:saturate(.96)}
.row__t h3{font-family:var(--serif);font-size:clamp(20px,2.1vw,27px);font-weight:600;
  line-height:1.2;letter-spacing:-.01em}
.row__role{margin-top:7px;color:var(--steel);font-size:16px;max-width:52ch}
.row__ses{margin-top:14px;font-size:15.5px;color:#2c3d57;max-width:56ch}
.row__lbl{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--blue);margin-right:9px}

/* ---- programme: three equal day columns ---- */
.prog{border-top:1px solid var(--rule)}
.days{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,40px)}
.day>summary{display:flex;align-items:baseline;gap:10px;padding-bottom:12px;
  border-bottom:2px solid var(--ink);margin-bottom:4px;list-style:none}
.day>summary::-webkit-details-marker{display:none}
.day__n{font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}
.day__d{font-family:var(--serif);font-size:19px;font-weight:600}
.slots{list-style:none}
.slot{padding:14px 0;border-bottom:1px solid var(--rule)}
.slot__t{font-size:13px;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums}
.slot__h{font-size:15.5px;line-height:1.42;margin-top:3px;font-weight:500}
.slot__s{font-size:14px;color:var(--steel);margin-top:4px}

/* ---- passes: inclusion table ---- */
.pass{border-top:1px solid var(--rule)}
.tbl-scroll{overflow-x:auto}
.tbl{font-size:15.5px;min-width:640px}
.tbl thead th{text-align:left;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--steel);padding:0 18px 12px 0;border-bottom:2px solid var(--ink)}
.tbl tbody th{text-align:left;font-family:var(--serif);font-size:19px;font-weight:600;
  padding:20px 18px 20px 0;vertical-align:top;width:22%}
.tbl td{padding:20px 18px 20px 0;vertical-align:top;border-bottom:1px solid var(--rule)}
.tbl tbody th{border-bottom:1px solid var(--rule)}
.tbl__p{font-weight:700;font-size:19px;white-space:nowrap;width:12%;font-variant-numeric:tabular-nums}
.incl{list-style:none;color:#3c4c63}
.incl li{padding-left:16px;position:relative;margin-bottom:5px;font-size:15px}
.incl li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;
  background:var(--blue);border-radius:50%}
.tbl__a{color:var(--blue);font-weight:600;text-decoration:none;white-space:nowrap}
.tbl__a:hover{text-decoration:underline}

.pcards{display:none;list-style:none}

/* ---- testimony ---- */
.test{border-top:1px solid var(--rule)}
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,3.4vw,52px)}
.q{border-top:2px solid var(--ink);padding-top:22px}
.q p{font-family:var(--serif);font-size:clamp(17px,1.55vw,20px);line-height:1.55;color:#1b2c45}
.q footer{margin-top:20px;display:flex;align-items:center;gap:14px;
  font-size:14.5px;color:var(--steel)}
.q footer img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.q cite{display:block;font-style:normal;font-weight:700;color:var(--ink);font-size:15.5px}

/* ---- organizer ---- */
.org{border-top:1px solid var(--rule)}
.org__grid{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(30px,4.5vw,76px);align-items:start}
.org h2{font-family:var(--serif);font-size:clamp(26px,3.2vw,40px);font-weight:600;margin-bottom:18px}
.org p{color:#3c4c63;max-width:62ch}
.org__c{background:#fff;border:1px solid var(--rule);padding:clamp(24px,2.6vw,34px)}
.org__c h3{font-family:var(--serif);font-size:21px;font-weight:600;margin-bottom:12px}
.org__c p{margin-bottom:10px}
.org__mail{color:var(--blue);font-weight:600;word-break:break-word}
.org__fine{font-size:14px;color:var(--steel)!important;margin-bottom:18px!important}

/* ---- footer ---- */
.foot{border-top:1px solid var(--rule);padding:clamp(32px,4vw,52px) 0;
  font-size:14px;color:var(--steel);background:#fff}
.foot p{margin-bottom:8px}
.f-org{font-weight:600;color:var(--ink)}
.f-mail a{color:var(--blue)}
.f-links a{color:var(--steel);margin-right:2px}
.f-copy{margin-top:14px;font-size:13px}

/* ===================== responsive ===================== */
@media (max-width:1000px){
  .cols{grid-template-columns:1fr;gap:30px}
  .days{grid-template-columns:1fr;gap:34px}
  .quotes{grid-template-columns:1fr}
  .org__grid{grid-template-columns:1fr;gap:34px}
}
@media (max-width:760px){
  body{font-size:16.5px}
  .mast__in{flex-direction:column;align-items:flex-start;gap:12px}
  .mast__nav{gap:14px;width:100%}
  .mast__nav a{font-size:14px}
  .mast__cta{margin-left:auto}
  /* MOBILE COMPOSITION: title -> date block -> CTAs -> panorama */
  .pro__grid{display:block}
  .pro h1{font-size:clamp(31px,8.6vw,44px);max-width:none}
  .pro__meta{padding-top:26px}
  .pro__meta dl{grid-template-columns:auto 1fr}
  .pro__lede{margin-top:26px}
  .pro__act{flex-direction:column;align-items:stretch}
  .btn{text-align:center;padding:15px 24px}
  .pano img{height:clamp(190px,52vw,260px)}
  .row{grid-template-columns:104px 1fr;gap:16px}
  .row__p{width:104px}
  /* passes become stacked blocks — no horizontal scrolling at all */
  .tbl-scroll{display:none}
  .pcards{display:grid;gap:20px}
  .pcard{border-top:2px solid var(--ink);padding-top:16px}
  .pcard h3{font-family:var(--serif);font-size:21px;font-weight:600}
  .pcard__p{font-size:23px;font-weight:700;margin:4px 0 12px;font-variant-numeric:tabular-nums}
  .pcard .incl{margin-bottom:14px}
  .pcard__a{display:block;text-align:center;background:var(--blue);color:#fff;
    text-decoration:none;font-weight:600;padding:14px 20px;border-radius:3px}
  /* day disclosures get an affordance on small screens */
  .day>summary{cursor:pointer;position:relative;padding-right:30px}
  .day>summary::after{content:"+";position:absolute;right:4px;top:-2px;
    font-size:22px;font-weight:600;color:var(--blue)}
  .day[open]>summary::after{content:"\2212"}
}
@media (max-width:420px){
  .pro__meta dd{font-size:14px}
  .row{grid-template-columns:84px 1fr}
  .row__p{width:84px}
}


/* ---------------------------------------------------------------
   Mobile overflow guard (deployment fix).
   A table with a fixed min-width protrudes past the viewport even
   inside an overflow-x:auto wrapper, widening documentElement.
   Below 700px the table becomes stacked rows so nothing protrudes;
   the designed wide table is restored from 700px up, unchanged.
   ---------------------------------------------------------------- */
@media (max-width:699.98px){
  .tbl{min-width:0 !important;width:100%;display:block}
  .tbl thead{position:absolute !important;width:1px;height:1px;
    overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .tbl tbody{display:block}
  .tbl tr{display:block;padding:14px 0;border-bottom:1px solid rgba(0,0,0,.14)}
  .tbl th,.tbl td{display:block;width:auto !important;
    padding:3px 0 !important;border:0 !important;white-space:normal}
  .tbl tbody th{font-weight:700}
}