/* ==========================================================================
   SCON Conferences — Main Website
   Home page styles (matches "sample-home page image.png")
   Scale note: the whole design is drawn ~10% larger than the first draft, so
   the page reads at 100% browser zoom the way the draft did at 110%.
   ========================================================================== */

:root{
  --brand-900:#052e42;
  --brand-800:#073c57;
  --brand-700:#094563;
  --brand-600:#0d6390;
  --brand-500:#1490c8;
  --brand-400:#26bbef;
  --brand-300:#6ed3f5;
  --brand-tint:#f1f9fd;
  --brand-tint-2:#ddf1fc;

  --ink:#0f1c23;
  --ink-2:#2a3941;
  --muted:#647581;
  --line:#e2eaef;

  --dark:#0c2231;

  --container:1320px;
  --shadow-sm:0 2px 11px rgba(9,40,60,.06);
  --shadow-md:0 11px 33px rgba(9,40,60,.10);

  --font-head:"Poppins","Segoe UI",system-ui,-apple-system,sans-serif;
  --font-body:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink-2);
  background:#fff;
  font-size:17.5px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{font-family:var(--font-head);color:var(--ink);margin:0;line-height:1.2;font-weight:600}

.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 26px}

/* ---------- shared bits ---------- */
.eyebrow{
  font-family:var(--font-head);
  font-size:13px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--brand-500);
  margin:0 0 15px;
}
.section-title{
  font-size:clamp(29px,3.1vw,40px);
  font-weight:700;
  letter-spacing:-.01em;
}
.section-head--center{text-align:center;max-width:840px;margin:0 auto 50px}

.btn{
  display:inline-flex;align-items:center;gap:11px;
  font-family:var(--font-head);
  font-size:15.5px;font-weight:500;
  padding:14px 24px;border-radius:9px;border:1px solid transparent;
  cursor:pointer;transition:.25s ease;white-space:nowrap;
}
.btn svg{width:16.5px;height:16.5px;flex:none}
.btn--primary{
  background:linear-gradient(180deg,var(--brand-600),var(--brand-700));
  color:#fff;box-shadow:0 7px 18px rgba(9,69,99,.32);
}
.btn--primary:hover{background:linear-gradient(180deg,var(--brand-500),var(--brand-600));transform:translateY(-2px)}
.btn--dark{background:var(--brand-800);color:#fff}
.btn--dark:hover{background:var(--brand-700);transform:translateY(-2px)}
.btn--ghost{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.55)}
.btn--ghost:hover{background:rgba(255,255,255,.20)}
.btn--white{background:#fff;color:var(--brand-800);font-weight:600}
.btn--white:hover{transform:translateY(-2px);box-shadow:0 11px 26px rgba(0,0,0,.18)}
.btn--sm{padding:11px 20px;font-size:14.5px}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  position:sticky;top:0;z-index:60;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.site-header.is-stuck{box-shadow:0 4px 20px rgba(9,40,60,.07)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:26px;height:84px}

.brand{display:flex;align-items:center}
.brand img{height:60px;width:auto;display:block}
.footer-brand .brand img{height:66px}

.nav{display:flex;align-items:center;gap:33px}
.nav a{
  font-family:var(--font-head);font-size:16px;font-weight:400;color:var(--ink-2);
  padding:7px 0;position:relative;transition:color .2s;
}
.nav a:hover{color:var(--brand-600)}
.nav a.is-active{color:var(--brand-600);font-weight:500}
.nav a.is-active::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;
  background:var(--brand-500);border-radius:2px;
}
.nav .has-drop{display:inline-flex;align-items:center;gap:7px}
.nav .has-drop svg{width:12px;height:12px;opacity:.7}

.header-actions{display:flex;align-items:center;gap:15px}
.nav-toggle{
  display:none;width:46px;height:46px;border:1px solid var(--line);background:#fff;
  border-radius:9px;cursor:pointer;align-items:center;justify-content:center;
}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--ink);position:relative}
.nav-toggle span::before,.nav-toggle span::after{
  content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);
}
.nav-toggle span::before{top:-7px}
.nav-toggle span::after{top:7px}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;
  background:#062736 url("../img/hero.webp") center 52% / cover no-repeat;
  color:#fff;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,
      rgba(4,27,40,.96) 0%,
      rgba(5,32,47,.90) 30%,
      rgba(6,38,55,.62) 55%,
      rgba(6,38,55,.46) 78%,
      rgba(6,38,55,.40) 100%);
}
.hero .container{position:relative;z-index:2}
.hero-inner{padding:48px 0 104px;max-width:680px}
.hero .eyebrow{color:var(--brand-300);margin-bottom:22px}
.hero h1{
  color:#fff;font-size:clamp(34px,3.9vw,54px);font-weight:700;
  line-height:1.14;letter-spacing:-.02em;margin-bottom:24px;
}
.hero h1 .accent{color:var(--brand-400)}
.hero p{
  color:rgba(255,255,255,.86);font-size:16.5px;max-width:500px;margin:0 0 26px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:15px}

/* stats card overlapping the hero */
.stats-wrap{position:relative;z-index:3;margin-top:-86px}
.stats{
  background:#fff;border-radius:15px;box-shadow:var(--shadow-md);
  display:grid;grid-template-columns:repeat(4,1fr);
  padding:29px 11px;
}
.stat{display:flex;align-items:center;gap:18px;justify-content:center;padding:7px 20px;position:relative}
.stat + .stat::before{
  content:"";position:absolute;left:0;top:10%;height:80%;width:1px;background:var(--line);
}
.stat-icon{
  width:53px;height:53px;flex:none;border-radius:50%;
  background:var(--brand-tint-2);display:grid;place-items:center;color:var(--brand-600);
}
.stat-icon svg{width:25px;height:25px}
.stat-num{display:block;font-family:var(--font-head);font-size:29px;font-weight:700;color:var(--ink);line-height:1.1}
.stat-label{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}

/* ==========================================================================
   About
   ========================================================================== */
.about{padding:110px 0 106px}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:77px;align-items:center}

.collage{position:relative;padding:29px 20px 33px}
.collage-main{border-radius:11px;overflow:hidden;box-shadow:var(--shadow-md);position:relative;z-index:2}
.collage-main img{width:100%;height:320px;object-fit:cover}
.collage-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px;position:relative;z-index:2}
.collage-row img{width:100%;height:165px;object-fit:cover;border-radius:11px;box-shadow:var(--shadow-sm)}
.collage-ring{
  position:absolute;z-index:1;border:1.5px solid var(--brand-300);border-radius:50%;
  width:80%;height:80%;right:-5%;top:10%;opacity:.5;
  clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%);
}
.dots{
  position:absolute;z-index:1;
  background-image:radial-gradient(var(--brand-400) 1.8px,transparent 1.8px);
  background-size:12px 12px;opacity:.55;
}
.dots--tl{width:106px;height:77px;left:0;top:0}
.dots--bc{width:121px;height:48px;left:32%;bottom:-2px}

.about-content .section-title{margin-bottom:20px}
.about-content .section-title span{display:block;color:var(--brand-600)}
.about-content p{color:var(--muted);font-size:16.5px;margin:0 0 26px;max-width:594px}
.check-list{display:grid;gap:14px;margin-bottom:33px}
.check-list li{display:flex;align-items:flex-start;gap:12px;font-size:16px;color:var(--ink-2)}
.check-list svg{width:20px;height:20px;flex:none;color:var(--brand-500);margin-top:2px}

/* ==========================================================================
   Services
   ========================================================================== */
.services{padding:95px 0 106px;background:#fff}
.services-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px}
.service-card{
  border:1px solid var(--line);border-radius:11px;background:#fff;
  padding:37px 24px 33px;text-align:center;transition:.25s ease;
}
.service-card:hover{border-color:var(--brand-300);box-shadow:var(--shadow-md);transform:translateY(-4px)}
.service-icon{width:57px;height:57px;margin:0 auto 20px;display:grid;place-items:center;color:var(--brand-600)}
.service-icon svg{width:42px;height:42px}
.service-card h3{font-size:17px;font-weight:600;margin-bottom:13px;line-height:1.35}
.service-card p{font-size:14.3px;color:var(--muted);margin:0;line-height:1.7}

/* ==========================================================================
   Upcoming events
   ========================================================================== */
.events{padding:88px 0 99px;background:var(--brand-tint)}
.events-head{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;margin-bottom:40px}
.events-head .section-title{font-size:clamp(26px,2.8vw,36px)}
.events-nav{display:flex;align-items:center;gap:11px}
.slider-btn{
  width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;
  color:var(--ink-2);display:grid;place-items:center;cursor:pointer;transition:.2s;
}
.slider-btn svg{width:16.5px;height:16.5px}
.slider-btn:hover{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}

.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.event-card{
  background:#fff;border-radius:13px;overflow:hidden;box-shadow:var(--shadow-sm);
  transition:.25s ease;display:flex;flex-direction:column;
}
.event-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}
.event-media{position:relative}
.event-media img{width:100%;height:210px;object-fit:cover}
.event-date{
  position:absolute;left:15px;top:15px;
  background:linear-gradient(180deg,var(--brand-600),var(--brand-700));
  color:#fff;border-radius:9px;padding:9px 13px;text-align:center;
  box-shadow:0 7px 18px rgba(6,38,55,.3);
}
.event-date .d{display:block;font-family:var(--font-head);font-size:19px;font-weight:700;line-height:1.1}
.event-date .m{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.92;margin-top:2px}
.event-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.event-body h3{font-size:19px;font-weight:700;margin-bottom:9px}
.event-body p{font-size:15px;color:var(--muted);margin:0 0 15px;line-height:1.6}
.event-meta{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);margin-bottom:18px}
.event-meta svg{width:16.5px;height:16.5px;color:var(--brand-500);flex:none}
.link-more{
  margin-top:auto;display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-head);font-size:15px;font-weight:500;color:var(--brand-600);
}
.link-more svg{width:15.5px;height:15.5px;transition:transform .2s}
.link-more:hover svg{transform:translateX(4px)}

/* ==========================================================================
   Why choose us
   ========================================================================== */
.why{padding:95px 0 101px;background:#fff}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.why-item{text-align:center;padding:7px 31px;position:relative}
.why-item + .why-item::before{
  content:"";position:absolute;left:0;top:6%;height:88%;width:1px;background:var(--line);
}
.why-icon{width:62px;height:62px;margin:0 auto 18px;display:grid;place-items:center;color:var(--brand-600)}
.why-icon svg{width:46px;height:46px}
.why-item h3{font-size:17px;font-weight:600;margin-bottom:11px}
.why-item p{font-size:14.3px;color:var(--muted);margin:0;line-height:1.7}

/* ==========================================================================
   CTA band
   ========================================================================== */
.cta{
  position:relative;overflow:hidden;
  background:linear-gradient(100deg,var(--brand-900) 0%,var(--brand-700) 45%,var(--brand-500) 100%);
  color:#fff;
}
.cta::before{
  content:"";position:absolute;inset:0;opacity:.18;
  background-image:radial-gradient(circle at 12% 50%,rgba(255,255,255,.5) 0 1.6px,transparent 2.2px),
                   radial-gradient(circle at 80% 30%,rgba(255,255,255,.35) 0 1.6px,transparent 2.2px);
  background-size:29px 29px,37px 37px;
}
.cta-inner{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:33px;
  padding:42px 0;
}
.cta-left{display:flex;align-items:center;gap:22px}
.cta-icon{
  width:62px;height:62px;flex:none;border-radius:50%;
  border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.12);
  display:grid;place-items:center;
}
.cta-icon svg{width:27px;height:27px}
.cta h2{color:#fff;font-size:clamp(22px,2.3vw,29px);font-weight:700;margin-bottom:7px}
.cta p{margin:0;font-size:15.5px;color:rgba(255,255,255,.85)}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--dark);color:rgba(255,255,255,.72);font-size:15px}
.footer-top{
  display:grid;grid-template-columns:1.25fr .95fr .8fr 1.05fr;gap:44px;
  padding:64px 0 48px;
}
.footer-brand .brand{margin-bottom:20px}
.footer-brand .brand-name{color:var(--brand-400)}
.footer-brand .brand-sub{color:rgba(255,255,255,.55)}
.footer-brand p{margin:0 0 24px;line-height:1.8;color:rgba(255,255,255,.62);max-width:308px}
.socials{display:flex;gap:11px}
.socials a{
  width:37px;height:37px;border-radius:9px;background:rgba(255,255,255,.10);
  display:grid;place-items:center;color:#fff;transition:.2s;
}
.socials a:hover{background:var(--brand-600);transform:translateY(-2px)}
.socials svg{width:16.5px;height:16.5px}

