/*
Theme Name: Luxury Perfume Website
Theme URI: https://example.com/luxury-perfume-website
Description: A luxury, mobile‑optimised WordPress theme inspired by high‑end perfume houses.  This theme uses an elegant serif/sans typography pairing, generous spacing and a warm beige palette to evoke a premium fragrance experience. It includes templates for a hero section, product showcases, journal entries and basic informational pages.
Version: 1.0.0
Author: Viaore Creative
Author URI: https://example.com
Tags: ecommerce, luxury, perfume, responsive, custom‑post‑type
Text Domain: luxury-perfume-website
Requires at least: 6.2
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
*/

/* --------------------------------------------------
   Google Fonts
   We load Playfair Display for headings and Manrope for body text.  These
   imports leverage WordPress’s theme enqueuing system in functions.php,
   but the declarations here serve as a fallback in case external fonts
   fail to load.
--------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Manrope:wght@300;400;500;600&display=swap');

/* --------------------------------------------------
   CSS Variables
   Define the warm beige palette and accent colours from the Viaore brand
   guidelines.  Use these variables throughout the stylesheet to make
   colour adjustments straightforward.
--------------------------------------------------- */
:root {
  --bg-primary: #FDFBF7;
  --bg-secondary: #F3EFE6;
  --bg-dark: #1A1715;
  --bg-card: #FFFFFF;
  --text-primary: #0F0F0F;
  --text-secondary: #4A3F35;
  --text-muted: #8C7A6B;
  --text-inverse: #FDFBF7;
  --accent-gold: #C6A87C;
  --accent-gold-hover: #B39567;
  --accent-brown: #4A3025;
  --border-colour: #E5DCD0;
}

/* --------------------------------------------------
   Global Reset and Typography
   Establish a clean slate by resetting margins, paddings and box sizing.
   Set the default font family to the modern sans Manrope and override
   headings with Playfair Display.  Line heights and letter‑spacing are
   adjusted to suit a premium editorial design.
--------------------------------------------------- */
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: 'Manrope', sans-serif;
  color: var(--text-primary);
  background-color: var(--bg-primary);
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', serif;
  margin-top: 0;
  margin-bottom: 0.5em;
  font-weight: 600;
  line-height: 1.15;
}

h1 {
  font-size: clamp(2.5rem, 5vw, 4rem);
  letter-spacing: -0.02em;
}
h2 {
  font-size: clamp(2rem, 4vw, 3rem);
}
h3 {
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
}

p {
  margin-bottom: 1.25em;
}

/* Utility classes */
.container {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.section {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.overline {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.75rem;
}

/* Links and Buttons */
a {
  color: var(--text-primary);
  text-decoration: none;
  transition: color 0.2s ease;
}
a:hover {
  color: var(--accent-gold);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Manrope', sans-serif;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  padding: 0.75rem 2rem;
  border: 1px solid var(--border-colour);
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.btn-primary {
  background-color: var(--text-inverse);
  color: var(--text-primary);
}
.btn-primary:hover {
  background-color: var(--accent-gold);
  color: var(--bg-primary);
}

.btn-outline {
  background-color: transparent;
  color: var(--text-inverse);
  border-color: rgba(255,255,255,0.4);
}
.btn-outline:hover {
  background-color: var(--text-inverse);
  color: var(--text-primary);
  border-color: var(--text-inverse);
}

/* Hero Section */
.hero {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: flex-end;
  color: var(--text-inverse);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.hero-content {
  z-index: 1;
  padding-bottom: 4rem;
}

.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(26, 23, 21, 0.4) 0%, rgba(26, 23, 21, 0.7) 100%);
}

/* Footer */
footer {
  background-color: var(--bg-dark);
  color: var(--text-inverse);
  padding: 2rem 0;
}

footer a {
  color: var(--text-inverse);
}

footer .footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: center;
  margin-bottom: 1rem;
}

footer .footer-nav a:hover {
  color: var(--accent-gold);
}

footer p {
  font-size: 0.875rem;
  margin: 0.5rem 0;
  text-align: center;
}

/* --------------------------------------------------
   Footer Layout
   The footer is divided into a grid of columns: one for a newsletter
   subscription form and three for navigation (Shop, Atelier, Policies).
   On smaller screens the columns stack vertically.  Forms and lists
   inherit our typography and colour palette.
--------------------------------------------------- */
.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem;
  margin-bottom: 2rem;
}

.footer-col h4 {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin: 0 0 0.75rem;
  color: var(--accent-gold);
}

.footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
}

.footer-col ul li {
  margin-bottom: 0.5rem;
}

.footer-col ul li a {
  color: var(--text-inverse);
  text-decoration: none;
}
.footer-col ul li a:hover {
  color: var(--accent-gold);
}

.subscribe-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.subscribe-form input[type="email"] {
  flex: 1 1 auto;
  padding: 0.5rem 0.75rem;
  border: 1px solid rgba(255,255,255,0.3);
  background-color: rgba(255,255,255,0.1);
  color: var(--text-inverse);
  font-family: 'Manrope', sans-serif;
  font-size: 0.875rem;
  border-radius: 4px;
}

.subscribe-form input[type="email"]::placeholder {
  color: rgba(255,255,255,0.6);
}

.subscribe-form button {
  background-color: var(--accent-gold);
  color: var(--bg-dark);
  border: none;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  border-radius: 4px;
}
.subscribe-form button:hover {
  background-color: var(--accent-gold-hover);
}

/* Product section cards */
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
}

.product-card {
  background-color: var(--bg-card);
  border: 1px solid var(--border-colour);
  padding: 1.5rem;
  border-radius: 6px;
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.product-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 30px rgba(74, 48, 37, 0.08);
}

.product-card img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 1rem;
}

.product-card h3 {
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
}

.product-card p {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin-bottom: 1rem;
}

/* Journal preview */
.journal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2rem;
}

.journal-card {
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  overflow: hidden;
  background-color: var(--bg-card);
  display: flex;
  flex-direction: column;
}

.journal-card img {
  width: 100%;
  height: auto;
  display: block;
}

.journal-card .content {
  padding: 1rem;
  flex: 1;
}

/* --------------------------------------------------
   Product Section Layout
   Each product on the home page is wrapped in its own section with
   generous vertical padding.  Within each section, a flex container
   aligns the image and details side by side on larger screens and
   stacks them on small screens.  A dark variant is used for the
   discovery box section, and the order alternates for visual interest.
--------------------------------------------------- */

/* Wrapper for each product section with padding and background colour */
.product-section {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.product-section.light {
  background-color: var(--bg-primary);
}

.product-section.mid {
  background-color: var(--bg-secondary);
}

.product-section.dark {
  background-color: var(--bg-dark);
  color: var(--text-inverse);
}

/* Inner container to control the layout of image and details.  It
   defaults to column direction but switches to row on medium screens.
   The alt modifier reverses the order on large screens. */
.product-inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

@media (min-width: 768px) {
  .product-inner {
    flex-direction: row;
    align-items: stretch;
    gap: 4rem;
  }
  .product-section.alt .product-inner {
    flex-direction: row-reverse;
  }
}

/* Image column.  The .product-image-wrapper adds padding, border and
   background around the image itself to mimic the framed look from
   the original design. */
.product-image {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-image-wrapper {
  padding: 2rem;
  border: 1px solid var(--border-colour);
  border-radius: 8px;
  background-color: var(--bg-secondary);
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Adjust background of image wrapper based on variant */
.product-section.mid .product-image-wrapper {
  background-color: var(--bg-primary);
}

.product-section.dark .product-image-wrapper {
  background-color: rgba(255,255,255,0.08);
}

.product-image img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Details column with constrained max width for readability */
.product-details {
  flex: 1;
  max-width: 600px;
  /* Ensure the details column stretches to match the height of the image column on larger screens and vertically centres its content. */
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.product-details h2 {
  font-size: clamp(2rem, 4vw, 4rem);
  margin-bottom: 0.75rem;
  line-height: 1.1;
}

.product-details .tagline {
  font-style: italic;
  font-size: 1.25rem;
  color: var(--accent-gold);
  margin-bottom: 1rem;
}

.product-section.dark .product-details .tagline {
  color: var(--accent-gold);
}

.product-details p.description {
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.product-section.dark .product-details p.description {
  color: var(--text-inverse);
  opacity: 0.85;
}

/* Notes grid for top/heart/base notes */
.notes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.notes-grid h4 {
  margin: 0;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--accent-gold);
}

.notes-grid ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
  color: var(--text-primary);
}

.product-section.dark .notes-grid ul {
  color: var(--text-inverse);
  opacity: 0.85;
}

/* Product action row aligns the button and price. */
.product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
}

.product-actions .price {
  font-size: 1rem;
  border-top: 1px solid currentColor;
  padding-top: 0.5rem;
  letter-spacing: 0.05em;
}

.product-section.dark .product-actions .price {
  border-color: rgba(255,255,255,0.4);
}

/* --------------------------------------------------
   Why Viaore Section
   A grid of brand values explaining what sets Viaore apart.  Each item
   displays an icon, a heading and a short description.  The layout
   adapts to smaller screens by stacking items, while on medium and
   larger screens it displays up to three items per row.
--------------------------------------------------- */
.why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem;
  margin-top: 2rem;
}

.why-item {
  background-color: var(--bg-card);
  border: 1px solid var(--border-colour);
  border-radius: 6px;
  padding: 2rem 1.5rem;
  text-align: center;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.why-item:hover {
  box-shadow: 0 8px 30px rgba(74, 48, 37, 0.08);
  transform: translateY(-4px);
}

.why-item .dashicons {
  font-size: 2rem;
  color: var(--accent-gold);
  display: inline-block;
  margin-bottom: 1rem;
}

.why-item h4 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-primary);
}

.why-item p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.5;
}

.journal-card h3 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-size: 1.25rem;
}

.journal-card p {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin-bottom: 1rem;
}

/* Utility for visually hidden elements (accessibility) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* --------------------------------------------------
   Product image clarity fixes - v5
   Keeps product imagery inside the designed card and prevents parallax
   from pushing images into neighbouring sections.
--------------------------------------------------- */
.product-image {
  transform: none !important;
  will-change: auto;
}

.product-image-wrapper {
  overflow: hidden;
  min-height: 520px;
  aspect-ratio: 1 / 1;
}

.product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: translate3d(0, 0, 0);
  will-change: transform;
  transition: transform 0.2s linear;
}

/* Section 3: Naut Ellio needs a clean, full bottle crop */
.product-image-naut-ellio .product-image-wrapper {
  min-height: 560px;
}

.product-image-naut-ellio img {
  object-fit: cover;
  object-position: center center;
}

/* Section 4: Tester Box should show the full box clearly, not cropped */
.product-image-discovery-tester-box .product-image-wrapper {
  min-height: 520px;
}

.product-image-discovery-tester-box img {
  object-fit: contain;
  object-position: center center;
  background-color: rgba(255,255,255,0.04);
}

