/* GEOEACE 2027 Conference Page — scoped plugin styles
   Every selector is scoped under .g2027-wrap so the plugin cannot leak
   styles into (or be overridden by) the active theme. */

.g2027-wrap{
  --g2027-ink:#221E1B;
  --g2027-ink-soft:#3A342E;
  --g2027-stone:#EDE7DA;
  --g2027-stone-dark:#DBD1BB;
  --g2027-paper:#FBF8F2;
  --g2027-ember:#B8461E;
  --g2027-ember-dark:#8A3216;
  --g2027-teal:#1F6F6C;
  --g2027-teal-tint:#DCEBE8;
  --g2027-gold:#B3872F;
  --g2027-line: rgba(34,30,27,0.14);
  --g2027-font-display:'Fraunces', Georgia, 'Times New Roman', serif;
  --g2027-font-body:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --g2027-font-mono:'IBM Plex Mono', 'Courier New', monospace;

  background: var(--g2027-paper);
  color: var(--g2027-ink);
  font-family: var(--g2027-font-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
.g2027-wrap, .g2027-wrap *, .g2027-wrap *::before, .g2027-wrap *::after{ box-sizing: border-box; }
.g2027-wrap a{ color: inherit; }
.g2027-wrap ul{ margin: 0; padding: 0; }
.g2027-wrap img{ max-width: 100%; height: auto; }
.g2027-wrapinner{ max-width: 1080px; margin: 0 auto; padding: 0 32px; }

.g2027-wrap .g2027-eyebrow,
.g2027-wrap .g2027-section-num,
.g2027-wrap .g2027-label,
.g2027-wrap .g2027-tnum,
.g2027-wrap .g2027-dtag,
.g2027-wrap .g2027-ptag,
.g2027-wrap .g2027-chip,
.g2027-wrap .g2027-tprice,
.g2027-wrap .g2027-i,
.g2027-wrap .g2027-l,
.g2027-wrap .g2027-fcontact{
  font-family: var(--g2027-font-mono);
}
.g2027-wrap h1, .g2027-wrap h2, .g2027-wrap h3, .g2027-wrap .g2027-fname, .g2027-wrap .g2027-tname, .g2027-wrap .g2027-n, .g2027-wrap .g2027-dnum{
  font-family: var(--g2027-font-display);
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.g2027-wrap h2{ font-size: clamp(28px,3.4vw,38px); }
.g2027-wrap h3{ font-size: 19px; font-weight: 600; }
.g2027-wrap p{ margin: 0; }

/* ---------- HERO ---------- */
.g2027-hero{ position: relative; background: var(--g2027-ink); color: var(--g2027-stone); overflow: hidden; padding: 64px 0 0; }
.g2027-contours{ position: absolute; inset: 0; width: 100%; height: 100%; opacity: .5; pointer-events: none; }
.g2027-hero-inner{ position: relative; z-index: 1; }
.g2027-host-badge{ display: flex; align-items: center; gap: 10px; font-size: 12.5px; letter-spacing: .08em; color: var(--g2027-stone-dark); text-transform: uppercase; margin-bottom: 40px; }
.g2027-host-badge .g2027-dot{ width: 6px; height: 6px; border-radius: 50%; background: var(--g2027-ember); flex-shrink: 0; }
.g2027-hero h1{ font-size: clamp(46px,8vw,84px); line-height: .98; color: var(--g2027-paper); margin-bottom: 6px; }
.g2027-subtitle{ font-family: var(--g2027-font-display); font-weight: 400; font-style: italic; font-size: clamp(18px,2.4vw,24px); color: var(--g2027-stone-dark); max-width: 640px; margin-bottom: 36px; }
.g2027-hero-meta{ display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(237,231,218,0.2); margin-top: 8px; }
.g2027-hero-meta div{ padding: 20px 20px 28px 0; border-right: 1px solid rgba(237,231,218,0.2); }
.g2027-hero-meta div:last-child{ border-right: none; }
.g2027-label{ font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--g2027-stone-dark); opacity: .75; margin-bottom: 8px; display: block; }
.g2027-val{ font-size: 16.5px; color: var(--g2027-paper); font-weight: 500; }
.g2027-hero-cta{ display: flex; flex-wrap: wrap; gap: 14px; padding: 32px 0 40px; }
.g2027-btn{ font-family: var(--g2027-font-body); font-weight: 500; font-size: 14.5px; padding: 13px 22px; border-radius: 2px; text-decoration: none; display: inline-block; border: 1px solid transparent; cursor: pointer; transition: opacity .15s ease; }
.g2027-btn:hover{ opacity: .85; }
.g2027-btn-primary{ background: var(--g2027-ember); color: var(--g2027-paper); }
.g2027-btn-ghost{ border-color: rgba(237,231,218,0.4); color: var(--g2027-paper); }
.g2027-strata{ display: block; width: 100%; height: 34px; }

/* ---------- SECTIONS ---------- */
.g2027-wrap section, .g2027-hero, footer#g2027-contact{ padding: 76px 0; }
.g2027-alt-bg{ background: var(--g2027-stone); }
.g2027-section-head{ display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 36px; border-bottom: 1px solid var(--g2027-line); padding-bottom: 20px; flex-wrap: wrap; }
.g2027-section-num{ font-size: 13px; color: var(--g2027-ember); white-space: nowrap; }

/* about */
.g2027-about-grid{ display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: start; }
.g2027-about-grid p{ font-size: 16.5px; color: var(--g2027-ink-soft); margin-bottom: 16px; }
.g2027-stat-col{ display: flex; flex-direction: column; gap: 22px; }
.g2027-stat{ border-left: 2px solid var(--g2027-ember); padding-left: 16px; }
.g2027-n{ font-size: 30px; }
.g2027-l{ font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--g2027-ink-soft); }

/* theme quote */
.g2027-theme{ background: var(--g2027-teal); color: var(--g2027-teal-tint); padding: 70px 0; }
.g2027-theme blockquote{ font-family: var(--g2027-font-display); font-style: italic; font-weight: 500; font-size: clamp(24px,3.4vw,36px); line-height: 1.28; margin: 0 0 20px; color: #fff; max-width: 820px; }
.g2027-theme cite{ font-style: normal; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }

/* objectives */
.g2027-obj-list{ display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--g2027-line); list-style: none; }
.g2027-obj-list li{ list-style: none; padding: 22px 20px 22px 0; border-bottom: 1px solid var(--g2027-line); font-size: 15.5px; color: var(--g2027-ink-soft); display: flex; gap: 14px; }
.g2027-obj-list li:nth-child(odd){ border-right: 1px solid var(--g2027-line); padding-right: 28px; }
.g2027-obj-list li:nth-child(even){ padding-left: 28px; }
.g2027-i{ color: var(--g2027-ember); font-size: 13px; flex-shrink: 0; padding-top: 3px; }

/* tracks */
.g2027-track-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--g2027-line); border: 1px solid var(--g2027-line); }
.g2027-track{ background: var(--g2027-paper); padding: 26px 24px; min-height: 170px; }
.g2027-tnum{ font-size: 12px; color: var(--g2027-ember); margin-bottom: 10px; display: block; }
.g2027-track h3{ margin-bottom: 8px; font-size: 17px; }
.g2027-track p{ font-size: 13.8px; color: var(--g2027-ink-soft); }

