/* =====================================================================
   NEW ROMA BOXING TEAM – paczka "Legion" cz. 2
   Wymaga zmiennych z newroma-legion.css (--nr-red, --nr-bronze, --nr-display).
   Selektory z [DOPASUJ] zamień na klasy z Twojego HTML.
   ===================================================================== */

/* ---------------------------------------------------------------
   1. ŁUK RZYMSKI wokół zdjęcia Kuby (sekcja "Dlaczego Kuba")
   Główne, duże zdjęcie dostaje górę w kształcie łuku, miniatury zostają proste.
   Dodaj klasę .trainer-photo na kontener dużego zdjęcia. [DOPASUJ]
   --------------------------------------------------------------- */
.trainer-photo{
  position:relative; overflow:hidden;
  border-radius:225px 225px 6px 6px;           /* połowa szerokości = pełny półokrąg */
  outline:1px solid rgba(176,141,87,.55);       /* cienki brązowy kontur, podąża za łukiem */
  outline-offset:7px;
}
.trainer-photo img{ display:block; width:100%; height:auto; }

/* naklejka z rzymskim rokiem na dole zdjęcia */
.trainer-photo::after{
  content:"OD MMXVIII";
  position:absolute; left:50%; bottom:16px; transform:translateX(-50%);
  padding:6px 14px; border-radius:2px;
  font-family:var(--nr-display); font-weight:700; font-size:.78rem; letter-spacing:.18em;
  color:var(--nr-bronze); background:rgba(13,10,10,.82);
  border:1px solid rgba(176,141,87,.5);
}
@media (max-width:700px){
  .trainer-photo{ border-radius:50vw 50vw 6px 6px; outline-offset:5px; }
}

/* ---------------------------------------------------------------
   0. RZYMSKIE CYFRY W KROKACH
   --------------------------------------------------------------- */
.steps .step-card{ padding-bottom:70px !important; }
.steps .step-card::after{ font-size:76px !important; bottom:-8px !important; }

/* ---------------------------------------------------------------
   2. WIENIEC LAUROWY NAD KAFELKIEM "ZŁOTO + PODIA"
   W HTML kafelka wstaw (raz) znacznik z sekcji "SVG" poniżej.
   --------------------------------------------------------------- */
.nr-laurel{
  display:block; width:120px; height:auto; margin:0 auto 4px;
  color:var(--nr-bronze); opacity:.85;
}

/* ---------------------------------------------------------------
   3. FRYZ Z "ZĘBÓW" (dentil) – rzymski detal architektoniczny
   Cienki pasek nad stopką i pod nagłówkiem.
   Dodaj klasę .nr-dentil na <footer> i/lub <header>.
   --------------------------------------------------------------- */
.nr-dentil{ position:relative; }
.nr-dentil::before{
  content:""; position:absolute; left:0; right:0; top:0; height:5px; pointer-events:none;
  background:repeating-linear-gradient(90deg,
    rgba(176,141,87,.45) 0 6px, transparent 6px 12px);
  opacity:.7;
}
header.nr-dentil::before{ top:auto; bottom:0; }

/* ---------------------------------------------------------------
   4. MOTTO W STOPCE (łacina + polskie tłumaczenie w title)
   --------------------------------------------------------------- */
.nr-motto{
  font-family:var(--nr-display); font-size:.8rem; letter-spacing:.22em;
  color:rgba(176,141,87,.85); text-transform:uppercase;
}
.nr-motto span{ margin:0 .6em; color:var(--nr-red); }
@media (max-width:767px){
  .nr-motto{ font-size:.72rem; letter-spacing:.14em; margin:10px 0; }
  .nr-motto span{ margin:0 .35em; }
}

/* ---------------------------------------------------------------
   5. RZYMSKIE LATA W OSI CZASU KARIERY (kolor brązu, mały druk)
   JS dopisuje <small class="nr-roman">MMXIX</small> po roku.
   --------------------------------------------------------------- */