/* Keep image/text columns visually aligned */
@media (min-width: 768px) {
  .product-inner {
    align-items: center;
  }

  .product-details {
    align-self: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}

@media (max-width: 767px) {
  .product-section {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .product-image-wrapper {
    min-height: auto;
    aspect-ratio: 1 / 1;
    padding: 1rem;
  }

  .product-image-discovery-tester-box .product-image-wrapper,
  .product-image-naut-ellio .product-image-wrapper {
    min-height: auto;
  }
}



/* --------------------------------------------------
   Product image clarity fixes - v6 final review
   Uses local demo product images and stable image containers so section 3
   and tester box remain sharp and clearly framed on the home page.
--------------------------------------------------- */
.product-section {
  padding-top: 5.75rem;
  padding-bottom: 5.75rem;
}

.product-inner {
  align-items: center;
}

.product-image {
  transform: none !important;
  will-change: auto;
}

.product-image-wrapper {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 1 / 1;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transform: translate3d(0, 0, 0);
  will-change: transform;
  transition: transform 0.2s linear;
}

.product-details {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Section 3: keep Naut Ellio full and balanced */
.product-image-naut-ellio .product-image-wrapper {
  aspect-ratio: 1 / 1;
}

.product-image-naut-ellio img {
  object-fit: cover;
  object-position: center center;
}

/* Section 4: tester box must stay visible and not over-cropped */
.product-image-discovery-tester-box .product-image-wrapper {
  aspect-ratio: 1 / 1;
  background: #1A1715;
}

.product-image-discovery-tester-box img {
  object-fit: cover;
  object-position: center center;
}

@media (min-width: 768px) {
  .product-inner {
    gap: 5rem;
  }
}

@media (max-width: 767px) {
  .product-section {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }
  .product-inner {
    gap: 2rem;
  }
}


/* --------------------------------------------------
   Why Viaore premium editorial section - v7
   Matches the original site more closely: intro split layout + connected
   3x2 bordered grid with refined spacing, icons, and editorial typography.
--------------------------------------------------- */
.why-viaore-section {
  padding-top: 7rem;
  padding-bottom: 7rem;
}

.why-viaore-intro {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
  margin-bottom: 5rem;
}

.why-viaore-title h2 {
  font-size: clamp(3rem, 6vw, 6.25rem);
  max-width: 560px;
  line-height: 0.95;
  letter-spacing: -0.04em;
  margin: 0;
}

.why-viaore-copy {
  display: flex;
  align-items: flex-start;
}

.why-viaore-copy p {
  max-width: 680px;
  font-size: clamp(1.05rem, 1.8vw, 1.45rem);
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}

.why-viaore-grid {
  display: grid;
  grid-template-columns: 1fr;
  border-top: 1px solid var(--border-colour);
  border-left: 1px solid var(--border-colour);
  background: transparent;
}

.why-viaore-item {
  min-height: 280px;
  padding: clamp(2rem, 4vw, 4rem);
  border-right: 1px solid var(--border-colour);
  border-bottom: 1px solid var(--border-colour);
  background: transparent;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}

.why-viaore-icon {
  color: var(--accent-gold);
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 2rem;
  font-family: 'Playfair Display', serif;
}

.why-viaore-item h3 {
  font-size: clamp(1.45rem, 2vw, 2rem);
  line-height: 1.2;
  margin: 0 0 1rem;
  letter-spacing: -0.03em;
}

.why-viaore-item p {
  max-width: 420px;
  color: var(--text-secondary);
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
}

/* Neutralize previous Why card styling if old markup/classes remain elsewhere */
.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--border-colour);
  border-left: 1px solid var(--border-colour);
}

.why-item {
  border-radius: 0;
  box-shadow: none;
  border-top: 0;
  border-left: 0;
  text-align: left;
}

.why-item:hover {
  transform: none;
  box-shadow: none;
}

@media (min-width: 900px) {
  .why-viaore-intro {
    grid-template-columns: 0.95fr 1.05fr;
    gap: 6rem;
  }

  .why-viaore-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 899px) {
  .why-viaore-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .why-viaore-intro {
    margin-bottom: 3rem;
  }

  .why-viaore-item {
    min-height: 220px;
    padding: 2rem;
  }
}

@media (max-width: 640px) {
  .why-viaore-title h2 {
    font-size: clamp(2.5rem, 12vw, 4rem);
  }
}



/* --------------------------------------------------
   Testimonials editorial strip - v8
   Matches the original site style: large editorial heading followed by
   horizontal premium quote cards.
--------------------------------------------------- */
.testimonials-editorial-section {
  background: var(--bg-primary);
  padding-top: 7rem;
  padding-bottom: 7rem;
  overflow: hidden;
}

.testimonials-editorial-heading {
  max-width: 980px;
  margin-bottom: 5rem;
}

.testimonials-editorial-heading .overline {
  color: var(--text-muted);
  display: block;
  margin-bottom: 1rem;
}

.testimonials-editorial-heading h2 {
  font-size: clamp(3.5rem, 7vw, 7rem);
  line-height: 0.95;
  letter-spacing: -0.05em;
  margin: 0;
}

.testimonials-editorial-heading h2 span {
  color: var(--accent-gold);
  font-style: italic;
  font-weight: 400;
}

.testimonials-marquee {
  display: flex;
  gap: 2rem;
  overflow-x: auto;
  padding-left: max(1.5rem, calc((100vw - 1280px) / 2 + 1.5rem));
  padding-right: 1.5rem;
  padding-bottom: 1rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.testimonials-marquee::-webkit-scrollbar {
  height: 8px;
}

.testimonials-marquee::-webkit-scrollbar-thumb {
  background: var(--border-colour);
  border-radius: 999px;
}

.testimonial-letter {
  flex: 0 0 min(520px, 82vw);
  min-height: 360px;
  background: var(--bg-secondary);
  border: 1px solid var(--border-colour);
  padding: clamp(2rem, 4vw, 4rem);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.testimonial-meta {
  color: var(--accent-gold);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 0.78rem;
  margin-bottom: 2rem;
}

.testimonial-letter blockquote {
  margin: 0;
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.8rem, 2.2vw, 2.55rem);
  line-height: 1.22;
  letter-spacing: -0.035em;
  color: var(--text-primary);
}

.testimonial-letter cite {
  margin-top: 2rem;
  font-style: normal;
  color: var(--text-muted);
  font-size: 1rem;
}

@media (max-width: 767px) {
  .testimonials-editorial-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .testimonials-editorial-heading {
    margin-bottom: 3rem;
  }

  .testimonial-letter {
    min-height: 300px;
  }
}



/* --------------------------------------------------
   Final CTA + premium footer - v9
   Matches original: image-backed CTA and luxury dark footer.
--------------------------------------------------- */
.final-cta-editorial {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url('https://images.pexels.com/photos/9651061/pexels-photo-9651061.jpeg?auto=compress&cs=tinysrgb&w=1800&lazy=load');
  background-size: cover;
  background-position: center;
  color: var(--text-inverse);
  text-align: center;
  overflow: hidden;
}

.final-cta-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(26,23,21,0.62), rgba(26,23,21,0.52)), rgba(26,23,21,0.24);
}

.final-cta-content {
  position: relative;
  z-index: 2;
  max-width: 950px;
}

.final-cta-content .overline {
  color: var(--accent-gold);
  display: block;
  margin-bottom: 1.25rem;
}

.final-cta-content h2 {
  color: var(--text-inverse);
  font-size: clamp(3.6rem, 8vw, 7.8rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
  margin-bottom: 1.5rem;
}

.final-cta-content p {
  max-width: 760px;
  margin: 0 auto 2.5rem;
  color: rgba(253,251,247,0.84);
  font-size: clamp(1.05rem, 1.6vw, 1.4rem);
  line-height: 1.55;
}

.final-cta-actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.final-cta-primary {
  background: var(--text-inverse);
  color: var(--text-primary);
  border-color: var(--text-inverse);
  min-width: 260px;
}

.final-cta-outline {
  background: transparent;
  color: var(--text-inverse);
  border-color: rgba(253,251,247,0.65);
  min-width: 260px;
}

.final-cta-outline:hover {
  background: var(--text-inverse);
  color: var(--text-primary);
}

/* Premium footer */
.luxury-footer {
  background: var(--bg-dark);
  color: var(--text-inverse);
  padding-top: 6rem;
  padding-bottom: 2rem;
}

.luxury-footer-grid {
  display: grid;
  grid-template-columns: minmax(280px, 1.8fr) repeat(3, minmax(150px, 1fr));
  gap: clamp(2.5rem, 6vw, 7rem);
  align-items: start;
}

.luxury-footer-brand h3 {
  color: var(--text-inverse);
  font-size: clamp(2rem, 3vw, 2.8rem);
  line-height: 1;
  margin: 0 0 1rem;
}

.luxury-footer-rule {
  height: 1px;
  width: min(420px, 100%);
  background: var(--accent-gold);
  margin-bottom: 0.6rem;
}

.luxury-footer-tagline,
.luxury-footer-col h4 {
  color: var(--accent-gold);
  text-transform: uppercase;
  letter-spacing: 0.28em;
  font-size: 0.78rem;
  margin: 0 0 2rem;
  font-family: 'Manrope', sans-serif;
}

.luxury-footer-copy {
  color: rgba(253,251,247,0.78);
  font-size: 1.05rem;
  line-height: 1.65;
  max-width: 520px;
  margin-bottom: 2.5rem;
}

.luxury-footer-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.75rem;
  max-width: 520px;
  align-items: end;
}

.luxury-footer-form input {
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(198,168,124,0.45);
  color: var(--text-inverse);
  padding: 0.75rem 0;
  font-size: 1rem;
  outline: none;
}

.luxury-footer-form input::placeholder {
  color: rgba(253,251,247,0.45);
}

.luxury-footer-form button {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--accent-gold);
  color: var(--accent-gold);
  text-transform: uppercase;
  letter-spacing: 0.3em;
  padding: 0.75rem 0 0;
  cursor: pointer;
  min-width: 150px;
  text-align: left;
}

.luxury-footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.luxury-footer-col li {
  margin-bottom: 1rem;
}

.luxury-footer-col a {
  color: var(--text-inverse);
  font-size: 1rem;
  text-decoration: none;
}

.luxury-footer-col a:hover {
  color: var(--accent-gold);
}

