/* =========================================================================
   IE'27 — Homepage flexible-content sections
   ========================================================================= */

/* ---------- HERO (static image) ---------- */
.ie27-hero{position:relative;background:var(--ie-indigo);color:#fff;overflow:hidden;min-height:640px;display:flex;align-items:flex-end}
.ie27-hero__bg{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;background-position:center 30%}
.ie27-hero__scrim{position:absolute;inset:0;background:
  linear-gradient(180deg, rgba(26,35,64,.12) 0%, rgba(26,35,64,.32) 45%, rgba(26,35,64,.93) 100%),
  linear-gradient(90deg, rgba(26,35,64,.78) 0%, rgba(26,35,64,.25) 55%, transparent 100%);}
.ie27-hero__inner{position:relative;z-index:2;padding:120px 0 64px;width:100%}
.ie27-hero__grid{display:grid;grid-template-columns:1.4fr .85fr;gap:48px;align-items:end}
.ie27-hero__loc{display:inline-flex;align-items:center;gap:.6rem;font-size:.92rem;color:rgba(255,255,255,.85);margin:18px 0 22px}
.ie27-hero__loc b{color:#fff;font-weight:600}
.ie27-hero__title{font-size:clamp(2.6rem,5.2vw,4.4rem);font-weight:700;margin-bottom:18px;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.ie27-hero__title em{font-style:normal;color:var(--ie-gold-soft)}
.ie27-hero__sub{font-size:1.12rem;color:rgba(255,255,255,.92);max-width:46ch;margin-bottom:30px;text-shadow:0 1px 12px rgba(0,0,0,.45)}
.ie27-hero__cta{display:flex;gap:14px;flex-wrap:wrap}
.ie27-hero__hybrid{margin:20px 0 0;font-size:.85rem;color:rgba(255,255,255,.72)}
.ie27-hero__credit{position:absolute;bottom:14px;right:20px;z-index:3;font-size:.68rem;color:rgba(255,255,255,.5);letter-spacing:.04em}

/* Countdown */
.ie27-count{background:rgba(26,35,64,.55);border:1px solid var(--ie-line-dark);border-radius:20px;padding:26px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ie27-count__title{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ie-gold-soft);margin:0 0 20px;font-weight:600;font-family:var(--ie-font-display)}
.ie27-count__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;text-align:center}
.ie27-count__box{background:rgba(255,255,255,.08);border-radius:12px;padding:15px 6px}
.ie27-count__n{font-family:var(--ie-font-display);font-size:1.8rem;font-weight:700;line-height:1}
.ie27-count__l{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:6px}
.ie27-count__foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--ie-line-dark);font-size:.82rem;color:rgba(255,255,255,.7);display:flex;justify-content:space-between}
.ie27-count__foot b{color:#fff}

/* ---------- ABOUT ---------- */
.ie27-about{background:var(--ie-paper)}
.ie27-about__grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ie27-about__title{font-size:2.3rem;font-weight:700;margin:14px 0 20px}
.ie27-about__body{color:var(--ie-slate)}
.ie27-about__body p{margin-bottom:18px}
.ie27-about__card{background:var(--ie-indigo);color:#fff;border-radius:var(--ie-r);padding:38px;box-shadow:var(--ie-shadow);position:relative;overflow:hidden}
.ie27-about__card::before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:var(--ie-blue);filter:blur(80px);opacity:.35;top:-80px;right:-60px}
.ie27-about__card h3{font-size:1.3rem;margin-bottom:20px;position:relative}
.ie27-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative}
.ie27-stat-row+.ie27-stat-row{margin-top:26px}
.ie27-stat__n{font-family:var(--ie-font-display);font-size:2rem;font-weight:700;color:var(--ie-gold-soft)}
.ie27-stat__l{font-size:.8rem;color:rgba(255,255,255,.65);margin-top:4px}