.footer-col h4{color:#fff;font-size:16.5px;font-weight:600;margin-bottom:20px}
.footer-col li{margin-bottom:12px}
.footer-col a{color:rgba(255,255,255,.66);transition:.2s}
.footer-col a:hover{color:var(--brand-400)}

.contact-list li{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;line-height:1.6}
.contact-ico{
  width:29px;height:29px;flex:none;border-radius:7px;background:var(--brand-600);
  display:grid;place-items:center;color:#fff;margin-top:1px;
}
.contact-ico svg{width:14.5px;height:14.5px}
.contact-list span{color:rgba(255,255,255,.68)}
.contact-list strong{display:block;color:#fff;font-weight:500}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.09);
  padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:18px;
  font-size:13.5px;color:rgba(255,255,255,.55);
}
.footer-bottom .heart{color:var(--brand-400)}

/* ==========================================================================
   Reveal on scroll
   ========================================================================== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1180px){
  .nav{gap:22px}
  .nav a{font-size:15px}
  .services-grid{grid-template-columns:repeat(3,1fr)}
  .footer-top{grid-template-columns:1.2fr 1fr 1fr;row-gap:44px}
  .footer-map{grid-column:1 / -1;max-width:520px}
}
@media (max-width:980px){
  .nav-toggle{display:flex}
  .nav{
    position:absolute;left:0;right:0;top:84px;background:#fff;
    flex-direction:column;align-items:flex-start;gap:0;padding:8px 26px 20px;
    border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);display:none;
  }
  .nav.is-open{display:flex}
  .nav a{width:100%;padding:13px 0;border-bottom:1px solid var(--line);font-size:16px}
  .nav a.is-active::after{display:none}
  .header-actions .btn{display:none}

  .hero-inner{padding:44px 0 104px;max-width:100%}
  .stats{grid-template-columns:repeat(2,1fr);row-gap:24px}
  .stat:nth-child(3)::before{display:none}

  .about{padding:84px 0}
  .about-grid{grid-template-columns:1fr;gap:48px}
  .about-content p{max-width:100%}

  .events-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}
  .events-head{flex-direction:column;align-items:flex-start}
  .why-grid{grid-template-columns:repeat(2,1fr);row-gap:40px}
  .why-item:nth-child(3)::before{display:none}
  .cta-inner{flex-direction:column;text-align:center;padding:48px 0}
  .cta-left{flex-direction:column;text-align:center}
}
@media (max-width:700px){
  body{font-size:16.5px}
  .services-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto}
  .stats{grid-template-columns:1fr;padding:16px 11px}
  .stat + .stat::before{display:none}
  .stat{justify-content:flex-start;border-top:1px solid var(--line);padding-top:17px;margin-top:6px}
  .stat:first-child{border-top:0;margin-top:0;padding-top:7px}
  .why-grid{grid-template-columns:1fr}
  .why-item::before{display:none}
  .footer-top{grid-template-columns:1fr;padding:50px 0 36px}
  .footer-bottom{flex-direction:column;text-align:center}
  .hero-actions .btn{flex:1 1 auto;justify-content:center}
}

/* ==========================================================================
   About Us page
   ========================================================================== */
.page-hero{
  position:relative;
  background:#062736 url("../img/about-hero.webp") center 82% / cover no-repeat;
  color:#fff;
}
.page-hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,
      rgba(4,26,38,.97) 0%,
      rgba(5,32,47,.92) 32%,
      rgba(6,38,55,.72) 58%,
      rgba(6,38,55,.56) 80%,
      rgba(6,38,55,.50) 100%);
}
.page-hero .container{position:relative;z-index:2}
.page-hero-inner{padding:74px 0 152px;max-width:660px}
.breadcrumb{display:flex;align-items:center;gap:10px;font-size:14.5px;color:rgba(255,255,255,.72);margin-bottom:26px}
.breadcrumb a:hover{color:var(--brand-300)}
.breadcrumb svg{width:13px;height:13px;opacity:.7}
.breadcrumb .current{color:#fff}
.page-hero h1{
  color:#fff;font-size:clamp(32px,3.9vw,52px);font-weight:700;
  line-height:1.15;letter-spacing:-.02em;margin-bottom:20px;
}
.page-hero h1 .accent{color:var(--brand-400)}
.page-hero p{color:rgba(255,255,255,.84);font-size:16.5px;max-width:520px;margin:0}
.page-hero .rule{display:block;width:56px;height:3px;background:var(--brand-500);border-radius:3px;margin-top:30px}

.stats--five{grid-template-columns:repeat(5,1fr)}
.stats--five .stat{gap:14px;padding:7px 14px}
.stats--five .stat-icon{width:48px;height:48px}
.stats--five .stat-num{font-size:26px}

/* ---- who we are ---- */
.who{padding:96px 0 72px}
.who-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:74px;align-items:center}
.who-content .section-title{margin-bottom:22px}
.who-content .section-title span{display:block;color:var(--brand-600)}
.who-content p{color:var(--muted);font-size:16.5px;margin:0 0 20px;max-width:560px}
.who-media{position:relative;padding:14px 26px 26px 0}
.who-media img{
  width:100%;height:330px;object-fit:cover;border-radius:6px;
  box-shadow:var(--shadow-md);position:relative;z-index:2;
}
.who-media .dots{width:88px;height:66px;right:0;bottom:0}
.swoosh{
  position:absolute;z-index:1;right:-30px;top:-10px;width:230px;height:330px;
  border-right:1.5px solid var(--brand-300);border-top:1.5px solid var(--brand-300);
  border-radius:0 60% 0 0;opacity:.35;
}

/* ---- our values ---- */
.values{padding:10px 0 78px}
.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.value-card{
  display:flex;align-items:flex-start;gap:16px;
  border:1px solid var(--line);border-radius:11px;background:#fff;
  padding:24px 22px;transition:.25s ease;
}
.value-card:hover{border-color:var(--brand-300);box-shadow:var(--shadow-md);transform:translateY(-4px)}
.value-icon{
  width:52px;height:52px;flex:none;border-radius:50%;
  background:var(--brand-tint-2);display:grid;place-items:center;color:var(--brand-600);
}
.value-icon svg{width:27px;height:27px}
.value-card h3{font-size:16.5px;font-weight:600;margin-bottom:8px}
.value-card p{font-size:14px;color:var(--muted);margin:0;line-height:1.65}

/* ---- our mission ---- */
.mission{padding:10px 0 92px}
.mission-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:74px;align-items:center}
.mission-media{position:relative;padding:0 0 26px 14px}
.mission-media img{
  width:100%;height:330px;object-fit:cover;border-radius:6px;
  box-shadow:var(--shadow-md);position:relative;z-index:2;
}
.mission-media .dots{width:88px;height:52px;left:34%;bottom:0}
.mission-content .section-title{margin-bottom:20px}
.mission-content .section-title span{display:block;color:var(--brand-600)}
.mission-content p{color:var(--muted);font-size:16.5px;margin:0 0 24px;max-width:560px}

@media (max-width:1180px){
  .stats--five{grid-template-columns:repeat(3,1fr);row-gap:24px}
  .stats--five .stat:nth-child(4)::before{display:none}
  .values-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:980px){
  .page-hero-inner{padding:44px 0 108px;max-width:100%}
  .stats--five{grid-template-columns:repeat(2,1fr)}
  .stats--five .stat:nth-child(3)::before{display:none}
  .stats--five .stat:nth-child(5)::before{display:none}
  .who,.mission{padding:78px 0}
  .values{padding:12px 0 78px}
  .who-grid,.mission-grid{grid-template-columns:1fr;gap:46px}
  .who-media{padding:14px 20px 20px 0}
  .mission-media{padding:0 0 20px 0;order:-1}
  .who-content p,.mission-content p{max-width:100%}
  .swoosh{display:none}
}
@media (max-width:700px){
  .stats--five{grid-template-columns:1fr}
  .stats--five .stat::before{display:none}
  .values-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}
  .who-media img,.mission-media img{height:260px}
}

/* ==========================================================================
   Past conferences gallery (home page)
   ========================================================================== */
.gallery{padding:88px 0 96px;background:#fff}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.gallery-item{
  position:relative;margin:0;border-radius:12px;overflow:hidden;
  box-shadow:var(--shadow-sm);background:var(--brand-900);
}
.gallery-item img{
  width:100%;height:235px;object-fit:cover;display:block;
  transition:transform .5s ease,opacity .3s ease;
}
.gallery-item::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,46,66,0) 38%,rgba(5,46,66,.86) 100%);
  opacity:.85;transition:opacity .3s ease;
}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item:hover::after{opacity:1}
.gallery-cap{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:18px 20px;color:#fff;
}
.gallery-cap .g-title{
  display:block;font-family:var(--font-head);font-size:17px;font-weight:600;line-height:1.25;
}
.gallery-cap .g-meta{
  display:flex;align-items:center;gap:7px;
  font-size:13px;color:rgba(255,255,255,.82);margin-top:5px;
}
.gallery-cap .g-meta svg{width:14px;height:14px;flex:none;color:var(--brand-300)}
.gallery-actions{display:flex;justify-content:center;margin-top:38px}

@media (max-width:980px){
  .gallery{padding:74px 0 80px}
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:18px}
  .gallery-item img{height:210px}
}
@media (max-width:700px){
  .gallery-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}
}

/* ==========================================================================
   Gallery page
   ========================================================================== */
.page-hero--gallery{background-image:url("../img/gallery/nursing/full/ncc-053.webp");background-position:center 42%}

/* filter bar, sits in a white card overlapping the page hero */
.filter-wrap{position:relative;z-index:3;margin-top:-52px}
.filter-bar{
  background:#fff;border-radius:15px;box-shadow:var(--shadow-md);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;
  padding:18px 22px;
}
.filter-btn{
  font-family:var(--font-head);font-size:14.5px;font-weight:500;
  padding:10px 20px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--ink-2);cursor:pointer;transition:.22s ease;
}
.filter-btn:hover{border-color:var(--brand-300);color:var(--brand-600)}
.filter-btn.is-active{
  background:linear-gradient(180deg,var(--brand-600),var(--brand-700));
  border-color:transparent;color:#fff;box-shadow:0 7px 16px rgba(9,69,99,.28);
}
.filter-count{font-size:14px;color:var(--muted);margin-left:6px}

/* masonry-ish grid */
.gallery-page{padding:56px 0 96px}
.masonry{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:200px;gap:20px;grid-auto-flow:dense;
}
.masonry .gallery-item{height:100%;border-radius:13px;cursor:pointer}
.masonry .gallery-item img{height:100%}
.tile--wide{grid-column:span 2}
.tile--tall{grid-row:span 2}
.tile--big{grid-column:span 2;grid-row:span 2}
.gallery-item .zoom{
  position:absolute;top:14px;right:14px;z-index:3;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.45);
  display:grid;place-items:center;color:#fff;
  opacity:0;transform:translateY(-6px);transition:.25s ease;backdrop-filter:blur(3px);
}
.gallery-item .zoom svg{width:16px;height:16px}
.gallery-item:hover .zoom{opacity:1;transform:none}
.gallery-item.is-hidden{display:none}
.gallery-empty{text-align:center;color:var(--muted);padding:40px 0;display:none}

/* lightbox */
.lightbox{
  position:fixed;inset:0;z-index:100;display:none;
  background:rgba(4,22,33,.94);backdrop-filter:blur(4px);
  align-items:center;justify-content:center;padding:40px 24px;
}
.lightbox.is-open{display:flex}
.lightbox-figure{margin:0;max-width:1100px;width:100%;text-align:center}
.lightbox-figure img{
  max-width:100%;max-height:76vh;margin:0 auto;border-radius:10px;
  box-shadow:0 30px 70px rgba(0,0,0,.5);
}
.lightbox-cap{color:#fff;margin-top:18px}
.lightbox-cap .g-title{display:block;font-family:var(--font-head);font-size:19px;font-weight:600}
.lightbox-cap .g-meta{display:block;font-size:14px;color:rgba(255,255,255,.72);margin-top:4px}
.lightbox-counter{
  position:absolute;top:26px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.7);font-size:14px;letter-spacing:.06em;
}
.lb-btn{
  position:absolute;width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);
  color:#fff;display:grid;place-items:center;cursor:pointer;transition:.2s;
}
.lb-btn:hover{background:var(--brand-600);border-color:var(--brand-600)}
.lb-btn svg{width:19px;height:19px}
.lb-close{top:22px;right:26px}
.lb-prev{left:26px;top:50%;margin-top:-24px}
.lb-next{right:26px;top:50%;margin-top:-24px}

@media (max-width:1180px){
  .masonry{grid-template-columns:repeat(3,1fr);grid-auto-rows:186px}
}
@media (max-width:980px){
  .filter-wrap{margin-top:-40px}
  .gallery-page{padding:44px 0 78px}
  .masonry{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;gap:16px}
  .tile--big{grid-column:span 2;grid-row:span 2}
  .lb-prev{left:10px}
  .lb-next{right:10px}
}
@media (max-width:700px){
  .masonry{grid-template-columns:1fr;grid-auto-rows:210px}
  .tile--wide,.tile--big{grid-column:span 1}
  .tile--tall,.tile--big{grid-row:span 1}
  .filter-btn{font-size:13.5px;padding:9px 16px}
}

/* ---- conference blocks on the gallery page ---- */
.conf-block{padding:52px 0 20px}
.conf-block.is-hidden{display:none}
.conf-head{margin-bottom:34px}
.conf-head .section-title{margin-bottom:14px}
.conf-meta{display:flex;flex-wrap:wrap;gap:10px 26px}
.conf-meta li{display:flex;align-items:center;gap:9px;font-size:14.5px;color:var(--muted)}
.conf-meta svg{width:17px;height:17px;flex:none;color:var(--brand-500)}

