/* ============================================================
   Aura Botanica — Responsive Styles
   All @media queries for style.css and chrome.css live here.
   Organized large → small. Chrome.css overrides follow
   style.css blocks at each breakpoint so chrome.css values win.
   ============================================================ */

/* ── Container base (≥280px) ─────────────────────────────────── */
@media (min-width: 280px) {
  .container {
    max-width: 1280px;
    padding: 0 12px;
  }
}

/* ── Container desktop padding (≥991px) ──────────────────────── */
@media (min-width: 991px) {
  .container {
    padding: 0 30px;
  }

  .hero-spacer-overlay {
    margin-top: -746px;
  }
}

/* ── Desktop (≥992px) ────────────────────────────────────────── */
@media (min-width: 992px) {
  /* Filter panel — inline inside shop layout */
  .filter-panel {
    width: 290px;
    max-width: 0;
    overflow: hidden;
    opacity: 0;
    border: 1px solid transparent;
    border-radius: var(--radius-lg);
    transition:
      max-width 0.32s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.25s ease,
      margin-right 0.32s ease;
    margin-right: 0;
    height: auto;
    position: relative;
    transform: none;
    box-shadow: none;
    z-index: 1;
  }

  .filter-panel.open {
    max-width: 290px;
    opacity: 1;
    border-color: var(--border);
    margin-right: 24px;
    overflow: visible;
    position: sticky;
    top: 90px;
  }

  .filter-overlay {
    display: none !important;
  }

  .shop-layout.filter-open .col-toggle-group {
    display: none;
  }

  /* Navbar — desktop centred logo */
  .navbar-aura > .container {
    position: relative;
  }

  .navbar-aura .navbar-brand,
  .navbar-aura #navBrand {
    position: static !important;
    transform: none !important;
    flex: none !important;
    order: 0 !important;
    margin: 0 !important;
  }

  .navbar-aura #navMain.navbar-collapse {
    display: flex !important;
    flex-basis: auto !important;
    flex-grow: 0 !important;
    margin-right: auto !important;
    margin-left: 0 !important;
    position: static !important;
    order: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  .navbar-aura .nav-icons {
    margin-left: auto !important;
    order: 0 !important;
    flex-shrink: 0;
  }

  .navbar-aura .navbar-toggler {
    order: 0 !important;
    margin-left: 0 !important;
  }
}

/* ── Tablet & Mobile (<992px) ────────────────────────────────── */
@media (max-width: 991.98px) {
  /* ---- Hero ---- */
  .hero-content {
    padding-top: 80px;
    padding-bottom: 24px;
  }

  .hero-image-col img {
    max-height: 280px;
  }

  /* ---- Aloe Banner ---- */
  .aloe-banner__content {
    padding: 32px 28px;
  }

  /* ---- Promo Cards ---- */
  .promo-card {
    min-height: 300px;
  }

  .promo-card--burdock .promo-card__content {
    padding-top: 60px;
  }

  .tablet-none {
    display: none;
  }

  /* ---- Testimonials: horizontal scroll ---- */
  .testimonials-section .row {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .testimonials-section .row::-webkit-scrollbar {
    display: none;
  }

  .testimonials-section .col-md-4 {
    min-width: 82vw;
    max-width: 82vw;
    flex: 0 0 82vw;
  }

  /* ---- Contact Form ---- */
  .contact-form-wrap {
    padding: 32px 24px;
  }

  .contact-info-wrapper {
    justify-content: center;
    flex-wrap: wrap;
  }

  /* ---- Filter panel: overlay sidebar ---- */
  .shop-layout {
    display: block;
  }

  .filter-panel {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 320px;
    max-width: 90vw;
    z-index: 1050;
    transform: translateX(-100%);
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
    overflow: hidden;
  }

  .filter-panel.open {
    transform: translateX(0);
    max-width: 90vw;
    opacity: 1;
  }

  .filter-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1040;
    backdrop-filter: blur(2px);
  }

  .filter-overlay.open {
    display: block;
  }

  /* ---- Navbar: mobile panel ---- */
  .navbar-aura.navbar-expand-lg .navbar-collapse,
  .navbar-aura .navbar-expand-lg .navbar-collapse {
    flex-grow: 0 !important;
    margin-right: 0 !important;
  }

  .navbar.navbar-aura,
  .navbar.navbar-expand-lg.navbar-aura {
    width: 97% !important;
    max-width: 1280px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    top: 20px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .navbar-aura > .container {
    max-width: 100%;
    padding-left: 12px;
    padding-right: 12px;
  }

  .navbar-aura #navBrand {
    position: relative !important;
    left: auto !important;
    transform: none !important;
    flex: 1 1 auto;
    min-width: 0;
    order: 1;
    font-size: 20px;
    margin: 0;
  }

  .navbar-aura .nav-icons {
    order: 2;
    flex-shrink: 0;
  }

  .navbar-aura .navbar-toggler {
    order: 3;
    flex-shrink: 0;
    margin-left: 12px !important;
  }

  .navbar-aura #navMain {
    order: 4;
    position: absolute;
    top: 72px;
    left: 0;
    right: 0;
    background: var(--aura-white);
    padding: 8px 20px 20px;
    border-top: 1px solid var(--aura-border);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    border-radius: 36px;
    z-index: 1040;
    background: var(--white);
  }

  .navbar-aura .navbar-nav .nav-link {
    padding: 12px 4px !important;
    border-bottom: 1px solid var(--aura-border);
    font-size: 16px;
    width: 100%;
  }

  .navbar-aura .dropdown-toggle {
    justify-content: space-between;
  }

  .navbar-aura .navbar-nav .nav-item:last-child .nav-link {
    border-bottom: none;
  }

  .navbar-aura .dropdown-menu {
    position: static !important;
    float: none !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 0 6px 16px;
    background: transparent !important;
  }
}

