/*
Theme Name: Aura Collective
Theme URI: http://localhost:8080
Author: Aura Collective
Description: A bespoke, fluid e-commerce theme for Aura Collective — handpicked South Indian temple jewellery. Lotus motifs, antique-gold serif typography and an ivory canvas, built on WooCommerce.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: aura-collective
WC requires at least: 8.0
WC tested up to: 10.8
*/

/* ═══════════════════════════════════════════════
   AURA COLLECTIVE — theme styles
   Palette pulled from the brand logo:
   ivory canvas, deep olive ink, antique gold,
   kemp red & temple green accents.
═══════════════════════════════════════════════ */

:root {
  --ivory: #f3f0e6;
  --ivory-2: #ebe7d9;
  --ivory-3: #e3deca;
  --ink: #3a3422;
  --ink-soft: #5c553d;
  --gold: #a8893c;
  --gold-soft: #c4a96a;
  --kemp: #8e2a30;
  --temple: #2f5d3a;
  --pearl: #faf7ee;
  --shadow: 0 24px 60px -28px rgba(58, 52, 34, 0.35);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --serif: "Italiana", serif;
  --serif-2: "Cormorant Garamond", serif;
  --sans: "Jost", sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 300;
  overflow-x: hidden;
  background-image:
    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(196, 169, 106, 0.12), transparent 60%),
    repeating-linear-gradient(45deg, rgba(58, 52, 34, 0.012) 0 2px, transparent 2px 4px);
}
a { color: inherit; }
img { max-width: 100%; height: auto; }
::selection { background: var(--gold-soft); color: var(--pearl); }

@media (pointer: fine) {
  body { cursor: none; }
  a, button { cursor: none; }
}

.aura-container { max-width: 90rem; margin: 0 auto; padding-inline: clamp(1.2rem, 4vw, 4rem); }

/* ══════════ CURSOR ══════════ */
.cursor-dot, .cursor-ring {
  position: fixed; top: 0; left: 0; pointer-events: none; z-index: 99;
  border-radius: 50%; translate: -50% -50%; display: none;
}
@media (pointer: fine) { .cursor-dot, .cursor-ring { display: block; } }
.cursor-dot { width: 6px; height: 6px; background: var(--ink); }
.cursor-ring {
  width: 34px; height: 34px; border: 1px solid var(--gold);
  transition: width 0.3s var(--ease-out), height 0.3s var(--ease-out), border-color 0.3s, background-color 0.3s;
}
.cursor-ring.hovering { width: 56px; height: 56px; border-color: var(--gold-soft); background: rgba(196, 169, 106, 0.12); }

/* ══════════ NAV ══════════ */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.1rem clamp(1.2rem, 4vw, 3rem);
  transition: background 0.5s, box-shadow 0.5s, padding 0.5s;
}
.nav.scrolled {
  background: rgba(243, 240, 230, 0.82);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(58, 52, 34, 0.08); padding-block: 0.7rem;
}
.nav-brand { display: flex; align-items: center; gap: 0.6rem; text-decoration: none; color: var(--ink); font-family: var(--serif); font-size: 1.25rem; letter-spacing: 0.18em; }
.nav-brand em { font-family: var(--sans); font-style: normal; font-weight: 300; font-size: 0.6rem; letter-spacing: 0.4em; margin-left: 0.5rem; color: var(--ink-soft); text-transform: uppercase; }
.nav-lotus { width: auto; height: 30px; display: block; }
.nav-links { display: flex; gap: clamp(1rem, 3vw, 2.4rem); list-style: none; margin: 0; padding: 0; }
.nav-links a {
  position: relative; text-decoration: none; color: var(--ink-soft);
  font-size: 0.78rem; letter-spacing: 0.22em; text-transform: uppercase; padding: 0.3rem 0; transition: color 0.3s;
}
.nav-links a::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: right; transition: transform 0.45s var(--ease-out); }
.nav-links a:hover, .nav-links li.current-menu-item > a { color: var(--ink); }
.nav-links a:hover::after, .nav-links li.current-menu-item > a::after { transform: scaleX(1); transform-origin: left; }
.nav-right { display: flex; align-items: center; gap: 1.2rem; }
.nav-ig, .nav-cart, .nav-account, .nav-wish { color: var(--ink); display: grid; place-items: center; text-decoration: none; position: relative; }
.nav-ig svg, .nav-cart svg, .nav-account svg, .nav-wish svg { width: 21px; height: 21px; transition: transform 0.4s var(--ease-out); }
.nav-ig:hover svg, .nav-cart:hover svg { transform: rotate(8deg) scale(1.12); }
.nav-account:hover svg, .nav-wish:hover svg { transform: scale(1.12); }
.nav-wish:hover svg { stroke: var(--kemp); }
.cart-count {
  position: absolute; top: -8px; right: -10px; min-width: 17px; height: 17px; padding: 0 4px;
  background: var(--kemp); color: var(--pearl); border-radius: 999px;
  font-size: 0.6rem; line-height: 17px; text-align: center; font-weight: 400;
}
.wishlist-count {
  position: absolute; top: -8px; right: -10px; min-width: 17px; height: 17px; padding: 0 4px;
  background: var(--kemp); color: var(--pearl); border-radius: 999px;
  font-size: 0.6rem; line-height: 17px; text-align: center; font-weight: 400;
}
.cart-count:empty, .cart-count[data-count="0"],
.wishlist-count:empty, .wishlist-count[data-count="0"] { display: none; }
/* hamburger + mobile menu (hidden on desktop) */
.nav-toggle { display: none; }
.mobile-menu { display: none; }

