/* ============================================================
   THEME VARIABLES (colors used throughout)
   Change these to quickly re-theme the whole site
   ============================================================ */

   /* DARK theme */
   :root {
    --bg: #0b0f19;                       /* page background base */
    --panel: rgba(255, 255, 255, 0.06);  /* translucent panel/card background */
    --text: rgba(255, 255, 255, 0.92);   /* main text */
    --muted: rgba(255, 255, 255, 0.70);  /* secondary text */
    --line: rgba(255, 255, 255, 0.12);   /* borders/dividers */
  }
    
  /* Light theme */
  :root {
    --bg: #f7f8fb;
    --panel: rgba(0,0,0,0.04);
    --text: #1a1a1a;
    --muted: #5a5a5a;
    --line: rgba(0,0,0,0.1);
  }

  /* ============================================================
     GLOBAL DEFAULTS
     ============================================================ */
  * { box-sizing: border-box; }
  
  /* Smooth scrolling for anchor links like #about, #program, etc. */
  html { scroll-behavior: smooth; }
  
  /* Base typography + background */
  body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--text);
  
    /* Decorative background gradients (purely visual) */
    background:
      radial-gradient(1200px 800px at 20% 0%, rgba(120,160,255,0.25), transparent 55%),
      radial-gradient(900px 700px at 90% 20%, rgba(255,120,180,0.18), transparent 55%),
      var(--bg);
  }
  
  /* Light theme */
  body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--text);
  
    background:
      radial-gradient(900px 600px at 20% 0%, rgba(120,160,255,0.18), transparent 60%),
      radial-gradient(700px 500px at 90% 10%, rgba(255,120,180,0.12), transparent 60%),
      var(--bg);
  }

  /* Links inherit text color; underline on hover */
  a { color: inherit; text-decoration: none; }
  a:hover { text-decoration: underline; }
  
  /* ============================================================
     LAYOUT CONTAINER
     Keeps content centered and prevents lines from getting too long
     ============================================================ */
  .container {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 18px;
  }
  
  /* ============================================================
     HEADER (sticky top bar)
     ============================================================ */
  .site-header {
    position: sticky;
    top: 0;
  
    /* Frosted-glass effect */
    backdrop-filter: blur(10px);
  
    border-bottom: 1px solid var(--line);
    background: rgba(11,15,25,0.55);
    background: rgba(255,255,255,0.8);
  }
  
  /* Header internal layout */
  .site-header .container {
    /* This allows the mobile dropdown menu to be positioned relative to header */
    position: relative;
  
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
  }
  
  /* ============================================================
     BRAND (logo + title)
     ============================================================ */
  .brand {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  
  /* "Logo" pill */
  .brand-mark {
    /* FIX: allow text like "NAIS 2026" to fit nicely */
    width: auto;
    height: 36px;
    padding: 0 12px;
  
    display: grid;
    place-items: center;
  
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--panel);
  
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.2px;
    white-space: nowrap;
  }
  
  .brand-title { font-weight: 700; }
  .brand-subtitle {
    color: var(--muted);
    font-size: 13px;
    margin-top: 2px;
  }
  
  /* ============================================================
     NAVIGATION
     Desktop: links shown inline
     Mobile: "Menu" button toggles dropdown
     ============================================================ */
  .nav {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  
  /* Wrapper for the actual links */
  .nav-links {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  
  /* Link styling */
  .nav-links a {
    color: var(--muted);
    font-size: 14px;
  }
  
  /* Register button in nav should be brighter */
  .nav-links a.btn {
    color: var(--text);
  }
  
  /* Mobile toggle button: hidden on desktop */
  .nav-toggle {
    display: none; /* shown in mobile media query */
    border: 1px solid var(--line);
    background: var(--panel);
    color: var(--text);
    border-radius: 12px;
    padding: 10px 12px;
    font: inherit;
    cursor: pointer;
  }
  
  /* ============================================================
     HERO (top section)
     ============================================================ */

/* Big logo in hero section */
  .hero-logo{
    width: min(800px, 80vw);
    height:auto;
    margin-bottom:25px;
  }

  /*
  .hero {
    padding: 56px 0 28px;
  }
  */

  .hero {
    padding: 100px 0 50px;
    text-align:center;
  }
  
  .hero h1 {
    font-size: 40px;
    margin: 0 0 10px;
  }
  
  /* Slightly larger intro paragraph */
  .lead {
    color: var(--muted);
    font-size: 18px;
    max-width: 60ch;
    line-height: 1.5;
  }
  
  /* Buttons row in hero */
  .hero-actions {
    display: flex;
    gap: 12px;
    margin-top: 18px;
  }
  
  .small-note {
    margin-top: 14px;
    color: var(--muted);
    font-size: 13px;
  }
  
  /* ============================================================
     SECTIONS
     Shared formatting for About / Program / Speakers / Venue etc.
     ============================================================ */
  .section {
    padding: 26px 0;
  }
  
  .section h2 {
    margin: 0 0 12px;
    font-size: 22px;
  }
  
  /* Generic list styling used in Program/Dates/etc. */
  .list {
    margin: 0;
    padding-left: 18px;
    color: var(--muted);
    line-height: 1.7;
  }
  
  /* ============================================================
     GRID + CARDS (e.g., speakers/organizers)
     ============================================================ */
  .grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 columns on desktop */
    gap: 12px;
  }
  
.card {
  display: flex;               /* stack children vertically */
  flex-direction: column;
  align-items: center;         /* horizontal centring */
  text-align: center;          /* centre text lines too */
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: 14px;
  padding: 18px 16px;
  /* optionally make the border lighter or remove entirely: */
  /* border-color: rgba(0,0,0,0.05); */
  border: none; 
}
  
  .card-title { font-weight: 650; }
  
  .card-subtitle {
    color: var(--muted);
    margin-top: 6px;
    font-size: 14px;
  }
    
  .card-image {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
  }
  .venue_img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 14px;
    margin-bottom: 16px;
  }

  .venue_img {
    transition: transform 0.25s ease;
  }
  
  .venue_img:hover {
    transform: scale(1.02);
  }
  
  /* ============================================================
     BUTTONS
     ============================================================ */
  .btn {
    display: inline-block;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,0.10);
    text-decoration: none !important; /* avoid underline even on hover */
  }
  .btn {
    display: inline-block;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px solid var(--line);
    background: rgba(0,0,0,0.04);
  }
  
  /* Secondary button style */
  .btn.ghost {
    align-items: center;
    background: transparent;
    color: var(--muted);
  }
  
  /* Muted helper class for text */
  .muted { color: var(--muted); }
  
  /* ============================================================
     HOVER / MICRO-ANIMATIONS
     Gives a "fancy" feel without heavy JS
     ============================================================ */
  .btn, .card, .nav-toggle {
    transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
  }
  
  .btn:hover,
  .nav-toggle:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,0.14);
    border-color: rgba(255,255,255,0.22);
  }
  
  .card:hover {
    transform: translateY(-3px);
    border-color: rgba(255,255,255,0.22);
    background: rgba(255,255,255,0.085);
  }
  
  /* ============================================================
     FOOTER
     ============================================================ */
  .site-footer {
    padding: 22px 0;
    border-top: 1px solid var(--line);
  }
  
  /* ============================================================
     RESPONSIVE DESIGN (small screens / mobile)
     When viewport width <= 760px:
     - show the menu button
     - turn nav links into a dropdown
     - make the grid 1-column
     ============================================================ */
  @media (max-width: 760px) {
    /* Keep header in one row (brand left, menu button right) */
    .site-header .container {
      flex-direction: row;
      align-items: center;
      gap: 10px;
    }
  
    /* Show the menu button on mobile */
    .nav-toggle { display: inline-block; }
  
    /* Hide links by default; show them when JS adds .open */
    .nav-links {
      display: none;
  
      /* Dropdown position relative to header container */
      position: absolute;
      right: 18px;
      top: 64px;
  
      flex-direction: column;
      align-items: stretch;
      gap: 10px;
  
      padding: 12px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: rgba(11,15,25,0.92);
      backdrop-filter: blur(10px);
  
      min-width: 220px;
    }
  
    /* JS toggles this class */
    .nav-links.open { display: flex; }
  
    /* One column on mobile for speaker cards, organizers, etc. */
    .grid { grid-template-columns: 1fr; }
  
    /* Slightly smaller hero title on mobile */
    .hero h1 { font-size: 32px; }
  }


 .hero .hero-details {
  font-size: 22px;
  color: var(--muted);
  margin-top: 8px;
}

.divider{
  margin: 0 8px;
  opacity: 0.6;
}

@media (max-width: 760px) {

  .hero-details {
    font-size: 16px;
  }

}

