/* =========================================================
   Global Seminar — Light Minimal Theme (Berkeley blue/gold)
   Fully light background + subtle tinted sections
   ========================================================= */

:root{
  --blue:#003262;      /* Berkeley blue */
  --gold:#FDB515;      /* Berkeley gold */
  --ink:#0b1220;

  --bg:#ffffff;                         /* full light background */
  --surface: rgba(255,255,255,0.88);    /* card surface */
  --border: rgba(11,18,32,0.10);
  --shadow: rgba(12,18,28,0.10);

  --muted: rgba(11,18,32,0.68);
  --muted-2: rgba(11,18,32,0.56);

  /* very subtle section tints */
  --tint-blue: rgba(0,50,98,0.04);
  --tint-gold: rgba(253,181,21,0.06);

  --radius-xl: 20px;
  --radius-lg: 14px;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial,
               "Apple Color Emoji","Segoe UI Emoji";
  color: var(--ink);

  /* LIGHT GRADIENT BACKGROUND RESTORED */
  background:
    radial-gradient(900px 600px at 10% -10%, rgba(0,50,98,0.10), transparent 60%),
    radial-gradient(900px 600px at 95% 0%, rgba(253,181,21,0.10), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, #f9fbfd 55%, #ffffff 100%);

  line-height: 1.5;
}

a{ color: inherit; text-decoration: none; }

.container{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

h1,h2,h3,h4,h5,h6,strong{
  color: var(--ink);
}

/* ---------------------------
   Top bar / Nav
---------------------------- */
.topbar{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,0.78);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
}

.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px 0;
}

.brand{
  display:flex;
  gap: 12px;
  align-items:center;
}

.logo-img{
  width:44px;
  height:44px;
  object-fit:contain;
  display:block;
}

.brand h1{
  font-size: 14px;
  margin: 0;
  letter-spacing: 0.2px;
}
.brand p{
  margin: 0;
  font-size: 12px;
  color: var(--muted);
}

.links{
  display:flex;
  gap: 18px;
  align-items:center;
}
.links a{
  font-size: 13px;
  color: rgba(11,18,32,0.78);
}
.links a:hover{ color: rgba(11,18,32,1); }
.links a.active{
  color: var(--ink);
   font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 6px;
}

.mobile-toggle{ display:none; }
.mobile-panel{
  display:none;
  border-top: 1px solid rgba(11,18,32,0.08);
  padding: 10px 0;
}
.mobile-panel a{
  display:block;
  padding: 10px 0;
  color: rgba(11,18,32,0.80);
}
.mobile-panel a:hover{ color: rgba(11,18,32,1); }

/* ---------------------------
   Buttons
---------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 14px;
  border-radius: var(--radius-lg);
  font-weight: 650;
  font-size: 13px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.85);
  color: var(--ink);
  transition: transform 120ms ease, filter 120ms ease, background 120ms ease;
}
.btn:hover{
  background: rgba(255,255,255,0.98);
}
.btn:active{ transform: translateY(1px); }

.btn.primary{
  background: var(--blue);
  color:#fff;
  border-color: transparent;
}
.btn.primary:hover{ filter: brightness(1.05); }

.btn.gold{
  background: var(--gold);
  color:#111;
  border-color: transparent;
}
.btn.gold:hover{ filter: brightness(0.98); }

@keyframes pulse-green {
  0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); }
  70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); }
  100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); }
}

.btn.live-now {
  background: #28a745 !important;
  animation: pulse-green 2s infinite;
  border: none;
}

/* ---------------------------
   Hero
---------------------------- */
.hero {
  position: relative; /* Required for absolute positioning of pseudo-element */
  padding: 56px 0 26px;
  overflow: hidden;   /* Keeps the background from leaking out */
}

.hero::before {
  content: "";
  position: absolute;
  top: 0; 
  left: 0;
  width: 100%; 
  height: 100%;
  z-index: -1; /* Places image behind text */
  
  /* Replace with your actual image path */
  background-image: url('../banner2.png'); 
  background-size: cover;
  background-position: center;
  
  /* ADJUST TRANSPARENCY HERE (0.0 to 1.0) */
  opacity: 0.1; 
}