@media (max-width: 680px) {
  .nav-links { display: none; }
  /* fold the secondary icons into the menu; keep cart + hamburger in the bar */
  .nav-ig, .nav-wish, .nav-account { display: none; }
  .nav-right { gap: 0.3rem; }
  .nav-cart { padding: 9px; }
  .nav-toggle {
    display: grid; align-content: center; gap: 5px;
    width: 44px; height: 44px; padding: 11px 10px;
    background: none; border: 0; cursor: pointer; color: var(--ink);
  }
  .nav-toggle span { display: block; width: 24px; height: 2px; background: currentColor; border-radius: 2px; transition: transform 0.35s var(--ease-out), opacity 0.2s; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .mobile-menu {
    display: block; position: fixed; top: 0; left: 0; right: 0; z-index: 40;
    padding: 5.5rem 1.6rem 2.2rem;
    background: rgba(243, 240, 230, 0.98); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(58, 52, 34, 0.12); box-shadow: var(--shadow);
    transform: translateY(-100%); transition: transform 0.45s var(--ease-out); visibility: hidden;
  }
  .mobile-menu.open { transform: translateY(0); visibility: visible; }
  body.menu-open { overflow: hidden; }
  .mobile-links, .mobile-menu-extra { list-style: none; margin: 0; padding: 0; }
  .mobile-links a {
    display: block; padding: 1.05rem 0.3rem; text-decoration: none; color: var(--ink);
    font-family: var(--serif); font-weight: 400; font-size: 1.7rem; letter-spacing: 0.05em;
    border-bottom: 1px solid rgba(58, 52, 34, 0.1);
  }
  .mobile-menu-extra { display: flex; flex-wrap: wrap; gap: 0.2rem 1.8rem; margin-top: 1.4rem; }
  .mobile-menu-extra a { text-decoration: none; color: var(--ink-soft); font-size: 0.78rem; letter-spacing: 0.2em; text-transform: uppercase; padding: 0.5rem 0; }
  .mobile-menu-extra a:active { color: var(--kemp); }
}

/* ══════════ HERO ══════════ */
.hero { min-height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; position: relative; padding: 6rem 1.5rem 4rem; }
.hero-lotus { width: clamp(120px, 16vw, 190px); color: var(--ink); margin-bottom: 0.5rem; }
/* real logo lockup as hero centrepiece — multiply melts the cream PNG bg into the page */
.hero-logo-wrap { margin: 0; line-height: 0; animation: logoFloat 7s ease-in-out 2.6s infinite; }
.hero-logo {
  display: block; width: clamp(260px, 46vw, 540px); margin: 0 auto;
  opacity: 0; will-change: opacity, clip-path, filter, transform;
  animation: logoReveal 2.1s 0.3s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.hero-logo svg { display: block; width: 100%; height: auto; }
/* sleek top-to-bottom reveal with a soft blur-in, then a gentle settle */
@keyframes logoReveal {
  0%   { opacity: 0; clip-path: inset(0 0 100% 0); filter: blur(8px); transform: translateY(12px) scale(1.025); }
  55%  { opacity: 1; }
  100% { opacity: 1; clip-path: inset(0 0 0 0);   filter: blur(0);   transform: none; }
}
@keyframes logoFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
.hero-title { font-family: var(--serif); font-weight: 400; font-size: clamp(4.2rem, 16vw, 11rem); letter-spacing: 0.12em; text-indent: 0.12em; line-height: 0.95; display: flex; }
.hero-title span { display: inline-block; opacity: 0; transform: translateY(60px) rotate(4deg); animation: letterIn 1.1s var(--ease-out) forwards; }
.hero-title span:nth-child(1) { animation-delay: 0.2s; }
.hero-title span:nth-child(2) { animation-delay: 0.32s; }
.hero-title span:nth-child(3) { animation-delay: 0.44s; }
.hero-title span:nth-child(4) { animation-delay: 0.56s; }
@keyframes letterIn { to { opacity: 1; transform: none; } }
.hero-sub { font-size: clamp(0.7rem, 1.6vw, 0.95rem); font-weight: 300; letter-spacing: 0.9em; text-indent: 0.9em; color: var(--ink-soft); margin-top: 1.1rem; opacity: 0; animation: fadeUp 1.2s 0.9s var(--ease-out) forwards; }
.hero-tag { max-width: 34rem; margin-top: 2rem; font-family: var(--serif-2); font-style: italic; font-size: 1.15rem; color: var(--ink-soft); line-height: 1.7; opacity: 0; animation: fadeUp 1.2s 1.2s var(--ease-out) forwards; }
.hero-cta { margin-top: 2.8rem; display: inline-flex; align-items: center; gap: 0.8rem; text-decoration: none; color: var(--ink); font-size: 0.78rem; letter-spacing: 0.26em; text-transform: uppercase; border: 1px solid var(--gold); border-radius: 999px; padding: 1rem 2.2rem; transition: background 0.4s, color 0.4s, box-shadow 0.4s; opacity: 0; animation: fadeUp 1.2s 1.5s var(--ease-out) forwards; }
.hero-cta svg { width: 14px; height: 14px; animation: bob 2.2s ease-in-out infinite; }
.hero-cta:hover { background: var(--ink); color: var(--ivory); border-color: var(--ink); box-shadow: var(--shadow); }
@keyframes bob { 0%, 100% { transform: translateY(-2px); } 50% { transform: translateY(3px); } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.hero-petals { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.petal { position: absolute; width: 38px; color: var(--gold-soft); opacity: 0.4; animation: float 11s ease-in-out infinite; }
.petal.p1 { top: 18%; left: 12%; } .petal.p2 { top: 30%; right: 14%; width: 26px; animation-delay: -3s; }
.petal.p3 { bottom: 22%; left: 20%; width: 22px; animation-delay: -6s; } .petal.p4 { bottom: 30%; right: 22%; animation-delay: -8.5s; }
@keyframes float { 0%, 100% { transform: translateY(0) rotate(-8deg); } 50% { transform: translateY(-34px) rotate(10deg); } }

/* ══════════ MARQUEE ══════════ */
.marquee { border-block: 1px solid rgba(58, 52, 34, 0.14); padding: 1rem 0; overflow: hidden; background: var(--ivory-2); }
.marquee-track { display: flex; align-items: center; gap: 2.6rem; width: max-content; white-space: nowrap; animation: scroll 28s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track span { font-size: 0.82rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--ink-soft); }
.marquee-track i { color: var(--gold); font-style: normal; font-size: 0.7rem; }
@keyframes scroll { to { transform: translateX(-50%); } }

/* ══════════ SECTION HEADINGS ══════════ */
.eyebrow { font-size: 0.72rem; letter-spacing: 0.45em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.9rem; }
.section-head { text-align: center; padding-top: 5.5rem; }
.section-head h2, .story h2, .contact h2, .aura-shop-head h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(2.2rem, 5.5vw, 3.6rem); letter-spacing: 0.06em; }

/* ══════════ FILTERS ══════════ */
.filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; margin: 2.4rem auto 3rem; padding: 0 1.5rem; max-width: 60rem; }
.filter { font-family: var(--sans); font-weight: 300; font-size: 0.76rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); background: transparent; border: 1px solid rgba(58, 52, 34, 0.22); border-radius: 999px; padding: 0.62rem 1.4rem; transition: all 0.35s var(--ease-out); }
.filter:hover { border-color: var(--gold); color: var(--ink); transform: translateY(-2px); }
.filter.active { background: var(--ink); color: var(--ivory); border-color: var(--ink); box-shadow: 0 10px 24px -12px rgba(58, 52, 34, 0.5); }

/* ══════════ PRODUCT GRID & CARDS ══════════ */
.aura-grid, ul.products {
  display: grid; gap: clamp(1.2rem, 2.5vw, 2rem);
  grid-template-columns: repeat(auto-fill, minmax(min(270px, 100%), 1fr));
  padding: 0 clamp(1.2rem, 4vw, 4rem) 6rem; max-width: 90rem; margin: 0 auto; list-style: none;
}
.aura-card, ul.products li.product {
  position: relative; border-radius: 18px; overflow: hidden;
  background: linear-gradient(160deg, var(--pearl), var(--ivory-2));
  border: 1px solid rgba(58, 52, 34, 0.1);
  box-shadow: 0 10px 30px -18px rgba(58, 52, 34, 0.25);
  transform-style: preserve-3d; will-change: transform;
  transition: box-shadow 0.45s var(--ease-out), opacity 0.5s var(--ease-out), translate 0.5s var(--ease-out), scale 0.5s var(--ease-out);
  margin: 0;
}
/* hidden/entrance state kept on .aura-card alone so .shown (and .hide) can override it regardless of WooCommerce's higher-specificity ul.products li.product rules */
.aura-card { opacity: 0; translate: 0 36px; }
.aura-card.shown { opacity: 1; translate: 0 0; }
/* Neutralise WooCommerce's default float/width grid so our CSS grid controls layout */
.woocommerce ul.products li.product,
ul.products li.product.aura-card { width: auto !important; float: none !important; margin: 0 !important; clear: none !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none !important; }
/* WooCommerce core (.woocommerce ul.products) strips the theme grid's padding + centering, leaving cards flush to the viewport edge. Restore breathing room and the centered max-width on the shop + related-products grids. */
.woocommerce ul.products { padding-inline: clamp(1.2rem, 4vw, 4rem) !important; padding-bottom: 4rem; max-width: 90rem; margin-inline: auto !important; }
.aura-card.hide { opacity: 0; scale: 0.92; pointer-events: none; position: absolute !important; visibility: hidden; }
.aura-card:hover { box-shadow: var(--shadow); }
.aura-card a.aura-card-link { text-decoration: none; color: inherit; display: block; }

.aura-art { position: relative; aspect-ratio: 4 / 4.6; display: grid; place-items: center; }
.aura-art svg, .aura-art img { width: 100%; height: 100%; object-fit: cover; }

.aura-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 38%, rgba(255, 252, 240, 0.5) 50%, transparent 62%); transform: translateX(-120%); transition: transform 0.9s var(--ease-out); }
.aura-card:hover::after { transform: translateX(120%); }