.luxury-footer-bottom {
  margin-top: 5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(253,251,247,0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.luxury-footer-bottom p {
  color: rgba(253,251,247,0.5);
  font-size: 0.82rem;
  margin: 0;
}

.luxury-footer-bottom p:last-child {
  color: var(--accent-gold);
  text-transform: uppercase;
  letter-spacing: 0.25em;
}

/* Override old footer styles inside this footer */
.luxury-footer .container p {
  text-align: left;
}

@media (max-width: 900px) {
  .luxury-footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .luxury-footer-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .final-cta-editorial {
    min-height: 460px;
  }

  .final-cta-actions {
    flex-direction: column;
    align-items: center;
  }

  .final-cta-primary,
  .final-cta-outline {
    width: 100%;
    max-width: 320px;
  }

  .luxury-footer {
    padding-top: 4rem;
  }

  .luxury-footer-grid {
    grid-template-columns: 1fr;
  }

  .luxury-footer-form {
    grid-template-columns: 1fr;
  }

  .luxury-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}



/* --------------------------------------------------
   Homepage polish - v10
   Consistent section headings, smooth entrance animation, continuous
   testimonial loop, floating WhatsApp, mobile improvements.
--------------------------------------------------- */

/* Smooth browsing */
html {
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
}

/* Consistent section heading system */
.section-heading h2,
.why-viaore-title h2,
.testimonials-editorial-heading h2 {
  font-size: clamp(3rem, 6.2vw, 6.25rem);
  line-height: 0.95;
  letter-spacing: -0.045em;
}

.section-heading .overline,
.why-viaore-title .overline,
.testimonials-editorial-heading .overline {
  text-transform: uppercase;
  letter-spacing: 0.28em;
  font-size: 0.78rem;
}

/* Smooth entrance animations */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(42px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}

.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.product-inner,
.why-viaore-item,
.journal-card,
.testimonial-letter,
details {
  transition: transform 0.45s ease, opacity 0.45s ease, border-color 0.45s ease;
}

/* Testimonials continuous loop */
.testimonials-loop {
  overflow: hidden;
  width: 100%;
  padding-left: max(1.5rem, calc((100vw - 1280px) / 2 + 1.5rem));
  padding-right: 0;
  position: relative;
}

.testimonials-loop::before,
.testimonials-loop::after {
  content: "";
  position: absolute;
  top: 0;
  width: 90px;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}

.testimonials-loop::before {
  left: 0;
  background: linear-gradient(to right, var(--bg-primary), rgba(253,251,247,0));
}

.testimonials-loop::after {
  right: 0;
  background: linear-gradient(to left, var(--bg-primary), rgba(253,251,247,0));
}

.testimonials-track {
  display: flex;
  gap: 2rem;
  width: max-content;
  animation: testimonials-scroll 42s linear infinite;
  will-change: transform;
}

.testimonials-loop:hover .testimonials-track {
  animation-play-state: paused;
}

@keyframes testimonials-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(calc(-50% - 1rem), 0, 0);
  }
}

.testimonials-marquee {
  display: none !important;
}

/* Floating WhatsApp */
.floating-whatsapp {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 9999;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 54px;
  padding: 0 1.15rem;
  border-radius: 999px;
  background: #25D366;
  color: #fff !important;
  box-shadow: 0 18px 40px rgba(37, 211, 102, 0.28);
  font-family: 'Manrope', sans-serif;
  font-weight: 600;
  text-decoration: none;
  transform: translateZ(0);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.floating-whatsapp:hover {
  transform: translateY(-3px);
  color: #fff !important;
  box-shadow: 0 20px 46px rgba(37, 211, 102, 0.38);
}

.floating-whatsapp-icon {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(255,255,255,0.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.floating-whatsapp-text {
  white-space: nowrap;
}

/* Mobile navigation and layout polish */
.primary-menu {
  align-items: center;
}

@media (max-width: 900px) {
  .site-header .container {
    gap: 1rem;
  }

  .main-navigation {
    overflow-x: auto;
    max-width: 72vw;
    -webkit-overflow-scrolling: touch;
  }

  .primary-menu {
    white-space: nowrap;
    padding-bottom: 0.25rem !important;
  }

  .product-inner {
    gap: 2.5rem;
  }

  .section-heading h2,
  .why-viaore-title h2,
  .testimonials-editorial-heading h2 {
    font-size: clamp(2.7rem, 10vw, 4.5rem);
  }

  .testimonial-letter {
    flex-basis: 84vw;
  }
}

@media (max-width: 640px) {
  .container {
    padding-left: 1.1rem;
    padding-right: 1.1rem;
  }

  .hero {
    min-height: 78vh;
  }

  .hero-content {
    padding-bottom: 3rem;
  }

  .hero-content h1,
  .final-cta-content h2 {
    font-size: clamp(3rem, 15vw, 4.75rem) !important;
  }

  .product-details h2 {
    font-size: clamp(2.5rem, 13vw, 4rem);
  }

  .notes-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .testimonials-loop {
    padding-left: 1.1rem;
  }

  .testimonials-track {
    gap: 1rem;
    animation-duration: 34s;
  }

  .testimonial-letter {
    min-height: 320px;
    flex-basis: 86vw;
  }

  .floating-whatsapp {
    right: 16px;
    bottom: 16px;
    min-height: 50px;
    padding: 0 0.9rem;
  }

  .floating-whatsapp-text {
    display: none;
  }
}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .animate-on-scroll,
  .animate-on-scroll.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .testimonials-track {
    animation: none;
  }

  .parallax img {
    transform: none !important;
  }
}



/* --------------------------------------------------
   Viaore screenshot-matched header - v11
--------------------------------------------------- */
.viaore-header {
  position: sticky;
  top: 0;
  z-index: 10000;
  width: 100%;
  background: rgba(242, 235, 224, 0.88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(229, 220, 208, 0.75);
}

.viaore-header-inner {
  width: 100%;
  min-height: 96px;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto minmax(160px, 1fr);
  align-items: center;
  gap: 2rem;
  padding-left: clamp(1.25rem, 3vw, 3.8rem);
  padding-right: clamp(1.25rem, 3vw, 3.8rem);
}

.viaore-brand {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 0.65rem;
  color: var(--text-primary);
  text-decoration: none;
  line-height: 1;
}

.viaore-brand:hover {
  color: var(--text-primary);
}

.viaore-brand-name {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.8rem, 2.5vw, 2.35rem);
  letter-spacing: -0.05em;
  font-weight: 500;
}

.viaore-brand-line {
  width: 70px;
  height: 1px;
  background: rgba(74,63,53,0.35);
  transform: translateY(-0.08rem);
}

.viaore-brand-sub {
  font-family: 'Manrope', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.38em;
  color: var(--text-muted);
  font-size: 0.72rem;
  transform: translateY(0.08rem);
}

.viaore-nav {
  justify-self: center;
}

.viaore-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.8rem, 3vw, 3.4rem);
  list-style: none;
  padding: 0;
  margin: 0;
}

.viaore-menu a {
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 1rem;
  letter-spacing: 0.01em;
  font-weight: 400;
}

.viaore-menu a:hover {
  color: var(--text-primary);
}

.viaore-cart {
  justify-self: end;
  position: relative;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-primary);
  text-decoration: none;
}

.viaore-cart-icon {
  position: relative;
  display: block;
  width: 22px;
  height: 17px;
  border: 1.6px solid var(--text-primary);
  border-top: 0;
  margin-top: 8px;
}

.viaore-cart-icon::before {
  content: "";
  position: absolute;
  left: 4px;
  top: -8px;
  width: 12px;
  height: 9px;
  border: 1.6px solid var(--text-primary);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
}

.viaore-cart-count {
  position: absolute;
  top: 2px;
  right: 0;
  min-width: 23px;
  height: 23px;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: var(--accent-gold);
  color: var(--text-primary);
  font-size: 0.78rem;
  line-height: 23px;
  text-align: center;
}

.site-header {
  display: none;
}

/* Hero image adjustment after header update */
.hero {
  min-height: calc(100vh - 96px);
  background-attachment: fixed;
}

.hero::after {
  background: linear-gradient(to bottom, rgba(26, 23, 21, 0.20) 0%, rgba(26, 23, 21, 0.64) 100%);
}

@media (max-width: 900px) {
  .viaore-header-inner {
    min-height: 78px;
    grid-template-columns: 1fr auto;
    gap: 1rem;
  }

  .viaore-brand-line,
  .viaore-brand-sub {
    display: none;
  }

  .viaore-nav {
    grid-column: 1 / -1;
    justify-self: start;
    width: 100%;
    overflow-x: auto;
    padding-bottom: 0.75rem;
    -webkit-overflow-scrolling: touch;
  }

  .viaore-menu {
    justify-content: flex-start;
    gap: 1.5rem;
    white-space: nowrap;
  }

  .viaore-menu a {
    font-size: 0.92rem;
  }

  .viaore-cart {
    grid-column: 2;
    grid-row: 1;
  }

  .hero {
    min-height: 78vh;
    background-attachment: scroll;
  }
}

@media (max-width: 520px) {
  .viaore-header-inner {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .viaore-brand-name {
    font-size: 1.75rem;
  }

  .viaore-menu {
    gap: 1.25rem;
  }
}



/* --------------------------------------------------
   WooCommerce compatibility - v12
--------------------------------------------------- */
.woocommerce-page-wrapper {
  background: var(--bg-primary);
  padding: 5rem 0;
}

.woocommerce-page-wrapper .woocommerce-products-header__title,
.woocommerce-page-wrapper .product_title,
.woocommerce-page-wrapper h1,
.woocommerce-page-wrapper h2 {
  font-family: 'Playfair Display', serif;
  letter-spacing: -0.04em;
}

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2rem;
}

.woocommerce ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  background: var(--bg-card);
  border: 1px solid var(--border-colour);
  padding: 1.2rem;
  border-radius: 0;
  text-align: left;
}

.woocommerce ul.products li.product a img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: var(--bg-secondary);
  margin-bottom: 1.2rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Playfair Display', serif;
  font-size: 1.65rem;
  color: var(--text-primary);
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--accent-gold);
  font-family: 'Manrope', sans-serif;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button {
  border-radius: 0;
  background: var(--bg-dark);
  color: var(--text-inverse);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.78rem;
  padding: 0.85rem 1.4rem;
  font-weight: 500;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .single_add_to_cart_button:hover {
  background: var(--accent-gold);
  color: var(--bg-dark);
}

.woocommerce div.product div.images img {
  background: var(--bg-secondary);
}

.woocommerce div.product .summary {
  color: var(--text-secondary);
}

.woocommerce table.shop_table,
.woocommerce-cart-form,
.woocommerce-checkout-review-order {
  background: var(--bg-card);
  border-color: var(--border-colour);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top-color: var(--accent-gold);
}

.woocommerce-message::before,
.woocommerce-info::before {
  color: var(--accent-gold);
}



/* --------------------------------------------------
   Inner pages from original React site - v13
   About, Contact, FAQs, Journal, Policies, 404 and Woo pages.
--------------------------------------------------- */
.lux-page-hero {
  position: relative;
  padding: clamp(8rem, 14vw, 12rem) 0 clamp(4.5rem, 8vw, 6rem);
  background: var(--bg-secondary);
  overflow: hidden;
}

.lux-page-hero .container {
  position: relative;
  z-index: 2;
}

.lux-page-hero h1 {
  font-size: clamp(3.25rem, 7vw, 6rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
  max-width: 900px;
  margin: 1.5rem 0 0;
}

.lux-page-hero p {
  max-width: 680px;
  color: var(--text-secondary);
  font-size: 1.1rem;
  line-height: 1.75;
  margin-top: 2rem;
}

.lux-section {
  padding: clamp(4rem, 8vw, 7rem) 0;
  background: var(--bg-primary);
}

.lux-grid-12 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
}

.lux-overline {
  display: block;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.28em;
  font-size: 0.78rem;
}

.lux-contact-form {
  display: grid;
  gap: 2rem;
}

.lux-form-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

.lux-field label {
  display: block;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 0.72rem;
  margin-bottom: 0.6rem;
}

.lux-field input,
.lux-field textarea {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border-colour);
  padding: 0.9rem 0;
  font: inherit;
  color: var(--text-primary);
  outline: none;
}