/* Ensure hero content stays above the pseudo-element */
.hero .container {
  position: relative;
  z-index: 1;
}

.kicker{
  display:inline-flex;
  gap: 10px;
  align-items:center;
  border: 1px solid rgba(11,18,32,0.10);
  background: rgba(255,255,255,0.75);
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 12px;
  color: var(--ink);
}

.dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 6px rgba(253,181,21,0.20);
}

.hero h2{
  font-size: 44px;
  line-height: 1.05;
  margin: 14px 0 10px;
  letter-spacing: -0.6px;
}

.hero p{
  max-width: 760px;
  color: var(--muted);
  margin: 0 0 18px;
}

.cta{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin-top: 16px;
}

/* ---------------------------
   Layout helpers
---------------------------- */
.grid{
  display:grid;
  gap: 14px;
}

.grid.two{
  grid-template-columns: 1.4fr 1fr;
}

.split{
  display:flex;
  gap: 12px;
  flex-wrap:wrap;
  margin-top: 14px;
}

/* ---------------------------
   Cards
---------------------------- */
.card{
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 18px;
  box-shadow: 0 18px 60px var(--shadow);
}

.card strong{
  color: var(--ink);
}

.card h3{
  margin: 0 0 6px;
  font-size: 16px;
}

.meta{
  color: rgba(11,18,32,0.82);
  font-size: 13px;
}

.small{
  font-size: 12px;
  color: var(--muted-2);
}

.badge{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(11,18,32,0.10);
  background: rgba(255,255,255,0.75);
  font-size: 12px;
  color: var(--ink);
}

/* Session Badges */
.session-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 8px;
  letter-spacing: 0.5px;
}

.badge-atlantic {
  background: rgba(0, 50, 98, 0.1); /* Berkeley Blue tint */
  color: var(--blue);
  border: 1px solid var(--blue);
}

.badge-pacific {
  background: rgba(253, 181, 21, 0.1); /* Berkeley Gold tint */
  color: #856404; /* Darker gold for readability */
  border: 1px solid var(--gold);
}

.stat-box {
  padding: 20px;
}

.stat-number {
  display: block;
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--blue);
  line-height: 1;
  margin-bottom: 8px;
}

.stat-label {
  display: block;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text-light);
  font-weight: 600;
}

/* For the subtle background tint if not already defined */
:root {
  --tint-blue: rgba(0, 50, 98, 0.03);
}

/* ---------------------------
   Sections (subtle tints)
---------------------------- */
.section{
  padding: 26px 0;
  border-top: 1px solid rgba(11,18,32,0.08);
}

.section.tinted-blue{
  background: linear-gradient(180deg, var(--tint-blue), rgba(255,255,255,0));
}

.section.tinted-gold{
  background: linear-gradient(180deg, var(--tint-gold), rgba(255,255,255,0));
}

.section h2{
  margin: 0 0 10px;
  font-size: 22px;
}
.section p{
  margin: 0;
  color: var(--muted);
}

/* ---------------------------
   Table
---------------------------- */
.tablewrap{
  overflow:auto;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(11,18,32,0.10);
  background: rgba(255,255,255,0.70);
}

table{
  width:100%;
  border-collapse:collapse;
  min-width:760px;
}

thead th{
  text-align:left;
  padding: 12px 14px;
  font-size: 12px;
  color: var(--ink);
  background: rgba(0,50,98,0.04);
  border-bottom: 1px solid rgba(11,18,32,0.10);
}

tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(11,18,32,0.06);
  /* CHANGE: Change 'top' to 'middle' so text is centered vertically */
  vertical-align: middle; 
  /* ADD: This forces the rows to have a consistent height */
  height: 64px; 
  font-size: 13px;
  color: var(--ink);
}

/* This targets the 4th column (Talk Title) specifically */
tbody td:nth-child(4) {
  min-width: 300px;
  max-width: 500px;
  line-height: 1.4;
}

tbody tr:hover{
  background: rgba(0,50,98,0.03);
}

