/*
 Theme Name:   Astra Child — Kancelaria Ryżkowska
 Theme URI:    https://adwokat-ryzkowska.pl
 Description:  Child theme for Astra — Kancelaria Adwokacka Martyna Ryżkowska
 Author:       Kancelaria Adwokacka Martyna Ryżkowska
 Author URI:   https://adwokat-ryzkowska.pl
 Template:     astra
 Version:      1.1.0
 Text Domain:  astra-child-kancelaria
*/

:root {
  --color-primary:      #0f1e3d;
  --color-primary-dark: #0a1628;
  --color-accent:       #b08d3a;
  --color-accent-hover: #8f6f28;
  --color-text:         #0f1e3d;
  --color-text-muted:   #5a6478;
  --color-bg:           #fafaf7;
  --color-bg-alt:       #f3f1ec;
  --color-border:       #e5e1d8;
  --color-success:      #2d5a3f;
  --color-surface:      #ffffff;

  --font-main:    'Inter', -apple-system, sans-serif;
  --font-heading: 'Playfair Display', Georgia, serif;
  --radius:       8px;
  --transition:   0.3s ease;
}

:root,
body {
  transition: background var(--transition), color var(--transition);
}

/* =====================================================
   WATERMARK LOGO — hero + inne sekcje
   ===================================================== */
.hero { position: relative; overflow: hidden; }

.hero-watermark,
.section-watermark {
  position: absolute;
  opacity: 0.12;
  pointer-events: none;
  z-index: 0;
}

.hero-watermark {
  right: 4%;
  top: 50%;
  transform: translateY(-50%);
}

.hero-watermark img,
.section-watermark img {
  width: clamp(200px, 25vw, 380px);
  height: auto;
  max-width: 380px !important;
}

.hero .container,
.section-with-watermark .container { position: relative; z-index: 1; }

@media (max-width: 1024px) {
  .hero-watermark,
  .section-watermark { display: none !important; }
}

/* =====================================================
   LOGO — responsywne, szersze bez powiększania
   ===================================================== */
.nav-logo img,
.site-logo img,
.custom-logo {
  height: clamp(105px, 18vh, 220px) !important;
  width: auto !important;
  max-width: 480px !important;
  margin-left: -8px !important;
  object-fit: contain !important;
}

/* Header — kompaktowy */
.site-header { padding: clamp(0.2rem, 0.5vh, 0.4rem) 0 !important; }

/* Menu — auto skalowalność */
.nav-menu a,
.nav-menu li a {
  white-space: nowrap !important;
  font-size: clamp(0.78rem, 1.1vw, 0.95rem) !important;
}

.nav-menu { gap: clamp(0.75rem, 1.5vw, 2rem) !important; }

/* Hamburger pojawia się od 1100px w dół */
@media (max-width: 1100px) {
  .nav-menu:not(.open) { display: none !important; }
  .btn-hamburger {
    display: flex !important;
    flex-shrink: 0 !important;
    position: relative !important;
    z-index: 200 !important;
  }
  .nav-actions .btn-cta { display: none !important; }
}
@media (min-width: 1101px) {
  .nav-menu { display: flex !important; }
  .btn-hamburger { display: none !important; }
}

/* Footer logo */
.footer-logo img {
  height: clamp(80px, 10vw, 180px) !important;
  width: auto !important;
  max-width: 280px !important;
}

/* =====================================================
   TEKST NA CIEMNYM TLE — widoczność
   ===================================================== */
.section-rezerwacja *,
.section-kontakt *,
.contact-card *,
.contact-card h3,
.contact-card p {
  color: rgba(255,255,255,0.9) !important;
}

.contact-card h3 {
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  margin-bottom: 0.5rem !important;
}

.contact-card p {
  font-size: 0.9rem !important;
  color: rgba(255,255,255,0.7) !important;
  margin-bottom: 1.25rem !important;
}

.kontakt-info-item a,
.kontakt-info-item,
.section-kontakt .section-title,
.section-kontakt h2 {
  color: #ffffff !important;
}

.section-label {
  color: #b08d3a !important;
}

.section-rezerwacja .section-label,
.section-kontakt .section-label {
  color: #b08d3a !important;
}

/* FAQ — usuń niebieski hover/focus z Astra */
button.faq-question,
.faq-question {
  -webkit-appearance: none !important;
  appearance: none !important;
  -webkit-tap-highlight-color: transparent !important;
}
button.faq-question:hover,
button.faq-question:focus,
button.faq-question:focus-visible,
button.faq-question:active,
.faq-question:hover,
.faq-question:focus,
.faq-question:focus-visible {
  background: none !important;
  background-color: transparent !important;
  color: #0f1e3d !important;
  outline: 2px solid #0f1e3d !important;
  outline-offset: -2px !important;
  box-shadow: none !important;
  border-color: transparent !important;
}
.faq-item:hover {
  background: none !important;
  background-color: transparent !important;
}
.faq-item * { -webkit-tap-highlight-color: transparent !important; }

/* Overlay mobile — usuń */
.nav-overlay { display: none !important; }

