/* ProRife — main.css (skonsolidowany design system, jedno źródło prawdy) */

/* ─── ProRife tokens — Warm Editorial base, forest-green accent ── */
    :root {
      --bg:            #ffffff;
      --surface:       #f7f7f5;
      --surface-tint:  #f7f7f5;
      --fg:            #1a1a1a;
      --fg-2:          #3a3a3a;
      --muted:         #6b6b6b;
      --border:        #e6e6e3;
      --border-soft:   #f0f0ee;

      /* Brand: forest green as primary accent */
      --accent:        #2f5b4f;
      --accent-on:     oklch(97% 0.01 130);
      --accent-hover:  color-mix(in oklab, var(--accent), black 10%);
      --accent-soft:   color-mix(in oklab, var(--accent), transparent 88%);

      /* Terracotta: secondary accent, max 1× per screen */
      --terra:         #9b5b32;
      --terra-soft:    color-mix(in oklab, var(--terra), transparent 86%);

      /* Dark-section text tokens */
      --on-dark:       oklch(97% 0.01 130);
      --on-dark-dim:   oklch(92% 0.01 145 / 0.65);
      --on-dark-border: oklch(100% 0 0 / 0.18);
      --on-dark-surface: oklch(100% 0 0 / 0.08);

      --fg-soft:       color-mix(in oklab, var(--fg), transparent 94%);

      /* Typography */
      --font-display:  'Fraunces', 'Iowan Old Style', Georgia, serif;
      --font-body:     'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
      --font-mono:     var(--font-body);

      /* Type scale */
      --fs-h1:   clamp(44px, 5.6vw, 80px);
      --fs-h2:   clamp(32px, 4vw, 54px);
      --fs-h3:   22px;
      --fs-lead: 19px;
      --fs-body: 16px;
      --fs-meta: 13px;

      /* Spacing — 8-pt grid */
      --gap-xs:  8px;
      --gap-sm:  12px;
      --gap-md:  20px;
      --gap-lg:  32px;
      --gap-xl:  56px;
      --gap-2xl: 96px;
      --container: 1120px;
      --gutter: 32px;
      --radius:    12px;
      --radius-lg: 16px;
    }
/* ─── Reset & base ──────────────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
      margin: 0;
      background: var(--bg);
      color: var(--fg);
      font-family: var(--font-body);
      font-size: var(--fs-body);
      line-height: 1.6;
      text-rendering: optimizeLegibility;
      -webkit-font-smoothing: antialiased;
    }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
p { text-wrap: pretty; margin: 0; }
h1, h2, h3, h4 { text-wrap: balance; }
/* ─── Layout primitives ─────────────────────────────────────── */
    .container {
      max-width: var(--container);
      margin-inline: auto;
      padding-inline: var(--gutter);
    }
.section { padding-block: clamp(56px, 9vw, var(--gap-2xl)); }
.section.section-alt { background: var(--surface); }
.stack { display: flex; flex-direction: column; }
.stack > * + * { margin-top: var(--gap-md); }
.row         { display: flex; align-items: center; gap: var(--gap-md); }
.row-between { display: flex; align-items: center; justify-content: space-between; gap: var(--gap-md); }
.grid-2   { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gap-lg); }
.grid-3   { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap-lg); }
.grid-4   { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap-md); }
.grid-2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: var(--gap-xl); align-items: start; }
.grid-1-2 { display: grid; grid-template-columns: 1fr 2fr; gap: var(--gap-xl); align-items: start; }
@media (max-width: 920px) {
      .grid-2, .grid-3, .grid-4, .grid-2-1, .grid-1-2 { grid-template-columns: 1fr; }
    }
@media (max-width: 640px) {
      :root { --gutter: 20px; --gap-xl: 40px; --gap-2xl: 64px; }
    }
/* ─── Typography ─────────────────────────────────────────────── */
    .h1, h1 { font-family: var(--font-display); font-size: var(--fs-h1); line-height: 1.05; letter-spacing: -0.02em; margin: 0; font-weight: 400; }
.h2, h2 { font-family: var(--font-display); font-size: var(--fs-h2); line-height: 1.1; letter-spacing: -0.015em; margin: 0; font-weight: 400; }
.h3, h3 { font-size: var(--fs-h3); font-weight: 600; line-height: 1.3; letter-spacing: -0.005em; margin: 0; }
.lead   { font-size: var(--fs-lead); line-height: 1.6; color: var(--muted); max-width: 60ch; margin: 0; }
.eyebrow { display: none; }
.meta { font-family: var(--font-mono); font-size: var(--fs-meta); color: var(--muted); }
.num  { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
/* ─── Nav ────────────────────────────────────────────────────── */
    .topnav {
      position: sticky; top: 0; z-index: 100;
      background: color-mix(in oklch, var(--bg) 90%, transparent);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid var(--border-soft);
    }
.topnav-inner {
      display: flex; align-items: center; justify-content: space-between;
      padding-block: 15px;
      gap: var(--gap-md);
    }
.logo {
      font-family: var(--font-display);
      font-size: 20px; font-weight: 400;
      letter-spacing: -0.01em;
      display: flex; align-items: center; gap: 8px;
      color: var(--fg); flex-shrink: 0;
    }
.logo-leaf { width: 20px; height: 20px; color: var(--accent); flex-shrink: 0; }
.nav-desktop { display: flex; gap: 26px; align-items: center; }
.nav-desktop a { font-size: 14px; color: var(--muted); transition: color 0.15s; white-space: nowrap; }
.nav-desktop a:hover { color: var(--fg); }
.nav-desktop a.active { color: var(--fg); border-bottom: 1.5px solid var(--accent); padding-bottom: 1px; }
.btn-phone {
      display: inline-flex; align-items: center; gap: 7px;
      background: var(--accent); color: var(--accent-on);
      border-radius: var(--radius); font-size: 14px;
      padding: 10px 18px; font-weight: 500;
      border: none; transition: background 0.15s;
      white-space: nowrap;
    }
.btn-phone:hover { background: var(--accent-hover); }
.burger-btn {
      display: none; background: none;
      border: 1px solid var(--border); border-radius: var(--radius);
      padding: 8px 12px; color: var(--fg);
      align-items: center; gap: 6px; font-size: 14px;
    }
@media (max-width: 860px) {
      .nav-desktop { display: none; }
      .burger-btn  { display: flex; }
      .phone-label { display: none; }
    }
/* ─── Mobile nav ─────────────────────────────────────────────── */
    .mobile-nav {
      display: none; position: fixed; inset: 0; z-index: 200;
      background: var(--bg); flex-direction: column;
      padding: 24px var(--gutter) 40px;
      overflow-y: auto;
    }
.mobile-nav.open { display: flex; }
.mobile-nav-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 40px; }
.mobile-nav nav { display: flex; flex-direction: column; }
.mobile-nav nav a {
      font-size: 26px; font-family: var(--font-display); font-weight: 300;
      color: var(--fg); padding: 14px 0; border-bottom: 1px solid var(--border-soft);
      transition: color 0.15s;
    }
.mobile-nav nav a:hover { color: var(--accent); }
.mobile-nav-cta { margin-top: 32px; }
/* ─── Buttons ────────────────────────────────────────────────── */
    .btn {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 11px 22px; border-radius: var(--radius);
      border: 1px solid transparent; font-size: 15px;
      font-weight: 500; letter-spacing: 0.005em;
      transition: transform 0.06s ease, background 0.15s ease, border-color 0.15s ease;
      text-decoration: none;
    }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--accent); color: var(--accent-on); border-color: var(--accent); }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn-secondary { background: transparent; color: var(--fg); border-color: var(--border); }
.btn-secondary:hover { border-color: var(--fg); }
.btn-ghost { background: transparent; color: var(--fg); border-color: transparent; padding-inline: 4px; }
.btn-ghost:hover { color: var(--accent); }
.btn-arrow::after { content: '→'; display: inline-block; transition: transform 0.15s ease; }
.btn-arrow:hover::after { transform: translateX(3px); }
/* ─── Cards ──────────────────────────────────────────────────── */
    .card {
      background: #fff;
      border: 0;
      border-radius: var(--radius-lg);
      padding: 30px;
      box-shadow: 0 1px 2px rgba(26,26,26,0.04), 0 8px 24px rgba(26,26,26,0.06);
    }
.card-flat   { background: transparent; border: 0; padding: 0; }
.card-rule   { background: transparent; border: 0; border-top: 1.5px solid var(--fg); padding: 24px 0 0; border-radius: 0; }
/* ─── Feature cell ───────────────────────────────────────────── */
    .feature .feature-mark {
      width: 40px; height: 40px;
      display: grid; place-items: center;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      color: var(--muted);
      margin-bottom: 18px;
      background: var(--surface);
    }
.feature .feature-mark svg { width: 20px; height: 20px; }
.feature h3 { margin-bottom: 8px; }
.feature p  { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.feature-link {
      display: inline-flex; align-items: center; gap: 5px;
      color: var(--fg-2); font-size: 14px; font-weight: 500;
      margin-top: 18px; border-bottom: 1px solid var(--border);
      padding-bottom: 1px; transition: color 0.15s, border-color 0.15s;
    }
.feature-link:hover { color: var(--accent); border-color: var(--accent-soft); }
.feature-link::after { content: '→'; transition: transform 0.15s; }
.feature-link:hover::after { transform: translateX(2px); }
/* ─── Stat ───────────────────────────────────────────────────── */
    .stat .stat-num {
      font-family: var(--font-display);
      font-size: clamp(48px, 7vw, 88px);
      line-height: 0.9; letter-spacing: -0.04em;
      color: var(--on-dark); font-weight: 300;
    }
.stat .stat-label { color: var(--on-dark-dim); font-size: 14px; margin-top: 10px; max-width: 28ch; line-height: 1.5; }
.stat .stat-unit  { font-size: 0.5em; opacity: 0.8; margin-left: 2px; }
/* ─── Quote ──────────────────────────────────────────────────── */
    .quote {
      font-family: var(--font-display);
      font-size: clamp(20px, 2.2vw, 28px);
      line-height: 1.4; letter-spacing: -0.01em;
      max-width: 34ch; font-weight: 300; font-style: italic; margin: 0;
    }
.quote-author { color: var(--muted); font-size: 13px; margin-top: var(--gap-md); font-family: var(--font-mono); letter-spacing: 0.03em; }
.quote-mark { font-family: var(--font-display); font-size: 120px; line-height: 0.7; color: var(--accent); opacity: 0.13; margin-bottom: -20px; }
/* ─── Pill / tag ─────────────────────────────────────────────── */
    .pill {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 4px 10px; background: var(--accent-soft);
      color: var(--accent); border-radius: 9999px;
      font-family: var(--font-mono); font-size: 11px;
      letter-spacing: 0.06em; text-transform: uppercase;
    }
.tag {
      display: inline-flex; align-items: center;
      padding: 4px 10px; background: transparent;
      color: var(--muted); border: 1px solid var(--border);
      border-radius: 9999px; font-size: 12px;
    }
/* ─── Image placeholder ──────────────────────────────────────── */
    .ph-img {
      background: linear-gradient(140deg, var(--accent-soft), var(--fg-soft)), var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      aspect-ratio: 16 / 10;
      display: grid; place-items: center; text-align: center;
      color: var(--muted); font-family: var(--font-mono);
      font-size: 12px; letter-spacing: 0.04em; padding: 20px;
      line-height: 1.6;
    }
.ph-img.square   { aspect-ratio: 1; }
.ph-img.portrait { aspect-ratio: 3 / 4; }
.ph-img.tall     { aspect-ratio: 4 / 5; }
.ph-img.wide     { aspect-ratio: 16 / 9; }
/* ─── Divider ─────────────────────────────────────────────────── */
    .rule        { border: 0; border-top: 1px solid var(--border); margin: 0; }
.rule-strong { border: 0; border-top: 1.5px solid var(--fg); margin: 0; }
/* ─── Hero ───────────────────────────────────────────────────── */
    .hero       { padding-block: clamp(72px, 11vw, 152px); }
.hero h1    { margin-bottom: var(--gap-md); }
.hero .lead { margin-bottom: var(--gap-lg); }
.hero-cta   { display: inline-flex; gap: var(--gap-sm); flex-wrap: wrap; }
.hero-split {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: var(--gap-2xl); align-items: center;
    }
@media (max-width: 920px) {
      .hero-split { grid-template-columns: 1fr; gap: 40px; }
      .hero-split .hero-img { order: -1; }
    }
/* ─── Dark section (SANOPLASMA) ─────────────────────────────── */
    .section-dark {
      background: var(--accent);
      --bg: var(--accent);
      --surface: var(--on-dark-surface);
      --fg: var(--on-dark);
      --muted: var(--on-dark-dim);
      --border: var(--on-dark-border);
      --accent-soft: var(--on-dark-surface);
      border-top: none !important;
    }
.section-dark h2 { color: var(--on-dark); }
.section-dark .lead { color: var(--on-dark-dim); }
.section-dark .eyebrow { color: var(--on-dark-dim); }
.section-dark .ph-img { background: var(--on-dark-surface); border-color: var(--on-dark-border); color: var(--on-dark-dim); }
.section-dark p { color: var(--on-dark-dim); }
.section-dark .stat .stat-num { color: var(--on-dark); }
.section-dark .stat .stat-label { color: var(--on-dark-dim); }
/* ─── Review cards ───────────────────────────────────────────── */
    .review-card {
      background: #fff;
      border: 0;
      border-radius: var(--radius-lg);
      padding: 30px;
      display: flex; flex-direction: column; gap: 16px;
      box-shadow: 0 1px 2px rgba(26,26,26,0.04), 0 8px 24px rgba(26,26,26,0.06);
    }
.review-text {
      font-family: var(--font-display);
      font-size: 17px; line-height: 1.55;
      font-style: italic; color: var(--fg-2);
      flex-grow: 1;
    }
.review-meta { display: flex; align-items: center; gap: 10px; margin-top: auto; }
.review-avatar {
      width: 36px; height: 36px; border-radius: 50%;
      background: var(--surface-tint);
      border: 1px solid var(--border);
      display: grid; place-items: center;
      font-family: var(--font-mono); font-size: 11px;
      color: var(--muted); flex-shrink: 0;
    }
.review-name { font-size: 14px; font-weight: 500; color: var(--fg); }
.review-source { font-family: var(--font-mono); font-size: 11px; color: var(--muted); letter-spacing: 0.03em; margin-top: 2px; }
.stars { color: var(--terra); letter-spacing: 2px; font-size: 14px; }
/* ─── Price list ─────────────────────────────────────────────── */
    .price-row {
      display: flex; align-items: baseline; justify-content: space-between;
      padding: 18px 0; border-bottom: 1px solid var(--border-soft);
      gap: var(--gap-md);
    }
.price-row:last-of-type { border-bottom: none; }
.price-name { font-size: 15px; color: var(--fg); }
.price-note { font-size: 13px; color: var(--muted); margin-top: 3px; }
.price-val { font-family: var(--font-mono); font-size: 17px; color: var(--fg); font-weight: 500; white-space: nowrap; flex-shrink: 0; }
/* ─── Footer ─────────────────────────────────────────────────── */
    .pagefoot {
      background: color-mix(in oklab, var(--accent), var(--bg) 93%);
      border-top: 1px solid var(--border);
      padding-block: clamp(48px, 7vw, 88px);
    }
.footer-grid {
      display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
      gap: var(--gap-xl);
    }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--gap-lg); } }
