/*
Theme Name: GAIL Forum
Theme URI: https://gailforum.com
Author: Global AI Leadership Forum
Description: Custom block theme for the Global AI Leadership Forum. Institutional, restrained, editorial. Navy / prestige palette derived from the AI Leadership Forum mark.
Version: 0.3.0
Requires at least: 6.5
Tested up to: 6.6
Requires PHP: 8.1
License: Proprietary
Text Domain: gailforum
Tags: full-site-editing, block-patterns, editor-style
*/

/* Self-hosted variable fonts — privacy-first, no Google Fonts CDN. */
@font-face {
  font-family: 'Fraunces';
  src: url('assets/fonts/fraunces.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Manrope';
  src: url('assets/fonts/manrope.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root{
  --navy-950:#050B1A;
  --navy-900:#0B1E3B;
  --navy-800:#122F5E;
  --navy-700:#1B447C;
  --navy-600:#2860A8;
  --navy-500:#4A8FD9;
  --navy-50:#EEF2F8;
  --silver:#B8C9DB;
  --gold:#C9A961;
  --ink:#0A0E1A;
  --ink-2:#1F2937;
  --ink-muted:#4A5568;
  --cream:#FAF8F3;
  --paper:#FFFFFF;
  --rule:#DDE3EC;
  --rule-2:#C7D0DE;

  --display:"Fraunces", "Times New Roman", Georgia, serif;
  --body:"Manrope", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", sans-serif;

  --max:1320px;
  --gutter:clamp(20px, 4vw, 56px);
}

/* WP body defaults */
html, body { margin:0; padding:0; }
body{
  font-family:var(--body);
  font-weight:400;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-size:16px;
  line-height:1.6;
}
img{max-width:100%;display:block}

h1,h2,h3,h4,
.wp-block-heading{
  font-family:var(--display);
  font-weight:400;
  letter-spacing:-0.02em;
  line-height:1.04;
  color:var(--ink);
}

/* WP post content readable measure */
.wp-block-post-content p,
.wp-block-post-content li { max-width: 68ch; }

/* ============== Eyebrow ============== */
.gf-eyebrow{
  font-family:var(--body);
  font-size:11px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--navy-700);
  display:inline-block;
}
.gf-eyebrow.on-dark{color:var(--silver)}

/* ============== Buttons ============== */
.gf-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 22px;
  border-radius:2px;
  font-family:var(--body);
  font-weight:500;
  font-size:13px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  transition:all .25s ease;
  cursor:pointer;
  border:1px solid transparent;
  text-decoration:none;
  line-height:1;
}
.gf-btn-primary{
  background:var(--navy-900);
  color:var(--cream);
  border-color:var(--navy-900);
}
.gf-btn-primary:hover{background:var(--navy-800);border-color:var(--navy-800);color:var(--cream)}
.gf-btn-ghost{
  background:transparent;
  color:var(--ink);
  border-color:var(--ink);
}
.gf-btn-ghost:hover{background:var(--ink);color:var(--cream)}
.gf-btn-ghost.on-dark{color:var(--cream);border-color:rgba(255,255,255,0.5)}
.gf-btn-ghost.on-dark:hover{background:var(--cream);color:var(--navy-900);border-color:var(--cream)}
.gf-btn .arrow{transition:transform .25s ease;display:inline-block}
.gf-btn:hover .arrow{transform:translateX(4px)}

/* On dark CTA band, the primary button inverts */
.gf-cta-band .gf-btn-primary{
  background:var(--cream);
  color:var(--navy-900);
  border-color:var(--cream);
}
.gf-cta-band .gf-btn-primary:hover{background:transparent;color:var(--cream);border-color:var(--cream)}

