:root{
  --bg:#032d54;
  --overlay:#ffffffE6;
  --text:#0b0f1a;
}

/* NEW: keep widths sane, padding/borders included */
*, *::before, *::after { 
  box-sizing: border-box; 
}

/* keep body from scrolling by default */
html, body { height:100%; margin:0; }
body {
  background:var(--bg);
  color:var(--text);
  font-family:system-ui, Segoe UI, Roboto, Arial, sans-serif;
  overflow:hidden; 
}

/* === HERO GRID (left cards | logo | right cards) === */
.hero{
  display:grid;
  grid-template-columns: minmax(260px, 420px) minmax(920px, 920px) minmax(260px, 420px);
  align-items:center;
  gap:32px;
  max-width:1500px;
  height:100vh;             
  margin:0 auto;
  padding:32px 16px 48px;
}

/* center column just centers the logo */
.hero-logo{ display:flex; justify-content:center; align-items:center; }
.logo{ width:100%; height:auto; display:block; }

/* === SIDE COLUMNS (scrollable in normal state; frozen in modal state) === */
.hero-col{
  display:flex;
  flex-direction:column;
  gap:40px;
  min-height:0;              
  overflow:auto;             
  padding-right:4px;         
  scroll-behavior:smooth;
  overflow-x:hidden;         
}
.hero-col.left,
.hero-col.right { margin-top: 0; }

/* dropdown “cards” (the <details> elements) */
.card{
  background: #0b0f1a;  
  color: rgb(39, 236, 21);
  border-radius:12px;
  padding:0;                
  box-shadow:0 6px 14px rgba(0,0,0,0.15);
  overflow-x:hidden;        
  backdrop-filter: blur(4px);      
}

/* summary row (full card header clickable) */
.card summary{
  list-style:none;
  cursor:pointer;
  font-weight:700;
  font-size:1.1rem;
  display:block;
  width:100%;
  padding:20px;
  border-radius:12px;
}
.card summary::-webkit-details-marker{ display:none; }
.card summary::after{ content:"▾"; float:right; transition:transform .2s ease; }
.card[open] summary::after{ transform: rotate(180deg); }

/* affordances for hover/focus */
.card:hover summary{
  box-shadow: 0 1px 0 rgba(0,0,0,0.04) inset;
}
.card summary:focus-visible{
  outline: 2px solid rgba(0,0,0,0.25);
  outline-offset: 2px;
}

/* animated inline panel (used when NOT popped to center) */
.card .panel{
  overflow:hidden;
  max-height:0;
  padding:0 20px 0;
  transition:max-height .3s ease;
}
.card[open] .panel{
  max-height:80vh;
  padding:12px 20px 8px;
}

/* make long content wrap, not expand width */
.card .panel * { max-width:100%; word-wrap:break-word; }


body:has(.card[open])::before{
  content:"";
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(2px);
  z-index: 900;
}
body:has(.card[open]) .hero-col{
  overflow:hidden;
}

.card[open]{
  position: fixed;
  color: #032d54;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(92vw, 980px);
  max-height: 82vh;
  overflow: auto;
  z-index: 1000;
  padding: 24px;
  background: rgba(255, 255, 255, 0.7);   
  backdrop-filter: blur(6px);         
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
}

.card[open] summary{
  position: sticky;
  top: 0;
  background: inherit;
  padding:0 0 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  border-radius:0;
  z-index: 2;
}

.card[open] .panel{
  max-height:none;
  padding:8px 0 0;
}

/* Subtle modal pop motion */
@media (prefers-reduced-motion: no-preference){
  .card[open]{ animation: pop .16s ease-out; }
  @keyframes pop{
    from{ transform: translate(-50%,-48%) scale(.98); opacity:.85; }
    to  { transform: translate(-50%,-50%) scale(1);   opacity:1; }
  }
}

/* --- Mobile/Tablet: stack everything again and allow normal page scroll --- */
@media (max-width: 1100px){
  body { overflow:auto; }
  .hero{
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    height:auto;
    gap:16px;
  }
  .hero-logo{ order:1; margin-bottom:8px; }
  .left{ order:2; }
  .right{ order:3; }
  .hero-col{ overflow:visible; }
  .card[open]{ width:92vw; max-height:86vh; }
}
.website-button {
  display: inline-block;
  margin: 10px 5px;
  padding: 10px 15px;
  background-color: #032d54;
  color: rgb(39, 236, 21);
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
}