/* ── Mobile (<768px) ─────────────────────────────────────────── */
@media (max-width: 767.98px) {
  /* ---- General ---- */
  .section-spacing {
    padding: 36px 0;
  }

  .hero-content {
    padding-top: 90px;
    padding-bottom: 32px;
  }

  .hero-content h1 {
    font-size: 30px;
  }

  .hero-content p {
    font-size: 15px;
    max-width: 100%;
  }

  .hero-dots {
    bottom: 50px;
  }

  /* ---- Section Titles ---- */
  .section-title--lg {
    font-size: clamp(24px, 7vw, 34px);
  }

  .section-title--md {
    font-size: clamp(20px, 5.5vw, 28px);
  }

  /* ---- Featured Products tab row ---- */
  .d-flex.justify-content-between.flex-wrap {
    flex-direction: column;
    align-items: flex-start !important;
    gap: 12px;
  }

  /* ---- Aloe Banner: vertical stack ---- */
  .aloe-banner {
    flex-direction: column-reverse;
    min-height: auto;
  }

  .aloe-banner__content {
    padding: 48px 24px 96px;
    max-width: 100%;
  }

  .aloe-banner__image {
    position: relative;
    width: 100%;
    height: 240px;
    margin: 0;
    background: var(--primary-bright);
  }

  .aloe-banner__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center top;
  }

  .aloe-banner__bg {
    background-image: url("../images/aloe-banner-bg.jpg");
  }

  /* ---- Promo Cards ---- */
  .promo-card {
    min-height: 260px;
  }

  /* ---- Filter Pills ---- */
  .filter-pills {
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
    margin-bottom: 32px;
    scrollbar-width: none;
  }

  .filter-pills::-webkit-scrollbar {
    display: none;
  }

  .filter-pill {
    flex-shrink: 0;
    white-space: nowrap;
  }

  /* ---- Misc ---- */
  .mobile-none {
    display: none;
  }

  .section-title {
    margin-bottom: 36px;
  }

  #featured-products {
    padding-top: 60px;
  }

  #dual-promo {
    margin-bottom: 36px;
  }

  /* ---- Newsletter Banner ---- */
  .newsletter-banner {
    padding: 40px 28px;
  }

  .newsletter-banner__form {
    flex-direction: column;
    max-width: 100%;
  }

  .newsletter-banner__input,
  .newsletter-banner__btn {
    width: 100%;
  }

  /* ---- Featured Article ---- */
  .featured-article__image {
    height: 220px;
  }

  /* ---- Contact ---- */
  .contact-section {
    padding: 40px 0;
  }

  /* ---- FAQ ---- */
  .faq-accordion .accordion-button {
    font-size: 17px;
    padding: 18px 0;
  }

  .faq-accordion .accordion-button img {
    max-width: 17px;
  }

  .faq-accordion .accordion-body {
    font-size: 15px;
  }

  /* ---- Search bar ---- */
  .search-bar {
    max-width: 100%;
  }

  /* ---- Col toggle ---- */
  .btn-col-filter[data-cols="4"] {
    display: none;
  }

  /* ---- Navbar ---- */
  .navbar-aura {
    top: 20px;
  }

  /* ---- Footer ---- */
  .footer-inner {
    padding: 36px 0px 0px;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }

  .footer-copyright {
    order: -1;
  }

  .footer-brand {
    justify-content: center;
  }

  .footer .newsletter-form {
    flex-direction: column;
    max-width: 100%;
    gap: 10px;
  }

  .footer .newsletter-form input,
  .footer .newsletter-form button {
    width: 100%;
  }

  .footer-social {
    gap: 14px;
    justify-content: center;
  }

  /* ---- Search panel ---- */
  .aura-search-panel {
    width: min(280px, calc(100vw - 48px));
    right: -8px;
  }
}

