/* =====================================================================
   PIRT Theme — Structural styles (resets, typography, layout, components)
   Ported from C10-prototypes/prototype-2/common/styles.css.
   :root tokens live in css/base/tokens.css.
   Inter font is loaded via libraries.yml as an external CSS dependency.
   ===================================================================== */

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }


html { scroll-behavior:smooth; }
body {
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--white); background:var(--blue-deep);
  line-height:1.6; overflow-x:hidden;
}
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
img { max-width:100%; display:block; }

.container { width:100%; max-width:1240px; margin:0 auto; padding:0 24px; }

/* ===== GLASS ===== */
.glass {
  background:var(--glass-bg);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--glass-border); border-radius:var(--radius-md);
}
.glass-light {
  background:var(--glass-bg-light);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(255,255,255,.2); border-radius:var(--radius-md);
}

/* ===== PAGE BG ===== */
.page-bg {
  min-height:100vh;
  background:
    radial-gradient(ellipse 120% 80% at 20% 0%, rgba(16,118,168,.35) 0%, transparent 60%),
    radial-gradient(ellipse 100% 60% at 80% 10%, rgba(42,191,179,.2) 0%, transparent 50%),
    radial-gradient(ellipse 80% 50% at 50% 100%, rgba(52,196,124,.12) 0%, transparent 50%),
    linear-gradient(180deg, var(--blue-deep) 0%, var(--blue-dark) 40%, #0b2e45 100%);
}
.glow-orb { position:absolute; border-radius:50%; filter:blur(100px); pointer-events:none; }

/* ===== NAV ===== */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:var(--nav-height);
  background:rgba(10,22,40,.85);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  box-shadow:0 1px 0 var(--glass-border);
}
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:100%; }
.nav-logo { display:flex; align-items:center; gap:12px; font-weight:700; font-size:18px; letter-spacing:-.3px; }
.nav-menu { display:flex; align-items:center; gap:4px; }
.nav-menu a {
  padding:8px 16px; font-size:14px; font-weight:500;
  color:var(--white-70); border-radius:var(--radius-sm);
  transition:color .2s, background .2s;
}
.nav-menu a:hover, .nav-menu a.active { color:var(--white); background:var(--white-10); }
.nav-actions { display:flex; align-items:center; gap:12px; }
.lang-toggle {
  display:flex; align-items:center; gap:2px; padding:4px;
  border-radius:20px; background:var(--white-10); font-size:12px; font-weight:600;
}
.lang-toggle span,
.lang-toggle a { padding:4px 10px; border-radius:16px; cursor:pointer; color:var(--white-50); transition:all .2s; text-decoration:none; }
.lang-toggle span.active { background:var(--white); color:var(--blue-deep); }

.nav-toggle {
  display:none; background:none; border:none; cursor:pointer;
  width:32px; height:32px; flex-direction:column; justify-content:center;
  align-items:center; gap:5px; padding:4px;
}
.nav-toggle span {
  display:block; width:22px; height:2px; background:var(--white);
  border-radius:2px; transition:all .25s;
}

/* ===== BUTTONS ===== */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; font-size:14px; font-weight:600;
  border-radius:50px; border:none; cursor:pointer; transition:all .25s; font-family:inherit;
}
.btn-primary {
  background:linear-gradient(135deg, var(--teal), var(--green));
  color:var(--white); box-shadow:0 4px 16px rgba(42,191,179,.3);
}
.btn-primary:hover { transform:translateY(-1px); box-shadow:0 6px 24px rgba(42,191,179,.4); }
.btn-outline { background:var(--white-10); color:var(--white); border:1px solid var(--white-20); }
.btn-outline:hover { background:var(--white-20); }
.btn-white { background:var(--white); color:var(--blue-dark); }
.btn-white:hover { transform:translateY(-1px); box-shadow:0 6px 24px rgba(255,255,255,.2); }
.btn-sm { padding:8px 18px; font-size:13px; }
.btn-block { display:flex; width:100%; justify-content:center; }

