/* wg:design-vars:start */
:root{--wg-surface:#050911;--wg-surface-alt:#131b26;--wg-surface-inverse:#f6f9fc;--wg-ink:#f6f9fc;--wg-ink-muted:#cad5e5;--wg-ink-inverse:#131b26;--wg-primary:#67a4f0;--wg-primary-hover:#b8d7ff;--wg-primary-soft:#001a3b;--wg-accent:#cb9800;--wg-accent-soft:#241800;--wg-link:#b8d7ff;--wg-link-inverse:#004182;--wg-line:#242e3d;--wg-line-inverse:#dee5ef;--wg-primary-on:#050911;--wg-accent-on:#050911;--wg-font-display:'Geologica', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;--wg-font-body:'Onest', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;--wg-radius-ui:0px;--wg-radius-card:0px;--wg-shadow-card:none;--wg-section:4rem}
/* wg:design-vars:end */
*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{font-family:var(--wg-font-body)}

/* ---------- Header sticky / scrolled state ---------- */
#site-header{
  position:sticky;
  top:0;
  z-index:50;
  transition:background-color 0.3s ease, border-color 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease;
}

#site-header.is-scrolled{
  box-shadow:0 1px 0 var(--wg-line);
}

#site-header.is-scrolled .header-inner{
  padding-top:0.5rem;
  padding-bottom:0.5rem;
}

/* ---------- Cookie banner ---------- */
#cookie-banner{
  opacity:0;
  visibility:hidden;
  transition:opacity 0.4s ease, visibility 0.4s ease;
}

#cookie-banner:not(.hidden){
  opacity:1;
  visibility:visible;
}

/* ---------- Form focus / error states ---------- */
input,
textarea,
select{
  transition:border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
  border:1px solid var(--wg-line);
}

input:focus,
textarea:focus,
select:focus{
  outline:none;
  border-color:var(--wg-primary);
  box-shadow:0 0 0 2px var(--wg-primary-soft);
}

input.error,
textarea.error,
select.error{
  border-color:#dc2626;
  background-color:rgba(220,38,38,0.06);
}

.error-message{
  color:var(--wg-ink);
  font-size:0.8rem;
  margin-top:0.25rem;
  display:block;
}

.error-message::before{
  content:"\2715\0020";
}

/* ---------- Numbered section labels (01 / 02) ---------- */
.eyebrow{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
}

.section-number{
  font-family:var(--wg-font-display);
  font-weight:600;
  font-size:0.75rem;
  letter-spacing:0.08em;
  color:var(--wg-ink-muted);
}

/* ---------- Hairline grid decoration ---------- */
.grid-lines{
  position:relative;
}

.grid-lines::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(to right, var(--wg-line) 1px, transparent 1px);
  background-size:calc(100% / 12) 100%;
  opacity:0.08;
  pointer-events:none;
}

.hairline-top{
  border-top:1px solid var(--wg-line);
}

.hairline-bottom{
  border-bottom:1px solid var(--wg-line);
}

/* ---------- Animations ---------- */
@keyframes fadeInUp{
  from{
    opacity:0;
    transform:translateY(12px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

@keyframes gridPulse{
  0%,100%{opacity:0.06}
  50%{opacity:0.14}
}

.animate-fade-up{
  animation:fadeInUp 0.5s ease both;
}

.animate-fade-in{
  animation:fadeIn 0.6s ease both;
}

.grid-lines::before{
  animation:gridPulse 6s ease-in-out infinite;
}

/* ---------- Accordion transitions ---------- */
.accordion-header i{
  transition:transform 0.3s ease;
}

.accordion-header.is-open i{
  transform:rotate(45deg);
}

.accordion-content{
  transition:opacity 0.3s ease;
}

/* ---------- Back to top ---------- */
#back-to-top{
  transition:opacity 0.3s ease, transform 0.3s ease, background-color 0.2s ease;
}

#back-to-top:hover{
  transform:translateY(-2px);
}

/* ---------- Links ---------- */
.link-inline{
  transition:opacity 0.2s ease, border-color 0.2s ease;
}

/* ---------- Print rules ---------- */
@media print{
  #site-header,
  #mobile-menu,
  #cookie-banner,
  #back-to-top,
  .no-print{
    display:none !important;
  }

  body{
    background:#fff;
    color:#000;
  }

  a{
    color:#000;
    text-decoration:underline;
  }

  .section{
    padding-top:0.5rem;
    padding-bottom:0.5rem;
  }
}