/* ============== Header ============== */
.gf-site-header{
  position:absolute;
  top:0;left:0;right:0;
  z-index:50;
  padding:24px var(--gutter);
}
body:not(.home) .gf-site-header{
  position:relative;
  background:var(--paper);
  border-bottom:1px solid var(--rule);
}
.gf-nav-wrap{
  max-width:var(--max);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.gf-logo{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}
.gf-logo-img{
  width:168px;height:168px;
  object-fit:contain;
  flex-shrink:0;
  display:block;
}
.gf-logo-text{
  font-family:var(--display);
  font-size:17px;
  letter-spacing:0.06em;
  color:var(--ink);
  line-height:1;
  text-transform:uppercase;
}
.gf-logo-text small{
  display:block;
  font-family:var(--body);
  font-size:9px;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-top:6px;
  font-weight:500;
}
.gf-nav{display:flex;align-items:center}
.gf-nav ul{
  list-style:none;margin:0;padding:0;
  display:flex;gap:36px;align-items:center;
}
.gf-nav a{
  font-family:var(--body);
  font-size:13px;
  color:var(--ink);
  letter-spacing:0.04em;
  text-decoration:none;
  transition:color .2s;
}
.gf-nav a:hover{color:var(--navy-700)}
.gf-nav-cta{
  margin-left:8px;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:600;
  border:1px solid var(--ink);
  padding:10px 18px;
  border-radius:2px;
  transition:all .2s;
}
.gf-nav-cta:hover{background:var(--ink);color:var(--cream)}
@media (max-width:880px){
  .gf-nav ul{display:none}
  .gf-nav .gf-nav-cta{display:inline-block}
  .gf-logo-img{width:112px;height:112px}
}

/* ============== Hero ============== */
.gf-hero{
  padding:160px var(--gutter) 100px;
  position:relative;
  overflow:hidden;
  background:var(--paper);
}
.gf-hero::before{
  content:"";
  position:absolute;
  top:0;right:0;
  width:60%;height:100%;
  background:radial-gradient(circle at 1px 1px, rgba(11,30,59,0.07) 1px, transparent 0) 0 0/22px 22px;
  opacity:0.55;
  pointer-events:none;
  z-index:0;
}
.gf-hero-grid{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:clamp(32px, 6vw, 90px);
  align-items:center;
  position:relative;
  z-index:1;
}
.gf-hero-text .gf-eyebrow{margin-bottom:28px}
.gf-hero h1{
  font-size:clamp(40px, 5.6vw, 78px);
  font-weight:400;
  margin:0 0 28px;
}
.gf-hero h1 em{font-style:italic;color:var(--navy-700);font-weight:400}
.gf-hero-lede{
  font-size:18px;
  line-height:1.55;
  color:var(--ink-2);
  max-width:480px;
  margin:0 0 40px;
}
.gf-hero-actions{
  display:flex;gap:14px;flex-wrap:wrap;
  margin-bottom:48px;
}
.gf-hero-meta{
  display:flex;
  gap:36px;
  padding-top:28px;
  border-top:1px solid var(--rule);
  max-width:480px;
}
.gf-hero-meta div span{
  display:block;
  font-family:var(--display);
  font-size:28px;
  color:var(--navy-900);
  line-height:1;
  margin-bottom:6px;
}
.gf-hero-meta div small{
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
}
.gf-hero-image{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  border-top-left-radius:160px;
  border-top-right-radius:8px;
  border-bottom-left-radius:8px;
  border-bottom-right-radius:8px;
}
.gf-hero-image img{
  width:100%;height:100%;
  object-fit:cover;
  filter:saturate(0.92) contrast(1.04);
}
.gf-hero-image::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(5,11,26,0.45) 100%);
}
.gf-hero-image-caption{
  position:absolute;
  bottom:32px;left:32px;
  color:var(--cream);
  font-family:var(--display);
  font-style:italic;
  font-size:14px;
  z-index:2;
  max-width:240px;
  line-height:1.4;
}
.gf-hero-image-caption::before{
  content:"";
  display:block;
  width:28px;height:1px;
  background:var(--cream);
  margin-bottom:10px;
  opacity:0.7;
}
@media (max-width:880px){
  .gf-hero{padding:130px var(--gutter) 60px}
  .gf-hero-grid{grid-template-columns:1fr;gap:48px}
  .gf-hero-image{aspect-ratio:4/4;border-top-left-radius:80px}
}