/* regions */
.g2027-region-row{ display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.g2027-chip{ font-size: 12.5px; padding: 8px 14px; border: 1px solid var(--g2027-line); border-radius: 2px; color: var(--g2027-ink-soft); display: inline-block; }
.g2027-region-note{ font-size: 15px; color: var(--g2027-ink-soft); max-width: 760px; display: block; }

/* timeline */
.g2027-timeline{ display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid var(--g2027-line); border-left: 1px solid var(--g2027-line); }
.g2027-day{ border-right: 1px solid var(--g2027-line); border-bottom: 1px solid var(--g2027-line); padding: 22px 18px; min-height: 210px; position: relative; }
.g2027-dnum{ font-size: 26px; color: var(--g2027-ember); display: block; margin-bottom: 10px; }
.g2027-dtag{ font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--g2027-gold); display: block; margin-bottom: 10px; }
.g2027-day p{ font-size: 13.3px; color: var(--g2027-ink-soft); }

/* outcomes */
.g2027-outcome-grid{ display: grid; grid-template-columns: repeat(2,1fr); gap: 16px 40px; }
.g2027-outcome{ display: flex; gap: 14px; padding: 18px 0; border-top: 1px solid var(--g2027-line); }
.g2027-mark{ color: var(--g2027-teal); font-family: var(--g2027-font-mono); font-size: 14px; }
.g2027-outcome p{ font-size: 15px; color: var(--g2027-ink-soft); }

