/* Shared visual composition for every child of Free Tools.
   Page-specific inline CSS still owns the interactive controls; this file owns
   the light/dark rhythm, page shell and conversion framing around them. */

body.ifx-tool-page {
  --tool-paper: #eef3f8;
  --tool-ink: #172033;
  --tool-copy: #536176;
  --tool-line: rgba(15, 23, 42, .11);
  background: #0b0f19;
}
body.ifx-tool-page main { min-height: 50vh; }
body.ifx-tool-page main > h1 {
  max-width: 17ch;
  font-size: clamp(2.35rem, 5.6vw, 4.6rem);
  line-height: 1.03;
  letter-spacing: -.045em;
}
body.ifx-tool-page main > .lede { max-width: 68ch; }
body.ifx-tool-page .privacy-note { font-weight: 650; }

/* Policy Pack: dark proposition, paper-white working area, light FAQ band. */
body.ifx-tool-toolkit .wrap > h1 { color: #f8fafc; }
body.ifx-tool-toolkit .wrap > .lede,
body.ifx-tool-toolkit .wrap > .factline { color: #a9b5c7; }
body.ifx-tool-toolkit .wrap > .factline b { color: #f1f5f9; }
body.ifx-tool-toolkit .wrap > .kicker,
body.ifx-tool-toolkit .wrap > .factline a { color: #63d9d6; }
body.ifx-tool-toolkit .wrap > .privacy-note {
  color: #63d9d6;
  background: rgba(79, 210, 208, .09);
  border-color: rgba(79, 210, 208, .32);
}
body.ifx-tool-toolkit .packhead h2 { color: #f1f5f9; }
body.ifx-tool-toolkit .packhead .hint { color: #9eadbf; }
body.ifx-tool-toolkit .builder { margin-bottom: clamp(3.5rem, 7vw, 6rem); }
body.ifx-tool-toolkit .faq {
  position: relative;
  width: 100vw;
  max-width: none !important;
  margin: 0 0 0 calc(50% - 50vw);
  padding: clamp(3.5rem, 7vw, 6rem) max(var(--shell-gutter, 1rem), calc((100vw - 1180px) / 2 + var(--shell-gutter, 1rem)));
  background: var(--tool-paper);
  color: var(--tool-ink);
}
body.ifx-tool-toolkit .faq h2,
body.ifx-tool-toolkit .faq summary { color: var(--tool-ink); }
body.ifx-tool-toolkit .faq details { background: #fff; border-color: var(--tool-line); }
body.ifx-tool-toolkit .faq details p { color: var(--tool-copy); }
body.ifx-tool-toolkit #for-advisers {
  margin-top: 0 !important;
  border-radius: 0 0 16px 16px;
}

/* One-page policy: the explanation and film become deliberate paper bands. */
body.ifx-tool-shadow-ai .explain,
body.ifx-tool-shadow-ai .site-video {
  position: relative;
  width: 100vw;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  padding: clamp(3.5rem, 7vw, 6rem) max(var(--shell-gutter, 1rem), calc((100vw - 1080px) / 2 + var(--shell-gutter, 1rem)));
  background: var(--tool-paper);
  color: var(--tool-ink);
}
body.ifx-tool-shadow-ai .explain { margin-top: clamp(3.5rem, 7vw, 6rem); }
body.ifx-tool-shadow-ai .site-video { margin-top: 0 !important; background: #e4ecef; }
body.ifx-tool-shadow-ai .explain h2,
body.ifx-tool-shadow-ai .site-video h2 { color: var(--tool-ink) !important; }
body.ifx-tool-shadow-ai .explain p,
body.ifx-tool-shadow-ai .site-video p { color: var(--tool-copy) !important; margin-inline: auto !important; }
body.ifx-tool-shadow-ai .site-video video { max-width: 760px; margin-inline: auto; }

/* Calculator: the arithmetic is the light surface and therefore the focus. */
body.ifx-tool-calculator .calc {
  padding: clamp(1.5rem, 4vw, 2.6rem);
  background: var(--tool-paper);
  border-color: var(--tool-line);
  box-shadow: 0 22px 60px rgba(0, 0, 0, .22);
}
body.ifx-tool-calculator .calc label { color: var(--tool-ink); }
body.ifx-tool-calculator .calc .hint,
body.ifx-tool-calculator .calc .note { color: var(--tool-copy); }
body.ifx-tool-calculator .calc .res { background: #fff; border-color: var(--tool-line); }
body.ifx-tool-calculator .calc .res .n { color: #147f7d; }
body.ifx-tool-calculator .calc .res .l { color: var(--tool-copy); }

/* Decoder: twenty definitions read as a paper reference spread. */
body.ifx-tool-jargon dl {
  position: relative;
  width: 100vw;
  max-width: none !important;
  margin-left: calc(50% - 50vw);
  padding: clamp(3.5rem, 7vw, 6rem) max(var(--shell-gutter, 1rem), calc((100vw - 1280px) / 2 + var(--shell-gutter, 1rem)));
  background: var(--tool-paper);
}
body.ifx-tool-jargon .term { background: #fff; border-color: var(--tool-line); box-shadow: 0 8px 24px rgba(15, 23, 42, .04); }
body.ifx-tool-jargon .term dt { color: #147f7d; }
body.ifx-tool-jargon .term dd { color: var(--tool-copy); }
body.ifx-tool-jargon .term dd b { color: var(--tool-ink); }

/* Renting vs owning already has one paper band; add a second near the close. */
body.ifx-tool-renting-vs-owning .rvo-page > .ifx-section:nth-of-type(6) { background: var(--tool-paper); }
body.ifx-tool-renting-vs-owning .rvo-page > .ifx-section:nth-of-type(6) h2,
body.ifx-tool-renting-vs-owning .rvo-page > .ifx-section:nth-of-type(6) h3,
body.ifx-tool-renting-vs-owning .rvo-page > .ifx-section:nth-of-type(6) strong { color: var(--tool-ink); }
body.ifx-tool-renting-vs-owning .rvo-page > .ifx-section:nth-of-type(6) p,
body.ifx-tool-renting-vs-owning .rvo-page > .ifx-section:nth-of-type(6) li { color: var(--tool-copy); }
body.ifx-tool-renting-vs-owning .rvo-page > .ifx-section:nth-of-type(6) a,
body.ifx-tool-renting-vs-owning .rvo-page > .ifx-section:nth-of-type(6) .kicker { color: #147f7d; }

/* Sourced figures and films: alternate real paper cards through the page. */
body.ifx-tool-stats .card:nth-of-type(odd),
body.ifx-tool-films .card:nth-of-type(odd) {
  background: var(--tool-paper);
  border-color: var(--tool-line);
  color: var(--tool-ink);
  box-shadow: 0 14px 38px rgba(0, 0, 0, .16);
}
body.ifx-tool-stats .card:nth-of-type(odd) h2,
body.ifx-tool-stats .card:nth-of-type(odd) h3,
body.ifx-tool-films .card:nth-of-type(odd) h3 { color: var(--tool-ink); }
body.ifx-tool-stats .card:nth-of-type(odd) p,
body.ifx-tool-films .card:nth-of-type(odd) p { color: var(--tool-copy); }
body.ifx-tool-stats .card:nth-of-type(odd) .stat-big,
body.ifx-tool-stats .card:nth-of-type(odd) a,
body.ifx-tool-films .card:nth-of-type(odd) a { color: #147f7d; }
body.ifx-tool-stats .card:nth-of-type(odd) .src,
body.ifx-tool-stats .card:nth-of-type(odd) .src a { color: #627085; }

/* Catalogue: long-form sales information gets true alternating full-width bands. */
body.ifx-tool-catalogue.ifx-doc main { padding-bottom: 0; }
body.ifx-tool-catalogue.ifx-doc main > section {
  position: relative;
  width: 100vw;
  max-width: none !important;
  margin-left: calc(50% - 50vw);
  padding: clamp(3.5rem, 7vw, 6rem) var(--shell-pad, 1rem);
}
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) { background: var(--tool-paper); color: var(--tool-ink); }
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) h2,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) h3,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) strong { color: var(--tool-ink); }
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) p,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) li,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) td { color: var(--tool-copy); }
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) a,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) th,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) .rung-price { color: #147f7d; }
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) .cat-table-wrap,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) .cat-sector,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) .cat-refusal,
body.ifx-tool-catalogue.ifx-doc main > section:nth-of-type(odd) .cat-two > div { background: #fff; border-color: var(--tool-line); }

@media (max-width: 700px) {
  body.ifx-tool-page main > h1 { font-size: clamp(2.25rem, 12vw, 3.35rem); }
  body.ifx-tool-toolkit .faq,
  body.ifx-tool-shadow-ai .explain,
  body.ifx-tool-shadow-ai .site-video,
  body.ifx-tool-jargon dl { padding-block: 3.5rem; }
}
