/* DDC usability + visual polish refresh — 2026-08-25
   Intentionally does not alter programme/agenda presentation or content. */

:root{--ddc-mobile-action-height:74px}

/* Stronger keyboard affordance without changing the visual language. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(40,104,255,.42);
  outline-offset:3px;
}

/* Keep the event navigation visible below the fixed site header. */
.saudi-event-subnav{top:86px!important}
#overview,#sponsors,#speakers,#attendees,#agenda,#hotel{scroll-margin-top:166px}

/* Sponsor and company marks use a consistent optical safe area. */
.saudi-sponsor-logo-wrap{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
}
.saudi-sponsor-logo{
  width:auto!important;
  height:auto!important;
  max-width:82%!important;
  max-height:96px!important;
  object-fit:contain!important;
  object-position:center!important;
}
#speakers .logo-mode{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#fff!important;
}
#speakers .logo-mode img{
  width:auto!important;
  height:auto!important;
  max-width:78%!important;
  max-height:58%!important;
  object-fit:contain!important;
  object-position:center!important;
  clip-path:none!important;
  border-radius:0!important;
  transform:none!important;
  filter:none!important;
  box-shadow:none!important;
}

/* Contact page: make the enquiry path as prominent as the contact details. */
.contact-page-grid{align-items:start}
.contact-form-card{
  background:#f5f5f7;
  border-radius:28px;
  padding:34px;
  box-shadow:0 14px 45px rgba(7,16,31,.06);
}
.contact-form-card .eyebrow{margin-bottom:14px}
.contact-form-card h2{font-size:clamp(2rem,3vw,2.8rem);margin-bottom:12px}
.contact-form-card>p{color:var(--muted);max-width:610px}
.contact-form-card .contact-form{margin-top:26px}
.contact-form-card .form-grid{gap:16px}
.contact-form-card label{font-size:.75rem;font-weight:750;color:#38465d}
.contact-form-card input,.contact-form-card select,.contact-form-card textarea{
  width:100%;
  margin-top:7px;
  border:1px solid #d6dce5;
  border-radius:14px;
  background:#fff;
  color:var(--ink);
  padding:13px 14px;
  min-height:50px;
  transition:border-color .2s,box-shadow .2s;
}
.contact-form-card textarea{min-height:142px;resize:vertical}
.contact-form-card input:focus,.contact-form-card select:focus,.contact-form-card textarea:focus{
  border-color:#7fa4ff;
  box-shadow:0 0 0 4px rgba(40,104,255,.10);
  outline:0;
}
.contact-form-card .button{margin-top:18px}
.contact-form-card .form-legal-note{font-size:.72rem;color:var(--muted);margin:16px 0 0}
.contact-context{
  display:none;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  padding:8px 12px;
  margin:18px 0 0;
  border-radius:999px;
  background:#eaf1ff;
  color:#174eab;
  font-size:.72rem;
  line-height:1.35;
  font-weight:800;
}
.contact-context.is-visible{display:flex}
.contact-quick-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}
.contact-quick-links a{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-size:.76rem;
  font-weight:800;
}

/* Mobile-only speaker/participant expansion: preserve all people, reduce first-load scroll. */
.speaker-toggle-wrap{display:none;text-align:center;margin-top:22px}
.speaker-toggle{
  min-height:48px;
  padding:0 20px;
  border:1px solid #cbd5e2;
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-weight:800;
  font-size:.82rem;
}
.speaker-toggle:hover{border-color:#9eabba;background:#f7f8fa}

/* Fixed event actions appear only on small screens. */
.event-mobile-actions{display:none}

/* Slightly calmer home-page rhythm on small screens while preserving whitespace. */
@media(max-width:760px){
  .saudi-event-subnav{top:72px!important}
  #overview,#sponsors,#speakers,#attendees,#agenda,#hotel{scroll-margin-top:142px}

  .home-page .section-heading{margin-bottom:38px}
  .home-page .split-heading{gap:14px}
  .home-page .event-card-body{padding:26px 22px}
  .home-page .event-card-actions{gap:12px}
  .home-page .event-card-actions .button{min-height:46px}

  #speakers .mobile-collapsible-grid:not(.is-expanded)>article:nth-child(n+7){display:none!important}
  .speaker-toggle-wrap{display:block}

  .contact-form-card{padding:26px 20px;border-radius:22px}
  .contact-form-card .button{width:100%}
  .contact-quick-links{display:grid;grid-template-columns:1fr 1fr}
  .contact-quick-links a{justify-content:center;text-align:center}

  .event-mobile-actions{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:95;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:rgba(7,16,31,.94);
    -webkit-backdrop-filter:blur(18px) saturate(145%);
    backdrop-filter:blur(18px) saturate(145%);
    border-top:1px solid rgba(255,255,255,.12);
  }
  .event-mobile-actions a{
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    font-size:.76rem;
    line-height:1.2;
    font-weight:850;
    text-align:center;
    padding:0 12px;
  }
  .event-mobile-actions .event-mobile-primary{background:#fff;color:#07101f}
  .event-mobile-actions .event-mobile-secondary{background:#2868ff;color:#fff}
  body.ddc-event-page{padding-bottom:calc(var(--ddc-mobile-action-height) + env(safe-area-inset-bottom))}

  /* Keep the horizontal event subnav obviously scrollable without visual clutter. */
  .saudi-event-subnav-inner{gap:20px!important;padding-left:2px;padding-right:26px!important}
  .saudi-event-subnav-inner:after{content:"";flex:0 0 8px}
}

@media(max-width:420px){
  .contact-quick-links{grid-template-columns:1fr}
  .event-mobile-actions{gap:7px;padding-left:9px;padding-right:9px}
  .event-mobile-actions a{font-size:.72rem;padding-inline:9px}
}

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