/* HGE Feature Showcase — shared tokens. Elevated treatment; respects site palette. */
:root {
  /* Brand v2 remap (style guide v2) — legacy token names, new values */
  --hge-navy: #094084;
  --hge-navy-deep: #094084;    /* navy carries the dark role; former gradients go flat */
  --hge-sky: #3B8EE6;          /* Support blue — accents/borders only */
  --hge-teal: #1E7D44;         /* Signature Deep — green text/links on light */
  --hge-paper: #F4F6F3;
  --hge-ink: #094084;
  --hge-display: 'Oswald', 'Josefin Sans', Helvetica, Arial, sans-serif;
  --hge-body: 'Inter', 'Open Sans', Arial, sans-serif;
  --hge-radius: 14px;
  --hge-shadow: 0 12px 40px rgba(14, 31, 73, .18);
}

/* ---- News ticker ---- */
.hge-ticker { background: linear-gradient(100deg, var(--hge-navy-deep), var(--hge-navy)); color: #fff; padding: 1.1rem 0 1.2rem; overflow: hidden; }
.hge-ticker-head { display: flex; align-items: baseline; gap: 1rem; max-width: 1080px; margin: 0 auto .7rem; padding: 0 1.25rem; }
.hge-ticker-label { font-family: var(--hge-display); font-size: .95rem; letter-spacing: .18em; text-transform: uppercase; }
.hge-ticker-updated { font-family: var(--hge-body); font-size: .78rem; opacity: .75; }
.hge-ticker-more { margin-left: auto; font-family: var(--hge-body); font-size: .82rem; color: #fff; text-decoration: none; border-bottom: 1px solid var(--hge-sky); transition: border-color .25s ease, opacity .25s ease; white-space: nowrap; }
.hge-ticker-more:hover { opacity: .85; border-color: #fff; color: #fff; }
.hge-ticker-viewport { overflow: hidden; }
.hge-ticker-track { display: flex; gap: 2.75rem; width: max-content; padding: 0 1.25rem; animation: hge-drift 90s linear infinite; }
.hge-ticker-viewport:hover .hge-ticker-track,
.hge-ticker-track:focus-within { animation-play-state: paused; }
@keyframes hge-drift { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.hge-ticker-item { display: inline-flex; align-items: center; gap: .55rem; color: #fff; text-decoration: none; font-family: var(--hge-body); font-size: .92rem; white-space: nowrap; transition: opacity .25s ease; }
.hge-ticker-item:hover { opacity: .8; color: #fff; }
.hge-chip { font-family: var(--hge-display); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; padding: .18rem .5rem .12rem; border-radius: 999px; }
.hge-chip--tech { background: #3DC066; color: #094084; }
.hge-chip--marketing { background: #3B8EE6; color: #094084; }
.hge-chip--ai { background: #F4F6F3; color: #094084; }
@media (prefers-reduced-motion: reduce) {
  .hge-ticker-track { animation: none; }
  .hge-ticker-viewport { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
/* Homepage's next section carries a Divi overlap margin (-115px) meant for the hero
   directly above it. With the ticker now in between, neutralize it so the ticker
   isn't visually covered by the following section. Scoped to the ticker's own
   next sibling so it can't affect any other page. */

/* ---- Industry news page ---- */
.hge-news-page { max-width: 1120px; margin: 0 auto; padding: 3.5rem 1.25rem 5rem; font-family: var(--hge-body); color: var(--hge-ink); }
.hge-news-hero h1 { font-family: var(--hge-display); color: var(--hge-navy-deep); font-size: 2.6rem; margin: 0 0 .5rem; }
.hge-news-sub { color: #5A6472; max-width: 620px; margin: 0 0 2.5rem; }
#hge-news-updated { font-size: .82rem; color: var(--hge-teal); }
.hge-news-lanes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.hge-lane h2 { font-family: var(--hge-display); font-size: 1.05rem; letter-spacing: .14em; text-transform: uppercase; color: var(--hge-navy); border-bottom: 2px solid var(--hge-sky); padding-bottom: .5rem; margin: 0 0 1rem; }
.hge-card { display: block; text-decoration: none; padding: 1rem 1.1rem; border: 1px solid #e4e9f2; border-radius: var(--hge-radius); margin-bottom: .9rem; background: #fff; opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease, border-color .25s ease, box-shadow .25s ease; }
.hge-card.hge-in { opacity: 1; transform: none; }
.hge-card:hover { border-color: var(--hge-sky); box-shadow: var(--hge-shadow); }
.hge-card h3 { font-family: var(--hge-display); font-size: 1.02rem; color: var(--hge-navy-deep); margin: 0 0 .35rem; line-height: 1.35; }
.hge-card p { font-size: .85rem; color: #5A6472; margin: 0 0 .5rem; line-height: 1.5; }
.hge-card .hge-meta { font-size: .74rem; color: #5A6472; }
.hge-news-fallback { color: #5A6472; padding: 1rem 0 3rem; }
@media (max-width: 860px) { .hge-news-lanes { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .hge-card { opacity: 1; transform: none; transition: none; } }

/* ---- Hugo chat ---- */
.hge-chat-btn { position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 100001; display: inline-flex; align-items: center; background: #1E7D44; color: #fff; border: 0; border-radius: 999px; padding: .65rem 1.4rem; font-family: var(--hgb-display); font-weight: 600; text-transform: uppercase; font-size: .875rem; letter-spacing: .07em; line-height: 1; cursor: pointer; box-shadow: var(--hge-shadow); transition: transform .25s ease, background-color .25s ease; }
.hge-chat-btn:hover { transform: translateY(-2px); background: #094084; }
.hge-chat-panel { position: fixed; right: 1.4rem; bottom: 5.6rem; z-index: 100001; width: min(380px, calc(100vw - 2rem)); height: min(560px, calc(100vh - 8rem)); display: none; flex-direction: column; background: #fff; border-radius: var(--hge-radius); box-shadow: var(--hge-shadow); overflow: hidden; opacity: 0; transform: translateY(12px); transition: opacity .3s ease, transform .3s ease; }
.hge-chat-panel.hge-open { display: flex; }
.hge-chat-panel.hge-shown { opacity: 1; transform: none; }
.hge-chat-head { position: relative; background: linear-gradient(100deg, var(--hge-navy-deep), var(--hge-navy)); color: #fff; padding: 1rem 1.2rem .9rem; }
.hge-chat-head h2 { font-family: var(--hge-display); font-size: 1.05rem; margin: 0; color: #fff; }
.hge-chat-head p { font-family: var(--hge-body); font-size: .72rem; margin: .2rem 0 0; opacity: .8; }
.hge-chat-close { position: absolute; top: .7rem; right: .8rem; background: none; border: 0; color: #fff; font-size: 1.2rem; cursor: pointer; line-height: 1; padding: .3rem; }
.hge-chat-log { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .7rem; font-family: var(--hge-body); font-size: .9rem; }
.hge-msg { max-width: 85%; padding: .6rem .85rem; border-radius: 12px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.hge-msg--user { align-self: flex-end; background: var(--hge-navy); color: #fff; border-bottom-right-radius: 4px; }
.hge-msg--hugo { align-self: flex-start; background: var(--hge-paper); color: var(--hge-ink); border-bottom-left-radius: 4px; }
.hge-msg--err { align-self: center; color: #b42318; font-size: .8rem; }
.hge-msg-cta { display: inline-block; margin-top: .5rem; background: #1E7D44; color: #fff !important; text-decoration: none; font-family: var(--hge-display); font-size: .82rem; padding: .5rem .9rem; border-radius: 999px; transition: background-color .25s ease; }
.hge-msg-cta:hover { background: #094084; }
.hge-chat-form { display: flex; gap: .5rem; padding: .8rem; border-top: 1px solid #e4e9f2; }
.hge-chat-form input { flex: 1; border: 1px solid #d0d7e5; border-radius: 999px; padding: .6rem 1rem; font-family: var(--hge-body); font-size: .9rem; min-width: 0; }
.hge-chat-form input:focus { outline: 2px solid var(--hge-sky); outline-offset: 1px; border-color: var(--hge-sky); }
.hge-chat-form button { background: #1E7D44; color: #fff; border: 0; border-radius: 999px; padding: .6rem 1.1rem; font-family: var(--hge-display); cursor: pointer; transition: background-color .25s ease; }
.hge-chat-form button:disabled { opacity: .5; cursor: default; }
@media (prefers-reduced-motion: reduce) { .hge-chat-btn, .hge-chat-panel { transition: none; } }

/* ---- Schedule page ---- */
.hge-book { max-width: 880px; margin: 0 auto; padding: 3.5rem 1.25rem 5rem; font-family: var(--hge-body); color: var(--hge-ink); }
.hge-book-hero h1 { font-family: var(--hge-display); color: var(--hge-navy-deep); font-size: 2.6rem; margin: 0 0 .5rem; }
.hge-book-hero p { color: #5A6472; max-width: 560px; }
.hge-book-tz { font-size: .82rem; color: var(--hge-teal); }
.hge-book-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 2rem; margin-top: 2rem; }
.hge-book-grid[hidden], .hge-book-form[hidden] { display: none; }
.hge-cal { background: #fff; border: 1px solid #e4e9f2; border-radius: var(--hge-radius); padding: 1.25rem; }
.hge-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; }
.hge-cal-head h2 { font-family: var(--hge-display); font-size: 1.1rem; color: var(--hge-navy); margin: 0; }
.hge-cal-head button { background: var(--hge-paper); border: 1px solid #d0d7e5; border-radius: 8px; padding: .35rem .7rem; cursor: pointer; transition: border-color .25s ease; }
.hge-cal-head button:hover:not(:disabled) { border-color: var(--hge-sky); }
.hge-cal-head button:disabled { opacity: .35; cursor: default; }
.hge-cal-dow, .hge-cal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .3rem; text-align: center; }
.hge-cal-dow span { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: #5A6472; padding-bottom: .4rem; }
.hge-day { aspect-ratio: 1; border: 0; background: none; border-radius: 10px; font-family: var(--hge-body); font-size: .9rem; color: #9AA2AB; }
.hge-day--open { background: var(--hge-paper); color: var(--hge-navy); font-weight: 600; cursor: pointer; border: 1px solid transparent; transition: border-color .2s ease, background-color .2s ease; }
.hge-day--open:hover { border-color: var(--hge-sky); }
.hge-day--sel { background: var(--hge-navy); color: #fff; }
.hge-slots { display: flex; flex-direction: column; gap: .5rem; }
.hge-slots-hint { color: #5A6472; font-size: .88rem; }
.hge-slot { background: #fff; border: 1px solid #d0d7e5; border-radius: 10px; padding: .7rem; font-family: var(--hge-display); font-size: .95rem; color: var(--hge-navy); cursor: pointer; transition: border-color .2s ease, background-color .2s ease; }
.hge-slot:hover { border-color: var(--hge-sky); background: var(--hge-paper); }
.hge-book-form { margin-top: 2rem; max-width: 480px; display: flex; flex-direction: column; gap: 1rem; }
.hge-book-form h2, .hge-book-done h2, .hge-book-fallback h2 { font-family: var(--hge-display); color: var(--hge-navy-deep); }
.hge-book-form label { display: flex; flex-direction: column; gap: .3rem; font-size: .85rem; color: #344054; }
.hge-book-form input, .hge-book-form textarea { border: 1px solid #d0d7e5; border-radius: 10px; padding: .65rem .8rem; font-family: var(--hge-body); font-size: .95rem; }
.hge-book-form input:focus, .hge-book-form textarea:focus { outline: 2px solid var(--hge-sky); outline-offset: 1px; }
.hge-opt { color: #5A6472; font-weight: 400; }
.hge-book-actions { display: flex; gap: .8rem; }
#hge-book-back { background: none; border: 1px solid #d0d7e5; border-radius: 999px; padding: .7rem 1.2rem; cursor: pointer; font-family: var(--hge-body); }
#hge-book-submit { background: #2FA85A; color: #094084; border: 0; border-radius: 999px; padding: .7rem 1.6rem; font-family: var(--hge-display); font-weight: 700; font-size: 1.2rem; cursor: pointer; transition: background-color .25s ease; }
#hge-book-submit:hover { background: #3DC066; }
#hge-book-submit:disabled { opacity: .5; cursor: default; }
.hge-book-err { color: #b42318; font-size: .85rem; }
.hge-book-done { margin-top: 2rem; background: var(--hge-paper); border-radius: var(--hge-radius); padding: 2rem; }
.hge-book-fallback { margin-top: 2rem; }
@media (max-width: 720px) { .hge-book-grid { grid-template-columns: 1fr; } }

/* ---- Nav CTA ---- */
#top-menu .hge-nav-cta > a { background: #1E7D44; color: #fff !important; border-radius: 999px; padding: .65rem 1.4rem !important; font-family: var(--hgb-display); font-weight: 600 !important; text-transform: uppercase; font-size: .875rem !important; letter-spacing: .07em; line-height: 1 !important; transition: background-color .25s ease; }
#top-menu .hge-nav-cta > a:hover { background: #094084; color: #fff !important; }
ul.et_mobile_menu .hge-nav-cta > a { color: var(--hge-navy) !important; font-weight: 700; }
/* ---- Homepage CTA band ---- */
.hge-cta-band { background: var(--hge-paper); text-align: center; padding: 3.5rem 1.25rem; }
.hge-cta-band h2 { font-family: var(--hge-display); color: var(--hge-navy-deep); font-size: 1.9rem; margin: 0 0 .6rem; }
.hge-cta-band p { font-family: var(--hge-body); color: #5A6472; margin: 0 0 1.4rem; }
.hge-cta-band a { display: inline-block; background: #2FA85A; color: #094084; text-decoration: none; font-family: var(--hge-display); font-weight: 700; font-size: 1.25rem; padding: .85rem 1.9rem; border-radius: 999px; transition: background-color .25s ease, transform .25s ease; }
.hge-cta-band a:hover { background: #3DC066; transform: translateY(-2px); color: #094084; }
@media (prefers-reduced-motion: reduce) { .hge-cta-band a { transition: none; transform: none; } }

/* ---- Footer: signature + email blurbs removed (Aug 20) — the band is a slim brand strip;
   the fixed chat pill is the only remaining footer-area element ---- */
.et_pb_column_0_tb_footer, .et_pb_column_1_tb_footer { display: none !important; }
.et_pb_section_0_tb_footer { display: flex !important; align-items: center; flex-wrap: wrap; height: auto !important; min-height: 0 !important; padding-top: 1.4rem !important; padding-bottom: 1.4rem !important; }
@media (min-width: 981px) {
  .et_pb_section_0_tb_footer > .et_pb_row_0_tb_footer { flex: 1 1 100%; width: 100% !important; max-width: none; margin: 0; padding: 0 !important; display: flex; }
  .et_pb_section_0_tb_footer .et_pb_column_0_tb_footer,
  .et_pb_section_0_tb_footer .et_pb_column_1_tb_footer { float: none; width: auto !important; flex: 0 0 33.333%; display: flex; justify-content: center; margin: 0 !important; }
  /* last third belongs to the fixed chat pill */
}
@media (max-width: 980px) {
  .et_pb_section_0_tb_footer { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
  .et_pb_section_0_tb_footer > .et_pb_row_0_tb_footer { flex: 0 0 auto; width: 100% !important; }
  .et_pb_section_0_tb_footer .et_pb_column { float: none; width: 100% !important; margin: 0 0 .8rem !important; display: flex; justify-content: center; }
  .et_pb_section_0_tb_footer .et_pb_column:last-child { margin-bottom: 0 !important; }
  .et_pb_section_0_tb_footer .et_pb_blurb_content { max-width: 100%; }
}
/* ============ Brand v2 (style guide v2: Oswald/Inter, green + navy #094084) ============ */
@font-face { font-family: 'Oswald'; src: url('/fonts/oswald-500.woff2') format('woff2'); font-weight: 500 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('/fonts/inter-400.woff2') format('woff2'); font-weight: 400 600; font-style: normal; font-display: swap; }
:root {
  --hgb-green: #3DC066;        /* Signature Bright — accents on navy */
  --hgb-green-fill: #2FA85A;   /* Signature — fills/buttons */
  --hgb-green-deep: #1E7D44;   /* green text/links on light */
  --hgb-blue: #3B8EE6;
  --hgb-blue-deep: #2360A5;
  --hgb-navy: #094084;         /* primary dark */
  --hgb-white: #F4F6F3;
  --hgb-muted: #5A6472;
  --hgb-display: 'Oswald', 'Josefin Sans', Helvetica, Arial, sans-serif;
  --hgb-body: 'Inter', 'Open Sans', Arial, sans-serif;
}

/* ---- Video hero ---- */
.hge-hero { position: relative; background: var(--hgb-navy); line-height: 0; }
/* Full-viewport hero from first paint: the homepage drops Divi's header padding and the
   fixed header simply overlays the video's top band. Layout below is byte-identical
   (134 + (100vh-134) == 0 + 100vh), so nothing ever shifts (CLS 0, single LCP paint). */
body.home #page-container { padding-top: 0 !important; margin-top: 0 !important; }
.hge-hero video { display: block; width: 100%; height: 100vh; object-fit: cover; object-position: 50% 50%; }
/* Cinema nav: the homepage ships with .hge-nav-hidden on <body> (hidden from first paint,
   no flash) and the nav slides in on the visitor's first scroll — transform only, CLS-exempt.
   visibility:hidden keeps the off-canvas links out of the keyboard tab order. */
#main-header { transition: transform .45s ease; }
body.hge-nav-hidden #main-header { transform: translateY(-110%); visibility: hidden; }
/* chat pill follows the same rule: off-canvas below until the first scroll */
body.hge-nav-hidden .hge-chat-btn { transform: translateY(200%); visibility: hidden; }
@media (prefers-reduced-motion: reduce) { #main-header { transition: none; } }

/* ---- Intro section (brand v2, white background rules) ---- */
.et_pb_text_inner h2.hge-intro-h, h2.hge-intro-h { font-family: var(--hgb-display); font-weight: 700; font-size: clamp(26px, 3.2vw, 34px); line-height: 1.03; letter-spacing: .4px; text-transform: uppercase; color: var(--hgb-navy) !important; padding-bottom: 0; margin: 0 0 1.1rem; }
h2.hge-intro-h .hgb-accent { color: var(--hgb-green-deep); }
.et_pb_text_inner h2.hge-intro-h { text-align: center; }
.et_pb_text_inner p.hge-intro-p, p.hge-intro-p { font-family: var(--hgb-body); font-weight: 400; font-size: clamp(17px, 1.35vw, 19px); line-height: 1.6; color: var(--hgb-navy); padding-bottom: 0; margin: 0; text-align: center; }
/* kill Divi's 108px indent on the subhead module; hold one line on desktop */
.et_pb_section_0 .et_pb_text_1 { margin-left: 0 !important; width: 100% !important; }
@media (min-width: 981px) { p.hge-intro-p { white-space: nowrap; font-size: clamp(14px, 1.55vw, 19px); } }

/* ============ Brand v2 site-wide overrides (Divi layer) ============ */
#top-header, #et-secondary-nav { background-color: #094084 !important; }
body, p, li, .et_pb_text_inner { font-family: var(--hgb-body); }
body, p, .et_pb_text_inner p { color: #094084; }
h1, h2, h3, h4, h5, h6, .et_pb_module_header { font-family: var(--hgb-display) !important; text-transform: uppercase; color: #094084; }
.et_pb_module_header, .et_pb_module_header span { font-family: var(--hgb-display) !important; font-weight: 600; letter-spacing: .06em; color: #094084 !important; }
#top-menu a, ul.et_mobile_menu a { font-family: var(--hgb-display); text-transform: uppercase; letter-spacing: .08em; font-weight: 500 !important; color: #094084; }
#top-menu li.current-menu-item > a, #top-menu a:hover { color: #1E7D44 !important; }
a { color: #1E7D44; }
a:hover { color: #2360A5; }
/* content exceptions: news cards + chat messages read as body, not display */
.hge-card h3 { font-family: var(--hgb-body); text-transform: none; font-weight: 600; }
.hge-msg, .hge-social-text, .hge-intro-p { text-transform: none; }
.hge-chat-head h2 { color: #fff !important; }
.hge-book-form h2, .hge-book-done h2, .hge-book-fallback h2 { color: var(--hgb-navy); }
/* footer contact blurbs + divi icons */
.et_pb_blurb_content, .et_pb_blurb_container h3, .et_pb_blurb_container h4 { font-family: var(--hgb-body); }
.et-pb-icon { color: #094084 !important; }
.et_pb_divider::before { border-color: #3DC066; }
/* footer email reads as body, not display */
.et_pb_blurb_1_tb_footer .et_pb_module_header, .et_pb_blurb_1_tb_footer .et_pb_module_header span { font-family: var(--hgb-body) !important; text-transform: lowercase; font-weight: 500; letter-spacing: 0; }

/* ---- Remove Divi top header bar (mail strip) ---- */
#top-header { display: none !important; }

/* Guide button case: Oswald uppercase across all CTAs */
.hge-cta-band a, #hge-book-submit, #hge-book-back, .hge-chat-form button, .hge-msg-cta, .hge-slot { text-transform: uppercase; letter-spacing: .05em; }
/* Content exceptions enforced over the global display-font rule */
.hge-card h3 { font-family: var(--hgb-body) !important; text-transform: none !important; font-weight: 600; }
.hge-social-net { font-family: var(--hgb-body); font-weight: 600; }

/* ---- Service icon rollover ---- */
.et-pb-icon { transition: color .25s ease; }
.et_pb_blurb:hover .et-pb-icon { color: #1E7D44 !important; }