/* ============== Convene ============== */
.gf-convene{
  padding:120px var(--gutter);
  background:var(--cream);
  position:relative;
}
.gf-convene-grid{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(40px, 6vw, 100px);
  align-items:start;
}
.gf-convene-text h2{
  font-size:clamp(34px, 4.5vw, 56px);
  margin:24px 0 24px;
}
.gf-convene-text .gf-eyebrow{margin-bottom:0}
.gf-convene-text p.gf-lede{
  color:var(--ink-2);
  font-size:17px;
  line-height:1.65;
  margin-bottom:56px;
  max-width:480px;
}
.gf-features{display:flex;flex-direction:column;gap:36px}
.gf-feature{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:24px;
  padding-bottom:32px;
  border-bottom:1px solid var(--rule);
}
.gf-feature:last-child{border-bottom:none;padding-bottom:0}
.gf-feature-num{
  font-family:var(--display);
  font-style:italic;
  font-size:24px;
  color:var(--navy-700);
  line-height:1;
  padding-top:4px;
}
.gf-feature h3{
  font-family:var(--body);
  font-weight:600;
  font-size:18px;
  letter-spacing:-0.005em;
  margin:0 0 10px;
  color:var(--ink);
}
.gf-feature p{
  margin:0;
  color:var(--ink-muted);
  font-size:15px;
  line-height:1.6;
}
.gf-convene-images{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}
.gf-convene-images .gf-img-a,
.gf-convene-images .gf-img-b{
  overflow:hidden;
  border-radius:4px;
  aspect-ratio:16/10;
  box-shadow:0 12px 30px -18px rgba(11,30,59,0.35);
}
.gf-convene-images img{
  width:100%;height:100%;
  object-fit:cover;
  filter:saturate(0.95);
  display:block;
}
@media (max-width:880px){
  .gf-convene{padding:80px var(--gutter)}
  .gf-convene-grid{grid-template-columns:1fr;gap:48px}
}

/* ============== Chapters (dark navy band) ============== */
.gf-chapters{
  background:var(--navy-900);
  color:var(--cream);
  padding:110px var(--gutter);
  position:relative;
  overflow:hidden;
}
.gf-chapters::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(74,143,217,0.10) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(184,201,219,0.06) 0%, transparent 50%);
  pointer-events:none;
}
.gf-chapters-wrap{
  max-width:var(--max);
  margin:0 auto;
  position:relative;
}
.gf-chapters-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:72px;
  gap:40px;
  flex-wrap:wrap;
}
.gf-chapters-head h2{
  color:var(--cream);
  font-size:clamp(34px, 4.5vw, 52px);
  max-width:600px;
  margin:20px 0 0;
}
.gf-chapters-head h2 em{font-style:italic;color:var(--silver);font-weight:400}
.gf-chapters-head .gf-eyebrow{margin-bottom:20px;display:block}
.gf-chapters-head p{
  max-width:380px;
  color:#C5D2E1;
  font-size:15px;
  line-height:1.6;
  margin:0;
}
.gf-chapters-line{
  position:relative;
  margin-top:40px;
}
.gf-chapters-line::before{
  content:"";
  position:absolute;
  top:20px;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,transparent 0%, rgba(184,201,219,0.4) 10%, rgba(184,201,219,0.4) 90%, transparent 100%);
}
.gf-chapters-row{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
  position:relative;
}
.gf-chapter{
  position:relative;
  padding-top:54px;
  text-decoration:none;
  color:inherit;
  display:block;
}
.gf-chapter::before{
  content:"";
  position:absolute;
  top:14px;left:0;
  width:13px;height:13px;
  border-radius:50%;
  background:var(--navy-900);
  border:1.5px solid var(--silver);
  transition:transform .25s, border-color .25s;
}
.gf-chapter::after{
  content:"";
  position:absolute;
  top:18px;left:4px;
  width:5px;height:5px;
  border-radius:50%;
  background:var(--silver);
  transition:background .25s;
}
.gf-chapter:hover::before{transform:scale(1.2);border-color:var(--navy-500)}
.gf-chapter:hover::after{background:var(--navy-500)}
.gf-chapter .gf-city{
  font-family:var(--display);
  font-size:22px;
  color:var(--cream);
  margin-bottom:6px;
  font-style:italic;
  transition:color .25s;
}
.gf-chapter:hover .gf-city{color:#fff}
.gf-chapter .gf-country{
  font-size:11px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--silver);
  margin-bottom:14px;
  font-weight:600;
}
.gf-chapter .gf-desc{
  font-size:14px;
  color:#C5D2E1;
  line-height:1.55;
}
.gf-chapter .gf-status{
  display:inline-block;
  font-size:10px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  margin-top:14px;
  padding:4px 10px;
  border:1px solid rgba(184,201,219,0.3);
  border-radius:2px;
  color:var(--silver);
}
@media (max-width:880px){
  .gf-chapters-row{grid-template-columns:1fr 1fr;gap:48px 24px}
  .gf-chapters-line::before{display:none}
}
@media (max-width:520px){
  .gf-chapters-row{grid-template-columns:1fr}
}

