/* SBVora v3 core: live region, print pipeline, print fixes for the normal page. */

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Print root for SBV.print(): never visible on screen. */
.sbv-print-root{display:none}

/* Named pages for SBV.print(node,{page}). Support varies by browser and printer driver. */
@page sbv-150x100{size:150mm 100mm;margin:0}
@page sbv-100x150{size:100mm 150mm;margin:0}
@page sbv-100x50{size:100mm 50mm;margin:0}
@page sbv-a4{size:A4;margin:10mm}

@media print{
  /* ---------- SBV.print(): only the print root ---------- */
  html.sbv-print-only,html.sbv-print-only body{margin:0!important;padding:0!important;background:#fff!important;color:#000!important;min-height:0!important;height:auto!important;overflow:visible!important}
  html.sbv-print-only body::before,html.sbv-print-only body::after{display:none!important;content:none!important}
  html.sbv-print-only body>*:not(.sbv-print-root){display:none!important}
  html.sbv-print-only .sbv-print-root{display:block!important;position:static!important;margin:0;padding:0;color:#000;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html.sbv-print-only[data-print-page="150x100"] .sbv-print-root{page:sbv-150x100}
  html.sbv-print-only[data-print-page="100x150"] .sbv-print-root{page:sbv-100x150}
  html.sbv-print-only[data-print-page="100x50"] .sbv-print-root{page:sbv-100x50}
  html.sbv-print-only[data-print-page="a4"] .sbv-print-root{page:sbv-a4}
  html.sbv-print-only .sbv-print-root *{animation:none!important;transition:none!important}

  /* ---------- Both: reveal content is always visible on paper (also inside SBV.print clones) ---------- */
  .reveal,.reveal.is-visible{opacity:1!important;transform:none!important;visibility:visible!important}
  .reveal *,.project-card .project-visual img,.section-intro h2 em,.studio-heading h2 em{clip-path:none!important}
  .hero-copy,.hero h1 .line>*,.hero-proof>*{opacity:1!important;transform:none!important}

  /* ---------- Normal page print (Ctrl+P): every rule below is scoped to html:not(.sbv-print-only) ---------- */
  @page{margin:14mm 12mm}
  html:not(.sbv-print-only){scroll-behavior:auto!important}
  html:not(.sbv-print-only) body{background:#fff!important;color:#071426!important;overflow:visible!important}
  html:not(.sbv-print-only) body::before{display:none!important}
  html:not(.sbv-print-only) body *,
  html:not(.sbv-print-only) body *::before,
  html:not(.sbv-print-only) body *::after{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;backdrop-filter:none!important}
  /* Ink on white. Opt out with .sbv-print-keep (keeps the element's own colours and backgrounds, printed exactly). */
  html:not(.sbv-print-only) main *:not(.sbv-print-keep):not(.sbv-print-keep *),
  html:not(.sbv-print-only) footer *:not(.sbv-print-keep):not(.sbv-print-keep *),
  html:not(.sbv-print-only) .site-header *:not(.sbv-print-keep):not(.sbv-print-keep *){color:#071426!important;-webkit-text-fill-color:#071426!important;background-color:transparent!important;background-image:none!important}
  html:not(.sbv-print-only) .sbv-print-keep,
  html:not(.sbv-print-only) .sbv-print-keep *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  html:not(.sbv-print-only) main section,
  html:not(.sbv-print-only) footer,
  html:not(.sbv-print-only) .site-header{background:#fff!important;color:#071426!important}
  html:not(.sbv-print-only) main section::before,
  html:not(.sbv-print-only) main section::after{background:none!important}
  html:not(.sbv-print-only) .live-device{transform:none!important}

  /* Decorative and interactive-only chrome. */
  html:not(.sbv-print-only) .intro,
  html:not(.sbv-print-only) canvas,
  html:not(.sbv-print-only) .fx-cursor,
  html:not(.sbv-print-only) .fx-cursor-dot,
  html:not(.sbv-print-only) [class^="fx-cursor"],
  html:not(.sbv-print-only) .scroll-progress,
  html:not(.sbv-print-only) .header-tools,
  html:not(.sbv-print-only) .menu-toggle,
  html:not(.sbv-print-only) #mainNav,
  html:not(.sbv-print-only) .header-cta,
  html:not(.sbv-print-only) .skip,
  html:not(.sbv-print-only) .signal-strip,
  html:not(.sbv-print-only) .kinetic,
  html:not(.sbv-print-only) .contact-aurora,
  html:not(.sbv-print-only) .contact-grid,
  html:not(.sbv-print-only) .hero-ambient,
  html:not(.sbv-print-only) .scroll-cue,
  html:not(.sbv-print-only) .visual-scan,
  html:not(.sbv-print-only) .live-glow,
  html:not(.sbv-print-only) .system-glow,
  html:not(.sbv-print-only) .orbit,
  html:not(.sbv-print-only) .orbit-line,
  html:not(.sbv-print-only) .system-links,
  html:not(.sbv-print-only) .logo-shine,
  html:not(.sbv-print-only) .fx-printhead,
  html:not(.sbv-print-only) .sbv-copy-buffer,
  html:not(.sbv-print-only) .process-line::after{display:none!important}

  /* Layout that only makes sense on screen. */
  html:not(.sbv-print-only) .site-header{position:static!important;height:auto!important;padding:0 0 6mm!important;border-bottom:1px solid #061a36!important;display:block!important}
  html:not(.sbv-print-only) .hero{min-height:0!important;padding:8mm 0 6mm!important}
  html:not(.sbv-print-only) .stack-card{position:relative!important;top:auto!important;transform:none!important;scale:none!important}
  html:not(.sbv-print-only) .tilt-card{transform:none!important}
  html:not(.sbv-print-only) .section,html:not(.sbv-print-only) .contact-section{padding-top:10mm!important;padding-bottom:10mm!important}
  html:not(.sbv-print-only) a{text-decoration:underline}

  /* Nothing may be wider than the printable area: the step strip wraps instead of scrolling,
     the system grid loses its negative screen margins. */
  html:not(.sbv-print-only) .live-steps{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;overflow:visible!important;width:auto!important;max-width:100%!important;gap:3mm!important;padding:0!important}
  html:not(.sbv-print-only) .live-step{flex:1 1 40mm!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;transform:none!important}
  html:not(.sbv-print-only) .system-orbit{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3mm!important;height:auto!important;max-width:100%!important;margin:0!important;transform:none!important;box-sizing:border-box!important}
  html:not(.sbv-print-only) .system-orbit .core-mark{position:relative!important;left:auto!important;top:auto!important;transform:none!important;grid-column:1/-1!important;margin:0 auto 2mm!important;width:40mm!important;height:40mm!important}
  html:not(.sbv-print-only) .system-node{position:relative!important;inset:auto!important;width:auto!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;transform:none!important}
  html:not(.sbv-print-only) .process-line{background:none!important;border:0!important;gap:3mm!important}
  html:not(.sbv-print-only) .service-card{padding-left:4mm!important;padding-right:4mm!important;box-sizing:border-box!important}
  html:not(.sbv-print-only) .contact-card div,html:not(.sbv-print-only) .contact-card div:first-child{padding:4mm 5mm!important;border-color:#cfdfeb!important}

  /* Dark cards print white with a 1px navy border. */
  html:not(.sbv-print-only) .project-card,
  html:not(.sbv-print-only) .project-dark,
  html:not(.sbv-print-only) .project-spain,
  html:not(.sbv-print-only) .project-light,
  html:not(.sbv-print-only) .mini-project,
  html:not(.sbv-print-only) .service-card,
  html:not(.sbv-print-only) .system-node,
  html:not(.sbv-print-only) .core-mark,
  html:not(.sbv-print-only) .live-demo,
  html:not(.sbv-print-only) .contact-card,
  html:not(.sbv-print-only) .process-line article,
  html:not(.sbv-print-only) .stat{background:#fff!important;border:1px solid #061a36!important;color:#071426!important}
  html:not(.sbv-print-only) .core-mark{border-radius:0!important}
  html:not(.sbv-print-only) .project-card,
  html:not(.sbv-print-only) .mini-project,
  html:not(.sbv-print-only) .service-card,
  html:not(.sbv-print-only) .system-node,
  html:not(.sbv-print-only) .process-line article,
  html:not(.sbv-print-only) .faq details,
  html:not(.sbv-print-only) .contact-card,
  html:not(.sbv-print-only) .stat,
  html:not(.sbv-print-only) .live-demo,
  html:not(.sbv-print-only) .live-step,
  html:not(.sbv-print-only) article,
  html:not(.sbv-print-only) figure,
  html:not(.sbv-print-only) img,
  html:not(.sbv-print-only) .privacy-copy h4{break-inside:avoid;page-break-inside:avoid}
  html:not(.sbv-print-only) h2,html:not(.sbv-print-only) h3,html:not(.sbv-print-only) h4,html:not(.sbv-print-only) .section-code{break-after:avoid;page-break-after:avoid}
  html:not(.sbv-print-only) p,html:not(.sbv-print-only) li{orphans:3;widows:3}
  /* Section codes sit in grid intros, where break-after is not honoured: keep each intro block together. */
  html:not(.sbv-print-only) .section-intro,html:not(.sbv-print-only) .studio-heading,html:not(.sbv-print-only) .faq>div:first-child,html:not(.sbv-print-only) .core-mark{break-inside:avoid;page-break-inside:avoid}
  html:not(.sbv-print-only) img{max-width:100%!important}

  /* Details are opened by core.js on beforeprint; never print their toggle glyphs. */
  html:not(.sbv-print-only) details>summary span{display:none!important}
}

/* Header language select at phone width: room for the longest name ("Português"). */
@media(max-width:560px){.language-picker select{width:96px;padding-inline:4px 2px}}