.nr-roman{
  margin-left:.55em; font-family:var(--nr-display); font-weight:700;
  font-size:11px !important; opacity:1 !important; color:#c9a86a !important; letter-spacing:.1em;
  display:inline-block; vertical-align:baseline;
}

/* ---------------------------------------------------------------
   OPCJONALNIE: etykiety stopni przy karnetach (testuj z Kubą!)
   <small class="nr-rank">Legionista</small> obok nazwy karnetu
   --------------------------------------------------------------- */
.nr-rank{
  display:block; margin-top:2px;
  font-family:var(--nr-display); font-size:.7rem; letter-spacing:.16em;
  color:var(--nr-bronze); text-transform:uppercase;
}

/* ---------------------------------------------------------------
   6. HERO BACKGROUND - REKAWICE W NAROZNIKU RINGU (LUSTRO -15PX + WZMOCNIONY KEN BURNS)
   --------------------------------------------------------------- */
.hero-bg {
  left: -15px !important;
  width: calc(100% + 30px) !important;
  object-position: calc(50% - 15px) center !important;
  transform-origin: 30% 50% !important;
  animation: nr-kb 26s ease-in-out infinite alternate !important;
  will-change: transform;
}
@keyframes nr-kb {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
.bg-hero-gradient {
  background: 
    linear-gradient(to bottom, transparent 0%, transparent 48%, rgba(12,12,14,0.35) 65%, rgba(12,12,14,0.75) 82%, rgba(12,12,14,0.96) 94%, #0c0c0e 100%),
    linear-gradient(90deg, rgba(12,12,14,0.78) 0%, rgba(12,12,14,0.40) 35%, rgba(12,12,14,0.70) 70%, rgba(12,12,14,0.85) 100%) !important;
  opacity: 1 !important;
}


/* ---------------------------------------------------------------
   7. MOBILE & DESKTOP SYSTEM POLISH (BATCH 2)
   --------------------------------------------------------------- */
/* Details Chevron Smooth Rotation */
details summary svg,
details summary .transition-transform {
  transition: transform 0.3s ease !important;
}
details[open] summary svg,
details.group[open] summary svg,
.group[open] .group-open\:rotate-180 {
  transform: rotate(180deg) !important;
}

/* Pricing Grid & Row Alignment */
.price-card {
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.price-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 12px !important;
}
.price-row.is-featured {
  margin-inline: -8px !important;
  padding-inline: 8px !important;
}
.badge-popular {
  font-size: 0.6875rem !important;
  padding: 2px 8px !important;
  border-radius: 9999px !important;
}

/* Form font-size 16px to prevent iOS auto-zoom */
.hero-form :is(input, select, textarea) {
  font-size: 16px !important;
}

/* Mobile Sticky Bar & Responsive Rules */
@media (max-width: 767px) {
  body {
    padding-bottom: calc(85px + env(safe-area-inset-bottom, 0px)) !important;
  }
  
  .sticky-cta {
    left: 12px !important;
    right: 12px !important;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    max-width: calc(100vw - 24px) !important;
    transition: transform 0.25s ease, opacity 0.25s ease !important;
  }
  .sticky-cta.is-hidden {
    transform: translateY(140%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  
  /* Cennik cards gap on mobile */
  #cennik .lg\:grid-cols-3 {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }

  /* Prevent sticky touch hover on cards */
  @media (hover: none) {
    #dla-kogo .hover\:border-primary\/60:hover {
      border-color: rgba(255, 255, 255, 0.14) !important;
    }
  }
}


/* ==========================================================================
   MOBILE & UX POLISH (FAQ, CTA KOŃCOWE, STOPKA)
   ========================================================================== */

/* FAQ: stały rozmiar ikony i płynny obrót chevronu */
.faq-icon {
  flex: 0 0 32px !important;
  width: 32px !important;
  height: 32px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 9999px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #d1d5db !important;
  transition: all 0.25s ease !important;
}
details[open] .faq-icon,
.faq-item[open] .faq-icon,
.faq-item.is-open .faq-icon {
  background: rgba(192, 0, 26, 0.25) !important;
  border-color: rgba(192, 0, 26, 0.6) !important;
  color: #ff4d4d !important;
}
details[open] .faq-icon svg,
.faq-item[open] .faq-icon svg,
.faq-item.is-open .faq-icon svg {
  transform: rotate(180deg) !important;
}

/* CTA końcowe: główny przycisk + dwie ikony (telefon + WhatsApp) */
.cta-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.cta-actions .btn-primary {
  grid-column: 1 / -1;
}

/* Stopka mobile: przejrzysty pionowy układ bez pustych przestrzeni */
@media (max-width: 767px) {
  .footer-inner {
    display: grid;
    justify-items: center;
    gap: 14px;
    text-align: center;
    padding: 28px 20px calc(28px + env(safe-area-inset-bottom));
  }
  .footer-address {
    font-size: 15px;
    line-height: 1.5;
  }
  .footer-motto {
    font-size: 12px;
    letter-spacing: .2em;
  }
  .footer-legal {
    font-size: 14px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
  }
  .footer-social {
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: center;
  }
}


/* ===============================================================
   SYSTEMOWE POPRAWKI UX & MOBILE (Hero 3-col, Kariera, Filmy, Cennik)
   =============================================================== */

/* 1. Mobile Hero 3-kolumnowe statystyki */
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

/* 2. Kariera kafelki - bezpieczna szerokość tekstu (brak ucinania 'Kwalifikacje') */
#kariera .stat-tile {
  padding: 16px 6px !important;
  min-height: 100px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}
#kariera .stat-tile .stat-value {
  font-size: clamp(1rem, 3.8vw, 1.45rem) !important;
  letter-spacing: -0.01em !important;
  white-space: nowrap !important;
}

/* 3. Filmy: kropki karuzeli w 100% widoczne na mobile */
.video-pagination .video-dot {
  display: inline-block !important;
  width: 8px !important;
  height: 8px !important;
  border-radius: 9999px !important;
  background-color: rgba(255, 255, 255, 0.35) !important;
  transition: all 0.25s ease !important;
}
.video-pagination .video-dot:first-child,
.video-pagination .video-dot.is-active,
.video-pagination .video-dot.bg-blood {
  background-color: #c0001a !important;
  width: 22px !important;
}

/* 4. Opinie: ujednolicona, neutralna szara ramka dla wszystkich kart */
#opinie .hover\:border-primary\/60 {
  border-color: rgba(255, 255, 255, 0.14) !important;
  box-shadow: 0 18px 45px -20px rgba(0, 0, 0, 0.85) !important;
}
#opinie .hover\:border-primary\/60:hover {
  border-color: rgba(255, 255, 255, 0.28) !important;
  box-shadow: 0 18px 45px -20px rgba(0, 0, 0, 0.85) !important;
}