/* ============== Feature stack ============== */
.gf-features-stack{
  padding:120px var(--gutter);
  background:var(--paper);
}
.gf-feat-block{
  max-width:var(--max);
  margin:0 auto 100px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px, 5vw, 80px);
  align-items:center;
}
.gf-feat-block:last-child{margin-bottom:0}
.gf-feat-block.reverse{direction:rtl}
.gf-feat-block.reverse > *{direction:ltr}
.gf-feat-image{
  aspect-ratio:5/4;
  overflow:hidden;
  border-radius:4px;
  position:relative;
}
.gf-feat-image img{
  width:100%;height:100%;
  object-fit:cover;
}
.gf-feat-image-tag{
  position:absolute;
  top:24px;left:24px;
  background:var(--cream);
  padding:8px 14px;
  border-radius:2px;
  font-size:10px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--navy-900);
}
.gf-feat-body .gf-eyebrow{margin-bottom:20px}
.gf-feat-body h2{
  font-size:clamp(30px, 3.8vw, 44px);
  margin:0 0 24px;
}
.gf-feat-body h2 em{color:var(--navy-700);font-style:italic;font-weight:400}
.gf-feat-body p{
  color:var(--ink-2);
  font-size:16px;
  line-height:1.7;
  margin:0 0 18px;
  max-width:480px;
}
.gf-feat-list{
  list-style:none;
  padding:0;
  margin:24px 0 32px;
  max-width:480px;
}
.gf-feat-list li{
  padding:14px 0;
  border-bottom:1px solid var(--rule);
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:14px;
  color:var(--ink-2);
}
.gf-feat-list li span{
  font-family:var(--display);
  font-style:italic;
  color:var(--navy-700);
}
@media (max-width:880px){
  .gf-features-stack{padding:80px var(--gutter)}
  .gf-feat-block, .gf-feat-block.reverse{grid-template-columns:1fr;direction:ltr}
  .gf-feat-block{margin-bottom:72px}
}

