*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#2b2b2b;background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
ul{list-style:none}

.wrap{max-width:980px;margin:0 auto;padding:0 20px}

/* Header */
.site-header{background:#fff;padding:18px 0;border-bottom:1px solid #e8e8e8;position:sticky;top:0;z-index:100}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between}
.logo-img{height:55px;width:55px;border-radius:50%;object-fit:cover}
.main-nav{display:flex;gap:0;align-items:center}
.main-nav a{display:block;padding:10px 16px;font-size:14px;color:#314731;letter-spacing:.3px;transition:color .2s}
.main-nav a:hover,.main-nav a.active{color:#5a8a5a}
.nav-item{position:relative}
.nav-item:hover .sub-menu{display:block}
.sub-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid #e8e8e8;min-width:180px;z-index:200;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.sub-menu a{padding:10px 18px;display:block;font-size:13px;border-bottom:1px solid #f0f0f0}
.sub-menu a:last-child{border:none}
.sub-menu a:hover{background:#f7f7f7}
.menu-btn{display:none;background:none;border:none;font-size:14px;color:#314731;cursor:pointer;padding:8px}

/* Hero / Banner sections */
.hero{position:relative;overflow:hidden}
.hero img{width:100%;height:auto;display:block}
.hero-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(0,0,0,.3);color:#fff;padding:20px}
.hero-overlay h1{font-size:42px;text-transform:uppercase;letter-spacing:3px;margin-bottom:16px;font-weight:400}
.hero-overlay .btn{margin-top:10px}

.page-title{text-align:center;padding:60px 20px 40px;font-size:36px;text-transform:uppercase;letter-spacing:2px;color:#314731;font-weight:400}

/* Buttons */
.btn{display:inline-block;padding:12px 32px;border:2px solid #314731;color:#314731;font-size:14px;letter-spacing:1px;text-transform:uppercase;transition:all .2s}
.btn:hover{background:#314731;color:#fff}
.btn-light{border-color:#fff;color:#fff}
.btn-light:hover{background:#fff;color:#314731}

/* Content sections */
.section{padding:60px 0}
.section.alt{background:#f7f5f2}
.section-title{font-size:28px;text-align:center;color:#314731;margin-bottom:30px;font-weight:400;text-transform:uppercase;letter-spacing:1px}
.section-subtitle{text-align:center;max-width:700px;margin:0 auto 40px;font-size:15px;line-height:1.8;color:#555}

/* Two column layout */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}

/* Class cards (nasze-zajecia) */
.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px}
.class-card{text-align:center}
.class-card img{width:100%;aspect-ratio:3/4;object-fit:cover;margin-bottom:12px}
.class-card h3{font-size:16px;color:#314731;text-transform:uppercase;letter-spacing:1px;font-weight:400}

/* Team section */
.team-member{display:grid;grid-template-columns:280px 1fr;gap:40px;margin-bottom:50px;align-items:start}
.team-member:nth-child(even){direction:rtl}
.team-member:nth-child(even) > *{direction:ltr}
.team-member img{width:100%;aspect-ratio:2/3;object-fit:cover}
.team-member h3{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:#888;margin-bottom:4px;font-weight:400}
.team-member h2{font-size:22px;color:#314731;margin-bottom:12px;font-weight:400}
.team-member p{font-size:14px;line-height:1.8;color:#555}

/* Pricing */
.price-section-title{font-size:22px;text-transform:uppercase;text-align:center;color:#314731;letter-spacing:1px;margin-bottom:8px;font-weight:400}
.price-section-sub{text-align:center;font-size:13px;color:#888;margin-bottom:30px}
.price-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-bottom:50px}
.price-card{border:1px solid #e0e0e0;padding:28px 20px;text-align:center}
.price-card .label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#888;margin-bottom:4px}
.price-card .price{font-size:32px;color:#314731;font-weight:300;margin-bottom:4px}
.price-card .unit{font-size:13px;color:#314731}
.price-card .note{font-size:12px;color:#888;margin-top:8px;line-height:1.5}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.contact-info h3{font-size:16px;color:#314731;margin-bottom:16px;text-transform:uppercase;letter-spacing:1px;font-weight:400}
.contact-info p{font-size:14px;line-height:1.8;color:#555;margin-bottom:6px}
.contact-info a{color:#314731;border-bottom:1px solid #314731}
.contact-info a:hover{color:#5a8a5a;border-color:#5a8a5a}

/* Location */
.location-img{width:100%;max-height:400px;object-fit:cover;margin-bottom:30px}
.hours-box{text-align:center;padding:30px;background:#f7f5f2}
.hours-box h3{font-size:18px;color:#314731;margin-bottom:10px;font-weight:400;text-transform:uppercase;letter-spacing:1px}

/* Class detail page */
.class-detail{max-width:700px;margin:0 auto}
.class-detail p{font-size:15px;line-height:1.9;color:#444;margin-bottom:16px}
.class-images{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px}
.class-images img{width:100%;aspect-ratio:3/4;object-fit:cover}
.class-images.single{grid-template-columns:1fr}
.class-images.single img{max-width:400px;margin:0 auto}

/* Booking / Schedule */
.booking-frame{text-align:center;padding:40px 0}
.booking-frame .btn{font-size:16px;padding:16px 40px}

/* Footer */
.site-footer{background:#314731;color:#fff;padding:40px 0 20px;text-align:center}
.site-footer .brand{font-size:20px;letter-spacing:1px;margin-bottom:8px}
.site-footer .email{font-size:14px;margin-bottom:20px}
.site-footer .email a{color:#c5d8c5;border-bottom:1px solid transparent}
.site-footer .email a:hover{border-color:#c5d8c5}
.social-bar{display:flex;gap:12px;justify-content:center;margin-bottom:20px}
.social-bar img{width:40px;height:40px;border-radius:50%;opacity:.85;transition:opacity .2s}
.social-bar img:hover{opacity:1}
.footer-links{display:flex;gap:20px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}
.footer-links a{font-size:13px;color:#c5d8c5;border-bottom:1px solid transparent;transition:border-color .2s}
.footer-links a:hover{border-color:#c5d8c5}
.footer-copy{font-size:12px;color:#8aa88a;margin-top:16px}

/* Responsive */
@media(max-width:768px){
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;border-top:1px solid #e8e8e8;box-shadow:0 4px 12px rgba(0,0,0,.08)}
  .main-nav.open{display:flex}
  .menu-btn{display:block}
  .sub-menu{position:static;box-shadow:none;border:none;padding-left:20px}
  .sub-menu a{font-size:13px;padding:8px 18px}
  .nav-item .sub-menu{display:block}
  .two-col,.contact-grid{grid-template-columns:1fr}
  .team-member{grid-template-columns:1fr}
  .team-member:nth-child(even){direction:ltr}
  .class-images{grid-template-columns:1fr}
  .hero-overlay h1{font-size:28px}
  .page-title{font-size:28px;padding:40px 20px 30px}
  .price-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .price-grid{grid-template-columns:1fr}
}
