/*
 * Product page styles — extracted from single-product.php inline <style> block.
 * Loaded only on product pages via inc/assets.php.
 */

.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24; }
.editorial-italic { font-family: 'Cormorant Garamond', serif; font-style: italic; }
.glass-card { background: rgba(255,255,255,0.4); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(215,193,195,0.2); }
/* Hide Kadence header/footer — using our own */
#masthead, .site-header, header.site-header { display: none !important; }
#colophon, .site-footer, footer.site-footer { display: none !important; }
#inner-wrap, .content-container, #primary, .site-content { padding-top: 0 !important; margin-top: 0 !important; }
.entry-content { padding: 0 !important; margin: 0 !important; }
body.admin-bar .fl-product-nav { top: 32px !important; }
@media (max-width: 782px) { body.admin-bar .fl-product-nav { top: 46px !important; } }
/* Qty input */
.qty-wrap input[type=number] { -moz-appearance: textfield; }
.qty-wrap input[type=number]::-webkit-outer-spin-button,
.qty-wrap input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
/* Rating stars fill */
.star-filled { font-variation-settings: 'FILL' 1, 'wght' 300, 'GRAD' 0, 'opsz' 24; }
/* Hide WooCommerce stock display from customers */
.stock, .in-stock, .out-of-stock, p.stock { display:none !important; }
/* Tabs for product info */
.fl-tab-btn { padding:0.75rem 1.25rem;font-family:'Inter',sans-serif;font-size:0.8125rem;font-weight:600;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;color:#857374;transition:all 0.2s; }
.fl-tab-btn.fl-tab-active { color:#8a4853;border-bottom-color:#8a4853; }
.fl-tab-content { display:none;padding:2rem 0; }
.fl-tab-content.fl-tab-active { display:block; }

/* FLOREVA_DESC_TYPOGRAPHY */
#fl-tab-desc h1, #fl-tab-desc h2, #fl-tab-desc h3, #fl-tab-desc h4 {
    font-family: 'Inter', sans-serif;
    color: #1e1b17;
    letter-spacing: -0.01em;
    line-height: 1.25;
    margin: 2.25rem 0 0.85rem;
}
#fl-tab-desc h1 { font-size: 1.75rem; font-weight: 800; }
#fl-tab-desc h2 { font-size: 1.375rem; font-weight: 800; padding-bottom:0.5rem; border-bottom:1px solid #f0e8e9; }
#fl-tab-desc h3 { font-size: 1.125rem; font-weight: 700; color: #8a4853; }
#fl-tab-desc h4 { font-size: 1rem; font-weight: 700; }
#fl-tab-desc h1:first-child, #fl-tab-desc h2:first-child, #fl-tab-desc h3:first-child { margin-top: 0; }
#fl-tab-desc p { margin: 0 0 1rem; color:#3d2e35; line-height:1.75; font-size:0.9375rem; }
#fl-tab-desc ul, #fl-tab-desc ol { margin: 0.5rem 0 1.25rem; padding-left: 1.5rem; color:#3d2e35; line-height:1.75; }
#fl-tab-desc li { margin-bottom: 0.4rem; font-size:0.9375rem; }
#fl-tab-desc li::marker { color:#8a4853; }
#fl-tab-desc strong { color: #1e1b17; font-weight: 700; }
#fl-tab-desc hr { border:none; border-top:1px solid #f0e8e9; margin: 2rem 0; }
#fl-tab-desc table { width:100%; border-collapse:collapse; margin:1.5rem 0; font-size:0.875rem; }
#fl-tab-desc table th, #fl-tab-desc table td { padding: 0.75rem 1rem; border:1px solid #f0e8e9; text-align:left; vertical-align:top; }
#fl-tab-desc table th { background:#faf8f6; font-weight:700; color:#1e1b17; }
#fl-tab-desc table tr:nth-child(even) td { background:#fbfafb; }
#fl-tab-desc blockquote { border-left: 4px solid #8a4853; padding:0.75rem 1.25rem; margin:1.5rem 0; background:#faf5f6; color:#3d2e35; font-style:italic; }
#fl-tab-desc a { color:#8a4853; text-decoration:underline; text-underline-offset:2px; }
#fl-tab-desc a:hover { color:#6e3940; }
#fl-tab-desc > div > *:first-child { margin-top: 0; }

/* FAQ accordion polish: hide native triangle, rotate + icon when open */
details > summary { list-style: none !important; }
details > summary::-webkit-details-marker { display: none; }
details > summary::marker { display: none; content: ""; }
details[open] > summary > .material-symbols-outlined { transform: rotate(45deg); }
details > summary > .material-symbols-outlined { transition: transform 0.2s ease; }
details > summary { transition: color 0.15s; }
details:hover > summary { color: #8a4853 !important; }
details { transition: background 0.2s; }

/* Customer Reviews for WooCommerce — Floreva brand overrides */
.floreva-cr-wrapper, .floreva-cr-qna-wrapper { font-family:'Inter',sans-serif; }
.floreva-cr-wrapper .woocommerce-Reviews-title { font-family:'Inter',sans-serif !important;font-size:1.5rem !important;font-weight:800 !important;color:#1e1b17 !important;text-align:center !important;margin:0 0 2rem !important; }
.floreva-cr-wrapper .woocommerce-Reviews-title span { font-weight:800;color:#1e1b17; }
.floreva-cr-wrapper .ivole-stars-container svg path,
.floreva-cr-wrapper .ivole-rating-stars svg path,
.floreva-cr-qna-wrapper .ivole-stars-container svg path { fill:#c9a55a !important; }
.floreva-cr-wrapper .ivole-r-attach-image-button,
.floreva-cr-wrapper #ivole-form-submit-review,
.floreva-cr-wrapper button.cr-button-primary,
.floreva-cr-qna-wrapper button.cr-button-primary,
.floreva-cr-qna-wrapper #cr-qna-form-submit { background:#8a4853 !important;color:#fff !important;border:none !important;border-radius:0.625rem !important;font-weight:700 !important;letter-spacing:0.05em !important;text-transform:uppercase !important;padding:0.875rem 2rem !important; }
.floreva-cr-wrapper button.cr-button-primary:hover,
.floreva-cr-qna-wrapper button.cr-button-primary:hover { background:#6e3940 !important; }
.floreva-cr-wrapper a, .floreva-cr-qna-wrapper a { color:#8a4853; }
.floreva-cr-wrapper .ivole-verified-badge,
.floreva-cr-wrapper .cr-verified-badge { color:#22a55a !important; }
.floreva-cr-wrapper .commentlist .comment_container { background:#fff;border:1px solid #f0e8e9;border-radius:0.75rem;padding:1.25rem;margin-bottom:1rem; }
.floreva-cr-wrapper .star-rating span::before { color:#c9a55a; }

/* ========== MOBILE RESPONSIVE ========== */
html, body { overflow-x: hidden; }

/* Kill Kadence wrapper padding on mobile */
@media (max-width: 768px) {
  .site-content, .content-container, #primary, #inner-wrap,
  .entry-content, .site-inner, .kadence-inner-wrap,
  .content-wrap, .site-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
}

/* --- Nav mobile --- */
@media (max-width: 768px) {
  .fl-product-nav {
    padding: 0.75rem 1rem !important;
  }
  .fl-product-nav .flex.items-center.gap-8 {
    gap: 0 !important;
  }
}

/* --- Hero: 2-col to 1-col --- */
@media (max-width: 768px) {
  #fl-product-page main > section:first-of-type {
    padding: 1rem 1rem 2.5rem !important;
  }
  #fl-product-page main > section:first-of-type > div {
    flex-direction: column !important;
    gap: 1.5rem !important;
  }
  /* Disable sticky image on mobile */
  #fl-img-col {
    position: static !important;
    min-width: 100% !important;
    width: 100% !important;
  }
  /* Product info full width */
  #fl-info-col {
    min-width: 100% !important;
    width: 100% !important;
    gap: 1rem !important;
  }
  /* Main product image — square */
  #fl-main-img { aspect-ratio: 1/1 !important; width: 100% !important; }
  /* Product title size */
  #fl-product-page h1 { font-size: 1.375rem !important; }
  /* Add to cart button full width */
  .single_add_to_cart_button,
  #fl-product-page form.cart .button,
  #fl-product-page .cart button[type="submit"] {
    width: 100% !important;
    padding: 0.875rem 1.5rem !important;
    font-size: 1rem !important;
  }
  /* Qty + ATC row */
  #fl-product-page form.cart {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    width: 100% !important;
  }
  #fl-product-page form.cart .qty-wrap,
  #fl-product-page form.cart .quantity {
    width: 100% !important;
  }
  #fl-product-page form.cart .qty-wrap input,
  #fl-product-page form.cart .quantity input {
    width: 100% !important;
    text-align: center !important;
  }
  /* Trust grid 1-col on very small screens */
  #fl-info-col > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* --- Ingredients / Active Complex section --- */
@media (max-width: 768px) {
  #fl-product-page section[style*="faf2eb"] {
    padding: 3rem 1rem !important;
  }
  #fl-product-page section[style*="faf2eb"] > div > div:last-child {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
  #fl-product-page section[style*="faf2eb"] h2 {
    font-size: 1.5rem !important;
    margin-bottom: 2rem !important;
  }
}

/* --- Science / Description section: 2-col to 1-col --- */
@media (max-width: 768px) {
  #fl-product-page section[style*="max-width:80rem"] > div[style*="display:flex"][style*="flex-wrap"] {
    flex-direction: column !important;
    gap: 2rem !important;
  }
  /* Image comes first on mobile (order:1 stays) */
  #fl-product-page section[style*="max-width:80rem"] > div[style*="display:flex"] > div[style*="order:1"] {
    order: 1 !important;
    min-width: 100% !important;
  }
  #fl-product-page section[style*="max-width:80rem"] > div[style*="display:flex"] > div[style*="order:2"] {
    order: 2 !important;
    min-width: 100% !important;
  }
  #fl-product-page section[style*="max-width:80rem"] > div[style*="display:flex"] img[style*="450px"] {
    height: 300px !important;
  }
  #fl-product-page h2.editorial-italic {
    font-size: 1.75rem !important;
  }
}