.aura-card-meta { display: flex; align-items: flex-end; justify-content: space-between; padding: 1.1rem 1.3rem 1.3rem; gap: 0.6rem; border-top: 1px solid rgba(58, 52, 34, 0.08); }
.aura-card-name { font-family: var(--serif-2); font-weight: 500; font-size: 1.18rem; letter-spacing: 0.03em; line-height: 1.25; }
.aura-card-code { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); margin-top: 0.3rem; }
.aura-card-price, .aura-card .price { font-family: var(--serif-2); font-size: 1.1rem; color: var(--ink-soft); white-space: nowrap; }
.aura-card .price del { opacity: 0.5; margin-right: 0.3rem; }
.aura-card-badge { position: absolute; top: 0.9rem; left: 0.9rem; z-index: 2; font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; background: rgba(250, 247, 238, 0.85); backdrop-filter: blur(6px); border: 1px solid rgba(168, 137, 60, 0.35); border-radius: 999px; color: var(--ink-soft); padding: 0.32rem 0.75rem; }

/* add-to-cart on card */
.aura-card .add-to-cart-row { padding: 0 1.3rem 1.3rem; }
.aura-card a.button, .aura-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; width: 100%;
  background: var(--ink); color: var(--ivory); text-decoration: none;
  font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase;
  border: none; border-radius: 999px; padding: 0.85rem 1.4rem; cursor: pointer;
  transition: background 0.35s, transform 0.35s var(--ease-out), box-shadow 0.35s;
}
.aura-card a.button:hover, .aura-btn:hover { background: var(--kemp); transform: translateY(-2px); box-shadow: var(--shadow); }
.aura-card a.added { display: none; }
.aura-card a.loading { opacity: 0.7; }

