:root {
  color-scheme: dark;
  --bg: #00243d;
  --panel: #00364f;
  --panel-soft: #004764;
  --text: #f5fbff;
  --muted: #adc8d8;
  --brand: #00b5ed;
  --accent: #ffba16;
  --line: rgba(255, 255, 255, .14);
  --hero-shift: 0px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body {
  margin: 0;
  overflow-x: hidden;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 90% 20%, rgba(0, 181, 237, .16), transparent 28rem),
    var(--bg);
  color: var(--text);
  line-height: 1.6;
}

a { color: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  left: -999px;
  top: 1rem;
  z-index: 20;
  padding: .75rem 1rem;
  background: var(--accent);
  color: #00243d;
  font-weight: 800;
}
.skip-link:focus { left: 1rem; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 10;
  background: linear-gradient(180deg, rgba(0, 36, 61, .96), rgba(0, 54, 79, .65), transparent);
  backdrop-filter: blur(10px);
}
.nav {
  width: min(1440px, 100%);
  margin: 0 auto;
  padding: 1.05rem clamp(1rem, 4vw, 4.5rem);
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: .72rem;
  color: var(--text);
  font-size: .9rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}
.brand { min-height: 42px; flex-shrink: 0; }
/* Official transparent FuturaTech logo supplied by the owner. */
.brand-logo { display: block; width: 190px; aspect-ratio: 1651 / 538; overflow: hidden; }
.brand-logo img { width: 100%; height: 100%; object-fit: contain; }
.nav-links {
  display: flex;
  align-items: center;
  gap: clamp(.75rem, 1.6vw, 1.6rem);
  margin-left: auto;
}
.nav-links a {
  color: rgba(255, 255, 255, .72);
  font-size: .69rem;
  font-weight: 760;
  letter-spacing: .13em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .2s ease;
}
.nav-links a:hover { color: var(--accent); }
.nav-cta { color: var(--accent); border: 1px solid rgba(255, 186, 22, .55); padding: .5rem .8rem; }
.nav-cta:hover { background: var(--accent); color: #00243d; }
.nav-toggle {
  display: none;
  margin-left: auto;
  padding: .55rem .8rem;
  border: 1px solid var(--line);
  background: rgba(0, 36, 61, .65);
  color: var(--text);
  font: inherit;
}
.language-switcher { display: flex; gap: .25rem; }
.lang {
  min-width: 34px;
  padding: .45rem .38rem;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: #adc8d8;
  cursor: pointer;
  font-size: .68rem;
  font-weight: 800;
}
.lang.active { border-color: var(--accent); color: var(--text); }

.section {
  position: relative;
  width: min(1320px, 100%);
  margin: 0 auto;
  padding: clamp(5.5rem, 10vw, 10rem) clamp(1.25rem, 5vw, 5rem);
}
.hero {
  width: 100%;
  max-width: none;
  min-height: 100svh;
  overflow: hidden; /* V02: clip the fan decoration inside the hero */
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(240px, .55fr);
  align-items: end;
  gap: clamp(1.5rem, 3vw, 3rem);
  padding-top: 8.5rem;
  padding-bottom: clamp(2.5rem, 5vh, 5rem);
}
.hero-media, .hero-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  overflow: hidden;
}
.hero-media img {
  width: 100%;
  height: calc(100% + 100px);
  object-fit: cover;
  object-position: center;
  transform: translate3d(0, calc(var(--hero-shift) * .45), 0) scale(1.06);
  filter: saturate(.82) contrast(1.08);
  will-change: transform;
}
.hero-shade {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(0, 36, 61, .97) 0%, rgba(0, 54, 79, .83) 34%, rgba(0, 54, 79, .16) 72%),
    linear-gradient(0deg, rgba(0, 36, 61, .96) 0%, transparent 38%, rgba(0, 36, 61, .48) 100%);
}
.hero-copy { max-width: 990px; }
.hero h1 {
  max-width: 980px;
  margin: .55rem 0 1.15rem;
  font-size: clamp(2.9rem, 6.2vw, 5.25rem);
  font-weight: 760;
  letter-spacing: -.075em;
  line-height: .88;
  text-wrap: balance;
}
.hero-line { display: block; }
@media (prefers-reduced-motion: no-preference) {
  .hero-line { transform: translateY(110%); transition: transform 1s cubic-bezier(.22, 1, .36, 1); }
  .hero.visible .hero-line:nth-child(1) { transition-delay: .12s; transform: translateY(0); }
  .hero.visible .hero-line:nth-child(2) { transition-delay: .24s; transform: translateY(0); }
  .hero.visible .hero-line:nth-child(3) { transition-delay: .36s; transform: translateY(0); }
}
.hero-glow {
  position: absolute;
  inset: auto 0 0 0;
  z-index: -1;
  height: 34%;
  pointer-events: none;
  background: radial-gradient(60% 100% at 18% 100%, rgba(0, 181, 237, .14), transparent 70%);
}
@media (prefers-reduced-motion: no-preference) {
  .hero-glow { animation: heroGlow 7s ease-in-out infinite alternate; }
  @keyframes heroGlow { from { opacity: .55; } to { opacity: 1; } }
}
/* Standalone three-blade rotor: no housing or background plate. */
.hero-fan {
  position: absolute;
  top: 50%;
  right: 2.5%;
  width: min(42vw, 620px);
  aspect-ratio: 1;
  pointer-events: none;
  transform: translateY(-58%);
  opacity: .22;
  /* keep the box out of the hero grid flow (it is absolutely positioned) */
  will-change: transform;
  z-index: 0;
}
.hero-fan-svg {
  width: 100%;
  height: 100%;
  display: block;
  filter: grayscale(.2) contrast(.92) brightness(1.08) drop-shadow(0 18px 24px rgba(0, 0, 0, .22));
  z-index: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .hero-fan-svg { animation: heroFanSpin 80s linear infinite; transform-origin: 50% 50%; }
  @keyframes heroFanSpin { to { transform: rotate(360deg); } }
}
.hero-copy > p:not(.eyebrow) {
  max-width: 680px;
  color: rgba(255, 255, 255, .7);
  font-size: clamp(1rem, 1.35vw, 1.23rem);
}
.eyebrow {
  margin: 0 0 1rem;
  color: var(--accent);
  font-size: .69rem;
  font-weight: 850;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: .9rem 1.25rem;
  border: 1px solid transparent;
  border-radius: 0;
  cursor: pointer;
  font: inherit;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button.primary { background: linear-gradient(135deg, var(--accent), #ffa811); color: #00243d; }
.button.ghost { border-color: rgba(255, 255, 255, .3); background: rgba(0, 54, 79, .45); color: var(--text); }
.button.ghost:hover { border-color: var(--brand); color: var(--brand); }
.advisor-options:not([hidden]),
.advisor-path:not([hidden]) {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.hero-card {
  align-self: end;
  max-width: 340px;
  padding: 1.4rem 0 0;
  border-top: 1px solid rgba(255, 255, 255, .32);
  background: transparent;
}
.hero-card h2 { margin: 1.1rem 0 .35rem; font-size: 1.5rem; }
.hero-card p { margin: 0 0 1.1rem; color: rgba(255, 255, 255, .58); font-size: .9rem; }
.hero-card-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--accent);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
}
.hero-card-link span { transition: transform .25s ease; }
.hero-card-link:hover span { transform: translateX(4px); }
.scroll-cue {
  position: absolute;
  right: clamp(1.25rem, 4vw, 4.5rem);
  bottom: 2rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  color: rgba(255, 255, 255, .58);
  font-size: .63rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-decoration: none;
  text-transform: uppercase;
}
.scroll-cue span { display: block; width: 46px; height: 1px; background: var(--accent); }

#services::before {
  content: "SERVICES";
  position: absolute;
  top: 2.6rem;
  right: 1.5rem;
  z-index: -1;
  color: transparent;
  font-size: clamp(4.5rem, 15vw, 14rem);
  font-weight: 900;
  letter-spacing: -.08em;
  line-height: .8;
  -webkit-text-stroke: 1px rgba(255, 255, 255, .055);
}
.section-heading { max-width: 850px; margin-bottom: 3rem; }
.section-heading h2, .split h2 {
  margin: .35rem 0 1rem;
  font-size: clamp(2.6rem, 5.6vw, 5.7rem);
  font-weight: 690;
  letter-spacing: -.06em;
  line-height: .96;
  text-wrap: balance;
}
.section-heading p:not(.eyebrow), .split p { max-width: 690px; color: var(--muted); }
.cards { display: grid; }
.services-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.card {
  position: relative;
  min-height: 330px;
  padding: 2.8rem 1.5rem 1.5rem;
  border-right: 1px solid var(--line);
  background: transparent;
  transition: background .3s ease, transform .3s ease;
}
.card:first-child { border-left: 1px solid var(--line); }
.card::after {
  content: "↗";
  position: absolute;
  top: 1.05rem;
  right: 1.3rem;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--muted);
}
.card:hover { z-index: 1; background: var(--panel-soft); transform: translateY(-8px); }
.card h3 { margin: 0 0 1rem; font-size: clamp(1.25rem, 1.7vw, 1.8rem); line-height: 1.08; }
.card p { color: var(--muted); font-size: .91rem; }
.card a { margin-top: 2rem; color: var(--accent); font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
/* Card visuals: lightweight brand-gradient media, no external images */
.card-visual { margin-bottom: 1.4rem; }
.visual {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 7;
  overflow: hidden;
  border: 1px solid var(--line);
  background: linear-gradient(145deg, #00364f, #004764 55%, #00243d);
  transition: transform .35s cubic-bezier(.22, 1, .36, 1), border-color .35s ease;
}
.visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(90% 130% at 85% 15%, rgba(0, 181, 237, .26), transparent 60%),
              radial-gradient(70% 90% at 10% 95%, rgba(255, 186, 22, .10), transparent 55%);
}
.visual .icon {
  position: relative;
  z-index: 1;
  width: 52px;
  height: 52px;
  color: var(--brand);
  transition: transform .35s cubic-bezier(.22, 1, .36, 1), color .35s ease;
}
.visual .icon svg { width: 100%; height: 100%; }
.card:hover .visual { transform: translateY(-4px) scale(1.02); border-color: rgba(0, 181, 237, .55); }
.card:hover .icon { transform: scale(1.12) rotate(-3deg); color: var(--accent); }
.media {
  position: relative;
  display: block;
  margin-top: 1.2rem;
  overflow: hidden;
  border: 1px solid var(--line);
}
.media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform 1.1s cubic-bezier(.22, 1, .36, 1), filter .5s ease;
  filter: saturate(.85) contrast(1.05);
}
.media:hover img { transform: scale(1.07); filter: saturate(1.02) contrast(1.08); }
.media figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  right: 0;
  padding: .7rem 1rem;
  background: linear-gradient(0deg, rgba(0, 36, 61, .92), transparent);
  color: rgba(255, 255, 255, .72);
  font-size: .72rem;
  letter-spacing: .04em;
}
.trust-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 2.4rem;
  padding: 1.4rem 0 0;
  margin-top: 3.5rem;
  border-top: 1px solid var(--line);
}
.trust-strip span {
  color: rgba(255, 255, 255, .55);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.trust-strip b { color: var(--brand); font-weight: 800; }
.split {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  align-items: center;
  gap: clamp(3rem, 8vw, 9rem);
  border-top: 1px solid var(--line);
}
.split > .button { justify-self: start; }
.checklist, .missing-list {
  margin: 0;
  padding: 2rem;
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(0, 181, 237, .14), rgba(255, 255, 255, .015));
}
.checklist { list-style: none; }
.checklist li, .missing-list li {
  padding: .85rem 0;
  border-bottom: 1px solid var(--line);
  color: #d2e6f1;
}
.checklist li::before { content: "✓"; margin-right: .8rem; color: var(--accent); }
.process-steps { list-style: none; padding: 0; }
.project-placeholder {
  position: relative;
  min-height: min(58vw, 620px);
  display: grid;
  place-items: end start;
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 4rem);
  border: 1px solid var(--line);
  background:
    linear-gradient(20deg, rgba(0, 36, 61, .96), rgba(0, 36, 61, .15)),
    radial-gradient(circle at 70% 35%, rgba(0, 181, 237, .28), transparent 23%),
    linear-gradient(135deg, #00364f, #005979 44%, #00243d 75%);
}
.project-placeholder::before {
  content: "";
  position: absolute;
  inset: 12% 10% 14% 43%;
  border: 1px solid rgba(255, 255, 255, .12);
  transform: skewY(-7deg);
}
.project-placeholder span {
  position: relative;
  z-index: 1;
  max-width: 520px;
  color: rgba(255, 255, 255, .67);
  font-size: clamp(1.05rem, 2vw, 1.55rem);
}
.note { padding: 2rem; border-left: 2px solid var(--accent); background: var(--panel); color: #d7dddb; font-weight: 720; }
/* M06: realisaties — three owner-provided photos, neutral captions only.
   Reuses the existing .media component; no new image paths beyond the
   three files in assets/realizacje-intake/. */
.projects-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.project {
  margin: 0;
  min-width: 0;
  padding: 1.5rem 1.25rem 2rem;
  border-right: 1px solid var(--line);
}
.project:first-child { border-left: 1px solid var(--line); }
.project-media { margin-top: 0; aspect-ratio: 4 / 3; }
.project figcaption { margin-top: 1rem; }
.project figcaption p { margin: 0 0 .6rem; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.project-pending {
  color: var(--accent);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  margin-bottom: 0 !important;
}
.missing-list h3 { margin-top: 0; }
.contact { padding-bottom: 7rem; }
.lead-form { max-width: 880px; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.lead-form label { display: grid; gap: .5rem; color: #d4dcda; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lead-form label:nth-child(4), .lead-form .button, .form-status { grid-column: 1 / -1; }
input, select, textarea {
  width: 100%;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--panel);
  color: var(--text);
  font: inherit;
}
textarea { resize: vertical; }
.form-status { margin: 0; color: var(--accent); font-weight: 760; }
.footer { padding: 2rem clamp(1rem, 5vw, 5rem); border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; text-align: center; }
.reveal {
  opacity: 0;
  filter: blur(4px);
  transform: translateY(30px);
  transition: opacity .85s ease, transform .85s cubic-bezier(.22, 1, .36, 1), filter .85s ease;
}
.reveal.visible { opacity: 1; filter: none; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  .hero-media img { transform: none; }
  .reveal { opacity: 1; filter: none; transform: none; }
}

@media (max-width: 1100px) {
  .nav-links { display: none; }
  .nav-toggle { display: inline-flex; }
  .nav-links.open {
    position: absolute;
    inset: 100% 0 auto;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    padding: 1.5rem;
    background: rgba(0, 36, 61, .98);
    border-top: 1px solid var(--line);
  }
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card:nth-child(odd) { border-left: 1px solid var(--line); }
  /* M06: three projects -> 2+1 on tablets */
  .projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project:nth-child(odd) { border-left: 1px solid var(--line); }
  .project:nth-child(3) { grid-column: 1 / -1; border-left: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .nav { padding: .75rem 1rem; }
  .brand-logo { width: 104px; }
  .hero { grid-template-columns: 1fr; gap: 1.75rem; padding-top: 6.25rem; }
  .hero-shade {
    background:
      linear-gradient(90deg, rgba(0, 36, 61, .94), rgba(0, 54, 79, .34)),
      linear-gradient(0deg, rgba(0, 36, 61, .96), transparent 55%, rgba(0, 36, 61, .48));
  }
  .hero h1 { font-size: clamp(3rem, 16vw, 5.5rem); }
  .hero-card { max-width: 100%; }
  .hero-copy { min-width: 0; max-width: 100%; }
  .hero-copy > p:not(.eyebrow), .hero h1 { max-width: 100%; }
  /* M03-RECOVERY_1: allow wrapping so long two-CTA rows stack instead of overflowing 390px */
  .actions { flex-wrap: wrap; }
  .actions .button { flex: 1 1 11rem; min-width: 0; max-width: none; padding-inline: .75rem; overflow-wrap: anywhere; }
  /* M03-FIX-1: contain the hero title in the mobile column — its unbreakable
     line was inflating .hero-copy (and thus scrollWidth) past the 390px
     viewport */
  .hero-copy, .hero h1, .hero-line { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
  /* M08: tighten the hero title at ≤760px so the full hero (CTAs included)
     stays above the reserved 56×56 widget slot and the mobile action bar
     at 360 and 390 px without covering the second CTA. */
  .hero h1 { font-size: clamp(2.4rem, 12.5vw, 4.4rem); }
  /* M03-FIX-1b: hard containment fallback so any escaping element cannot
     widen the page past the viewport */
  html, body, main, .hero { max-width: 100vw; }
  .scroll-cue { display: none; }
  .services-grid, .split, .lead-form { grid-template-columns: 1fr; }
  .card, .card:nth-child(odd) { border-left: 1px solid var(--line); }
  /* M06: three projects -> single column on mobile */
  .projects-grid { grid-template-columns: 1fr; }
  .project, .project:nth-child(odd), .project:nth-child(3) { grid-column: auto; border-left: 1px solid var(--line); }
  .lead-form label, .lead-form label:nth-child(4), .lead-form .button, .form-status { grid-column: 1; }
  /* WhatsApp shortcut; hidden until CONTACT_CONFIG contains a confirmed phone.
     M08-fix-1: the slot is anchored to the document edge (right:0) so its
     rect sits at the innerWidth edge even when the visual layout column is
     narrower than the viewport (the 15px right gutter belongs to the slot,
     not to the page); bottom clears the 57px mobile action bar. */
  .chat-widget-slot {
    position: fixed;
    right: 0;
    bottom: 72px;
    z-index: 15;
    width: 56px;
    height: 56px;
    border: 1px dashed rgba(255, 255, 255, .3);
    border-radius: 50%;
    background: rgba(0, 54, 79, .6);
    pointer-events: none;
  }
  .chat-widget-slot.whatsapp-link:not([hidden]) {
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .35);
    background: #128c7e;
    color: #fff;
    font-size: .58rem;
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
    text-decoration: none;
    pointer-events: auto;
  }
  .mcb-link.whatsapp-link { background: #128c7e; color: #fff; }
  [hidden] { display: none !important; }
  /* M08: mobile action bar (configurator + contact). No phone link:
     no confirmed phone number (M06 WAITING_ASSET). */
  .mobile-contact-bar {
    position: fixed;
    inset: auto 0 0;
    z-index: 14;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    padding: env(safe-area-inset-bottom) 0 0;
    background: rgba(0, 36, 61, .92);
    backdrop-filter: blur(10px);
    border-top: 1px solid var(--line);
  }
  .mcb-link {
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .5rem .75rem;
    text-decoration: none;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
    overflow-wrap: anywhere;
  }
  .mcb-link.primary { background: linear-gradient(135deg, var(--accent), #ffa811); color: #00243d; }
  .mcb-link.ghost { color: var(--text); }
  /* Keep the reserved widget corner clear of the bar and keep content
     (footer, form button, contact note) above the fixed bar. */
  .footer { margin-bottom: 76px; }
  .contact { padding-bottom: 8.5rem; }
  .hero { padding-bottom: calc(76px + env(safe-area-inset-bottom) + 1rem); }
}

@media (min-width: 761px) {
  .mobile-contact-bar { display: none; }
  .chat-widget-slot { display: none; }
}

/* F08b: report preview (screen) — readable report for the advisor result view */
.advisor-report-host { padding: 1.5rem 0; }
.advisor-report {
  max-width: 720px;
  padding: 2.25rem;
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--text);
}
.advisor-report-header { padding-bottom: 1.4rem; border-bottom: 1px solid var(--line); }
.advisor-report-eyebrow {
  margin: 0 0 .8rem;
  color: var(--brand);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.advisor-report-title { margin: 0 0 .6rem; font-size: 1.9rem; letter-spacing: -.03em; line-height: 1.1; }
.advisor-report-path { margin: 0; color: var(--muted); font-size: .92rem; }
.advisor-report-section { padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.advisor-report-section:last-of-type { border-bottom: 0; }
.advisor-report-heading { margin: 0 0 .9rem; font-size: .78rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; color: var(--brand); }
.advisor-report-facts { margin: 0; display: grid; gap: .55rem; }
.advisor-report-fact { display: grid; grid-template-columns: 10.5rem 1fr; gap: .9rem; }
.advisor-report-fact dt { color: var(--muted); font-size: .82rem; font-weight: 750; }
.advisor-report-fact dd { margin: 0; overflow-wrap: anywhere; }
.advisor-report-answers { margin: 0; padding-left: 1.4rem; display: grid; gap: .95rem; }
.advisor-report-question { margin: 0 0 .2rem; font-weight: 720; color: var(--text); font-size: .95rem; }
.advisor-report-answer { margin: 0; color: var(--muted); font-size: .95rem; }
.advisor-report-recommendation { margin: 0 0 .6rem; font-size: 1.05rem; font-weight: 700; }
.advisor-report-capacity { margin: 0; color: var(--muted); font-size: .92rem; }
.advisor-report-list { margin: 0; padding-left: 1.3rem; display: grid; gap: .5rem; color: #d2e6f1; font-size: .94rem; }
.advisor-report-nextstep { margin: 0; color: var(--text); }
.advisor-report-empty { margin: 0; color: var(--muted); font-style: italic; }
.advisor-report-disclaimer { margin: 1.2rem 0 0; color: var(--muted); font-size: .8rem; }
.advisor-report-demo {
  margin: 1.5rem 0 0;
  padding: .95rem 1.15rem;
  border: 1px solid rgba(255, 186, 22, .4);
  background: rgba(255, 186, 22, .08);
  color: var(--accent);
  font-size: .85rem;
  font-weight: 640;
}
.advisor-report-demo span:first-child { font-weight: 850; letter-spacing: .05em; }
@media (max-width: 640px) {
  .advisor-report { padding: 1.4rem; }
  .advisor-report-fact { grid-template-columns: 1fr; gap: .15rem; }
}

/* F08b: print / PDF — light background, dark text, no decorative backgrounds/shadows.
   The report lives inside #main > .section#advisory > #advisor.advisor > .advisor-result,
   so those ancestors are explicitly kept visible when the page chrome is hidden. */
@media print {
  @page { margin: 14mm; }
  html, body { background: #fff; color: #101820; }
  .site-header, .footer, .nav, .hero-glow, .scroll-cue, .skip-link,
  .advisor-actions, .advisor-contact, .advisor-step-label, .advisor-path-title,
  .advisor-path, .advisor-questions, .advisor-reset-notice, .section-heading {
    display: none !important;
  }
  .section#advisory { display: block !important; padding: 0; width: auto; }
  #advisor.advisor { display: block !important; opacity: 1 !important; filter: none !important; transform: none !important; }
  .advisor-result { display: block !important; }
  .advisor-report-host { display: block !important; padding: 0; }
  .advisor-report { max-width: none; padding: 0; border: 0; background: #fff; color: #101820; }
  .advisor-report-header { border-bottom: 2px solid #101820; padding-bottom: .8rem; }
  .advisor-report-eyebrow { color: #33525f; text-transform: none; letter-spacing: .05em; }
  .advisor-report-title { font-size: 1.35rem; }
  .advisor-report-path { color: #33525f; }
  .advisor-report-section { padding: .8rem 0; border-bottom: 1px solid #c9d4dc; break-inside: avoid; }
  .advisor-report-heading { color: #101820; }
  .advisor-report-fact { display: block; }
  .advisor-report-fact dt { color: #33525f; font-weight: 800; }
  .advisor-report-fact dd { margin: 0 0 .55rem; color: #101820; }
  .advisor-report-question { color: #101820; }
  .advisor-report-answer { color: #101820; }
  .advisor-report-list { color: #101820; }
  .advisor-report-empty { color: #33525f; }
  .advisor-report-disclaimer { color: #33525f; }
  .advisor-report-demo {
    border: 1px solid #101820;
    background: #fff;
    color: #101820;
    display: block;
    visibility: visible;
  }
}

/* Publication preparation: predictable visibility and accessible advisor controls. */
[hidden] { display: none !important; }
.button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.advisor-actions:not([hidden]), .advisor-contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-block: 24px; }
.advisor-options .option { background: #e3e8ec; color: #152b38; text-transform: none; letter-spacing: 0; text-align: left; }
.advisor-options .option[aria-pressed="true"] { background: var(--brand); color: #00243d; outline: 3px solid currentColor; outline-offset: 2px; }
.advisor-contact-field { margin-block: 20px; max-width: 600px; }
.advisor-contact-label { display: block; margin-bottom: 8px; }
.advisor-contact-input { width: 100%; padding: 12px; font: inherit; }
.advisor-contact-consent-label { display: flex; align-items: flex-start; gap: 12px; }
.advisor-contact-consent-label input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; padding: 0; margin: 3px 0 0; }
.advisor-contact-consent-label span { min-width: 0; overflow-wrap: anywhere; }
.configurator-page .site-header { position: relative; }
.configurator-page #advisory { padding-top: 40px; }
.configurator-page .nav { flex-wrap: wrap; }
.configurator-page .nav > .button { text-transform: none; letter-spacing: 0; min-width: 0; }
.configurator-page .language-switcher { flex-shrink: 0; margin-left: auto; }
.business-contact { font-style: normal; margin-bottom: 28px; line-height: 1.8; }
.taste-home .business-contact { grid-column: 1; grid-row: 2; }
.taste-home #contact .lead-form { grid-column: 2; grid-row: 1 / span 2; }
.ftpreview-article-list article { padding-block: 24px; }
.ftpreview-article-list h2 { font-size: clamp(24px, 4vw, 36px); }
.ftpreview-article-list nav a { display: inline-block; padding: 12px; }
@media (max-width: 600px) {
  .taste-home #contact .business-contact, .taste-home #contact .lead-form { grid-column: auto; grid-row: auto; }
  .configurator-page .nav { gap: 10px; }
  .configurator-page .nav > .button { order: 3; flex-basis: 100%; justify-content: flex-start; }
  .advisor-report { padding: 20px; }
  .advisor-report-fact { grid-template-columns: 1fr; gap: 2px; }
  .advisor-options .option { max-width: 100%; overflow-wrap: anywhere; }
}

/* Keep project typography when rendered inside the existing WordPress theme. */
.configurator-page h1,.configurator-page h2,.configurator-page h3{font-family:inherit}
body:not([class]) .articles-page h1,body:not([class]) .articles-page h2{font-family:inherit}