.sub-head{
  display:flex;align-items:center;gap:16px;
  font-size:18px;font-weight:600;color:var(--ink);
  margin:44px 0 22px;
}
.sub-head::after{content:"";flex:1;height:1px;background:var(--line)}

.group-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:230px;gap:20px;grid-auto-flow:dense;
}
.group-grid .gallery-item{height:100%;border-radius:13px;cursor:pointer}
.group-grid .gallery-item img{height:100%}

/* the moments wall reads as a photo wall — caption only on hover */
.masonry .gallery-item::after{opacity:0}
.masonry .gallery-item:hover::after{opacity:1}
.masonry .gallery-cap{opacity:0;transform:translateY(10px);transition:.28s ease}
.masonry .gallery-item:hover .gallery-cap{opacity:1;transform:none}
.masonry .gallery-cap .g-title{font-size:15px}
.masonry .gallery-cap .g-meta{font-size:12.5px}

@media (max-width:1180px){
  .group-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:200px}
}
@media (max-width:980px){
  .conf-block{padding:38px 0 12px}
  .group-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px;gap:16px}
  .sub-head{margin:34px 0 18px;font-size:17px}
}
@media (max-width:700px){
  .group-grid{grid-template-columns:1fr;grid-auto-rows:220px}
  .group-grid .tile--wide,.group-grid .tile--big{grid-column:span 1}
  .group-grid .tile--big{grid-row:span 1}
  /* on phones the caption always shows — there is no hover */
  .masonry .gallery-item::after{opacity:.9}
  .masonry .gallery-cap{opacity:1;transform:none}
}
.gallery-grid .gallery-item{cursor:pointer}

/* ---- footer map ---- */
.footer-map iframe{
  width:100%;height:172px;border:0;border-radius:10px;display:block;
  filter:saturate(.9);background:rgba(255,255,255,.06);
}
.footer-address{
  display:flex;align-items:flex-start;gap:9px;
  margin:14px 0 0;font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.68);
}
.footer-address svg{width:16px;height:16px;flex:none;color:var(--brand-400);margin-top:2px}
.footer-brand p{max-width:300px}

/* ==========================================================================
   Nav dropdown
   ========================================================================== */
.nav-item{position:relative;display:flex;align-items:center}
.sub-menu{
  position:absolute;top:100%;left:-18px;min-width:250px;
  background:#fff;border:1px solid var(--line);border-radius:11px;
  box-shadow:0 18px 40px rgba(9,40,60,.14);
  padding:10px;display:flex;flex-direction:column;gap:2px;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.22s ease;z-index:70;
}
.nav-item:hover .sub-menu,.nav-item:focus-within .sub-menu{opacity:1;visibility:visible;transform:translateY(4px)}
.sub-menu a{
  font-size:15px;padding:10px 14px;border-radius:8px;white-space:nowrap;color:var(--ink-2);
}
.sub-menu a::after{display:none}
.sub-menu a:hover{background:var(--brand-tint-2);color:var(--brand-700)}

/* ==========================================================================
   Conference list pages
   ========================================================================== */
.conf-list{padding:66px 0 96px}
.conf-list--prev{padding-top:78px}
.conf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}

.conf-card{
  display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--line);border-radius:13px;overflow:hidden;
  box-shadow:var(--shadow-sm);transition:.25s ease;
}
.conf-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--brand-300)}
.conf-card.is-hidden{display:none}
.conf-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:linear-gradient(120deg,var(--brand-900),var(--brand-700) 60%,var(--brand-600));
  color:#fff;padding:18px 20px;
}
.conf-abbr{font-family:var(--font-head);font-size:22px;font-weight:700;letter-spacing:.02em}
.conf-year{
  font-family:var(--font-head);font-size:12.5px;font-weight:600;letter-spacing:.08em;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);
  padding:4px 11px;border-radius:999px;
}
.conf-card-body{padding:20px 20px 6px;flex:1;display:flex;flex-direction:column}
.conf-card-body h3{font-size:16.5px;font-weight:600;line-height:1.45;margin-bottom:16px}
.conf-card-body h3 a:hover{color:var(--brand-600)}
.conf-card-meta{border-top:1px solid var(--line);padding-top:14px;margin-top:auto;display:grid;gap:9px}
.conf-card-meta li{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:var(--muted)}
.conf-card-meta svg{width:16px;height:16px;flex:none;color:var(--brand-500);margin-top:2px}
.conf-card-foot{
  padding:16px 20px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;
}
.conf-card-foot .link-more svg{width:14px;height:14px}

.prev-note{
  margin-top:52px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:20px;background:var(--brand-tint);border:1px solid var(--line);
  border-radius:14px;padding:28px 30px;
}
.prev-note h3{font-size:19px;font-weight:600;margin-bottom:6px}
.prev-note p{margin:0;color:var(--muted);font-size:15px}

@media (max-width:1180px){
  .conf-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:980px){
  .conf-list{padding:52px 0 78px}
  .conf-grid{grid-template-columns:repeat(2,1fr);gap:18px}
  /* the dropdown becomes indented links inside the mobile menu */
  .nav-item{display:block;width:100%}
  .nav-item .has-drop{width:100%;padding:13px 0;border-bottom:1px solid var(--line)}
  .sub-menu{
    position:static;opacity:1;visibility:visible;transform:none;
    border:0;box-shadow:none;padding:0 0 0 16px;min-width:0;background:transparent;
  }
  .sub-menu a{padding:11px 0;border-bottom:1px solid var(--line);border-radius:0;font-size:15px}
}
@media (max-width:700px){
  .conf-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}
  .prev-note{flex-direction:column;align-items:flex-start;padding:24px}
}
.page-hero--flat .page-hero-inner{padding-bottom:92px}

/* ==========================================================================
   Header refresh — slim contact bar + pill nav
   ========================================================================== */
.topbar{
  background:linear-gradient(100deg,var(--brand-900),var(--brand-700) 62%,var(--brand-600));
  color:rgba(255,255,255,.9);
  max-height:52px;overflow:hidden;
  transition:max-height .3s ease,opacity .3s ease;
}
.site-header.is-stuck .topbar{max-height:0;opacity:0}
.topbar-inner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  height:44px;font-size:13.5px;
}
.topbar-contact{display:flex;align-items:center;gap:26px}
.topbar-contact li{display:flex;align-items:center;gap:8px}
.topbar-contact svg{width:15px;height:15px;flex:none;color:var(--brand-300)}
.topbar-contact a:hover{color:#fff;text-decoration:underline}
.topbar-right{display:flex;align-items:center;gap:20px}
.topbar-note{color:rgba(255,255,255,.62);font-size:13px}
.topbar-socials{display:flex;align-items:center;gap:6px}
.topbar-socials a{
  width:26px;height:26px;border-radius:7px;display:grid;place-items:center;
  background:rgba(255,255,255,.10);color:#fff;transition:.2s;
}
.topbar-socials a:hover{background:rgba(255,255,255,.24)}
.topbar-socials svg{width:13px;height:13px}

/* main bar */
.site-header{transition:box-shadow .25s ease}
.header-inner{height:80px;transition:height .25s ease}
.site-header.is-stuck .header-inner{height:72px}
.brand img{transition:height .25s ease}
.site-header.is-stuck .brand img{height:52px}

/* pill nav */
.nav{gap:6px}
.nav a{
  padding:9px 15px;border-radius:999px;font-size:15.5px;
  transition:background .2s ease,color .2s ease;
}
.nav > a:hover,.nav-item > .has-drop:hover{background:var(--brand-tint-2);color:var(--brand-700)}
.nav a.is-active{background:var(--brand-tint-2);color:var(--brand-700);font-weight:500}
.nav a.is-active::after{
  left:15px;right:15px;bottom:5px;height:2px;
  background:linear-gradient(90deg,var(--brand-500),var(--brand-400));
}
.nav .has-drop svg{transition:transform .22s ease}
.nav-item:hover .has-drop svg{transform:rotate(180deg)}

/* dropdown card with a caret */
.sub-menu{left:0;top:calc(100% + 2px);border-radius:12px;padding:8px}
.sub-menu::before{
  content:"";position:absolute;top:-6px;left:26px;width:12px;height:12px;
  background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);
  transform:rotate(45deg);border-radius:2px;
}
.sub-menu a{
  display:flex;align-items:center;gap:10px;padding:11px 14px;font-size:15px;
  transition:background .18s ease,color .18s ease,padding-left .18s ease;
}
.sub-menu a::before{
  content:"";width:6px;height:6px;border-radius:50%;flex:none;
  background:var(--brand-300);transition:.18s ease;
}
.sub-menu a:hover{padding-left:18px;background:var(--brand-tint-2);color:var(--brand-700)}
.sub-menu a:hover::before{background:var(--brand-600)}

@media (max-width:1180px){
  .topbar-note{display:none}
  .nav a{padding:9px 12px;font-size:15px}
}
@media (max-width:980px){
  .topbar-inner{height:auto;padding:10px 0;flex-wrap:wrap;gap:8px 18px;font-size:12.5px}
  .topbar{max-height:120px}
  .nav{position:absolute;top:100%;gap:0}
  .nav > a,.nav-item > .has-drop{border-radius:0;padding:13px 0}
  .nav > a:hover,.nav-item > .has-drop:hover{background:transparent}
  .nav a.is-active{background:transparent;color:var(--brand-600)}
  .sub-menu::before{display:none}
  .sub-menu a:hover{padding-left:0;background:transparent}
  .site-header.is-stuck .header-inner{height:76px}
}
@media (max-width:700px){
  .topbar-contact{gap:14px;flex-wrap:wrap}
  .topbar-socials{display:none}
}
/* header button removed — push the nav to the right edge */
.nav{margin-left:auto}
@media (max-width:980px){.nav{margin-left:0}}

/* ==========================================================================
   Header v2 — accent hairline, sliding indicator, mega menu
   ========================================================================== */
.site-header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:0}
.site-header::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--brand-700),var(--brand-400) 45%,var(--brand-300) 70%,var(--brand-600));
  opacity:.9;
}

/* top bar: contact items as chips */
.topbar-inner{height:46px}
.topbar-contact li{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  padding:5px 13px;border-radius:999px;transition:.2s;
}
.topbar-contact li:hover{background:rgba(255,255,255,.16)}
.topbar-contact{gap:12px}

/* nav: uppercase, tracked, with a sliding pill behind the hovered item */
.nav{position:relative;gap:2px}
.nav-ind{
  position:absolute;top:50%;left:0;height:38px;width:0;transform:translateY(-50%);
  border-radius:999px;background:linear-gradient(120deg,var(--brand-tint-2),#e9f5fc);
  box-shadow:inset 0 0 0 1px rgba(18,99,144,.10);
  transition:transform .32s cubic-bezier(.4,0,.2,1),width .32s cubic-bezier(.4,0,.2,1),opacity .2s;
  opacity:0;pointer-events:none;z-index:0;
}
.nav.ind-on .nav-ind{opacity:1}
.nav > a,.nav-item > .has-drop{
  position:relative;z-index:1;background:transparent!important;
  font-size:13.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  padding:11px 16px;color:var(--ink-2);
}
.nav > a:hover,.nav-item > .has-drop:hover,.nav-item:hover > .has-drop{color:var(--brand-700)}
.nav a.is-active{color:var(--brand-700)}
.nav a.is-active::after{
  content:"";position:absolute;left:16px;right:16px;bottom:4px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--brand-500),var(--brand-400));
}

/* mega menu */
.mega{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,10px);
  width:min(1040px,calc(100vw - 48px));
  background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:0 26px 60px rgba(9,40,60,.18);
  padding:22px;opacity:0;visibility:hidden;transition:.26s ease;z-index:70;
}
.nav-item:hover .mega,.nav-item:focus-within .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega-inner{display:grid;grid-template-columns:1fr 1fr .85fr;gap:22px}
.mega-col{display:flex;flex-direction:column;gap:4px}
.mega-title{
  font-family:var(--font-head);font-size:11.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brand-500);margin:2px 0 10px 12px;
}
.mega-item{
  display:flex;align-items:center;gap:13px;padding:10px 12px;border-radius:11px;
  transition:background .18s ease,transform .18s ease;
}
.mega-item:hover{background:var(--brand-tint);transform:translateX(3px)}
.mega-abbr{
  flex:none;min-width:56px;text-align:center;
  font-family:var(--font-head);font-size:12.5px;font-weight:700;letter-spacing:.04em;
  color:#fff;background:linear-gradient(130deg,var(--brand-700),var(--brand-500));
  padding:7px 9px;border-radius:8px;
}
.mega-text{display:flex;flex-direction:column;line-height:1.35;min-width:0}
.mega-text strong{font-family:var(--font-head);font-size:14px;font-weight:500;color:var(--ink)}
.mega-text em{font-style:normal;font-size:12.5px;color:var(--muted);margin-top:3px}
.mega-all{
  display:inline-flex;align-items:center;gap:8px;margin:8px 0 0 12px;
  font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--brand-600);
  letter-spacing:.02em;
}
.mega-all svg{width:14px;height:14px;transition:transform .2s}
.mega-all:hover svg{transform:translateX(4px)}