/* ===== PAGE HEADER ===== */
.page-header {
  padding:calc(var(--nav-height) + 48px) 0 48px;
  position:relative; overflow:hidden;
}
.page-header::before {
  content:''; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(10,22,40,.75) 0%, rgba(10,22,40,.55) 50%, rgba(10,22,40,.8) 100%);
  pointer-events:none;
}
.page-header > .container { position:relative; z-index:1; }
.page-header .section-tag { margin-bottom:12px; }
.page-header h1 {
  font-size:42px; font-weight:800; letter-spacing:-1px; margin-bottom:14px;
  background:linear-gradient(135deg, var(--white), rgba(255,255,255,.92));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.page-header p { font-size:18px; color:rgba(255,255,255,.75); max-width:640px; line-height:1.7; }

.breadcrumb {
  display:flex; align-items:center; flex-wrap:wrap; gap:8px;
  font-size:13px; color:rgba(255,255,255,.7); margin-bottom:20px;
  list-style:none; padding:0;
}
.breadcrumb a { color:rgba(255,255,255,.7); transition:color .2s; }
.breadcrumb a:hover { color:var(--white); }
.breadcrumb .sep { opacity:.3; }
.breadcrumb__current { color:var(--white); font-weight:500; }
/* When breadcrumb sits in the white-page area (skin), recolour it. */
body.skin .container > .breadcrumb,
body.skin main .breadcrumb {
  color:var(--sp-muted);
}
body.skin .container > .breadcrumb a,
body.skin main .breadcrumb a {
  color:var(--sp-muted);
}
body.skin .container > .breadcrumb a:hover,
body.skin main .breadcrumb a:hover {
  color:var(--sp-primary);
}
body.skin .container > .breadcrumb .breadcrumb__current,
body.skin main .breadcrumb .breadcrumb__current {
  color:var(--sp-secondary-d);
}

/* ===== SECTIONS ===== */
.section { padding:64px 0; }
.section-tag {
  display:inline-block; font-size:12px; font-weight:700;
  letter-spacing:2px; text-transform:uppercase; color:var(--teal); margin-bottom:12px;
}
.section-title { font-size:32px; font-weight:800; letter-spacing:-.5px; color:var(--white); margin-bottom:12px; }
.section-desc { font-size:16px; color:var(--white-50); max-width:600px; line-height:1.7; }
.section-header { text-align:center; margin-bottom:48px; }
.section-header .section-desc { margin:12px auto 0; }

/* ===== CARDS ===== */
.card-grid { display:grid; gap:16px; }
.card-grid-2 { grid-template-columns:repeat(2, 1fr); }
.card-grid-3 { grid-template-columns:repeat(3, 1fr); }
.card-grid-4 { grid-template-columns:repeat(4, 1fr); }

.card { padding:28px 24px; transition:transform .2s, background .2s; }
.card:hover { transform:translateY(-3px); background:var(--glass-bg-light); }

.card-icon {
  width:48px; height:48px; border-radius:14px;
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  background:linear-gradient(135deg, var(--teal), var(--green));
}

.card h3 { font-size:18px; font-weight:700; margin-bottom:8px; }
.card p { font-size:14px; color:var(--white-50); line-height:1.6; }
.card-link {
  display:inline-flex; align-items:center; gap:6px; margin-top:14px;
  font-size:14px; font-weight:600; color:var(--teal); transition:gap .2s;
}
.card-link:hover { gap:10px; }

/* ===== 2-COL LAYOUT ===== */
.content-2col { display:grid; grid-template-columns:2fr 1fr; gap:40px; align-items:start; }
.content-sidebar { position:sticky; top:calc(var(--nav-height) + 24px); }

.prose { color:var(--white-70); font-size:16px; line-height:1.8; }
.prose p { margin-bottom:16px; }
.prose h2 { font-size:24px; font-weight:700; color:var(--white); margin:32px 0 12px; }
.prose h3 { font-size:20px; font-weight:700; color:var(--white); margin:24px 0 10px; }
.prose ul, .prose ol { margin:12px 0 16px 20px; }
.prose li { margin-bottom:6px; }
.prose a { color:var(--teal); border-bottom:1px solid transparent; transition:border-color .2s; }
.prose a:hover { border-bottom-color:var(--teal); }
.prose blockquote {
  padding:16px 20px; margin:16px 0; border-left:3px solid var(--teal);
  background:var(--white-05); border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-style:italic; color:var(--white-50);
}

/* ===== TABLES ===== */
.data-table { width:100%; border-collapse:collapse; }
.data-table th {
  padding:14px 16px; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:1px;
  color:var(--white-50); text-align:left;
  border-bottom:1px solid var(--white-10);
}
.data-table td { padding:14px 16px; font-size:14px; color:var(--white-70); border-bottom:1px solid var(--white-05); }
.data-table tr:hover td { color:var(--white); background:var(--white-05); }

/* ===== FORMS ===== */
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:13px; font-weight:600; color:var(--white-70); margin-bottom:6px; }
.form-input {
  width:100%; padding:12px 16px; background:var(--white-05);
  border:1px solid var(--white-10); border-radius:var(--radius-sm);
  color:var(--white); font-size:14px; font-family:inherit;
  transition:border-color .2s; outline:none;
}
.form-input:focus { border-color:var(--teal); background:var(--white-10); }
.form-input::placeholder { color:var(--white-50); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
select.form-input {
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; padding-right:36px;
}
textarea.form-input { min-height:120px; resize:vertical; }
.form-check { display:flex; align-items:center; gap:8px; font-size:14px; color:var(--white-70); cursor:pointer; }
.form-check input[type="checkbox"] { width:18px; height:18px; accent-color:var(--teal); cursor:pointer; }

/* ===== TAGS ===== */
.tag {
  display:inline-block; padding:4px 12px; font-size:12px; font-weight:600;
  border-radius:20px; background:var(--white-10); color:var(--white-70);
}
.tag-teal { background:rgba(42,191,179,.15); color:var(--teal); }
.tag-blue { background:rgba(16,118,168,.15); color:var(--blue-light); }
.tag-green { background:rgba(52,196,124,.15); color:var(--green); }
.tag-orange { background:rgba(245,158,11,.15); color:var(--orange); }
.tag-purple { background:rgba(139,92,246,.15); color:var(--purple); }
.tag-red { background:rgba(239,68,68,.15); color:var(--red); }

/* ===== SEARCH & FILTERS ===== */
.search-bar { display:flex; gap:12px; margin-bottom:32px; }
.search-input {
  flex:1; padding:14px 20px; padding-left:48px;
  background:var(--glass-bg); border:1px solid var(--glass-border);
  border-radius:50px; color:var(--white); font-size:15px;
  font-family:inherit; outline:none; transition:border-color .2s;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.4)' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:16px center;
}
.search-input:focus { border-color:var(--teal); }
.search-input::placeholder { color:var(--white-50); }

.filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; }
.filter-btn {
  padding:8px 16px; font-size:13px; font-weight:600;
  border-radius:50px; background:var(--white-05); border:1px solid transparent;
  color:var(--white-50); cursor:pointer; transition:all .2s; font-family:inherit;
}
.filter-btn:hover { color:var(--white-70); border-color:var(--white-20); }
.filter-btn.active { color:var(--white); background:linear-gradient(135deg, var(--teal), var(--green)); }

/* ===== SIDEBAR ===== */
.sidebar-widget { margin-bottom:24px; padding:24px; }
.sidebar-widget h3 {
  font-size:14px; font-weight:700; text-transform:uppercase;
  letter-spacing:1px; color:var(--white-50); margin-bottom:16px;
}
.sidebar-link {
  display:block; padding:10px 0; font-size:14px; color:var(--white-70);
  border-bottom:1px solid var(--white-05); transition:color .2s, padding-left .2s;
}
.sidebar-link:hover { color:var(--teal); padding-left:6px; }
.sidebar-link:last-child { border-bottom:none; }

/* ===== FOOTER ===== */
.footer { border-top:1px solid var(--white-10); padding:60px 0 32px; }
/* Theme exposes 3 footer regions (footer_first/second/third). Layout is
   biased toward col 1 (brand blurb, wider) and lets col 3 split into a
   2-up grid when it carries multiple blocks (contact + social). */
.footer-grid {
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;
  gap:40px;
  margin-bottom:48px;
  align-items:start;
}
@media (max-width:1100px) { .footer-grid { grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:700px)  { .footer-grid { grid-template-columns:1fr 1fr; } }
.footer-bottom > div a {
  color:var(--white-50); padding:0; display:inline; font-size:13px;
}
.footer-bottom > div a:hover { color:var(--white); }
.nav-logo span small { display:block; font-size:11px; font-weight:400; margin-top:2px; }
.footer-grid > .region-footer-third {
  grid-column:span 2;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
}
.footer-grid > .region-footer-third > * { min-width:0; }
.footer-brand p { font-size:14px; color:var(--white-50); line-height:1.7; margin-top:16px; max-width:300px; }
.footer-col h4 { font-size:13px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--white-70); margin-bottom:16px; }
.footer-col a { display:block; font-size:14px; color:var(--white-50); padding:4px 0; transition:color .2s; }
.footer-col a:hover { color:var(--white); }
.footer-bottom {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:24px; border-top:1px solid var(--white-10);
  font-size:13px; color:var(--white-50);
}
.footer-partners { display:flex; align-items:center; gap:20px; }
.partner-placeholder {
  width:60px; height:24px; border-radius:var(--radius-sm);
  background:var(--white-10); display:flex; align-items:center;
  justify-content:center; font-size:9px; font-weight:600; color:var(--white-50);
}

/* ===== LIST ITEMS ===== */
.list-item {
  display:flex; gap:20px; padding:20px;
  border-radius:var(--radius-md); border:1px solid var(--white-05);
  transition:border-color .2s, background .2s; margin-bottom:12px;
}
.list-item:hover { border-color:var(--glass-border); background:var(--white-05); }
.list-item-icon {
  width:56px; height:56px; border-radius:14px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.list-item h3 { font-size:16px; font-weight:700; margin-bottom:4px; }
.list-item p { font-size:14px; color:var(--white-50); line-height:1.5; }
.list-item .meta { font-size:12px; color:var(--white-50); margin-top:8px; display:flex; gap:16px; flex-wrap:wrap; }

/* ===== PAGINATION ===== */
.pagination { display:flex; align-items:center; gap:6px; justify-content:center; margin-top:48px; }
.pagination a, .pagination span {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:10px; font-size:14px; font-weight:600;
  color:var(--white-50); background:var(--white-05); border:1px solid var(--white-10);
  transition:all .2s;
}
.pagination a:hover { color:var(--white); background:var(--white-10); }
.pagination .active { color:var(--white); background:linear-gradient(135deg, var(--teal), var(--green)); border-color:transparent; }

/* ===== TABS ===== */
.tabs { display:flex; gap:2px; margin-bottom:32px; border-bottom:1px solid var(--white-10); flex-wrap:wrap; }
.tab-btn {
  padding:12px 20px; font-size:14px; font-weight:600; color:var(--white-50);
  background:none; border:none; border-bottom:2px solid transparent;
  cursor:pointer; transition:all .2s; font-family:inherit;
}
.tab-btn:hover { color:var(--white-70); }
.tab-btn.active { color:var(--teal); border-bottom-color:var(--teal); }
.tab-content { display:none; }
.tab-content.active { display:block; }

/* ===== CALENDAR ===== */
.calendar-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:2px; }
.calendar-header { padding:10px; text-align:center; font-size:12px; font-weight:700; color:var(--white-50); text-transform:uppercase; }
.calendar-day {
  padding:10px 8px; text-align:center; font-size:13px; color:var(--white-50);
  border-radius:var(--radius-sm); transition:background .2s; min-height:56px;
}
.calendar-day.has-event { background:var(--white-05); color:var(--white); cursor:pointer; }
.calendar-day.has-event:hover { background:var(--white-10); }
.calendar-day.today { background:linear-gradient(135deg, var(--teal), var(--green)); color:var(--white); font-weight:700; }

