/* =========================================================
   Jowita Massage – style.css (refactor / clean version)
   - Bez duplikatów i "nadpisek"
   - Spójne zmienne, typografia, spacing
   - Mobile-first + czytelne breakpointy
   ========================================================= */

/* -----------------------------
   1) Variables
----------------------------- */
:root{
  --color-bg:#ffffff;
  --color-bg-light:#fdf8f0;
  --color-bg-alt:#efe6da;

  --color-primary:#6b5b4d;
  --color-accent:#c8a98e;
  --color-text:#4a3f35;
  --color-white:#ffffff;

  --shadow-light:0 4px 12px rgba(0,0,0,.10);
  --shadow-hover:0 8px 20px rgba(0,0,0,.10);

  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:20px;
  --radius-pill:999px;

  --container-max:1140px;

  --space-1:6px;
  --space-2:10px;
  --space-3:16px;
  --space-4:20px;
  --space-5:30px;
  --space-6:40px;
  --space-7:60px;
  --space-8:80px;

  --transition: .3s ease;
}

/* -----------------------------
   2) Base / Reset
----------------------------- */
*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:'Montserrat', sans-serif;
  background:var(--color-bg);
  color:var(--color-text);
  line-height:1.6;
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

a{
  color:inherit;
}

a:focus,
button:focus{
  outline:2px solid var(--color-accent);
  outline-offset:3px;
}

/* -----------------------------
   3) Layout / Utils
----------------------------- */
.container{
  width:100%;
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 var(--space-3);
}

.fade-in{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .6s ease, transform .6s ease;
}
.fade-in.visible{
  opacity:1;
  transform:translateY(0);
}

/* Używane na końcu kontaktu */
.bottom-spacer{
  height:10px;
}

/* -----------------------------
   4) Header / Navigation
----------------------------- */
.site-header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:10;

  background-color:rgba(247,242,235,.96);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(0,0,0,.05);

  transition:background-color var(--transition),
             box-shadow var(--transition),
             transform var(--transition);
}

.site-header.scrolled{
  background-color:rgba(247,242,235,1);
  box-shadow:var(--shadow-light);
}

.site-header.hidden{
  transform:translateY(-100%);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 0;
}

/* Logo */
.logo a{
  text-decoration:none;
  display:inline-block;
}
.logo span{
  font-family:'Playfair Display', serif;
  font-size:22px;
  letter-spacing:.15em;
  color:var(--color-primary);
  transition:letter-spacing var(--transition), color var(--transition);
}
.logo:hover span{
  letter-spacing:.20em;
  color:var(--color-accent);
}

/* Desktop nav default */
.main-nav{
  display:flex;
  align-items:center;
  gap:20px;
}

.main-nav a,
.nav-dropdown .nav-link{
  font-size:14px;
  font-weight:500;
  color:var(--color-primary);
  text-decoration:none;
  cursor:pointer;

  padding:6px 0;
  position:relative;

  transition:color var(--transition);
}

/* underline hover */
.main-nav a::after,
.nav-dropdown .nav-link::after{
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:2px;
  background:var(--color-accent);
  transition:width var(--transition);
}

.main-nav a:hover,
.nav-dropdown .nav-link:hover{
  color:var(--color-accent);
}
.main-nav a:hover::after,
.nav-dropdown .nav-link:hover::after{
  width:100%;
}