/* Floating phone — wyłączony */
.float-phone { display: none !important; }

/* Zapobiegaj poziomemu scrollowi — tylko body, nie html (html blokuje AOS) */
body {
  overflow-x: hidden !important;
  max-width: 100% !important;
}

* { box-sizing: border-box; }

/* Watermark — nie może wyjeżdżać poza ekran */
.hero-watermark {
  overflow: hidden;
}
.hero-watermark img {
  max-width: 100% !important;
}

@media (max-width: 1024px) {
  .hero-watermark { display: none !important; }
}

/* =====================================================
   TABLET (768px – 1024px)
   ===================================================== */
@media (min-width: 768px) and (max-width: 1024px) {
  .container { padding: 0 2rem !important; }

  /* Hero */
  .hero { padding: 4rem 0 3rem !important; min-height: auto !important; }
  .hero-inner { grid-template-columns: 1fr !important; text-align: center; }
  .hero-actions { justify-content: center !important; }
  .hero-image { display: none !important; }
  .hero h1 { font-size: 2.8rem !important; }

  /* USP */
  .usp-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Spec */
  .spec-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Timeline */
  .timeline { flex-direction: column !important; gap: 2rem !important; }

  /* Rezerwacja */
  .contact-options { grid-template-columns: repeat(3, 1fr) !important; gap: 1rem !important; }
  .contact-card { padding: 1.5rem 1rem !important; }
  #cal-embed { min-height: 500px !important; }

  /* Opinie */
  .opinions-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Kontakt */
  .kontakt-grid { grid-template-columns: 1fr !important; }

  /* Stopka */
  .footer-grid { grid-template-columns: 1fr 1fr !important; }

  /* Logo */
  .nav-logo img { height: 220px !important; }
}

/* =====================================================
   MOBILE (do 767px)
   ===================================================== */
@media (max-width: 767px) {
  /* Pełna szerokość — fix overflow */
  html, body { width: 100% !important; overflow-x: hidden !important; }

  .container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 1rem !important;
    box-sizing: border-box !important;
  }

  section, .section, .section-alt,
  .section-rezerwacja, .section-kontakt,
  .site-header, .site-footer {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  /* Logo mobile */
  .nav-logo img { height: 70px !important; max-width: 200px !important; }
  .nav-inner { padding: 0 0.75rem !important; }

  /* Ukryj CTA w headerze na mobile — mamy sticky bar na dole */
  .nav-actions .btn-cta { display: none !important; }

  /* Sekcje */
  .section { padding: 2.5rem 0 !important; }

  /* Hero */
  .hero { padding: 3rem 0 2rem !important; min-height: auto !important; text-align: center; }
  .hero-inner { grid-template-columns: 1fr !important; gap: 2rem !important; }
  .hero-image { display: none !important; }
  .hero h1 { font-size: 2rem !important; }
  .hero-subtitle { font-size: 1rem !important; margin: 0 auto 1.5rem !important; }
  .hero-actions { justify-content: center !important; flex-direction: column !important; align-items: center !important; }
  .hero-eyebrow { font-size: 0.75rem !important; }

  /* USP */
  .usp-grid { grid-template-columns: 1fr !important; gap: 1rem !important; }
  .usp-card { padding: 1.5rem 1.25rem !important; }

  /* Spec */
  .spec-grid { grid-template-columns: 1fr !important; gap: 1rem !important; }
  .spec-card { padding: 1.75rem 1.25rem !important; }

  /* Timeline */
  .timeline { flex-direction: column !important; gap: 2rem !important; }

  /* REZERWACJA — calendar na mobile */
  .section-rezerwacja { padding: 3rem 0 !important; }
  .section-rezerwacja h2 { font-size: 1.75rem !important; }
  #cal-embed {
    min-height: 550px !important;
    margin-top: 1.5rem !important;
    border-radius: 4px !important;
  }
  .contact-options {
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
    margin: 1.5rem 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .contact-card {
    padding: 1rem !important;
    display: flex !important;
    align-items: center !important;
    text-align: left !important;
    gap: 0.75rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
  }
  .contact-icon { width: 32px !important; height: 32px !important; margin: 0 !important; flex-shrink: 0 !important; }
  .contact-card h3 { font-size: 0.95rem !important; margin-bottom: 0.2rem !important; }
  .contact-card p { margin-bottom: 0.4rem !important; font-size: 0.82rem !important; }
  .btn-contact { font-size: 0.82rem !important; padding: 7px 14px !important; }

  /* Opinie */
  .opinions-grid { grid-template-columns: 1fr !important; }

  /* FAQ */
  .faq-question { padding: 16px 16px !important; font-size: 0.95rem !important; }
  .faq-answer-inner { padding: 0 16px 16px !important; }

  /* Kontakt */
  .kontakt-grid { grid-template-columns: 1fr !important; gap: 2rem !important; }

  /* Stopka */
  .footer-grid { grid-template-columns: 1fr !important; gap: 2rem !important; }
  .site-footer { padding: 3rem 0 5rem !important; } /* padding-bottom dla sticky bar */

  /* Logo mobile */
  .nav-logo img {
    width: min(62vw, 240px) !important;
    height: auto !important;
    max-height: 90px !important;
    max-width: none !important;
  }
  .footer-logo img { height: 100px !important; }
  .site-header { padding: 1rem 0 !important; }

  /* Przyciski mobile */
  .btn-cta, .btn-secondary {
    width: 100% !important;
    justify-content: center !important;
    padding: 14px 20px !important;
  }
}