/* Schedule Page Specific Table Styles */
.schedule-table {
  table-layout: fixed; /* This is what makes columns equal width */
  width: 100%;
  border-collapse: collapse;
  margin-top: 24px;
  background: white;
  border: 1px solid rgba(11,18,32,0.1);
  border-radius: 8px;
  overflow: hidden;
}

.schedule-table th, 
.schedule-table td {
  width: 16.66%; 
  padding: 16px 8px;
  text-align: center;
  border-bottom: 1px solid rgba(11,18,32,0.06);
  font-size: 13px;
}

.schedule-table th {
  background-color: #f8f9fa;
  font-weight: 600;
  color: var(--blue);
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.5px;
}

/* The Date Shift Badge (+1d / -1d) */
.date-shift {
  display: inline-block;
  background: var(--ink);
  color: #fff;
  font-size: 10px;
  padding: 2px 5px;
  border-radius: 4px;
  margin-left: 4px;
  font-weight: 800;
}

/* Highlighting the User's Local Detection Row */
.local-row {
  background-color: rgba(253, 181, 21, 0.08);
  font-style: italic;
}

/* ---------------------------
   Calendar
---------------------------- */

.calendar-wrapper {
  position: relative;
  padding-bottom: 75%; /* Aspect ratio for the calendar */
  height: 0;
  overflow: hidden;
}

.calendar-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ---------------------------
   Maps & Search Bar
---------------------------- */

/* Container for search to align with your content grid */
.search-container {
    max-width: 400px; /* Adjust this to match your card widths */
    margin-bottom: 40px;
    position: relative;
    width: 100%;
}

/* The actual text input */
#mapSearch {
    width: 100%;
    padding: 12px 15px;
    padding-right: 40px; /* space for the 'X' button */
    border: 2px solid var(--border);
    border-radius: 20px;
    background: var(--surface);
    font-size: 14px;
    outline: none;
    transition: all 0.2s ease;
    display: block;
}

#mapSearch:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 4px rgba(253, 181, 21, 0.15);
}

/* The Search Results Dropdown */
#searchResults {
    position: absolute;
    left: 0;
    right: 0; /* Aligning left/right to 0 within a 400px parent locks the width */
    background: white;
    z-index: 2000;
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 25px var(--shadow);
    margin-top: 8px;
    max-height: 250px;
    overflow-y: auto;
    border: 1px solid var(--border);
}

#searchResults div {
    padding: 12px 16px;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.2s ease;
    border-bottom: 1px solid var(--border);
}

#searchResults div:last-child {
    border-bottom: none;
}

#searchResults div:hover {
    background-color: var(--tint-blue);
    color: var(--blue);
    font-weight: 600;
}

/* Clear (X) Button */
#clearSearch {
    position: absolute;
    right: 15px; /* Fixed distance from the right edge of the 400px container */
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    color: #ccc;
    font-size: 20px;
    z-index: 5; /* Ensure it stays above the input field */
}

#clearSearch:hover {
    color: var(--blue) !important;
}

/* Leaflet Customizations */
.leaflet-control-reset {
    background-color: #fff;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    font-size: 18px;
    cursor: pointer;
    border: 2px solid rgba(0,0,0,0.2);
    border-radius: 4px;
    display: block;
}

.leaflet-control-reset:hover {
    background-color: #f4f4f4;
}

.leaflet-popup-content-wrapper {
    border-radius: var(--radius-lg);
    padding: 5px;
    border-bottom: 4px solid var(--blue);
    box-shadow: 0 10px 30px var(--shadow);
}

/* ---------------------------
   Inputs (General)
---------------------------- */
.input {
    width: 100%;
    padding: 10px 12px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--ink);
    outline: none;
}

.input:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 4px var(--tint-blue);
}

/* ---------------------------
   Footer
---------------------------- */
.footer{
  padding: 24px 0;
  color: var(--muted);
  font-size: 12px;
}

/* ---------------------------
   Responsive
---------------------------- *//
@media (max-width: 900px){
  .grid.two{ grid-template-columns: 1fr; }
}

@media (max-width: 760px){
  .links{ display:none; }
  .mobile-toggle{ display:inline-flex; }
  .hero h2{ font-size: 34px; }
}