/* ══════════ SHOP HEAD ══════════ */
.aura-shop-head { text-align: center; padding-top: clamp(7rem, 12vw, 9rem); }
.aura-shop-head .woocommerce-result-count { font-size: 0.72rem; letter-spacing: 0.16em; color: var(--ink-soft); margin-top: 0.6rem; }
.woocommerce-ordering, .woocommerce-result-count { display: none; }

/* ══════════ WISHLIST ══════════ */
.aura-wish-btn {
  position: absolute; top: 0.8rem; right: 0.8rem; z-index: 4;
  width: 38px; height: 38px; display: grid; place-items: center;
  border-radius: 50%; border: 1px solid rgba(58, 52, 34, 0.15);
  background: rgba(250, 247, 238, 0.85); backdrop-filter: blur(6px);
  color: var(--ink-soft); cursor: pointer;
  transition: color 0.3s, transform 0.3s var(--ease-out), border-color 0.3s;
}
.aura-wish-btn svg { width: 19px; height: 19px; transition: fill 0.3s, transform 0.3s; }
.aura-wish-btn:hover { color: var(--kemp); border-color: var(--kemp); transform: scale(1.08); }
.aura-wish-btn.active { color: var(--kemp); border-color: rgba(142, 42, 48, 0.4); }
.aura-wish-btn.active svg { fill: var(--kemp); }
.aura-wish-btn.just-added { animation: wishPop 0.45s var(--ease-out); }
@keyframes wishPop { 0% { transform: scale(1); } 45% { transform: scale(1.32); } 100% { transform: scale(1); } }