/* ============== CTA band ============== */
.gf-cta-band{
  background:var(--navy-900);
  color:var(--cream);
  padding:80px var(--gutter);
  position:relative;
  overflow:hidden;
}
.gf-cta-band::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 80% 50%, rgba(74,143,217,0.12) 0%, transparent 60%);
  pointer-events:none;
}
.gf-cta-wrap{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:60px;
  align-items:center;
  position:relative;
}
.gf-cta-wrap h2{
  color:var(--cream);
  font-size:clamp(28px, 3.5vw, 40px);
  max-width:560px;
  margin:18px 0 0;
}
.gf-cta-wrap h2 em{font-style:italic;color:var(--silver);font-weight:400}
.gf-cta-wrap p{
  color:#C5D2E1;
  margin:18px 0 0;
  max-width:560px;
  font-size:15px;
  line-height:1.6;
}
.gf-cta-actions{
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:flex-start;
}
.gf-cta-note{
  font-size:12px;
  color:var(--silver);
  letter-spacing:0.04em;
  line-height:1.5;
  max-width:300px;
}
@media (max-width:880px){
  .gf-cta-wrap{grid-template-columns:1fr;gap:32px}
}

/* ============== Contact ============== */
.gf-contact{
  padding:120px var(--gutter);
  background:var(--cream);
}
.gf-contact-grid{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:clamp(32px,6vw,80px);
  align-items:start;
}
.gf-contact-text .gf-eyebrow{margin-bottom:20px}
.gf-contact-text h2{
  font-size:clamp(34px,4.5vw,52px);
  margin:0 0 24px;
}
.gf-contact-text h2 em{color:var(--navy-700);font-style:italic;font-weight:400}
.gf-contact-text p{
  color:var(--ink-2);
  font-size:16px;
  line-height:1.7;
  margin:0 0 36px;
  max-width:480px;
}
.gf-contact-channels{
  border-top:1px solid var(--rule);
}
.gf-contact-channel{
  padding:22px 0;
  border-bottom:1px solid var(--rule);
  display:grid;
  grid-template-columns:140px 1fr;
  gap:24px;
  align-items:baseline;
}
.gf-contact-channel .gf-label{
  font-size:11px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:600;
}
.gf-contact-channel .gf-value{
  font-family:var(--display);
  font-size:18px;
  color:var(--ink);
}
.gf-contact-channel .gf-value small{
  display:block;
  font-family:var(--body);
  font-size:13px;
  color:var(--ink-muted);
  margin-top:4px;
}
.gf-contact-form{
  background:var(--paper);
  padding:48px;
  border:1px solid var(--rule);
  border-radius:4px;
}
.gf-contact-form h3{
  font-family:var(--display);
  font-size:24px;
  margin:0 0 8px;
  font-weight:400;
}
.gf-contact-form > p{
  font-size:13px;
  color:var(--ink-muted);
  margin:0 0 32px;
}
.gf-field{margin-bottom:20px}
.gf-field label{
  display:block;
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:600;
  margin-bottom:8px;
}
.gf-field input, .gf-field textarea, .gf-field select{
  width:100%;
  padding:14px 0;
  border:none;
  border-bottom:1px solid var(--rule-2);
  background:transparent;
  font-family:var(--body);
  font-size:15px;
  color:var(--ink);
  transition:border-color .2s;
  outline:none;
  border-radius:0;
}
.gf-field input:focus, .gf-field textarea:focus, .gf-field select:focus{
  border-bottom-color:var(--navy-700);
}
.gf-field textarea{min-height:80px;resize:vertical;padding-top:8px}
.gf-field-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.gf-form-note{
  font-size:11px;
  color:var(--ink-muted);
  margin-top:20px;
  line-height:1.5;
}
@media (max-width:880px){
  .gf-contact{padding:80px var(--gutter)}
  .gf-contact-grid{grid-template-columns:1fr;gap:48px}
  .gf-contact-form{padding:32px}
  .gf-field-row{grid-template-columns:1fr}
  .gf-contact-channel{grid-template-columns:1fr;gap:6px}
}