/* --- How to Use section --- */
@media (max-width: 768px) {
  #fl-product-page section[style*="f4ede6"][style*="6rem"] {
    padding: 3rem 1rem !important;
  }
  #fl-product-page section[style*="f4ede6"] h2 {
    font-size: 1.5rem !important;
    margin-bottom: 2rem !important;
  }
  #fl-product-page details summary {
    padding: 1rem !important;
    font-size: 0.9375rem !important;
  }
  #fl-product-page details > div {
    padding: 0 1rem 1rem !important;
    font-size: 0.9375rem !important;
  }
}

/* Sticky ATC bar + review float spacing on mobile */
@media (max-width: 768px) {
  #fl-sticky-atc { padding:0.625rem 1rem !important; }
  #fl-sticky-atc img { width:40px !important;height:40px !important; }
}

/* --- Related Products section --- */
@media (max-width: 768px) {
  #fl-product-page section[style*="max-width:80rem"]:last-of-type {
    padding: 3rem 1rem !important;
  }
  #fl-product-page section[style*="max-width:80rem"]:last-of-type h2 {
    font-size: 1.25rem !important;
    margin-bottom: 2rem !important;
  }
  #fl-product-page section[style*="max-width:80rem"]:last-of-type > div[style*="grid"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem !important;
  }
  #fl-product-page section[style*="max-width:80rem"]:last-of-type img[style*="320px"] {
    height: 200px !important;
  }
  #fl-product-page section[style*="max-width:80rem"]:last-of-type h3 {
    font-size: 0.8125rem !important;
  }
  #fl-product-page section[style*="max-width:80rem"]:last-of-type p {
    font-size: 0.75rem !important;
  }
}
@media (max-width: 420px) {
  #fl-product-page section[style*="max-width:80rem"]:last-of-type > div[style*="grid"] {
    grid-template-columns: 1fr !important;
  }
  #fl-product-page section[style*="max-width:80rem"]:last-of-type img[style*="320px"] {
    height: 280px !important;
  }
}