.lux-field input:focus,
.lux-field textarea:focus {
  border-bottom-color: var(--accent-gold);
}

.lux-alert {
  padding: 1rem 1.25rem;
  border: 1px solid var(--border-colour);
  background: var(--bg-secondary);
  color: var(--text-secondary);
  margin-bottom: 2rem;
}

.lux-faq-group {
  margin-bottom: 5rem;
}

.lux-faq-group h2 {
  color: var(--accent-gold);
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 1.5rem;
}

.lux-faq details {
  border: 0;
  border-bottom: 1px solid var(--border-colour);
  background: transparent;
  padding: 0;
  border-radius: 0;
}

.lux-faq summary {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  padding: 1.6rem 0;
  cursor: pointer;
}

.lux-faq details p {
  color: var(--text-secondary);
  line-height: 1.75;
  padding-bottom: 1.6rem;
  margin: 0;
}

.lux-journal-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
}

.lux-journal-card:first-child {
  grid-column: 1 / -1;
}

.lux-journal-card a {
  display: block;
  color: inherit;
  text-decoration: none;
}

.lux-journal-image {
  overflow: hidden;
  background: var(--border-colour);
  aspect-ratio: 4 / 5;
}

.lux-journal-card:first-child .lux-journal-image {
  aspect-ratio: 16 / 9;
}

.lux-journal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s ease;
}

.lux-journal-card:hover img {
  transform: scale(1.05);
}

.lux-journal-card h2 {
  font-size: clamp(2rem, 4vw, 3.8rem);
  line-height: 1.05;
  margin: 1.2rem 0 0.75rem;
}

.lux-policy-content {
  max-width: 820px;
  margin: 0 auto;
}

.lux-policy-block {
  margin-bottom: 4rem;
}

.lux-policy-block h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 1rem;
}

.lux-policy-block p {
  color: var(--text-secondary);
  font-size: 1.08rem;
  line-height: 1.8;
}

.lux-about-image {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--border-colour);
}

.lux-about-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lux-principles {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

.lux-principle {
  border-top: 1px solid var(--border-colour);
  padding-top: 1.5rem;
}

.lux-principle h3 {
  font-size: 1.8rem;
}

.lux-404 {
  min-height: 80vh;
  display: flex;
  align-items: center;
  text-align: center;
}

.lux-404 h1 {
  font-size: clamp(4rem, 10vw, 8rem);
}

@media (max-width: 800px) {
  .lux-grid-12,
  .lux-journal-grid,
  .lux-principles,
  .lux-form-row {
    grid-template-columns: 1fr;
  }

  .lux-grid-12 > * {
    grid-column: auto !important;
  }

  .lux-journal-card:first-child {
    grid-column: auto;
  }
}



/* --------------------------------------------------
   Testimonial loop fix - v15
   CSS-only continuous loop. No JS dependency. Always visible.
--------------------------------------------------- */
.testimonial-loop-section {
  opacity: 1 !important;
  transform: none !important;
}

.testimonials-loop-v15 {
  width: 100%;
  overflow: hidden;
  position: relative;
  padding-left: max(1.5rem, calc((100vw - 1280px) / 2 + 1.5rem));
  padding-right: 0;
  margin-top: 0;
}

.testimonials-loop-v15::before,
.testimonials-loop-v15::after {
  content: "";
  position: absolute;
  top: 0;
  width: 110px;
  height: 100%;
  z-index: 3;
  pointer-events: none;
}

.testimonials-loop-v15::before {
  left: 0;
  background: linear-gradient(to right, var(--bg-primary) 0%, rgba(253,251,247,0) 100%);
}

.testimonials-loop-v15::after {
  right: 0;
  background: linear-gradient(to left, var(--bg-primary) 0%, rgba(253,251,247,0) 100%);
}

.testimonials-track-v15 {
  display: flex;
  align-items: stretch;
  gap: 2rem;
  width: max-content;
  animation: viaore-testimonial-loop 48s linear infinite;
  will-change: transform;
}

.testimonials-loop-v15:hover .testimonials-track-v15 {
  animation-play-state: paused;
}

@keyframes viaore-testimonial-loop {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-50% - 1rem));
  }
}

.testimonials-track-v15 .testimonial-letter {
  flex: 0 0 clamp(360px, 34vw, 540px);
}

/* Disable old testimonial loop if any old preview/browser cache contains it */
.testimonials-loop,
.testimonials-track,
.testimonials-marquee {
  display: none !important;
}

