/* ============================================================
 * Silverlight Research — Phase G polish layer
 *
 * Loaded AFTER all Weebly stylesheets via a <link> tag injected
 * before </head> by scripts/post-build.mjs.
 *
 * ADDITIVE ONLY. Every rule must be:
 *   - higher specificity than the Weebly rule it overrides, OR
 *   - !important where inline styles must be beaten.
 *
 * If this file is deleted (just remove the post-build inject step)
 * the site reverts to byte-identical Weebly rendering.
 *
 * Seven targeted fixes:
 *   G1. Cookie banner — bottom-of-viewport fixed
 *   G2. Press logo strip — uniform sizing + grayscale tone
 *   G3. FAQ section contrast — dark text on FAQ pages
 *   G4. Heading weight standardisation — h1/h2/h3 weights
 *   G5. Inline image centring — block <img> inside paragraphs
 *   G6. Link colour harmonisation — content area only
 *   G7. Contact map sizing — min-height + full width
 * ============================================================ */


/* ----------- G1. Cookie banner reposition ------------------- *
 * Weebly's cookie consent (Usercentrics + legacy plugin variants)
 * occasionally overlaps the Calendly widget on conversion pages.
 * Pin it to the bottom of the viewport with safe padding.
 * Only the position is overridden — the banner's own styling,
 * colors, and copy stay intact.
 * ------------------------------------------------------------ */
.cookie-banner,
.cookie-consent,
#cookie-banner,
#cookieConsent,
[id^="usercentrics"],
[class*="usercentrics-banner"],
[class*="cookieConsent"],
.cc-window,
.cc-banner,
.uc-banner-container {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  top: auto !important;
  transform: none !important;
  z-index: 9999 !important;
  padding: 0.875rem 1.25rem !important;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08) !important;
  background-clip: padding-box;
}


/* ----------- G2. Press logo strip --------------------------- *
 * Where the page contains a row of press-logo images (Forbes /
 * MSN / Medium / LA Entrepreneur / Herald / Wikipedia / etc.),
 * normalise them: cap height at 60px, contain aspect, soften to
 * 85% opacity + 20% grayscale to give the row a uniform tone
 * while keeping brand recognition.
 *
 * Targets by alt-text contains (case-insensitive) — works whether
 * the press strip is currently present or added in future.
 * ------------------------------------------------------------ */
#wsite-content img[alt*="Forbes" i],
#wsite-content img[alt*="MSN" i],
#wsite-content img[alt*="Medium" i],
#wsite-content img[alt*="LA Entrepreneur" i],
#wsite-content img[alt*="Herald" i],
#wsite-content img[alt*="Bloomberg" i],
#wsite-content img[alt*="Reuters" i],
#wsite-content img[alt*="Wikipedia" i],
#wsite-content img[alt*="press logo" i],
#wsite-content img[alt*="media logo" i],
.press-logo-strip img,
.media-logo-strip img {
  max-height: 60px !important;
  width: auto !important;
  object-fit: contain !important;
  filter: grayscale(20%) opacity(0.85);
  transition: filter 0.2s ease;
}
#wsite-content img[alt*="Forbes" i]:hover,
#wsite-content img[alt*="MSN" i]:hover,
#wsite-content img[alt*="Medium" i]:hover,
#wsite-content img[alt*="LA Entrepreneur" i]:hover,
#wsite-content img[alt*="Herald" i]:hover,
#wsite-content img[alt*="Bloomberg" i]:hover,
#wsite-content img[alt*="Wikipedia" i]:hover {
  filter: grayscale(0%) opacity(1);
}

/* Container styling: when a wsite-section contains 3+ such logos,
 * lay them out in a flex row with consistent gap. The Weebly
 * markup uses .wsite-image wrappers — flex the row. */
.press-logo-strip,
.media-logo-strip {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 28px;
  padding: 40px 0;
}


/* ----------- G3. FAQ section contrast ----------------------- *
 * On the FAQ family of pages, body text and emphasised question
 * text render at a low-contrast grey. Restore strong contrast
 * on the question fragments — the surrounding paragraph styling
 * is untouched.
 *
 * Targets the body class hooks Weebly emits per-page:
 *   .wsite-page-faq
 *   .wsite-page-frequently-asked-questions-for-experts
 *   .wsite-page-expert-network-faq
 *   .wsite-page-perguntas-mais-frequentes
 * ------------------------------------------------------------ */