/* text variant on the single product page */
.aura-wish-btn--text {
  position: static; width: auto; height: auto; border-radius: 999px;
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.85rem 1.6rem; margin-top: 0.9rem;
  font-family: var(--sans); font-size: 0.74rem; letter-spacing: 0.2em; text-transform: uppercase;
  background: transparent; color: var(--ink);
}
.aura-wish-btn--text .aura-wish-saved { display: none; }
.aura-wish-btn--text.active .aura-wish-add { display: none; }
.aura-wish-btn--text.active .aura-wish-saved { display: inline; }
.aura-wish-btn--text.active { color: var(--kemp); border-color: var(--kemp); }

/* wishlist page */
#aura-wishlist-page { padding-top: clamp(1rem, 3vw, 2rem); }
.aura-wish-empty, .aura-wish-loading { text-align: center; color: var(--ink-soft); font-family: var(--serif-2); font-size: 1.15rem; padding: 3rem 1rem 5rem; max-width: 30rem; margin: 0 auto; line-height: 1.7; }
.aura-sale-badge { background: var(--kemp) !important; color: var(--pearl) !important; border-color: var(--kemp) !important; }

/* ══════════ CATEGORY TILES (home) ══════════ */
.aura-cat-card { display: block; text-decoration: none; color: inherit; }
.aura-cat-card .aura-card-name { transition: color 0.3s; }
.aura-cat-card:hover .aura-card-name { color: var(--kemp); }
.aura-cat-arrow svg { width: 22px; height: 22px; color: var(--gold); transition: transform 0.4s var(--ease-out); display: block; }
.aura-cat-card:hover .aura-cat-arrow svg { transform: translateX(6px); }