@media (max-width: 640px) {
  .testimonials-loop-v15 {
    padding-left: 1.1rem;
  }

  .testimonials-track-v15 {
    gap: 1rem;
    animation-duration: 38s;
  }

  .testimonials-track-v15 .testimonial-letter {
    flex-basis: 86vw;
  }

  .testimonials-loop-v15::before,
  .testimonials-loop-v15::after {
    width: 42px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .testimonials-track-v15 {
    animation: none;
    transform: none;
    overflow-x: auto;
  }

  .testimonials-loop-v15 {
    overflow-x: auto;
  }
}



/* --------------------------------------------------
   Logo/header refinement - v16
   Matches the reference: Viaore wordmark + short elegant line + spaced PERFUMES.
--------------------------------------------------- */
.viaore-brand {
  gap: 0.55rem;
}

.viaore-brand-name {
  font-size: clamp(1.85rem, 2.25vw, 2.55rem);
  letter-spacing: -0.075em;
  font-weight: 500;
}

.viaore-brand-line {
  width: 56px;
  height: 1px;
  background: rgba(74,63,53,0.42);
  transform: translateY(0.04rem);
}

.viaore-brand-sub {
  font-size: 0.78rem;
  letter-spacing: 0.34em;
  color: rgba(74,63,53,0.62);
  transform: translateY(0.08rem);
}

@media (max-width: 900px) {
  .viaore-brand-line {
    display: inline-block;
    width: 34px;
  }

  .viaore-brand-sub {
    display: inline-block;
    font-size: 0.68rem;
    letter-spacing: 0.28em;
  }
}

@media (max-width: 520px) {
  .viaore-brand {
    gap: 0.38rem;
  }

  .viaore-brand-name {
    font-size: 1.7rem;
  }

  .viaore-brand-line {
    width: 24px;
  }

  .viaore-brand-sub {
    font-size: 0.62rem;
    letter-spacing: 0.24em;
  }
}



/* --------------------------------------------------
   Mobile QA fixes - v17
   Focus: no horizontal overflow, cleaner mobile header, better product
   spacing, safer hero, footer, WooCommerce, and cart/checkout behavior.
--------------------------------------------------- */

/* Global mobile safety */
*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
video,
iframe {
  max-width: 100%;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

/* Header: keep logo readable and avoid menu/cart collisions */
@media (max-width: 900px) {
  .viaore-header-inner {
    min-height: auto;
    padding-top: 0.85rem;
    padding-bottom: 0.65rem;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .viaore-brand {
    min-width: 0;
    max-width: calc(100vw - 92px);
  }

  .viaore-brand-name {
    flex: 0 0 auto;
  }

  .viaore-brand-line {
    flex: 0 0 auto;
  }

  .viaore-brand-sub {
    flex: 0 0 auto;
  }

  .viaore-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    max-width: 100%;
    padding-bottom: 0.35rem;
    scrollbar-width: none;
  }

  .viaore-nav::-webkit-scrollbar {
    display: none;
  }

  .viaore-cart {
    align-self: start;
    margin-top: 0.1rem;
  }
}

@media (max-width: 420px) {
  .viaore-brand-name {
    font-size: 1.55rem;
  }

  .viaore-brand-line {
    width: 18px;
  }

  .viaore-brand-sub {
    font-size: 0.56rem;
    letter-spacing: 0.18em;
  }

  .viaore-menu {
    gap: 1rem;
  }

  .viaore-menu a {
    font-size: 0.86rem;
  }
}

/* Hero mobile: prevent text from becoming too large or clipped */
@media (max-width: 640px) {
  .hero {
    min-height: 76vh;
    background-position: center center;
  }

  .hero-content {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .hero-content h1 {
    font-size: clamp(3rem, 16vw, 4.9rem) !important;
    line-height: 0.96 !important;
  }

  .hero-content p {
    font-size: 1rem !important;
    max-width: 92vw !important;
  }

  .hero-content .btn,
  .final-cta-actions .btn {
    width: 100%;
    max-width: 330px;
    justify-content: center;
    text-align: center;
  }
}

/* Product sections: more stable mobile layout */
@media (max-width: 767px) {
  .product-section {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

  .product-inner {
    gap: 2rem;
  }

  .product-details {
    max-width: 100%;
  }

  .product-details h2 {
    font-size: clamp(2.8rem, 14vw, 4.25rem);
  }

  .product-details .tagline {
    font-size: 1.1rem;
  }

  .product-details p.description {
    font-size: 0.98rem;
  }

  .product-actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .product-actions .btn {
    width: 100%;
    max-width: 340px;
    text-align: center;
  }

  .product-actions .price {
    margin-top: 0.25rem;
  }
}

/* Why Viaore: prevent giant headings/uneven cards on mobile */
@media (max-width: 640px) {
  .why-viaore-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .why-viaore-title h2 {
    font-size: clamp(3rem, 15vw, 4.6rem);
  }

  .why-viaore-copy p {
    font-size: 1rem;
  }

  .why-viaore-grid {
    grid-template-columns: 1fr;
  }

  .why-viaore-item {
    min-height: auto;
    padding: 2rem 1.35rem;
  }
}

/* Testimonials: smoother small screen cards */
@media (max-width: 640px) {
  .testimonials-editorial-heading h2 {
    font-size: clamp(3rem, 14vw, 4.75rem);
  }

  .testimonial-letter {
    padding: 2rem 1.4rem;
  }

  .testimonial-letter blockquote {
    font-size: clamp(1.55rem, 7vw, 2rem);
  }
}

/* Journal/cards mobile */
@media (max-width: 640px) {
  .journal-grid,
  .preview-grid {
    grid-template-columns: 1fr !important;
  }

  .journal-card .content {
    padding: 1.25rem;
  }
}

/* FAQ mobile */
@media (max-width: 640px) {
  details {
    padding: 1rem;
  }
}

/* Final CTA mobile */
@media (max-width: 640px) {
  .final-cta-editorial {
    min-height: 540px;
    background-position: center center;
  }

  .final-cta-content p {
    font-size: 1rem;
    max-width: 92vw;
  }
}

/* Footer mobile */
@media (max-width: 640px) {
  .luxury-footer-grid {
    gap: 2.5rem;
  }

  .luxury-footer-form {
    gap: 1rem;
  }

  .luxury-footer-form button {
    min-width: 0;
    width: 100%;
  }

  .luxury-footer-bottom p:last-child {
    letter-spacing: 0.18em;
  }
}

/* WooCommerce mobile */
@media (max-width: 640px) {
  .woocommerce-page-wrapper {
    padding: 3rem 0;
  }

  .woocommerce ul.products {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .woocommerce div.product .summary,
  .woocommerce div.product div.images {
    width: 100% !important;
    float: none !important;
  }

  .woocommerce table.shop_table {
    font-size: 0.9rem;
  }

  .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button {
    width: 100%;
    text-align: center;
  }

  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last {
    width: 100%;
    float: none;
  }
}

/* Floating WhatsApp: avoid covering checkout buttons too much */
@media (max-width: 640px) {
  .floating-whatsapp {
    right: 14px;
    bottom: 14px;
    width: 52px;
    height: 52px;
    min-height: 52px;
    padding: 0;
    justify-content: center;
  }

  .floating-whatsapp-icon {
    width: 34px;
    height: 34px;
  }
}



/* --------------------------------------------------
   Header section refinement - v18
   Section 1 only: closer to reference header and easier future adjustment.
   Manual controls:
   - Header height: .viaore-header-inner min-height
   - Vertical lift: transform translateY on .viaore-brand, .viaore-nav, .viaore-cart
--------------------------------------------------- */
.viaore-header {
  background: rgba(242, 235, 224, 0.92);
}

.viaore-header-inner {
  min-height: 88px;
  padding-top: 0.55rem;
  padding-bottom: 0.35rem;
}

.viaore-brand,
.viaore-nav,
.viaore-cart {
  transform: translateY(-2px);
}

.viaore-brand {
  gap: 0.52rem;
}

.viaore-brand-name {
  font-size: clamp(1.9rem, 2.25vw, 2.55rem);
  letter-spacing: -0.08em;
}

.viaore-brand-line {
  width: 54px;
  background: rgba(74,63,53,0.40);
}

.viaore-brand-sub {
  font-size: 0.76rem;
  letter-spacing: 0.34em;
  color: rgba(74,63,53,0.62);
}

.viaore-menu a {
  font-size: 0.98rem;
  color: rgba(74,63,53,0.78);
}

@media (max-width: 900px) {
  .viaore-header-inner {
    min-height: auto;
    padding-top: 0.75rem;
    padding-bottom: 0.55rem;
  }

  .viaore-brand,
  .viaore-nav,
  .viaore-cart {
    transform: translateY(-1px);
  }
}



/* --------------------------------------------------
   Section 2: A House of Three Scents refinement - v19
   Cleaner reference-style typography and admin-adjustable spacing.
--------------------------------------------------- */
.viaore-intro-section {
  background: var(--bg-primary);
  padding-top: var(--viaore-intro-padding, 112px);
  padding-bottom: var(--viaore-intro-padding, 112px);
  border-bottom: 1px solid rgba(226, 214, 199, 0.45);
}

.viaore-intro-layout {
  display: grid;
  grid-template-columns: minmax(180px, 0.38fr) minmax(0, 1fr);
  gap: clamp(2.5rem, 6vw, 7rem);
  align-items: start;
}

.viaore-intro-kicker .overline {
  color: var(--text-muted);
  display: block;
  padding-top: 0.65rem;
}

.viaore-intro-content {
  max-width: 980px;
}

.viaore-intro-content h2 {
  font-size: clamp(2.75rem, 5.1vw, var(--viaore-intro-heading-max, 64px));
  line-height: 1.02;
  letter-spacing: -0.048em;
  margin: 0 0 1.6rem;
  max-width: 930px;
}

.viaore-intro-content h2 span {
  color: var(--accent-gold);
  font-style: italic;
  font-weight: 400;
}

.viaore-intro-content p {
  max-width: 790px;
  color: var(--text-secondary);
  font-size: clamp(1rem, 1.25vw, 1.18rem);
  line-height: 1.75;
  margin: 0;
}

@media (max-width: 900px) {
  .viaore-intro-section {
    padding-top: calc(var(--viaore-intro-padding, 112px) * 0.72);
    padding-bottom: calc(var(--viaore-intro-padding, 112px) * 0.72);
  }

  .viaore-intro-layout {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }

  .viaore-intro-kicker .overline {
    padding-top: 0;
  }

  .viaore-intro-content h2 {
    font-size: clamp(2.6rem, 10vw, 4.3rem);
  }
}

@media (max-width: 520px) {
  .viaore-intro-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .viaore-intro-content h2 {
    font-size: clamp(2.4rem, 12vw, 3.65rem);
    line-height: 1;
  }

  .viaore-intro-content p {
    font-size: 0.98rem;
    line-height: 1.65;
  }
}



/* --------------------------------------------------
   Section 3: Dynamic Woo product pricing + side cart drawer - v20
--------------------------------------------------- */
.product-add-link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--text-primary);
  text-decoration: none;
  border-top: 1px solid currentColor;
  padding-top: 0.55rem;
  letter-spacing: 0.04em;
  font-size: 0.96rem;
  transition: color 0.25s ease, transform 0.25s ease;
}

.product-add-link span {
  text-transform: uppercase;
}

.product-add-link strong {
  font-weight: 400;
}

.product-add-link:hover {
  color: var(--accent-gold);
  transform: translateY(-1px);
}

.product-section.dark .product-add-link {
  color: var(--text-inverse);
  border-color: rgba(253,251,247,0.55);
}

.product-section.dark .product-add-link:hover {
  color: var(--accent-gold);
}

.viaore-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 100000;
  pointer-events: none;
  visibility: hidden;
}

.viaore-cart-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}

.viaore-cart-drawer-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 23, 21, 0.42);
  opacity: 0;
  transition: opacity 0.35s ease;
}

.viaore-cart-drawer.is-open .viaore-cart-drawer-overlay {
  opacity: 1;
}

.viaore-cart-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(440px, 92vw);
  height: 100%;
  background: var(--bg-primary);
  border-left: 1px solid var(--border-colour);
  box-shadow: -30px 0 60px rgba(26,23,21,0.18);
  transform: translateX(105%);
  transition: transform 0.42s cubic-bezier(.23,1,.32,1);
  display: flex;
  flex-direction: column;
}

.viaore-cart-drawer.is-open .viaore-cart-panel {
  transform: translateX(0);
}

.viaore-cart-panel-header {
  padding: 1.5rem 1.5rem 1.1rem;
  border-bottom: 1px solid var(--border-colour);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.viaore-cart-panel-header .overline {
  color: var(--accent-gold);
}

.viaore-cart-close {
  border: 0;
  background: transparent;
  color: var(--text-primary);
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

.viaore-cart-panel-body {
  padding: 1.5rem;
  overflow-y: auto;
  flex: 1;
}

.viaore-cart-panel-body .woocommerce-mini-cart {
  list-style: none;
  margin: 0;
  padding: 0;
}

.viaore-cart-panel-body .woocommerce-mini-cart-item {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--border-colour);
}

.viaore-cart-panel-body .woocommerce-mini-cart-item img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  grid-row: span 2;
  background: var(--bg-secondary);
}

.viaore-cart-panel-body .woocommerce-mini-cart__total {
  border-top: 1px solid var(--border-colour);
  padding-top: 1rem;
  margin-top: 1rem;
}

.viaore-cart-panel-body .woocommerce-mini-cart__buttons {
  display: grid;
  gap: 0.75rem;
}

.viaore-cart-panel-body .button {
  width: 100%;
  text-align: center;
}

body.viaore-cart-open {
  overflow: hidden;
}

@media (max-width: 640px) {
  .product-add-link {
    width: 100%;
    max-width: 340px;
    justify-content: space-between;
  }

  .viaore-cart-panel {
    width: 94vw;
  }
}



/* --------------------------------------------------
   WooCommerce Testing Checklist page - v21
--------------------------------------------------- */
.testing-checklist-hero {
  background: var(--bg-primary);
  padding: 7rem 0 4rem;
  border-bottom: 1px solid var(--border-colour);
}

.testing-checklist-hero .overline {
  color: var(--accent-gold);
}

.testing-checklist-hero h1 {
  font-size: clamp(3.2rem, 7vw, 7rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
  margin: 1rem 0 1.5rem;
}

.testing-checklist-hero p {
  max-width: 760px;
  color: var(--text-secondary);
  font-size: 1.18rem;
  line-height: 1.65;
}

.testing-checklist-section {
  background: var(--bg-primary);
  padding: 5rem 0 7rem;
}

.testing-checklist-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.42fr) minmax(0, 1fr);
  gap: clamp(2.5rem, 6vw, 6rem);
}

.testing-checklist-sidebar {
  position: sticky;
  top: 120px;
  align-self: start;
  border: 1px solid var(--border-colour);
  background: var(--bg-secondary);
  padding: 2rem;
}

.testing-checklist-sidebar h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.testing-checklist-sidebar ul {
  padding-left: 1.1rem;
  color: var(--text-secondary);
  line-height: 1.8;
}

.testing-checklist-main {
  display: grid;
  gap: 1.25rem;
}

.testing-check-card {
  border: 1px solid var(--border-colour);
  background: var(--bg-card);
  padding: clamp(1.5rem, 3vw, 2.5rem);
}

.testing-step {
  display: block;
  color: var(--accent-gold);
  font-size: 0.78rem;
  letter-spacing: 0.24em;
  margin-bottom: 1rem;
}

.testing-check-card h3 {
  font-size: clamp(1.6rem, 2.5vw, 2.4rem);
  margin-bottom: 1rem;
}

.testing-check-card p {
  color: var(--text-secondary);
  line-height: 1.65;
}

.testing-check-card code {
  display: inline-block;
  background: var(--bg-secondary);
  border: 1px solid var(--border-colour);
  padding: 0.45rem 0.65rem;
  margin: 0.3rem 0.25rem 0 0;
}

@media (max-width: 900px) {
  .testing-checklist-layout {
    grid-template-columns: 1fr;
  }

  .testing-checklist-sidebar {
    position: static;
  }
}

@media (max-width: 640px) {
  .testing-checklist-hero {
    padding: 4rem 0 3rem;
  }

  .testing-checklist-section {
    padding: 3rem 0 5rem;
  }
}