/* Dropdown desktop */
.nav-dropdown{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.dropdown-menu{
  position:absolute;
  top:100%;
  left:0;

  background:var(--color-white);
  border:1px solid rgba(0,0,0,.10);
  border-radius:var(--radius-sm);
  padding:10px 0;
  min-width:180px;

  opacity:0;
  visibility:hidden;
  transform:translateY(-10px);

  transition:opacity var(--transition),
             transform var(--transition),
             visibility var(--transition);

  box-shadow:0 4px 12px rgba(0,0,0,.08);
}

.nav-dropdown:hover .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.dropdown-menu a{
  display:block;
  padding:8px 16px;
  color:var(--color-primary);
  text-decoration:none;
  font-size:14px;
}

.dropdown-menu a:hover{
  background:var(--color-primary);
  color:var(--color-white);
}

/* Hamburger */
.mobile-menu-toggle{
  display:none; /* shown in RWD */
  flex-direction:column;
  gap:4px;
  background:none;
  border:none;
  cursor:pointer;
  padding:8px;
}

.mobile-menu-toggle span{
  width:24px;
  height:3px;
  background:var(--color-primary);
  border-radius:2px;
  transition:var(--transition);
}

/* Mobile open state (class na <body> albo na wrapperze – jak masz w JS) */
.mobile-nav-open .main-nav{
  display:flex;
  position:absolute;
  top:64px;
  left:0;
  right:0;

  flex-direction:column;
  align-items:flex-start;
  gap:0;

  background:var(--color-bg);
  padding:20px 0;
  border-bottom:1px solid rgba(0,0,0,.10);
  box-shadow:var(--shadow-light);
}

.mobile-nav-open .main-nav > a,
.mobile-nav-open .nav-dropdown > .nav-link{
  width:100%;
  padding:16px 20px;
  text-align:left;
  border-bottom:1px solid rgba(0,0,0,.05);
}

/* dropdown menu as inline list in mobile */
.mobile-nav-open .dropdown-menu{
  position:static;
  width:100%;
  display:block;
  background:transparent;
  border:0;
  box-shadow:none;
  padding:12px 40px;

  opacity:1;
  visibility:visible;
  transform:none;
}

/* submenu collapsing on mobile */
.mobile-nav-open .nav-dropdown{
  display:flex;
  flex-direction:column;
  width:100%;
}

.mobile-nav-open .nav-dropdown .dropdown-menu{
  display:none;
}
.mobile-nav-open .nav-dropdown.open .dropdown-menu{
  display:block;
}

/* arrow indicator */
.mobile-nav-open .nav-dropdown .nav-link{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
}
.mobile-nav-open .nav-dropdown .nav-link::after{
  content:'▼';
  position:static;
  width:auto;
  height:auto;
  background:none;
  font-size:12px;
}
.mobile-nav-open .nav-dropdown.open .nav-link::after{
  content:'▲';
}

.mobile-nav-open .dropdown-menu a{
  background:transparent;
  border-bottom:1px solid rgba(0,0,0,.05);
  color:var(--color-primary);
}

/* Hamburger animation */
.mobile-nav-open .mobile-menu-toggle span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.mobile-nav-open .mobile-menu-toggle span:nth-child(2){
  opacity:0;
}
.mobile-nav-open .mobile-menu-toggle span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* -----------------------------
   5) Buttons
----------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  padding:10px 22px;
  border-radius:var(--radius-pill);

  font-size:14px;
  font-weight:500;
  text-decoration:none;
  cursor:pointer;
  border:1px solid transparent;

  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
  white-space:nowrap;
}

.btn-primary{
  background:var(--color-accent);
  color:var(--color-white);
  border-color:var(--color-accent);
}
.btn-primary:hover{
  background:#b89578;
  border-color:#b89578;
}

.btn-outline{
  background:transparent;
  color:var(--color-white);
  border-color:rgba(255,255,255,.8);
}
.btn-outline:hover{
  background:rgba(255,255,255,.15);
}

.btn-small{
  padding:6px 14px;
  font-size:13px;
  border-radius:var(--radius-pill);
  border-color:var(--color-primary);
  color:var(--color-primary);
  background:transparent;
}
.btn-small:hover{
  background:var(--color-primary);
  color:var(--color-white);
}

/* -----------------------------
   6) Hero (Home)
----------------------------- */
.hero{
  position:relative;
  height:65vh;
  min-height:420px;

  display:flex;
  align-items:center;
  justify-content:center;

  margin-top:64px; /* space for fixed header */
  text-align:center;
  color:var(--color-white);
}

.hero-bg{
  position:absolute;
  inset:0;
  background-image:url("images/hero2.jpg");
  background-size:cover;
  background-position:center;
  z-index:-2;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:rgba(107,91,77,.45);
  z-index:-1;
}

.hero-content{
  max-width:600px;
  margin:0 auto;
}

.hero h1{
  font-family:'Playfair Display', serif;
  font-size:48px;
  margin:0 0 16px;
}

.hero h2{
  margin:0 0 12px;
  font-weight:500;
}

.hero p{
  font-size:18px;
  margin:0 0 24px;
}

.hero-buttons{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
}

/* -----------------------------
   7) Features (Home)
----------------------------- */
.features{
  padding:var(--space-7) 0 40px;
  background:var(--color-bg-alt);
}

.features-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
}

.feature-item{
  text-align:center;
  padding:16px;
}

.feature-item img{
  height:48px;
  width:auto;
  margin:0 auto 12px;
}

.feature-item h3{
  font-size:18px;
  margin:0 0 8px;
  color:var(--color-primary);
}