/* ---------- KEYNOTES ---------- */
.ie27-keynotes{background:var(--ie-paper-2)}
.ie27-kgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ie27-kcard{background:var(--ie-paper);border-radius:var(--ie-r);overflow:hidden;border:1px solid var(--ie-line);transition:transform .25s,box-shadow .25s;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;display:block}
.ie27-kcard:hover{transform:translateY(-4px);box-shadow:var(--ie-shadow)}
.ie27-kcard__img{height:220px;background:linear-gradient(135deg,var(--ie-blue),var(--ie-indigo));background-size:cover;background-position:center;position:relative;display:flex;align-items:flex-end;padding:18px}
.ie27-kcard__badge{background:rgba(255,255,255,.18);color:#fff;font-size:.72rem;font-weight:600;padding:.3rem .7rem;border-radius:var(--ie-r-pill);backdrop-filter:blur(6px)}
.ie27-kcard__body{padding:22px}
.ie27-kcard__name{font-family:var(--ie-font-display);font-size:1.15rem;font-weight:600}
.ie27-kcard__aff{color:var(--ie-blue);font-size:.86rem;font-weight:600;margin:4px 0 12px}
.ie27-kcard__talk{color:var(--ie-slate);font-size:.92rem;margin:0}

/* Keynote modal */
.ie27-modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
.ie27-modal.is-open{display:flex}
.ie27-modal__backdrop{position:absolute;inset:0;background:rgba(26,35,64,.7);backdrop-filter:blur(4px)}
.ie27-modal__panel{position:relative;background:var(--ie-paper);border-radius:var(--ie-r);max-width:560px;width:100%;padding:36px;box-shadow:var(--ie-shadow);max-height:85vh;overflow:auto}
.ie27-modal__close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;border:1px solid var(--ie-line);background:#fff;cursor:pointer;font-size:1.1rem;line-height:1}
.ie27-modal__name{font-family:var(--ie-font-display);font-size:1.5rem;font-weight:700;margin:0}
.ie27-modal__aff{color:var(--ie-blue);font-weight:600;margin:4px 0 4px}
.ie27-modal__talk{font-style:italic;color:var(--ie-slate);margin-bottom:16px}

/* ---------- IMPORTANT DATES ---------- */
.ie27-dates{background:var(--ie-indigo);color:#fff}
.ie27-dates .ie27-sec-head__title{color:#fff}
.ie27-dates .ie27-sec-head__lead{color:rgba(255,255,255,.68)}
.ie27-track-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.ie27-track{background:rgba(255,255,255,.05);border:1px solid var(--ie-line-dark);border-radius:var(--ie-r);padding:32px}
.ie27-track__title{font-size:1.25rem;margin-bottom:24px;display:flex;align-items:center;gap:.6rem}
.ie27-track__title::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--ie-blue)}
.ie27-track--gold .ie27-track__title::before{background:var(--ie-gold)}
.ie27-drow{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--ie-line-dark)}
.ie27-drow:last-child{border-bottom:0}
.ie27-drow__label{color:rgba(255,255,255,.78);font-size:.95rem}
.ie27-drow__date{font-family:var(--ie-font-display);font-weight:600;font-size:.95rem;white-space:nowrap;margin-left:20px}