/* --------------------------------------------------
   Section 4: Global product grid/category controls - v22
--------------------------------------------------- */
.product-section .overline {
  text-transform: uppercase;
}

.product-add-link .amount {
  color: inherit;
}

.product-section[data-product-category="women"] {
  --section-accent: #c6a87c;
}

.product-section[data-product-category="men"] {
  --section-accent: #9a8263;
}

.product-section[data-product-category="signature"] {
  --section-accent: var(--accent-gold);
}



/* --------------------------------------------------
   Section 4 extra: homepage product fetch/display controls - v23
--------------------------------------------------- */
.product-add-link strong:empty {
  display: none;
}

.product-actions:empty {
  display: none;
}



/* --------------------------------------------------
   Shop archive premium 2x2 grid + banner - v24
--------------------------------------------------- */
.viaore-shop-archive-hero {
  background: var(--bg-primary);
  padding-top: var(--viaore-shop-banner-padding, 110px);
  padding-bottom: calc(var(--viaore-shop-banner-padding, 110px) * 0.72);
  border-bottom: 1px solid rgba(226, 214, 199, 0.55);
}

.viaore-shop-archive-hero .overline {
  color: var(--accent-gold);
  display: block;
  margin-bottom: 1rem;
}

.viaore-shop-archive-hero h1 {
  max-width: 760px;
  font-size: clamp(3.4rem, 7vw, 7rem);
  line-height: 0.94;
  letter-spacing: -0.06em;
  margin: 0 0 1.5rem;
}

.viaore-shop-archive-hero p {
  max-width: 680px;
  color: var(--text-secondary);
  font-size: clamp(0.98rem, 1.25vw, 1.15rem);
  line-height: 1.7;
  margin: 0;
}

.woocommerce-page-wrapper {
  padding-top: 0;
}

.woocommerce-page-wrapper .container > .woocommerce-notices-wrapper {
  padding-top: 2rem;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-products-header {
  display: none;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(var(--viaore-shop-columns, 2), minmax(0, 1fr)) !important;
  gap: clamp(2rem, 4vw, 4rem) !important;
  margin: 0 !important;
  padding: clamp(3rem, 5vw, 5rem) 0 clamp(5rem, 7vw, 7rem) !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  text-align: left !important;
  position: relative;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
  display: block;
  text-decoration: none;
  color: var(--text-primary);
}

.woocommerce ul.products li.product a img {
  width: 100% !important;
  aspect-ratio: 1 / 1.15;
  object-fit: contain;
  background: var(--bg-secondary);
  padding: clamp(2rem, 4vw, 4rem);
  margin: 0 0 1.25rem !important;
  transition: transform 0.45s ease;
}

.woocommerce ul.products li.product:hover a img {
  transform: scale(1.025);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: clamp(1.65rem, 2.2vw, 2.25rem) !important;
  line-height: 1.08;
  letter-spacing: -0.04em;
  padding: 0 !important;
  margin: 0.4rem 7rem 0.5rem 0 !important;
}

.woocommerce ul.products li.product .price {
  position: absolute;
  right: 0;
  bottom: 3.1rem;
  color: var(--text-primary) !important;
  font-size: 0.85rem !important;
  font-family: 'Manrope', sans-serif;
}

.woocommerce ul.products li.product .button {
  position: absolute;
  right: 0;
  bottom: 0;
  background: transparent !important;
  color: var(--text-primary) !important;
  border: 0 !important;
  border-top: 1px solid var(--text-primary) !important;
  padding: 0.35rem 0 0 !important;
  font-size: 0.66rem !important;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  min-width: 88px;
  text-align: left;
}

.woocommerce ul.products li.product .button:hover {
  color: var(--accent-gold) !important;
  border-color: var(--accent-gold) !important;
}

.woocommerce ul.products li.product .star-rating {
  display: none;
}

.woocommerce ul.products li.product .added_to_cart {
  display: block;
  margin-top: 0.4rem;
  color: var(--accent-gold);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

@media (max-width: 1024px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .viaore-shop-archive-hero {
    padding-top: 4rem;
    padding-bottom: 3rem;
  }

  .viaore-shop-archive-hero h1 {
    font-size: clamp(3rem, 15vw, 4.8rem);
  }

  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
    padding-top: 3rem !important;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin-right: 6rem !important;
  }

  .woocommerce ul.products li.product a img {
    padding: 2rem;
  }
}



/* --------------------------------------------------
   Custom individual product page template - v25
--------------------------------------------------- */
.viaore-single-product-page {
  background: var(--bg-primary);
  color: var(--text-primary);
}

.viaore-back-to-shop {
  display: inline-flex;
  margin-top: 2rem;
  margin-bottom: 2rem;
  color: var(--text-muted);
  text-decoration: none;
  font-size: 0.95rem;
}

.viaore-back-to-shop:hover {
  color: var(--accent-gold);
}

.viaore-single-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

.viaore-single-image-frame {
  background: var(--bg-secondary);
  min-height: 640px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(3rem, 6vw, 6rem);
}

.viaore-single-image-frame img {
  width: 100%;
  max-height: 520px;
  object-fit: contain;
  display: block;
}

.viaore-single-summary {
  max-width: 680px;
}

.viaore-single-summary .overline {
  color: var(--text-muted);
  display: block;
  margin-bottom: 1rem;
}

.viaore-single-summary .product_title {
  font-size: clamp(4rem, 8vw, 7.6rem);
  line-height: 0.9;
  letter-spacing: -0.065em;
  margin: 0 0 1rem;
}

.viaore-single-tagline {
  color: var(--accent-gold);
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.35rem, 2.2vw, 2.05rem);
  font-style: italic;
  line-height: 1.25;
  margin: 0 0 2rem;
}

.viaore-single-description {
  color: var(--text-secondary);
  font-size: 1.05rem;
  line-height: 1.75;
  max-width: 660px;
  margin-bottom: 2rem;
}

.viaore-single-price-row {
  display: flex;
  align-items: baseline;
  gap: 1.25rem;
  margin-bottom: 1.75rem;
}

.viaore-single-price-row .price {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 3vw, 2.9rem);
  color: var(--text-primary) !important;
  margin: 0;
}

.viaore-single-price-row .price .amount {
  color: var(--text-primary) !important;
}

.viaore-single-price-row > span {
  color: var(--text-muted);
  font-size: 0.95rem;
}

.viaore-single-cart-form form.cart {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 1rem;
  margin-bottom: 1rem !important;
}

.viaore-single-cart-form .quantity {
  display: flex;
  border: 1px solid var(--text-primary);
  height: 56px;
}

.viaore-single-cart-form .qty {
  width: 100% !important;
  height: 54px;
  border: 0;
  background: transparent;
  text-align: center;
  font-family: 'Manrope', sans-serif;
}

.viaore-single-cart-form .single_add_to_cart_button {
  height: 56px;
  width: 100%;
  background: var(--bg-dark) !important;
  color: var(--text-inverse) !important;
  border: 1px solid var(--bg-dark) !important;
  border-radius: 0 !important;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.78rem;
}

.viaore-single-cart-form .single_add_to_cart_button:hover {
  background: var(--accent-gold) !important;
  border-color: var(--accent-gold) !important;
  color: var(--text-primary) !important;
}

.viaore-single-whatsapp {
  height: 50px;
  border: 1px solid #25D366;
  color: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 0.78rem;
  text-decoration: none;
  margin-bottom: 2rem;
}

.viaore-single-whatsapp:hover {
  background: #25D366;
  color: #fff;
}

.viaore-single-trust {
  border-top: 1px solid var(--border-colour);
  padding-top: 1.5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.viaore-single-trust span {
  display: block;
  font-size: 1.2rem;
  margin-bottom: 0.45rem;
}

.viaore-single-trust p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.viaore-single-notes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 8vw, 10rem);
  padding: clamp(4rem, 8vw, 7rem) 0;
  border-top: 1px solid rgba(226,214,199,0.5);
  background: var(--bg-card);
}

.viaore-note-col .overline {
  color: var(--accent-gold);
  display: block;
  margin-bottom: 1.2rem;
}

.viaore-note-col p {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.45rem, 2vw, 2rem);
  line-height: 1.25;
  margin: 0.25rem 0;
}

.viaore-single-story {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--bg-secondary);
  text-align: center;
  padding: clamp(5rem, 9vw, 8rem) max(1.5rem, calc((100vw - 980px) / 2));
}

.viaore-single-story .overline {
  color: var(--text-muted);
  display: block;
  margin-bottom: 1.75rem;
}

.viaore-single-story blockquote {
  max-width: 980px;
  margin: 0 auto;
  font-family: 'Playfair Display', serif;
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 0.98;
  letter-spacing: -0.055em;
}

.viaore-single-details {
  padding: clamp(5rem, 8vw, 7rem) 0;
  max-width: 820px;
  margin: 0 auto;
}

.viaore-single-details h2 {
  text-align: center;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  margin-bottom: 3rem;
}

.viaore-single-accordions details {
  border: 0;
  border-bottom: 1px solid var(--border-colour);
  background: transparent;
  padding: 0;
}

