:root{
  --bg:#fffaf8;
  --surface:#ffffff;
  --surface-soft:#f7efec;
  --text:#2e2024;
  --muted:#6e5b61;
  --primary:#bf7f86;
  --primary-dark:#6d4750;
  --border:#eadedf;
  --shadow:0 18px 40px rgba(85,57,64,.09);
  --radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',system-ui,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:min(1180px,calc(100% - 32px));margin:0 auto}

.site-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(255,250,248,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0}
.brand-logo{height:58px;width:auto;object-fit:contain}
.nav{display:flex;align-items:center;gap:34px;font-size:1.05rem;color:#6e5c62}
.nav a:hover{color:var(--primary-dark)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--primary);color:#fff;border-radius:999px;padding:14px 24px;
  font-weight:700;border:0;cursor:pointer;transition:transform .2s ease, opacity .2s ease;
}
.btn:hover{transform:translateY(-1px);opacity:.96}
.btn-small{padding:12px 22px}
.btn-outline{
  background:transparent;color:var(--primary-dark);border:1px solid #d9b9bc;
}
.menu-toggle{
  display:none;background:none;border:0;padding:8px;cursor:pointer;flex-direction:column;gap:5px
}
.menu-toggle span{
  width:24px;height:2px;background:var(--primary-dark);border-radius:2px;display:block;transition:.2s ease
}
.mobile-menu{border-top:1px solid var(--border);background:rgba(255,250,248,.98)}
.mobile-nav{display:flex;flex-direction:column;padding:14px 16px 20px;gap:12px}
.mobile-menu-cta{margin-top:6px;width:100%}

.hero{
  padding:56px 0 24px;
  background:
    radial-gradient(circle at top left, rgba(224,190,191,.35), transparent 34%),
    radial-gradient(circle at bottom right, rgba(240,224,220,.7), transparent 28%);
}
.hero-grid,.about-grid,.contact-grid{
  display:grid;grid-template-columns:1.04fr .96fr;gap:42px
}
.hero-grid,.about-grid,.contact-grid{align-items:start}
.hero-copy{min-width:0}
.hero-card{display:grid;gap:18px}
.eyebrow{
  text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;
  color:var(--primary-dark);font-weight:700;margin:0 0 10px
}
h1,h2{
  font-family:'Playfair Display',serif;line-height:1.08;margin:0 0 16px;color:#402d33
}
h1{font-size:clamp(2.5rem,5vw,5.1rem)}
h2{font-size:clamp(2rem,3.2vw,3.5rem)}
.lead,.section-head p,.contact-details p,.pricing-meta,.payment{color:var(--muted)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0 18px}
.hero-badges{
  list-style:none;padding:0;margin:0;display:flex;gap:12px;flex-wrap:wrap
}
.hero-badges li,.stat-card,.service-card,.form-card,.hero-info-card,.pricing-card{
  border:1px solid var(--border);background:rgba(255,255,255,.9);box-shadow:var(--shadow)
}
.hero-badges li{padding:10px 14px;border-radius:999px;color:var(--muted)}
.hero-info-card{border-radius:var(--radius);padding:24px}

.section{padding:88px 0}
.soft-bg{background:var(--surface-soft)}
.accent-section{background:linear-gradient(180deg,rgba(248,239,235,.6),rgba(255,250,248,1))}
.stats-grid,.cards-grid,.pricing-grid{display:grid;gap:22px}
.stats-grid{grid-template-columns:repeat(3,1fr)}
.cards-grid,.pricing-grid{grid-template-columns:repeat(3,1fr);margin-top:34px}
.stat-card,.service-card,.pricing-card{border-radius:var(--radius);padding:28px}
.stat-card strong,.service-card h3{display:block;margin-bottom:8px;font-size:1.12rem}
.service-card h3,.pricing-card h3{margin-top:0}
.icon{
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  margin-bottom:16px;background:#f6e3e1;color:var(--primary-dark);font-size:1.3rem
}
.section-head{max-width:720px}
.check-list{list-style:none;padding:0;margin:24px 0 0}
.check-list li{position:relative;padding-left:28px;margin-bottom:12px}
.check-list li::before{content:'•';position:absolute;left:8px;color:var(--primary);font-size:1.2rem}
.cta-box{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:34px;border-radius:28px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow)
}
.contact-grid{align-items:start}
.map-wrap{margin-top:24px;overflow:hidden;border-radius:24px;border:1px solid var(--border);box-shadow:var(--shadow)}
.map-wrap iframe{width:100%;height:340px;border:0;display:block}
.form-card{border-radius:28px;padding:30px}
.contact-form{display:grid;gap:16px}
.contact-form label{display:grid;gap:8px;font-weight:600}
.contact-form input,.contact-form textarea{
  width:100%;border:1px solid var(--border);border-radius:16px;padding:14px 16px;
  font:inherit;background:#fff;color:var(--text)
}
.site-footer{padding:30px 0 44px;border-top:1px solid var(--border)}
.footer-wrap{display:flex;justify-content:space-between;gap:20px;align-items:center}
.footer-links{display:flex;gap:18px;color:var(--muted);flex-wrap:wrap}