.mega-promo{
  position:relative;border-radius:13px;overflow:hidden;min-height:190px;
  display:flex;align-items:flex-end;background:var(--brand-900);
}
.mega-promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.mega-promo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,46,66,.15) 30%,rgba(5,46,66,.92) 100%);
}
.mega-promo:hover img{transform:scale(1.07)}
.mega-promo-body{position:relative;z-index:2;padding:16px 18px;color:#fff;display:block}
.mega-promo-body strong{display:block;font-family:var(--font-head);font-size:15.5px;font-weight:600}
.mega-promo-body em{display:block;font-style:normal;font-size:12.5px;color:rgba(255,255,255,.78);margin-top:3px}
.mega-promo-cta{
  display:inline-flex;align-items:center;gap:7px;margin-top:10px;
  font-family:var(--font-head);font-size:12.5px;font-weight:600;color:var(--brand-300);
}
.mega-promo-cta svg{width:13px;height:13px;transition:transform .2s}
.mega-promo:hover .mega-promo-cta svg{transform:translateX(4px)}

@media (max-width:1180px){
  .nav > a,.nav-item > .has-drop{padding:11px 12px;font-size:12.5px;letter-spacing:.05em}
  .mega-inner{grid-template-columns:1fr 1fr}
  .mega-promo{grid-column:1 / -1;min-height:150px}
}
@media (max-width:980px){
  .nav-ind{display:none}
  .nav > a,.nav-item > .has-drop{
    font-size:14px;letter-spacing:.04em;padding:13px 0;text-transform:none;font-weight:500;
  }
  .nav a.is-active::after{display:none}
  .mega{
    position:static;transform:none;width:100%;opacity:1;visibility:visible;
    border:0;box-shadow:none;padding:4px 0 10px 12px;background:transparent;
  }
  .mega-inner{grid-template-columns:1fr;gap:10px}
  .mega-title{margin-left:0}
  .mega-item{padding:9px 0}
  .mega-item:hover{background:transparent;transform:none}
  .mega-all{margin-left:0}
  .mega-promo{display:none}
}
/* anchor the mega menu to the header, not to the nav item */
@media (min-width:981px){
  .nav-item{position:static}
  .mega{top:calc(100% + 10px)}
}
/* the nav is the positioning context (it holds the indicator), so anchor the
   mega panel to the nav's right edge instead of centring it */
@media (min-width:981px){
  .mega{left:auto;right:0;transform:translateY(10px)}
  .nav-item:hover .mega,.nav-item:focus-within .mega{transform:translateY(0)}
}
/* the older `.nav a` pill rules must not leak into the mega panel */
.mega a{
  padding:0;border-radius:0;font-family:var(--font-body);font-size:inherit;
  font-weight:400;letter-spacing:normal;text-transform:none;
}
.mega .mega-item{padding:10px 12px;border-radius:11px}
.mega .mega-all{font-family:var(--font-head);font-size:13px;font-weight:600;letter-spacing:.02em}
.mega .mega-promo{border-radius:13px}

/* mobile menu geometry — re-asserted after the header v2 rules */
@media (max-width:980px){
  .nav{
    position:absolute;left:0;right:0;width:auto;top:100%;
    max-height:calc(100vh - 130px);overflow-y:auto;
    background:#fff;padding:6px 26px 18px;
    box-shadow:0 18px 34px rgba(9,40,60,.16);
  }
  .mega{width:100%;max-width:100%;box-shadow:none}
  .mega-item{align-items:flex-start}
  .mega-text strong{white-space:normal;overflow-wrap:anywhere}
  .mega-item{gap:11px}
  .mega-abbr{min-width:50px;font-size:11.5px;padding:6px 8px}
  .mega-text strong{font-size:13.5px}
  .mega-text em{font-size:12px}
}
/* keep scroll anchoring from fighting the collapsing top bar */
body{overflow-anchor:none}

/* ==========================================================================
   Hero — next conference card on the right
   ========================================================================== */
.hero-grid{
  display:grid;grid-template-columns:1.12fr .88fr;gap:52px;align-items:center;
}
.hero-grid .hero-inner{max-width:none}

.hero-card{
  position:relative;z-index:2;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.22);
  border-radius:16px;padding:20px 20px 18px;color:#fff;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 24px 50px rgba(3,20,30,.35);
  max-width:352px;justify-self:end;align-self:center;margin-bottom:26px;
}
.hero-card-eyebrow{
  display:flex;align-items:center;gap:9px;margin:0 0 13px;
  font-family:var(--font-head);font-size:11.5px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--brand-300);
}
.pulse{
  width:8px;height:8px;border-radius:50%;background:var(--brand-400);flex:none;
  box-shadow:0 0 0 0 rgba(46,184,239,.7);animation:pulse 2.2s infinite;
}
@keyframes pulse{
  70%{box-shadow:0 0 0 9px rgba(46,184,239,0)}
  100%{box-shadow:0 0 0 0 rgba(46,184,239,0)}
}
@media (prefers-reduced-motion:reduce){.pulse{animation:none}}

.hero-card-head{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.hero-card .conf-abbr{
  font-size:15px;padding:7px 12px;border-radius:9px;
  background:linear-gradient(130deg,var(--brand-600),var(--brand-400));
}
.hero-card-year{
  font-family:var(--font-head);font-size:12px;font-weight:600;letter-spacing:.08em;
  color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.25);
  padding:4px 10px;border-radius:999px;
}
.hero-card h3{
  color:#fff;font-size:16.5px;font-weight:600;line-height:1.38;margin:0 0 13px;
}
.hero-card-meta{display:grid;gap:7px;margin-bottom:15px}
.hero-card-meta li{
  display:flex;align-items:center;gap:9px;font-size:14px;color:rgba(255,255,255,.86);
}
.hero-card-meta svg{width:16px;height:16px;flex:none;color:var(--brand-300)}

.hero-card-more{
  margin-top:15px;padding-top:12px;border-top:1px solid rgba(255,255,255,.16);
  display:grid;gap:2px;
}
.hero-card-more a{
  display:block;padding:7px 10px;border-radius:9px;
  font-size:13px;color:rgba(255,255,255,.78);line-height:1.4;white-space:nowrap;
  transition:background .2s ease,padding-left .2s ease;
}
.hero-card-more a:hover{background:rgba(255,255,255,.10);padding-left:14px;color:#fff}
.hero-card-more strong{
  font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.05em;
  color:var(--brand-300);margin-right:7px;
}
.hero-card-more em{font-style:normal;font-size:12.5px;color:rgba(255,255,255,.55)}

@media (max-width:1180px){
  .hero-grid{gap:36px;grid-template-columns:1.05fr .95fr}
  .hero-card{padding:20px}
  .hero-card h3{font-size:16px}
}
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:30px}
  .hero-card{max-width:520px;justify-self:start;margin-bottom:4px}
  .hero-inner{padding-bottom:34px}
  .hero{padding-bottom:96px}
}

/* ==========================================================================
   Stats band v2 — gradient numerals, icon chips, count-up
   ========================================================================== */
.stats{
  position:relative;border-radius:18px;overflow:hidden;
  padding:30px 14px 28px;box-shadow:0 20px 44px rgba(9,40,60,.16);
  max-width:1080px;margin:0 auto;
}
.stats::before{
  content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--brand-700),var(--brand-400) 50%,var(--brand-300));
}
.stat{
  flex-direction:column;align-items:center;text-align:center;gap:12px;padding:6px 16px;
  transition:transform .25s ease;
}
.stat:hover{transform:translateY(-3px)}
.stat + .stat::before{
  top:14%;height:72%;
  background:linear-gradient(180deg,transparent,var(--line) 22%,var(--line) 78%,transparent);
}
.stat-icon{
  width:46px;height:46px;border-radius:13px;
  background:linear-gradient(135deg,var(--brand-700),var(--brand-500) 65%,var(--brand-400));
  color:#fff;box-shadow:0 8px 18px rgba(9,69,99,.28);
  transition:transform .25s ease,box-shadow .25s ease;
}
.stat:hover .stat-icon{transform:translateY(-2px) rotate(-4deg);box-shadow:0 12px 24px rgba(9,69,99,.34)}
.stat-icon svg{width:22px;height:22px}
.stat-num{
  font-size:34px;font-weight:700;letter-spacing:-.02em;line-height:1;
  background:linear-gradient(120deg,var(--brand-800),var(--brand-500) 60%,var(--brand-400));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat-label{
  font-family:var(--font-head);font-size:11.5px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:7px;
}

@media (max-width:700px){
  .stats{padding:20px 14px}
  .stat{flex-direction:row;text-align:left;gap:14px;align-items:center}
  .stat-label{margin-top:4px}
  .stat-num{font-size:28px}
}

/* ==========================================================================
   Stats v3 — four separate cards, the first one filled in brand navy
   ========================================================================== */
.stats{
  background:transparent;box-shadow:none;border-radius:0;overflow:visible;
  padding:0;max-width:none;gap:20px;
}
.stats::before{display:none}
.stat + .stat::before{display:none}

.stat{
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:24px 22px 22px;box-shadow:0 14px 34px rgba(9,40,60,.10);
  display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:15px;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.stat:hover{transform:translateY(-6px);border-color:var(--brand-300);box-shadow:0 20px 40px rgba(9,40,60,.16)}
.stat-icon{width:44px;height:44px;border-radius:12px}
.stat-icon svg{width:21px;height:21px}
.stat-num{font-size:32px}
.stat-label{margin-top:6px;font-size:11px;letter-spacing:.14em}

/* highlight card */
.stat:first-child{
  background:linear-gradient(140deg,var(--brand-900),var(--brand-700) 58%,var(--brand-600));
  border-color:transparent;box-shadow:0 18px 38px rgba(6,45,66,.34);
}
.stat:first-child:hover{border-color:transparent;box-shadow:0 24px 46px rgba(6,45,66,.42)}
.stat:first-child .stat-icon{
  background:rgba(255,255,255,.16);box-shadow:none;border:1px solid rgba(255,255,255,.22);
}
.stat:first-child .stat-num{
  background:linear-gradient(120deg,#ffffff,var(--brand-300));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat:first-child .stat-label{color:rgba(255,255,255,.72)}

@media (max-width:980px){
  .stats{grid-template-columns:repeat(2,1fr);gap:16px}
  .stat{padding:20px 18px}
}
@media (max-width:700px){
  .stats{grid-template-columns:1fr;gap:14px}
  .stat{flex-direction:row;align-items:center;gap:16px;padding:18px}
  .stat-num{font-size:28px}
  .stat-label{margin-top:3px}
}
/* stats cards — centre the content inside each card */
.stat{align-items:center;text-align:center;padding:26px 20px 24px}
.stat > span:not(.stat-icon){display:block;width:100%}
.stat-icon{flex:none;width:44px;height:44px}
@media (max-width:700px){
  .stat{flex-direction:row;align-items:center;text-align:left;gap:16px;padding:18px}
  .stat > span:not(.stat-icon){width:auto}
}

/* ==========================================================================
   Stats v4 — one slim bar, icon beside the figure (compact height)
   ========================================================================== */
.stats-wrap{margin-top:-44px}
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:0 16px 38px rgba(9,40,60,.14);
  padding:14px 8px;max-width:1120px;margin:0 auto;overflow:hidden;
}
.stats::before{
  content:"";display:block;position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--brand-700),var(--brand-400) 55%,var(--brand-300));
}
.stats{position:relative}
.stat{
  display:flex;flex-direction:row;align-items:center;gap:13px;text-align:left;
  background:transparent;border:0;box-shadow:none;border-radius:0;
  padding:8px 20px;transform:none;
}
.stat:hover{transform:none;box-shadow:none;border-color:transparent}
.stat:first-child{background:transparent;box-shadow:none}
.stat:first-child .stat-num{
  background:linear-gradient(120deg,var(--brand-800),var(--brand-500) 60%,var(--brand-400));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat:first-child .stat-label{color:var(--muted)}
.stat:first-child .stat-icon{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-500) 65%,var(--brand-400));
  border:0;box-shadow:0 8px 16px rgba(9,69,99,.26);
}
.stat + .stat::before{
  content:"";display:block;position:absolute;left:0;top:18%;height:64%;width:1px;
  background:linear-gradient(180deg,transparent,var(--line) 25%,var(--line) 75%,transparent);
}
.stat > span:not(.stat-icon){width:auto}
.stat-icon{width:40px;height:40px;border-radius:11px;transition:transform .25s ease}
.stat-icon svg{width:19px;height:19px}
.stat:hover .stat-icon{transform:translateY(-2px) rotate(-4deg)}
.stat-num{font-size:24px;line-height:1.05}
.stat-label{font-size:10.5px;letter-spacing:.12em;margin-top:3px}

@media (max-width:980px){
  .stats{grid-template-columns:repeat(2,1fr);row-gap:6px;max-width:640px}
  .stat:nth-child(3)::before{display:none}
}
@media (max-width:700px){
  .stats-wrap{margin-top:-30px}
  .stats{grid-template-columns:1fr;max-width:420px;padding:8px}
  .stat{padding:11px 14px}
  .stat + .stat::before{
    left:14px;right:14px;top:0;width:auto;height:1px;
    background:linear-gradient(90deg,transparent,var(--line) 20%,var(--line) 80%,transparent);
  }
}

/* ==========================================================================
   Hero eyebrow — letter reveal, then a slow shimmer sweep
   ========================================================================== */
