/* LuminaForge: wspólny język wizualny podstron, bez zależności od trasy home. */
body.lumina-site {
    color-scheme: light;
    --lf-font-body: Arial, sans-serif;
    --lf-font-heading: 'Playfair Display', Georgia, serif;
    --lf-dark: var(--lh-paper);
    --lf-bg: var(--lh-paper);
    --lf-dark-card: var(--lh-matte);
    --lf-dark-lighter: var(--lh-paper);
    --lf-surface: var(--lh-matte);
    --lf-white: var(--lh-ink);
    --lf-offwhite: var(--lh-ink);
    --lf-text: var(--lh-ink);
    --lf-text-muted: var(--lh-muted);
    --lf-text-faint: var(--lh-muted);
    --lf-line: var(--lh-rule);
    --lf-line-color: var(--lh-rule);
    --lf-accent: var(--lh-accent);
    --lf-purple: var(--lh-accent);
    --lf-accent-deep: var(--lh-accent);
    --lf-accent-deeper: var(--lh-accent);
    --lf-accent-light: var(--lh-ink);
    --lf-accent-soft: var(--lh-muted);
    --lf-accent-rgb: 48, 83, 69;
    --lf-accent-deep-rgb: 48, 83, 69;
    --lf-accent-glow: transparent;
    --lf-on-accent: var(--lh-paper);
    --lf-dark-rgb: 245, 246, 240;
    --lf-dark-lighter-rgb: 231, 235, 223;
    --lf-text-muted-rgb: 98, 105, 97;
    --lf-radius: 0;
    --lf-radius-sm: 0;
    background: var(--lh-paper);
    color: var(--lh-ink);
    font-family: var(--lf-font-body);
    font-weight: 400;
    /* Luna dziedziczy tę samą paletę także po zmianie motywu. */
    --luna-bg: var(--lh-paper);
    --luna-surface: var(--lh-paper);
    --luna-surface-2: var(--lh-matte);
    --luna-surface-3: var(--lh-matte);
    --luna-text: var(--lh-ink);
    --luna-text-muted: var(--lh-muted);
    --luna-text-faint: var(--lh-muted);
    --luna-purple: var(--lh-accent);
    --luna-purple-deep: var(--lh-accent);
    --luna-accent-rgb: var(--lf-accent-rgb);
    --luna-accent-soft: var(--lh-accent);
    --luna-glow-bg: var(--lh-accent);
    --luna-on-accent: var(--lh-paper);
    --luna-border: var(--lh-rule);
    --luna-border-soft: var(--lh-rule);
    --luna-shadow: 0 12px 40px rgb(25 43 29 / .14);
    --luna-radius: 0;
    --luna-radius-sm: 0;
    --luna-font: var(--lf-font-body);
}
:root:not([data-theme="forest"]) body.lumina-site {
    color-scheme: dark;
    --lf-accent-rgb: 224, 223, 208;
    --lf-accent-deep-rgb: 224, 223, 208;
    --lf-dark-rgb: 32, 34, 32;
    --lf-dark-lighter-rgb: 43, 47, 41;
    --lf-text-muted-rgb: 176, 181, 171;
}
body.lumina-site :is(a,button,input,textarea,select):focus-visible {
    outline: 2px solid var(--lh-accent);
    outline-offset: 4px;
}
body.lumina-site :is(.lh-page,.cf-modal,.pp-modal,.pp-page) p { text-wrap: pretty; }
body.lumina-site :is(.lh-page,.cf-modal,.pp-modal) h1,
body.lumina-site :is(.lh-page,.cf-modal,.pp-modal) h2 { text-wrap: balance; }
body.lumina-site .page-content { background: var(--lh-paper); }
body.lumina-site :is(.editorial-container,.wyniki-container) {
    max-width: 1440px;
    padding: calc(var(--lf-nav-height) + 48px) var(--lh-gutter) 80px;
}
.lh-page-back {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-bottom: 28px;
    color: var(--lh-muted);
    font: 400 .88rem/1.5 Arial, sans-serif;
    text-decoration: none;
}
.lh-page-back:hover { color: var(--lh-ink); text-decoration: underline; text-underline-offset: 5px; }
body.lumina-site .editorial-kicker {
    display: block;
    color: var(--lh-muted);
    font: 400 .88rem/1.5 var(--lf-font-body);
    text-transform: none;
    letter-spacing: 0;
    margin-bottom: 16px;
}
body.lumina-site :is(.editorial-title,.item-spread-title) {
    font-family: var(--lf-font-heading);
    color: var(--lh-ink);
    font-size: clamp(2.6rem,5vw,4.8rem);
    font-weight: 500;
    line-height: 1.14;
    letter-spacing: -.04em;
}
body.lumina-site .editorial-subtitle { max-width: 40rem; font-size: 1.1rem; font-weight: 400; line-height: 1.75; }
/* Portfolio: zdjęcia i podpisy, jak na arkuszu prac na głównej. */
body.lumina-site .editorial-grid { gap: 48px 32px; margin-top: 48px; }
body.lumina-site .editorial-item {
    display: block;
    background: transparent;
    color: var(--lh-ink);
    text-decoration: none;
    border: 0;
    box-shadow: none;
    transform: none;
    border-radius: 0;
}
body.lumina-site .editorial-img-container { background: var(--lh-matte); }
body.lumina-site .editorial-img-container::after { content: none; }
body.lumina-site .editorial-img-container img { filter: none; transform: none; }
body.lumina-site .editorial-item:hover .editorial-img-container img { filter: none; }
body.lumina-site .editorial-item-info { padding: 18px 0 0; border-top: 1px solid var(--lh-rule); margin-top: 12px; }
body.lumina-site .editorial-item-title { font: 500 clamp(1.2rem,2vw,1.65rem)/1.3 var(--lf-font-body); letter-spacing: -.025em; }
body.lumina-site .editorial-item-category { text-transform: none; letter-spacing: 0; font-size: .87rem; }
body.lumina-site .editorial-item:hover .editorial-item-title { color: var(--lh-ink); text-decoration: underline; text-underline-offset: 5px; }
body.lumina-site .editorial-item-title { color: var(--lh-ink) !important; }
body.lumina-site .img-skeleton { pointer-events: none; }
body.lumina-site .tile-cta { border-radius: 0; background: var(--lh-paper); color: var(--lh-ink); box-shadow: none; }
body.lumina-site .nj-banner {
    width: 100%; text-align: left; font-family: inherit;
    margin: 36px 0; padding: 22px 0;
    background: transparent; border: 0; border-block: 1px solid var(--lh-rule);
    border-radius: 0; box-shadow: none; transform: none;
}
body.lumina-site :is(.nj-banner-icon,.print-quality-icon,.drone-legal-icon,.websites-offer-icon,.wyniki-counter-icon) {
    background: transparent; color: var(--lh-accent); box-shadow: none; border-radius: 0;
}
body.lumina-site :is(.nj-banner-title,.nj-banner-sub) { text-transform: none; letter-spacing: 0; }
body.lumina-site :is(.drone-legal-highlight,.print-quality-highlight) {
    background: var(--lh-matte); border: 0; border-radius: 0; box-shadow: none; padding: 32px;
}
body.lumina-site :is(.drone-legal-highlight,.print-quality-highlight)::before { content: none; }
body.lumina-site :is(.drone-legal-text,.print-quality-text) h3 { font: 500 1.35rem/1.4 var(--lf-font-body); }
body.lumina-site :is(.drone-legal-text,.print-quality-text) p { max-width: 65ch; color: var(--lh-muted); }
body.lumina-site .editorial-form-container {
    max-width: none; margin-top: 64px; padding-top: 40px; text-align: left !important;
}
body.lumina-site .editorial-form-container p { margin-left: 0 !important; margin-right: 0 !important; }
body.lumina-site .editorial-form-container .editorial-title { font-size: clamp(1.8rem,3vw,2.7rem) !important; }
body.lumina-site .btn-editorial {
    min-height: 44px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--lh-ink);
    border-radius: 0; background: transparent; color: var(--lh-ink); box-shadow: none;
    text-transform: none; letter-spacing: 0; font-size: 1rem; font-weight: 500;
}
body.lumina-site .btn-editorial::before { content: none; }
body.lumina-site .btn-editorial:hover { color: var(--lh-accent); border-color: var(--lh-accent); transform: none; }
body.lumina-site .btn-editorial:disabled { opacity: .5; cursor: not-allowed; }
/* Galeria zachowuje karuzelę, gesty i powiększanie zdjęć. */
body.lumina-site .item-spread-container { padding: calc(var(--lf-nav-height) + 40px) var(--lh-gutter) 64px; }
body.lumina-site .item-spread { max-width: 1344px; margin-inline: auto; gap: 48px; }
body.lumina-site .item-spread-content { padding: 24px 0; min-width: 0; }
body.lumina-site .item-spread-desc { font-weight: 400; max-width: 65ch; line-height: 1.8; }
body.lumina-site :is(.carousel-container,.item-spread-image) { border-radius: 0; background: var(--lh-matte); box-shadow: none; }
body.lumina-site .carousel-btn { min-width: 44px; min-height: 44px; background: var(--lh-paper); color: var(--lh-ink); border: 1px solid var(--lh-rule); border-radius: 0; box-shadow: none; }
body.lumina-site .carousel-counter { background: var(--lh-paper); color: var(--lh-ink); border-radius: 0; font-variant-numeric: tabular-nums; }
body.lumina-site .carousel-swipe-hint { color: var(--lh-ink); background: var(--lh-paper); border-radius: 0; }
body.lumina-site .carousel-open { border: 0; border-radius: 0; background: transparent; cursor: zoom-in; }
body.lumina-site .carousel-open:focus-visible { outline-offset: -4px; }
body.lumina-site .lightbox-counter { color: #efeee7; font-size: .88rem; font-variant-numeric: tabular-nums; text-align: center; margin-top: 12px; }
body.lumina-site .lightbox-caption { text-transform: none; letter-spacing: 0; }
body.lumina-site .lightbox-share { display: block; min-height: 44px; margin: 2px auto 0; padding: 0 6px; border: 0; background: none; color: #efeee7; font: inherit; font-size: .84rem; text-decoration: underline; text-decoration-color: rgb(239 238 231 / .35); text-underline-offset: 5px; cursor: pointer; opacity: .82; transition: opacity .2s ease; }
body.lumina-site .lightbox-share:hover, body.lumina-site .lightbox-share.is-done { opacity: 1; }
body.lumina-site .lightbox-share:focus-visible { outline: 2px solid #efeee7; outline-offset: 2px; }
/* Luna nie zasłania powiększonego zdjęcia ani przycisku „Wyślij” w formularzu. */
body.lumina-site:has(#modal-root > *, #cf-overlay) .luna-bubble { opacity: 0; visibility: hidden; pointer-events: none; }
body.lumina-site .fullscreen-hint-inner { background: var(--lh-paper); color: var(--lh-muted); border-radius: 0; box-shadow: none; text-transform: none; letter-spacing: 0; }
@media (min-width: 900px) {
    body.lumina-site .item-spread { min-height: 0; align-items: start; }
    body.lumina-site .gallery-spread-image { min-width: 0; max-width: none; flex: 1; height: clamp(420px,42vw,640px); min-height: 0; top: calc(var(--lf-nav-height) + 24px); }
    body.lumina-site .gallery-spread-content { flex: 1; }
}
/* Strony WWW i druk 3D. */
body.lumina-site .ws-case { padding-block: 40px; border-top: 1px solid var(--lh-rule); }
body.lumina-site .ws-case-title { font: 500 clamp(1.8rem,3vw,2.7rem)/1.2 var(--lf-font-heading); letter-spacing: -.03em; }
body.lumina-site .drone-legal-portfolio { display: block; color: var(--lh-ink); text-decoration: none; }
body.lumina-site .lh-offer-actions { display: flex; flex-wrap: wrap; gap: 20px 32px; }
body.lumina-site :is(.ws-case-label,.ws-fact dd) { color: var(--lh-muted); text-transform: none; letter-spacing: 0; }
body.lumina-site .ws-fact dt { color: var(--lh-ink); font-variant-numeric: tabular-nums; }
body.lumina-site .websites-work-shot { border-radius: 0; background: var(--lh-matte); border-color: var(--lh-rule); box-shadow: none; }
body.lumina-site .websites-work-bar { background: var(--lh-matte); color: var(--lh-muted); border-color: var(--lh-rule); }
body.lumina-site .websites-work-phone { border-color: var(--lh-rule); }
body.lumina-site .websites-quote-block { background: transparent; border: 0; border-left: 2px solid var(--lh-accent); border-radius: 0; box-shadow: none; }
body.lumina-site .websites-quote-text { color: var(--lh-ink); font-size: 1.2rem; max-width: 65ch; }
body.lumina-site .websites-offers { gap: 32px; }
body.lumina-site .websites-offer-card { padding: 24px 0; background: transparent; border: 0; border-top: 1px solid var(--lh-rule); border-radius: 0; transform: none; box-shadow: none; }
body.lumina-site .websites-offer-card h3 { font: 500 1.25rem/1.4 var(--lf-font-body); }
body.lumina-site .websites-feature { background: transparent; border-radius: 0; border: 0; border-bottom: 1px solid var(--lh-rule); padding: 18px 0; transform: none; }
body.lumina-site .lf-shop { background: var(--lh-matte); border: 1px solid var(--lh-rule); border-radius: 0; box-shadow: none; transform: none; }
body.lumina-site .lf-shop::before { content: none; }
body.lumina-site .lf-shop-soon { color: var(--lh-accent); border-color: var(--lh-rule); background: transparent; border-radius: 0; letter-spacing: 0; text-transform: none; }
/* Kontakt: cztery czytelne wiersze zamiast ciemnych kafelków. */
body.lumina-site .contact-grid { grid-template-columns: 1fr 1fr; gap: 0 48px; margin-top: 48px; }
body.lumina-site .contact-card {
    display: grid; grid-template-columns: 44px minmax(0,1fr); column-gap: 20px;
    align-items: start; text-align: left; padding: 28px 0; min-width: 0;
    background: transparent !important; border: 0; border-top: 1px solid var(--lh-rule) !important;
    border-radius: 0; box-shadow: none; transform: none; color: var(--lh-ink);
}
body.lumina-site .contact-card-icon { grid-row: span 2; width: 44px; height: 44px; margin: 0; background: transparent; color: var(--lh-accent); border-radius: 0; transform: none; }
body.lumina-site .contact-card-title { font: 500 1.3rem/1.4 var(--lf-font-body); }
body.lumina-site .contact-card-value { grid-column: 2; word-break: normal; overflow-wrap: anywhere; }
body.lumina-site .contact-card:hover .contact-card-title { text-decoration: underline; text-underline-offset: 5px; }
/* Wyniki i ekran uprawnień. Dane oraz mechanizm PIN pozostają wspólne. */
body.lumina-site .wyniki-hero { text-align: left; }
body.lumina-site .wyniki-hero .editorial-subtitle { margin-inline: 0; text-align: left; }
body.lumina-site .wyniki-pills { justify-content: flex-start; }
body.lumina-site :is(.wyniki-badge,.wyniki-pill) { background: transparent; color: var(--lh-accent); border: 0; padding-inline: 0; border-radius: 0; letter-spacing: 0; text-transform: none; box-shadow: none; backdrop-filter: none; }
body.lumina-site .wyniki-counters-card { background: var(--lh-matte); border: 0; border-radius: 0; box-shadow: none; }
body.lumina-site .wyniki-counter-num { color: var(--lh-ink); background: none; -webkit-text-fill-color: currentColor; font-variant-numeric: tabular-nums; }
body.lumina-site .phone-glow { display: none; }
body.lumina-site .cert-page { padding-top: calc(var(--lf-nav-height) + 40px); }
body.lumina-site :is(.cert-card,.cert-lock-icon,.cert-numpad-btn,.cert-desktop-input,.cert-pdf-viewer) { background: var(--lh-matte); color: var(--lh-ink); border-color: var(--lh-rule); border-radius: 0; box-shadow: none; }
body.lumina-site :is(.cert-numpad-btn,.cert-desktop-input):hover { background: var(--lh-paper); }
/* Formularz i polityka prywatności, także otwierane ze strony głównej. */
body.lumina-site .cf-overlay { background: rgb(25 32 26 / .55); }
body.lumina-site :is(.cf-modal,.pp-modal,.editorial-modal) { background: var(--lh-paper); border: 1px solid var(--lh-rule); border-radius: 0; box-shadow: 0 12px 40px rgb(25 43 29 / .14); }
body.lumina-site .cf-modal { padding: 32px; max-height: calc(100dvh - 32px); }
body.lumina-site .cf-overlay.active .cf-modal { animation: cfModalIn .35s ease both; }
body.lumina-site .cf-modal::before,
body.lumina-site .cf-title::after,
body.lumina-site .pp-ambient-glow,
body.lumina-site .pp-modal-header::after { display: none; }
body.lumina-site .cf-title { font-size: 2rem; }
body.lumina-site .cf-label { letter-spacing: 0; text-transform: none; font-size: .9rem; color: var(--lh-ink); }
body.lumina-site :is(.cf-input,.cf-textarea) { background: var(--lh-paper); color: var(--lh-ink); border: 1px solid var(--lh-rule); border-radius: 0; font-size: 1rem; }
body.lumina-site :is(.cf-input,.cf-textarea)::placeholder { color: var(--lh-muted); opacity: .8; }
body.lumina-site :is(.cf-input,.cf-textarea):focus { border-color: var(--lh-accent); box-shadow: none; }
body.lumina-site :is(.cf-input,.cf-textarea)[aria-invalid="true"] { border-color: #9f2f28; }
body.lumina-site .cf-submit { background: var(--lh-accent); color: var(--lh-paper); border-radius: 0; letter-spacing: 0; text-transform: none; font-size: 1rem; box-shadow: none; }
body.lumina-site .cf-close { min-width: 44px; min-height: 44px; color: var(--lh-ink); }
body.lumina-site .cf-status.success { color: var(--lh-accent); background: var(--lh-matte); }
body.lumina-site .cf-status.error { color: #9f2f28; background: #fceae6; }
body.lumina-site .cf-status a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
:root:not([data-theme="forest"]) body.lumina-site .cf-status.error { color: #f5b6aa; background: #422b27; }
body.lumina-site :is(.pp-modal-header,.cert-pdf-header) { background: var(--lh-paper); border-color: var(--lh-rule); }
body.lumina-site :is(.pp-title-accent,.pp-title em) { background: none; color: var(--lh-accent); -webkit-text-fill-color: currentColor; }
body.lumina-site .pp-modal-section { border-color: var(--lh-rule); }
body.lumina-site .pp-page { background: var(--lh-paper); color: var(--lh-ink); }
body.lumina-site .pp-page::before,
body.lumina-site .pp-page::after { content: none; }
body.lumina-site .pp-lead { color: var(--lh-muted); font-weight: 400; }
body.lumina-site :is(.pp-data-card,.pp-contact) { background: var(--lh-matte); border: 0; border-radius: 0; box-shadow: none; }
body.lumina-site .pp-data-card::before { content: none; }
body.lumina-site :is(.pp-data-card p,.pp-section p,.pp-section li) { color: var(--lh-muted); }
body.lumina-site .pp-data-icon { background: transparent; border-radius: 0; }
body.lumina-site .pp-callout { background: var(--lh-matte); border-color: var(--lh-rule); border-left-color: var(--lh-accent); border-radius: 0; }
body.lumina-site .pp-contact { padding: 32px; }
body.lumina-site :is(.pp-back,.pp-eyebrow) { text-transform: none; letter-spacing: 0; }
/* Osobny cennik korzysta z tych samych tokenów; nie importuje Bootstrapu. */
body.lumina-pricing {
    --purple: var(--lh-accent); --purple-deep: var(--lh-accent); --purple-glow: transparent;
    --dark: var(--lh-paper); --card: var(--lh-matte); --card-2: var(--lh-matte);
    --surface: var(--lh-matte); --line: var(--lh-rule); --line-strong: var(--lh-rule);
    --text: var(--lh-ink); --muted: var(--lh-muted); --white: var(--lh-ink);
    --sans: Arial, sans-serif; --r: 0; --r-sm: 0;
    background-image: none;
}
body.lumina-pricing nav.top { background: var(--lh-paper); backdrop-filter: none; }
body.lumina-pricing .brand { text-decoration: none; letter-spacing: -.02em; }
body.lumina-pricing .dot { animation: none; }
body.lumina-pricing :is(.pkg,.mod,.abo,.ex,.note) { background: var(--lh-matte); box-shadow: none; transform: none; }
body.lumina-pricing .mod .ico { background: transparent; border: 0; border-radius: 0; }
body.lumina-pricing section .head { text-align: left; }
body.lumina-pricing section .head p { margin-left: 0; }
body.lumina-pricing .pkg.featured::before { border-radius: 0; color: var(--lh-paper); letter-spacing: 0; }
body.lumina-pricing .hero .eyebrow { background: transparent; border-radius: 0; padding-left: 0; }
body.lumina-pricing em[style] { color: var(--lh-muted) !important; }
body.lumina-pricing :is(.pkgs,.mods,.abo-grid,.ex-grid) { grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); }
body.lumina-pricing .navlinks a { display: inline-flex; align-items: center; min-height: 44px; }
body.lumina-site :is(#back-to-top,.cart-count) { border-radius: 0; background: var(--lh-accent); color: var(--lh-paper); box-shadow: none; }
body.lumina-site .lf-veil { background: var(--lh-paper); color: var(--lh-ink); }
body.lumina-site .lf-veil-aurora { display: none; }
body.lumina-site .lf-veil-logo-line { color: var(--lh-ink); }
body.lumina-site .lf-veil-dot { color: var(--lh-accent); animation: none; }
body.lumina-site .lf-veil-label { color: var(--lh-muted); text-transform: none; letter-spacing: 0; }
body.lumina-site .lf-veil-bar { background: var(--lh-rule); }
body.lumina-site .lf-veil-bar span { background: var(--lh-accent); }
body.lumina-site .luna-panel { border: 1px solid var(--lh-rule); }
body.lumina-site .luna-header::after { display: none; }
body.lumina-site .luna-bubble { background: var(--lh-accent); color: var(--lh-paper); border-radius: 0; box-shadow: none; }
@media (max-width: 767px) {
    body.lumina-site :is(.editorial-container,.wyniki-container) { padding-top: calc(var(--lf-nav-height) + 24px); padding-bottom: 48px; }
    .lh-page-back { margin-bottom: 20px; }
    body.lumina-site .editorial-grid { gap: 32px; margin-top: 32px; }
    body.lumina-site .contact-grid { grid-template-columns: 1fr; gap: 0; margin-top: 32px; }
    body.lumina-site :is(.drone-legal-highlight,.print-quality-highlight) { padding: 24px; }
    body.lumina-site .item-spread { gap: 20px; }
    body.lumina-site .item-spread-content { padding: 12px 0; }
    body.lumina-site .ws-case { padding-block: 28px; grid-template-columns: 1fr; }
    body.lumina-site .ws-case-reverse .ws-case-visual { order: 0; }
    body.lumina-site .cf-modal { padding: 24px 20px; }
    body.lumina-pricing nav.top .wrap { padding-inline: var(--lh-gutter); }
    body.lumina-pricing .navlinks { gap: 4px 16px; }
}
@media (prefers-reduced-motion: reduce) {
    body.lumina-site :is(.lh-page,.cf-modal,.pp-modal,.pp-page) *,
    body.lumina-pricing * { animation: none !important; transition: none !important; }
    body.lumina-site :is(.reveal,.fade-in-up,.pp-anim,.pp-section-animated) { opacity: 1; transform: none; }
    body.lumina-site .skel-fade-out { display: none; }
}