.viaore-single-accordions summary {
  list-style: none;
  cursor: pointer;
  padding: 1.25rem 0;
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.viaore-single-accordions summary::-webkit-details-marker {
  display: none;
}

.viaore-single-accordions summary::after {
  content: '+';
  color: var(--text-muted);
}

.viaore-single-accordions details[open] summary::after {
  content: '−';
}

.viaore-single-accordions details > div {
  color: var(--text-secondary);
  line-height: 1.7;
  padding: 0 0 1.5rem;
}

@media (max-width: 900px) {
  .viaore-single-hero {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .viaore-single-image-frame {
    min-height: auto;
    padding: 2.5rem;
  }

  .viaore-single-summary .product_title {
    font-size: clamp(3.5rem, 14vw, 5.5rem);
  }

  .viaore-single-notes {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

@media (max-width: 640px) {
  .viaore-back-to-shop {
    margin-top: 1.25rem;
  }

  .viaore-single-hero {
    padding-bottom: 4rem;
  }

  .viaore-single-cart-form form.cart {
    grid-template-columns: 1fr;
  }

  .viaore-single-trust {
    grid-template-columns: 1fr;
  }

  .viaore-single-story blockquote {
    font-size: clamp(2.4rem, 12vw, 3.8rem);
  }

  .viaore-single-details {
    padding-left: 0;
    padding-right: 0;
  }
}



/* --------------------------------------------------
   Single product mobile/default template hardening - v26
   This template is the default WooCommerce product page for all products.
--------------------------------------------------- */

/* Prevent any product template overflow */
.viaore-single-product-page,
.viaore-single-product-page * {
  box-sizing: border-box;
}

.viaore-single-product-page img {
  max-width: 100%;
  height: auto;
}

/* More stable desktop image area for different image ratios */
.viaore-single-image-frame {
  overflow: hidden;
}

.viaore-single-image-frame img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

/* Better support for variable products */
.viaore-single-cart-form .variations_form {
  display: block;
}

.viaore-single-cart-form table.variations {
  width: 100%;
  margin-bottom: 1.25rem;
  border: 0;
}

.viaore-single-cart-form table.variations th,
.viaore-single-cart-form table.variations td {
  display: block;
  padding: 0.35rem 0;
  border: 0;
}

.viaore-single-cart-form table.variations label {
  font-family: 'Manrope', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 0.72rem;
  color: var(--text-muted);
}

.viaore-single-cart-form table.variations select {
  width: 100%;
  border: 1px solid var(--border-colour);
  background: transparent;
  padding: 0.85rem 1rem;
  font-family: 'Manrope', sans-serif;
}

.viaore-single-cart-form .reset_variations {
  display: inline-block;
  margin-top: 0.5rem;
  color: var(--accent-gold);
  font-size: 0.8rem;
}

/* Stock and notices */
.viaore-single-summary .stock {
  color: var(--text-muted);
  font-size: 0.9rem;
  margin: 0.5rem 0 1rem;
}

.viaore-single-summary .stock.in-stock {
  color: var(--accent-gold);
}

.viaore-single-summary .woocommerce-variation-price {
  margin-bottom: 1rem;
}

/* Mobile/tablet layout refinements */
@media (max-width: 1024px) {
  .viaore-single-hero {
    gap: 3rem;
  }

  .viaore-single-image-frame {
    min-height: 520px;
  }
}

@media (max-width: 900px) {
  .viaore-single-product-page .container {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .viaore-back-to-shop {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .viaore-single-hero {
    grid-template-columns: 1fr;
    padding-bottom: 3.5rem;
  }

  .viaore-single-gallery {
    order: 1;
  }

  .viaore-single-summary {
    order: 2;
    max-width: 100%;
  }

  .viaore-single-image-frame {
    min-height: auto;
    aspect-ratio: 1 / 1.05;
    padding: clamp(2rem, 8vw, 4rem);
  }

  .viaore-single-image-frame img {
    max-height: 78vw;
  }

  .viaore-single-summary .product_title {
    font-size: clamp(3.5rem, 15vw, 6rem);
    line-height: 0.92;
  }

  .viaore-single-tagline {
    font-size: clamp(1.35rem, 6vw, 2rem);
  }

  .viaore-single-description {
    font-size: 1rem;
    line-height: 1.65;
  }

  .viaore-single-price-row {
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
  }

  .viaore-single-price-row .price {
    font-size: clamp(2rem, 8vw, 2.8rem);
  }

  .viaore-single-cart-form form.cart {
    grid-template-columns: 150px 1fr;
  }

  .viaore-single-notes {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .viaore-note-col p {
    font-size: clamp(1.6rem, 6vw, 2.4rem);
  }

  .viaore-single-story {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }
}

@media (max-width: 640px) {
  .viaore-single-product-page .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .viaore-back-to-shop {
    font-size: 0.9rem;
  }

  .viaore-single-image-frame {
    aspect-ratio: 1 / 1.08;
    padding: 1.5rem;
  }

  .viaore-single-summary .overline {
    font-size: 0.68rem;
    letter-spacing: 0.22em;
  }

  .viaore-single-summary .product_title {
    font-size: clamp(3.2rem, 17vw, 4.8rem);
    margin-bottom: 0.8rem;
  }

  .viaore-single-tagline {
    margin-bottom: 1.4rem;
  }

  .viaore-single-description {
    margin-bottom: 1.5rem;
  }

  .viaore-single-price-row {
    margin-bottom: 1.25rem;
  }

  .viaore-single-cart-form form.cart {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .viaore-single-cart-form .quantity {
    width: 100%;
  }

  .viaore-single-cart-form .single_add_to_cart_button,
  .viaore-single-whatsapp {
    width: 100%;
  }

  .viaore-single-trust {
    grid-template-columns: 1fr;
    gap: 0.85rem;
    padding-top: 1.25rem;
  }

  .viaore-single-trust div {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }

  .viaore-single-trust span {
    margin-bottom: 0;
    min-width: 26px;
  }

  .viaore-single-notes {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .viaore-note-col .overline {
    font-size: 0.68rem;
  }

  .viaore-note-col p {
    font-size: clamp(1.55rem, 8vw, 2.2rem);
  }

  .viaore-single-story {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .viaore-single-story blockquote {
    font-size: clamp(2.2rem, 11vw, 3.6rem);
    line-height: 1;
  }

  .viaore-single-details {
    padding-top: 4rem;
    padding-bottom: 5rem;
  }

  .viaore-single-details h2 {
    margin-bottom: 2rem;
  }

  .viaore-single-accordions summary {
    font-size: 1.1rem;
    padding: 1.1rem 0;
  }
}

@media (max-width: 420px) {
  .viaore-single-summary .product_title {
    font-size: clamp(2.9rem, 17vw, 4.2rem);
  }

  .viaore-single-tagline {
    font-size: 1.25rem;
  }

  .viaore-single-price-row .price {
    font-size: 2rem;
  }

  .viaore-single-story blockquote {
    font-size: clamp(2rem, 10.5vw, 3rem);
  }
}



/* --------------------------------------------------
   Product breadcrumbs + editable font sizes - v27
--------------------------------------------------- */
.viaore-product-breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.55rem;
  padding-top: 1.5rem;
  margin-bottom: 0.75rem;
  color: var(--text-muted);
  font-family: 'Manrope', sans-serif;
  font-size: 0.82rem;
}

.viaore-product-breadcrumbs a {
  color: var(--text-muted);
  text-decoration: none;
}

.viaore-product-breadcrumbs a:hover {
  color: var(--accent-gold);
}

.viaore-product-breadcrumbs span:last-child {
  color: var(--text-secondary);
}

.viaore-single-summary .product_title {
  font-size: clamp(3.8rem, 8vw, var(--viaore-single-title-max, 108px));
}

.viaore-single-tagline {
  font-size: clamp(1.25rem, 2.2vw, var(--viaore-single-tagline-max, 30px));
}

.viaore-note-col p {
  font-size: clamp(1.35rem, 2vw, var(--viaore-single-notes-max, 30px));
}

.viaore-single-story blockquote {
  font-size: clamp(2.3rem, 5vw, var(--viaore-single-story-max, 72px));
}

/* Slightly cleaner product typography overall */
.viaore-single-description {
  max-width: 620px;
}

.viaore-single-summary .overline,
.viaore-product-breadcrumbs {
  letter-spacing: 0.14em;
}

@media (max-width: 900px) {
  .viaore-product-breadcrumbs {
    padding-top: 1rem;
    margin-bottom: 0.25rem;
    font-size: 0.78rem;
    gap: 0.42rem;
  }

  .viaore-single-summary .product_title {
    font-size: clamp(3.4rem, 14vw, 5.4rem);
  }
}

@media (max-width: 520px) {
  .viaore-product-breadcrumbs {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
  }

  .viaore-single-summary .product_title {
    font-size: clamp(3rem, 16vw, 4.5rem);
  }
}



/* --------------------------------------------------
   Cart / Checkout / Account page fixes - v28
   Reason: without page.php/page-cart.php/page-checkout.php, WordPress pages
   can fall back to index.php and not render WooCommerce shortcodes correctly.
--------------------------------------------------- */
.viaore-default-page,
.viaore-cart-checkout-page {
  background: var(--bg-primary);
  padding: clamp(4rem, 7vw, 7rem) 0 clamp(5rem, 8vw, 8rem);
}

.viaore-page-header,
.viaore-cart-checkout-header {
  max-width: 820px;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.viaore-page-header .overline,
.viaore-cart-checkout-header .overline {
  color: var(--accent-gold);
  display: block;
  margin-bottom: 1rem;
}

.viaore-page-header h1,
.viaore-cart-checkout-header h1 {
  font-size: clamp(3.3rem, 7vw, 7rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
  margin: 0 0 1.25rem;
}

.viaore-cart-checkout-header p {
  max-width: 680px;
  color: var(--text-secondary);
  font-size: 1.05rem;
  line-height: 1.7;
}

.viaore-cart-checkout-card {
  background: var(--bg-card);
  border: 1px solid var(--border-colour);
  padding: clamp(1.25rem, 3vw, 3rem);
}

.viaore-cart-checkout-card .woocommerce {
  width: 100%;
}

.woocommerce-cart-form table.shop_table,
.woocommerce-checkout-review-order table.shop_table,
.woocommerce table.shop_table {
  border: 1px solid var(--border-colour) !important;
  border-radius: 0 !important;
  background: var(--bg-card);
}

.woocommerce table.shop_table th {
  font-family: 'Manrope', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 0.72rem;
  color: var(--text-muted);
  font-weight: 500;
}

.woocommerce table.shop_table td {
  color: var(--text-secondary);
}

.woocommerce-cart table.cart img {
  width: 86px;
  height: 86px;
  object-fit: cover;
  background: var(--bg-secondary);
}

.woocommerce-cart table.cart td.product-name a,
.woocommerce-checkout-review-order-table .product-name {
  color: var(--text-primary);
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem;
  text-decoration: none;
}

.woocommerce .quantity .qty {
  border: 1px solid var(--border-colour);
  background: transparent;
  min-height: 42px;
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout #customer_details {
  background: var(--bg-secondary);
  border: 1px solid var(--border-colour);
  padding: clamp(1.25rem, 2.5vw, 2rem);
}

.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  letter-spacing: -0.035em;
  margin-bottom: 1.25rem;
}

.woocommerce form .form-row label {
  color: var(--text-secondary);
  font-size: 0.9rem;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  border: 1px solid var(--border-colour);
  border-radius: 0;
  background: var(--bg-card);
  min-height: 48px;
  padding: 0.8rem 1rem;
  color: var(--text-primary);
}

.woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 46px;
  padding-left: 0;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
  height: 46px;
}

.woocommerce-checkout-payment {
  background: var(--bg-card) !important;
  border-radius: 0 !important;
  border: 1px solid var(--border-colour);
}

.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button {
  background: var(--bg-dark) !important;
  color: var(--text-inverse) !important;
  border-radius: 0 !important;
  border: 1px solid var(--bg-dark) !important;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 0.78rem;
  font-weight: 500;
  padding: 1rem 1.35rem !important;
}

.woocommerce #payment #place_order:hover,
.woocommerce-page #payment #place_order:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover {
  background: var(--accent-gold) !important;
  border-color: var(--accent-gold) !important;
  color: var(--text-primary) !important;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
  border-top-color: var(--accent-gold) !important;
  background: var(--bg-secondary);
  color: var(--text-secondary);
}

.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
  color: var(--accent-gold) !important;
}

/* Cart drawer checkout buttons */
.viaore-cart-panel-body .woocommerce-mini-cart__buttons .button.checkout {
  background: var(--accent-gold) !important;
  border-color: var(--accent-gold) !important;
  color: var(--text-primary) !important;
}

@media (max-width: 768px) {
  .viaore-cart-checkout-card {
    padding: 1rem;
  }

  .woocommerce table.shop_table_responsive tr,
  .woocommerce-page table.shop_table_responsive tr {
    border-bottom: 1px solid var(--border-colour);
  }

  .woocommerce-cart table.cart img {
    width: 72px;
    height: 72px;
  }

  .woocommerce-cart .cart-collaterals .cart_totals,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #customer_details {
    padding: 1rem;
  }

  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last {
    width: 100% !important;
    float: none !important;
  }

  .woocommerce #payment #place_order,
  .woocommerce-page #payment #place_order,
  .woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    width: 100%;
    text-align: center;
  }
}



/* --------------------------------------------------
   Reference-style Your Bag drawer + Almost yours checkout - v29
--------------------------------------------------- */
.viaore-cart-panel {
  width: min(470px, 96vw);
  background: var(--bg-primary);
}

.viaore-cart-panel-header {
  padding: 1.4rem 1.4rem 1.2rem;
  min-height: 104px;
}

.viaore-cart-panel-header h3 {
  font-size: 1.85rem;
  line-height: 1;
  margin: 0 0 0.35rem;
}

.viaore-cart-panel-header .overline {
  color: var(--text-muted);
  letter-spacing: 0.38em;
}

.viaore-cart-close {
  width: 28px;
  height: 28px;
  border: 1px solid var(--accent-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  color: var(--text-secondary);
}

.viaore-cart-panel-body {
  padding: 0;
  display: flex;
  flex-direction: column;
}

.viaore-mini-cart-items {
  padding: 1.6rem 1.4rem;
  flex: 1;
  min-height: 52vh;
}

.viaore-mini-cart-item {
  display: grid;
  grid-template-columns: 86px 1fr auto;
  gap: 1rem;
  margin-bottom: 2rem;
  transition: opacity 0.25s ease;
}

.viaore-mini-cart-item.is-updating {
  opacity: 0.45;
  pointer-events: none;
}

.viaore-mini-thumb img {
  width: 86px;
  height: 96px;
  object-fit: cover;
  background: var(--bg-secondary);
}

.viaore-mini-info h4 {
  font-size: 1.28rem;
  line-height: 1.1;
  margin: 0 0 0.25rem;
}

.viaore-mini-info h4 a {
  color: var(--text-primary);
  text-decoration: none;
}

.viaore-mini-info p {
  color: var(--text-muted);
  font-size: 0.82rem;
  margin: 0 0 1rem;
}

.viaore-mini-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border-colour);
  height: 32px;
}

.viaore-mini-qty button {
  width: 34px;
  height: 30px;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 1rem;
  color: var(--text-secondary);
}

.viaore-mini-qty span {
  min-width: 32px;
  text-align: center;
  color: var(--text-secondary);
}

.viaore-mini-side {
  text-align: right;
  min-width: 72px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.viaore-mini-remove {
  color: var(--text-muted) !important;
  text-decoration: none;
  font-size: 1.25rem;
  line-height: 1;
  margin-left: auto;
}

.viaore-mini-side strong {
  font-weight: 400;
  color: var(--text-secondary);
  font-size: 0.98rem;
}

.viaore-mini-cart-footer {
  margin-top: auto;
  border-top: 1px solid var(--border-colour);
  padding: 1.6rem 1.4rem 1.4rem;
}

.viaore-mini-subtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 0.9rem;
}

.viaore-mini-subtotal span {
  text-transform: uppercase;
  letter-spacing: 0.26em;
  font-size: 0.75rem;
  border-top: 1px solid var(--text-primary);
  padding-top: 0.35rem;
}

.viaore-mini-subtotal strong {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  line-height: 1;
  font-weight: 500;
}

.viaore-mini-cart-footer p {
  color: var(--text-muted);
  font-size: 0.84rem;
  margin-bottom: 1rem;
}

.viaore-mini-checkout,
.viaore-mini-whatsapp {
  width: 100%;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.82rem;
}

.viaore-mini-checkout {
  background: var(--bg-dark);
  color: var(--text-inverse);
  margin-bottom: 0.9rem;
}

.viaore-mini-whatsapp {
  border: 1px solid #25D366;
  color: #25D366;
  background: transparent;
}

.viaore-mini-empty {
  padding: 2rem 1.4rem;
}

/* Checkout reference layout */
.viaore-checkout-hero {
  background: var(--bg-secondary);
  padding: 1.2rem 0 clamp(3rem, 6vw, 5rem);
}

.viaore-checkout-back {
  display: inline-block;
  color: var(--text-muted);
  text-decoration: none;
  font-size: 0.86rem;
  margin-bottom: 2.8rem;
}

.viaore-checkout-hero .overline {
  color: var(--text-muted);
  display: block;
  margin-bottom: 1rem;
}

.viaore-checkout-hero h1 {
  font-size: clamp(4rem, 8vw, 7.5rem);
  line-height: 0.9;
  letter-spacing: -0.065em;
  margin: 0;
}

.viaore-checkout-page {
  background: var(--bg-primary);
  padding: clamp(3rem, 6vw, 5rem) 0 0;
}

.viaore-checkout-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.58fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: start;
}

.viaore-checkout-panel {
  margin-bottom: 2.4rem;
}

.viaore-checkout-panel h2 {
  font-size: clamp(1.65rem, 2.5vw, 2.35rem);
  margin-bottom: 1.4rem;
}

.viaore-checkout-two-col,
.viaore-checkout-address-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.7rem 1.5rem;
}

.viaore-checkout-address-fields #billing_address_1_field,
.viaore-checkout-address-fields #billing_address_2_field,
.viaore-notes-panel .form-row,
.viaore-checkout-address-fields #billing_company_field {
  grid-column: 1 / -1;
}

.viaore-checkout-form .form-row {
  margin: 0 !important;
  padding: 0 !important;
}

.viaore-checkout-form label {
  display: block;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.24em;
  font-size: 0.62rem;
  margin-bottom: 0.35rem;
}

.viaore-checkout-form .input-text,
.viaore-checkout-form select,
.viaore-checkout-form textarea,
.viaore-checkout-form .select2-container .select2-selection--single {
  width: 100%;
  border: 0 !important;
  border-bottom: 1px solid var(--border-colour) !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0.8rem 0 !important;
  min-height: 48px;
  box-shadow: none !important;
}

.viaore-checkout-form textarea {
  min-height: 90px;
}

.viaore-checkout-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 1rem;
  align-items: start;
  margin-top: 2rem;
  margin-bottom: 4rem;
}

