/* ============================================================
   Nu-Vision Optics — Responsive CSS v3
   Breakpoints: 1280 | 1024 | 768 | 640 | 480 | 360
   ============================================================ */

/* ── GLOBAL RESET ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: hidden; width: 100%; }
img { max-width: 100%; height: auto; display: block; }

/* ── HEADER ───────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .nvo-desktop-nav { display: none !important; }
  .nvo-visit-btn   { display: none !important; }
  .nvo-hamburger   { display: flex !important; color: #005061 !important; }
}
@media (max-width: 480px) {
  .nvo-logo-text { font-size: 1rem !important; }
  .nvo-header-inner { padding: .6rem 1rem !important; }
}

/* ── HERO ─────────────────────────────────────────────────── */
.nvo-hero-section { width: 100% !important; }

@media (max-width: 1024px) {
  .nu-vision-optics-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    text-align: center;
    overflow: hidden !important;
  }
  .nvo-hero-image-col { display: none !important; }
}
@media (max-width: 640px) {
  .nu-vision-optics-hero-grid h1 { font-size: 1.75rem !important; word-break: break-word !important; }
  .nu-vision-optics-hero-grid p  { font-size: .875rem !important; }
  .nvo-hero-section { padding: 2rem 1rem 2.5rem !important; overflow: hidden !important; }
}
@media (max-width: 640px) {
  .nvo-hero-section { padding: 2rem 1rem 2.5rem !important; }
  .nvo-hero-section h1 { font-size: 2.25rem !important; }
  .nvo-hero-section p  { font-size: .9rem !important; }
  .nvo-hero-section a  { width: 100% !important; justify-content: center !important; }
}
@media (max-width: 480px) {
  .nvo-hero-section h1 { font-size: 1.875rem !important; }
}

/* ── COLLECTION SECTION HEADING ROW ──────────────────────── */
@media (max-width: 640px) {
  .nvo-coll-heading-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .75rem !important;
  }
}