/* sponsorship */
.g2027-tier-grid{ display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; background: var(--g2027-line); border: 1px solid var(--g2027-line); }
.g2027-tier{ background: var(--g2027-paper); padding: 24px 18px; text-align: left; }
.g2027-tier.g2027-featured{ background: var(--g2027-ink); color: var(--g2027-stone); }
.g2027-tname{ font-size: 18px; margin-bottom: 6px; display: block; }
.g2027-tprice{ font-size: 13px; color: var(--g2027-ember); margin-bottom: 14px; display: block; }
.g2027-tier.g2027-featured .g2027-tprice{ color: #E8A87C; }
.g2027-tdesc{ font-size: 12.8px; color: var(--g2027-ink-soft); line-height: 1.55; }
.g2027-tier.g2027-featured .g2027-tdesc{ color: var(--g2027-stone-dark); }
.g2027-fineprint{ margin-top: 20px; font-size: 13.5px; color: var(--g2027-ink-soft); }
.g2027-fineprint a{ color: var(--g2027-ember); font-weight: 500; }

/* sustainability */
.g2027-pillar-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; }
.g2027-ptag{ font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--g2027-gold); margin-bottom: 10px; display: block; }
.g2027-pillar ul{ margin: 0; padding-left: 18px; list-style: disc; }
.g2027-pillar li{ font-size: 14px; color: var(--g2027-ink-soft); margin-bottom: 8px; }

/* footer */
footer#g2027-contact{ background: var(--g2027-ink); color: var(--g2027-stone); padding: 56px 0 40px; }
.g2027-foot-grid{ display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 32px; border-top: 1px solid rgba(237,231,218,0.18); padding-top: 32px; }
.g2027-fname{ font-size: 22px; margin-bottom: 8px; }
.g2027-faddr{ font-size: 13.5px; color: var(--g2027-stone-dark); line-height: 1.6; }
.g2027-fcontact{ font-size: 13px; color: var(--g2027-stone-dark); }
.g2027-fcontact a{ color: var(--g2027-paper); text-decoration: none; border-bottom: 1px solid rgba(251,248,242,0.3); }

/* ---------- Full-bleed helper ----------
   Many themes wrap post content in a narrow max-width column. This lets the
   hero / theme-quote / alt-bg / footer bands run edge-to-edge on themes that
   don't clip overflow on their content wrapper. Where a theme does clip
   overflow, the section simply stays contained — no visual breakage either
   way. */
.g2027-hero, .g2027-theme, .g2027-alt-bg, footer#g2027-contact{
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/* ---------- Responsive ---------- */
@media (max-width: 860px){
  .g2027-about-grid, .g2027-obj-list, .g2027-track-grid, .g2027-outcome-grid, .g2027-pillar-grid{ grid-template-columns: 1fr !important; }
  .g2027-hero-meta{ grid-template-columns: repeat(2,1fr); }
  .g2027-timeline{ grid-template-columns: repeat(2,1fr); }
  .g2027-tier-grid{ grid-template-columns: repeat(2,1fr); }
  .g2027-obj-list li:nth-child(odd){ border-right: none; padding-right: 0; }
  .g2027-obj-list li:nth-child(even){ padding-left: 0; }
  .g2027-wrapinner{ padding: 0 20px; }
}

@media (prefers-reduced-motion: reduce){
  .g2027-wrap *{ scroll-behavior: auto !important; transition: none !important; }
}