/* 4b. Hero: czytelność i głęboki cień pod czerwonym tytułem */
.hero h1 span.text-\[\#ff4455\],
.hero h1 span[data-i18n="hero_title_2"] {
  text-shadow: 0 2px 14px rgba(0,0,0,0.98), 0 0 28px rgba(0,0,0,0.90) !important;
}

/* 5. Cennik: równe wyrównanie prawej kolumny cen i wartości */
#cennik .price-card li {
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
#cennik .price-card li > span:last-child {
  text-align: right !important;
  flex-shrink: 0 !important;
}

/* 6. Pasek Sticky i odstęp body na mobile */
@media (max-width: 767px) {
  body {
    padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important;
  }
  #mob-cta {
    top: auto !important;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
  }
  #main-footer {
    padding-top: 32px !important;
    padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

.footer-legal span.sep {
  display: none !important;
}

/* 8. Zapobieganie automatycznemu zoomowi w iOS Safari (wymóg min. 16px) */
input, select, textarea, .form-input, .form-select, .form-textarea {
  font-size: 16px !important;
}
@media (max-width: 767px) {
  input, select, textarea {
    font-size: 16px !important;
    min-height: 44px !important;
  }
}

/* 9. Responsywne klasy pomocnicze (gdyby Tailwind ich nie wygenerował) */
@media (min-width: 768px) {
  .md\:hidden { display: none !important; }
  .md\:flex { display: flex !important; }
  .md\:grid { display: grid !important; }
  .md\:block { display: block !important; }
}
@media (max-width: 767px) {
  .sm\:hidden, .hidden-on-mobile { display: none !important; }
}

