:root {
  --fpwc-black:  #0d0d0d;
  --fpwc-dark:   #111a14;
  --fpwc-green:  #526488;
  --fpwc-green2: #6478a0;
  --fpwc-gold:   #c8a84b;
  --fpwc-white:  #ffffff;
  --fpwc-off:    #f5f5f3;
  --fpwc-muted:  #4a5e52;
  --fpwc-line:   #e2e8e4;
  --fpwc-ink:    #1a2e22;
}

html { scroll-behavior: smooth; }
body { margin:0; font-family: 'Montserrat arm', 'Montserrat', sans-serif; color:var(--fpwc-ink); background:var(--fpwc-white); }
h1,h2,h3,h4 { font-family: 'Montserrat arm', 'Montserrat', sans-serif; }

.hero-overlay {
  background: linear-gradient(90deg,
    rgba(14,18,28,.80) 0%,
    rgba(14,18,28,.54) 42%,
    rgba(14,18,28,.22) 68%,
    rgba(14,18,28,.04) 100%);
}
@media (max-width:768px) {
  .hero-overlay { background:linear-gradient(180deg,rgba(14,18,28,.84) 0%,rgba(14,18,28,.70) 60%,rgba(14,18,28,.50) 100%); }
}

.section-kicker { letter-spacing:.18em; text-transform:uppercase; font-weight:700; }

.nav-link { position:relative; }
.nav-link:after { content:''; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:var(--fpwc-gold); transition:width .22s ease; }
.nav-link:hover:after,.nav-link:focus:after { width:100%; }

.speaker-card { transition:transform .22s ease,box-shadow .22s ease; }
.speaker-card:hover { transform:translateY(-4px); box-shadow:0 12px 28px rgba(0,0,0,.09); }
.theme-card { transition:transform .22s ease,box-shadow .22s ease; cursor:pointer; }
.theme-card:hover { transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.10); }

.focus-ring:focus-visible { outline:2px solid var(--fpwc-gold); outline-offset:3px; }

.fade-up { opacity:0; transform:translateY(16px); animation:fadeUp .7s ease forwards; }
.delay-1 { animation-delay:.10s; } .delay-2 { animation-delay:.20s; }
.delay-3 { animation-delay:.30s; } .delay-4 { animation-delay:.42s; }
@keyframes fadeUp { to { opacity:1; transform:translateY(0); } }

.t-kicker  { font-size:11px; font-weight:700; letter-spacing:.18em; }
.t-nav     { font-size:12px; font-weight:500; letter-spacing:.06em; }
.t-eyebrow { font-size:12px; font-weight:700; letter-spacing:.2em; }
.t-meta    { font-size:13px; font-weight:500; }
.t-body    { font-size:16px; font-weight:400; line-height:1.8; }
.t-body-sm { font-size:15px; font-weight:400; line-height:1.75; }
.t-body-xs { font-size:14px; font-weight:400; line-height:1.7; }
.t-tag     { font-size:10px; font-weight:700; letter-spacing:.12em; }
.t-footer  { font-size:13px; font-weight:400; }
.t-privacy { font-size:12px; font-weight:400; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 22px; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; cursor:pointer; border:none; border-radius:4px; transition:background .18s ease,border-color .18s ease; }
.btn-gold   { background:var(--fpwc-gold);  color:#0d1a0f; }
.btn-gold:hover   { background:#b8952e; }
.btn-forest { background:var(--fpwc-green); color:#fff; }
.btn-forest:hover { background:var(--fpwc-green2); }
.btn-ghost  { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.50); border-radius:4px; }
.btn-ghost:hover  { border-color:#fff; background:rgba(255,255,255,.08); }

.stat-number { font-size:2.8rem; font-weight:700; color:var(--fpwc-green); line-height:1; }

.hero-h1  { font-size:clamp(1.5rem,3.5vw,2.6rem); font-weight:500; line-height:1.12; color:rgba(255,255,255,.88); }
.hero-sub { font-size:clamp(2rem,4.5vw,3.8rem); font-weight:800; line-height:1.04; color:#fff; letter-spacing:-.01em; }

.section-h2    { font-size:clamp(1.8rem,3.5vw,2.8rem); font-weight:700; line-height:1.1; letter-spacing:-.01em; }
.section-h2-lg { font-size:clamp(2rem,4vw,3.2rem);   font-weight:800; line-height:1.05; letter-spacing:-.02em; }

.brand-mark-text { font-size:13px; font-weight:700; letter-spacing:.12em; }
.brand-name-text { font-size:11px; letter-spacing:.12em; font-weight:500; }
.brand-sub-text  { font-size:10px; }
.wg-org  { font-size:17px; font-weight:600; }
.theme-code { font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.form-label { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.form-success { font-size:14px; font-weight:600; }
.pdf-tag { font-size:12px; font-weight:700; letter-spacing:.1em; }
.contact-heading-sm { font-size:19px; font-weight:600; }
.speaker-name { font-size:17px; font-weight:600; }

.partner-logo-box { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:22px 16px; border:1px solid var(--fpwc-line); background:#fff; min-height:100px; transition:box-shadow .2s ease; }
.partner-logo-box:hover { box-shadow:0 4px 16px rgba(0,0,0,.07); }
.partner-logo-img { max-width:120px; max-height:48px; width:auto; height:auto; object-fit:contain; }
.partner-logo-name { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--fpwc-green); text-align:center; }

.theme-arrow { transition:transform .2s ease; }
.theme-card:hover .theme-arrow { transform:translateX(4px); }

.speakers-section-title { font-size:clamp(1.3rem,2.5vw,1.8rem); font-weight:700; color:var(--fpwc-green); border-bottom:2px solid var(--fpwc-gold); padding-bottom:10px; margin-bottom:26px; }

.wg-detail { display:none; }
.wg-detail.active { display:block; }

.fpwc-footer { background:var(--fpwc-black); color:rgba(255,255,255,.72); }
.fpwc-footer a { color:rgba(255,255,255,.60); text-decoration:none; transition:color .15s ease; }
.fpwc-footer a:hover { color:#fff; }
.fpwc-footer-heading { font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.35); margin-bottom:14px; }
.fpwc-footer-link { font-size:13px; line-height:2.1; }
