:root {
  --bg: #ffffff;
  --bg-alt: #f4f8f7;
  --text: #1f2937;
  --muted: #6b7280;
  --primary: #6b9b8d;
  --primary-ink: #0e312a;
  --ring: rgba(107, 155, 141, .35);
  --card: #ffffff;
  --border: #e5e7eb;
  --shadow: 0 10px 30px rgba(0, 0, 0, .08);
  --radius: 14px;
  --radius-sm: 10px;
  --container: 1300px;

  --yoga: #edd4f7;
  --neutral: #d8d8d8;
  --energy: #c9f98a;
  --grad-pink: linear-gradient(90deg, #d7a8ff 0%, #f3a3d8 100%);
  --grad-grey: linear-gradient(90deg, #e7e7ea 0%, #f4f4f6 100%);
}

* { box-sizing: border-box }
html, body { margin: 0; padding: 0 }
html { scroll-behavior: smooth; }

body {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1,h2,h3,h4 { font-family: "Playfair Display", Georgia, serif; line-height: 1.2; margin: 0 0 .5rem; color: #0f172a; }
h1 { font-size: clamp(2rem, 4vw, 3.2rem); }
h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.35rem); }
h4 { font-size: clamp(1rem, 1.8vw, 1.1rem); }

p { margin: .5rem 0 1rem }
a { color: var(--primary); text-decoration: none }
a:hover { text-decoration: none; }
.link { font-weight: 600 }
.muted { color: var(--muted) }

.container { width: min(100% - 2rem, var(--container)); margin-inline: auto; }
.section { padding: clamp(2.5rem, 5vw, 4.5rem) 0; background: var(--bg-alt); }
.section--alt { background: #fff; }

.grid { display: grid; gap: clamp(1rem, 3vw, 2rem); align-items: start; }
.grid--2 { grid-template-columns: 1.1fr 1fr; }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .grid--2, .grid--3 { grid-template-columns: 1fr } }

/* Header */
.site-header{ position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .8); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(229,231,235,.6); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:.75rem 0; }
.brand{ display:flex; align-items:center; gap:.6rem; font-weight:700; color:#0f172a; letter-spacing:.2px; }
.brand img{ height:100px; }
.nav-menu{ display:flex; align-items:center; gap:1rem; list-style:none; margin:0; padding:0; }
.nav-menu a{ padding:.45rem .7rem; border-radius:999px; }
.nav-toggle{ display:none; border:0; background:transparent; padding:.25rem .2rem; cursor:pointer; }
.nav-toggle-bar{ display:block; width:26px; height:2px; background:#111; margin:5px 0; border-radius:2px; }
@media (max-width:860px){
  .nav-toggle{ display:block }
  .nav-menu{
    position:absolute; right:1rem; top:60px; width:min(92vw, 420px);
    background:var(--card); border:1px solid var(--border); box-shadow: var(--shadow);
    padding:.5rem; border-radius: var(--radius);
    display:none; flex-direction:column; align-items:stretch; gap:.25rem;
  }
  .nav-menu.show{ display:flex }
}

/* Hero */
.hero{ position:relative; overflow:hidden; background: linear-gradient(180deg, #ffffff 0%, #f6fbf9 100%); }
.hero__inner{
  display:grid; grid-template-columns: 1fr 1.25fr; gap: clamp(1rem, 3vw, 2.2rem);
  align-items:center; padding: clamp(1.2rem, 4vw, 2rem) 0 clamp(2rem, 6vw, 4rem);
}
.hero__content p{ color:var(--muted) }
.hero__cta{ display:flex; gap:.75rem; margin-top:1rem; flex-wrap:wrap }
@media (max-width:490px){ .hero__inner a{ margin:auto } }

.hero__media{ min-height:auto }
.hero-gallery{
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(12px, 2vw, 22px); align-items:end;
}
.hg-card{
  border-radius:16px; overflow:hidden; background:#f0f2f2;
  box-shadow: 0 14px 30px rgba(0,0,0,.18); border:1px solid rgba(17,24,39,.06);
  width: 60%; margin:auto;
}
.hg-card img{ width:100%; object-fit:cover; object-position:center; display:block }

/* .hero__shape{
  position:absolute; inset:auto -20% -20% -20%; height:40vh;
  background: radial-gradient(50% 50% at 50% 50%, rgba(107,155,141,.18) 0%, rgba(107,155,141,0) 70%);
  pointer-events:none;
} */

/* Mobile: zmiana kolejności w Hero + slider snap */
@media (max-width:900px){
  .hero__inner{ display:flex; flex-direction:column; }
  .hero__content{ display:contents; }
  .hero__content-top{ order:1; margin-bottom:-40px; }
  .hero__media{ order:2; margin: 1.25rem 0; }
  .hero__content-bottom{ order:3; margin-top:15px; }
}
@media (max-width:700px){
  .hero-gallery{
    display:flex; gap:12px; overflow-x:auto; padding: 2px 2px 8px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  /* .hero-gallery .hg-card{ flex:0 0 75%; min-width:75%; scroll-snap-align:center; transform:none } */
}

/* Cards / media */
.media-card{ background:var(--card); border:1px solid var(--border); border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); }
.media-card img{ display:block; width:100%; height:100%; object-fit:cover }
.map-embed{ position:relative; padding-bottom:56%; height:0; overflow:hidden; border-radius: var(--radius); box-shadow: var(--shadow) }
.map-embed iframe{ position:absolute; inset:0; width:100%; height:100% }

/* Back to top */
.back-to-top{ position:fixed; bottom:80px; right:19px; background:grey; color:#fff; width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:24px; text-decoration:none; opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; z-index:100; }
.back-to-top.visible{ opacity:1; visibility:visible; }

/* Buttons */
.btn{ --bg: var(--primary); --fg:#fff; display:inline-block; font-weight:600; color:var(--fg); background:var(--bg); padding:.7rem 1rem; border-radius:999px; border:1px solid transparent; transition: transform .08s ease, box-shadow .2s ease, background .2s ease; box-shadow: 0 8px 18px rgba(107,155,141,.25); text-align:center; }
.btn:hover{ transform: translateY(-1px); text-decoration:none }
.btn:active{ transform: translateY(0) }
.btn--ghost{ --bg:#eef4f2; --fg: var(--primary-ink); color:var(--primary-ink); background:var(--bg); box-shadow:none; border:1px solid #dce7e3; }
.btn--small{ padding:.45rem .8rem }

/* Grafik */
.schedule-v2{ display:grid; grid-template-columns: repeat(4, 1fr); gap:clamp(1rem, 2.5vw, 2rem); margin-top:1rem; }
@media (max-width:1100px){ .schedule-v2{ grid-template-columns: repeat(2, 1fr) } }
@media (max-width:700px){ .schedule-v2{ grid-template-columns: 1fr } }
.day-card h3{ margin-bottom:.5rem; color:#0f172a }
.day-underline{ display:inline-block; border-bottom:3px solid #000; padding-bottom:.15rem; text-transform:lowercase; letter-spacing:.5px; }
.class-tile{ display:grid; gap:.5rem; background:#fff; border-radius:14px; padding:.85rem .95rem; border:1px solid var(--border); box-shadow: 0 8px 20px rgba(0,0,0,.06); margin:.6rem 0; }
.class-header{ display:flex; align-items:center; gap:.75rem }
.class-time time{ display:inline-block; font-weight:800; background:#fff; border-radius:999px; padding:.15rem .6rem; border:1px solid rgba(0,0,0,.08); text-align:center; }
.class-content strong{ display:block; font-weight:800 }
.class-title{ opacity:.9 }
.class-place{ color:#444; font-size:.95rem }
.class--yoga{ background: color-mix(in srgb, var(--yoga) 55%, white) }
.class--neutral{ background: color-mix(in srgb, #6f7573 15%, white) }
.class--energy{ background: color-mix(in srgb, var(--energy) 55%, white) }
.class--blueish{ background: color-mix(in srgb, #C9E1F6 55%, white) }
.class--creamy{ background: color-mix(in srgb, #E9D8D0 55%, white) }
.sep{ margin-top: clamp(1.2rem, 2.5vw, 2rem); border:0; height:1px; background:#ddd }

/* Opis zajęć */
.classes-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2.5vw, 1.6rem); margin-top:1rem }
@media (max-width:900px){ .classes-grid{ grid-template-columns: 1fr } }
.class-about{ background:#fff; border:1px solid var(--border); border-radius: var(--radius); padding:1rem; box-shadow: var(--shadow); }
.more-link{ display:inline-block; margin-top:.35rem; font-weight:600 }

/* ========================= */
/* Cennik — rzędy           */
/* ========================= */
.price-list{ margin-top:1rem; display:flex; flex-direction:column; gap:.8rem }
.price-row{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow: var(--shadow); padding:1rem 1.1rem; }
.price-row::before{ content:""; position:absolute; inset:0 0 auto 0; height:10px; opacity:.9; background: var(--grad-pink); }
.row--group::before{ background: var(--grad-pink) }
.row--single::before{ background: var(--grad-pink) }
.row--individual::before{ background: var(--grad-grey) }
.price-lead{ font-weight:900; font-size:1.6rem; color:#0f172a }
.price-lead .dur{ font-size:.95rem; font-weight:600; color:#5b5b5b; margin-left:.35rem }
.price-desc{ margin-top:.25rem; font-size:1.02rem }

/* Warsztaty — karuzela */
.workshop-carousel{
  position:relative;
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:1rem; margin-top:1.5rem;
}
.ws-viewport{
  position:relative; overflow:hidden;
  border-radius:14px; 
  /* border:1px solid var(--border); */
  /* background:#fff; box-shadow: var(--shadow); */
  width:100%;
}
.ws-track{
  display:flex; will-change: transform;
  transform: translate3d(0,0,0);
  transition: transform .4s ease;
  gap:0 !important;
}
.ws-slide{
  flex: 0 0 100%; max-width: 100%; aspect-ratio: 16 / 9;
  overflow:hidden; display:block; margin:0 !important;
}
.ws-slide > img{
  width:100%; height:100%;
  object-fit: contain; object-position: center; display:block;
}
.ws-btn{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--border);
  background:#fff; box-shadow: var(--shadow);
  cursor:pointer; font-size:22px;
  display:flex; align-items:center; justify-content:center;
  transition: all .2s ease;
}
.ws-btn:hover{ background:var(--primary); color:#fff; border-color:var(--primary) }
.ws-btn:disabled{ opacity:.5; cursor:not-allowed }

/* MOBILE FIX */
@media (max-width: 700px) {
  .workshop-carousel {
    width: 100vw;
    margin: 0 -16px;
    box-sizing: border-box;
    overflow: hidden;
    grid-template-columns: 1fr;
    gap: .5rem;
  }

  .ws-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    width: 100vw;
    box-sizing: border-box;
    padding: 0;
    /* height: clamp(200px, 42vh, 320px); */
  }

  .ws-track {
    display: flex !important;
    width: auto;
    height: 65vh;
    gap: 0 !important;
    transform: none !important;
  }

  .ws-slide {
    flex: 0 0 100vw !important;
    width: 100vw !important;
    height: 100% !important;
    scroll-snap-align: center;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0 !important;
  }

  .ws-slide > img {
    width: 100vw !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center;
    /* background: #f2f2f2; */
  }

  .ws-btn { display: none !important; }

  .ws-viewport::-webkit-scrollbar { display: none; }
}

/* O mnie */
.about-row{ display:grid; grid-template-columns: 1.05fr 1fr; gap:clamp(1rem, 3vw, 2rem); align-items:center; margin-bottom:clamp(1.2rem, 3vw, 2rem) }
.about-row--reverse{ grid-template-columns: 1fr 1.05fr }
.about-row--reverse .about-media{ order:2 }
.about-row--reverse .about-text{ order:1 }
.about-media{ width:80%; margin:auto; max-width:max-content; }
.about-media img{ width:100%; height:100%; object-fit:cover; display:block }
.about-text h2,.about-text h3{ margin-top:0 }
.checklist{ list-style:none; padding:0; margin:.4rem 0 0 }
.checklist li{ padding-left:1.4rem; position:relative; margin:.35rem 0 }
.checklist li::before{ content:"✔"; position:absolute; left:0; top:.05rem; color: var(--primary); font-weight:700 }
@media (max-width:900px){
  .about-row, .about-row--reverse{ grid-template-columns: 1fr }
  .about-row--reverse .about-media, .about-row--reverse .about-text{ order: initial }
}

/* Footer */
.site-footer{ border-top:1px solid var(--border); padding:1.2rem 0; background:#fff }
.footer__inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.8rem }
.footer-left{ display:flex; flex-direction:column; gap:.5rem }
.footer-links{ display:flex; gap:1rem }
.footer-link{ 
  color:var(--muted); font-size:.9rem; transition:color .3s ease;
  border-bottom:1px solid transparent; padding-bottom:2px;
}
.footer-link:hover{ color:var(--primary); border-bottom-color:var(--primary) }
.socials{ margin-right: 15dvh; }

@media (max-width:600px){
  .footer__inner{ flex-direction:column; align-items:flex-start }
  .socials{ margin-right:0 }
}

/* Helpers */
.center{ text-align:center }
.mt-1{ margin-top:1rem }

/* WhatsApp FAB */
.wa-fab{
  position:fixed; right:16px; bottom:18px; z-index:60;
  width:54px; height:54px; border-radius:50%;
  background:#25D366 url(pictures/whatapp.png) center/100% no-repeat;
  color:#fff; display:grid; place-items:center;
  font-weight:900; letter-spacing:.5px; box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
.wa-fab:hover{ filter:brightness(1.05); text-decoration:none }

/* Nav underline */
.main-nav .nav-menu li a{ position:relative; transition: color .3s; }
.main-nav .nav-menu li a::after{
  content:""; position:absolute; width:100%; height:2px; bottom:-4px; left:0;
  background-color: var(--primary); transform: scaleX(0); transform-origin: bottom right; transition: transform .3s ease-out;
}
@media (min-width:900px){
  .main-nav .nav-menu li a:hover::after, .main-nav .nav-menu li a.active::after{ transform: scaleX(1); transform-origin: bottom left; }
}
.main-nav .nav-menu li a.active{ color: var(--brand-color); }

/* Gallery styles (used in Warsztaty) */
.gallery-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.gallery-group {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
  padding: .5rem 1rem;
}
.gallery-group summary {
  font-weight: 700;
  font-size: 1.15rem;
  cursor: pointer;
  outline: none;
  padding: .5rem 0;
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-top: .7rem;
}
.gallery-grid img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
  border: 1px solid var(--border);
  transition: transform .2s;
}
.gallery-grid img:hover {
  transform: scale(1.03);
}

/* Fancy testimonials */
.testimonials-fancy {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 2rem;
  margin-top: 2rem;
}
.testimonial-card {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  padding: 1.6rem 1.2rem 1.2rem 1.2rem;
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  min-height: 160px;
}
.testimonial-avatar {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.10);
  background: #f4f8f7;
  display: flex;
  align-items: center;
  justify-content: center;
}
.testimonial-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}
.testimonial-content {
  flex: 1;
}
.testimonial-content p {
  font-size: 1.08rem;
  margin: 0 0 .7rem 0;
  color: #222;
}
.testimonial-content footer {
  font-size: .98rem;
  color: var(--muted);
  font-style: italic;
  margin-top: .2rem;
}

/* Video section */
#video video {
  width: 100%;
  max-width: 480px;
  border-radius: 14px;
  box-shadow: var(--shadow);
  margin: auto;
  display: block;
}

/* Modal dla galerii */
.image-modal {
  display: none;
  position: fixed;
  z-index: 10000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.9);
  animation: fadeIn 0.3s;
}

.image-modal.active {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.modal-content {
  max-width: 90%;
  max-height: 90vh;
  object-fit: contain;
  animation: zoomIn 0.3s;
}
/* .modal-content {
  transition: transform 0.3s;
}
.modal-content.slide-left {
  transform: translateX(-60px);
}
.modal-content.slide-right {
  transform: translateX(60px);
} */
.image-modal .modal-content {
  position: relative;
  width: 100%;
  display: block;
}

.modal-close {
  position: absolute;
  top: 20px;
  right: 35px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
  transition: 0.3s;
  z-index: 10001;
}

.modal-close:hover,
.modal-close:focus {
  color: #bbb;
}

.modal-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  font-size: 40px;
  padding: 10px 20px;
  cursor: pointer;
  transition: all 0.3s;
  border-radius: 8px;
  z-index: 10001;
  user-select: none;
}

.modal-arrow:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.5);
}

.modal-arrow--prev {
  left: 20px;
}

.modal-arrow--next {
  right: 20px;
}

.modal-arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.modal-caption {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  text-align: center;
  padding: 10px 20px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 8px;
}

.gallery-grid img {
  cursor: pointer;
  transition: transform 0.3s, opacity 0.3s;
}

.gallery-grid img:hover {
  transform: scale(1.05);
  opacity: 0.9;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes zoomIn {
  from { transform: scale(0.5); }
  to { transform: scale(1); }
}

/* Responsywność dla mobilnych */
@media (max-width: 768px) {
  .modal-arrow {
    font-size: 30px;
    padding: 8px 15px;
  }
  
  .modal-arrow--prev {
    left: 10px;
  }
  
  .modal-arrow--next {
    right: 10px;
  }
  
  .modal-close {
    top: 10px;
    right: 15px;
    font-size: 35px;
  }
}

/* ==============================
   Modal ogłoszenia (announcement)
   ============================== */
.ann-modal{ position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:11000; overflow:auto; padding:1rem; }
.ann-modal.active{ display:flex }
.ann-modal__overlay{ position:absolute; inset:0; background: rgba(15,23,42,.55); backdrop-filter: blur(2px); }
.ann-modal__dialog{
  position:relative; z-index:1; width:min(92vw, 950px);
  background:#fff; border:1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 1rem 1.1rem 1.1rem; animation: zoomIn .2s ease;
  max-height:90vh; overflow-y:auto;
}
.ann-modal__head{ display:flex; gap:.6rem; margin-bottom:.35rem; justify-content: center; }
.ann-modal__image{ width:100%; max-width:449px; height:auto; border-radius:10px; margin:0.5rem auto; display:inline-block; }
.ann-modal__dialog > img:nth-of-type(1),
.ann-modal__dialog > img:nth-of-type(2) {
  width:calc(50% - 5px);
  display:inline-block;
  vertical-align:top;
}
.ann-modal__dialog > img:nth-of-type(1) { margin-right:10px; }
@media (max-width:520px) {
  .ann-modal{ padding:0.5rem; }
  .ann-modal__dialog{
    width:100%;
    padding:1rem 0.8rem;
  }
  .ann-modal__dialog > img:nth-of-type(1),
  .ann-modal__dialog > img:nth-of-type(2) {
    width:100%;
    margin-right:0;
    margin-bottom:0.5rem;
  }
  .ann-modal__close{ top:5px; right:5px; width:32px; height:32px; font-size:20px; }
}
.ann-badge{ display:inline-block; background: color-mix(in srgb, var(--primary) 15%, white); color: var(--primary-ink);
  border:1px solid #dbe7e3; padding:.15rem .5rem; border-radius:999px; font-size:.8rem; font-weight:700; letter-spacing:.2px }
.ann-modal__text{ color:#222; margin:.4rem 0 .9rem }
.ann-modal__actions{ display:flex; gap:.6rem; flex-wrap:wrap; justify-content: space-between }
.ann-modal__close{ position:absolute; top:10px; right:12px; width:36px; height:36px; border-radius:50%; border:1px solid var(--border);
  background:#fff; color:#334155; font-size:22px; line-height:1; cursor:pointer; display:grid; place-items:center; box-shadow: var(--shadow); }
.ann-modal__close:hover{ background: var(--primary); color:#fff; border-color: var(--primary) }


/* ============================= */
/* Formularz opinii              */
/* ============================= */
.review-section{ margin-top:3rem }
.review-section h3{ margin-top:0 }
.review-form{ margin-top:1rem; background:#fff; border:1px solid var(--border); padding:1.2rem 1.1rem 1.4rem; border-radius: var(--radius); box-shadow: var(--shadow); display:grid; gap:1rem; }
.review-form .rf-group{ display:flex; flex-direction:column; gap:.4rem }
.review-form label{ font-weight:600; font-size:.9rem; }
.review-form input[type="text"],
.review-form input[type="email"],
.review-form textarea{ font:inherit; padding:.65rem .75rem; border:1px solid var(--border); border-radius:10px; resize:vertical; min-height:48px; background:#fff; }
.review-form textarea{ min-height:120px; }
.review-form input:focus,
.review-form textarea:focus{ outline:2px solid var(--ring); outline-offset:2px; }
.rf-actions{ display:flex; gap:.75rem; flex-wrap:wrap }
.rf-status{ margin-top:.5rem; font-size:.95rem }
.rf-status.success{ color:green }
.rf-status.error{ color:#b10000 }
.hp{ position:absolute; left:-9999px; top:-9999px }

/* Gwiazdki ocen */
.stars{ display:inline-flex; gap:.35rem; font-size:1.85rem; cursor:pointer; user-select:none }
.star-btn{ background:transparent; border:0; padding:.15rem .25rem; line-height:1; color:#d0d0d0; transition:color .2s, transform .15s; cursor:pointer; }
.star-btn:hover{ transform:scale(1.1) }
/* placeholder removed: no empty rulesets */
.stars .star-btn.selected{ color:#f5a623 }
.stars .star-btn.highlight{ color:#f5a623 }
.rf-hint{ font-size:.75rem; color:var(--muted); margin:.25rem 0 0 }

.rf-group input:invalid[required],
.rf-group textarea:invalid[required]{ border-color:#e57373 }
.rf-group input:valid[required],
.rf-group textarea:valid[required]{ border-color:#5aa37d }

.consent-label{ display:flex; gap:.55rem; align-items:flex-start; font-weight:400; font-size:.85rem; line-height:1.3 }
.consent-label input{ margin-top:.25rem }

@media (max-width:600px){
  .stars{ font-size:1.6rem }
  .review-form{ padding:1rem .9rem }
}