/* =====================================================================
   HERO (home + conference landing)
   ===================================================================== */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,22,40,.6) 0%, rgba(10,22,40,.4) 40%, rgba(10,22,40,.7) 100%); }
.hero-content { position:relative; z-index:1; text-align:center; max-width:800px; padding:0 24px; }
.hero-badge { display:inline-flex; align-items:center; gap:8px; padding:8px 20px; font-size:13px; font-weight:600; margin-bottom:24px; }
.dot { width:8px; height:8px; border-radius:50%; background:var(--green); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:.4; } }
.hero h1, .hero-title {
  font-size:52px; font-weight:900; letter-spacing:-1.5px; line-height:1.1; margin-bottom:16px;
  background:linear-gradient(135deg, var(--white) 0%, rgba(255,255,255,.85) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  text-wrap:balance;
}
.hero h1 .nowrap { white-space: nowrap; }
.hero-sub { font-size:22px; font-weight:300; color:var(--teal); margin-bottom:20px; letter-spacing:1px; }
.hero-meta { font-size:16px; color:var(--white-70); display:flex; align-items:center; gap:6px; margin-bottom:32px; flex-wrap:wrap; }
.hero-actions { display:flex; gap:16px; flex-wrap:wrap; }

/* Two-column hero split — text left, SVG pattern right (R7-003) */
.hero--split .hero-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:48px;
  padding:calc(var(--nav-height) + 48px) 0 64px;
  width:100%;
}
.hero--split .hero-left { z-index:1; }
.hero-media {
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1;
}
.hero-pattern {
  width:100%;
  max-width:460px;
  height:auto;
  opacity:0.9;
  filter:drop-shadow(0 0 40px rgba(42,191,179,.15));
}

.countdown { display:flex; justify-content:center; gap:16px; margin-bottom:36px; }
.countdown-item { text-align:center; }
.countdown-num {
  /* min-width fits up to 3-digit days (e.g. 365), so all four cells line
     up regardless of digit count. tabular-nums prevents proportional
     spacing of digits. */
  min-width:84px; height:72px;
  display:flex; align-items:center; justify-content:center;
  font-size:28px; font-weight:800;
  font-variant-numeric:tabular-nums;
  padding:0 10px;
}
.countdown-label { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--white-50); margin-top:6px; }