/* ============== Footer ============== */
.gf-site-footer{
  background:var(--navy-950);
  color:var(--silver);
  padding:80px var(--gutter) 40px;
}
.gf-footer-wrap{
  max-width:var(--max);
  margin:0 auto;
}
.gf-footer-top{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:48px;
  padding-bottom:56px;
  border-bottom:1px solid rgba(184,201,219,0.15);
}
.gf-footer-brand .gf-logo-img{filter:none}
.gf-footer-brand .gf-logo-text{color:var(--cream)}
.gf-footer-brand .gf-logo-text small{color:var(--silver)}
.gf-footer-brand p{
  color:var(--silver);
  font-size:13px;
  line-height:1.6;
  margin:24px 0 0;
  max-width:300px;
}
.gf-footer-col h4{
  font-family:var(--body);
  font-size:11px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--cream);
  font-weight:600;
  margin:0 0 20px;
}
.gf-footer-col ul{
  list-style:none;
  margin:0;padding:0;
}
.gf-footer-col li{margin-bottom:12px}
.gf-footer-col a{
  color:var(--silver);
  font-size:14px;
  text-decoration:none;
  transition:color .2s;
}
.gf-footer-col a:hover{color:var(--cream)}
.gf-footer-bottom{
  padding-top:32px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;
  font-size:12px;
  color:var(--silver);
  letter-spacing:0.04em;
}
.gf-footer-bottom a{color:var(--silver);text-decoration:none}
.gf-footer-bottom a:hover{color:var(--cream)}
@media (max-width:880px){
  .gf-footer-top{grid-template-columns:1fr 1fr;gap:40px}
}
@media (max-width:520px){
  .gf-footer-top{grid-template-columns:1fr}
}

/* ============== Reveal animation ============== */
.gf-reveal{
  opacity:0;
  transform:translateY(20px);
  transition:opacity 1s cubic-bezier(.2,.6,.2,1), transform 1s cubic-bezier(.2,.6,.2,1);
}
.gf-reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .gf-reveal{opacity:1;transform:none;transition:none}
}
.no-js .gf-reveal{opacity:1;transform:none}

/* ============== Inner page chrome ============== */
.gf-inner-main{
  max-width:var(--max);
  margin:0 auto;
  padding:80px var(--gutter);
}
.gf-inner-main a{color:var(--navy-700)}
.gf-inner-main a:hover{color:var(--ink)}

/* ============== Inner page hero (sub-pages) ============== */
.gf-page-hero{
  background:var(--navy-900);
  color:var(--cream);
  padding:120px var(--gutter) 80px;
  position:relative;
  overflow:hidden;
}
.gf-page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 75% 30%, rgba(74,143,217,0.18) 0%, transparent 55%),
    radial-gradient(circle at 15% 80%, rgba(40,96,168,0.12) 0%, transparent 50%);
  pointer-events:none;
}
.gf-page-hero-wrap{
  max-width:var(--max);
  margin:0 auto;
  position:relative;
}
.gf-page-hero .gf-eyebrow{color:var(--silver);margin-bottom:24px}
.gf-page-hero h1{
  font-size:clamp(40px, 5.2vw, 68px);
  color:var(--cream);
  max-width:880px;
  margin:0 0 24px;
}
.gf-page-hero h1 em{font-style:italic;color:var(--silver);font-weight:400}
.gf-page-hero p{
  font-size:18px;
  color:#C5D2E1;
  max-width:680px;
  line-height:1.6;
  margin:0;
}
.gf-breadcrumb{
  font-size:11px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--silver);
  margin-bottom:24px;
}
.gf-breadcrumb a{color:var(--silver);text-decoration:none}
.gf-breadcrumb a:hover{color:var(--cream)}
.gf-breadcrumb .sep{margin:0 12px;opacity:0.5}