/* ── HOMEPAGE 5-COLUMN PRODUCT GRID ──────────────────────── */
/* Target the inline repeat(5,1fr) grid */
@media (max-width: 1280px) {
  [style*="grid-template-columns:repeat(5,1fr)"] {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}
@media (max-width: 960px) {
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: .9rem !important;
  }
}
@media (max-width: 640px) {
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: .75rem !important;
  }
}
@media (max-width: 360px) {
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(2,1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── COLLECTION PAGE PRODUCT GRID (auto-fill) ────────────── */
@media (max-width: 640px) {
  [style*="grid-template-columns:repeat(auto-fill,minmax(220px"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: .75rem !important;
  }
}
@media (max-width: 360px) {
  [style*="grid-template-columns:repeat(auto-fill,minmax(220px"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── PRODUCT CARD ─────────────────────────────────────────── */
@media (max-width: 640px) {
  .nu-vision-optics-product-card { padding: .75rem !important; }
}

/* ── COLLECTION PAGE BANNER ───────────────────────────────── */
@media (max-width: 768px) {
  /* Banner height */
  .nvo-collection-banner { height: 240px !important; }
  .nvo-collection-banner h1 { font-size: 1.875rem !important; }
  .nvo-collection-banner p  { font-size: .875rem !important; }
}
@media (max-width: 480px) {
  .nvo-collection-banner { height: 200px !important; }
  .nvo-collection-banner h1 { font-size: 1.5rem !important; }
}

/* ── COLLECTION SECTION PADDING ──────────────────────────── */
@media (max-width: 768px) {
  .nvo-coll-section { padding: 2rem 1rem 2.5rem !important; }
}

/* ── CONTACT PAGE ─────────────────────────────────────────── */
@media (max-width: 768px) {
  .nvo-contact-grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
}

/* ── ABOUT PAGE ───────────────────────────────────────────── */
@media (max-width: 768px) {
  .nvo-about-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  /* Stats grid 3→2 */
  [style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem !important;
  }
}
@media (max-width: 480px) {
  [style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── FOOTER GRID ──────────────────────────────────────────── */
@media (max-width: 960px) {
  .nvo-footer-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 2rem !important;
  }
}
@media (max-width: 540px) {
  .nvo-footer-grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
}

/* ── CTA SECTION ──────────────────────────────────────────── */
@media (max-width: 640px) {
  .nvo-cta-section { padding: 2.5rem 1rem !important; }
  .nvo-cta-section h2 { font-size: 1.5rem !important; }
  .nvo-cta-section > div > div {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .nvo-cta-section a {
    text-align: center !important;
    justify-content: center !important;
  }
}

/* ── BOOKING PAGE ─────────────────────────────────────────── */
@media (max-width: 640px) {
  #booking-form-wrap { padding: 1.25rem !important; }
}

/* ── GLOBAL SECTION PADDING ───────────────────────────────── */
@media (max-width: 768px) {
  section { padding-left: 1rem !important; padding-right: 1rem !important; }
}

/* ── FILTER BAR HORIZONTAL SCROLL ────────────────────────── */
.nvo-filter-bar {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  flex-wrap: nowrap !important;
}
.nvo-filter-bar::-webkit-scrollbar { display: none; }

/* ── HERO IMAGE SLIDER HEIGHT ─────────────────────────────── */
@media (max-width: 768px) {
  .nvo-slide { height: 260px !important; }
}
@media (max-width: 480px) {
  .nvo-slide { height: 220px !important; }
}

/* ── PAGE-COLLECTION PAGINATION ──────────────────────────── */
@media (max-width: 480px) {
  .nvo-pagination { gap: .35rem !important; }
  .nvo-pagination a { width: 2rem !important; height: 2rem !important; font-size: .75rem !important; }
}

/* ── CONTACT FORM horizontal → vertical ── */
@media (max-width: 640px) {
  #contact-form > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── STORE GRID ── */
@media (max-width: 768px) {
  .nvo-store-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── ABOUT PAGE ── */
@media (max-width: 768px) {
  .nvo-about-grid  { grid-template-columns: 1fr !important; }
  .nvo-why-grid    { grid-template-columns: repeat(2,1fr) !important; }
}
@media (max-width: 480px) {
  .nvo-why-grid    { grid-template-columns: 1fr !important; }
}

/* ── CONTACT FORM — horizontal → stacked on mobile ── */
@media (max-width: 768px) {
  .nvo-contact-form-row {
    flex-direction: column !important;
  }
  .nvo-contact-form-row > div {
    flex: none !important;
    width: 100% !important;
  }
  .nvo-contact-form-row button {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* ── CONTACT FORM single row → stacked on mobile ── */
@media (max-width: 900px) {
  .nvo-contact-form-row {
    grid-template-columns: 1fr 1fr !important;
  }
  .nvo-contact-form-row > div:nth-child(3) {
    grid-column: 1 / -1 !important;
  }
  .nvo-contact-form-row > div:nth-child(4) {
    grid-column: 1 / -1 !important;
  }
  .nvo-contact-form-row > div:nth-child(4) button {
    width: 100% !important;
    justify-content: center !important;
  }
}
@media (max-width: 560px) {
  .nvo-contact-form-row {
    grid-template-columns: 1fr !important;
  }
}

/* ════════════════════════════════════════════════════════════
   LEGAL PAGES: PRIVACY POLICY & TERMS & CONDITIONS
   ════════════════════════════════════════════════════════════ */

/* ── LEGAL PAGE CONTAINER ─────────────────────────────────── */
/* font-family:inherit forced on the container AND every descendant
   (the * selector) because this class wraps real the_content() output
   on Terms/Privacy Policy and the generic Legal Page template — actual
   text an admin typed or pasted into the WP editor, which commonly
   carries its own inline font-family baked into the saved HTML (a
   holdover from pasting out of Word/Google Docs, or Gutenberg block
   styling). That inline font-family was rendering paragraphs in a
   visibly different font than this page's own bold sans-serif
   headings. This rule forces every element back onto the theme's live
   site font (the same one set on body{} in inc/customizer.php's
   nvo_output_dynamic_css()) regardless of what individual pasted
   elements carry in the database — and since this file is enqueued
   site-wide with !important, it can't be silently dropped by this
   site's CSS-minify/cache plugin the way a plain Additional CSS rule
   could. */
.nu-vision-optics-legal-page,
.nu-vision-optics-legal-page * {
  font-family: inherit !important;
}
.nu-vision-optics-legal-page {
  max-width: 900px !important;
  margin: 0 auto !important;
  padding: 50px 40px !important;
  text-align: left !important;
}

/* ── LEGAL PAGE MAIN HEADING (H1) ─────────────────────────── */
.nu-vision-optics-legal-page h1 {
  text-align: left !important;
  font-size: 38px !important;
  font-weight: 700 !important;
  margin: 0 0 20px 0 !important;
  color: #222 !important;
  border-bottom: 3px solid #007bff !important;
  padding-bottom: 15px !important;
  line-height: 1.3 !important;
}

/* ── LAST UPDATED TEXT ────────────────────────────────────── */
.nu-vision-optics-last-updated {
  color: #888 !important;
  font-size: 13px !important;
  margin: 0 0 30px 0 !important;
  font-style: italic !important;
}

/* ── H2 SECTION HEADINGS ──────────────────────────────────── */
.nu-vision-optics-legal-page h2 {
  text-align: left !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  margin: 35px 0 15px 0 !important;
  color: #6b7280 !important;
  border-bottom: 2px solid #e8e8e8 !important;
  padding-bottom: 10px !important;
  line-height: 1.4 !important;
}

/* ── H3 HEADINGS ──────────────────────────────────────────── */
.nu-vision-optics-legal-page h3 {
  text-align: left !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  margin: 20px 0 12px 0 !important;
  color: #444 !important;
  line-height: 1.4 !important;
}

/* ── PARAGRAPHS ───────────────────────────────────────────── */
.nu-vision-optics-legal-page p {
  text-align: left !important;
  margin-bottom: 15px !important;
  line-height: 1.8 !important;
  color: #6b7280 !important;
  font-size: 15px !important;
}

/* ── UNORDERED & ORDERED LISTS ────────────────────────────── */
.nu-vision-optics-legal-page ul,
.nu-vision-optics-legal-page ol {
  margin-left: 25px !important;
  margin-bottom: 15px !important;
  text-align: left !important;
}

/* ── LIST ITEMS ───────────────────────────────────────────── */
.nu-vision-optics-legal-page li {
  margin-bottom: 12px !important;
  line-height: 1.6 !important;
  text-align: left !important;
  color: #6b7280 !important;
}

/* ── BOLD/STRONG TEXT ─────────────────────────────────────── */
.nu-vision-optics-legal-page strong,
.nu-vision-optics-legal-page b {
  color: #222 !important;
  font-weight: 600 !important;
}

/* ── LINKS ────────────────────────────────────────────────── */
.nu-vision-optics-legal-page a {
  color: #007bff !important;
  text-decoration: none !important;
  border-bottom: 1px solid #007bff !important;
  transition: color 0.3s ease !important;
}

.nu-vision-optics-legal-page a:hover {
  color: #0056b3 !important;
  text-decoration: underline !important;
}

/* ── BLOCKQUOTES ──────────────────────────────────────────── */
.nu-vision-optics-legal-page blockquote {
  border-left: 4px solid #007bff !important;
  padding-left: 15px !important;
  margin: 20px 0 !important;
  font-style: italic !important;
  color: #666 !important;
}

/* ── CODE BLOCKS ──────────────────────────────────────────── */
.nu-vision-optics-legal-page code {
  background-color: #f5f5f5 !important;
  padding: 2px 6px !important;
  border-radius: 3px !important;
  font-family: 'Courier New', monospace !important;
  font-size: 14px !important;
  color: #d63384 !important;
}

/* ── TABLES ───────────────────────────────────────────────── */
.nu-vision-optics-legal-page table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 20px 0 !important;
}

.nu-vision-optics-legal-page table th,
.nu-vision-optics-legal-page table td {
  border: 1px solid #ddd !important;
  padding: 12px !important;
  text-align: left !important;
}

.nu-vision-optics-legal-page table th {
  background-color: #f9f9f9 !important;
  font-weight: 600 !important;
  color: #6b7280 !important;
}

/* ── MOBILE RESPONSIVE ────────────────────────────────────── */
@media (max-width: 768px) {
  .nu-vision-optics-legal-page {
    padding: 35px 25px !important;
  }

  .nu-vision-optics-legal-page h1 {
    font-size: 28px !important;
    margin: 0 0 15px 0 !important;
  }

  .nu-vision-optics-legal-page h2 {
    font-size: 20px !important;
    margin: 25px 0 12px 0 !important;
  }

  .nu-vision-optics-legal-page h3 {
    font-size: 16px !important;
    margin: 15px 0 10px 0 !important;
  }

  .nu-vision-optics-legal-page p {
    font-size: 14px !important;
  }
}

@media (max-width: 480px) {
  .nu-vision-optics-legal-page {
    padding: 25px 16px !important;
  }

  .nu-vision-optics-legal-page h1 {
    font-size: 22px !important;
    margin: 0 0 12px 0 !important;
  }

  .nu-vision-optics-legal-page h2 {
    font-size: 18px !important;
    margin: 20px 0 10px 0 !important;
  }

  .nu-vision-optics-legal-page ul,
  .nu-vision-optics-legal-page ol {
    margin-left: 18px !important;
  }

  .nu-vision-optics-legal-page li {
    font-size: 14px !important;
  }
}