/* 10. Stopka: zdefiniowane reguły dla wersji mobile i desktop */
.footer-inner {
  display: grid;
  justify-items: center;
  gap: 14px;
  text-align: center;
  padding: 32px 20px;
}
.footer-social {
  display: flex !important;
  gap: 12px !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
}
.footer-legal {
  display: flex !important;
  gap: 16px !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

@media (min-width: 768px) {
  .footer-inner {
    display: none !important;
  }
  .footer-desktop {
    display: grid !important;
    grid-template-columns: 1.3fr 1fr 1fr !important;
    gap: 36px !important;
  }
  .footer-bottom-desktop {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }
}
@media (max-width: 767px) {
  .footer-desktop,
  .footer-bottom-desktop {
    display: none !important;
  }
}

/* 11. Filmy: ukrycie kropek paginacji i przycisku rozwijania na desktopie (>= 768px) */
@media (min-width: 768px) {
  .video-pagination,
  .video-toggle,
  #show-more-videos-btn {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .video-toggle {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
  }
  .video-pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }
}

/* 12. Precyzyjne dopracowanie wideo i stopki na desktopie */
@media (min-width: 768px) {
  .video-card-more {
    display: block !important;
  }
  .video-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }
  .video-pagination,
  .video-toggle,
  #show-more-videos-btn,
  .swipe-hint {
    display: none !important;
  }
  .footer-desktop {
    padding-top: 44px !important;
    padding-bottom: 40px !important;
  }
  .footer-bottom-desktop {
    margin-top: 36px !important;
    padding-top: 24px !important;
    /* single border handled by footer-desktop */
  }
}

/* 13. Dedykowane, solidne przyciski szybkiego kontaktu w Hero */
.hero-quick-call {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: #25252c !important;
  border: 2px solid rgba(255, 255, 255, 0.38) !important;
  border-radius: 8px !important;
  min-height: 48px !important;
  padding: 12px 18px !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5) !important;
  transition: all 0.2s ease !important;
}
.hero-quick-call:hover {
  background: #32323c !important;
  border-color: #c0001a !important;
}

.hero-quick-wa {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: #173d24 !important;
  border: 2px solid rgba(37, 211, 102, 0.8) !important;
  border-radius: 8px !important;
  min-height: 48px !important;
  padding: 12px 18px !important;
  color: #25D366 !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5) !important;
  transition: all 0.2s ease !important;
}
.hero-quick-wa:hover {
  background: #215431 !important;
  border-color: #25D366 !important;
}

/* 14. Etykieta i responsywne przyciski w Hero */
.hero-ask-label {
  display: block !important;
  margin-bottom: 10px !important;
  color: rgba(255, 255, 255, 0.95) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}
.hero-quick-call, .hero-quick-wa {
  min-height: 48px !important;
  padding: 10px 16px !important;
  font-size: 0.82rem !important;
  white-space: nowrap !important;
}
@media (max-width: 639px) {
  .hero-quick-call, .hero-quick-wa {
    min-height: 44px !important;
    padding: 8px 8px !important;
    font-size: 0.76rem !important;
    gap: 6px !important;
  }
  .hero-ask-label {
    margin-bottom: 10px !important;
    font-size: 0.68rem !important;
  }
}


.hero-quick-call .call-prefix {
  display: none;
}
@media (min-width: 640px) {
  .hero-quick-call .call-prefix {
    display: inline !important;
  }
}