/* ---------- TOPICS ---------- */
.ie27-topics{background:var(--ie-paper)}
.ie27-tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ie27-tcard{background:var(--ie-paper-2);border:1px solid var(--ie-line);border-radius:12px;padding:22px;transition:background .2s,transform .2s,box-shadow .2s}
.ie27-tcard:hover{background:#fff;transform:translateY(-3px);box-shadow:var(--ie-shadow)}
.ie27-tcard__num{font-family:var(--ie-font-display);font-size:.8rem;font-weight:700;color:var(--ie-blue)}
.ie27-tcard__title{font-size:1rem;margin:8px 0;font-weight:600}
.ie27-tcard__text{font-size:.85rem;color:var(--ie-slate);line-height:1.5;margin:0}

/* ---------- PROGRAMME ---------- */
.ie27-prog{background:var(--ie-paper-2)}
.ie27-pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ie27-pill{background:var(--ie-paper);border:1px solid var(--ie-line);border-radius:12px;padding:20px;text-align:center;font-family:var(--ie-font-display);font-weight:600;font-size:.95rem;transition:transform .2s,border-color .2s}
.ie27-pill:hover{transform:translateY(-3px);border-color:var(--ie-blue)}
.ie27-pill span{display:block;font-family:var(--ie-font-body);font-weight:400;font-size:.78rem;color:var(--ie-slate);margin-top:6px}

/* ---------- PUBLICATIONS + AWARDS ---------- */
.ie27-pubaw{background:var(--ie-paper)}
.ie27-pa-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.ie27-panel{border-radius:var(--ie-r);padding:38px;border:1px solid var(--ie-line)}
.ie27-panel--pub{background:var(--ie-paper-2)}
.ie27-panel--aw{background:var(--ie-indigo);color:#fff;border-color:transparent}
.ie27-panel__title{font-size:1.4rem;margin:12px 0 20px}
.ie27-panel__text{color:var(--ie-slate)}
.ie27-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.ie27-chip{font-family:var(--ie-font-display);font-size:.82rem;font-weight:600;padding:.45rem .9rem;border-radius:var(--ie-r-pill);background:#fff;border:1px solid var(--ie-line)}
.ie27-awlist li{padding:12px 0;border-bottom:1px solid var(--ie-line-dark);display:flex;gap:.7rem;align-items:center}
.ie27-awlist li:last-child{border:0}
.ie27-awlist li::before{content:"★";color:var(--ie-gold-soft)}

/* ---------- VENUE ---------- */
.ie27-venue{background:var(--ie-indigo);color:#fff;position:relative;overflow:hidden}
.ie27-venue__glow{position:absolute;width:500px;height:500px;border-radius:50%;background:var(--ie-blue);filter:blur(120px);opacity:.22;top:-150px;right:-100px}
.ie27-venue__grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.ie27-venue__title{font-size:clamp(1.9rem,3vw,2.6rem);margin-bottom:18px}
.ie27-venue__body{color:rgba(255,255,255,.75)}
.ie27-venue__body p{margin-bottom:16px}
.ie27-venue__img{height:340px;border-radius:var(--ie-r);background-size:cover;background-position:center;position:relative;border:1px solid var(--ie-line-dark);box-shadow:var(--ie-shadow)}
.ie27-venue__cap{position:absolute;bottom:16px;left:18px;font-size:.78rem;color:#fff;background:rgba(26,35,64,.6);padding:.35rem .7rem;border-radius:8px;backdrop-filter:blur(6px)}

/* ---------- ORGANIZERS ---------- */
.ie27-org{background:var(--ie-paper)}
.ie27-chairs{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:44px}
.ie27-chair{background:var(--ie-paper-2);border:1px solid var(--ie-line);border-radius:var(--ie-r);padding:26px;display:flex;gap:18px;align-items:center}
.ie27-chair__av{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--ie-blue),var(--ie-gold));background-size:cover;background-position:center;flex:none}
.ie27-chair__role{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ie-blue);font-weight:600}
.ie27-chair__name{font-family:var(--ie-font-display);font-size:1.15rem;font-weight:600;margin-top:2px}
.ie27-logowall{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center;padding:34px;background:var(--ie-paper-2);border-radius:var(--ie-r);border:1px dashed var(--ie-line)}
.ie27-logo{height:46px;padding:0 26px;display:flex;align-items:center;font-family:var(--ie-font-display);font-weight:600;color:var(--ie-slate);background:#fff;border-radius:8px;border:1px solid var(--ie-line);font-size:.9rem}
.ie27-logo img{max-height:32px;width:auto}

/* ---------- PAST EDITIONS ---------- */
.ie27-past{background:var(--ie-paper-2)}
.ie27-pastgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ie27-pcard{background:var(--ie-paper);border:1px solid var(--ie-line);border-radius:var(--ie-r);padding:26px;transition:transform .2s,box-shadow .2s;display:block}
.ie27-pcard:hover{transform:translateY(-4px);box-shadow:var(--ie-shadow)}
.ie27-pcard__yr{font-family:var(--ie-font-display);font-size:2rem;font-weight:700;color:var(--ie-gold)}
.ie27-pcard__city{font-weight:600;margin:6px 0 2px}
.ie27-pcard__host{color:var(--ie-slate);font-size:.86rem}
.ie27-pcard__link{margin-top:16px;font-family:var(--ie-font-display);font-size:.85rem;font-weight:600;color:var(--ie-indigo);display:inline-flex;gap:.4rem}

/* ---------- SPONSORS ---------- */
.ie27-sponsors{background:var(--ie-paper)}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .ie27-hero__grid,.ie27-about__grid,.ie27-track-grid,.ie27-pa-grid,.ie27-venue__grid{grid-template-columns:1fr}
  .ie27-hero__inner{padding-top:96px}
  .ie27-kgrid,.ie27-tgrid,.ie27-pastgrid{grid-template-columns:1fr 1fr}
  .ie27-pgrid{grid-template-columns:1fr 1fr}
  .ie27-chairs{grid-template-columns:1fr}
}
@media (max-width:560px){
  .ie27-kgrid,.ie27-tgrid,.ie27-pgrid,.ie27-pastgrid{grid-template-columns:1fr}
  .ie27-count__grid{grid-template-columns:repeat(2,1fr)}
  .ie27-section{padding:64px 0}
}
