/*
Theme Name: Teen IGF
Theme URI: https://www.teenigf.org
Author: Teen IGF
Description: Official theme for Teen IGF - Internet Governance Forum for Teens. Includes custom post types for Events, Resources and Advisors, security hardening, and functional contact/get-involved/newsletter forms.
Version: 2.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: teenigf
*/

:root{
  --navy:#16233b;
  --blue:#173d99;
  --blue-accent:#2757d6;
  --green:#2fa84f;
  --purple:#7c5cf5;
  --orange:#f2822e;
  --bg-soft:#eef4fc;
  --text-muted:#5b6b85;
  --border:#e4e9f3;
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Manrope',Arial,sans-serif;background:#fff;color:var(--navy);line-height:1.5;}
a{color:var(--blue-accent);text-decoration:none;}
a:hover{color:var(--blue);}
img{max-width:100%;display:block;}
.container{max-width:1280px;margin:0 auto;padding:0 clamp(16px,4vw,32px);}
h1,h2,h3{margin:0;}
.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:26px;font-size:14.5px;font-weight:700;cursor:pointer;padding:13px 24px;font-family:inherit;}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{background:#0f2c78;color:#fff;}
.btn-outline{background:#fff;color:var(--blue);border:1.5px solid #c7d4ef;}
.btn-outline:hover{background:#f2f6fd;color:var(--blue);}

/* Header */
.site-header{display:flex;align-items:center;justify-content:space-between;padding:20px 0;gap:24px;flex-wrap:wrap;}
.site-logo{display:flex;align-items:center;gap:12px;}
.site-logo img{width:52px;height:52px;object-fit:contain;flex:none;}
.site-title{font-size:20px;font-weight:800;letter-spacing:.5px;line-height:1;color:var(--navy);}
.site-tagline{font-size:11px;color:var(--text-muted);line-height:1.3;margin-top:2px;}
.main-nav{display:flex;gap:clamp(10px,2vw,26px);align-items:center;flex-wrap:wrap;}
.main-nav ul{list-style:none;display:flex;gap:clamp(10px,2vw,26px);margin:0;padding:0;flex-wrap:wrap;}
.main-nav a{font-size:14.5px;font-weight:600;color:var(--navy);padding-bottom:4px;}
.main-nav .current-menu-item > a{color:var(--blue);border-bottom:2px solid var(--blue);}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;}
@media (max-width:860px){
  .nav-toggle{display:block;}
  .main-nav{display:none;width:100%;order:3;}
  .main-nav.open{display:block;}
  .main-nav ul{flex-direction:column;gap:4px;}
}

/* Hero */
.hero{background:linear-gradient(180deg,var(--bg-soft),#f5f8fd);border-radius:28px;padding:clamp(28px,5vw,56px) clamp(20px,4vw,48px);display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:40px;align-items:center;margin-top:8px;position:relative;overflow:hidden;}
.hero h1{font-size:clamp(30px,4.2vw,46px);line-height:1.12;font-weight:800;margin:0 0 20px;}
.hero p{font-size:16px;line-height:1.6;color:var(--text-muted);max-width:460px;margin:0 0 28px;}
.hero-media{position:relative;height:clamp(300px,38vw,420px);min-width:280px;border-radius:24px;overflow:hidden;background:#dfe8f7;}
.hero-media img{width:100%;height:100%;object-fit:cover;}
.badge{position:absolute;color:#fff;padding:9px 16px;border-radius:14px;font-size:12.5px;font-weight:700;display:flex;align-items:center;gap:8px;box-shadow:0 8px 18px rgba(0,0,0,.12);}

/* Page hero (inner pages) */
.page-hero{background:linear-gradient(180deg,var(--bg-soft),#f5f8fd);border-radius:28px;padding:clamp(28px,5vw,56px) clamp(20px,4vw,48px);margin-top:8px;text-align:center;}
.page-hero h1{font-size:clamp(28px,4.2vw,38px);font-weight:800;margin:0 0 14px;}
.page-hero p{font-size:15.5px;color:var(--text-muted);max-width:620px;margin:0 auto;line-height:1.6;}

/* Stats bar */
.stats-bar{background:var(--blue);border-radius:22px;margin-top:36px;padding:34px 28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px;}
.stat{display:flex;align-items:center;gap:14px;}
.stat-icon{width:40px;height:40px;flex:none;}
.stat-value{font-size:22px;font-weight:800;color:#fff;}
.stat-label{font-size:12.5px;color:#c3d1f0;line-height:1.3;}

/* Section titles */
.section-title{font-size:26px;font-weight:800;margin:0 0 4px;}
.section-rule{width:46px;height:4px;background:var(--blue-accent);border-radius:2px;margin-bottom:20px;}
.section-rule.center{margin:0 auto 20px;}

/* Grids */
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:40px;align-items:start;}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;}
/* Homepage "What We Do": always a tidy 2x2 inside its half-width column */
.what-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch;}
@media (max-width:520px){.what-grid{grid-template-columns:minmax(0,1fr);}}

.why-item{display:flex;gap:16px;margin-bottom:24px;}
.why-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;}
.why-item h3{font-size:15.5px;font-weight:700;margin-bottom:4px;}
.why-item p{font-size:13.5px;color:var(--text-muted);line-height:1.5;margin:0;}

.what-card{border-radius:16px;padding:22px;display:flex;flex-direction:column;min-width:0;overflow-wrap:break-word;transition:transform .2s ease,box-shadow .2s ease;}
.what-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(22,35,59,.08);}
.what-card .icon-wrap{width:38px;height:38px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:14px;flex:none;font-size:18px;line-height:1;}
.what-card h3{font-size:15px;font-weight:700;margin:0 0 6px;line-height:1.3;text-wrap:pretty;}
.what-card p{font-size:12.5px;color:var(--text-muted);line-height:1.55;margin:0;text-wrap:pretty;}

/* Quote banner */
.quote-banner{background:var(--navy);border-radius:24px;margin-top:64px;padding:44px 40px;}
.quote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;align-items:start;}
.quote-banner blockquote{font-size:19px;font-weight:700;color:#fff;line-height:1.4;margin:0 0 10px;}
.quote-mark{font-size:40px;color:#3a67d0;font-weight:800;line-height:.6;margin-bottom:10px;}
.quote-item{text-align:center;}
.quote-item svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:1.5;stroke-linecap:round;margin-bottom:12px;}
.quote-item h4{font-size:15px;font-weight:700;color:#fff;margin:0 0 6px;}
.quote-item p{font-size:12px;color:#9fb0d4;line-height:1.4;margin:0;}

/* Cards (events/resources/news) */
.card{border:1.5px solid var(--border);border-radius:16px;overflow:hidden;}
.card-body{padding:20px;}
.card-thumb{width:100%;height:160px;object-fit:cover;background:#dfe8f7;}
.tag{font-size:11px;font-weight:700;padding:4px 10px;border-radius:10px;display:inline-block;}
.event-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;border:1.5px solid var(--border);border-radius:16px;padding:20px 24px;margin-bottom:16px;background:#fff;transition:box-shadow .2s ease,transform .2s ease;}
.event-row:hover{box-shadow:0 8px 24px rgba(22,35,59,.08);}
.event-body{min-width:0;}
.event-cta{justify-self:end;}
.event-row-compact{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;margin-bottom:12px;}
@media (max-width:640px){
  .event-row{grid-template-columns:auto minmax(0,1fr);}
  .event-cta{grid-column:1 / -1;justify-self:start;}
}
.event-date{background:var(--bg-soft);border-radius:12px;padding:12px 16px;text-align:center;flex:none;width:70px;}
.event-date .month{font-size:11.5px;font-weight:700;color:var(--blue-accent);}
.event-date .day{font-size:24px;font-weight:800;}

/* Bottom four column */
.bottom-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px;margin-top:60px;}
.bottom-cols h4{font-size:16px;font-weight:800;margin-bottom:16px;}
.advisor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:10px;margin-bottom:16px;}
.advisor-photo{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;background:#dfe8f7;}

/* Forms */
.form-card{background:var(--bg-soft);border-radius:20px;padding:32px;}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:14px;}
.form-input,.form-textarea{width:100%;background:#fff;border:1.5px solid var(--border);padding:12px 14px;border-radius:10px;font-size:13px;outline:none;font-family:inherit;}
.form-textarea{resize:vertical;}
.form-note{font-size:12px;margin-top:10px;}
.form-note.success{color:var(--green);}
.form-note.error{color:#c0392b;}
.honeypot{position:absolute;left:-9999px;}

/* Footer */
.site-footer{background:var(--navy);border-radius:24px;margin:60px 0 32px;padding:clamp(24px,4vw,44px) clamp(20px,4vw,40px) 24px;color:#fff;}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;}
.footer-grid h4{font-size:13.5px;font-weight:700;margin-bottom:14px;}
.footer-grid a{color:#c3d1f0;font-size:12.5px;}
.footer-links li{list-style:none;margin-bottom:10px;}
.footer-links{padding:0;margin:0;}
.newsletter-form{display:flex;background:#22304d;border-radius:22px;padding:5px 5px 5px 16px;align-items:center;}
.newsletter-form input{background:none;border:none;color:#fff;font-size:12.5px;flex:1;outline:none;font-family:inherit;}
.newsletter-form button{width:32px;height:32px;border-radius:50%;background:var(--blue-accent);border:none;color:#fff;cursor:pointer;flex:none;}
.footer-bottom{border-top:1px solid #2a3a5c;margin-top:32px;padding-top:18px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.social-icons{display:flex;gap:14px;}
.social-icons a{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.social-icons svg{width:16px;height:16px;}
.footer-fine{font-size:11.5px;color:#8a97ad;}

section{margin-top:60px;}
section:first-child{margin-top:8px;}

/* ---------- Single event page ---------- */
.event-single{max-width:1120px;margin:0 auto 40px;}
.event-hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.9fr);gap:32px;align-items:start;padding:28px 0 34px;border-bottom:1.5px solid var(--border);}
.event-hero h1{font-size:clamp(26px,3.4vw,40px);font-weight:800;line-height:1.15;margin:0 0 12px;color:var(--navy);text-wrap:pretty;}
.event-lede{font-size:15.5px;line-height:1.65;color:var(--text-muted);margin:0 0 22px;max-width:62ch;}
.event-flags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.event-flag{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 11px;border-radius:999px;}
.event-flag.is-live{background:#e3f5e8;color:#237a3e;}
.event-flag.is-past{background:#eef1f6;color:#5b6b8a;}
.event-flag.is-muted{background:#e7edfb;color:#1f4bb8;}
.event-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px 26px;margin:0;padding:20px 0 0;border-top:1px solid var(--border);}
.event-facts dt{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a97ad;margin-bottom:5px;}
.event-facts dd{margin:0;font-size:14px;font-weight:600;color:var(--navy);line-height:1.45;}
.event-register{border:1.5px solid var(--border);border-radius:16px;overflow:hidden;background:#fff;position:sticky;top:20px;}
.event-register-img{width:100%;height:150px;object-fit:cover;display:block;background:#dfe8f7;}
.event-register-body{padding:20px;}
.event-register-label{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-accent);margin-bottom:8px;}
.event-register-note{font-size:13px;color:var(--text-muted);line-height:1.55;margin:0 0 16px;}
.event-map-link{display:inline-block;margin-top:14px;font-size:12.5px;font-weight:700;}
.event-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,.9fr);gap:32px;padding:34px 0;}
.event-prose{font-size:15px;line-height:1.75;color:#333;}
.event-prose p{margin:0 0 16px;}
.event-panel{border:1.5px solid var(--border);border-radius:14px;padding:20px;margin-bottom:18px;}
.event-panel h3{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8a97ad;margin:0 0 12px;}
.event-panel p{font-size:13.5px;line-height:1.55;margin:0 0 4px;}
.event-panel-strong{font-weight:700;color:var(--navy);}
.event-meta-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.event-meta-list li{display:flex;justify-content:space-between;gap:14px;font-size:13px;border-bottom:1px dashed var(--border);padding-bottom:10px;}
.event-meta-list li:last-child{border-bottom:0;padding-bottom:0;}
.event-meta-list span{color:var(--text-muted);}
.event-meta-list strong{color:var(--navy);text-align:right;}
.event-committee{padding:8px 0 34px;}
.committee-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px;}
.committee-card{text-align:center;border:1.5px solid var(--border);border-radius:16px;padding:22px 16px;transition:transform .2s ease,box-shadow .2s ease;}
.committee-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(22,35,59,.08);}
.committee-card img{width:88px;height:88px;border-radius:50%;object-fit:cover;margin:0 auto 14px;display:block;background:#dfe8f7;}
.committee-initials{width:88px;height:88px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;background:linear-gradient(150deg,#e7edfb,#dff0e6);color:#1f4bb8;font-weight:800;font-size:26px;letter-spacing:.02em;}
.committee-name{font-size:14.5px;font-weight:700;color:var(--navy);line-height:1.3;}
.committee-role{font-size:12.5px;color:var(--text-muted);margin-top:4px;line-height:1.4;}
.event-more{padding-bottom:20px;}
@media (max-width:900px){
  .event-hero,.event-columns{grid-template-columns:minmax(0,1fr);}
  .event-register{position:static;}
}

/* ---------- Forms ---------- */
.form-notice{border-radius:12px;padding:14px 18px;font-size:14px;font-weight:600;margin:0 0 20px;}
.form-notice.is-ok{background:#e3f5e8;color:#1c6634;border:1.5px solid #b7e0c4;}
.form-notice.is-bad{background:#fdeceb;color:#a02a22;border:1.5px solid #f3c6c2;}
.event-register-form,.event-cert{padding:8px 0 36px;max-width:820px;}
.event-form .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:16px;}
.event-form label{display:block;}
.event-form label>span{display:block;font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.event-form input,.event-form select,.event-form textarea,.cert-form input{width:100%;font:inherit;font-size:14px;color:var(--navy);background:#fff;border:1.5px solid var(--border);border-radius:10px;padding:11px 13px;transition:border-color .15s ease,box-shadow .15s ease;}
.event-form input:focus,.event-form select:focus,.event-form textarea:focus,.cert-form input:focus{outline:none;border-color:var(--blue-accent);box-shadow:0 0 0 3px rgba(39,87,214,.15);}
.event-form .form-full{display:block;margin-bottom:18px;}
.event-form textarea{resize:vertical;min-height:96px;}
.form-consent{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.6;color:var(--text-muted);margin-bottom:20px;}
.form-consent input{width:18px;height:18px;flex:none;margin-top:2px;}
.cert-form-label{display:block;font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.cert-form-row{display:flex;gap:12px;flex-wrap:wrap;max-width:560px;}
.cert-form-row input{flex:1 1 240px;}

.footer-legal{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin:16px 0 6px;}
.footer-legal a{font-size:12.5px;color:#9fb0d4;}
.footer-legal a:hover{color:#fff;}

.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--navy);color:#fff;padding:12px 18px;border-radius:0 0 10px 0;font-size:13px;font-weight:700;}
.skip-link:focus{left:0;color:#fff;}
main:focus{outline:none;}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden;}
img{max-width:100%;height:auto;}

.btn-disabled{display:flex;width:100%;justify-content:center;background:#eef1f6;color:#8a97ad;border:1.5px solid var(--border);cursor:not-allowed;font-weight:700;font-size:13px;padding:12px 20px;border-radius:10px;}

/* ---------- Event page: breadcrumbs, format flag, learn list, agenda, speakers, contact ---------- */
.event-crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12.5px;color:var(--text-muted);margin:10px 0 4px;}
.event-crumbs a{font-weight:600;}
.event-crumbs span[aria-hidden]{opacity:.5;}
.event-flag.is-format{display:inline-flex;align-items:center;gap:6px;background:#e7edfb;color:#1f4bb8;}
.event-flag.is-format svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;}
.event-facts dd .fact-sub{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin-top:2px;}
.learn-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;}
.learn-list li{display:flex;gap:12px;align-items:flex-start;border:1.5px solid var(--border);border-radius:12px;padding:14px 16px;font-size:14px;font-weight:600;color:var(--navy);line-height:1.45;}
.learn-list svg{width:20px;height:20px;flex:none;fill:none;stroke:#2fa84f;stroke-width:2.2;margin-top:1px;}
.agenda-list{list-style:none;margin:0;padding:0;}
.agenda-list li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;padding:16px 0;border-bottom:1px solid var(--border);}
.agenda-list li:last-child{border-bottom:0;}
.agenda-time{font-size:13px;font-weight:800;color:var(--blue-accent);letter-spacing:.01em;}
.agenda-body strong{display:block;font-size:14.5px;color:var(--navy);line-height:1.4;}
.agenda-detail{display:block;font-size:13px;color:var(--text-muted);margin-top:4px;line-height:1.55;}
.event-people{padding:8px 0 34px;}
.speaker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;}
.speaker-card{display:flex;gap:16px;align-items:flex-start;border:1.5px solid var(--border);border-radius:16px;padding:20px;transition:transform .2s ease,box-shadow .2s ease;}
.speaker-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(22,35,59,.08);}
.speaker-card img{width:72px;height:72px;border-radius:50%;object-fit:cover;flex:none;background:#dfe8f7;}
.speaker-card .committee-initials{width:72px;height:72px;font-size:22px;margin:0;flex:none;}
.speaker-card .committee-name,.speaker-card .committee-role{text-align:left;}
.speaker-bio{font-size:12.5px;color:var(--text-muted);line-height:1.55;margin:8px 0 0;}
.event-register-intro{font-size:14px;color:var(--text-muted);line-height:1.65;max-width:64ch;margin:0 0 22px;}
.event-contact{padding:8px 0 34px;}
.event-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;}
.event-contact-grid>div{border:1.5px solid var(--border);border-radius:14px;padding:18px;}
.event-contact-grid span{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8a97ad;margin-bottom:8px;}
.event-contact-grid a{font-size:13.5px;font-weight:600;overflow-wrap:break-word;}
.event-contact-social>div{display:flex;gap:10px;flex-wrap:wrap;}
.event-contact-social img{width:24px;height:24px;object-fit:contain;}
@media (max-width:520px){.agenda-list li{grid-template-columns:minmax(0,1fr);gap:4px;}}