/* ══════════ STORY ══════════ */
.story { position: relative; overflow: hidden; background: var(--ink); color: var(--ivory); padding: clamp(5rem, 12vw, 9rem) clamp(1.5rem, 6vw, 5rem); margin-top: 2rem; }
.story .eyebrow { color: var(--gold-soft); }
.story-lotus { position: absolute; right: -6%; top: 50%; width: clamp(280px, 38vw, 560px); color: var(--gold-soft); opacity: 0.14; }
.story-inner { max-width: 42rem; position: relative; }
.story h2 em { font-style: italic; font-family: var(--serif-2); color: var(--gold-soft); }
.story-inner > p { margin-top: 1.6rem; font-size: 1.05rem; line-height: 1.9; color: rgba(243, 240, 230, 0.78); }
.story-stats { display: flex; gap: clamp(2rem, 6vw, 4.5rem); margin-top: 3rem; flex-wrap: wrap; }
.story-stats strong { display: block; font-family: var(--serif); font-weight: 400; font-size: 2.6rem; color: var(--gold-soft); }
.story-stats span { font-size: 0.72rem; letter-spacing: 0.26em; text-transform: uppercase; color: rgba(243, 240, 230, 0.6); }

/* ══════════ CONTACT ══════════ */
.contact { padding: clamp(5rem, 10vw, 8rem) 1.5rem; display: grid; place-items: center; }
.contact-card { text-align: center; max-width: 36rem; background: var(--pearl); border: 1px solid rgba(168, 137, 60, 0.3); border-radius: 26px; padding: clamp(2.5rem, 6vw, 4rem); box-shadow: var(--shadow); }
.contact-card > p:not(.eyebrow) { margin-top: 1.2rem; line-height: 1.8; color: var(--ink-soft); }
.contact-btn { display: inline-flex; align-items: center; gap: 0.7rem; margin-top: 2rem; text-decoration: none; background: var(--ink); color: var(--ivory); font-size: 0.8rem; letter-spacing: 0.2em; text-transform: uppercase; border-radius: 999px; padding: 1rem 2rem; transition: background 0.35s, transform 0.35s var(--ease-out), box-shadow 0.35s; }
.contact-btn svg { width: 18px; height: 18px; }
.contact-btn:hover { background: var(--kemp); transform: translateY(-3px); box-shadow: var(--shadow); }

/* ══════════ FEATURED PREVIEW (front page) ══════════ */
.featured { padding-bottom: 3rem; }
.featured .view-all { display: grid; place-items: center; padding-bottom: 5rem; }

/* ══════════ FOOTER ══════════ */
.footer { text-align: center; padding: 4rem 1.5rem 3rem; border-top: 1px solid rgba(58, 52, 34, 0.12); }
.footer-lotus { width: 54px; color: var(--ink); margin-bottom: 1rem; }
.footer-logo { width: clamp(150px, 22vw, 200px); height: auto; margin: 0 auto; }
.footer-word { font-family: var(--serif); font-size: 1.5rem; letter-spacing: 0.3em; text-indent: 0.3em; }
.footer-word span { font-family: var(--sans); font-size: 0.62rem; letter-spacing: 0.5em; color: var(--ink-soft); display: block; margin-top: 0.4rem; }
.footer-fine { margin-top: 1.6rem; font-size: 0.72rem; letter-spacing: 0.12em; color: var(--ink-soft); }

/* ══════════ REVEAL ══════════ */
.reveal { opacity: 0; transform: translateY(40px); transition: opacity 1s var(--ease-out), transform 1s var(--ease-out); }
.reveal.in { opacity: 1; transform: none; }

/* ══════════ DRAW (lotus) ══════════ */
/* paths carry pathLength="1" so the stroke draws uniformly no matter their real length */
.draw { stroke-dasharray: 1; stroke-dashoffset: 1; animation: drawIn 1.5s var(--ease-out) forwards; }
.draw.d2 { animation-delay: 0.22s; }
.draw.d3 { animation-delay: 0.44s; }
.draw.d4 { animation-delay: 0.66s; }
@keyframes drawIn { to { stroke-dashoffset: 0; } }