@media (max-width: 540px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-brand p { font-size: 14px; color: var(--muted); line-height: 1.65; margin-top: 12px; }
.footer-col h4 {
      font-family: var(--font-mono); font-size: 11px;
      letter-spacing: 0.09em; text-transform: uppercase;
      color: var(--accent); margin: 0 0 16px;
    }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.footer-col ul li { font-size: 14px; color: var(--muted); }
.footer-col ul a { color: var(--muted); transition: color 0.15s; }
.footer-col ul a:hover { color: var(--fg); }
.footer-bottom {
      margin-top: 48px; padding-top: 24px;
      border-top: 1px solid var(--border-soft);
      font-size: 12px; color: var(--muted); line-height: 1.7;
    }
/* ─── Scroll fade-in ─────────────────────────────────────────── */
    .fade-up { opacity: 0; transform: translateY(16px); transition: opacity 0.55s ease, transform 0.55s ease; }
.fade-up.visible { opacity: 1; transform: none; }
/* ─── CTA strip ──────────────────────────────────────────────── */
    .cta-strip h2 { margin: 0 auto 16px; max-width: 22ch; }
.cta-strip .lead { margin: 0 auto 32px; }
/* ─── Log row ────────────────────────────────────────────────── */
    .log-row { display: grid; grid-template-columns: 120px 1fr 100px; gap: var(--gap-lg); padding: 22px 0; border-top: 1px solid var(--border); align-items: baseline; }
.log-row .pull { text-align: right; }
@media (max-width: 640px) { .log-row { grid-template-columns: 1fr; gap: 6px; } .log-row .pull { display: none; } }
/* ─── ds-table ───────────────────────────────────────────────── */
    .ds-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ds-table th, .ds-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--border); }
.ds-table th { color: var(--muted); font-weight: 500; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.ds-table tbody tr:hover { background: var(--fg-soft); }
.num-col { font-family: var(--font-mono); font-variant-numeric: tabular-nums; text-align: right; }
/* ── Fix kontrastu sekcji ciemnych (2026-06-02) ── */
    .section-dark p, .section-dark li { color: #e9efe4; }
.section-dark .lead { color: #d2ddca; }
.section-dark ul svg, .section-dark li svg { opacity: 1 !important; color: #acc09c; }
/* ── Dropdown Oferta (desktop) + submenu (mobile) ── */
    .nav-has-sub { position:relative; display:flex; align-items:center; padding-block:10px; }
.nav-has-sub > a { font-size:14px; color:var(--muted); transition:color .15s; white-space:nowrap; }
.nav-has-sub:hover > a, .nav-has-sub:focus-within > a { color:var(--fg); }
.nav-sub { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px); min-width:236px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:8px; display:flex; flex-direction:column; gap:2px; opacity:0; visibility:hidden; transition:opacity .18s ease, transform .18s ease; box-shadow:0 10px 30px color-mix(in oklab,var(--fg),transparent 90%); z-index:120; }
.nav-has-sub:hover .nav-sub, .nav-has-sub:focus-within .nav-sub { opacity:1; visibility:visible; transform:translateX(-50%) translateY(2px); }
.nav-sub a { display:block; font-size:14px; color:var(--fg-2); padding:9px 12px; border-radius:8px; white-space:nowrap; border-bottom:0 !important; }
.nav-sub a:hover { background:var(--bg); color:var(--accent); }
.mobile-sub { display:flex; flex-direction:column; }
.mobile-sub .mobile-sub-link { font-size:18px !important; color:var(--muted) !important; padding:11px 0 11px 18px !important; font-family:var(--font-body) !important; }
/* pokolorowanie: zdjęcia w placeholderach */
.ph-img:has(img),.ph:has(img){padding:0!important;border:0!important;background:none!important;display:block!important;}
.ph-img>img,.ph>img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block;}
:root {
      --bg:#fbf6ee; --surface:#fffdf8; --surface-tint:oklch(97% 0.012 145);
      --fg:#1c1a17; --fg-2:#4c4037; --muted:#7a6d63;
      --border:#ded2c3; --border-soft:#eee4d7;
      --accent:#2f5b4f; --accent-on:oklch(97% 0.01 130);
      --accent-hover:color-mix(in oklab,var(--accent),black 10%);
      --accent-soft:color-mix(in oklab,var(--accent),transparent 88%);
      --terra:#9b5b32; --terra-soft:color-mix(in oklab,var(--terra),transparent 86%);
      --on-dark:oklch(97% 0.01 130); --on-dark-dim:oklch(92% 0.01 145 / 0.68);
      --fg-soft:color-mix(in oklab,var(--fg),transparent 94%);
      --font-display:'Fraunces','Iowan Old Style',Georgia,serif;
      --font-body:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
      --font-mono:ui-monospace,'JetBrains Mono','SF Mono',Menlo,monospace;
      --fs-h1:clamp(40px,5.2vw,72px); --fs-h2:clamp(28px,3.6vw,50px);
      --fs-lead:18px; --fs-body:16px; --fs-meta:13px;
      --gap-md:20px; --gap-lg:32px; --gap-xl:56px; --gap-2xl:96px;
      --container:1120px; --gutter:32px; --radius:12px; --radius-lg:16px;
    }
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--fg); font-family:var(--font-body); font-size:var(--fs-body); line-height:1.6; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; }
img, svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
p { text-wrap:pretty; margin:0; }
h1,h2,h3,h4 { text-wrap:balance; margin:0; }
ul { margin:0; padding:0; list-style:none; }
.container { max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
@media (max-width:640px) { :root { --gutter:20px; --gap-xl:40px; --gap-2xl:72px; } }
/* Typography */
    .h1 { font-family:var(--font-display); font-size:var(--fs-h1); line-height:1.04; letter-spacing:-0.025em; font-weight:300; }
.h2 { font-family:var(--font-display); font-size:var(--fs-h2); line-height:1.08; letter-spacing:-0.02em; font-weight:300; }
.lead { font-size:var(--fs-lead); line-height:1.62; color:var(--muted); max-width:58ch; }
.eyebrow { font-family:var(--font-mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); display:block; margin-bottom:14px; }
/* Nav */
    .topnav { position:sticky; top:0; z-index:100; background:color-mix(in oklch,var(--bg) 88%,transparent); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--border-soft); }
.topnav-inner { display:flex; align-items:center; justify-content:space-between; padding-block:14px; gap:var(--gap-md); }
.logo { font-family:var(--font-display); font-size:20px; font-weight:400; letter-spacing:-0.01em; display:flex; align-items:center; gap:8px; color:var(--fg); flex-shrink:0; }
.logo-leaf { width:20px; height:20px; color:var(--accent); flex-shrink:0; }
.nav-desktop { display:flex; gap:26px; align-items:center; }
.nav-desktop a { font-size:14px; color:var(--muted); transition:color 0.15s; white-space:nowrap; }
.nav-desktop a:hover { color:var(--fg); }
.nav-desktop a.active { color:var(--fg); border-bottom:1.5px solid var(--accent); padding-bottom:1px; }
.btn-phone { display:inline-flex; align-items:center; gap:7px; background:var(--accent); color:var(--accent-on); border-radius:var(--radius); font-size:14px; font-weight:500; padding:10px 18px; border:none; transition:background 0.15s; white-space:nowrap; }
.btn-phone:hover { background:var(--accent-hover); }
.burger-btn { display:none; background:none; border:1px solid var(--border); border-radius:var(--radius); padding:8px 12px; color:var(--fg); align-items:center; gap:6px; font-size:14px; }
@media (max-width:860px) { .nav-desktop { display:none; } .burger-btn { display:flex; } .phone-label { display:none; } }
/* Mobile nav */
    .mobile-nav { display:none; position:fixed; inset:0; z-index:200; background:var(--bg); flex-direction:column; padding:24px var(--gutter) 40px; overflow-y:auto; }
.mobile-nav.open { display:flex; }
.mobile-nav-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:40px; }
.mobile-nav nav { display:flex; flex-direction:column; }
.mobile-nav nav a { font-size:26px; font-family:var(--font-display); font-weight:300; color:var(--fg); padding:14px 0; border-bottom:1px solid var(--border-soft); transition:color 0.15s; }
.mobile-nav nav a:hover { color:var(--accent); }
.mobile-nav-cta { margin-top:32px; }
/* Buttons */
    .btn { display:inline-flex; align-items:center; gap:8px; padding:11px 22px; border-radius:var(--radius); border:1px solid transparent; font-size:15px; font-weight:500; letter-spacing:0.005em; transition:transform 0.06s ease,background 0.15s,border-color 0.15s; text-decoration:none; }
.btn:active { transform:translateY(1px); }
.btn-primary { background:var(--accent); color:var(--accent-on); border-color:var(--accent); }
.btn-primary:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
.btn-secondary { background:transparent; color:var(--fg); border-color:var(--border); }
.btn-secondary:hover { border-color:var(--fg); }
.btn-lg { font-size:16px; padding:14px 28px; }
.btn-on-dark { background:var(--accent-on); color:var(--accent); border-color:var(--accent-on); }
.btn-on-dark:hover { background:oklch(94% 0.01 130); border-color:oklch(94% 0.01 130); }
/* Placeholders */
    .ph-img { background:linear-gradient(140deg,var(--accent-soft),var(--fg-soft)); border:1px solid var(--border); border-radius:var(--radius-lg); display:grid; place-items:center; text-align:center; color:var(--muted); font-family:var(--font-mono); font-size:11px; letter-spacing:0.05em; line-height:1.6; overflow:hidden; }
.ph-img-label { padding:20px; }
/* Breadcrumbs */
    .breadcrumbs { display:flex; align-items:center; gap:8px; margin-bottom:18px; flex-wrap:wrap; }
.breadcrumbs a { font-family:var(--font-mono); font-size:11px; color:var(--muted); transition:color 0.15s; letter-spacing:0.04em; }
.breadcrumbs a:hover { color:var(--fg); }
.breadcrumbs-sep { font-family:var(--font-mono); font-size:11px; color:var(--border); }
.breadcrumbs-current { font-family:var(--font-mono); font-size:11px; color:var(--fg-2); letter-spacing:0.04em; }
/* Fade */
    .fade-up { opacity:0; transform:translateY(18px); transition:opacity 0.6s ease,transform 0.6s ease; }
.fade-up.visible { opacity:1; transform:none; }
/* Hero */
    .ons-hero { padding-block:clamp(56px,8vw,96px); border-bottom:1px solid var(--border); }
.ons-hero-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(40px,7vw,96px); align-items:center; }
@media (max-width:860px) { .ons-hero-grid { grid-template-columns:1fr; gap:40px; } }
.ons-hero-img { aspect-ratio:4/3; border-radius:var(--radius-lg); overflow:hidden; }
/* Misja */
    .misja { padding-block:clamp(64px,9vw,112px); }
.misja-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,8vw,104px); align-items:start; }
@media (max-width:860px) { .misja-grid { grid-template-columns:1fr; gap:40px; } }
.misja-img { aspect-ratio:3/4; border-radius:var(--radius-lg); overflow:hidden; }
.misja-pullquote { font-family:var(--font-display); font-size:clamp(20px,2.4vw,30px); line-height:1.3; font-weight:300; letter-spacing:-0.01em; font-style:italic; color:var(--fg); border-left:2px solid var(--accent); padding-left:24px; margin:32px 0; }
.misja-body { display:flex; flex-direction:column; gap:16px; }
.misja-body p { font-size:16px; line-height:1.72; color:var(--fg-2); }
.misja-pill { display:inline-flex; align-items:center; gap:8px; background:var(--accent-soft); border:1px solid color-mix(in oklab,var(--accent),transparent 72%); border-radius:9999px; padding:6px 14px; font-family:var(--font-mono); font-size:11px; letter-spacing:0.07em; text-transform:uppercase; color:var(--accent); }
/* Zespol */
    .zespol { padding-block:clamp(56px,8vw,96px); border-top:1px solid var(--border); }
.zespol-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); margin-top:56px; }
@media (max-width:760px) { .zespol-grid { grid-template-columns:1fr; gap:48px; } }
.team-card { display:flex; flex-direction:column; gap:0; }
.team-photo { aspect-ratio:3/4; border-radius:var(--radius-lg); overflow:hidden; margin-bottom:28px; }
.team-name { font-family:var(--font-display); font-size:clamp(22px,2.6vw,34px); font-weight:300; letter-spacing:-0.015em; line-height:1.1; margin-bottom:6px; }
.team-title { font-family:var(--font-mono); font-size:11px; letter-spacing:0.09em; text-transform:uppercase; color:var(--accent); margin-bottom:16px; }
.team-bio { font-size:15px; line-height:1.72; color:var(--muted); }
.team-bio strong { color:var(--fg-2); font-weight:500; }
/* Wartosci */
    .wartosci { padding-block:clamp(56px,8vw,96px); border-top:1px solid var(--border); background:color-mix(in oklab,var(--accent-soft),var(--bg) 50%); }
