/* Visual refresh layer (2026-11). Loaded last; markup/layout untouched. Delete this file + its registration in index.php to revert. */
:root {
  --tg-navy: #1b4270;
  --tg-blue: #3c6291;
  --tg-blue-dk: #274a78;
  --tg-gold: #cbaf80;
  --tg-gold-dk: #b79b6b;
  --tg-ink: #2b3440;
  --tg-muted: #5b6573;
  --tg-bg: #eef2f7;
  --tg-radius: 16px;
  --tg-shadow: 0 1px 2px rgba(20, 40, 70, .06), 0 8px 24px rgba(20, 40, 70, .10);
  --tg-shadow-hover: 0 2px 4px rgba(20, 40, 70, .08), 0 14px 32px rgba(20, 40, 70, .18);
}

html { scroll-behavior: smooth; }

body {
  font-family: "Heebo", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  color: var(--tg-ink);
  background: linear-gradient(180deg, #f7f9fc 0%, var(--tg-bg) 100%) fixed;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: var(--tg-blue-dk); transition: color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease; }
a:hover { color: var(--tg-navy); }
a:focus-visible, button:focus-visible { outline: 3px solid #f0b429; outline-offset: 2px; border-radius: 6px; }

div.container {
  background: #fff;
  border-radius: 0 0 var(--tg-radius) var(--tg-radius);
  box-shadow: var(--tg-shadow);
  overflow: hidden;
}

/* top menu: no divider lines, pill hover */
.top_menu li { border-left: 0; }
.top_menu li a {
  font-weight: 500;
  font-size: 1.35em;
  padding: 40px 20px 12px;
  border-radius: 999px;
  letter-spacing: .01em;
}
.top_menu li:hover, .top_menu li.active { background: transparent; }
.top_menu li a:hover { color: var(--tg-blue); box-shadow: inset 0 -3px 0 var(--tg-gold); border-radius: 0; }
.top_menu li.active a { color: var(--tg-navy); box-shadow: inset 0 -3px 0 var(--tg-navy); border-radius: 0; }

/* language flags */
div.mod-languages img { border-radius: 4px; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .2s ease; }
div.mod-languages a:hover img { transform: translateY(-2px) scale(1.08); }

/* hero */
div.header-pos {
  background-color: var(--tg-blue);
  background-image: linear-gradient(135deg, rgba(27, 66, 112, .55) 0%, rgba(60, 98, 145, 0) 60%), url("../images/home-hdr.png");
  background-size: 100% 100%, 100% 100%;
  border-radius: var(--tg-radius);
  margin: 10px 14px -10px;
  width: calc(100% - 28px);
  box-shadow: 0 12px 30px rgba(27, 66, 112, .28);
}
div.moduletable_header.text h1 { font-weight: 300; letter-spacing: .01em; }
div.moduletable_header.text h2 { font-weight: 800; letter-spacing: -.01em; text-shadow: 0 2px 12px rgba(0, 0, 0, .25); }
div.moduletable_header.text h3 { font-weight: 500; }
div.moduletable_header.text p { line-height: 1.5; color: rgba(255, 255, 255, .92); }
div.moduletablescreen img { filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .35)); }

/* buy button (inside hero) */
div.custom_buy { border: 0; padding: 0; font-size: 1.5em; }
div.custom_buy a {
  display: inline-block;
  background: linear-gradient(180deg, #e8d1a6, var(--tg-gold-dk));
  color: #2f2410;
  font-weight: 700;
  padding: 8px 38px;
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .25);
}
div.custom_buy a:hover { color: #1d1608; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 0, 0, .32); }

/* feature cards */
div.moduletable_box {
  height: 250px;
  padding-bottom: 42px;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--tg-shadow);
  transition: transform .25s ease, box-shadow .25s ease;
}
div.moduletable_box:hover { transform: translateY(-4px); box-shadow: var(--tg-shadow-hover); }
div.moduletable_box h3 { font-weight: 600; color: var(--tg-navy); }
div.moduletable_box h3:before { border-radius: 12px; background-color: var(--tg-blue-dk) !important; }
div.moduletable_box p, div.moduletable_box li { color: var(--tg-muted); line-height: 1.3; }
div.moduletable_box ul { margin-top: 4px; }
div.readmore a { font-weight: 600; }
div.moduletable_box div.readmore { bottom: 10px; }
.moduletable_report_menu ul.nav.menu { clear: both; }

/* report buttons */
.moduletable_report_menu li {
  background: linear-gradient(180deg, #d9c19a, var(--tg-gold));
  border-radius: 14px;
  box-shadow: 0 4px 12px rgba(120, 90, 40, .22);
  transition: transform .2s ease, box-shadow .2s ease;
}
.moduletable_report_menu li:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(120, 90, 40, .32); }
.moduletable_report_menu a { color: #2f2410; font-weight: 600; display: block; }

/* footer */
div.footerr {
  background: linear-gradient(90deg, var(--tg-navy), var(--tg-blue-dk));
  border-radius: 0;
}
div.moduletable_fo { font-size: .95em; opacity: .95; }
div.moduletable_fo a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* article pages */
.article { max-width: 920px; margin-left: auto; margin-right: auto; line-height: 1.7; }
div.main h1, .b2jcontainer h2 { color: var(--tg-navy); font-weight: 800; letter-spacing: -.01em; }
div.fsf_faq { border-radius: 12px; border: 1px solid #e3e8ef; background: #f7f9fc; transition: box-shadow .2s ease, background-color .2s ease; }
div.fsf_faq:hover { background: #fff; box-shadow: var(--tg-shadow); }

/* contact form */
.com-contact__form input[type="text"], .com-contact__form input[type="email"], .com-contact__form input[type="tel"],
.com-contact__form textarea {
  border: 1px solid #c5cdd8; border-radius: 10px; padding: 10px 12px; background: #fbfcfe;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.com-contact__form input:focus, .com-contact__form textarea:focus { border-color: var(--tg-blue); box-shadow: 0 0 0 3px rgba(60, 98, 145, .2); outline: 0; }
.com-contact__form button[type="submit"] {
  background: linear-gradient(180deg, var(--tg-blue), var(--tg-navy)); color: #fff; border: 0; border-radius: 999px;
  padding: 10px 32px; font-weight: 600; box-shadow: 0 6px 14px rgba(27, 66, 112, .3); transition: transform .2s ease, box-shadow .2s ease;
}
.com-contact__form button[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(27, 66, 112, .38); }
.tg-privacy-notice { border-radius: 12px; background: #f7f9fc; border-color: #dfe6ef; }
.tg-dialog { border-radius: 16px; box-shadow: 0 24px 60px rgba(0, 0, 0, .4); }

@media (max-width: 420px) { div.moduletable_box { height: auto; min-height: 200px; } }

@media (max-width: 768px) {
  div.header-pos { margin: 10px 8px -10px; width: calc(100% - 16px); border-radius: 12px; }
  .top_menu li a { padding: 6px 10px; font-size: 1.2em; }
  div.container { border-radius: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* FAQ accordion */
div.fsf_faqs { padding: 8px 0 24px; }
div.fsf_faq { margin: 0 0 12px; padding: 4px 62px 4px 18px; min-height: 0; position: relative; }
div.fsf_faq_question { font-size: 1.15em; font-weight: 500; line-height: 1.5; padding: 10px 0; }
div.fsf_faq_question a.fsf_highlight { color: var(--tg-navy); padding: 0; }
div.fsf_faq_question:focus { outline: 0; }
div.fsf_faq_question:focus-visible { outline: 3px solid #f0b429; outline-offset: 3px; border-radius: 8px; }
div.fsf_faq_question[aria-expanded="true"] a.fsf_highlight { font-weight: 700; }
div.fsf_faq_question.accordion_toggler_1:before {
  width: 34px; height: 34px; padding: 0; top: 14px; transform: none; right: 16px;
  background: #5a7aa3 url('../images/question.png') center / cover no-repeat; border-radius: 10px; box-shadow: var(--tg-shadow);
}
div.fsf_faq_answer { padding: 0 0 14px; }
div.fsf_faq_answer, div.fsf_faq_answer * {
  font-family: inherit !important; font-size: 1em !important; font-weight: 400 !important;
  color: var(--tg-ink) !important; line-height: 1.7 !important; background: none !important;
}
div.fsf_faq_answer b, div.fsf_faq_answer strong { font-weight: 600 !important; }
div.fsf_faq_answer h2 { margin: 0; padding: 0; text-align: start; }
@media (max-width: 992px) { div.fsf_faq { margin: 0 0 10px; padding: 4px 56px 4px 14px; } }

/* LTR languages (en/fr/es): keep the original button box and edge alignment */
html[dir="ltr"] div.header-pos { margin: 10px 0 -10px; width: 100%; }
html[dir="ltr"] div.custom_buy { height: auto; width: auto; font-size: 1.3em; }
div.custom_buy a { white-space: nowrap; padding: 6px 30px; }
.top_menu li { border-right: 0; }
div.fsf_faq_question.accordion_toggler_1:before { left: auto; }
html[dir="ltr"] div.fsf_faq { padding: 4px 18px 4px 62px; }
html[dir="ltr"] div.fsf_faq_question.accordion_toggler_1:before { right: auto; left: 16px; }
@media (max-width: 992px) { html[dir="ltr"] div.fsf_faq { padding: 4px 14px 4px 56px; } }