/* ══════════ SINGLE PRODUCT ══════════ */
.aura-single { padding-top: clamp(7rem, 12vw, 9rem); }
.aura-single .product { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); max-width: 80rem; margin: 0 auto; padding-inline: clamp(1.2rem, 4vw, 4rem); padding-bottom: 5rem; }
.aura-single .aura-art-wrap { border-radius: 22px; overflow: hidden; background: linear-gradient(160deg, var(--pearl), var(--ivory-2)); border: 1px solid rgba(58,52,34,0.1); box-shadow: var(--shadow); }
.aura-single .summary { align-self: center; }
.aura-single .product_title { font-family: var(--serif); font-weight: 400; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: 0.04em; }
.aura-single .aura-sku { font-size: 0.7rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.8rem; }
.aura-single .price { font-family: var(--serif-2); font-size: 1.8rem; color: var(--ink-soft); margin: 1.2rem 0; }
.aura-single .woocommerce-product-details__short-description, .aura-single .woocommerce-product-details__short-description p { line-height: 1.9; color: var(--ink-soft); }
.aura-single form.cart { display: flex; gap: 0.8rem; align-items: center; margin: 1.8rem 0; flex-wrap: wrap; }
.aura-single .quantity input { width: 70px; padding: 0.8rem; border: 1px solid rgba(58,52,34,0.2); border-radius: 999px; background: var(--pearl); text-align: center; font-family: var(--sans); }
.aura-single button.single_add_to_cart_button { background: var(--ink); color: var(--ivory); border: none; border-radius: 999px; padding: 1rem 2.4rem; font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.2em; text-transform: uppercase; cursor: pointer; transition: background 0.35s, transform 0.35s; }
.aura-single button.single_add_to_cart_button:hover { background: var(--kemp); transform: translateY(-2px); }
.aura-single .aura-ship { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); margin-top: 1rem; }
.aura-single .posted_in { font-size: 0.75rem; letter-spacing: 0.1em; color: var(--ink-soft); margin-top: 1.4rem; }
@media (max-width: 760px) { .aura-single .product { grid-template-columns: 1fr; } }

/* ══════════ WOOCOMMERCE GENERIC OVERRIDES ══════════ */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--gold) !important; background: var(--pearl); font-family: var(--sans); }
.woocommerce-message a.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce .button {
  background: var(--ink) !important; color: var(--ivory) !important; border-radius: 999px !important; font-family: var(--sans) !important; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.74rem; padding: 0.8rem 1.6rem;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .button:hover { background: var(--kemp) !important; }
/* Applies to all page.php pages (WooCommerce cart/checkout/account AND plain pages like Privacy/Terms) so the content clears the fixed nav. */
.aura-wc-wrap { padding-top: clamp(7rem, 12vw, 9rem); padding-inline: clamp(1.2rem, 4vw, 4rem); max-width: 80rem; margin: 0 auto; padding-bottom: 5rem; }
.woocommerce-page h1, .woocommerce-page h2 { font-family: var(--serif); font-weight: 400; }
.woocommerce table.shop_table, .woocommerce .cart-collaterals .cart_totals { border-radius: 14px; }

/* Generic document pages (Privacy Policy, Terms, etc.) — readable prose styling. */
.entry-content { font-family: var(--sans); font-weight: 300; color: var(--ink); line-height: 1.8; }
.entry-content > * + * { margin-top: 1.1rem; }
.entry-content h2 { font-family: var(--serif-2); font-weight: 600; font-size: clamp(1.35rem, 3vw, 1.8rem); letter-spacing: 0.02em; color: var(--ink); margin-top: 2.6rem; }
.entry-content h2:first-child { margin-top: 0; }
.entry-content ul { padding-left: 1.3rem; }
.entry-content li { margin-top: 0.5rem; }
.entry-content strong { font-weight: 500; color: var(--ink); }
.entry-content a { color: var(--gold); text-decoration: underline; text-underline-offset: 2px; transition: color 0.3s; }
.entry-content a:hover { color: var(--kemp); }
/* Narrow reading column only for prose docs — not the wishlist grid (kept wide) or WooCommerce pages. */
body:not(.woocommerce-page) .entry-content--doc { max-width: 46rem; margin-inline: auto; }

/* ══════════ MOTION SAFETY ══════════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
  .hero-title span, .hero-sub, .hero-tag, .hero-cta { opacity: 1; transform: none; }
  .reveal { opacity: 1; transform: none; }
  .aura-card { opacity: 1; translate: 0 0; }
}