.hero .eyebrow{display:block}
.hero .eyebrow .word{display:inline-block;white-space:nowrap}
.hero .eyebrow .rule-line{
  display:inline-block;width:0;height:2px;margin-right:0;border-radius:2px;vertical-align:middle;
  background:linear-gradient(90deg,var(--brand-500),var(--brand-300));
  animation:eyebrowLine .7s .15s cubic-bezier(.2,.8,.2,1) forwards;
}
@keyframes eyebrowLine{to{width:30px;margin-right:14px}}

.hero .eyebrow .ch{
  display:inline-block;opacity:0;transform:translateY(9px);
  animation:eyebrowChar .5s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:calc(var(--i) * 28ms + .25s);
}
@keyframes eyebrowChar{to{opacity:1;transform:none}}

/* shimmer: a bright wave runs through the letters (no background-clip tricks,
   which stopped painting once the letters were wrapped in word spans) */
.hero .eyebrow.is-shimmer .ch{
  opacity:1;transform:none;
  animation:eyebrowWave 3.6s ease-in-out infinite;
  animation-delay:calc(var(--i) * 55ms);
}
@keyframes eyebrowWave{
  0%,62%,100%{color:var(--brand-300);text-shadow:none}
  12%{color:#ffffff;text-shadow:0 0 16px rgba(110,211,245,.55)}
}

@media (prefers-reduced-motion:reduce){
  .hero .eyebrow .ch{opacity:1;transform:none;animation:none}
  .hero .eyebrow .rule-line{width:30px;margin-right:14px;animation:none}
  .hero .eyebrow.is-shimmer .ch{animation:none;color:var(--brand-300);opacity:1;transform:none}
}
/* about list: two columns when there are more items */
@media (min-width:981px){
  .about-content .check-list{grid-template-columns:1fr 1fr;gap:12px 26px}
}

/* ==========================================================================
   About points — chips instead of a check list
   ========================================================================== */
.point-chips{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 30px}
.point-chips li{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--brand-tint);border:1px solid var(--line);
  border-radius:999px;padding:9px 16px 9px 13px;
  font-size:14px;color:var(--ink-2);line-height:1.3;
  transition:.22s ease;
}
.point-chips li:hover{
  background:#fff;border-color:var(--brand-300);transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(9,40,60,.10);
}
.point-chips svg{
  width:16px;height:16px;flex:none;color:#fff;padding:3px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand-600),var(--brand-400));
}
@media (max-width:700px){
  .point-chips li{font-size:13.5px;padding:8px 14px 8px 11px}
}
/* keep the hero eyebrow on one line on desktop */
@media (min-width:981px){
  .hero .eyebrow{white-space:nowrap;letter-spacing:.15em;font-size:12.5px}
}
@media (max-width:600px){
  .hero .eyebrow{font-size:11.5px;letter-spacing:.12em}
}

/* ==========================================================================
   About section v2 — matches about-us-new-block.png, in SCON colours
   ========================================================================== */
.about{
  position:relative;overflow:hidden;
  padding:104px 0 100px;
  background:linear-gradient(180deg,#f7fbfe 0%,#ffffff 70%);
}
.about-blob{
  position:absolute;left:-180px;top:70px;width:620px;height:620px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(38,187,239,.14),rgba(38,187,239,.05) 60%,transparent 72%);
  pointer-events:none;
}
.about-grid{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1.02fr 1fr;gap:66px;align-items:center;
}

/* ---- media stack ---- */
.about-media{position:relative;padding:26px 0 30px 26px}
.about-media-main{
  border-radius:14px;overflow:hidden;position:relative;z-index:2;
  box-shadow:0 26px 54px rgba(9,40,60,.20);
}
.about-media-main img{width:100%;height:330px;object-fit:cover;display:block}
.about-media-row{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;
  position:relative;z-index:2;
}
.about-media-row img{
  width:100%;height:180px;object-fit:cover;border-radius:12px;
  box-shadow:0 16px 32px rgba(9,40,60,.16);
}
.about-media .dots{
  background-image:radial-gradient(var(--brand-400) 1.7px,transparent 1.7px);
  background-size:13px 13px;opacity:.5;z-index:1;
}
.about-media .dots--tl{width:118px;height:96px;left:0;top:0}
.about-media .dots--bl{width:150px;height:52px;left:22%;bottom:0}

/* ---- copy ---- */
.eyebrow--rule{display:flex;align-items:center;gap:16px}
.eyebrow--rule::after{
  content:"";flex:1;max-width:180px;height:1px;
  background:linear-gradient(90deg,var(--brand-300),rgba(110,211,245,0));
}
.about-content .section-title{margin-bottom:20px;line-height:1.16}
.about-content .section-title span{display:block;color:var(--brand-500)}
.about-content p{color:var(--muted);font-size:16px;margin:0 0 18px;max-width:620px}

/* ---- feature grid ---- */
.feature-list{
  display:grid;grid-template-columns:1fr 1fr;gap:22px 30px;
  margin:30px 0 34px;
}
.feature-list li{display:flex;align-items:center;gap:15px}
.feat-icon{
  width:52px;height:52px;flex:none;border-radius:50%;
  background:var(--brand-tint-2);color:var(--brand-600);
  display:grid;place-items:center;transition:.25s ease;
}
.feat-icon svg{width:24px;height:24px}
.feature-list li:hover .feat-icon{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-400));color:#fff;
  transform:translateY(-2px);box-shadow:0 10px 20px rgba(9,69,99,.24);
}
.feat-text{font-size:15px;line-height:1.5;color:var(--ink-2)}

/* ---- button + mini stats ---- */
.about-foot{display:flex;flex-wrap:wrap;align-items:center;gap:20px 22px}
.about-foot .btn{
  background:linear-gradient(120deg,var(--brand-700),var(--brand-500) 70%,var(--brand-400));
  text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;font-weight:600;
  padding:14px 22px;border-radius:10px;
}
.about-foot .btn:hover{filter:brightness(1.08)}
.mini-stats{display:flex;align-items:center;gap:0}
.mini-stats li{padding:0 18px;position:relative;text-align:center}
.mini-stats li + li::before{
  content:"";position:absolute;left:0;top:6%;height:88%;width:1px;background:var(--line);
}
.mini-stats strong{
  display:block;font-family:var(--font-head);font-size:25px;font-weight:700;
  color:var(--brand-500);line-height:1.1;
}
.mini-stats span{display:block;font-size:12.5px;color:var(--muted);margin-top:3px;white-space:nowrap}

@media (max-width:1180px){
  .about-grid{gap:44px}
  .feature-list{gap:18px 22px}
  .feat-text{font-size:14.3px}
}
@media (max-width:980px){
  .about{padding:78px 0 74px}
  .about-grid{grid-template-columns:1fr;gap:44px}
  .about-media{padding:22px 0 26px 22px;max-width:620px}
  .about-blob{left:-240px;top:20px}
  .about-content p{max-width:100%}
}
@media (max-width:700px){
  .feature-list{grid-template-columns:1fr;gap:16px}
  .about-media-main img{height:250px}
  .about-media-row img{height:130px}
  .about-foot{gap:20px}
  .mini-stats li{padding:0 16px}
  .mini-stats strong{font-size:23px}
}

/* ==========================================================================
   Upcoming events v2 — matches the "upcoming conference" reference, SCON colours
   ========================================================================== */
.events{
  position:relative;overflow:hidden;
  padding:96px 0 92px;
  background:linear-gradient(180deg,#f4faff 0%,#ffffff 72%);
}
.events::before{
  content:"";position:absolute;right:-120px;bottom:-170px;width:640px;height:430px;
  background:
    radial-gradient(closest-side,rgba(38,187,239,.10),transparent 72%),
    repeating-linear-gradient(115deg,rgba(38,187,239,.13) 0 1px,transparent 1px 26px);
  border-radius:50%;transform:rotate(-8deg);pointer-events:none;
}
/* dotted "world" field behind the badge */
.ev-map{
  position:absolute;right:2%;top:34px;width:660px;height:250px;pointer-events:none;
  background-image:radial-gradient(var(--brand-400) 1.5px,transparent 1.5px);
  background-size:11px 11px;
  -webkit-mask-image:radial-gradient(75% 65% at 45% 45%,#000 40%,transparent 78%);
          mask-image:radial-gradient(75% 65% at 45% 45%,#000 40%,transparent 78%);
  opacity:.32;
}

.ev-head{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1.25fr auto;gap:40px;align-items:start;
  margin-bottom:46px;
}
.ev-head-copy .section-title{margin-bottom:16px;line-height:1.14}
.ev-head-copy .section-title span{display:block;color:var(--brand-500)}
.ev-head-copy p{color:var(--muted);font-size:16px;margin:0;max-width:560px}

.ev-badge{
  display:flex;align-items:center;gap:16px;align-self:start;
  background:rgba(255,255,255,.72);border:1px solid rgba(38,187,239,.22);
  border-radius:16px;padding:18px 22px;backdrop-filter:blur(6px);
  box-shadow:0 14px 34px rgba(9,40,60,.10);max-width:366px;
}
.ev-badge .ev-badge-icon{
  position:relative;width:58px;height:58px;flex:none;border-radius:50%;
  background:var(--brand-tint-2);color:var(--brand-600);display:grid;place-items:center;
  border:1.5px solid rgba(38,187,239,.45);
}
.ev-badge-icon::before{
  content:"";position:absolute;inset:-7px;border-radius:50%;
  border:1.5px dashed var(--brand-300);
  animation:badgeRing 14s linear infinite;
}
.ev-badge-icon::after{
  content:"";position:absolute;inset:-7px;border-radius:50%;
  box-shadow:0 0 0 0 rgba(38,187,239,.45);
  animation:badgePulse 3.2s ease-out infinite;
}
@keyframes badgeRing{to{transform:rotate(360deg)}}
@keyframes badgePulse{
  0%{box-shadow:0 0 0 0 rgba(38,187,239,.40)}
  70%,100%{box-shadow:0 0 0 14px rgba(38,187,239,0)}
}
.ev-badge-icon svg{animation:badgeTick 3.2s ease-in-out infinite}
@keyframes badgeTick{
  0%,88%,100%{transform:translateY(0)}
  92%{transform:translateY(-2px)}
}
@media (prefers-reduced-motion:reduce){
  .ev-badge-icon::before,.ev-badge-icon::after,.ev-badge-icon svg{animation:none}
}
.ev-badge-icon svg{width:26px;height:26px}
.ev-badge strong{
  display:block;font-family:var(--font-head);font-size:15.5px;font-weight:600;
  color:var(--ink);line-height:1.35;
}
.ev-badge div span{
  display:block;font-size:13px;color:var(--muted);line-height:1.45;
  margin-top:9px;padding-top:9px;border-top:1px solid var(--line);
}

/* ---- slider ---- */
.ev-slider{position:relative;z-index:2}
.ev-viewport{overflow:hidden;padding:12px 0 18px}
.ev-track{display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.ev-slide{flex:0 0 100%;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}

.ev-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:4;
  width:46px;height:46px;border-radius:50%;border:1px solid var(--line);
  background:#fff;color:var(--ink-2);display:grid;place-items:center;cursor:pointer;
  box-shadow:0 10px 24px rgba(9,40,60,.12);transition:.22s ease;
}
.ev-arrow svg{width:17px;height:17px}
.ev-arrow:hover{background:var(--brand-600);border-color:var(--brand-600);color:#fff}
.ev-arrow--prev{left:-62px}
.ev-arrow--next{right:-62px}

/* ---- card ---- */
.ev-card{
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(38,187,239,.22);
  border-bottom:3px solid var(--brand-400);
  box-shadow:0 19px 12px -20px rgb(9 69 99), 0 3px 10px -6px rgb(20 144 200);
  display:flex;
  flex-direction:column;
  transition:.28s ease;
}
.ev-card:hover{
  transform:translateY(-6px);border-color:var(--brand-300);
  box-shadow:0 22px 34px -16px rgba(9,69,99,.55), 0 6px 16px -8px rgba(38,187,239,.45);
}
.ev-media{position:relative}
.ev-media img{width:100%;height:238px;object-fit:cover;display:block}
.ev-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,46,66,0) 45%,rgba(5,46,66,.72) 100%);
}
.ev-date{
  position:absolute;left:18px;top:18px;z-index:2;text-align:center;
  background:linear-gradient(140deg,var(--brand-500),var(--brand-400));
  color:#fff;border-radius:12px;padding:11px 15px;
  box-shadow:0 10px 22px rgba(6,45,66,.34);
}
.ev-card:nth-child(2) .ev-date{background:linear-gradient(140deg,var(--brand-900),var(--brand-700))}
.ev-date strong{display:block;font-family:var(--font-head);font-size:19px;font-weight:700;line-height:1.1}
.ev-date em{
  display:block;font-style:normal;font-size:10.5px;letter-spacing:.12em;
  margin-top:3px;opacity:.92;
}
.ev-place{
  position:absolute;left:18px;bottom:15px;z-index:2;
  display:flex;align-items:center;gap:8px;color:#fff;font-size:14px;font-weight:500;
  text-shadow:0 1px 6px rgba(0,0,0,.4);
}
.ev-place svg{width:16px;height:16px;flex:none}

.ev-body{padding:20px 22px;display:flex;flex-direction:column;flex:1}
.ev-body h3{
  position:relative;padding-left:14px;margin-bottom:10px;
  font-size:20px;font-weight:700;letter-spacing:-.01em;
}
.ev-body h3::before{
  content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:3px;
  background:linear-gradient(180deg,var(--brand-500),var(--brand-400));
}
.ev-body p{font-size:14px;color:var(--muted);margin:0 0 16px;line-height:1.6}
.ev-foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.ev-topic{
  width:46px;height:46px;flex:none;border-radius:12px;
  background:var(--brand-tint-2);color:var(--brand-600);display:grid;place-items:center;
  transition:.25s ease;
}
.ev-topic svg{width:24px;height:24px}
.ev-card:hover .ev-topic{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-400));color:#fff;
}