.wsite-page-faq #wsite-content,
.wsite-page-frequently-asked-questions-for-experts #wsite-content,
.wsite-page-expert-network-faq #wsite-content,
.wsite-page-perguntas-mais-frequentes #wsite-content,
.wsite-page-domande-frequenti #wsite-content {
  color: #1a1a1a;
}

.wsite-page-faq #wsite-content strong,
.wsite-page-faq #wsite-content b,
.wsite-page-faq #wsite-content h2,
.wsite-page-faq #wsite-content h3,
.wsite-page-frequently-asked-questions-for-experts #wsite-content strong,
.wsite-page-frequently-asked-questions-for-experts #wsite-content b,
.wsite-page-frequently-asked-questions-for-experts #wsite-content h2,
.wsite-page-frequently-asked-questions-for-experts #wsite-content h3,
.wsite-page-expert-network-faq #wsite-content strong,
.wsite-page-expert-network-faq #wsite-content b,
.wsite-page-expert-network-faq #wsite-content h2,
.wsite-page-expert-network-faq #wsite-content h3,
.wsite-page-perguntas-mais-frequentes #wsite-content strong,
.wsite-page-perguntas-mais-frequentes #wsite-content h2 {
  color: #0a0a0a !important;
  font-weight: 600 !important;
}

/* Visited link contrast inside FAQ too — Weebly default visited
 * link is too pale to read on FAQ-style Q&A scanning. */
.wsite-page-faq #wsite-content a:visited,
.wsite-page-frequently-asked-questions-for-experts #wsite-content a:visited,
.wsite-page-expert-network-faq #wsite-content a:visited {
  color: #0b0080;
}


/* ----------- G4. Heading weight standardisation ------------- *
 * H1 is rendered inconsistently between Reference / Conversion
 * page templates because Weebly's content-title elements pick up
 * inherited font-weight from the theme. Lock H1=700 / H2=600 /
 * H3=600 across all content surfaces — the HTML element tags are
 * not changed (byte-identity preserved).
 * ------------------------------------------------------------ */
#wsite-content h1,
#wsite-content .wsite-content-title,
#wsite-content .wsite-headline,
.wsite-section-elements h1,
.wsite-section-elements .wsite-content-title {
  font-weight: 700;
  letter-spacing: -0.01em;
}

#wsite-content h2,
#wsite-content .wsite-product-title,
.wsite-section-elements h2 {
  font-weight: 600;
}

#wsite-content h3,
.wsite-section-elements h3 {
  font-weight: 600;
}


/* ----------- G5. Inline image centring ---------------------- *
 * Block-level images embedded inside a Weebly paragraph block
 * (not inside a multi-column grid) should centre rather than
 * left-align. Multi-column containers (.wsite-multicol*) keep
 * their explicit alignment.
 * ------------------------------------------------------------ */
.wsite-section-elements > div > .paragraph > img,
.wsite-section-elements > .paragraph > img,
.wsite-section-elements > div > div > div > .paragraph > img {
  display: block;
  margin-inline: auto;
  max-width: 100%;
  height: auto;
}

/* Standalone wsite-image blocks OUTSIDE a multi-column grid */
.wsite-section-elements > div > div > .wsite-image:not(.wsite-multicol-col .wsite-image),
.wsite-section-elements > .wsite-image:not(.wsite-multicol-col .wsite-image) {
  text-align: center !important;
}


/* ----------- G6. Link colour harmonisation ------------------ *
 * Weebly's default link colour is a slightly-washed-out blue.
 * In content surfaces only (NOT header nav, footer, buttons,
 * Calendly, forms) restore the canonical Wikipedia-style link
 * blue #0645ad with crisp underline-on-hover.
 *
 * Scoped to #wsite-content + body-section content area only.
 * Excludes .wsite-button, .wsite-button-inner, .wsite-form-*,
 * .calendly-* and any class containing "button".
 * ------------------------------------------------------------ */
.wsite-section-content a:not(.wsite-button):not(.wsite-button-inner):not(.wsite-form-button):not([class*="button"]):not(.calendly-inline-widget a):not(.wsite-headline-paragraph a),
#wsite-content .paragraph a:not(.wsite-button):not([class*="button"]) {
  color: #0645ad;
}

.wsite-section-content a:not(.wsite-button):not(.wsite-button-inner):not(.wsite-form-button):not([class*="button"]):not(.calendly-inline-widget a):hover,
#wsite-content .paragraph a:not(.wsite-button):not([class*="button"]):hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}


