/* ===== Podstrony — wspólne layouty ===== */

/* page hero */
.page-hero{ padding-top:clamp(48px,8vw,110px); padding-bottom:clamp(12px,1.5vw,20px); }
.page-hero .eyebrow{ margin-bottom:22px; }
.page-hero h1{ max-width:16ch; margin-bottom:.4em; }
.page-hero .lead{ max-width:56ch; }
.page-hero.with-rule{ border-bottom:1px solid var(--line); }

/* prosty układ dwukolumnowy tekstu */
.cols2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,64px); }
.cols-side{ display:grid; grid-template-columns:.42fr 1fr; gap:clamp(28px,5vw,72px); align-items:start; }
.side-label{ font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--wine); position:sticky; top:120px; }

/* O MNIE */
.about-split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,80px); align-items:center; }
.about-split .imgframe{ aspect-ratio:4/5; }
.about-portrait{ position:relative; }
.about-portrait .tag{ position:absolute; left:-1px; bottom:24px; background:var(--wine); color:#fff; font-family:var(--sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase; padding:.85em 1.4em; }
.factbar{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border-block:1px solid var(--line); }
.factbar .fact{ background:var(--paper); padding:clamp(24px,3vw,40px) clamp(18px,2vw,28px); }
.factbar .fact .k{ font-family:var(--serif); font-size:clamp(2rem,3.4vw,3rem); color:var(--wine); line-height:1; display:block; margin-bottom:10px; }
.factbar .fact .v{ font-family:var(--sans); font-size:12.5px; letter-spacing:.06em; color:var(--muted); }

/* pull quote */
.pullquote{ text-align:center; max-width:24ch; margin:0 auto; }
.pullquote p{ font-family:var(--serif); font-size:clamp(1.8rem,4vw,3rem); line-height:1.18; color:var(--ink); }
.pullquote .mark{ color:var(--wine); }

/* ZAKRES — obszary praktyki */
.area{ display:grid; grid-template-columns:auto 1fr; gap:clamp(24px,4vw,64px); padding-block:clamp(48px,6vw,90px); border-bottom:1px solid var(--line); align-items:start; }
.area:last-of-type{ border-bottom:0; }
.area .anum{ font-family:var(--serif); font-size:clamp(2.4rem,5vw,4rem); color:var(--wine); line-height:.9; }
.area h2{ margin-bottom:.5em; }
.area .area-body{ max-width:62ch; }
.area .pts{ list-style:none; padding:0; margin:1.6em 0 0; display:grid; grid-template-columns:1fr 1fr; gap:12px 32px; }
.area .pts li{ font-family:var(--sans); font-size:14px; color:var(--ink-soft); padding-left:20px; position:relative; }
.area .pts li::before{ content:""; position:absolute; left:0; top:.62em; width:7px; height:7px; background:var(--wine); }

/* FAQ */
.faq{ max-width:840px; margin:0 auto; }
.acc-item{ border-bottom:1px solid var(--line); }
.acc-item:first-child{ border-top:1px solid var(--line); }
.acc-head{ width:100%; text-align:left; background:transparent; border:0; cursor:pointer; padding:28px 48px 28px 0; position:relative; font-family:var(--serif); font-size:clamp(1.15rem,1.8vw,1.5rem); color:var(--ink); line-height:1.3; }
.acc-head::after{ content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-family:var(--sans); font-size:1.5rem; color:var(--wine); transition:transform .35s var(--ease); }
.acc-item.open .acc-head::after{ transform:translateY(-50%) rotate(45deg); }
.acc-body{ max-height:0; overflow:hidden; transition:max-height .45s var(--ease); }
.acc-body .acc-inner{ padding:0 48px 30px 0; color:var(--ink-soft); }
.acc-body p{ max-width:62ch; }

/* BLOG */
.blog-feat{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,4vw,64px); align-items:center; padding-bottom:clamp(40px,5vw,72px); border-bottom:1px solid var(--line); }
.blog-feat .imgframe{ aspect-ratio:16/11; }
.post-meta{ font-family:var(--sans); font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--wine); margin-bottom:16px; display:flex; gap:14px; flex-wrap:wrap; }
.post-meta .dot{ color:var(--muted); }
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,3.5vw,52px); margin-top:clamp(40px,5vw,72px); }
.post-card{ cursor:pointer; }
.post-card .imgframe{ aspect-ratio:3/2; margin-bottom:22px; }
.post-card h3{ margin-bottom:12px; transition:color .25s; }
.post-card:hover h3{ color:var(--wine); }
.post-card p{ font-size:.95rem; }
.post-card .rt{ font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:14px; }
.placeholder-img{ width:100%; height:100%; background:
   repeating-linear-gradient(135deg, var(--paper-3) 0 14px, var(--paper-2) 14px 28px);
   display:flex; align-items:center; justify-content:center; }
.placeholder-img span{ font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }

/* KONTAKT */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,80px); align-items:start; }
.contact-info .ci-row{ padding:22px 0; border-bottom:1px solid var(--line); }
.contact-info .ci-row:first-child{ border-top:1px solid var(--line); }
.contact-info .ci-row .k{ font-family:var(--sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:8px; }
.contact-info .ci-row .v{ font-family:var(--serif); font-size:1.25rem; }
.contact-info .ci-row a.v:hover{ color:var(--wine); }

.field{ margin-bottom:22px; }
.field label{ display:block; font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:9px; }
.field input, .field textarea, .field select{
  width:100%; font-family:var(--serif); font-size:1.05rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); padding:14px 16px;
  transition:border-color .25s; }
.field textarea{ min-height:130px; resize:vertical; }
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--wine); }
.field.err input, .field.err textarea{ border-color:var(--wine); background:var(--wine-tint); }
.check{ display:flex; gap:12px; align-items:flex-start; margin-bottom:26px; }
.check input{ width:18px; height:18px; margin-top:3px; accent-color:var(--wine); flex-shrink:0; }
.check label{ font-family:var(--sans); font-size:13px; color:var(--muted); line-height:1.5; }
.check.err label{ color:var(--wine); }
.form-done{ background:var(--wine-tint); border:1px solid var(--wine); padding:32px; }
.form-done h3{ color:var(--wine); margin-bottom:10px; }

.map-wrap{ margin-top:clamp(40px,5vw,72px); border:1px solid var(--line); }
.map-wrap iframe{ display:block; width:100%; height:420px; border:0; filter:grayscale(.4) contrast(1.02); }

/* responsive */
@media (max-width:860px){
  .cols2, .cols-side, .about-split, .blog-feat, .contact-grid{ grid-template-columns:1fr; gap:32px; }
  .side-label{ position:static; }
  .area{ grid-template-columns:1fr; gap:14px; }
  .area .pts{ grid-template-columns:1fr; }
  .blog-grid{ grid-template-columns:1fr 1fr; }
  .factbar{ grid-template-columns:1fr 1fr; }
  .about-split .imgframe{ max-width:520px; }
}
@media (max-width:560px){
  .blog-grid{ grid-template-columns:1fr; }
  .factbar{ grid-template-columns:1fr; }
}