/* ---- dots + bottom row ---- */
.ev-dots{display:flex;justify-content:center;gap:9px;margin:28px 0 26px;position:relative;z-index:2}
.ev-dot{
  width:9px;height:9px;border-radius:50%;border:0;cursor:pointer;padding:0;
  background:var(--line);transition:.22s ease;
}
.ev-dot.is-active{background:var(--brand-500);width:26px;border-radius:999px}

.ev-bottom{
  position:relative;z-index:3;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;
}
.ev-tagline{
  display:flex;align-items:center;gap:14px;margin:0;
  font-family:var(--font-head);font-size:12px;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted);line-height:1.7;
}
.ev-tagline span{
  width:44px;height:1px;flex:none;
  background:linear-gradient(90deg,rgba(20,144,200,0),var(--brand-500));
}
.ev-cta{
  justify-self:center;
  background:linear-gradient(120deg,var(--brand-600),var(--brand-400));
  padding:15px 30px;border-radius:11px;font-size:14.5px;font-weight:600;
  box-shadow:0 12px 28px rgba(20,144,200,.32);
}
.ev-cta:hover{filter:brightness(1.06)}

@media (max-width:1180px){
  .ev-arrow--prev{left:-16px}
  .ev-arrow--next{right:-16px}
  .ev-slide{gap:20px}
  .ev-media img{height:210px}
}
@media (max-width:980px){
  .events{padding:76px 0 72px}
  .ev-head{grid-template-columns:1fr;gap:26px}
  .ev-badge{max-width:100%}
  .ev-map{width:420px;opacity:.22}
  .ev-slide{grid-template-columns:repeat(2,1fr)}
  .ev-slide .ev-card:nth-child(3){display:none}
  .ev-bottom{grid-template-columns:1fr;justify-items:center;text-align:center;gap:18px}
  .ev-tagline{justify-content:center}
  .ev-bottom-spacer{display:none}
}
@media (max-width:700px){
  .ev-slide{grid-template-columns:1fr}
  .ev-slide .ev-card:nth-child(2),.ev-slide .ev-card:nth-child(3){display:none}
  .ev-arrow{width:40px;height:40px}
  .ev-arrow--prev{left:-8px}
  .ev-arrow--next{right:-8px}
  .ev-map{display:none}
}

/* ---- events: dotted world map, pin, arc and bottom waves ---- */
.ev-map{display:none}                       /* replaced by the real dotted map */
.events{padding-bottom:112px}
.ev-globe{
  position:absolute;right:25%;top:26px;width:560px;max-width:42vw;pointer-events:none;z-index:1;
}
.ev-map-img{
  width:100%;display:block;opacity:.45;
  -webkit-mask-image:linear-gradient(100deg,transparent 0%,#000 22%,#000 78%,transparent 100%);
          mask-image:linear-gradient(100deg,transparent 0%,#000 22%,#000 78%,transparent 100%);
}
.ev-arc{position:absolute;left:0;top:0;width:100%;height:100%}
.ev-arc path{stroke-dashoffset:0;animation:arcDash 3.4s linear infinite}
.ev-arc #evF2{animation-duration:2.6s}
.ev-arc #evF3{animation-duration:4s}
@keyframes arcDash{to{stroke-dashoffset:-56}}

.ev-pin{
  position:absolute;width:26px;height:26px;margin-left:-13px;color:var(--brand-600);
  filter:drop-shadow(0 5px 9px rgba(9,69,99,.32));
  animation:pinDrop 3.4s cubic-bezier(.3,1.4,.5,1) infinite;
}
.ev-pin--us{left:27%;top:calc(47% - 26px);animation-delay:.2s}
.ev-pin--es{left:47.5%;top:calc(45% - 26px);animation-delay:1.1s}
.ev-pin--cz{left:50.5%;top:calc(41% - 26px);animation-delay:1.9s}
.ev-pin--sg{left:78.5%;top:calc(65% - 30px)}
.ev-pin--next{width:30px;height:30px;margin-left:-15px;color:var(--brand-700)}
@keyframes pinDrop{
  0%,60%,100%{transform:translateY(0)}
  70%{transform:translateY(-8px)}
  80%{transform:translateY(0)}
  86%{transform:translateY(-3px)}
  92%{transform:translateY(0)}
}
.ev-pin::after{
  content:"";position:absolute;left:50%;top:88%;width:52px;height:18px;
  transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(closest-side,rgba(38,187,239,.35),transparent 70%);
  animation:pinPulse 2.6s ease-out infinite;
}
@keyframes pinPulse{
  0%{transform:translateX(-50%) scale(.6);opacity:.9}
  70%,100%{transform:translateX(-50%) scale(1.6);opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .ev-pin,.ev-pin::after,.ev-arc path{animation:none}
}

.events::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:118px;z-index:0;pointer-events:none;
  background:url("../img/dots-band.svg") repeat-x left bottom;
  background-size:auto 118px;opacity:.85;
}
.events::before{display:none}               /* the waves replace the old blur */

@media (max-width:1180px){
  .ev-globe{width:520px;top:10px;opacity:.9}
}
@media (max-width:980px){
  .ev-globe{width:60vw;right:-6%;top:0;opacity:.7}
  .events{padding-bottom:96px}
}
@media (max-width:700px){
  .ev-globe{display:none}
}
.ev-pin svg{width:100%;height:100%;display:block}

/* ==========================================================================
   Past conferences block — matches the user's reference, SCON colours
   ========================================================================== */
.past{
  position:relative;overflow:hidden;
  padding:92px 0 88px;
  background:linear-gradient(180deg,#f3faff 0%,#f7fcff 60%,#ffffff 100%);
}
.pc-blob{
  position:absolute;left:-160px;top:60px;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle at 40% 40%,rgba(38,187,239,.13),rgba(38,187,239,.05) 58%,transparent 72%);
  pointer-events:none;
}
.pc-dots{
  position:absolute;left:60px;top:104px;width:130px;height:96px;pointer-events:none;
  background-image:radial-gradient(var(--brand-400) 1.7px,transparent 1.7px);
  background-size:14px 14px;opacity:.45;
}
.past .container{position:relative;z-index:2}

.eyebrow--center{
  display:flex;align-items:center;justify-content:center;gap:16px;
}
.eyebrow--center::before,.eyebrow--center::after{
  content:"";width:70px;height:1px;background:linear-gradient(90deg,rgba(110,211,245,0),var(--brand-300));
}
.eyebrow--center::after{background:linear-gradient(90deg,var(--brand-300),rgba(110,211,245,0))}
.past .section-title{line-height:1.18}
.past .section-title span{color:var(--brand-500)}
.pc-sub{color:var(--muted);font-size:16px;margin:16px auto 0;max-width:640px}

/* ---- stage ---- */
.pc-stage{position:relative;margin-top:44px}
.pc-slide{display:none}
.pc-slide.is-active{display:block}
.pc-media{max-width:1080px;margin:0 auto}


/* featured photo */
.pc-main{position:relative;margin:0;border-radius:18px;overflow:hidden;box-shadow:0 26px 50px -26px rgb(9 69 99)}
.pc-main img{
  width:100%;display:block;
  height:clamp(340px,40vw,560px);
  object-fit:cover;object-position:center 74%;   /* trims the empty ceiling, keeps everyone in frame */
}
.pc-main::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,46,66,0) 52%,rgba(5,46,66,.78) 100%);
}
.pc-main figcaption{
  position:absolute;left:22px;bottom:20px;z-index:2;
  display:flex;align-items:center;gap:14px;color:#fff;
}
.pc-main-icon{
  width:46px;height:46px;flex:none;border-radius:13px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);
  display:grid;place-items:center;backdrop-filter:blur(4px);
}
.pc-main-icon svg{width:22px;height:22px}
.pc-main figcaption strong{
  display:block;font-family:var(--font-head);font-size:22px;font-weight:700;line-height:1.25;
  max-width:640px;
}
.pc-main figcaption em{
  display:flex;align-items:center;gap:7px;font-style:normal;font-size:14px;
  color:rgba(255,255,255,.88);margin-top:4px;
}
.pc-main figcaption em svg{width:15px;height:15px;flex:none}

/* thumbnails */
.pc-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:18px}
.pc-thumb{
  padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;cursor:pointer;
  background:none;line-height:0;transition:.22s ease;box-shadow:0 10px 20px -14px rgb(9 69 99);
}
.pc-thumb img{width:100%;height:112px;object-fit:cover;transition:transform .35s ease}
.pc-thumb:hover img{transform:scale(1.07)}
.pc-thumb.is-active{border-color:var(--brand-400);box-shadow:0 10px 22px -12px rgb(20 144 200)}
.pc-more{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border-radius:12px;background:var(--brand-tint-2);color:var(--brand-700);
  font-family:var(--font-head);font-size:12.5px;font-weight:600;text-align:center;line-height:1.35;
  transition:.22s ease;
}
.pc-more svg{width:22px;height:22px}
.pc-more:hover{background:var(--brand-300);color:#fff}

/* info column */
.eyebrow--lead{display:flex;align-items:center;gap:14px}
.eyebrow--lead::before{
  content:"";width:56px;height:1px;background:linear-gradient(90deg,rgba(110,211,245,0),var(--brand-400));
}
.pc-info h3{font-size:clamp(28px,2.7vw,36px);font-weight:700;letter-spacing:-.01em;margin-bottom:12px}
.pc-place{
  display:flex;align-items:center;gap:9px;color:var(--ink-2);font-size:15.5px;margin:0 0 18px;
}
.pc-place svg{width:17px;height:17px;flex:none;color:var(--brand-500)}
.pc-blurb{color:var(--muted);font-size:15.5px;line-height:1.75;margin:0 0 28px;max-width:560px}

.pc-stats{display:flex;align-items:flex-start;gap:0}
.pc-stats li{flex:1;text-align:center;padding:0 14px;position:relative}
.pc-stats li + li::before{
  content:"";position:absolute;left:0;top:6%;height:88%;width:1px;background:var(--line);
}
.pc-stat-icon{
  width:52px;height:52px;margin:0 auto 12px;border-radius:50%;
  background:var(--brand-tint-2);color:var(--brand-600);display:grid;place-items:center;
  transition:.25s ease;
}
.pc-stat-icon svg{width:24px;height:24px}
.pc-stats li:hover .pc-stat-icon{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-400));color:#fff;transform:translateY(-2px);
}
.pc-stats strong{
  display:block;font-family:var(--font-head);font-size:26px;font-weight:700;color:var(--brand-500);
  line-height:1.1;
}
.pc-stat-label{display:block;font-size:13px;color:var(--muted);margin-top:4px}