.feature-item p{
  font-size:14px;
  margin:0;
}

/* -----------------------------
   8) Offer slider (ofer.php)
----------------------------- */
.offer{
  background:var(--color-bg-light);
  padding:20px 0 30px;
}

.offer-row{
  display:flex;
  flex-wrap:nowrap;
  gap:20px;
  overflow-x:auto;

  padding-bottom:10px;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;

  scrollbar-width:none;
}
.offer-row::-webkit-scrollbar{ display:none; }

.offer-card{
  background:var(--color-bg-light);
  border-radius:var(--radius-md);
  text-align:center;

  padding-bottom:20px;
  display:flex;
  flex-direction:column;

  scroll-snap-align:start;

  transition:transform .25s ease, box-shadow .25s ease;
  box-shadow:0 4px 12px rgba(0,0,0,.05);
}

.offer-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-hover);
}

.offer-card img{
  width:100%;
  height:180px;
  object-fit:cover;
  border-radius:var(--radius-md) var(--radius-md) 0 0;
  aspect-ratio:4 / 3;
}

.offer-card h3{
  margin:15px 0 10px;
  color:var(--color-primary);
  font-size:18px;
  line-height:1.3;
  min-height:46px;

  display:flex;
  align-items:center;
  justify-content:center;
}

.offer-card p{
  padding:0 15px;
  font-size:14px;
  margin:0 0 15px;
  flex-grow:1;
}

.offer-card .btn-small{
  margin-top:auto;
  align-self:center;
  width:fit-content;
}

.offer-dots{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-top:12px;
}

.offer-dots span{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#c9b8a7;
  opacity:.4;
  transition:.2s ease;
}

.offer-dots span.active{
  opacity:1;
  background:var(--color-primary);
}

/* -----------------------------
   9) CTA
----------------------------- */
.cta{
  padding:50px 0;
  background:var(--color-bg-alt);
  text-align:center;
}

.cta h2{
  font-family:'Playfair Display', serif;
  font-size:26px;
  margin:0 0 20px;
  color:var(--color-primary);
}

/* -----------------------------
   10) Reviews
----------------------------- */
.reviews-section{
  padding:20px 0 80px;
  background:var(--color-bg-light);
}

.section-title h2{
  margin:0;
}
.section-title p{
  margin:10px 0 0;
}

.reviews-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:30px;
  margin-top:40px;
}

.review-card{
  background:var(--color-bg);
  padding:40px 30px;
  border-radius:var(--radius-lg);
  text-align:center;

  transition:transform var(--transition), box-shadow var(--transition);
  display:flex;
  flex-direction:column;
  justify-content:center;

  box-shadow:0 4px 15px rgba(0,0,0,.05);
}

.review-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-hover);
}

.review-stars{
  color:var(--color-accent);
  font-size:20px;
  margin-bottom:15px;
}

.review-text{
  font-style:italic;
  line-height:1.6;
  margin:0 0 20px;
  color:var(--color-text);
}

.review-author{
  margin:0;
  font-weight:600;
  color:var(--color-primary);
  text-transform:uppercase;
  font-size:13px;
  letter-spacing:1px;
}

.reviews-cta{
  text-align:center;
  margin-top:50px;
}

/* na tle jasnym outline ma być ciemny */
.reviews-cta .btn-outline{
  color:var(--color-primary);
  border-color:var(--color-primary);
  background:transparent;
}

.reviews-cta .btn-outline:hover{
  background:var(--color-primary);
  color:var(--color-white);
  border-color:var(--color-primary);
}

/* -----------------------------
   11) Modal (reservation-modal.php)
----------------------------- */
.modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:20;

  background:rgba(0,0,0,.5);

  align-items:center;
  justify-content:center;
}

.modal.open{
  display:flex;
}

.modal-content{
  background:var(--color-bg);
  padding:20px;
  border-radius:var(--radius-md);
  text-align:center;

  max-width:300px;
  width:80%;
  box-shadow:0 4px 20px rgba(0,0,0,.2);
  position:relative;

  transform:translateY(-30px);
  transition:transform .4s ease;
}

.modal.open .modal-content{
  transform:translateY(0);
}

.modal-close{
  position:absolute;
  top:10px;
  right:15px;
  color:var(--color-primary);
  font-size:24px;
  cursor:pointer;
  line-height:1;
}

.modal h2{
  font-size:18px;
  margin:0 0 16px;
  color:var(--color-primary);
}