.wartosci-intro { max-width:600px; margin-bottom:64px; }
.wartosci-list { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(32px,5vw,56px); }
@media (max-width:700px) { .wartosci-list { grid-template-columns:1fr; gap:40px; } }
.wart-item { display:flex; flex-direction:column; gap:14px; }
.wart-num { font-family:var(--font-display); font-size:clamp(48px,7vw,80px); font-weight:300; line-height:0.85; letter-spacing:-0.04em; color:color-mix(in oklab,var(--accent),transparent 78%); }
.wart-title { font-size:18px; font-weight:500; letter-spacing:-0.005em; color:var(--fg); line-height:1.2; }
.wart-text { font-size:15px; line-height:1.72; color:var(--muted); }
/* Galeria skrot */
    .galeria-skrot { padding-block:clamp(56px,8vw,96px); border-top:1px solid var(--border); }
.galeria-header { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--gap-md); margin-bottom:48px; flex-wrap:wrap; }
.galeria-masonry { display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:auto auto; gap:14px; }
@media (max-width:700px) { .galeria-masonry { grid-template-columns:repeat(2,1fr); } }
@media (max-width:440px) { .galeria-masonry { grid-template-columns:1fr; } }
.gal-item { border-radius:var(--radius-lg); overflow:hidden; }
.gal-item:nth-child(1) { grid-column:1/3; aspect-ratio:16/9; }
.gal-item:nth-child(2) { aspect-ratio:3/4; }
.gal-item:nth-child(3) { aspect-ratio:4/5; }
.gal-item:nth-child(4) { aspect-ratio:4/5; }
.gal-item:nth-child(5) { aspect-ratio:3/4; }
@media (max-width:700px) {
      .gal-item:nth-child(1) { grid-column:1/3; aspect-ratio:4/3; }
      .gal-item:nth-child(2), .gal-item:nth-child(3), .gal-item:nth-child(4), .gal-item:nth-child(5) { aspect-ratio:1/1; }
    }
.gal-ph { width:100%; height:100%; background:linear-gradient(140deg,var(--accent-soft),var(--fg-soft)); display:grid; place-items:center; text-align:center; }
.gal-ph span { font-family:var(--font-mono); font-size:10px; color:var(--muted); letter-spacing:0.06em; line-height:1.7; padding:16px; }
/* CTA dark */
    .cta-dark { background:var(--accent); border-top:none !important; padding-block:clamp(56px,8vw,96px); }
.cta-dark .eyebrow { color:oklch(92% 0.01 145 / 0.55); }
.cta-dark .h2 { color:var(--on-dark); }
.cta-dark p { color:var(--on-dark-dim); margin-top:12px; }
.cta-dark-body { display:flex; flex-direction:column; align-items:flex-start; gap:var(--gap-md); max-width:600px; }
/* Footer */
    .pagefoot { background:color-mix(in oklab,var(--accent),var(--bg) 93%); border-top:1px solid var(--border); padding-block:clamp(48px,7vw,88px); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:var(--gap-xl); }
@media (max-width:860px) { .footer-grid { grid-template-columns:1fr 1fr; gap:var(--gap-lg); } }
@media (max-width:540px) { .footer-grid { grid-template-columns:1fr; } }
.footer-brand p { font-size:14px; color:var(--muted); line-height:1.65; margin-top:12px; }
.footer-col h4 { font-family:var(--font-mono); font-size:11px; letter-spacing:0.09em; text-transform:uppercase; color:var(--accent); margin:0 0 16px; }
.footer-col ul { display:flex; flex-direction:column; gap:9px; }
.footer-col ul li { font-size:14px; color:var(--muted); }
.footer-col ul a { color:var(--muted); transition:color 0.15s; }
.footer-col ul a:hover { color:var(--fg); }
.footer-bottom { margin-top:48px; padding-top:24px; border-top:1px solid var(--border-soft); font-size:12px; color:var(--muted); line-height:1.7; }
:root {
      --bg:#fbf6ee; --surface:#fffdf8; --surface-tint:oklch(97% 0.012 145);
      --fg:#1c1a17; --fg-2:#4c4037; --muted:#7a6d63;
      --border:#ded2c3; --border-soft:#eee4d7;
      --accent:#2f5b4f; --accent-on:oklch(97% 0.01 130);
      --accent-hover:color-mix(in oklab,var(--accent),black 10%);
      --accent-soft:color-mix(in oklab,var(--accent),transparent 88%);
      --terra:#9b5b32; --terra-soft:color-mix(in oklab,var(--terra),transparent 86%);
      --on-dark:oklch(97% 0.01 130); --on-dark-dim:oklch(92% 0.01 145 / 0.68);
      --on-dark-border:oklch(100% 0 0 / 0.18); --on-dark-surface:oklch(100% 0 0 / 0.08);
      --fg-soft:color-mix(in oklab,var(--fg),transparent 94%);
      --font-display:'Fraunces','Iowan Old Style',Georgia,serif;
      --font-body:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
      --font-mono:ui-monospace,'JetBrains Mono','SF Mono',Menlo,monospace;
      --fs-h1:clamp(40px,5.2vw,72px); --fs-h2:clamp(28px,3.6vw,50px);
      --fs-h3:21px; --fs-lead:18px; --fs-body:16px; --fs-meta:13px;
      --gap-xs:8px; --gap-sm:12px; --gap-md:20px; --gap-lg:32px; --gap-xl:56px; --gap-2xl:96px;
      --container:1120px; --gutter:32px; --radius:12px; --radius-lg:16px;
    }
.section { padding-block:clamp(56px,8vw,var(--gap-2xl)); }
.section + .section { border-top:1px solid var(--border); }
@media (max-width:640px) { :root { --gutter:20px; --gap-xl:40px; --gap-2xl:64px; } }
.meta { font-family:var(--font-mono); font-size:var(--fs-meta); color:var(--muted); }
.btn-arrow::after { content:'→'; display:inline-block; transition:transform 0.15s ease; }
.btn-arrow:hover::after { transform:translateX(3px); }
/* Image placeholders */
    .ph-img { background:linear-gradient(140deg,var(--accent-soft),var(--fg-soft)); border:1px solid var(--border); border-radius:var(--radius-lg); display:grid; place-items:center; text-align:center; color:var(--muted); font-family:var(--font-mono); font-size:11px; letter-spacing:0.05em; line-height:1.6; overflow:hidden; position:relative; }
.ph-img-label { padding:20px; position:relative; z-index:1; }
.ph-img.r43 { aspect-ratio:4/3; }
.ph-img.r34 { aspect-ratio:3/4; }
.ph-img.r45 { aspect-ratio:4/5; }
/* Sub-hero */
    .sub-hero { padding-block:clamp(48px,7vw,88px); }
.sub-hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,80px); align-items:center; }
@media (max-width:860px) { .sub-hero-grid { grid-template-columns:1fr; gap:28px; } }
/* Efekty (intro) */
    .efekty-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap-md); margin-top:var(--gap-xl); }
@media (max-width:860px) { .efekty-grid { grid-template-columns:1fr 1fr; gap:var(--gap-lg); } }
@media (max-width:540px) { .efekty-grid { grid-template-columns:1fr; } }
.efekt { border-top:1.5px solid var(--border); padding-top:20px; }
.efekt-num { font-family:var(--font-mono); font-size:11px; color:var(--accent); font-weight:600; letter-spacing:0.06em; margin-bottom:12px; display:block; }
.efekt h4 { font-size:17px; font-weight:600; letter-spacing:-0.008em; margin-bottom:8px; }
.efekt p { font-size:15px; color:var(--muted); line-height:1.65; }
/* Zabiegi */
    .zabiegi-wrap { display:flex; flex-direction:column; gap:10px; }
.zabieg-featured { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; display:grid; grid-template-columns:1fr 1fr; transition:box-shadow 0.22s,transform 0.22s; }
.zabieg-featured:hover { box-shadow:0 6px 32px color-mix(in oklab,var(--fg),transparent 90%); transform:translateY(-2px); }
.zabieg-feat-img { min-height:380px; aspect-ratio:unset; border-radius:0; border:0; }
.zabieg-feat-body { padding:36px 40px; display:flex; flex-direction:column; justify-content:space-between; }
@media (max-width:860px) { .zabieg-featured { grid-template-columns:1fr; } .zabieg-feat-img { min-height:220px; aspect-ratio:3/2; } .zabieg-feat-body { padding:24px; } }
.zabieg-grid-2x2 { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
@media (max-width:860px) { .zabieg-grid-2x2 { grid-template-columns:1fr; } }
.zabieg-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; transition:box-shadow 0.22s,transform 0.22s; }
.zabieg-card:hover { box-shadow:0 4px 24px color-mix(in oklab,var(--fg),transparent 91%); transform:translateY(-2px); }
.zabieg-card-img { aspect-ratio:4/3; flex-shrink:0; border-radius:0; border:0; }
.zabieg-card-body { padding:22px 26px; display:flex; flex-direction:column; flex:1; }
.zabieg-num { font-family:var(--font-mono); font-size:11px; letter-spacing:0.06em; color:var(--accent); font-weight:600; margin-bottom:7px; display:block; }
.zabieg-card-body h3 { font-family:var(--font-display); font-size:21px; font-weight:300; letter-spacing:-0.01em; line-height:1.2; margin-bottom:5px; }
.zabieg-feat-body h3 { font-family:var(--font-display); font-size:clamp(22px,2.4vw,30px); font-weight:300; letter-spacing:-0.015em; line-height:1.15; margin-bottom:5px; }
.zabieg-dur { font-family:var(--font-mono); font-size:11px; color:var(--muted); letter-spacing:0.04em; margin-bottom:14px; display:block; }
.zabieg-desc { font-size:15px; color:var(--muted); line-height:1.65; flex:1; }
.zabieg-price-row { display:flex; align-items:center; justify-content:space-between; margin-top:18px; padding-top:14px; border-top:1px solid var(--border-soft); }
.zabieg-price { font-family:var(--font-mono); font-size:18px; font-weight:500; color:var(--fg); }
.zabieg-price-note { font-family:var(--font-mono); font-size:11px; color:var(--muted); letter-spacing:0.03em; }
.zabieg-bonus { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:26px 30px; display:flex; align-items:flex-start; justify-content:space-between; gap:var(--gap-lg); transition:box-shadow 0.22s,transform 0.22s; }
.zabieg-bonus:hover { box-shadow:0 4px 24px color-mix(in oklab,var(--fg),transparent 91%); transform:translateY(-2px); }
@media (max-width:540px) { .zabieg-bonus { flex-direction:column; gap:20px; } }
.zabieg-bonus-info { flex:1; }
.zabieg-bonus-info h3 { font-family:var(--font-display); font-size:21px; font-weight:300; letter-spacing:-0.01em; margin-bottom:5px; }
.zabieg-bonus-info p { font-size:15px; color:var(--muted); line-height:1.65; max-width:50ch; }
.zabieg-bonus-prices { display:flex; flex-direction:column; gap:10px; text-align:right; flex-shrink:0; }
@media (max-width:540px) { .zabieg-bonus-prices { text-align:left; } }
.bonus-price-item .bp-val { font-family:var(--font-mono); font-size:20px; font-weight:500; color:var(--fg); display:block; }
.bonus-price-item .bp-note { font-family:var(--font-mono); font-size:11px; color:var(--muted); letter-spacing:0.03em; display:block; margin-top:1px; }
/* Steps */
    .steps-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap-lg); }
@media (max-width:860px) { .steps-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:480px) { .steps-grid { grid-template-columns:1fr; } }
.step { border-top:2px solid var(--fg); padding-top:20px; }
.step-num { font-family:var(--font-display); font-size:52px; line-height:1; font-weight:300; letter-spacing:-0.03em; color:color-mix(in oklab,var(--accent),transparent 25%); opacity:1; margin-bottom:14px; }
.step h4 { font-size:16px; font-weight:600; letter-spacing:-0.008em; margin-bottom:8px; }
.step p { font-size:15px; color:var(--muted); line-height:1.65; }
/* Review */
    .review-single { max-width:680px; margin-inline:auto; text-align:center; }
.review-stars { color:var(--terra); letter-spacing:2px; font-size:15px; margin-bottom:20px; display:block; }
.review-quote { font-family:var(--font-display); font-size:clamp(19px,2.6vw,26px); line-height:1.52; font-style:italic; font-weight:300; color:var(--fg); margin-bottom:20px; }
.review-who { font-family:var(--font-mono); font-size:12px; color:var(--muted); letter-spacing:0.04em; }
.cta-dark .eyebrow { color:oklch(92% 0.01 145 / 0.5); }
.cta-dark-inner { text-align:center; }
.cta-dark-inner h2 { color:var(--on-dark); max-width:22ch; margin-inline:auto; }
.cta-dark-inner p { color:var(--on-dark-dim); margin:16px auto 32px; max-width:46ch; font-size:var(--fs-lead); }
/* Efekty (intro) */
    .efekty-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap-lg); margin-top:var(--gap-xl); }
@media (max-width:860px) { .efekty-grid { grid-template-columns:1fr; } }
/* Hero */
    .cennik-hero { padding-block:clamp(48px,7vw,88px); border-bottom:1px solid var(--border); }
.cennik-hero-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,96px); align-items:center; }
@media (max-width:760px) { .cennik-hero-inner { grid-template-columns:1fr; gap:24px; } }
.cennik-hero-stat { text-align:right; }
@media (max-width:760px) { .cennik-hero-stat { text-align:left; } }
.hero-stat-num { font-family:var(--font-display); font-size:clamp(56px,10vw,110px); font-weight:300; line-height:0.9; letter-spacing:-0.04em; color:color-mix(in oklab,var(--accent),transparent 75%); }
.hero-stat-label { font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); margin-top:8px; }
/* Category sub-nav */
    .cat-subnav { position:sticky; top:52px; z-index:90; background:color-mix(in oklch,var(--bg) 94%,transparent); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--border-soft); }
.cat-subnav-inner { display:flex; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; }
.cat-subnav-inner::-webkit-scrollbar { display:none; }
.cat-link { font-family:var(--font-mono); font-size:11px; letter-spacing:0.09em; text-transform:uppercase; color:var(--muted); padding:14px 20px; white-space:nowrap; border-bottom:2px solid transparent; transition:color 0.15s,border-color 0.15s; }
.cat-link:hover { color:var(--fg); }
.cat-link.active { color:var(--fg); border-bottom-color:var(--accent); }
@media (max-width:540px) { .cat-subnav-inner { justify-content:space-between; } .cat-link { padding:12px 4px; font-size:10px; letter-spacing:0.03em; } }
/* Category sections */
    .cennik-cat { padding-block:clamp(56px,8vw,96px); border-top:1px solid var(--border); scroll-margin-top:100px; }