.viaore-checkout-actions #payment {
  background: transparent !important;
  border: 0 !important;
}

.viaore-checkout-actions #payment ul.payment_methods {
  border: 0 !important;
  padding: 0 !important;
  margin-bottom: 1rem !important;
}

.viaore-checkout-actions #payment div.form-row {
  padding: 0 !important;
}

.viaore-checkout-actions #place_order {
  width: 100%;
  height: 56px;
}

.viaore-checkout-whatsapp {
  height: 56px;
  border: 1px solid #25D366;
  color: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
}

.viaore-checkout-summary-inner {
  background: var(--bg-secondary);
  padding: clamp(1.5rem, 3vw, 2rem);
  position: sticky;
  top: 120px;
}

.viaore-summary-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
}

.viaore-summary-heading .overline {
  color: var(--text-muted);
}

.viaore-summary-heading a {
  color: var(--accent-gold);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.7rem;
  text-decoration: none;
}

.viaore-checkout-summary table.shop_table {
  border: 0 !important;
  background: transparent !important;
  margin-bottom: 1.2rem !important;
}

.viaore-checkout-summary table.shop_table th,
.viaore-checkout-summary table.shop_table td {
  border-color: var(--border-colour) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.viaore-checkout-summary .cart_item .product-name {
  font-family: 'Playfair Display', serif;
  color: var(--text-primary);
}

.viaore-checkout-summary .order-total th,
.viaore-checkout-summary .order-total td {
  padding-top: 1.2rem !important;
}

.viaore-checkout-summary .order-total .amount {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  font-weight: 500;
  color: var(--text-primary);
}

.viaore-checkout-trust {
  border-top: 1px solid var(--border-colour);
  padding-top: 1.2rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: var(--text-muted);
  font-size: 0.72rem;
}

@media (max-width: 980px) {
  .viaore-checkout-grid {
    grid-template-columns: 1fr;
  }

  .viaore-checkout-summary {
    order: -1;
  }

  .viaore-checkout-summary-inner {
    position: static;
  }
}

@media (max-width: 640px) {
  .viaore-mini-cart-item {
    grid-template-columns: 74px 1fr auto;
    gap: 0.8rem;
  }

  .viaore-mini-thumb img {
    width: 74px;
    height: 84px;
  }

  .viaore-checkout-two-col,
  .viaore-checkout-address-fields,
  .viaore-checkout-actions {
    grid-template-columns: 1fr;
  }

  .viaore-checkout-hero h1 {
    font-size: clamp(3.4rem, 16vw, 5rem);
  }
}



/* --------------------------------------------------
   Final polish: smoothness, scroll-to-top, plugin-safe UX - v31
--------------------------------------------------- */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body.viaore-smooth-scroll-enabled {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.viaore-scroll-top {
  position: fixed;
  right: 24px;
  bottom: 96px;
  width: 46px;
  height: 46px;
  border: 1px solid var(--accent-gold);
  background: var(--bg-primary);
  color: var(--text-primary);
  z-index: 99998;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Manrope', sans-serif;
  font-size: 1.1rem;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease, background 0.25s ease;
  box-shadow: 0 18px 40px rgba(26, 23, 21, 0.08);
}

.viaore-scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.viaore-scroll-top:hover {
  background: var(--accent-gold);
  color: var(--text-primary);
}

body.viaore-scroll-top-disabled .viaore-scroll-top {
  display: none !important;
}

/* Keep scroll-to-top away from WhatsApp on mobile */
@media (max-width: 640px) {
  .viaore-scroll-top {
    right: 16px;
    bottom: 82px;
    width: 42px;
    height: 42px;
  }
}

/* Smoother section reveals without heavy animation */
.animate-on-scroll {
  will-change: opacity, transform;
}

/* Avoid animation problems for accessibility */
@media (prefers-reduced-motion: reduce) {
  .animate-on-scroll,
  .product-section,
  .testimonial-letter,
  .journal-card,
  .why-viaore-item {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Improve anchor jump position under sticky header */
section,
[id] {
  scroll-margin-top: 110px;
}

/* Plugin embeds should not break layout */
.entry-content iframe,
.entry-content embed,
.entry-content object,
.wp-block-embed iframe {
  max-width: 100%;
}

/* Analytics/SEO plugins sometimes inject hidden iframes; prevent layout shift */
iframe[height="0"],
iframe[style*="display: none"] {
  margin: 0 !important;
}