.modal-option{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  padding:12px;
  margin:8px 0;

  background:var(--color-bg-alt);
  border-radius:var(--radius-sm);

  color:var(--color-primary);
  text-decoration:none;
  font-weight:500;

  transition:background-color .2s ease;
}

.modal-option:hover{
  background:#e8dfd2;
}

.modal-option svg{
  width:24px;
  height:24px;
}

/* -----------------------------
   12) Footer
----------------------------- */
.site-footer{
  padding:20px 0;
  background:var(--color-primary);
  color:rgba(255,255,255,.85);
  font-size:13px;
  text-align:center;
}

.footer-inner{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .8s ease, transform .8s ease;
}

.footer-inner.visible{
  opacity:1;
  transform:translateY(0);
}

.footer-phone{
  color:rgba(255,255,255,.85);
  text-decoration:none;
}
.footer-phone:hover{
  text-decoration:underline;
}

.footer-icons{
  display:flex;
  justify-content:center;
  gap:16px;
  margin-top:8px;
}

.footer-social{
  background:var(--color-primary);
  color:rgba(255,255,255,.85);
  display:inline-flex;
  padding:6px;
  border-radius:50%;
  text-decoration:none;
  transition:transform var(--transition), background-color var(--transition);
}

.footer-social:hover{
  transform:translateY(-4px) scale(1.1);
  background:var(--color-accent);
}

/* -----------------------------
   13) Subpage hero (.subpage-hero)
----------------------------- */
.subpage-hero{
  position:relative;
  height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  margin-top:64px; /* żeby fixed header nie przykrywał */
  margin-bottom:20px;
}

.sub-hero-bg{
  position:absolute;
  inset:0;
  background-image:url("images/hero2.jpg");
  background-size:cover;
  background-position:center;
  z-index:-2;
}

.sub-hero-overlay{
  position:absolute;
  inset:0;
  background:rgba(107,91,77,.45);
  z-index:-1;
}

.sub-hero-content{
  position:relative;
  text-align:center;
  color:var(--color-white);
}

.sub-hero-content h1{
  font-size:40px;
  margin:0 0 10px;
  font-family:'Playfair Display', serif;
}

.sub-hero-content p{
  font-size:20px;
  margin:0;
  opacity:.9;
}

/* -----------------------------
   14) About / Massage sections
   (used in main-masaze.php, main-omnie.php)
----------------------------- */
.about-section{
  padding:40px 0 80px;
}

.about-grid{
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:50px;
  align-items:center;
}

.about-photo img{
  width:100%;
  border-radius:var(--radius-md);
  object-fit:cover;
  box-shadow:0 10px 30px rgba(0,0,0,.15);
}

.about-content p{
  text-align:justify;
  margin:0 0 18px;
  line-height:1.7;
}

.about-stats{
  display:flex;
  justify-content:center;
  gap:40px;
  margin:30px 0;
}

.stat-item{
  text-align:center;
}

.stat-item strong{
  display:block;
  font-size:32px;
  font-weight:700;
  color:var(--color-primary);
}

.stat-item span{
  font-size:14px;
  opacity:.8;
}

.about-certificates{
  margin:30px 0;
}

.about-certificates h3{
  margin:0 0 10px;
  font-size:22px;
}

.about-certificates ul{
  margin:0;
  padding-left:20px;
  line-height:1.7;
}

/* -----------------------------
   15) SEO section (if used)
----------------------------- */
.seo-section{
  padding:60px 0;
}

.seo-section h2{
  font-size:20px;
  text-align:center;
  margin:0 0 25px;
}

.seo-section p{
  font-size:14px;
  line-height:1.65;
  text-align:justify;
  margin:0 0 20px;
}

/* -----------------------------
   16) Contact page styles
   (main-kontakt.php)
----------------------------- */
.contact-section{
  padding-bottom:20px;
}

.contact-map iframe{
  width:100%;
  border:0;
  border-radius:var(--radius-md);
}

.contact-details h2{
  margin-top:0;
}

.address-wrapper{
  display:flex;
  align-items:center;
  gap:20px;
  margin-bottom:25px;

  justify-content:center; /* mobile default */
  text-align:center;
}

.address-text{
  text-align:left;
}

.contact-actions{
  display:flex;
  gap:10px;
  margin-bottom:20px;
  justify-content:center; /* mobile default */
  flex-wrap:wrap;
}