/* arrows sit inside the featured photo */
.pc-nav{position:absolute;right:20px;bottom:20px;z-index:3;display:flex;gap:12px}
.pc-arrow{
  width:46px;height:46px;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;transition:.22s ease;
}
.pc-arrow svg{width:17px;height:17px}
.pc-arrow--prev{background:#fff;color:var(--ink-2);box-shadow:0 10px 22px -10px rgb(9 69 99)}
.pc-arrow--next{
  background:linear-gradient(135deg,var(--brand-500),var(--brand-400));color:#fff;
  box-shadow:0 10px 22px -8px rgb(20 144 200);
}
.pc-arrow--prev:hover{background:var(--brand-tint-2);color:var(--brand-700)}
.pc-arrow--next:hover{filter:brightness(1.08)}

/* bottom row */
.pc-bottom{
  position:relative;z-index:2;margin-top:52px;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;
}
.pc-cta{
  justify-self:center;background:linear-gradient(120deg,var(--brand-900),var(--brand-700));
  padding:15px 32px;border-radius:11px;font-size:14.5px;font-weight:600;
  box-shadow:0 14px 26px -14px rgb(9 69 99);
}
.pc-cta:hover{background:linear-gradient(120deg,var(--brand-800),var(--brand-600))}

@media (max-width:1180px){


  .pc-blurb{font-size:15px}
}
@media (max-width:980px){
  .past{padding:74px 0 70px}
  .pc-slide.is-active{grid-template-columns:1fr;gap:34px}
  .pc-nav{right:14px;bottom:14px}
  .pc-main img{height:300px}
  .pc-bottom{grid-template-columns:1fr;justify-items:center;text-align:center;gap:18px}
  .pc-dots{left:20px;top:80px;width:90px;height:70px}
}
@media (max-width:700px){
  .pc-thumbs{grid-template-columns:repeat(3,1fr)}
  .pc-thumb:nth-child(4){display:none}
  .pc-thumb img{height:80px}
  .pc-main figcaption strong{font-size:17px;max-width:78vw}
  .pc-stats{flex-wrap:wrap;gap:18px 0}
  .pc-stats li{flex:0 0 50%}
  .pc-stats li:nth-child(3)::before{display:none}
}
/* per-conference framing for the featured photo */
.pc-slide[data-conf="ncc"] .pc-main img{object-position:center 86%}
.pc-slide[data-conf="crvs"] .pc-main img{object-position:center 82%}

/* ---- past conferences: delegate avatars beside the button ---- */
.pc-members{display:flex;align-items:center;gap:14px;justify-self:end}
.pc-avatars{display:flex;align-items:center}
.pc-avatars img,.pc-avatar-more{
  width:44px;height:44px;border-radius:50%;border:2.5px solid #fff;
  box-shadow:0 6px 14px -6px rgb(9 69 99);margin-left:-14px;transition:transform .22s ease;
}
.pc-avatars img{object-fit:cover}
.pc-avatars img:first-child{margin-left:0}
.pc-avatar-more{
  display:grid;place-items:center;font-family:var(--font-head);font-size:15px;font-weight:700;
  color:#fff;background:linear-gradient(135deg,var(--brand-600),var(--brand-400));
}
.pc-members:hover .pc-avatars img,.pc-members:hover .pc-avatar-more{transform:translateY(-3px)}
.pc-members-text{font-size:13.5px;color:var(--muted);line-height:1.45;max-width:190px}
.pc-members-text strong{display:block;font-family:var(--font-head);font-size:15px;font-weight:600;color:var(--ink)}

@media (max-width:980px){
  .pc-members{justify-self:center}
  .pc-members-text{max-width:none}
}

/* ---- audience watermark on the right of the past block (user-supplied art) ---- */
.pc-watermark{
  position:absolute;right:0;bottom:0;z-index:0;pointer-events:none;
  width:min(940px,58%);height:auto;
}
@media (max-width:980px){.pc-watermark{width:78%;opacity:.75}}
@media (max-width:700px){.pc-watermark{width:100%;opacity:.5}}

/* ==========================================================================
   Why choose us v2 — copy on the left, numbered cards on the right
   ========================================================================== */
.why{
  position:relative;overflow:hidden;
  padding:96px 0 100px;
  background:linear-gradient(180deg,#ffffff 0%,#f5fbff 100%);
}
.why-blob{
  position:absolute;right:-180px;top:-120px;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle at 45% 45%,rgba(38,187,239,.14),rgba(38,187,239,.05) 58%,transparent 72%);
  pointer-events:none;
}
.why-dots{
  position:absolute;left:52px;bottom:66px;width:120px;height:88px;pointer-events:none;
  background-image:radial-gradient(var(--brand-400) 1.7px,transparent 1.7px);
  background-size:14px 14px;opacity:.42;
}
.why .container{position:relative;z-index:2}

.why-wrap{display:grid;grid-template-columns:.86fr 1.14fr;gap:64px;align-items:center}

.why-copy .section-title{margin-bottom:20px;line-height:1.18}
.why-copy .section-title span{display:block;color:var(--brand-500)}
.why-copy > p{color:var(--muted);font-size:16px;margin:0 0 26px;max-width:460px}

.why-facts{display:flex;gap:34px;margin:0 0 30px}
.why-facts li{position:relative;padding-right:34px}
.why-facts li + li::before{
  content:"";position:absolute;left:-17px;top:8%;height:84%;width:1px;background:var(--line);
}
.why-facts strong{
  display:block;font-family:var(--font-head);font-size:30px;font-weight:700;line-height:1.05;
  background:linear-gradient(120deg,var(--brand-700),var(--brand-400));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.why-facts span{display:block;font-size:13px;color:var(--muted);margin-top:5px}

/* cards */
.why-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.why-card{
  position:relative;overflow:hidden;
  background:#fff;border:1px solid rgba(38,187,239,.20);border-radius:16px;
  padding:26px 24px 24px;
  box-shadow:0 18px 12px -20px rgb(9 69 99), 0 3px 10px -6px rgb(20 144 200);
  transition:.28s ease;
}
.why-card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--brand-600),var(--brand-400));
  transform:scaleX(0);transform-origin:left;transition:transform .32s ease;
}
.why-card:hover{transform:translateY(-6px);border-color:var(--brand-300)}
.why-card:hover::before{transform:scaleX(1)}
.why-num{
  position:absolute;right:18px;top:14px;
  font-family:var(--font-head);font-size:34px;font-weight:700;line-height:1;
  color:var(--brand-500);opacity:.12;
}
.why-ico{
  width:54px;height:54px;border-radius:15px;display:grid;place-items:center;margin-bottom:18px;
  background:var(--brand-tint-2);color:var(--brand-600);transition:.28s ease;
}
.why-ico svg{width:26px;height:26px}
.why-card:hover .why-ico{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-400));color:#fff;
  box-shadow:0 10px 20px -10px rgb(9 69 99);
}
.why-card h3{font-size:17px;font-weight:600;margin-bottom:9px;line-height:1.35}
.why-card p{font-size:14px;color:var(--muted);margin:0;line-height:1.7}

@media (max-width:1180px){
  .why-wrap{gap:44px;grid-template-columns:1fr 1.2fr}
  .why-cards{gap:18px}
  .why-card{padding:22px 20px}
}
@media (max-width:980px){
  .why{padding:76px 0 78px}
  .why-wrap{grid-template-columns:1fr;gap:40px}
  .why-copy > p{max-width:100%}
  .why-blob{right:-240px;top:-160px}
  .why-dots{display:none}
}
@media (max-width:700px){
  .why-cards{grid-template-columns:1fr}
  .why-facts{gap:26px}
  .why-facts strong{font-size:26px}
}
/* the About page stats bar carries five items — the v4 grid above assumes four */
.stats.stats--five{grid-template-columns:repeat(5,1fr)}
@media (max-width:1180px){.stats.stats--five{grid-template-columns:repeat(3,1fr);row-gap:4px}}
@media (max-width:980px){.stats.stats--five{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.stats.stats--five{grid-template-columns:1fr}}

/* ==========================================================================
   Contact page
   ========================================================================== */
.ct-cards-wrap{position:relative;z-index:3;margin-top:-58px}
.ct-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ct-card{
  background:#fff;border:1px solid rgba(38,187,239,.20);border-radius:16px;
  padding:26px 24px 24px;text-align:center;
  box-shadow:0 18px 12px -20px rgb(9 69 99), 0 3px 10px -6px rgb(20 144 200);
  transition:.28s ease;
}
.ct-card:hover{transform:translateY(-6px);border-color:var(--brand-300)}
.ct-card-icon{
  width:56px;height:56px;margin:0 auto 16px;border-radius:16px;display:grid;place-items:center;
  background:var(--brand-tint-2);color:var(--brand-600);transition:.28s ease;
}
.ct-card-icon svg{width:26px;height:26px}
.ct-card:hover .ct-card-icon{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-400));color:#fff;
  box-shadow:0 10px 20px -10px rgb(9 69 99);
}
.ct-card-label{
  font-family:var(--font-head);font-size:11.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brand-500);margin:0 0 8px;
}
.ct-card-value{
  display:block;font-family:var(--font-head);font-size:16.5px;font-weight:600;color:var(--ink);
  line-height:1.45;
}
.ct-card-value:hover{color:var(--brand-600)}
.ct-card-note{font-size:13px;color:var(--muted);margin:8px 0 0}

/* ---- form + side ---- */
.ct-main{position:relative;overflow:hidden;padding:84px 0 92px;background:linear-gradient(180deg,#ffffff 0%,#f5fbff 100%)}
.ct-blob{
  position:absolute;left:-200px;bottom:-160px;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle at 45% 45%,rgba(38,187,239,.13),rgba(38,187,239,.04) 58%,transparent 72%);
  pointer-events:none;
}
.ct-dots{
  position:absolute;right:56px;top:70px;width:120px;height:88px;pointer-events:none;
  background-image:radial-gradient(var(--brand-400) 1.7px,transparent 1.7px);
  background-size:14px 14px;opacity:.4;
}
.ct-main .container{position:relative;z-index:2}
.ct-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:start}

.ct-form-wrap .section-title{margin-bottom:26px;line-height:1.2}
.ct-form-wrap .section-title span{color:var(--brand-500)}
.ct-form{
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;
  box-shadow:0 22px 16px -24px rgb(9 69 99), 0 4px 12px -8px rgb(20 144 200);
}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ct-field{display:block;margin-bottom:18px}
.ct-field > span{
  display:block;font-family:var(--font-head);font-size:13px;font-weight:600;
  color:var(--ink-2);margin-bottom:8px;
}
.ct-field i{color:var(--brand-500);font-style:normal}
.ct-field input,.ct-field select,.ct-field textarea{
  width:100%;font-family:var(--font-body);font-size:15px;color:var(--ink);
  background:#f8fbfe;border:1px solid var(--line);border-radius:10px;
  padding:13px 15px;transition:.2s ease;
}
.ct-field textarea{resize:vertical;min-height:120px}
.ct-field input::placeholder,.ct-field textarea::placeholder{color:#9fb0bd}
.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus{
  outline:none;background:#fff;border-color:var(--brand-300);
  box-shadow:0 0 0 4px rgba(38,187,239,.14);
}
.ct-field.is-error input,.ct-field.is-error textarea{border-color:#e05b6a;background:#fff6f7}
.ct-send{width:100%;justify-content:center;padding:15px 24px;font-size:15px}
.ct-note{margin:14px 0 0;font-size:14px;color:var(--muted);text-align:center;min-height:20px}
.ct-note.is-ok{color:var(--brand-600);font-weight:500}
.ct-note.is-bad{color:#d1495b}

/* side panel */
.ct-side{display:grid;gap:22px;position:sticky;top:110px}
.ct-side-card{
  background:linear-gradient(150deg,var(--brand-900),var(--brand-700) 62%,var(--brand-600));
  color:#fff;border-radius:18px;padding:30px 28px;
  box-shadow:0 24px 20px -24px rgb(9 69 99);
}
.ct-side-card h3{color:#fff;font-size:20px;font-weight:600;margin-bottom:22px}
.ct-side-list{display:grid;gap:18px}
.ct-side-list li{display:flex;align-items:flex-start;gap:14px}
.ct-side-icon{
  width:40px;height:40px;flex:none;border-radius:11px;display:grid;place-items:center;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);color:#fff;
}
.ct-side-icon svg{width:18px;height:18px}
.ct-side-list strong{
  display:block;font-family:var(--font-head);font-size:12px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--brand-300);margin-bottom:4px;
}
.ct-side-list span{font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.9)}
.ct-side-list a{color:rgba(255,255,255,.9)}
.ct-side-list a:hover{color:#fff;text-decoration:underline}
.ct-socials{display:flex;gap:10px;margin-top:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16)}
.ct-socials a{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:rgba(255,255,255,.12);color:#fff;transition:.2s;
}
.ct-socials a:hover{background:rgba(255,255,255,.26);transform:translateY(-2px)}
.ct-socials svg{width:16px;height:16px}

.ct-map{border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 18px 14px -20px rgb(9 69 99)}
.ct-map iframe{width:100%;height:260px;border:0;display:block;background:#eef6fb}

@media (max-width:1180px){
  .ct-grid{gap:36px}
  .ct-side{position:static}
}
@media (max-width:980px){
  .ct-cards{grid-template-columns:1fr;gap:16px;max-width:560px;margin:0 auto}
  .ct-cards-wrap{margin-top:-40px}
  .ct-main{padding:66px 0 74px}
  .ct-grid{grid-template-columns:1fr;gap:34px}
  .ct-dots{display:none}
}
@media (max-width:700px){
  .ct-row{grid-template-columns:1fr;gap:0}
  .ct-form{padding:20px}
  .ct-side-card{padding:24px 20px}
}

/* ---- gallery page: photos without the caption overlay ---- */
.conf-block .gallery-cap{display:none}
.conf-block .gallery-item::after{opacity:0;transition:opacity .25s ease}
.conf-block .gallery-item:hover::after{opacity:.35}
.conf-block .group-grid .gallery-item::after{opacity:0}
.conf-block .group-grid .gallery-item:hover::after{opacity:.35}

/* gallery photos: bias the crop upwards so faces are not cut off */
.conf-block .gallery-item img{object-position:center 26%}
.conf-block .group-grid .gallery-item img{object-position:center 38%}
.conf-block .masonry .tile--tall img{object-position:center 22%}

/* ================================================================
   TESTIMONIALS — "In Their Own Words" wall (home page, above footer)
   Three columns of quote cards drifting slowly in alternating
   directions; hover / keyboard focus pauses them. Reduced-motion and
   narrow screens fall back to a plain scrollable rail.
   ================================================================ */
.voices{position:relative;overflow:hidden;padding:96px 0 104px;
  background:linear-gradient(180deg,#fff 0%,var(--brand-tint) 42%,var(--brand-tint) 100%)}
.voices-orb{position:absolute;left:-260px;top:-180px;width:640px;height:640px;border-radius:50%;
  background:radial-gradient(circle,rgba(38,187,239,.20),rgba(38,187,239,0) 68%);pointer-events:none}
.voices-dots{position:absolute;left:38px;bottom:56px;width:190px;height:140px;opacity:.5;pointer-events:none;
  background-image:radial-gradient(var(--brand-300) 1.7px,transparent 1.7px);background-size:18px 18px}

.voices-grid{position:relative;display:grid;grid-template-columns:minmax(300px,366px) 1fr;
  gap:52px;align-items:center}

.voices-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 14px;
  font-family:var(--font-head);font-weight:600;font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brand-500)}
.voices-eyebrow span{width:42px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--brand-400),var(--brand-300))}
.voices-intro h2{font-family:var(--font-head);font-weight:700;font-size:42px;line-height:1.14;
  letter-spacing:-.4px;color:var(--ink);margin:0 0 18px}