.cennik-cat-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:clamp(40px,8vw,96px); align-items:start; }
/* lewa kolumna przykleja się przy scrollu długiej listy (efekt realny na blokach 1 i 4, na krótkich brak ruchu = static) */
.cennik-cat-grid > div:first-child { position:sticky; top:116px; align-self:start; }
@media (max-width:860px) { .cennik-cat-grid { grid-template-columns:1fr; gap:var(--gap-lg); } .cennik-cat-grid > div:first-child { position:static; } }
.cat-bg-num { font-family:var(--font-display); font-size:clamp(72px,14vw,160px); font-weight:300; color:color-mix(in oklab,var(--accent),transparent 88%); line-height:0.85; letter-spacing:-0.04em; margin-bottom:-8px; }
.cat-title { font-family:var(--font-display); font-size:clamp(26px,3.4vw,46px); font-weight:300; letter-spacing:-0.02em; line-height:1.1; margin:12px 0 14px; }
.cat-lead { font-size:15px; color:var(--muted); line-height:1.65; max-width:44ch; }
.cat-cta { display:inline-flex; align-items:center; gap:6px; margin-top:24px; font-size:14px; font-weight:500; color:var(--accent); transition:gap 0.15s ease; }
.cat-cta:hover { gap:10px; }
/* Price list */
    .price-list { border-top:1.5px solid var(--fg); }
.price-featured { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:22px 0; border-bottom:1px solid var(--border); }
.pf-name { font-family:var(--font-display); font-size:19px; font-weight:300; letter-spacing:-0.01em; color:var(--fg); margin:0; }
.pf-note { font-family:var(--font-mono); font-size:11px; color:var(--muted); display:block; margin-top:5px; letter-spacing:0.03em; }
.pf-val { font-family:var(--font-mono); font-size:21px; font-weight:500; color:var(--accent); white-space:nowrap; flex-shrink:0; letter-spacing:-0.01em; padding-top:2px; }
.price-item { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--border-soft); }
.price-item:last-child { border-bottom:none; }
.pi-left { min-width:0; }
.pi-name { font-size:15px; color:var(--fg); display:block; }
.pi-note { font-family:var(--font-mono); font-size:11px; color:var(--muted); display:block; margin-top:3px; letter-spacing:0.02em; }
.pi-val { font-family:var(--font-mono); font-size:15px; color:var(--accent); white-space:nowrap; flex-shrink:0; font-weight:500; }
/* Nota */
    .nota-wrap { padding-block:clamp(40px,6vw,72px); border-top:1px solid var(--border); }
.nota-box { background:var(--accent-soft); border:1px solid color-mix(in oklab,var(--accent),transparent 78%); border-radius:var(--radius-lg); padding:28px 32px; max-width:700px; }
.nota-box p { font-size:15px; line-height:1.72; color:var(--fg-2); }
.nota-meta { font-family:var(--font-mono); font-size:11px; color:var(--muted); display:block; margin-top:12px; letter-spacing:0.04em; }
@media (max-width:600px) { .nota-box { padding:22px 18px; } }
/* Hero */
    .hero { padding-block:clamp(48px,7vw,80px); border-bottom:1px solid var(--border); }
.hero-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,96px); align-items:end; }
@media (max-width:700px) { .hero-inner { grid-template-columns:1fr; gap:24px; } }
.hero-count { text-align:right; }
@media (max-width:700px) { .hero-count { text-align:left; } }
.hero-count-num { font-family:var(--font-display); font-size:clamp(56px,10vw,110px); font-weight:300; line-height:0.9; letter-spacing:-0.04em; color:color-mix(in oklab,var(--accent),transparent 75%); }
.hero-count-label { font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); margin-top:8px; }
/* Gallery placeholder */
    .ph {
      background:linear-gradient(140deg,var(--accent-soft),color-mix(in oklab,var(--fg),transparent 96%));
      border:1px solid var(--border);
      border-radius:var(--radius-lg);
      display:grid; place-items:center; text-align:center;
      color:var(--muted); font-family:var(--font-mono); font-size:11px;
      letter-spacing:0.05em; line-height:1.6;
      position:relative; overflow:hidden; width:100%; height:100%;
    }
.ph-label { padding:16px; position:relative; z-index:1; }
/* Gallery section */
    .gallery-section { padding-block:clamp(48px,8vw,96px); }
/* Masonry via CSS columns */
    .masonry {
      columns:3;
      column-gap:16px;
      orphans:1; widows:1;
    }
@media (max-width:860px) { .masonry { columns:2; } }
@media (max-width:480px) { .masonry { columns:1; column-gap:0; } }
.masonry-item {
      break-inside:avoid;
      margin-bottom:16px;
      cursor:pointer;
      border-radius:var(--radius-lg);
      overflow:hidden;
      position:relative;
      display:block;
      transition:transform 0.22s ease, box-shadow 0.22s ease;
    }
.masonry-item:hover { transform:translateY(-3px); box-shadow:0 8px 32px color-mix(in oklab,var(--fg),transparent 87%); }
.masonry-item:hover .item-overlay { opacity:1; }
/* Item overlay (hover) */
    .item-overlay {
      position:absolute; inset:0;
      background:color-mix(in oklab,var(--accent),transparent 60%);
      display:grid; place-items:center;
      opacity:0; transition:opacity 0.22s ease;
      border-radius:var(--radius-lg);
    }
.item-overlay svg { color:var(--accent-on); width:28px; height:28px; }
/* Individual item wrappers with different heights for masonry feel */
    .ph-wrap { width:100%; }
.ph-wrap.tall { height:360px; }
.ph-wrap.mid  { height:260px; }
.ph-wrap.wide { height:200px; }
.ph-wrap.sq   { height:220px; }
@media (max-width:640px) {
      .ph-wrap.tall { height:280px; }
      .ph-wrap.mid  { height:220px; }
      .ph-wrap.wide { height:180px; }
      .ph-wrap.sq   { height:200px; }
    }
/* Lightbox */
    .lightbox {
      position:fixed; inset:0; z-index:500;
      background:color-mix(in oklab,var(--fg),transparent 15%);
      display:grid; place-items:center;
      opacity:0; pointer-events:none;
      transition:opacity 0.25s ease;
    }
.lightbox.open { opacity:1; pointer-events:all; }
.lb-inner {
      position:relative; max-width:880px; width:calc(100% - 48px);
      background:var(--surface); border-radius:var(--radius-lg);
      overflow:hidden; box-shadow:0 32px 96px color-mix(in oklab,var(--fg),transparent 55%);
    }
.lb-img {
      width:100%; aspect-ratio:4/3;
      background:linear-gradient(140deg,var(--accent-soft),color-mix(in oklab,var(--fg),transparent 94%));
      display:grid; place-items:center;
      font-family:var(--font-display); font-size:clamp(18px,3vw,28px);
      font-weight:300; font-style:italic; color:var(--muted);
      padding:32px; text-align:center;
    }
.lb-caption {
      padding:18px 24px;
      border-top:1px solid var(--border-soft);
      font-family:var(--font-mono); font-size:11px; letter-spacing:0.06em;
      text-transform:uppercase; color:var(--muted);
      display:flex; justify-content:space-between; align-items:center;
    }
.lb-counter { font-size:11px; color:var(--border); }
.lb-close {
      position:absolute; top:14px; right:14px;
      background:color-mix(in oklab,var(--fg),transparent 88%);
      border:none; border-radius:50%; width:36px; height:36px;
      display:grid; place-items:center; color:var(--surface);
      cursor:pointer; transition:background 0.15s;
    }
.lb-close:hover { background:color-mix(in oklab,var(--fg),transparent 75%); }
.lb-nav {
      position:absolute; top:50%; transform:translateY(-50%);
      background:color-mix(in oklab,var(--bg),transparent 10%);
      border:1px solid var(--border); border-radius:50%;
      width:44px; height:44px; display:grid; place-items:center;
      cursor:pointer; color:var(--fg); transition:background 0.15s, transform 0.06s;
    }
.lb-nav:active { transform:translateY(-50%) scale(0.94); }
.lb-nav:hover { background:var(--surface); }
.lb-prev { left:-22px; }
.lb-next { right:-22px; }
@media (max-width:600px) { .lb-prev { left:8px; } .lb-next { right:8px; } }
/* Separator */
    .sep { height:1px; background:var(--border); margin-block:0; }
/* CTA dark */
    .cta-dark { background:var(--accent); padding-block:clamp(64px,10vw,112px); }
.cta-dark-body { text-align:center; display:flex; flex-direction:column; align-items:center; gap:20px; }
.cta-dark p { color:var(--on-dark-dim); font-size:18px; max-width:48ch; text-align:center; }
/* Hero */
    .kontakt-hero { padding-block:clamp(48px,7vw,88px); border-bottom:1px solid var(--border); }
/* Main content grid */
    .kontakt-main { padding-block:clamp(56px,8vw,96px); }
.kontakt-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(40px,7vw,88px); align-items:start; }
@media (max-width:860px) { .kontakt-grid { grid-template-columns:1fr; gap:var(--gap-xl); } }
/* Contact details */
    .contact-details { display:flex; flex-direction:column; gap:28px; }
.contact-block { display:flex; flex-direction:column; gap:6px; }
.contact-block-label { font-family:var(--font-mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); margin-bottom:4px; }
.contact-block-title { font-size:15px; font-weight:500; color:var(--fg); }
.contact-block p { font-size:15px; color:var(--fg-2); line-height:1.65; }
.contact-block a { color:var(--fg-2); transition:color 0.15s; }
.contact-block a:hover { color:var(--accent); }
.phone-list { display:flex; flex-direction:column; gap:10px; }
.phone-row { display:flex; align-items:center; gap:10px; }
.phone-row-label { font-family:var(--font-mono); font-size:11px; color:var(--muted); min-width:88px; letter-spacing:0.03em; }
.phone-row-num { font-size:16px; font-weight:500; color:var(--fg); letter-spacing:0.01em; }
.phone-row-num a { color:var(--fg); transition:color 0.15s; }
.phone-row-num a:hover { color:var(--accent); }
/* Dojazd info */
    .dojazd-list { display:flex; flex-direction:column; gap:10px; margin-top:4px; }
.dojazd-item { display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--fg-2); line-height:1.55; }
.dojazd-icon { color:var(--accent); flex-shrink:0; margin-top:2px; }
/* Map */
    .map-wrap { margin-top:28px; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border-soft); aspect-ratio:4/3; }
.map-wrap iframe { width:100%; height:100%; display:block; border:0; }
@media (max-width:540px) { .map-wrap { aspect-ratio:3/2; } }
/* Facebook link */
    .social-link { display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:500; color:var(--accent); transition:gap 0.15s ease; }
.social-link:hover { gap:12px; }
/* Form */
    .form-card { background:var(--surface); border:1px solid var(--border-soft); border-radius:var(--radius-lg); padding:clamp(28px,5vw,44px); }
.form-card-title { font-family:var(--font-display); font-size:clamp(22px,2.8vw,32px); font-weight:300; letter-spacing:-0.015em; margin-bottom:6px; }
.form-card-sub { font-size:15px; color:var(--muted); margin-bottom:28px; }

/* ─── Kontakt redesign (telefon-first) ─────────────────────────── */
.kontakt-phone { display:flex; align-items:center; flex-wrap:wrap; gap:24px 44px; margin-top:40px; }
.kontakt-phone-num { font-family:var(--font-display); font-size:clamp(40px,6.4vw,76px); font-weight:400; line-height:0.95; letter-spacing:-0.02em; color:var(--accent); white-space:nowrap; transition:color 0.15s; }
.kontakt-phone-num:hover { color:var(--accent-deep); }
.kontakt-phone-side { display:flex; flex-direction:column; gap:12px; }
.kontakt-phone-hours { font-family:var(--font-mono); font-size:13px; letter-spacing:0.02em; color:var(--muted); }

.kontakt-info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(26px,3.5vw,44px) clamp(32px,5vw,64px); align-items:start; }
.kontakt-dojazd { grid-column:1 / -1; border-top:1px solid var(--border-soft); padding-top:30px; margin-top:6px; }
.kontakt-dojazd .dojazd-list { display:grid; grid-template-columns:repeat(2,1fr); gap:16px 44px; }
@media (max-width:860px){ .kontakt-info-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .kontakt-info-grid { grid-template-columns:1fr; } .kontakt-dojazd .dojazd-list { grid-template-columns:1fr; } }

.kontakt-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,2.5vw,36px); align-items:stretch; }
.map-col { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border-soft); min-height:520px; }
.map-col iframe { width:100%; height:100%; border:0; display:block; filter:grayscale(0.12); }
.kontakt-contact-grid .form-card { height:100%; }
@media (max-width:860px){ .kontakt-contact-grid { grid-template-columns:1fr; } .map-col { min-height:320px; } }
.form-fields-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-fields-row .form-field-full { grid-column:1 / -1; }
@media (max-width:560px){ .form-fields-row { grid-template-columns:1fr; } }