/* --- Footer --- */
@media (max-width: 768px) {
  #fl-product-page + footer,
  footer[style*="f4ede6"] {
    padding: 2rem 1rem !important;
  }
  #fl-product-page + footer > div,
  footer[style*="f4ede6"] > div {
    flex-direction: column !important;
    text-align: center !important;
    gap: 1.25rem !important;
  }
  #fl-product-page + footer > div > div:nth-child(2),
  footer[style*="f4ede6"] > div > div:nth-child(2) {
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 1rem !important;
  }
  #fl-product-page + footer > div > div:last-child,
  footer[style*="f4ede6"] > div > div:last-child {
    justify-content: center !important;
  }
}

/* --- Mobile hamburger menu placeholder (nav links hidden via Tailwind hidden md:flex) --- */
@media (max-width: 768px) {
  .fl-product-nav a[style*="1.25rem"] {
    font-size: 1.1rem !important;
  }
}

/* --- Small phones (under 380px) --- */
@media (max-width: 380px) {
  #fl-main-img,
  #fl-product-page main > section:first-of-type img:first-of-type {
    height: 320px !important;
  }
  #fl-product-page h1.editorial-italic {
    font-size: 1.75rem !important;
  }
  #fl-product-page main > section:first-of-type img[style*="70px"] {
    width: 48px !important;
    height: 48px !important;
  }
}