/* ============== Inner page sections ============== */
.gf-section{padding:100px var(--gutter)}
.gf-section.alt{background:var(--cream)}
.gf-section-wrap{max-width:var(--max);margin:0 auto}
.gf-section h2{
  font-size:clamp(30px,3.6vw,44px);
  margin:0 0 24px;
  max-width:720px;
}
.gf-section h2 em{font-style:italic;color:var(--navy-700);font-weight:400}
.gf-section .gf-eyebrow{margin-bottom:18px}
.gf-section p.lede{
  font-size:18px;color:var(--ink-2);line-height:1.65;
  max-width:680px;margin:0 0 48px;
}
.gf-section p{color:var(--ink-2);font-size:16px;line-height:1.75;max-width:680px}
.gf-prose > * + *{margin-top:1.1em}
.gf-prose h3{
  font-family:var(--display);
  font-size:24px;
  font-weight:500;
  margin-top:2em;
}
.gf-prose ul{padding-left:20px;color:var(--ink-2)}
.gf-prose ul li{margin:8px 0;line-height:1.7}

/* Two-column layout */
.gf-two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,80px);
  align-items:start;
}
.gf-two-col.image-right .gf-col-image{order:2}
.gf-col-image{
  aspect-ratio:5/4;
  overflow:hidden;
  border-radius:4px;
  position:relative;
}
.gf-col-image img{width:100%;height:100%;object-fit:cover}
@media (max-width:880px){
  .gf-section{padding:64px var(--gutter)}
  .gf-two-col{grid-template-columns:1fr;gap:40px}
  .gf-two-col.image-right .gf-col-image{order:0}
}

/* Stats row */
.gf-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px;
  padding:48px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.gf-stats div span{
  display:block;
  font-family:var(--display);
  font-size:36px;
  color:var(--navy-900);
  line-height:1;
  margin-bottom:8px;
}
.gf-stats div small{
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink-muted);
  font-weight:500;
}
@media (max-width:680px){
  .gf-stats{grid-template-columns:1fr 1fr;gap:32px 24px}
}

/* Chapter detail card (used on /chapters/) */
.gf-chap-card{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:48px;
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:4px;
  padding:40px;
  margin-bottom:32px;
  align-items:center;
  transition:border-color .25s, transform .25s;
  text-decoration:none;
  color:inherit;
}
.gf-chap-card:hover{border-color:var(--navy-700);transform:translateY(-2px)}
.gf-chap-card .gf-chap-image{
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:3px;
}
.gf-chap-card .gf-chap-image img{width:100%;height:100%;object-fit:cover}
.gf-chap-card h3{
  font-family:var(--display);
  font-size:32px;
  font-weight:400;
  margin:0 0 4px;
  color:var(--ink);
}
.gf-chap-card .country{
  font-size:11px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--navy-700);
  font-weight:600;
  margin-bottom:16px;
  display:block;
}
.gf-chap-card p{
  color:var(--ink-2);
  font-size:15px;
  line-height:1.65;
  margin:0 0 20px;
}
.gf-chap-card .gf-status{
  display:inline-block;
  font-size:10px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  padding:4px 10px;
  border:1px solid var(--rule-2);
  border-radius:2px;
  color:var(--navy-700);
  font-weight:600;
}
@media (max-width:680px){
  .gf-chap-card{grid-template-columns:1fr;padding:24px;gap:24px}
}

/* ============== Block-style hooks (kept for editor parity) ============== */
.is-style-gf-eyebrow{
  font-family:var(--body) !important;
  font-size:11px !important;
  text-transform:uppercase;
  letter-spacing:0.22em;
  color:var(--navy-700);
  font-weight:600;
}
.is-style-gf-vellum{background:var(--cream);padding:2rem}
.is-style-gf-rule-top{border-top:1px solid var(--rule);padding-top:2rem}
.is-style-gf-thin{background:var(--rule) !important;height:1px !important;border:none !important}

/* Screen reader text */
.screen-reader-text{position:absolute !important;left:-10000px !important}

/* Print */
@media print{
  .gf-site-header, .gf-site-footer, .gf-cta-band, .gf-contact-form{display:none}
  body{color:#000;background:#fff}
}