.voices-lead{font-size:16.5px;line-height:1.72;color:var(--muted);margin:0 0 30px;max-width:38ch}

.voices-facts{list-style:none;display:flex;gap:38px;margin:0 0 32px;padding:0}
.voices-facts li{display:flex;flex-direction:column;gap:3px}
.voices-facts strong{font-family:var(--font-head);font-weight:700;font-size:34px;line-height:1;
  background:linear-gradient(120deg,var(--brand-700),var(--brand-400));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.voices-facts span{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* --- the wall --- */
.voices-wall{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  height:660px;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 11%,#000 89%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0,#000 11%,#000 89%,transparent 100%)}
.voices-col{display:flex;flex-direction:column;will-change:transform}
.voices-col--up{animation:voices-up var(--dur,90s) linear infinite}
.voices-col--down{animation:voices-down var(--dur,90s) linear infinite}
.voices-wall:hover .voices-col,
.voices-wall:focus-within .voices-col{animation-play-state:paused}
@keyframes voices-up{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@keyframes voices-down{from{transform:translateY(-50%)}to{transform:translateY(0)}}

/* --- a single quote --- */
.voice-card{position:relative;margin:0 0 20px;padding:26px 22px 22px;background:#fff;
  border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm);
  transition:box-shadow .25s ease,border-color .25s ease,transform .25s ease}
.voice-card:hover{border-color:var(--brand-300);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.voice-mark{width:26px;height:26px;color:var(--brand-300);margin-bottom:10px;display:block}
.voice-card blockquote{margin:0 0 18px;font-size:14.8px;line-height:1.68;color:var(--ink-2)}
.voice-by{display:flex;align-items:center;gap:12px;padding-top:15px;border-top:1px solid var(--line)}
.voice-by img{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;
  border:2px solid #fff;box-shadow:0 0 0 1.6px var(--brand-300)}
.voice-who{display:flex;flex-direction:column;gap:2px;min-width:0}
.voice-who strong{font-family:var(--font-head);font-weight:600;font-size:14.5px;color:var(--ink)}
.voice-who em{font-style:normal;font-size:12.6px;line-height:1.45;color:var(--muted)}

/* --- responsive --- */
@media (max-width:1180px){
  .voices-grid{grid-template-columns:1fr;gap:44px}
  .voices-intro h2{font-size:38px}
  .voices-lead{max-width:60ch}
  .voices-wall{height:560px}
}
@media (max-width:900px){
  .voices{padding:74px 0 80px}
  .voices-wall{display:flex;grid-template-columns:none;height:auto;gap:16px;
    overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;
    -webkit-mask-image:none;mask-image:none;
    scrollbar-width:thin}
  .voices-col{flex-direction:row;gap:16px;animation:none}
  .voice-card{margin:0;width:min(78vw,340px);flex:none;scroll-snap-align:start}
  .voice-card[aria-hidden="true"]{display:none}
}
@media (max-width:640px){
  .voices-intro h2{font-size:31px}
  .voices-facts{gap:26px}
  .voices-facts strong{font-size:29px}
}
@media (prefers-reduced-motion:reduce){
  .voices-col{animation:none}
  .voices-wall{height:600px;overflow-y:auto;
    -webkit-mask-image:none;mask-image:none}
  .voice-card[aria-hidden="true"]{display:none}
  .voice-card:hover{transform:none}
}

/* ================================================================
   CONTACT FORM — server-backed state (alerts + honeypot)
   ================================================================ */

/* the honeypot must be invisible to people but present for bots:
   no display:none / hidden, those are what bots look for */
.ct-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;
  overflow:hidden;opacity:0;pointer-events:none}

.ct-alert{display:flex;gap:12px;align-items:flex-start;margin:0 0 22px;padding:15px 18px;
  border-radius:12px;border:1px solid;font-size:14.5px;line-height:1.6}
.ct-alert svg{width:20px;height:20px;flex:none;margin-top:1px}
.ct-alert strong{display:block;font-family:var(--font-head);font-weight:600;margin-bottom:2px}
.ct-alert a{color:inherit;text-decoration:underline}
.ct-alert--ok{background:#eaf8f0;border-color:#b5e3c9;color:#1c6b40}
.ct-alert--warn{background:#fff6e6;border-color:#f2d8a4;color:#7a5510}
.ct-alert--bad{background:#fdeced;border-color:#f4c2c6;color:#9b2530}

.ct-send[disabled]{cursor:progress}

/* success alert — unmistakably green, one line */
.ct-alert--ok{background:#e7f7ee;border-color:#8fd4ae;color:#14663c;
  border-left:5px solid #1c9b57;align-items:center;font-size:15.5px;font-weight:500;
  padding:17px 20px}
.ct-alert-tick{display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:28px;height:28px;border-radius:50%;background:#1c9b57;color:#fff}
.ct-alert-tick svg{width:16px;height:16px;margin:0}

/* ================================================================
   LEGAL PAGES — Terms & Conditions, Privacy Policy
   Two columns: a sticky section index on the left, the document in a
   card on the right, so the page fills its width instead of leaving
   empty gutters. Styles bare h2/h3/p/ul/ol/table, so the generated
   copy carries no classes of its own (see build-legal.py).
   ================================================================ */
/* NOTE: .legal must NOT have overflow:hidden - an ancestor with it disables
   position:sticky on .legal-toc and the index stops following the page. The
   decorations are clipped by their own .legal-bg layer instead. */
.legal{position:relative;padding:70px 0 90px;
  background:linear-gradient(180deg,#fff 0,var(--brand-tint) 190px,var(--brand-tint) 100%)}
.legal-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.legal-orb{position:absolute;right:-240px;top:-200px;width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(38,187,239,.16),rgba(38,187,239,0) 68%)}
.legal-dots{position:absolute;left:26px;bottom:70px;width:170px;height:130px;opacity:.45;
  background-image:radial-gradient(var(--brand-300) 1.7px,transparent 1.7px);
  background-size:18px 18px}

.legal-grid{position:relative;display:grid;grid-template-columns:288px minmax(0,1fr);
  gap:52px;align-items:start;max-width:1460px}

/* ---- sticky section index ---- */
.legal-toc{position:sticky;top:104px}
/* The index panel is the site's deep navy with sky as the accent - the same
   pairing as the header and footer. Flat #26bbef was tried first and read as a
   heavy slab, and white text on it is only ~2.2:1 contrast. */
.legal-toc-nav{position:relative;overflow:hidden;border-radius:16px;
  background:linear-gradient(163deg,#0a5478 0%,#073c57 52%,#052e42 100%);
  box-shadow:0 16px 38px rgba(5,46,66,.22);padding:22px 10px 18px 22px}
.legal-toc-nav::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--brand-400),var(--brand-300),transparent)}
.legal-toc-nav::after{content:"";position:absolute;right:-70px;top:-70px;width:210px;height:210px;
  border-radius:50%;background:radial-gradient(circle,rgba(38,187,239,.30),rgba(38,187,239,0) 70%);
  pointer-events:none}

.legal-toc-title{position:relative;display:flex;align-items:center;gap:9px;
  margin:0 12px 14px 0;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.13);
  font-family:var(--font-head);font-weight:600;font-size:11.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--brand-300)}
.legal-toc-title span{margin-left:auto;padding:2px 9px;border-radius:999px;
  background:rgba(38,187,239,.20);border:1px solid rgba(110,211,245,.34);
  font-size:11px;letter-spacing:.04em;color:#a9e2f8}

.legal-toc-nav ul{position:relative;list-style:none;margin:0;padding:0 12px 0 0;
  max-height:calc(100vh - 226px);overflow-y:auto;scrollbar-width:thin;
  scrollbar-color:rgba(110,211,245,.45) transparent}
.legal-toc-nav ul::-webkit-scrollbar{width:5px}
.legal-toc-nav ul::-webkit-scrollbar-thumb{background:rgba(110,211,245,.45);border-radius:3px}
.legal-toc-nav ul::-webkit-scrollbar-track{background:transparent}
.legal-toc-nav li{margin:1px 0}
.legal-toc-nav a{position:relative;display:block;padding:7px 12px 7px 14px;border-radius:8px;
  font-size:13.2px;line-height:1.45;color:rgba(226,242,250,.74);text-decoration:none;
  transition:color .16s ease,background .16s ease}
.legal-toc-nav a::before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;
  margin-top:0;border-radius:2px;background:var(--brand-400);
  transition:height .18s ease,margin-top .18s ease}
.legal-toc-nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.legal-toc-nav a.is-current{color:#fff;font-weight:600;background:rgba(38,187,239,.16)}
.legal-toc-nav a.is-current::before{height:60%;margin-top:-30%}

/* ---- the document ---- */
.legal-inner{background:#fff;border:1px solid var(--line);border-radius:18px;
  box-shadow:0 14px 40px rgba(9,40,60,.07);padding:48px 60px 42px}
.legal-updated{display:inline-block;margin:0 0 26px;padding:7px 16px;border-radius:999px;
  background:var(--brand-tint);border:1px solid var(--brand-tint-2);
  font-size:12.8px;font-weight:500;color:var(--brand-600)}

.legal-inner h2{position:relative;font-family:var(--font-head);font-weight:600;font-size:21.5px;
  line-height:1.34;color:var(--brand-800);margin:40px 0 14px;padding:0 0 12px;
  border-bottom:1px solid var(--line);scroll-margin-top:110px}
.legal-inner h2::after{content:"";position:absolute;left:0;bottom:-1px;width:54px;height:2px;
  border-radius:2px;background:linear-gradient(90deg,var(--brand-400),var(--brand-300))}
.legal-inner h2:first-of-type{margin-top:0}
.legal-inner h3{font-family:var(--font-head);font-weight:600;font-size:16.5px;
  color:var(--brand-600);margin:26px 0 8px}
.legal-inner p{font-size:15.4px;line-height:1.82;color:var(--ink-2);margin:0 0 14px}

.legal-inner ul,.legal-inner ol{margin:0 0 18px;padding-left:4px;list-style:none}
.legal-inner li{position:relative;padding-left:24px;font-size:15.4px;line-height:1.75;
  color:var(--ink-2);margin-bottom:9px}
.legal-inner ul>li::before{content:"";position:absolute;left:4px;top:.62em;width:7px;height:7px;
  border-radius:50%;background:var(--brand-300);box-shadow:0 0 0 3px var(--brand-tint)}
.legal-inner ol{counter-reset:legal-ol}
.legal-inner ol>li{counter-increment:legal-ol}
.legal-inner ol>li::before{content:counter(legal-ol) ".";position:absolute;left:0;top:0;
  font-weight:600;font-size:13.5px;color:var(--brand-500)}

.legal-inner a{color:var(--brand-600);text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1px}
.legal-inner a:hover{color:var(--brand-500)}
.legal-inner strong{color:var(--ink);font-weight:600}

.legal-inner table{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:14.4px}
.legal-inner th,.legal-inner td{border:1px solid var(--line);padding:10px 14px;text-align:left}
.legal-inner th{background:var(--brand-tint);color:var(--brand-700);font-weight:600}

.legal-top{margin:34px 0 0;padding-top:20px;border-top:1px solid var(--line)}
.legal-top a{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:500;
  color:var(--brand-600);text-decoration:none}
.legal-top a:hover{color:var(--brand-500)}
.legal-top svg{width:15px;height:15px}

.legal-placeholder{padding:24px 26px;border:1px dashed var(--brand-300);border-radius:12px;
  background:var(--brand-tint)}
.legal-placeholder p:last-child{margin-bottom:0}

/* ---- responsive ---- */
@media (max-width:1080px){
  .legal-grid{grid-template-columns:1fr;gap:28px}
  .legal-toc{position:static}
  .legal-toc-nav{padding:18px 20px}
  .legal-toc-nav ul{max-height:220px;padding-right:8px}
  .legal-inner{padding:34px 32px 30px}
  .legal-toc-nav ul{max-height:230px}
}
@media (max-width:640px){
  .legal{padding:52px 0 66px}
  .legal-inner{padding:26px 20px 24px;border-radius:13px}
  .legal-inner h2{font-size:19px;margin-top:32px}
  .legal-inner p,.legal-inner li{font-size:14.9px}
  .legal-dots{display:none}
}

/* legal links in the footer bottom bar */
.footer-legal{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;
  margin:0;padding:0}
.footer-legal li{position:relative}
.footer-legal li+li::before{content:"";position:absolute;left:-11px;top:50%;
  width:1px;height:12px;margin-top:-6px;background:rgba(255,255,255,.22)}
.footer-legal a{font-size:13.5px}
@media (max-width:760px){
  .footer-legal{justify-content:center;order:3;width:100%}
  .footer-legal li+li::before{display:none}
}