/* ----------- G7. Contact map sizing ------------------------- *
 * The three Google Map embeds on /contact2.html (London,
 * Valencia, Lisbon) render with inline height:400px width:99%.
 * Enforce a min-height of 280px (mobile-safe floor) and full
 * width so they don't shrink on narrow viewports.
 *
 * Weebly puts each map inside a div.wsite-map wrapping an
 * iframe. !important is needed because the iframe carries
 * inline style attributes.
 * ------------------------------------------------------------ */
.wsite-page-contact2 .wsite-map,
.wsite-page-contact2 .wsite-map iframe,
#wsite-content .wsite-map,
#wsite-content .wsite-map iframe {
  min-height: 280px !important;
  width: 100% !important;
}

.wsite-page-contact2 .wsite-map {
  margin: 1rem 0 1.5rem;
}

/* Larger map on wide viewports — they are the centrepiece of the
 * contact page so let them breathe on desktop. */
@media (min-width: 1024px) {
  .wsite-page-contact2 .wsite-map iframe,
  #wsite-content .wsite-map iframe {
    min-height: 420px !important;
  }
}


/* ----------- L2d. Weebly multilanguage cleanup -------------- *
 * The Weebly multilanguage app (app.multilanguage.xyz) embeds 12
 * sibling .lang_specific blocks (lang_en, lang_de, lang_es, lang_fr,
 * lang_it, lang_pt, lang_ja, lang_man, lang_nl, lang_da, lang_nn,
 * lang_sv) into the footer, expecting the remote script
 *   https://app.multilanguage.xyz/media/snippets/multilanguage_11683.js
 * to hide all but the active language. That script currently returns
 *   console.log("multilanguage is disabled");
 * — so on the live Weebly site, all 12 footer copies render stacked
 * (a real but pre-existing bug on the source). The migrated site
 * inherits the byte-identical body HTML and would inherit the bug too.
 *
 * Since the site only has English content authored (the other 11
 * lang_specific blocks have no translated content and are empty
 * structural stubs), hide everything but lang_en.
 *
 * Pure CSS, additive only. Does not touch body HTML; does not break
 * the multilanguage app if Weebly ever re-enables it (those rules
 * would compete on specificity, but we ship higher-specificity here).
 * ------------------------------------------------------------ */
.lang_specific { display: none !important; }
.lang_specific.lang_en { display: block !important; }


/* ----------- L2e. Nav-dropdown multilanguage cleanup -------- *
 * The "Expert Networks" dropdown lists each language variant of
 * "What is an expert network?" as a separate sibling <li> with no
 * .lang_specific class — different mechanism from the footer.
 * Weebly's multilanguage app would normally filter them; that app
 * is disabled (see L2d). On live, all 8 non-English variants stack
 * in the dropdown alongside the English item.
 *
 * The English content is the only authored copy; the 8 translated
 * pages exist as separate URLs and are kept in sitemap.xml +
 * llms.txt for direct-link / SEO discovery. Hiding them from the
 * nav reduces visual clutter without removing them from the index.
 *
 * Mechanism: each <li.wsite-menu-subitem-wrap> containing one of
 * the 8 known non-English variant hrefs is hidden via :has(). The
 * class is exclusive to nav so body links are unaffected.
 * ------------------------------------------------------------ */
li.wsite-menu-subitem-wrap:has(> a[href="/che-cos-e-una-rete-di-esperti.html"]),       /* it */
li.wsite-menu-subitem-wrap:has(> a[href="/hva-er-ekspertnettverk.html"]),              /* nn */
li.wsite-menu-subitem-wrap:has(> a[href="/hvad-er-et-ekspertnetvaerk.html"]),          /* da */
li.wsite-menu-subitem-wrap:has(> a[href="/iquestqueacute-hace-una-red-de-expertos.html"]), /* es */
li.wsite-menu-subitem-wrap:has(> a[href="/o-que-e-uma-rede-de-especialistas.html"]),   /* pt */
li.wsite-menu-subitem-wrap:has(> a[href="/quest-ce-qu-un-reseau-d-experts.html"]),     /* fr */
li.wsite-menu-subitem-wrap:has(> a[href="/was-ist-ein-expertennetzwerk.html"]),        /* de */
li.wsite-menu-subitem-wrap:has(> a[href="/wat-zijn-expert-netwerken.html"])            /* nl */
{ display: none !important; }


/* ============================================================
 * End Silverlight polish layer.
 * Build hash: phase-g-polish + L2d-multilang-cleanup + L2e-nav-multilang-cleanup
 * ============================================================ */