/* Slider */
.image-slider{
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:28px;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  background:#f2e8e5;
  isolation:isolate;
}
.hero-slider{aspect-ratio: 4 / 3; min-height:420px}
.about-slider{aspect-ratio: 4 / 3; min-height:520px}
.slider-track{
  position:relative;
  width:100%;
  height:100%;
  min-height:inherit;
}
.slide{
  position:absolute;
  inset:0;
  margin:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .55s ease, visibility .55s ease;
}
.slide.is-active{
  opacity:1;
  visibility:visible;
  z-index:1;
}
.slide img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.slider-btn{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.8);
  background:rgba(59,44,46,.48);color:#fff;display:grid;place-items:center;
  font-size:2rem;line-height:1;cursor:pointer;backdrop-filter:blur(6px)
}
.slider-btn-prev{left:18px}
.slider-btn-next{right:18px}
.slider-dots{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  display:flex;gap:8px;z-index:3;justify-content:center;flex-wrap:wrap;
  max-width:calc(100% - 120px)
}
.slider-dot{
  width:11px;height:11px;border-radius:50%;border:0;padding:0;cursor:pointer;
  background:rgba(255,255,255,.56)
}
.slider-dot.is-active{background:#fff;box-shadow:0 0 0 2px rgba(182,120,124,.42)}

.pricing-card{
  display:flex;flex-direction:column;gap:14px;justify-content:space-between
}
.price{font-size:2rem;line-height:1;color:var(--primary-dark)}

.legal-page{min-height:100vh;display:grid;place-items:center;padding:40px 0}
.legal-box{
  background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);
  border-radius:28px;padding:38px;max-width:860px
}
.center-box{text-align:center}
.back-link{color:var(--primary-dark);display:inline-block;margin-bottom:22px}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.consent-row{
  display:flex;align-items:flex-start;gap:12px;font-size:.95rem;line-height:1.5;color:#5b4d52;
  background:#faf6f7;border:1px solid #eadfe3;border-radius:16px;padding:14px 16px
}
.consent-row input{margin-top:4px;accent-color:#a06b7c}
.consent-row a{color:#8d6173;font-weight:600}
.cookie-bar{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:999;background:rgba(54,41,46,.95);
  color:#fff;padding:14px 18px;border-radius:18px;box-shadow:0 12px 30px rgba(0,0,0,.18);
  display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:.95rem
}
.cookie-bar a{color:#f7dfe7}
.cookie-accept{border:0;border-radius:999px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;background:#f2d7df;color:#3b2b31}

@media (max-width:980px){
  .nav,.desktop-cta{display:none}
  .menu-toggle{display:inline-flex}
  .hero-grid,.about-grid,.contact-grid,.stats-grid,.cards-grid,.pricing-grid{grid-template-columns:1fr}
  .cta-box,.footer-wrap{flex-direction:column;align-items:flex-start}
  .hero-card{order:-1}
  .hero-slider,.about-slider{min-height:360px}
}
@media (max-width:640px){
  .container{width:min(100% - 20px, 100%)}
  .nav-wrap{padding:10px 0}
  .brand-logo{height:50px}
  .hero{padding-top:36px}
  .section{padding:64px 0}
  .hero-slider{min-height:280px;aspect-ratio: 16 / 12}
  .about-slider{min-height:360px;aspect-ratio: 16 / 14}
  .slider-btn{width:40px;height:40px;font-size:1.6rem}
  .slider-btn-prev{left:10px}
  .slider-btn-next{right:10px}
  .slider-dots{bottom:12px;max-width:calc(100% - 90px)}
  .legal-box,.form-card,.stat-card,.service-card,.hero-info-card,.pricing-card{padding:22px}
  .cookie-bar{left:10px;right:10px;bottom:10px;font-size:.9rem;padding:12px 14px}
  .consent-row{font-size:.92rem}
}

html, body {
  overflow-x: hidden;
}

.hero-copy, .about-copy, .contact-copy, .form-card, .hero-card, .about-photo {
  min-width: 0;
}

.hero-info-card p,
.contact-details p,
.service-card p,
.stat-card span,
.pricing-meta,
.payment,
.check-list li,
.lead,
.section-head p {
  overflow-wrap: anywhere;
}

@media (max-width: 980px) {
  .site-header {
    position: sticky;
  }

  .nav-wrap {
    gap: 12px;
  }

  .brand {
    flex: 1 1 auto;
    min-width: 0;
  }

  .brand-logo {
    height: 54px;
    max-width: 220px;
  }

  .menu-toggle {
    flex: 0 0 auto;
  }

  .hero-grid,
  .about-grid,
  .contact-grid,
  .stats-grid,
  .cards-grid,
  .pricing-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-grid,
  .about-grid,
  .contact-grid {
    gap: 28px;
  }

  .hero-card {
    order: -1;
  }

  .cta-box,
  .footer-wrap {
    flex-direction: column;
    align-items: flex-start;
  }

  .cta-box .btn {
    width: 100%;
  }

  .hero-slider,
  .about-slider {
    min-height: 340px;
  }

  .hero-info-card {
    padding: 20px;
  }
}

@media (max-width: 760px) {
  body {
    font-size: 15.5px;
  }

  .container {
    width: calc(100% - 24px);
  }

  .nav-wrap {
    padding: 10px 0;
  }

  .brand-logo {
    height: 48px;
    max-width: 190px;
  }

  .mobile-menu {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    box-shadow: 0 14px 28px rgba(63, 39, 45, 0.08);
  }

  .mobile-nav a {
    padding: 8px 0;
  }

  .hero {
    padding: 28px 0 34px;
  }

  .section {
    padding: 56px 0;
  }

  h1 {
    font-size: clamp(2.25rem, 10vw, 3.3rem);
    line-height: 1.04;
  }

  h2 {
    font-size: clamp(1.95rem, 8vw, 2.8rem);
    line-height: 1.08;
  }

  .hero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .hero-actions .btn {
    width: 100%;
  }

  .hero-badges {
    gap: 8px;
  }

  .hero-badges li {
    width: 100%;
    text-align: center;
  }

  .stat-card,
  .service-card,
  .pricing-card,
  .form-card,
  .hero-info-card,
  .legal-box {
    padding: 22px;
    border-radius: 22px;
  }

  .map-wrap {
    border-radius: 20px;
  }

  .map-wrap iframe {
    height: 280px;
  }

  .hero-slider {
    aspect-ratio: 4 / 3;
    min-height: 255px;
  }

  .about-slider {
    aspect-ratio: 4 / 5;
    min-height: 420px;
  }

  .slider-btn {
    width: 38px;
    height: 38px;
    font-size: 1.45rem;
  }

  .slider-btn-prev { left: 8px; }
  .slider-btn-next { right: 8px; }

  .slider-dots {
    bottom: 10px;
    max-width: calc(100% - 76px);
    gap: 6px;
  }

  .slider-dot {
    width: 9px;
    height: 9px;
  }

  .cookie-bar {
    left: 10px;
    right: 10px;
    bottom: 10px;
    padding: 12px 14px;
    font-size: 0.9rem;
    justify-content: flex-start;
  }

  .cookie-accept {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .container {
    width: calc(100% - 18px);
  }

  .brand-logo {
    height: 42px;
    max-width: 165px;
  }

  .hero {
    padding-top: 22px;
  }

  .section {
    padding: 48px 0;
  }

  .eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
  }

  h1 {
    font-size: clamp(2rem, 11vw, 2.75rem);
  }

  h2 {
    font-size: clamp(1.8rem, 8.6vw, 2.35rem);
  }

  .lead {
    font-size: 0.98rem;
  }

  .hero-grid,
  .about-grid,
  .contact-grid {
    gap: 22px;
  }

  .hero-slider {
    min-height: 220px;
    aspect-ratio: 11 / 9;
  }

  .about-slider {
    min-height: 360px;
    aspect-ratio: 4 / 5;
  }

  .hero-info-card strong {
    display: block;
    font-size: 1rem;
  }

  .hero-info-card p {
    margin: 6px 0 0;
    font-size: 0.95rem;
  }

  .contact-form input,
  .contact-form textarea {
    padding: 13px 14px;
    border-radius: 14px;
  }

  .consent-row {
    padding: 12px 14px;
    font-size: 0.9rem;
  }
}


/* Poprawa zbyt dużej przerwy między sekcją O mnie a Cennikiem */
.about-grid{align-items:start;}
.accent-section{padding-bottom:32px;}
#cennik{padding-top:36px;}
.about-copy p:last-child{margin-bottom:0;}

@media (max-width: 980px){
  .accent-section{padding-bottom:28px;}
  #cennik{padding-top:32px;}
}

@media (max-width: 760px){
  .accent-section{padding-bottom:22px;}
  #cennik{padding-top:26px;}
}

@media (max-width: 480px){
  .accent-section{padding-bottom:18px;}
  #cennik{padding-top:22px;}
}