.phone-link{
  text-decoration:none;
  font-weight:600;
  color:#000;
}
.phone-link:hover,
.phone-link:focus{
  color:var(--color-primary);
}

.contact-buttons-centered{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  margin-top:30px;
}

.contact-buttons-centered .btn{
  min-width:240px;
}

/* w masazach i kontaktach pojawia się wrapper na przycisk tel */
.phone-button-wrapper{
  margin:20px 0;
  text-align:center;
}

.phone-button-wrapper .btn-primary{
  width:100%;
  max-width:320px;
}

/* -----------------------------
   17) Responsive
----------------------------- */

/* XL padding for header inner on mid screens */
@media (max-width:1240px){
  .header-inner{
    padding-left:32px;
    padding-right:32px;
  }
}

/* <= 960px: mobile navigation and grids */
@media (max-width:960px){
  .mobile-menu-toggle{
    display:flex;
  }

  .main-nav{
    display:none;
  }

  .header-inner{
    padding-left:20px;
    padding-right:20px;
  }

  .logo span{
    font-size:20px;
    letter-spacing:.12em;
  }

  .features-grid{
    grid-template-columns:1fr;
    gap:40px;
  }

  .about-grid{
    grid-template-columns:1fr;
    gap:35px;
    text-align:center;
  }

  .about-photo img{
    max-width:300px;
    margin:0 auto 20px;
    border-radius:14px;
  }

  .about-content{
    padding:0 15px;
  }

  .about-content h2{
    font-size:24px;
    margin:0 0 15px;
  }

  .about-content p{
    font-size:14px;
    line-height:1.6;
  }

  .about-stats{
    flex-direction:column;
    gap:18px;
    margin:25px 0;
  }

  .stat-item strong{
    font-size:26px;
  }

  .stat-item span{
    font-size:13px;
  }

  .about-certificates h3{
    font-size:18px;
  }

  .about-certificates ul{
    padding-left:18px;
    font-size:14px;
    line-height:1.55;
    text-align:left;
  }

  .sub-hero-content h1{
    font-size:28px;
  }

  .sub-hero-content p{
    font-size:15px;
  }
}

/* Offer cards per view (desktop/tablet) */
@media (min-width:960px){
  .offer-card{
    flex:0 0 calc((100% - 60px) / 4);
    min-width:calc((100% - 60px) / 4);
  }
}

@media (min-width:600px) and (max-width:959px){
  .offer-card{
    flex:0 0 calc((100% - 20px) / 2);
    min-width:calc((100% - 20px) / 2);
  }
}

/* <= 768px: contact alignment + smaller sub-hero if desired */
@media (min-width:768px){
  .address-wrapper{
    justify-content:flex-start;
    text-align:left;
  }

  .contact-actions{
    justify-content:flex-start;
  }

  .address-wrapper .btn-primary{
    height:fit-content;
  }
}

@media (max-width:600px){
  .hero{
    height:80vh;
    min-height:460px;
  }

  .hero h1{
    font-size:34px;
  }

  .hero p{
    font-size:16px;
  }

  .hero-buttons{
    flex-direction:column;
    align-items:center;
  }

  .offer-card{
    min-width:100%;
    flex:0 0 100%;
  }

  .contact-buttons-centered .btn{
    min-width:100%;
    width:100%;
  }
}

@media (min-width:601px){
  .phone-button-wrapper .btn-primary{
    width:auto;
  }
}

/* FAQ Styles */
/* FAQ Styles */
.faq-section {
  padding: 60px 0;
  background-color: #f9f9f9; /* Delikatne tło */
}

.faq-container {
  max-width: 800px;
  margin: 0 auto;
}

.faq-item {
  background: #fff;
  margin-bottom: 15px;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
  overflow: hidden;
}

.faq-question {
  width: 100%;
  text-align: left;
  padding: 20px;
  background: none;
  border: none;
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: #333;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background-color 0.3s;
}

.faq-question:hover {
  background-color: #f0f0f0;
}

.faq-icon {
  font-size: 1.5rem;
  font-weight: 300;
  color: #c5a059; /* Twój złoty kolor z logo/akcentów */
  transition: transform 0.3s;
}

.faq-question.active .faq-icon {
  transform: rotate(45deg); /* Krzyżyk przy otwarciu */
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
  background-color: #fff;

  /* WAŻNE: odstęp od ewentualnej "linii" (border-top) do treści */
  padding-top: 12px;
}