/* ── Small Mobile (<576px) ───────────────────────────────────── */
@media (max-width: 575.98px) {
  /* ---- Product Cards ---- */
  .product-card__price {
    font-size: 15px;
  }

  .product-card__rating span {
    font-size: 14px;
  }

  .product-card__name {
    font-size: 13px;
  }

  .product-card__bottom {
    padding: 12px;
  }

  .product-card__image {
    min-height: 130px;
  }

  /* ---- Filter Pills ---- */
  .filter-pill {
    font-size: 13px;
    padding: 7px 14px;
  }

  /* ---- Blog Cards ---- */
  .blog-card__badge {
    font-size: 13px;
  }

  .blog-card__title {
    font-size: 16px;
  }

  .blog-card--uniform .blog-card__title {
    min-height: calc(16px * 1.45 * 2);
  }

  /* ---- Promo Cards ---- */
  .promo-card {
    height: 650px;
  }

  .promo-card__content {
    justify-content: flex-start;
    max-width: 100%;
    padding: 28px;
  }

  .promo-card__content h3 {
    font-size: 24px;
  }

  .promo-card__content p {
    font-size: 15px;
  }

  .promo-card--charcoal .promo-card__bg {
    background-image: url("../images/charcoal-mobile.png");
  }

  /* ---- Hero ---- */
  .hero-content {
    padding-top: 120px;
  }

  /* ---- Shop controls ---- */
  .shop-controls {
    flex-direction: column;
    align-items: flex-start;
  }

  /* ---- Featured Article ---- */
  .featured-article__body {
    padding: 20px;
  }

  .featured-article__title {
    font-size: 18px;
  }

  /* ---- Newsletter Banner ---- */
  .newsletter-banner__title {
    font-size: 28px;
  }

  /* ---- Contact ---- */
  .contact-info-card {
    min-height: auto;
    max-width: 100%;
  }

  .contact-form-wrap {
    padding: 24px 16px;
  }

  /* ---- Col toggle ---- */
  .btn-col-filter[data-cols="3"],
  .btn-col-filter[data-cols="4"] {
    display: none;
  }

  /* ---- Navbar ---- */
  .navbar-aura .navbar-brand img {
    height: 26px;
  }

  .navbar-aura .nav-icons {
    gap: 10px;
  }

  /* ---- Footer ---- */
  .footer h5 {
    font-size: 17px;
    margin-bottom: 16px;
  }

  .footer-brand {
    font-size: 22px;
  }

  .footer-brand img {
    height: 36px;
  }
}

/* ── Tiny screens (<340px) ──────────────────────────────────── */
@media (max-width: 339.98px) {
  .col-6.col-6.col-md-4.col-lg-3 {
    width: 100% !important;
  }
}