/* Polityka prywatności, rytm treści */
.polityka-tresc h2 { margin-top:16px; }
.polityka-tresc h2:first-of-type { margin-top:6px; }
.polityka-tresc p { color:var(--fg-2); line-height:1.7; max-width:68ch; }
.polityka-tresc .lead { color:var(--fg); }
.form-fields { display:flex; flex-direction:column; gap:18px; }
.form-field { display:flex; flex-direction:column; gap:6px; }
.form-label { font-family:var(--font-mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--fg-2); }
.form-input { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:12px 16px; font-size:15px; font-family:var(--font-body); color:var(--fg); transition:border-color 0.15s,box-shadow 0.15s; outline:none; width:100%; }
.form-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in oklab,var(--accent),transparent 84%); }
.form-input.error { border-color:#c0392b; box-shadow:0 0 0 3px color-mix(in oklab,#c0392b,transparent 86%); }
textarea.form-input { resize:vertical; min-height:120px; }
.form-error-msg { font-size:12px; color:#c0392b; display:none; }
.form-error-msg.visible { display:block; }
.form-submit { margin-top:8px; }
.form-submit .btn-primary { width:100%; justify-content:center; padding:14px 22px; font-size:16px; }
.form-success { display:none; background:var(--accent-soft); border:1px solid color-mix(in oklab,var(--accent),transparent 75%); border-radius:var(--radius); padding:18px 20px; font-size:15px; color:var(--fg-2); line-height:1.6; margin-top:18px; }
.form-success.visible { display:block; }


/* ============================================================
   UNIFIKACJA WIZUALNA (de-AI) — jedno źródło prawdy
   Płaskie spójne kolory, zero tekstur/glow/gradientów.
   Różnica jasności TYLKO na :hover lub w sekcji ciemnej.
   ============================================================ */
:root{ --accent-deep:#46602A; }

/* h-scroll guard + shrink w gridach */
html, body { overflow-x: clip; }
.hero-split > *, .sub-hero-grid > *, .ons-hero-grid > *, .grid-1-2 > *, .grid-2-1 > * { min-width: 0; }

/* Eyebrow z subtelnym listkiem (brand) */
.eyebrow{ display:inline-flex; align-items:center; gap:9px; }
.eyebrow::before{
  content:""; width:15px; height:11px; flex:0 0 auto; opacity:.85; background:var(--accent);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C7.5 6.5 4.5 11 4.5 15.5A7.5 7.5 0 0 0 19.5 15.5C19.5 11 16.5 6.5 12 2Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C7.5 6.5 4.5 11 4.5 15.5A7.5 7.5 0 0 0 19.5 15.5C19.5 11 16.5 6.5 12 2Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.cta-dark .eyebrow::before, .section-dark .eyebrow::before, .hero .eyebrow::before, .sub-hero .eyebrow::before { background:var(--on-dark); }

/* Checkmarki list w akcencie */
li > svg{ color:var(--accent); }
.cta-dark li > svg, .section-dark li > svg { color:var(--on-dark); }

/* KARTY: jeden płaski styl — hover bez ruchu, jeden subtelny cień */
.card, .zabieg-card, .zabieg-featured, .zabieg-bonus, .efekt, .review-card { transition: box-shadow .2s ease, border-color .2s ease; }
.card:hover, .zabieg-card:hover, .zabieg-featured:hover, .zabieg-bonus:hover, .review-card:hover {
  transform: none;
  box-shadow: 0 6px 22px -16px color-mix(in oklab, var(--fg), transparent 62%);
}

/* ZDJĘCIA: czyste, bez filtra/zoomu/ciężkiego cienia */
.ph-img > img, .ph > img { filter:none; transition:none; transform:none; }
.ph-img:hover > img, .ph:hover > img { transform:none; filter:none; }
.masonry-item:hover { transform:none; box-shadow: 0 6px 22px -16px color-mix(in oklab, var(--fg), transparent 62%); }

/* PRZYCISKI: spójny hover (jedyna zmiana jasności) */
.btn-primary:hover, .btn-phone:hover { background:var(--accent-deep); border-color:var(--accent-deep); color:var(--accent-on); }
.btn-secondary:hover { background:var(--accent); color:var(--accent-on); border-color:var(--accent); }
.btn-on-dark:hover { background:#ffffff; color:var(--accent-deep); border-color:#ffffff; }

/* JEDNO TŁO — bez tintowanych sekcji (różnica jasności tylko hover / sekcja dark) */
.pagefoot, .wartosci, .cta-strip { background: var(--bg) !important; }
.pagefoot { border-top:1px solid var(--border); }
.nota-box { background: var(--surface); }

/* SEKCJA CIEMNA (SANOPLASMA / CTA) — płaska, więcej oddechu, zero tekstur */
.section-dark, .cta-dark { padding-block: clamp(72px, 10vw, 128px); }

/* Logo mark (kwiatek brandowy) */
.logo-mark { width:26px; height:26px; flex-shrink:0; display:block; }

/* Logo (wordmark proRIFE z prorife.pl) */
.logo-img { height:34px; width:auto; display:block; }
.logo { gap:0; }
@media (max-width:480px){ .logo-img { height:30px; } }

/* === Ikony 4 filarów (home) — zielone kółko, biała ikona === */
.feature .feature-mark {
  width:52px; height:52px; border:0; border-radius:50%;
  background:var(--accent); color:#fff;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
}
.feature .feature-mark svg { width:24px; height:24px; }

/* === Sekcja ciemna (home SANOPLASMA) — większe zdjęcie, równy balans, bez overflow === */
.section-dark .grid-1-2 { grid-template-columns:0.92fr 1fr !important; gap:clamp(32px,5vw,72px) !important; align-items:stretch; }
.section-dark .ph-img.tall { aspect-ratio:auto !important; min-height:0 !important; height:100%; width:100%; }
@media (max-width:920px){
  .section-dark .grid-1-2 { grid-template-columns:1fr !important; align-items:start; }
  .section-dark .ph-img.tall { height:auto; aspect-ratio:4/5 !important; }
}

/* ════════════════════════════════════════════════════════════════
   REDESIGN 2026-06-26 — FINALNY OVERRIDE (last-wins nad duplikatami)
   2 fonty: Fraunces (display) + Inter (UI/body). Mono skasowane.
   Paleta: biały / czarny / zielony akcent. Bez kresek między sekcjami.
   ════════════════════════════════════════════════════════════════ */
:root{
  /* Fonty — 2 rodziny */
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-display: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --font-mono:    var(--font-body);   /* mono = Inter (kasacja monospace) */

  /* Paleta biały / czarny / zielony */
  --bg:          #ffffff;
  --surface:     #f7f7f5;
  --surface-tint:#f7f7f5;
  --fg:          #1a1a1a;
  --fg-2:        #3a3a3a;
  --muted:       #6b6b6b;
  --border:      #e8e8e5;
  --border-soft: #f0f0ee;
  --accent:      #2f5b4f;
  --star:        #d9a441;   /* złoto gwiazdek (funkcyjne, nie brand) */
}

/* Nagłówki Fraunces — solidne, nie cienkie */
.h1, h1, .h2, h2 { font-weight:450; letter-spacing:-0.02em; }
/* Hero: jednolity styl nagłówka, akcent kolorem (nie italic) */
.hero h1 em, .hero h1 .h1-accent{ font-style:normal; color:var(--accent); }
.h3, .h3 *, h3,
.team-name, .cat-title, .zabieg-feat-body h3, .zabieg-card-body h3,
.zabieg-bonus-info h3, .pf-name, .form-card-title, .misja-pullquote,
.review-quote, .review-text, .quote, .review-single .review-quote { font-weight:500; }
.wart-num, .cat-bg-num, .hero-stat-num, .hero-count-num, .stat .stat-num, .step-num { font-weight:500; }

/* Eyebrowsy: zielony kicker (re-enabled) */
.eyebrow{ display:none !important; }
.cta-dark .eyebrow, .section-dark .eyebrow, .section-sano-dark .eyebrow{ color:var(--on-dark-dim); }

/* Bez kresek między sekcjami / pod hero — rytm robi tło */
.section + .section{ border-top:0 !important; }
.hero, .ons-hero, .cennik-hero, .kontakt-hero, .sub-hero, .masaze-hero{ border-bottom:0 !important; }

/* Spójny rytm pionowy — identyczny padding-block wszystkich sekcji */
.section, .hero, .cta-strip, .zespol, .wartosci, .galeria-skrot, .ons-hero, .cennik-hero, .kontakt-hero, .sub-hero, .masaze-hero{ padding-block:60px !important; }
@media (max-width:640px){ .section, .hero, .cta-strip, .zespol, .wartosci, .galeria-skrot, .ons-hero, .cennik-hero, .kontakt-hero, .sub-hero, .masaze-hero{ padding-block:40px !important; } }
/* Kasuj stray border-top na custom sekcjach */
.zespol, .wartosci, .galeria-skrot{ border-top:0 !important; }
/* Rytm tła O nas — przełamanie ciągu białych sekcji */
.wartosci{ background:var(--surface); }

/* Filary — 3 kolumny też na tablecie (nie rozjeżdżaj na 1-kol za wcześnie) */
@media (max-width:920px) and (min-width:620px){
  [data-od-id="filary"] .grid-3{ grid-template-columns:repeat(3,1fr) !important; gap:22px !important; }
}
@media (max-width:619px){
  [data-od-id="filary"] .grid-3{ grid-template-columns:1fr !important; gap:32px; }
}

/* Mobile: przyciski cennika + CTA na pełną szerokość (tap targety) */
@media (max-width:560px){
  .cennik-card-foot .btn, .cta-band-btns .btn{ width:100%; justify-content:center; }
  .cennik-card-foot, .cta-band-btns{ flex-direction:column; align-items:stretch; }
}

/* ════════ PROPAGACJA NA PODSTRONY (kaskada) ════════ */
/* Galeria placeholdery — obraz wypełnia kafelek */
.gal-ph{ position:relative; width:100%; height:100%; }
.gal-ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gal-ph span{ display:none; }

/* Galeria "Przestrzeń" (O nas) — równy bento, zero przerw */
.galeria-masonry{ display:grid !important; grid-template-columns:repeat(4,1fr) !important; grid-template-rows:repeat(2,1fr) !important; gap:12px !important; height:clamp(380px,40vw,520px); }
.galeria-masonry .gal-item{ aspect-ratio:auto !important; border-radius:var(--radius-lg); overflow:hidden; }
.galeria-masonry .gal-item:nth-child(1){ grid-column:1/3 !important; grid-row:1/3 !important; }
.galeria-masonry .gal-item:nth-child(2){ grid-column:3 !important; grid-row:1 !important; }
.galeria-masonry .gal-item:nth-child(3){ grid-column:4 !important; grid-row:1 !important; }
.galeria-masonry .gal-item:nth-child(4){ grid-column:3 !important; grid-row:2 !important; }
.galeria-masonry .gal-item:nth-child(5){ grid-column:4 !important; grid-row:2 !important; }
@media (max-width:860px){
  .galeria-masonry{ grid-template-columns:1fr 1fr !important; grid-template-rows:none !important; grid-auto-rows:1fr !important; height:auto !important; }
  .galeria-masonry .gal-item:nth-child(n){ grid-column:auto !important; grid-row:auto !important; aspect-ratio:1 !important; }
  .galeria-masonry .gal-item:nth-child(1){ grid-column:1/3 !important; aspect-ratio:16/10 !important; }
  /* na tablecie/mobile chowamy zdjęcie twarzy + wejście (obca marka Butterfly) */
  .galeria-masonry .gal-item:nth-child(4), .galeria-masonry .gal-item:nth-child(5){ display:none !important; }
}
@media (max-width:440px){
  .galeria-masonry{ grid-template-columns:1fr !important; }
  .galeria-masonry .gal-item:nth-child(n){ grid-column:auto !important; aspect-ratio:4/3 !important; }
}

/* Pullquote bez italic (spójność), pille bez uppercase mono-vibe */
.misja-pullquote{ font-style:normal !important; font-weight:500; }
.misja-pill{ text-transform:none; letter-spacing:0.01em; font-size:13px; }

/* CTA na podstronach = ten sam zielony band co home */
.cta-dark{ background:var(--bg) !important; padding-block:60px !important; }
.cta-dark-body{
  background:linear-gradient(135deg,#305d50 0%,#234539 100%) !important;
  color:#fff !important; border-radius:28px;
  padding:clamp(48px,7vw,84px) clamp(28px,5vw,64px) !important;
  text-align:center; align-items:center !important; max-width:none !important;
  position:relative; overflow:hidden;
  box-shadow:0 24px 60px rgba(35,69,57,0.30);
}
.cta-dark-body::before{ content:""; position:absolute; top:-50%; right:-12%; width:55%; height:180%; background:radial-gradient(circle, rgba(255,255,255,0.10), transparent 62%); pointer-events:none; }
.cta-dark-body > *{ position:relative; }
.cta-dark .h2, .cta-dark h2{ color:#fff !important; }
.cta-dark-body p{ color:rgba(255,255,255,0.82) !important; }
.cta-dark .btn-on-dark{ background:#fff; color:var(--accent); border-color:#fff; }
@media (max-width:560px){ .cta-dark{ padding-block:40px !important; } }

/* Oferta hub — hero H1 w jednej linii, full-width */
.oferta-hero-inner{ max-width:none; }
.oferta-h1{ font-size:clamp(30px,4.4vw,56px) !important; letter-spacing:-0.02em; white-space:nowrap; }
@media (max-width:980px){ .oferta-h1{ white-space:normal; text-wrap:balance; } }

/* Oferta — podnieś karty + mniejszy odstęp hero/karty (4 na ekranie) */
.oferta-hero{ padding-top:40px !important; padding-bottom:18px !important; }
.oferta-grid-sec{ padding-top:14px !important; padding-bottom:48px !important; }

/* Oferta hub — karty usług ze zdjęciem (2x2, hover zoom+lift) */
.oferta-cards{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.oferta-card{ display:flex; flex-direction:column; background:#fff; border-radius:var(--radius-lg); overflow:hidden; text-decoration:none; color:inherit; box-shadow:0 1px 2px rgba(26,26,26,0.04), 0 8px 24px rgba(26,26,26,0.06); transition:transform .16s ease, box-shadow .2s ease; }
.oferta-card:hover{ transform:translateY(-3px); box-shadow:0 18px 44px rgba(26,26,26,0.12); }
.oferta-card-img{ aspect-ratio:12/5; overflow:hidden; }
.oferta-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.oferta-card:hover .oferta-card-img img{ transform:scale(1.05); }
.oferta-card-body{ padding:18px 24px 20px; display:flex; flex-direction:column; gap:7px; flex-grow:1; }
.oferta-card-body h3{ font-family:var(--font-body); font-size:18px; font-weight:600; letter-spacing:-0.01em; color:var(--fg); margin:0; }
.oferta-card-body p{ color:var(--muted); font-size:15px; line-height:1.5; margin:0; flex-grow:1; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.oferta-card-link{ color:var(--accent); font-weight:600; font-size:14px; margin-top:4px; }
.oferta-card:hover .oferta-card-link{ text-decoration:underline; }
@media (max-width:760px){ .oferta-cards{ grid-template-columns:1fr; gap:22px; } }

/* O nas — sekcja Filozofia (tint + duży cytat + 3 wartości) */
.section-filozofia{ background:var(--surface); }
.filozofia-head{ max-width:780px; margin:0 auto; text-align:center; }
.fil-tag{ display:inline-block; color:var(--accent); font-weight:600; font-size:13px; letter-spacing:0.03em; margin-bottom:18px; }
.filozofia-quote{ font-family:var(--font-display); font-size:clamp(26px,3.6vw,42px); line-height:1.2; font-weight:450; letter-spacing:-0.02em; color:var(--fg); margin:0; border:0; padding:0; }
.filozofia-sub{ color:var(--muted); font-size:var(--fs-lead); line-height:1.6; max-width:54ch; margin:22px auto 0; }
.filozofia-values{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; margin-top:56px; }
.fil-value{ text-align:left; }
.fil-icon{ width:54px; height:54px; border-radius:50%; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.fil-value h3{ font-family:var(--font-body); font-size:18px; font-weight:600; color:var(--fg); margin:0 0 8px; }
.fil-value p{ color:var(--muted); font-size:15px; line-height:1.6; margin:0; }
@media (max-width:760px){ .filozofia-values{ grid-template-columns:1fr; gap:28px; margin-top:40px; } }

/* O nas — karty zespołu (biała karta, zielona ikona, struktura) */
.zespol-grid .team-card{ background:#fff; border:0; border-radius:var(--radius-lg); padding:34px; box-shadow:0 1px 2px rgba(26,26,26,0.04), 0 8px 24px rgba(26,26,26,0.06); gap:0; }
.team-icon{ width:54px; height:54px; border-radius:50%; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.zespol-grid .team-name{ font-family:var(--font-body); font-size:21px; font-weight:600; letter-spacing:-0.01em; color:var(--fg); margin-bottom:12px; }
.zespol-grid .team-bio{ font-size:15px; line-height:1.68; color:var(--muted); margin:0; }
.team-help{ display:flex; flex-direction:column; gap:4px; margin-top:22px; padding-top:20px; border-top:1px solid var(--border-soft); }
.team-help-label{ font-size:12px; font-weight:600; letter-spacing:0.03em; color:var(--accent); text-transform:uppercase; }
.team-help-text{ font-size:15px; line-height:1.55; color:var(--fg-2); }

/* ════════ HOVER PRZYCISKÓW — spójny i wyraźny (header + home + podstrony) ════════ */
.btn{ transition: background .18s ease, border-color .18s ease, color .18s ease, transform .12s ease, box-shadow .18s ease; }
.btn-phone{ transition: background .18s ease, transform .12s ease, box-shadow .18s ease; }
.btn:not(.btn-ghost):hover, .btn-phone:hover{ transform: translateY(-2px); }

/* zielone solidne → ciemniejsza zieleń + cień */
.btn-primary:hover, .btn-phone:hover{
  background:var(--accent-deep) !important; border-color:var(--accent-deep) !important; color:#fff !important;
  box-shadow:0 8px 20px color-mix(in oklab,var(--accent-deep),transparent 70%);
}
/* outline → wypełnij zielenią */
.btn-secondary:hover{
  background:var(--accent) !important; color:#fff !important; border-color:var(--accent) !important;
  box-shadow:0 8px 20px color-mix(in oklab,var(--accent-deep),transparent 76%);
}
/* text-link ghost → zieleń (bez wypełnienia) */
.btn-ghost:hover{ color:var(--accent) !important; }
/* białe na zielonym (CTA band, on-dark) → biel + cień */
.cta-btn-light:hover, .btn-on-dark:hover{
  background:#fff !important; color:var(--accent) !important; border-color:#fff !important;
  box-shadow:0 10px 24px rgba(0,0,0,0.20);
}
.cta-btn-ghost:hover{ background:rgba(255,255,255,0.18) !important; border-color:#fff !important; }
/* nav linki — wyraźniejszy hover (zieleń) */
.nav-desktop a{ transition:color .15s ease; }
.nav-desktop a:hover{ color:var(--accent) !important; }

/* ── Lightbox galerii (realne zdjęcie + nawigacja) ── */
.lb-inner{ background:#0d1311 !important; max-width:1000px !important; }
.lb-photo{ width:100%; max-height:80vh; object-fit:contain; display:block; background:#0d1311; }
.lb-caption{ font-family:var(--font-body) !important; text-transform:none !important; letter-spacing:0 !important; font-size:13px !important; color:rgba(255,255,255,0.75) !important; border-top:1px solid rgba(255,255,255,0.12) !important; }
.lb-counter{ color:rgba(255,255,255,0.5) !important; font-size:13px !important; }
.lb-close{ cursor:pointer; font-size:20px; line-height:1; color:#fff !important; background:rgba(255,255,255,0.18) !important; z-index:2; }
.lb-close:hover{ background:rgba(255,255,255,0.32) !important; }
.lb-nav{ position:fixed; top:50%; transform:translateY(-50%); width:50px; height:50px; border-radius:50%; border:0; background:rgba(255,255,255,0.92); color:var(--fg); font-size:26px; line-height:1; display:grid; place-items:center; cursor:pointer; z-index:510; transition:background .15s; }
.lb-nav:hover{ background:#fff; }
.lb-prev{ left:24px; } .lb-next{ right:24px; }
@media (max-width:560px){ .lb-nav{ width:42px; height:42px; font-size:22px; } .lb-prev{ left:10px; } .lb-next{ right:10px; } }

/* O nas — "Czym się różnimy" 01-04: numery w zieleni + pasek akcentu */
.wart-num{ color:color-mix(in oklab, var(--accent), transparent 18%) !important; font-weight:500; }
.wart-num::after{ content:""; display:block; width:38px; height:3px; background:var(--accent); border-radius:2px; margin-top:16px; }
.wart-item{ gap:12px; }
.wart-title{ font-family:var(--font-body); font-size:19px; font-weight:600; }

/* Gwiazdki ocen = złoto, nie brąz */
.stars, .review-stars{ color:var(--star) !important; }

/* Hover tylko na przyciskach — karty statyczne (bez skoku) */
.card:hover, .review-card:hover, .zabieg-card:hover, .zabieg-featured:hover,
.zabieg-bonus:hover, .efekt:hover, .feature:hover{ transform:none !important; }

/* ── Sekcja SANOPLASMA — jasny editorial (zamiast ciemnego slaba) ── */
.section-sano{ background:var(--surface); }
.section-sano .sano-grid{ grid-template-columns:1fr 1fr; }
.sano-img{ border-radius:var(--radius-lg); overflow:hidden; height:100%; min-height:340px; max-height:520px; box-shadow:0 1px 2px rgba(26,26,26,0.04), 0 12px 32px rgba(26,26,26,0.08); }
.sano-img img{ width:100%; height:100%; object-fit:cover; }
.sano-tag{ align-self:flex-start; color:var(--accent); font-weight:600; font-size:13px; letter-spacing:0.03em; }
.section-sano h2{ color:var(--fg); }
.sano-label{ font-size:14px; font-weight:600; color:var(--fg); margin-top:2px; }
.sano-list{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:11px 24px; }
.sano-list li{ display:flex; align-items:flex-start; gap:10px; font-size:15px; line-height:1.45; color:var(--fg-2); }
.sano-list li svg{ flex-shrink:0; margin-top:2px; color:var(--accent); }
@media (max-width:560px){ .sano-list{ grid-template-columns:1fr; } }
@media (max-width:920px){ .section-sano .sano-grid{ grid-template-columns:1fr; } .sano-img{ min-height:300px; } }

/* ── Opinie: slider + karty (logo Google, tekst Inter, nazwisko) ── */
.reviews-slider{ position:relative; }
.reviews-track{ display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding:4px; margin:-4px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.reviews-track::-webkit-scrollbar{ display:none; }
.reviews-track .review-card{
  scroll-snap-align:start; flex:0 0 calc((100% - 48px)/3); min-width:0;
  background:#fff; border:0; border-radius:var(--radius-lg); padding:30px;
  box-shadow:0 1px 2px rgba(26,26,26,0.04), 0 8px 24px rgba(26,26,26,0.06);
  display:flex; flex-direction:column; gap:18px; position:relative;
}
.review-google{ position:absolute; top:24px; right:24px; line-height:0; opacity:.95; }
.review-card .review-text{
  font-family:var(--font-body); font-style:normal; font-weight:400;
  font-size:15px; line-height:1.65; color:var(--fg-2); flex-grow:1; margin:0; padding-right:30px;
}
.review-card .review-name{ font-family:var(--font-body); font-size:15px; font-weight:600; color:var(--fg); margin-top:auto; }
.reviews-nav{ display:flex; gap:10px; justify-content:flex-end; margin-top:28px; }
.rev-arrow{ width:48px; height:48px; border-radius:50%; border:1px solid var(--border); background:#fff; color:var(--fg); display:grid; place-items:center; font-size:22px; line-height:1; transition:background .15s, color .15s, border-color .15s, opacity .15s; }
.rev-arrow:hover{ background:var(--accent); color:#fff; border-color:var(--accent); }
.rev-arrow:disabled{ opacity:.3; cursor:default; }
@media (max-width:920px){ .reviews-track .review-card{ flex-basis:calc((100% - 24px)/2); } }
@media (max-width:640px){ .reviews-track .review-card{ flex-basis:86%; } }

/* ── Cennik (home) — szeroka karta, ceny w 2 kolumnach, zielony akcent ── */
.cennik-card{ padding:8px 36px 32px; }
.cennik-grid{ display:grid; grid-template-columns:1fr 1fr; column-gap:56px; }
.cennik-grid .price-row{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:20px 0; border-bottom:1px solid var(--border-soft); }
.cennik-grid .price-row:nth-last-child(-n+2){ border-bottom:0; }
.price-val{ font-family:var(--font-body); font-size:19px; font-weight:600; color:var(--accent); white-space:nowrap; flex-shrink:0; letter-spacing:-0.01em; }
.price-name{ font-size:15.5px; font-weight:600; color:var(--fg); }
.price-note{ font-size:13px; color:var(--muted); margin-top:3px; }
.cennik-card-foot{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-top:28px; }
.cennik-card-foot .btn-primary span{ display:inline; }
@media (max-width:760px){ .cennik-grid{ grid-template-columns:1fr; column-gap:0; } .cennik-grid .price-row:nth-last-child(-n+2){ border-bottom:1px solid var(--border-soft); } .cennik-grid .price-row:last-child{ border-bottom:0; } }
.cennik-call{ margin-top:40px; }
.cennik-call-label{ font-size:14px; color:var(--muted); margin:0 0 10px; }
.cennik-call-phone{ display:inline-flex; align-items:center; gap:10px; font-size:24px; font-weight:600; color:var(--fg); letter-spacing:-0.01em; transition:color .15s; }
.cennik-call-phone svg{ color:var(--accent); width:20px; height:20px; }
.cennik-call-phone:hover{ color:var(--accent); }
.cennik-call-hours{ font-size:13px; color:var(--muted); margin:10px 0 0; }

/* ── CTA band (home) — mocny zielony moment konwersji ── */
.cta-strip{ padding-block:clamp(40px,6vw,72px); }
.cta-band{
  position:relative; overflow:hidden; text-align:center;
  background:linear-gradient(135deg, #305d50 0%, #234539 100%);
  color:#fff; border-radius:28px;
  padding:clamp(48px,7vw,88px) clamp(28px,5vw,64px);
  box-shadow:0 24px 60px rgba(35,69,57,0.30);
}
.cta-band::before{ content:""; position:absolute; top:-50%; right:-12%; width:55%; height:180%; background:radial-gradient(circle, rgba(255,255,255,0.10), transparent 62%); pointer-events:none; }
.cta-band > *{ position:relative; }
.cta-band h2{ color:#fff; max-width:22ch; margin:0 auto; }
.cta-band-lead{ color:rgba(255,255,255,0.82); font-size:var(--fs-lead); line-height:1.6; max-width:46ch; margin:16px auto 34px; }
.cta-band-btns{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }
.cta-btn-light{ background:#fff; color:var(--accent); font-weight:600; padding:15px 30px; }
.cta-btn-light svg{ color:var(--accent); }
.cta-btn-light:hover{ background:#eef2f0; }
.cta-btn-ghost{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.45); padding:15px 26px; font-weight:500; }
.cta-btn-ghost:hover{ background:rgba(255,255,255,0.12); border-color:#fff; }
.cta-band-meta{ color:rgba(255,255,255,0.6); font-size:13px; margin:24px 0 0; }

/* Plazmoterapia — Cennik jako 3 równe karty w rzędzie */
.zabieg-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
@media (max-width:980px){ .zabieg-grid-3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .zabieg-grid-3{ grid-template-columns:1fr; } }

/* Ceny w kartach zabiegów na zielono (akcent brandu) */
.zabieg-price{ color:var(--accent) !important; }
.bp-val{ color:var(--accent) !important; }

/* Cennik plazmo — nagłówek w rzędzie: tytuł lewo, CTA prawy górny róg */
.zabiegi-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.zabiegi-head > div{ flex:1 1 auto; }
/* CTA cennika: desktop = top-right obok tytułu (absolute), mobile = pod ofertą (statyczny, na dole) */
.container:has(> .zabiegi-head){ position:relative; }
.zabiegi-head-cta{ position:absolute; top:6px; right:0; flex:0 0 auto; }
@media (max-width:860px){ .zabiegi-head-cta{ position:static; width:100%; justify-content:center; margin-top:30px; } }

/* Cennik plazmo — jedna uczciwa stawka: zielony panel ceny + punkty */
.cennik-plazmo{ display:grid; grid-template-columns:0.92fr 1.08fr; gap:40px; align-items:stretch; }
.cennik-price{ background:var(--accent); color:#fff; border-radius:var(--radius-lg); padding:clamp(36px,5vw,52px) clamp(30px,4vw,46px); display:flex; flex-direction:column; justify-content:center; }
.cennik-service{ font-family:var(--font-mono); font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.8); margin-bottom:18px; }
.cennik-amount{ font-family:var(--font-display); font-size:clamp(54px,8vw,88px); line-height:0.98; font-weight:400; letter-spacing:-0.02em; }
.cennik-unit{ font-family:var(--font-mono); font-size:14px; letter-spacing:0.03em; margin-top:16px; color:rgba(255,255,255,0.85); }
.cennik-note{ margin-top:26px; font-size:15px; line-height:1.65; color:rgba(255,255,255,0.82); max-width:34ch; }
.cennik-points{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; justify-content:center; gap:26px; }
.cennik-points li{ display:flex; gap:16px; align-items:flex-start; }
.cennik-points li > svg{ flex:0 0 auto; width:26px; height:26px; color:var(--accent); margin-top:3px; }
.cennik-points strong{ display:block; font-family:var(--font-display); font-weight:400; font-size:19px; letter-spacing:-0.01em; color:var(--fg); margin-bottom:5px; }
.cennik-points span{ color:var(--muted); font-size:15px; line-height:1.6; }
@media (max-width:860px){ .cennik-plazmo{ grid-template-columns:1fr; gap:26px; } }

/* Band BAŃKI CHIŃSKIE (nowość) — reużywalny komponent (home + detoks) */
.banki-band{ display:grid; grid-template-columns:1.05fr 1fr; border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 12px 34px rgba(26,26,26,0.09); }
.banki-img{ min-height:400px; border-radius:0; border:0; aspect-ratio:unset; }
.banki-body{ background:var(--accent-soft); padding:clamp(34px,4vw,54px); display:flex; flex-direction:column; justify-content:center; }
.banki-badge{ align-self:flex-start; background:var(--accent); color:#fff; font-family:var(--font-mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; padding:4px 11px; border-radius:5px; margin-bottom:18px; }
.banki-h{ font-family:var(--font-display); font-size:clamp(26px,3vw,38px); font-weight:450; letter-spacing:-0.02em; line-height:1.12; color:var(--fg); margin:0 0 14px; }
.banki-lead{ color:var(--muted); font-size:16px; line-height:1.65; margin:0 0 22px; max-width:48ch; }
.banki-points{ list-style:none; margin:0 0 28px; padding:0; display:flex; flex-direction:column; gap:11px; }
.banki-points li{ display:flex; gap:11px; align-items:flex-start; font-size:15px; color:var(--fg); line-height:1.5; }
.banki-points li > svg{ flex:0 0 auto; width:20px; height:20px; color:var(--accent); margin-top:2px; }
.banki-foot{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.banki-price{ display:flex; flex-direction:column; }
.banki-price-val{ font-family:var(--font-display); font-size:32px; font-weight:450; color:var(--accent); line-height:1; }
.banki-price-note{ font-family:var(--font-mono); font-size:12px; color:var(--muted); letter-spacing:0.03em; margin-top:5px; }
@media (max-width:860px){ .banki-band{ grid-template-columns:1fr; } .banki-img{ min-height:240px; aspect-ratio:16/10; } }

/* Hero usług — niższe zdjęcie na mobile/tablet (override inline min-height + portret aspect 4/5) */
@media (max-width:860px){ .sub-hero-img .ph-img{ min-height:0 !important; aspect-ratio:16/10 !important; } }

/* ═══ HEADER redesign (jasny dopięty: sticky-condense + animowany underline) ═══ */
.topnav { transition:box-shadow .22s ease, background .22s ease, border-color .22s ease; }
.topnav-inner { transition:padding .2s ease; }
.topnav.scrolled { background:color-mix(in oklch,var(--bg) 96%,transparent); border-bottom-color:transparent; box-shadow:0 6px 26px color-mix(in oklab,var(--fg),transparent 92%); }
/* BEZ zmiany wysokości na scroll (padding/logo) — zmiana wysokości przy sticky powodowała shake/oscylację przy progu */
/* mobile: telefon = pełny numer (pill) + hamburger kwadrat, po prawej */
@media (max-width:860px){
  .topnav-inner .btn-phone { margin-left:auto; }
  .phone-label { display:inline !important; }
  .burger-btn { padding:0; width:44px; height:44px; justify-content:center; gap:0; border-radius:12px; }
}
/* chevron = wskaźnik submenu (Oferta) */
.nav-chev { display:inline-block; margin-left:5px; vertical-align:-1px; opacity:0.55; transition:transform .22s ease, opacity .15s; }
.nav-has-sub:hover .nav-chev, .nav-has-sub:focus-within .nav-chev { transform:rotate(180deg); opacity:1; }

/* mobile off-canvas, dopracowanie */
.mobile-nav nav > a { font-size:22px !important; font-weight:400 !important; padding:13px 0 !important; }
.mobile-parent { display:flex !important; align-items:center; }
.mobile-sub-toggle { margin-left:auto; background:none; border:0; padding:8px; line-height:0; color:inherit; cursor:pointer; display:inline-flex; }
.mobile-sub-toggle .nav-chev { opacity:0.55; margin:0; }
.mobile-parent.expanded .nav-chev { transform:rotate(180deg); }
.mobile-sub { padding-left:16px !important; margin:0 0 12px !important; overflow:hidden; transition:max-height .26s ease, opacity .2s ease, margin .2s ease; max-height:360px; }
.mobile-sub.collapsed { max-height:0 !important; opacity:0; margin:0 !important; }
.mobile-sub .mobile-sub-link { font-size:16px !important; padding:9px 0 !important; border-bottom:0 !important; color:var(--muted) !important; }
.mobile-sub .mobile-sub-link:hover { color:var(--accent) !important; }
/* animowany underline nav (tylko top-level, nie dropdown) */
.nav-desktop > a, .nav-has-sub > a { position:relative; }
.nav-desktop > a::after, .nav-has-sub > a::after { content:''; position:absolute; left:0; right:0; bottom:-5px; height:1.5px; background:var(--accent); transform:scaleX(0); transform-origin:left center; transition:transform .24s ease; }
.nav-desktop > a:hover::after, .nav-has-sub:hover > a::after, .nav-has-sub:focus-within > a::after, .nav-desktop > a.active::after, .nav-has-sub > a.active::after { transform:scaleX(1); }
.nav-desktop > a.active, .nav-has-sub > a.active { border-bottom:0 !important; padding-bottom:0 !important; }

/* ═══ FOOTER redesign (ciemny zielony brand) ═══ */
.pagefoot { background:#1f3a32 !important; border-top:0 !important; color:rgba(255,255,255,0.72); padding:clamp(52px,7vw,88px) 0 clamp(26px,3vw,38px) !important; }
.footer-brand .logo { background:var(--bg); padding:13px 17px; border-radius:14px; display:inline-flex; }
.footer-brand p { color:rgba(255,255,255,0.6) !important; }
.footer-col h4 { color:#9ec3b4 !important; }
.footer-col ul li { color:rgba(255,255,255,0.74) !important; }
.footer-col ul a { color:rgba(255,255,255,0.74) !important; transition:color .15s; }
.footer-col ul a:hover { color:#fff !important; }
.footer-col ul a[href^="tel"] { font-family:inherit; font-size:15px; font-weight:600; letter-spacing:0; color:#fff !important; }
.footer-col ul a[href^="tel"]:hover { color:#9ec3b4 !important; }
.footer-bottom { margin-top:52px; border-top:1px solid rgba(255,255,255,0.14) !important; color:rgba(255,255,255,0.5); display:flex; justify-content:space-between; align-items:baseline; gap:8px 28px; flex-wrap:wrap; }
.footer-bottom p { margin:0 !important; }
.footer-bottom a { color:rgba(255,255,255,0.78); }
.footer-bottom a:hover { color:#fff; }
@media (max-width:560px){ .footer-bottom { flex-direction:column; align-items:flex-start; gap:6px; } }

/* Cennik hero: zdjęcie zamiast oceny Google */
.cennik-hero-img { aspect-ratio:16/10; border-radius:var(--radius-lg); overflow:hidden; width:100%; }
@media (max-width:760px){ .cennik-hero-img { aspect-ratio:16/9; } }

/* ═══ FAQ (sekcja na home, details/summary) ═══ */
.faq-list { display:flex; flex-direction:column; max-width:840px; }
.faq-item { border-bottom:1px solid var(--border); }
.faq-q { display:flex; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; list-style:none; padding:22px 4px; font-family:var(--font-display); font-size:clamp(17px,2vw,21px); font-weight:400; letter-spacing:-0.01em; color:var(--fg); transition:color .15s; }
.faq-q::-webkit-details-marker { display:none; }
.faq-q:hover { color:var(--accent); }
.faq-ico { position:relative; width:18px; height:18px; flex-shrink:0; }
.faq-ico::before, .faq-ico::after { content:''; position:absolute; background:var(--accent); border-radius:1px; transition:transform .25s ease; }
.faq-ico::before { top:8px; left:0; width:18px; height:2px; }
.faq-ico::after { left:8px; top:0; width:2px; height:18px; }
.faq-item[open] .faq-ico::after { transform:scaleY(0); }
.faq-a { padding:0 4px 24px; max-width:64ch; }
.faq-a p { color:var(--fg-2); line-height:1.7; font-size:15px; }

/* === Poprawki mobile + cennik (2026-06-28) === */
/* Cennik home: tło jak pas baniek chińskich */
.cennik-card{ background:#f2f6f4; }

@media (max-width:640px){
  /* Hero home: zdjęcie nie wychodzi za prawą krawędź */
  .hero-img .ph-img.tall{ min-height:0 !important; width:100%; aspect-ratio:16/10; }
  /* Hero: mniejszy odstęp tekst → przyciski */
  .hero-cta{ margin-top:18px !important; }
  /* Opinie: ukryj osobny blok 5,0 (jest już w hero; na mobile źle wyrównany) */
  section[data-od-id="opinie"] .row-between > div:last-child{ display:none; }
  /* Cennik home: karta bliżej nagłówka */
  section[data-od-id="cennik-preview"] .stack{ gap:24px; }
}

/* === Poprawki mobile, część 2: cennik gap + kontakt (2026-06-28) === */
@media (max-width:640px){
  /* Cennik home: karta bliżej nagłówka (inline gap:40px → !important) */
  section[data-od-id="cennik-preview"] .stack{ gap:24px !important; }
  /* KONTAKT: ciaśniejsze odstępy między sekcjami */
  .kontakt-hero{ padding-bottom:24px !important; }
  .kontakt-info{ padding-top:24px !important; padding-bottom:24px !important; }
  .kontakt-contact{ padding-top:24px !important; }
  .kontakt-phone{ margin-top:24px !important; }
  /* Numer telefonu mniejszy (był 40px) */
  .kontakt-phone-num{ font-size:34px !important; line-height:1 !important; }
}

/* Pas bańki: obraz nie wychodzi za krawędź na mobile/tablet (był height-driven 384px) */
@media (max-width:860px){ .banki-img{ width:100%; } }

/* Kontakt: blok telefonu jako wyróżniona karta (góra była za biała) */
.kontakt-phone{ background:var(--accent-soft); padding:28px 32px; border-radius:18px; }
@media (max-width:640px){ .kontakt-phone{ padding:22px 20px !important; } }

/* Sekcja SANOPLASMA: ciemny pas, 2 kolumny (lewo: nagłówek+lead+CTA, prawo: label+bullety) */
.section-sano-dark{ background:#2D2823; }
.sano-dark-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(40px,6vw,88px); align-items:center; }
.sano-dark-left{ display:flex; flex-direction:column; }
.section-sano-dark .eyebrow{ color:var(--accent); font-weight:600; }
.section-sano-dark h2{ color:var(--on-dark); max-width:20ch; }
.section-sano-dark .lead{ color:var(--on-dark-dim); margin-top:18px; }
.sano-dark-cta{ margin-top:28px; }
.section-sano-dark .sano-label{ color:var(--on-dark-dim); font-size:13px; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:14px; }
/* lista czysta: zielony ptaszek bez kółka, hairline separatory, zero boksów (anty-AI, Ma) */
.section-sano-dark .sano-list{ list-style:none; padding:0; margin:0; display:block; grid-template-columns:none; }
.section-sano-dark .sano-list li{ display:flex; align-items:flex-start; gap:14px; padding:16px 0; border-top:1px solid var(--on-dark-border); color:var(--on-dark); font-size:17px; line-height:1.5; }
.section-sano-dark .sano-list li:first-child{ border-top:none; padding-top:0; }
.sano-tick{ flex:0 0 auto; color:var(--accent); margin-top:2px; }
@media (max-width:860px){ .sano-dark-grid{ grid-template-columns:1fr; gap:32px; } }
/* badge Nowość w wierszu cennika */
.price-badge{ display:inline-block; margin-left:9px; vertical-align:middle; background:var(--accent); color:var(--accent-on); font-size:10.5px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; padding:2px 8px; border-radius:5px; }

/* Hero podstrony bez zdjęcia (tryb tekstowy, np. plazmoterapia) */
.sub-hero-noimg .fade-up{ max-width:760px; }
.sub-hero-noimg .h1{ max-width:20ch; }

/* Pas bańki bez zdjęcia (brak foto, czeka na zdjęcie klientki) */
.banki-band-noimg{ display:block; }
.banki-band-noimg .banki-body{ padding:clamp(28px,4vw,48px); }
.banki-band-noimg .banki-points{ display:grid; grid-template-columns:1fr 1fr; gap:12px 28px; }
@media (max-width:640px){ .banki-band-noimg .banki-points{ grid-template-columns:1fr; } }

/* Karta oferty plazmoterapia: kadr na plecy (urządzenie poza kadrem) */
.oferta-cards .oferta-card:first-child .oferta-card-img img{ object-position:50% 78%; }
.oferta-cards .oferta-card:nth-child(4) .oferta-card-img img{ object-position:50% 68%; }

/* ════════════════════════════════════════════════════════════════
   TEST PALETY — paleta natura (oliwka + terakota + krem). Scoped: body.palette-logo
   Tylko strona /home-test. Usunąć cały blok po decyzji. 2026-06-28
   ════════════════════════════════════════════════════════════════ */
body.palette-logo{
  /* tła ciepłe, kremowe */
  --bg:           #F6F1EA;   /* krem washi */
  --surface:      #EDE8E0;   /* kamień */
  --surface-tint: #EDE8E0;
  --fg:           #2B2724;   /* ink grafit ciepły */
  --fg-2:         #4A453E;
  --muted:        #8A857C;
  --border:       rgba(43,39,36,0.12);
  --border-soft:  rgba(43,39,36,0.07);
  /* akcent: liściasty zielony, rodzina limonki z logo, mniej nasycony, nie ciemny */
  --accent:       #5E7E33;   /* leaf green, biały tekst AA ~4.7 */
  --accent-on:    #F6F1EA;   /* jasny tekst na zieleni */
  --accent-hover: #51702B;   /* odrobinę ciemniejszy */
  --accent-deep:  #46602A;   /* głębszy liść (sekcje), wciąż nie ciemny */
}
/* sekcje ciemne = głębszy liść (nie ciemna zieleń) */
body.palette-logo .section-dark,
body.palette-logo .cta-dark{ background:#46602A; }
body.palette-logo .cennik-price{ background:#46602A; }

/* ── PALETA A: ciepły liść + krem. Zielony TYLKO w akcentach, sekcje ciemne = grafit ── */
body{
  --bg:#F6F1EA; --surface:#ECE7DE; --surface-tint:#ECE7DE;
  --fg:#2B2724; --fg-2:#4A453E; --muted:#8A857C;
  --border:rgba(43,39,36,0.12); --border-soft:rgba(43,39,36,0.07);
  --accent:#5E7E33; --accent-on:#F6F1EA; --accent-hover:#51702B; --accent-deep:#46602A;
}
/* ciemne sekcje = ciepły grafit (kontrast), NIE zielony — zieleń zostaje akcentem */
body .section-dark,
body .section-sano-dark,
body .cennik-price{ background:#2D2823 !important; }
/* CTA podstron: sekcja BEZ ciemnego tła (krem strony), ciemny zostaje tylko box .cta-dark-body */
body .cta-dark{ background:var(--bg) !important; }
/* stopka spójna z tłem (krem), hairline na górze dla delikatnego oddzielenia */
body .pagefoot{ background:var(--bg) !important; color:var(--fg-2); border-top:1px solid var(--border) !important; }
/* logo bez boksu, normalne (ciemne czytelne na białym) */
body .footer-brand .logo{ background:none !important; padding:0 !important; border-radius:0 !important; }
body .footer-brand .logo-img{ filter:none; }
body .footer-brand p{ color:var(--muted) !important; }
/* nagłówki kolumn zielone */
body .footer-col h4{ color:var(--accent) !important; }
body .footer-col ul li{ color:var(--fg-2) !important; }
body .footer-col ul a{ color:var(--fg-2) !important; }
body .footer-col ul a:hover{ color:var(--accent) !important; }
body .footer-col ul a[href^="tel"]{ color:var(--fg) !important; }
body .footer-col ul a[href^="tel"]:hover{ color:var(--accent) !important; }
body .footer-bottom{ border-top:1px solid var(--border) !important; color:var(--muted); }
body .footer-bottom a{ color:var(--fg-2); }
body .footer-bottom a:hover{ color:var(--accent); }
/* CTA wyróżniony: jaśniejszy grafit-card + zielony przycisk telefonu */
body .cta-band{ background:#2E2820 !important; box-shadow:0 24px 70px rgba(20,18,15,0.40) !important; }
body .cta-band::before{ display:none !important; }
/* cennik card na home: off-white (ciepły) zamiast zimnego zielonkawego */
body .cennik-card{ background:#FBF9F4 !important; }
/* FAQ 2-kolumnowe na home */
body .faq-list{ display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(32px,5vw,72px); max-width:none; align-items:start; }
@media (max-width:760px){ body .faq-list{ grid-template-columns:1fr; } }
body .cta-btn-light{ background:var(--accent) !important; color:var(--accent-on) !important; }
body .cta-btn-light svg{ color:var(--accent-on) !important; }
body .cta-btn-light:hover{ background:var(--accent-hover) !important; }
/* hover Sprawdź lokalizację: biały solid + ciemny tekst (nie ledwo-transparent) */
body .cta-btn-ghost:hover{ background:#fff !important; color:#2E2820 !important; border-color:#fff !important; }
body .cta-btn-ghost:hover svg{ color:#2E2820 !important; }
/* na ciemnym grafit: akcenty zielone wyskakują (listek eyebrow + checkmarki) */
body .section-dark .eyebrow::before,
body .cta-dark .eyebrow::before,
body .section-sano-dark .eyebrow::before{ background:var(--accent); }
body .section-dark li > svg,
body .cta-dark li > svg,
body .section-sano-dark .sano-list li svg{ color:var(--accent); }
/* dolny CTA (.cta-band) + CTA podstron (.cta-dark-body): gradient grafitowy zamiast teal */
body .cta-dark-body{ background:linear-gradient(135deg, #36302A 0%, #2A251F 100%) !important; box-shadow:0 24px 60px rgba(20,18,15,0.40) !important; }
/* checkmarki/listek na dolnym CTA zielone */
body .cta-band li > svg,
body .cta-band .eyebrow::before{ color:var(--accent); background:var(--accent); }

/* ── PALETA B: eukaliptus (chłodny spa-zielony) + chłodne greige ── */
body.palette-b{
  --bg:#F1F2EE; --surface:#E7E9E3; --surface-tint:#E7E9E3;
  --fg:#232826; --fg-2:#414A45; --muted:#7E847F;
  --border:rgba(35,40,38,0.12); --border-soft:rgba(35,40,38,0.07);
  --accent:#4C7A5E; --accent-on:#F1F2EE; --accent-hover:#406A50; --accent-deep:#33523E;
}
body.palette-b .section-dark, body.palette-b .cta-dark, body.palette-b .cennik-price{ background:#33523E; }

/* ── PALETA C: soczysta trawa (nasycony, najbliżej limonki) + ciepły piasek ── */
body.palette-c{
  --bg:#F4EEE3; --surface:#EAE2D2; --surface-tint:#EAE2D2;
  --fg:#28251F; --fg-2:#4A4438; --muted:#867D6E;
  --border:rgba(40,37,31,0.12); --border-soft:rgba(40,37,31,0.07);
  --accent:#4F7A2E; --accent-on:#F4EEE3; --accent-hover:#446B27; --accent-deep:#3A5A22;
}
body.palette-c .section-dark, body.palette-c .cta-dark, body.palette-c .cennik-price{ background:#3A5A22; }


/* ── Focus-visible, a11y ring (zielony) ── */
a:focus-visible, button:focus-visible, .btn:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }
.section-dark *:focus-visible, .cta-dark *:focus-visible, .section-sano-dark *:focus-visible, .cta-band *:focus-visible{ outline-color:var(--on-dark); }

/* ── Eyebrow na ciemnych sekcjach: jasny tekst + zielony listek (spójnie) ── */
.cta-dark .eyebrow, .section-dark .eyebrow, .section-sano-dark .eyebrow, .cta-band .eyebrow{ color:var(--on-dark-dim) !important; }
.cta-dark .eyebrow::before, .section-dark .eyebrow::before, .section-sano-dark .eyebrow::before, .cta-band .eyebrow::before{ background:var(--accent) !important; }

/* ══════ HOME sesja poprawkowa ══════ */
/* Hero: rating nad H1 */
.hero-rating{ display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.hero-rating-stars{ color:var(--star); letter-spacing:2px; font-size:15px; }
.hero-rating-text{ font-size:13px; color:var(--muted); }
/* Hero "Nasza oferta": outline bez strzałki, hover biały */
.hero-cta .btn-hero-outline:hover{ background:#fff !important; color:var(--accent) !important; border-color:#fff !important; box-shadow:0 8px 20px color-mix(in oklab,var(--fg),transparent 86%) !important; }

/* SANOPLASMA: kafelki ikon w borderze (grafit) */
.sano-tiles{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sano-tile{ display:flex; align-items:center; gap:14px; padding:16px; border:1px solid var(--on-dark-border); border-radius:14px; }
.sano-tile-ico{ flex:0 0 auto; width:44px; height:44px; border:1px solid var(--on-dark-border); border-radius:11px; display:grid; place-items:center; color:var(--accent); }
.sano-tile-ico svg{ width:22px; height:22px; display:block; }
.sano-tile-text{ color:var(--on-dark); font-size:14.5px; line-height:1.4; }
@media (max-width:560px){ .sano-tiles{ grid-template-columns:1fr; } }

/* Opinie: przebudowa kart */
.review-card{ background:#fff !important; border:1px solid var(--border-soft) !important; border-radius:var(--radius-lg); padding:26px 28px 22px !important; display:flex; flex-direction:column; gap:16px; box-shadow:0 1px 2px rgba(43,39,36,0.04), 0 10px 30px rgba(43,39,36,0.06); transition:box-shadow .2s ease, transform .2s ease; }
.review-card:hover{ box-shadow:0 6px 16px rgba(43,39,36,0.08), 0 18px 44px rgba(43,39,36,0.11); transform:translateY(-3px); }
.review-top{ display:flex; align-items:center; justify-content:space-between; }
.review-stars{ color:var(--star); letter-spacing:2px; font-size:15px; }
.review-text{ font-family:var(--font-display); font-size:17px; line-height:1.55; font-style:italic; color:var(--fg-2); flex-grow:1; margin:0; }
.review-foot{ display:flex; align-items:center; gap:12px; margin-top:auto; padding-top:16px; border-top:1px solid var(--border-soft); }
.review-avatar{ width:40px; height:40px; border-radius:50%; background:var(--accent); color:var(--accent-on); display:grid; place-items:center; font-family:var(--font-display); font-size:17px; font-weight:500; flex:0 0 auto; }
.review-id{ display:flex; flex-direction:column; }
.review-name{ font-size:14px; font-weight:600; color:var(--fg); }
.review-source{ font-size:11px; color:var(--muted); letter-spacing:0.03em; margin-top:1px; }

/* SANOPLASMA: 2-col grid z personalizowanymi ikonami (bez borderu) */
.sano-grid{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:30px 40px; }
.sano-grid li{ display:flex; align-items:flex-start; gap:15px; color:var(--on-dark); font-size:15px; line-height:1.45; }
.sano-ico{ flex:0 0 auto; color:var(--accent); }
.sano-ico svg{ width:32px; height:32px; display:block; }
@media (max-width:560px){ .sano-grid{ grid-template-columns:1fr; gap:20px; } }

/* Tło zdjęciowe (toggle .has-bg): SANOPLASMA + dolny CTA. Bez has-bg = flat grafit. */
.section-sano-dark.has-bg{ background:linear-gradient(rgba(34,29,23,0.90), rgba(34,29,23,0.86)), url(../img/st-relaks-swiatlo.jpg) center/cover no-repeat; }
body .cta-band.has-bg{ background:linear-gradient(rgba(34,29,23,0.90), rgba(34,29,23,0.87)), url(../img/sanoplasma-relaks.jpg) center/cover no-repeat !important; }

/* ── Sekcja Bańki chińskie (home) ── */
.banki-split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); align-items:center; }
.banki-photo .ph-img{ aspect-ratio:4/3; border-radius:var(--radius-lg); overflow:hidden; }
.banki-content{ display:flex; flex-direction:column; }
.banki-content h2{ margin:0; }
.banki-content .lead{ margin-top:14px; max-width:42ch; }
.banki-badge{ align-self:flex-start; background:var(--accent); color:var(--accent-on); font-size:11px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; padding:5px 12px; border-radius:6px; margin-bottom:16px; }
.banki-benefits{ list-style:none; padding:0; margin:24px 0 0; display:flex; flex-direction:column; gap:12px; }
.banki-benefits li{ display:flex; align-items:flex-start; gap:12px; font-size:15px; color:var(--fg-2); line-height:1.45; }
.banki-tick{ flex:0 0 auto; color:var(--accent); margin-top:1px; }
.banki-foot{ display:flex; align-items:center; gap:24px; margin-top:28px; flex-wrap:wrap; }
.banki-price{ display:flex; flex-direction:column; }
.banki-price-val{ font-family:var(--font-display); font-size:30px; font-weight:500; color:var(--accent); line-height:1; }
.banki-price-note{ font-size:12px; color:var(--muted); margin-top:3px; }
@media (max-width:860px){ .banki-split{ grid-template-columns:1fr; gap:26px; } }


/* ===== CENNIK: CTA pełny przycisk + ujednolicenie pierwszego zabiegu ===== */
.cat-cta{ background:var(--accent); color:var(--accent-on); border:1px solid var(--accent); padding:14px 28px; border-radius:var(--radius); font-size:16px; font-weight:500; letter-spacing:0.005em; gap:8px; transition:background .18s ease, border-color .18s ease, transform .06s ease; }
.cat-cta:hover{ background:var(--accent-hover); border-color:var(--accent-hover); gap:8px; }
.cat-cta:active{ transform:translateY(1px); }
.price-featured{ align-items:baseline; padding:14px 0; border-bottom:1px solid var(--border-soft); }
.pf-name{ font-family:inherit; font-size:15px; font-weight:400; letter-spacing:normal; }
.pf-note{ margin-top:3px; letter-spacing:0.02em; }
.pf-val{ font-size:15px; padding-top:0; }


/* ===== KONTAKT redesign ===== */
.kontakt-hero-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(32px,5vw,72px); align-items:stretch; }
.kontakt-hero-info{ display:flex; flex-direction:column; }
.kontakt-data{ list-style:none; margin:34px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:22px 32px; }
.kontakt-data-item{ display:flex; gap:12px; align-items:flex-start; }
.kontakt-data-item > svg{ flex:0 0 auto; width:20px; height:20px; color:var(--accent); margin-top:3px; }
.kd-label{ display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); margin-bottom:4px; }
.kd-value{ display:block; font-size:15px; color:var(--fg); line-height:1.5; }
a.kd-value{ transition:color 0.15s ease; }
a.kd-value:hover{ color:var(--accent); }
.kd-phone{ font-size:20px; font-weight:500; letter-spacing:-0.01em; line-height:1.2; }
.kontakt-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.kontakt-hero-social{ margin-top:22px; align-self:flex-start; }
.btn-outline{ background:transparent; color:var(--accent); border:1px solid var(--accent); }
.btn-outline:hover{ background:var(--accent); color:var(--accent-on); border-color:var(--accent); }
.kontakt-hero-map{ border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border-soft); min-height:440px; background:var(--accent-soft); }
.kontakt-hero-map iframe{ width:100%; height:100%; min-height:440px; border:0; display:block; }
.dojazd-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 48px; margin-top:14px; }
.kontakt-form-wrap{ max-width:760px; }
@media (max-width:880px){
  .kontakt-hero-grid{ grid-template-columns:1fr; }
  .kontakt-data{ grid-template-columns:1fr 1fr; }
  .kontakt-hero-map{ min-height:300px; }
  .kontakt-hero-map iframe{ min-height:300px; }
  .dojazd-grid{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .kontakt-data{ grid-template-columns:1fr; }
}