/* CTA Contact Buttons (Zadzwoń & WhatsApp) */
.cta-contact {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 16px;
  width: 100%;
}
@media (min-width: 640px) {
  .cta-contact {
    grid-template-columns: 1fr 1fr;
  }
}

.btn-contact {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 52px !important;
  padding: 0 20px !important;
  font: 700 15px/1 var(--font-body, 'Space Grotesk', sans-serif) !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  border-radius: 8px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease !important;
  box-sizing: border-box !important;
}
.btn-contact:hover {
  transform: translateY(-1px) !important;
}
.btn-contact:focus-visible {
  outline: 2px solid #fff !important;
  outline-offset: 3px !important;
}

.btn-call {
  background: #2a2224 !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
}
.btn-call:hover {
  border-color: rgba(255, 255, 255, 0.5) !important;
  background: #352b2e !important;
  color: #fff !important;
}

.btn-wa {
  background: #1fa855 !important;
  color: #fff !important;
  border: 1px solid #1fa855 !important;
}
.btn-wa:hover {
  background: #23b85e !important;
  border-color: #23b85e !important;
  color: #fff !important;
}


/* ==========================================================================
   CENNIK / PRICING LAYOUT & CTA BUTTON FIXES
   ========================================================================== */

/* Utility: restore missing sm:w-auto */
@media (min-width: 640px) {
  .sm\:w-auto {
    width: auto !important;
  }
}

/* Pricing Promo Banner (Pierwszy Trening Gratis: 0 zł) */
.price-promo-banner {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  align-items: stretch !important;
  justify-content: space-between !important;
  background: linear-gradient(90deg, rgba(192, 0, 26, 0.22) 0%, rgba(192, 0, 26, 0.10) 50%, rgba(192, 0, 26, 0.03) 100%) !important;
  border: 1px solid rgba(192, 0, 26, 0.5) !important;
  border-radius: 0.75rem !important;
  padding: 1.25rem 1.5rem !important;
  box-sizing: border-box !important;
  width: 100% !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4) !important;
  text-align: left !important;
}

.price-promo-banner .promo-left {
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.price-promo-banner .promo-badge {
  flex: 0 0 auto !important;
  width: 3.25rem !important;
  height: 3.25rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: #c0001a !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  border-radius: 0.5rem !important;
  box-shadow: 0 4px 12px rgba(192, 0, 26, 0.45) !important;
}

.price-promo-banner .promo-content {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.price-promo-banner .promo-title {
  margin: 0 !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  text-transform: uppercase !important;
  letter-spacing: 0.03em !important;
  line-height: 1.3 !important;
}

.price-promo-banner .promo-desc {
  margin: 0.25rem 0 0 0 !important;
  font-size: 0.875rem !important;
  color: rgba(255, 255, 255, 0.82) !important;
  line-height: 1.4 !important;
}

.price-promo-banner .promo-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  white-space: nowrap !important;
  padding: 0.85rem 1.75rem !important;
  min-height: 48px !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  background-color: #c0001a !important;
  color: #ffffff !important;
  border-radius: 0.5rem !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease !important;
  box-shadow: 0 4px 14px rgba(192, 0, 26, 0.4) !important;
  box-sizing: border-box !important;
}

.price-promo-banner .promo-btn:hover {
  background-color: #a80017 !important;
  transform: scale(1.03) !important;
  box-shadow: 0 6px 18px rgba(192, 0, 26, 0.55) !important;
}

@media (min-width: 768px) {
  .price-promo-banner {
    flex-direction: row !important;
    align-items: center !important;
    padding: 1.5rem 1.75rem !important;
    gap: 1.5rem !important;
  }
  .price-promo-banner .promo-btn {
    width: auto !important;
  }
}

/* Pricing Section Bottom CTA Button */
.cennik-bottom-btn {
  display: flex !important;
  width: 100% !important;
  padding: 14px 28px !important;
  min-height: 52px !important;
  justify-content: center !important;
  align-items: center !important;
}

@media (max-width: 640px) {
  .cennik-bottom-btn {
    width: 100% !important;
    max-width: 100% !important;
  }
}