/* ===== STATS ===== */
.stats { padding:0; margin-top:-40px; position:relative; z-index:2; }
.stats-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; }
.stat-card { padding:24px 20px; text-align:center; }
.stat-icon { width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; background:linear-gradient(135deg, var(--teal), var(--green)); color:#fff; }
.stat-icon svg, .card-icon--svg svg, .icon--svg svg { width:24px; height:24px; display:block; }
.stat-num { font-size:36px; font-weight:800; margin-bottom:4px; }
.stat-label { font-size:13px; color:var(--white-50); font-weight:500; }

/* ===== NEWS/EVENTS BLOCK ===== */
.news-events { display:grid; grid-template-columns:2fr 1fr; gap:32px; }
.news-grid { display:grid; gap:16px; }
.news-grid > .views-element-container { width:100%; }
.news-grid > .views-element-container > * { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.news-grid .views-row { margin:0; height:100%; }
.news-card { display:flex; flex-direction:column; overflow:hidden; transition:transform .2s; }
.news-card:hover { transform:translateY(-3px); }
.news-thumb { height:180px; position:relative; overflow:hidden; border-radius:var(--radius-md) var(--radius-md) 0 0; background:var(--white-05); }
.news-thumb img { width:100%; height:100%; object-fit:cover; }
.news-placeholder {
  width:100%; height:100%;
  background:linear-gradient(135deg, rgba(16,118,168,.4), rgba(42,191,179,.4));
  display:flex; align-items:center; justify-content:center; font-size:48px;
}
.news-tag { position:absolute; top:12px; left:12px; background:rgba(10,22,40,.7); backdrop-filter:blur(8px); padding:4px 12px; border-radius:20px; font-size:11px; font-weight:600; }
.news-body { padding:16px 20px; }
.news-date { font-size:12px; color:var(--white-50); margin-bottom:6px; }
.news-title { font-size:16px; font-weight:700; line-height:1.4; margin-bottom:8px; min-height:calc(1.4em * 2); }
.news-title a { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.news-excerpt { font-size:13px; color:var(--white-50); line-height:1.5; }

.events-grid { display:flex; flex-direction:column; gap:12px; }
.events-grid > .views-element-container { width:100%; }
.events-grid > .views-element-container > * { display:flex; flex-direction:column; gap:12px; }
.events-grid .views-row { margin:0; }
.events-sidebar h3 { font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--white-50); margin-bottom:16px; }
.event-item { display:flex; gap:14px; padding:14px; border-radius:var(--radius-md); border:1px solid var(--white-05); margin-bottom:10px; transition:background .2s; }
.event-item:hover { background:var(--white-05); }
.event-date-box { width:52px; height:52px; border-radius:12px; background:linear-gradient(135deg, var(--teal), var(--green)); display:flex; flex-direction:column; align-items:center; justify-content:center; flex-shrink:0; }
.event-date-box .month { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1px; }
.event-date-box .day { font-size:20px; font-weight:800; line-height:1; }
.event-info h4 { font-size:14px; font-weight:600; margin-bottom:2px; }
.event-info p { font-size:12px; color:var(--white-50); }

/* ===== HOME CTA ===== */
.members-track { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.member-placeholder {
  width:100px; height:40px; border-radius:var(--radius-sm);
  background:var(--white-10); display:flex; align-items:center;
  justify-content:center; font-size:11px; font-weight:600; color:var(--white-50);
}
.cta-section { padding:64px 0; }
.cta-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.cta-card { display:flex; flex-direction:column; padding:32px 24px; text-align:center; transition:transform .2s; height:100%; }
.cta-card:hover { transform:translateY(-3px); }
.cta-card .icon { width:56px; height:56px; border-radius:16px; background:linear-gradient(135deg, var(--teal), var(--green)); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.cta-card h3 { font-size:18px; font-weight:700; margin-bottom:8px; }
.cta-card p { font-size:14px; color:var(--white-50); line-height:1.6; margin-bottom:0; }
.cta-link { display:inline-flex; align-items:center; gap:6px; margin-top:auto; padding-top:16px; font-size:14px; font-weight:600; color:var(--teal); }

/* ===== INDEX / PROTOTYPE MAP ===== */
.proto-hero {
  padding:calc(var(--nav-height) + 48px) 0 32px; text-align:center;
}
.proto-hero h1 { font-size:42px; font-weight:800; letter-spacing:-1px; margin-bottom:10px; }
.proto-hero .phase-pill {
  display:inline-block; padding:6px 18px; border-radius:50px; font-size:13px; font-weight:700;
  background:rgba(42,191,179,.18); color:var(--teal); margin-bottom:16px;
}
.proto-hero .phase2-pill { background:rgba(139,92,246,.18); color:var(--purple); }
.proto-hero p { font-size:17px; color:var(--white-50); max-width:720px; margin:0 auto; }
.proto-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; padding:24px 0 80px; }
.proto-link {
  padding:20px; display:flex; gap:14px; align-items:flex-start;
  transition:transform .2s, background .2s;
}
.proto-link:hover { transform:translateY(-2px); background:var(--glass-bg-light); }
.proto-link .num {
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  background:linear-gradient(135deg, var(--teal), var(--green));
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px;
}
.proto-link h3 { font-size:15px; font-weight:700; margin-bottom:2px; }
.proto-link p { font-size:12px; color:var(--white-50); line-height:1.4; }
.proto-section-label {
  font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
  color:var(--white-50); margin:40px 0 14px;
}

/* =====================================================================
   MEMBER ORGS / PARTNERS GRID
   ===================================================================== */
.member-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.member-card {
  padding:24px; text-align:center; transition:transform .2s, background .2s;
}
.member-card:hover { transform:translateY(-2px); background:var(--glass-bg-light); }
.member-logo {
  width:80px; height:80px; margin:0 auto 12px; border-radius:var(--radius-md);
  background:var(--white-10); display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:20px; color:var(--white-70);
}
.member-card h3 { font-size:15px; font-weight:700; margin-bottom:4px; }
.member-card .meta { font-size:12px; color:var(--white-50); margin-bottom:8px; }

/* =====================================================================
   SPEAKER DIRECTORY
   ===================================================================== */
.speaker-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; }
.speaker-card { padding:24px; text-align:center; transition:transform .2s, background .2s; }
.speaker-card:hover { transform:translateY(-2px); background:var(--glass-bg-light); }
.speaker-avatar {
  width:96px; height:96px; border-radius:50%; margin:0 auto 14px;
  background:linear-gradient(135deg, var(--blue-light), var(--teal));
  display:flex; align-items:center; justify-content:center;
  font-size:32px; font-weight:700; color:var(--white);
}
.speaker-card h3 { font-size:15px; font-weight:700; margin-bottom:2px; }
.speaker-card .title { font-size:12px; color:var(--teal); margin-bottom:4px; }
.speaker-card .org { font-size:12px; color:var(--white-50); }

/* =====================================================================
   CONFERENCE PROGRAMME GRID
   ===================================================================== */
.session-list { display:flex; flex-direction:column; gap:10px; }
.session-row {
  display:grid; grid-template-columns:120px 1fr auto; gap:18px;
  padding:18px 20px; align-items:center;
  background:var(--white-05); border:1px solid var(--white-05);
  border-radius:var(--radius-md); transition:background .2s, border-color .2s;
}
.session-row:hover { background:var(--white-10); border-color:var(--glass-border); }
.session-time { font-size:13px; font-weight:700; color:var(--teal); }
.session-title { font-size:15px; font-weight:600; margin-bottom:4px; }
.session-meta { font-size:12px; color:var(--white-50); display:flex; gap:12px; flex-wrap:wrap; }
.session-track {
  display:inline-block; padding:2px 10px; border-radius:20px; font-size:11px; font-weight:600;
}
.session-room { font-size:12px; color:var(--white-50); white-space:nowrap; }

/* =====================================================================
   VENUE — HOTEL CARDS
   ===================================================================== */
.hotel-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.hotel-card { padding:0; overflow:hidden; }
.hotel-thumb { height:140px; background:linear-gradient(135deg, var(--blue-primary), var(--teal)); display:flex; align-items:center; justify-content:center; font-size:48px; }
.hotel-body { padding:20px 22px; }
.hotel-card h3 { font-size:16px; font-weight:700; margin-bottom:4px; }
.hotel-rating { color:var(--orange); font-size:13px; margin-bottom:8px; letter-spacing:2px; }
.hotel-card .meta { font-size:12px; color:var(--white-50); line-height:1.7; margin-bottom:10px; }
.hotel-card .price { font-size:15px; font-weight:700; color:var(--teal); }
.facilities {
  display:flex; flex-wrap:wrap; gap:6px; margin-top:10px;
}
.facilities .tag { font-size:11px; padding:2px 10px; }

/* =====================================================================
   REGISTRATION WIZARD
   ===================================================================== */
.wizard-steps {
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  margin:0 auto 32px; max-width:720px;
}
.wizard-step { display:flex; align-items:center; gap:10px; flex:1; }
.wizard-step .num {
  width:32px; height:32px; border-radius:50%; background:var(--white-10);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px;
  flex-shrink:0;
}
.wizard-step.active .num { background:linear-gradient(135deg, var(--teal), var(--green)); }
.wizard-step.done .num { background:var(--green); color:var(--white); }
.wizard-step .label { font-size:12px; font-weight:600; color:var(--white-70); }
.wizard-step.active .label { color:var(--white); }
.wizard-step .line {
  height:2px; flex:1; background:var(--white-10); margin-left:8px;
}
.wizard-step.done .line { background:var(--green); }
.wizard-step:last-child .line { display:none; }

.category-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:12px; margin-bottom:24px; }
.category-card {
  padding:22px 18px; text-align:center; cursor:pointer;
  border:2px solid var(--white-10); border-radius:var(--radius-md);
  transition:all .2s; background:var(--white-05);
}
.category-card:hover { border-color:var(--teal); background:var(--white-10); }
.category-card.selected { border-color:var(--teal); background:rgba(42,191,179,.1); }
.category-card .price { font-size:24px; font-weight:800; color:var(--teal); margin:8px 0 4px; }
.category-card .label { font-size:13px; font-weight:600; }
.category-card .desc { font-size:11px; color:var(--white-50); margin-top:4px; }

/* =====================================================================
   GET INVOLVED
   ===================================================================== */
.submission-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.submission-card { padding:24px; transition:transform .2s, background .2s; }
.submission-card:hover { transform:translateY(-2px); background:var(--glass-bg-light); }
.submission-card .icon { width:48px; height:48px; border-radius:12px; margin-bottom:14px; display:flex; align-items:center; justify-content:center; font-size:22px; background:linear-gradient(135deg, var(--blue-primary), var(--teal)); }
.submission-card h3 { font-size:16px; font-weight:700; margin-bottom:6px; }
.submission-card p { font-size:13px; color:var(--white-50); line-height:1.6; }
.submission-card .meta { margin-top:12px; font-size:12px; color:var(--white-50); }
.submission-card .deadline { color:var(--orange); font-weight:600; }

/* =====================================================================
   404
   ===================================================================== */
.err-page {
  min-height:calc(100vh - var(--nav-height));
  display:flex; align-items:center; justify-content:center; padding:48px 24px;
}
.err-box { text-align:center; max-width:520px; }
.err-box .code { font-size:120px; font-weight:900; background:linear-gradient(135deg, var(--teal), var(--blue-light)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; margin-bottom:12px; }
.err-box h2 { font-size:28px; font-weight:800; margin-bottom:12px; }
.err-box p { font-size:16px; color:var(--white-50); margin-bottom:24px; }

/* =====================================================================
   PHASE 2 — YOUTH, DOCUMENTS, FUNDING, AWARDS
   ===================================================================== */
.youth-levels { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; margin-bottom:32px; }
.youth-level { padding:28px; text-align:center; }
.youth-level .level-badge {
  display:inline-block; padding:4px 14px; border-radius:20px; font-size:11px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase; background:rgba(42,191,179,.15); color:var(--teal);
  margin-bottom:14px;
}
.youth-level h3 { font-size:18px; font-weight:700; margin-bottom:10px; }

.doc-list { display:flex; flex-direction:column; gap:10px; }
.doc-row {
  display:grid; grid-template-columns:48px 1fr auto auto; gap:18px; align-items:center;
  padding:16px 20px;
  background:var(--white-05); border:1px solid var(--white-05);
  border-radius:var(--radius-md); transition:border-color .2s, background .2s;
}
.doc-row:hover { border-color:var(--glass-border); background:var(--white-10); }
.doc-icon {
  width:48px; height:48px; border-radius:12px;
  background:linear-gradient(135deg, var(--blue-primary), var(--teal));
  display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:700;
}
.doc-title { font-size:15px; font-weight:600; }
.doc-meta { font-size:12px; color:var(--white-50); margin-top:2px; }
.doc-size { font-size:12px; color:var(--white-50); }

.funding-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.funding-card { padding:24px; position:relative; overflow:hidden; }
.funding-card .amount { font-size:32px; font-weight:800; color:var(--green); margin-bottom:4px; }
.funding-card h3 { font-size:18px; font-weight:700; margin-bottom:8px; }
.funding-card p { font-size:14px; color:var(--white-50); line-height:1.6; margin-bottom:12px; }
.funding-deadline {
  display:inline-flex; align-items:center; gap:8px; padding:6px 14px; border-radius:20px;
  background:rgba(245,158,11,.15); color:var(--orange); font-size:12px; font-weight:600;
}
.funding-stats {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; margin-bottom:32px;
}
.funding-stat { padding:20px; text-align:center; }
.funding-stat .n { font-size:28px; font-weight:800; color:var(--teal); margin-bottom:2px; }
.funding-stat .l { font-size:12px; color:var(--white-50); }

.awards-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; }
.award-card { padding:28px 20px; text-align:center; }
.award-card .icon { width:64px; height:64px; border-radius:50%; margin:0 auto 14px; background:linear-gradient(135deg, var(--orange), #c47d34); display:flex; align-items:center; justify-content:center; font-size:28px; }
.award-card h3 { font-size:15px; font-weight:700; margin-bottom:6px; }
.award-card p { font-size:12px; color:var(--white-50); line-height:1.5; }

/* ===== AUTH ===== */
.auth-wrap { min-height:calc(100vh - var(--nav-height)); display:flex; align-items:center; justify-content:center; padding:calc(var(--nav-height) + 24px) 24px 48px; }
.auth-card { max-width:440px; width:100%; padding:36px 32px; }
.auth-card h1 { font-size:26px; font-weight:800; margin-bottom:8px; }
.auth-card .sub { font-size:14px; color:var(--white-50); margin-bottom:24px; }
.auth-footer { font-size:13px; color:var(--white-50); margin-top:20px; text-align:center; }
.auth-footer a { color:var(--teal); font-weight:600; }

/* ===== PROFILE / MY AGENDA ===== */
.profile-head { display:flex; gap:20px; align-items:center; padding:28px; margin-bottom:24px; }
.profile-avatar {
  width:88px; height:88px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg, var(--teal), var(--green));
  display:flex; align-items:center; justify-content:center; font-size:32px; font-weight:800;
}
.profile-info h2 { font-size:22px; font-weight:800; margin-bottom:2px; }
.profile-info .org { color:var(--white-50); font-size:14px; margin-bottom:10px; }
.profile-info .badges { display:flex; gap:8px; flex-wrap:wrap; }

/* =====================================================================
   ADMIN (BACKEND)
   ===================================================================== */
.admin-body { background:#0b1a2a; color:var(--white); min-height:100vh; display:grid; grid-template-columns:240px 1fr; }
.admin-sidebar {
  background:rgba(10,22,40,.7); padding:20px 14px; border-right:1px solid var(--white-05);
  position:sticky; top:0; height:100vh; overflow-y:auto;
}
.admin-brand { display:flex; align-items:center; gap:10px; font-weight:800; margin-bottom:26px; padding:6px 8px; }
.admin-section-label { font-size:10px; font-weight:700; color:var(--white-50); letter-spacing:2px; text-transform:uppercase; padding:18px 10px 8px; }
.admin-menu a {
  display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:8px;
  font-size:13.5px; color:var(--white-70); margin-bottom:2px; transition:all .2s;
}
.admin-menu a:hover { background:var(--white-05); color:var(--white); }
.admin-menu a.active { background:linear-gradient(135deg, rgba(42,191,179,.25), rgba(52,196,124,.15)); color:var(--white); }
.admin-menu .dot-badge {
  margin-left:auto; font-size:10px; background:var(--red); color:var(--white);
  padding:2px 7px; border-radius:10px; font-weight:700;
}
.admin-main { padding:22px 28px 60px; min-width:0; }
.admin-topbar {
  display:flex; align-items:center; justify-content:space-between; margin-bottom:22px;
}
.admin-topbar h1 { font-size:22px; font-weight:800; }
.admin-topbar .actions { display:flex; gap:10px; align-items:center; }
.admin-card {
  background:rgba(255,255,255,.04); border:1px solid var(--white-05);
  border-radius:var(--radius-md); padding:22px;
}
.kpi-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-bottom:22px; }
.kpi-card { padding:18px 20px; }
.kpi-card .lbl { font-size:12px; color:var(--white-50); margin-bottom:6px; font-weight:600; text-transform:uppercase; letter-spacing:1px; }
.kpi-card .val { font-size:28px; font-weight:800; margin-bottom:3px; }
.kpi-card .delta { font-size:12px; font-weight:600; color:var(--green); }
.kpi-card .delta.neg { color:var(--red); }

.admin-table {
  width:100%; border-collapse:collapse; font-size:13px;
}
.admin-table th {
  text-align:left; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
  color:var(--white-50); padding:10px 12px; border-bottom:1px solid var(--white-10);
}
.admin-table td { padding:11px 12px; border-bottom:1px solid var(--white-05); color:var(--white-70); }
.admin-table tr:hover td { background:var(--white-05); color:var(--white); }
.badge {
  display:inline-block; padding:3px 10px; font-size:11px; font-weight:600; border-radius:12px;
  background:var(--white-10); color:var(--white-70);
}
.badge-green { background:rgba(52,196,124,.2); color:var(--green); }
.badge-orange { background:rgba(245,158,11,.2); color:var(--orange); }
.badge-red { background:rgba(239,68,68,.2); color:var(--red); }
.badge-blue { background:rgba(16,118,168,.2); color:var(--blue-light); }

.admin-layout-col { display:grid; grid-template-columns:2fr 1fr; gap:16px; }

/* Simple trend chart (admin dashboard) */
.trend-chart {
  display:flex; align-items:flex-end; gap:8px; height:160px;
  padding:12px 0; border-top:1px solid var(--white-05); border-bottom:1px solid var(--white-05);
}
.trend-chart .bar {
  flex:1; background:linear-gradient(180deg, var(--teal), var(--blue-primary));
  border-radius:6px 6px 0 0; min-height:4px;
}

/* Admin programme builder — columns per day */
.prog-board { display:grid; grid-template-columns:repeat(5, 1fr); gap:10px; overflow-x:auto; padding-bottom:8px; }
.prog-col h4 { font-size:13px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--white-50); padding:8px 10px; }
.prog-session {
  padding:10px 12px; background:var(--white-05); border:1px solid var(--white-10);
  border-radius:10px; margin-bottom:8px; font-size:12px; cursor:grab;
}
.prog-session:hover { background:var(--white-10); }
.prog-session .t { font-weight:700; color:var(--teal); font-size:11px; }
.prog-session .n { font-weight:600; margin:3px 0; }
.prog-session .m { color:var(--white-50); font-size:11px; }

/* Translation dashboard */
.trans-row {
  display:grid; grid-template-columns:1fr 110px 110px 100px; gap:12px; align-items:center;
  padding:12px 16px; background:var(--white-05); border:1px solid var(--white-05);
  border-radius:var(--radius-sm); margin-bottom:6px; font-size:13px;
}
.trans-row .status-ok { color:var(--green); }
.trans-row .status-pending { color:var(--orange); }
.trans-row .status-missing { color:var(--red); }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1024px) {
  .card-grid-3, .card-grid-4 { grid-template-columns:repeat(2, 1fr); }
  .content-2col { grid-template-columns:1fr; }
  .content-sidebar { position:static; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > .region-footer-third { grid-column:span 2; grid-template-columns:1fr 1fr; }
  .news-events { grid-template-columns:1fr; }
  .member-grid, .speaker-grid, .hotel-grid, .submission-grid, .funding-grid, .awards-grid, .youth-levels, .proto-grid, .kpi-grid { grid-template-columns:repeat(2, 1fr); }
  .prog-board { grid-template-columns:repeat(2, 250px); }
  .admin-body { grid-template-columns:1fr; }
  .admin-sidebar { position:relative; height:auto; }
  .admin-layout-col { grid-template-columns:1fr; }
}

@media (max-width:768px) {
  .page-header h1 { font-size:30px; }
  .card-grid-2, .card-grid-3, .card-grid-4 { grid-template-columns:1fr; }
  .section-title { font-size:26px; }
  .form-row { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; gap:32px; }
  .footer-grid > .region-footer-third { grid-column:span 1; grid-template-columns:1fr 1fr; gap:32px; }
  .footer-bottom { flex-direction:column; gap:16px; text-align:center; }
  .search-bar { flex-direction:column; }
  .filters { gap:6px; }
  .nav-toggle { display:flex; }
  .nav-menu {
    display:none; position:absolute; top:var(--nav-height); left:0; right:0;
    flex-direction:column; background:rgba(10,22,40,.95);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    border-top:1px solid var(--glass-border);
    box-shadow:0 8px 24px rgba(0,0,0,.3); padding:8px 0; z-index:999;
  }
  .nav-menu.open { display:flex; }
  .nav-menu a { padding:12px 24px; border-radius:0; border-bottom:1px solid var(--white-05); }
  .nav-actions .btn { display:none; }

  .hero h1 { font-size:32px; }
  .hero--split .hero-inner { grid-template-columns:1fr; padding-top:calc(var(--nav-height) + 32px); }
  .hero-media { display:none; }
  .news-grid > .views-element-container > * { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:repeat(2, 1fr); }
  .cta-grid { grid-template-columns:1fr; }
  .countdown-num { width:56px; height:56px; font-size:22px; }
  .member-grid, .speaker-grid, .hotel-grid, .submission-grid, .funding-grid, .awards-grid, .youth-levels, .proto-grid, .kpi-grid { grid-template-columns:1fr; }
  .session-row { grid-template-columns:1fr; gap:8px; }
  .prog-board { grid-template-columns:repeat(2, 240px); }
}

/* Single-column hero (E02 ISSUE-0002) — used when the right-column wave was
   removed per design. Re-uses the same vertical rhythm as the split hero. */
.hero--single .hero-inner {
  display: block;
  text-align: left;
  padding-top: calc(var(--nav-height) + 24px);
  padding-bottom: 32px;
}
.hero--single .hero-left {
  max-width: 760px;
}