/* =====================================================
   OVERRIDE ASTRA — Fonty
   ===================================================== */
body, p, li, input, textarea, select, label, span, div {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
.site-title, .entry-title {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif !important;
}

body  { font-size: 17px !important; font-weight: 400 !important; line-height: 1.7 !important; color: #0f1e3d !important; background: #fafaf7 !important; }
p     { font-size: 17px !important; font-weight: 400 !important; line-height: 1.7 !important; }
h1    { font-size: clamp(2.2rem, 5vw, 3.8rem) !important; font-weight: 700 !important; line-height: 1.15 !important; color: #0f1e3d !important; }
h2    { font-size: clamp(1.8rem, 3vw, 2.5rem) !important; font-weight: 700 !important; color: #0f1e3d !important; }
h3    { font-size: 1.35rem !important; font-weight: 600 !important; color: #0f1e3d !important; }

/* =====================================================
   OVERRIDE ASTRA — Przyciski
   ===================================================== */
.btn-cta, a.btn-cta, .btn-submit, button.btn-submit {
  background: #0f1e3d !important;
  color: #ffffff !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  padding: 14px 32px !important;
  border: none !important;
  border-radius: 4px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  cursor: pointer !important;
  text-decoration: none !important;
  letter-spacing: 0.02em !important;
  transition: background 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(15,30,61,0.18) !important;
}

.btn-cta:hover, a.btn-cta:hover,
.btn-submit:hover, button.btn-submit:hover {
  background: #0a1628 !important;
  color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(15,30,61,0.28) !important;
  text-decoration: none !important;
}

/* Przyciski na ciemnym tle — złoty zamiast granatowego */
.form-dark .btn-submit,
.form-dark button.btn-submit,
.section-rezerwacja .btn-cta,
.section-rezerwacja a.btn-cta,
.section-kontakt .btn-cta,
.section-kontakt a.btn-cta {
  background: #b08d3a !important;
  box-shadow: 0 2px 8px rgba(176,141,58,0.3) !important;
}
.form-dark .btn-submit:hover,
.form-dark button.btn-submit:hover,
.section-rezerwacja .btn-cta:hover,
.section-rezerwacja a.btn-cta:hover,
.section-kontakt .btn-cta:hover,
.section-kontakt a.btn-cta:hover {
  background: #8f6f28 !important;
  box-shadow: 0 6px 20px rgba(176,141,58,0.4) !important;
}

/* btn-secondary na ciemnym tle */
.section-rezerwacja .btn-secondary,
.section-rezerwacja a.btn-secondary {
  color: #fff !important;
  border-color: rgba(255,255,255,0.5) !important;
}
.section-rezerwacja .btn-secondary:hover,
.section-rezerwacja a.btn-secondary:hover {
  background: rgba(255,255,255,0.1) !important;
  color: #fff !important;
}

.btn-secondary, a.btn-secondary {
  background: transparent !important;
  color: #0f1e3d !important;
  border: 2px solid #0f1e3d !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  padding: 12px 30px !important;
  border-radius: 4px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important;
}

.btn-secondary:hover, a.btn-secondary:hover {
  background: #0f1e3d !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

.mobile-btn-call {
  background: #b08d3a !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  padding: 12px 24px !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* =====================================================
   OVERRIDE ASTRA — Stopka
   ===================================================== */
.site-footer, footer.site-footer {
  background: #0f1e3d !important;
  color: rgba(255,255,255,0.85) !important;
  padding: 60px 0 30px !important;
}

.site-footer p,
.site-footer span,
.site-footer li,
.site-footer div {
  color: rgba(255,255,255,0.75) !important;
  font-family: 'Inter', sans-serif !important;
}

.site-footer h4 {
  color: #ffffff !important;
  font-family: 'Playfair Display', serif !important;
}

.site-footer a {
  color: rgba(255,255,255,0.75) !important;
  text-decoration: none !important;
}

.site-footer a:hover {
  color: #b08d3a !important;
}

/* Hide Astra built-in scroll-to-top — zastąpiony przez .scroll-to-top w footer.php */
.ast-scroll-top,
#ast-scroll-top {
  display: none !important;
}

/* Wycisz niebieski tap/focus na hamburger */
.btn-hamburger,
.btn-hamburger:focus,
.btn-hamburger:active,
.btn-hamburger:focus-visible {
  -webkit-tap-highlight-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  background: none !important;
}

/* Wycisz niebieski outline/tap Astry na custom scroll-to-top */
.scroll-to-top,
.scroll-to-top:focus,
.scroll-to-top:active,
.scroll-to-top:focus-within {
  -webkit-tap-highlight-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  background-color: transparent !important;
  color: #b08d3a !important;
}