.faq-answer p {
  /* było: 0 20px 20px 20px; */
  padding: 12px 20px 20px 20px;
  margin: 0;
  color: #666;
  line-height: 1.6;
  font-size: 0.95rem;
}
/* =============================
   CENNIK (desktop + mobile cards)
   Wymaga w HTML:
   - <tr data-title="Masaż klasyczny">
   - <td data-label="60 min">180 zł</td>
   - brak dostępności: class="na"
   ============================= */

/* --- Sekcja + wrapper --- */
.pricing-section{
  padding: 20px 0 80px;
}

.pricing-table-wrapper{
  margin-top: 24px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-lg);
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
  background: var(--color-white);
  border: 1px solid rgba(0,0,0,.06);
}

/* --- Tabela (desktop/tablet) --- */
.pricing-table{
  width: 100%;
  min-width: 720px;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 15px;
}

.pricing-table th,
.pricing-table td{
  padding: 14px 16px;
  border-bottom: 1px solid rgba(0,0,0,.06);
  vertical-align: middle;
}

.pricing-table thead th{
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--color-bg-alt);
  color: var(--color-primary);
  font-weight: 700;
  text-align: left;
  letter-spacing: .02em;
}

/* Nazwa masażu */
.pricing-table th:first-child,
.pricing-table td:first-child{
  font-weight: 600;
  color: var(--color-primary);
  width: 36%;
}

/* Ceny */
.pricing-table td:not(:first-child),
.pricing-table th:not(:first-child){
  text-align: right;
  white-space: nowrap;
}

.pricing-table tbody tr:nth-child(even){
  background: rgba(0,0,0,.02);
}

.pricing-table tbody tr:hover{
  background: rgba(200,169,142,.16);
}

.pricing-table .na{
  color: rgba(74,63,53,.55);
  font-weight: 600;
}

.pricing-table tr.highlight{
  background: rgba(239,230,218,.65);
}

.pricing-table tr.highlight td{
  font-weight: 600;
}

/* Notatki */
.pricing-notes{
  margin-top: 18px;
  background: var(--color-bg-light);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius-md);
  padding: 14px 16px;
}
.pricing-notes ul{ margin: 0; padding-left: 18px; }
.pricing-notes li{ margin: 6px 0; font-size: 14px; }

/* --- MOBILE: tryb kart --- */
@media (max-width: 640px){

  /* blokada poziomego scrolla od cennika */
  .pricing-section,
  .pricing-section .container{
    overflow-x: hidden;
  }

  /* wrapper już nie przewija, bo robimy karty */
  .pricing-table-wrapper{
    overflow: visible;
    box-shadow: none;
    border: 0;
    background: transparent;
    width: 100%;
    max-width: 100%;
  }

  /* tabela przestaje być "tabelą" */
  .pricing-table{
    min-width: 0 !important;
    width: 100% !important;
    border-spacing: 0;
    font-size: 14px;
  }

  .pricing-table thead{
    display: none;
  }

  .pricing-table tbody,
  .pricing-table tr,
  .pricing-table td{
    display: block;
    width: 100%;
  }

  /* karta */
  .pricing-table tr{
    position: relative;
    background: var(--color-white);
    border: 1px solid rgba(0,0,0,.06);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 20px rgba(0,0,0,.06);
    margin: 0 0 14px 0;
    overflow: hidden;
    padding-top: 44px; /* miejsce na nagłówek karty */
  }

  /* nagłówek karty na całą szerokość */
  .pricing-table tr::before{
    content: attr(data-title);
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    background: var(--color-bg-alt);
    color: var(--color-primary);
    font-weight: 700;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(0,0,0,.06);
  }

  /* ukryj pierwszą komórkę (bo tytuł jest w ::before) */
  .pricing-table td:first-child{
    display: none !important;
  }

  /* wiersze w karcie */
  .pricing-table td{
    border: 0;
    border-bottom: 1px solid rgba(0,0,0,.06);
    padding: 10px 14px;
    text-align: left !important;
    white-space: normal;
  }

  /* etykieta + wartość */
  .pricing-table td[data-label]{
    display: flex;
    justify-content: space-between;
    gap: 12px;
  }

  .pricing-table td[data-label]::before{
    content: attr(data-label);
    font-weight: 600;
    color: rgba(74,63,53,.75);
  }

  /* skrócenie: ukryj niedostępne warianty */
  .pricing-table td.na{
    display: none !important;
  }


  /* bez ostatniej kreski */
  .pricing-table tr > td:last-child{
    border-bottom: 0;
  }
}
