/*
Theme Name: Vastra Boutique
Theme URI: https://example.com/vastra-boutique
Author: Your Store
Description: A retail-style WooCommerce theme for a ladies ethnic wear boutique — top contact bar, category strip, hero slider, "Most Selling" and "New Arrivals" sections in a two-column vertical product grid, a shop-by-category tile grid, and a store-locations footer with trust badges.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vastra-boutique
*/

:root{
  --rose:#B3294E;
  --rose-dark:#7E1B37;
  --navy:#1F2A44;
  --navy-light:#33456E;
  --bg:#FFFFFF;
  --bg-soft:#F7F6F4;
  --ink:#232323;
  --muted:#767676;
  --line:#e9e5e0;
  --gold:#C79A3A;
}
*{box-sizing:border-box;}
body{font-family:'Poppins',sans-serif;background:var(--bg);color:var(--ink);margin:0;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Poppins',sans-serif;font-weight:600;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
ul{list-style:none;margin:0;padding:0;}
:focus-visible{outline:2px solid var(--rose);outline-offset:2px;}
button{font-family:inherit;}

/* Top bar */
.topbar{background:var(--navy);color:#dfe3ee;font-size:.78rem;padding:8px 5%;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.topbar-contact{display:flex;gap:20px;}
.topbar-contact a{opacity:.9;}
.topbar-contact a:hover{opacity:1;color:#fff;}
.topbar-social{display:flex;gap:14px;font-size:.9rem;}
.topbar-social a{opacity:.85;}
.topbar-social a:hover{opacity:1;color:var(--gold);}

/* Header */
.site-header{background:var(--bg);padding:16px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:1px solid var(--line);}
.logo{display:flex;align-items:center;gap:10px;}
.logo-mark{width:42px;height:42px;background:var(--rose);color:#fff;border-radius:4px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;}
.custom-logo{max-height:50px;width:auto;}
.logo-text{font-size:1.5rem;font-weight:700;color:var(--navy);line-height:1;}
.logo-text span{display:block;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rose);font-weight:600;margin-top:5px;}
.header-search{flex:1;max-width:420px;display:flex;border:1px solid var(--line);border-radius:24px;overflow:hidden;}
.header-search input{flex:1;border:none;padding:11px 18px;font-size:.85rem;background:transparent;}
.header-search button{background:var(--rose);border:none;color:#fff;padding:0 20px;cursor:pointer;font-size:.95rem;}
.header-icons{display:flex;gap:20px;align-items:center;font-size:1.1rem;color:var(--navy);}
.header-icons a{position:relative;}
.cart-count{position:absolute;top:-9px;right:-11px;background:var(--rose);color:#fff;font-size:.6rem;font-weight:700;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;}
.header-icons .label{display:block;font-size:.62rem;text-align:center;margin-top:2px;color:var(--muted);}

/* Category strip nav */
.cat-strip{background:var(--rose-dark);overflow-x:auto;scrollbar-width:none;}
.cat-strip::-webkit-scrollbar{display:none;}
.cat-strip ul{display:flex;padding:0 5%;}
.cat-strip a{display:block;padding:12px 18px;font-size:.82rem;color:#fce9ee;white-space:nowrap;font-weight:500;transition:background .2s ease;}
.cat-strip a:hover{background:var(--rose);color:#fff;}

/* Free shipping strip */
.announce{background:var(--gold);color:var(--navy);text-align:center;font-size:.8rem;font-weight:600;padding:9px 12px;}

/* Hero slider */
.hero{position:relative;height:min(42vh,380px);overflow:hidden;background:var(--navy);}

/* Taller hero slider on desktop, where the wide image naturally has more resolution to cover a shorter box */
@media (min-width: 900px) {
  .hero{height:min(85vh,750px);}
}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease;display:flex;align-items:center;overflow:hidden;}
.hero-slide.active{opacity:1;z-index:1;}
.hero-slide-media{position:absolute;inset:0;z-index:0;display:block;}
.hero-slide-media img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  display:block;
  transform:scale(1.06);
  transition:transform 7s ease-out;
}
.hero-slide.active .hero-slide-media img{
  transform:scale(1.16); /* slow cinematic zoom-in while the slide is active — restarted via JS on each activation */
}
.hero-content{position:relative;z-index:2;color:#fff;padding:0 8%;max-width:520px;}
.hero-eyebrow{display:block;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;color:var(--gold);margin-bottom:12px;font-weight:600;}
.hero-content h1{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.1;margin:0 0 14px;text-shadow:0 2px 12px rgba(0,0,0,.35);}
.hero-content p{font-size:.92rem;opacity:.95;margin:0 0 22px;max-width:380px;text-shadow:0 1px 8px rgba(0,0,0,.3);}
.btn-rose{display:inline-block;background:var(--rose);color:#fff;padding:12px 28px;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;border-radius:3px;transition:background .2s ease,transform .2s ease;}
.btn-rose:hover{background:var(--rose-dark);transform:translateY(-2px);}
.btn-outline{display:inline-block;border:1.5px solid var(--navy);color:var(--navy);padding:10px 26px;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;border-radius:3px;transition:background .2s ease,color .2s ease;}
.btn-outline:hover{background:var(--navy);color:#fff;}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);border:none;cursor:pointer;padding:0;transition:background .2s ease,transform .2s ease;}
.hero-dot.active{background:var(--gold);transform:scale(1.2);}
.hero-nav{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:3;}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.4);color:#fff;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;}
.hero-arrow.prev{left:16px;}
.hero-arrow.next{right:16px;}
@media (prefers-reduced-motion: reduce){
  .hero-slide-media img{transition:none;transform:none !important;}
}

/* Section shell */
.section{padding:48px 5% 16px;}
.section-head{text-align:center;margin-bottom:30px;}
.section-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--rose);font-weight:700;}
.section-head h2{font-size:1.7rem;font-weight:700;color:var(--navy);margin:6px 0 4px;}
.section-head p{font-size:.88rem;color:var(--muted);margin:0;}

/* Two-column vertical product grid (fixed 2 columns, as requested) */
.product-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.product-card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease;}
.product-card:hover{box-shadow:0 10px 24px rgba(31,42,68,.12);transform:translateY(-3px);}
.product-img{position:relative;padding-top:125%;background:#f1efe9;background-size:cover;background-position:center;overflow:hidden;}
.product-img > .bg{position:absolute;inset:0;background-size:cover;background-position:center;}
.badge{position:absolute;top:10px;left:10px;background:var(--rose);color:#fff;font-size:.62rem;font-weight:700;padding:4px 9px;border-radius:2px;letter-spacing:.04em;text-transform:uppercase;z-index:2;}
.wishlist{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--rose);z-index:2;}
.product-info{padding:10px 12px 14px;}
.product-info .cat{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.product-info h3{font-size:.88rem;font-weight:500;margin:4px 0 6px;color:var(--ink);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.price-row .amount{font-weight:700;color:var(--rose-dark);font-size:.95rem;}
.price-row del{font-size:.76rem;color:var(--muted);}

.view-all-wrap{text-align:center;margin:28px 0 8px;}

/* Category tile grid (wraps to multiple rows) */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;}

/* Category tile row — horizontal scroll, used directly below the hero slider */
.cat-row-horizontal{
  display:flex;
  gap:16px;
  overflow-x:auto;
  padding-bottom:10px;
  scrollbar-width:none;
  justify-content:center; /* fallback for older browsers without safe/unsafe support */
  justify-content:safe center; /* centers when it fits; falls back to normal scrollable start-alignment once content overflows, so nothing gets clipped */
}
.cat-row-horizontal::-webkit-scrollbar{display:none;}
.cat-row-horizontal .cat-tile{flex:0 0 auto;width:130px;}

.cat-tile{text-align:center;}
.cat-tile-img{aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,var(--navy),var(--rose));margin-bottom:8px;background-size:cover;background-position:center;transition:transform .25s ease;}
.cat-tile:hover .cat-tile-img{transform:scale(1.04);}
.cat-tile span{font-size:.82rem;font-weight:600;color:var(--navy);}

/* Trust badges strip */
.trust-strip{background:var(--bg-soft);padding:36px 5%;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center;margin-top:20px;}
.trust-item .icon{font-size:1.8rem;margin-bottom:8px;}
.trust-item h4{font-size:.85rem;margin:0 0 4px;color:var(--navy);}
.trust-item p{font-size:.76rem;color:var(--muted);margin:0;}

/* Footer */
.site-footer{background:var(--navy);color:#c9cfdd;padding:50px 5% 20px;}
.footer-stores{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-stores h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);margin:0 0 8px;}
.footer-stores p{font-size:.82rem;line-height:1.6;margin:0 0 6px;opacity:.85;}
.footer-links{display:flex;flex-wrap:wrap;gap:20px;padding:24px 0;font-size:.8rem;justify-content:center;}
.footer-social{display:flex;justify-content:center;gap:16px;font-size:1rem;padding-bottom:20px;}
.bottom-bar{text-align:center;font-size:.76rem;opacity:.65;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);}

.content-wrap{max-width:800px;margin:0 auto;padding:60px 5%;}
.content-wrap h1{font-size:2rem;color:var(--navy);margin-bottom:20px;}
.content-wrap p{line-height:1.7;margin-bottom:16px;}

/* WooCommerce cart / checkout / mini-cart thumbnails — keep compact and
   square regardless of the 4:5 catalog crop used on the shop grids */
.woocommerce table.cart td.product-thumbnail,
.woocommerce-cart table.cart td.product-thumbnail,
.woocommerce-checkout table.shop_table td.product-thumbnail {
  text-align: center;
}
.woocommerce table.cart td.product-thumbnail img,
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-checkout table.shop_table td.product-thumbnail img,
.woocommerce ul.cart_list li img,
.woocommerce ul.product_list_widget li img,
.woocommerce .widget_shopping_cart img {
  width: 70px !important;
  height: 70px !important;
  object-fit: cover;
  border-radius: 4px;
  margin: 0 auto;
  display: block;
}

/* Smaller cart thumbnail specifically on desktop */
@media (min-width: 900px) {
  .woocommerce table.cart td.product-thumbnail img,
  .woocommerce-cart table.cart td.product-thumbnail img,
  .woocommerce-checkout table.shop_table td.product-thumbnail img {
    width: 50px !important;
    height: 50px !important;
  }
}

/* "Sale" badge over cart-page product images (added via functions.php) */
.vastra-cart-thumb-wrap {
  position: relative;
  display: inline-block;
}
.vastra-cart-sale-badge {
  position: absolute;
  top: -6px;
  left: -6px;
  background: var(--rose);
  color: #fff;
  font-size: .55rem;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  letter-spacing: .03em;
  text-transform: uppercase;
  line-height: 1.4;
  z-index: 2;
  box-shadow: 0 2px 6px rgba(179,41,78,.35);
}

/* Single product page — shrink and center the main gallery image.
   WooCommerce's default layout floats the gallery left (48%) and the
   summary right (48%); this centers the gallery above a full-width
   summary instead, at a controlled max size. */
.woocommerce div.product {
  max-width: 1000px;
  margin: 0 auto;
}
.woocommerce div.product div.images {
  float: none !important;
  width: 100% !important;
  max-width: 420px;
  margin: 0 auto 30px !important;
  position: relative;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image,
.woocommerce div.product div.images img {
  margin: 0 auto;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image {
  display: block !important;
  width: 100% !important;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image a {
  display: block;
  width: 100%;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
  border-radius: 10px;
}
.woocommerce div.product div.summary {
  float: none !important;
  width: 100% !important;
  clear: both;
}

@media (min-width: 900px) {
  .woocommerce div.product div.images {
    max-width: 380px;
  }
}

/* Gallery — soft frame + spacing around the main image */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
  background: var(--bg-soft);
  border-radius: 14px;
  padding: 18px;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  background: #fff;
  border-radius: 50%;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 16px !important;
  right: 16px !important;
  box-shadow: 0 4px 10px rgba(31,42,68,.15);
}

/* "Sale!" badge — positioned purely via CSS (no DOM changes), offset to
   land on the actual photo despite the 18px padding on the inner frame */
.woocommerce div.product div.images span.onsale {
  position: absolute !important;
  top: 30px !important;
  left: 30px !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  background: var(--rose);
  color: #fff !important;
  font-size: .7rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .04em;
  z-index: 3;
  box-shadow: 0 4px 10px rgba(179,41,78,.3);
  min-height: 0;
  line-height: 1.4;
}

/* Gallery thumbnails — evenly spaced row, active/hover highlight in rose */
.woocommerce div.product .flex-control-thumbs {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}
.woocommerce div.product .flex-control-thumbs li {
  width: 62px;
  list-style: none;
}
.woocommerce div.product .flex-control-thumbs li img {
  width: 62px;
  height: 62px;
  object-fit: cover;
  border-radius: 8px;
  border: 2px solid var(--line);
  opacity: .75;
  cursor: pointer;
  transition: opacity .2s ease, border-color .2s ease, transform .2s ease;
}
.woocommerce div.product .flex-control-thumbs li img:hover {
  opacity: 1;
  transform: translateY(-2px);
}
.woocommerce div.product .flex-control-thumbs li img.flex-active {
  opacity: 1;
  border-color: var(--rose);
}

/* Summary content — centered to match the centered gallery above it */
.woocommerce div.product div.summary {
  text-align: center;
  max-width: 460px;
  margin: 0 auto !important;
  padding: 0 5%;
}
.woocommerce div.product h1.product_title {
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--navy);
  margin: 4px 0 10px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--rose-dark);
  font-size: 1.4rem;
  font-weight: 700;
}
.woocommerce div.product p.price del {
  color: var(--muted);
  font-size: 1rem;
  font-weight: 400;
  margin-right: 8px;
}
.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--ink);
  font-size: .9rem;
  line-height: 1.7;
  margin: 14px 0 22px;
}

/* Quantity + Add to Cart row */
.woocommerce div.product form.cart {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.woocommerce div.product form.cart div.quantity {
  margin: 0;
}
.woocommerce div.product form.cart .qty {
  width: 68px;
  padding: 13px 10px;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  text-align: center;
  font-size: .95rem;
  color: var(--ink);
  background: #fff;
}
.woocommerce div.product form.cart .qty:focus {
  border-color: var(--rose);
  outline: none;
}

/* Beautiful Add to Cart button */
.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button {
  background: var(--rose);
  color: #fff !important;
  border: none;
  padding: 15px 42px;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-radius: 30px;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(179,41,78,.28);
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce div.product .single_add_to_cart_button:hover {
  background: var(--rose-dark);
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(179,41,78,.35);
}
.woocommerce div.product form.cart .button:active,
.woocommerce div.product .single_add_to_cart_button:active {
  transform: translateY(-1px);
}

@media (max-width: 640px) {
  .woocommerce div.product div.summary { padding: 0; }
  .woocommerce div.product form.cart .button,
  .woocommerce div.product .single_add_to_cart_button { width: 100%; }
  .woocommerce div.product form.cart { flex-direction: column; }
  .woocommerce div.product form.cart .qty { width: 100%; }
}

.notice{background:#fdf1e7;border-left:4px solid var(--gold);padding:16px 20px;margin:0 5% 30px;border-radius:4px;font-size:.9rem;}

/* "Related products" section — now sits directly below the gallery image */
.woocommerce div.product .related.products {
  max-width: 1000px;
  margin: 10px auto 40px;
  padding: 0 5%;
  text-align: center;
}
.woocommerce div.product .related.products > h2 {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 20px;
  position: relative;
}
.woocommerce div.product .related.products > h2::after {
  content: "";
  display: block;
  width: 46px;
  height: 3px;
  background: var(--rose);
  margin: 10px auto 0;
  border-radius: 2px;
}
.woocommerce div.product .related.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0 !important;
}
@media (min-width: 900px) {
  .woocommerce div.product .related.products ul.products {
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }
}
.woocommerce div.product .related.products ul.products li.product {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
  text-align: left;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
}
.woocommerce div.product .related.products ul.products li.product:hover {
  box-shadow: 0 10px 24px rgba(31,42,68,.12);
  transform: translateY(-3px);
}
.woocommerce div.product .related.products ul.products li.product a {
  display: block;
  text-decoration: none;
}
.woocommerce div.product .related.products ul.products li.product a img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  max-width: 100% !important;
}
.woocommerce div.product .related.products ul.products li.product .woocommerce-loop-product__title {
  font-size: .85rem;
  font-weight: 500;
  color: var(--ink);
  padding: 10px 12px 2px;
  margin: 0;
  line-height: 1.35;
}
.woocommerce div.product .related.products ul.products li.product .price {
  display: block;
  padding: 0 12px 14px;
  font-weight: 700;
  color: var(--rose-dark);
  font-size: .9rem;
}
.woocommerce div.product .related.products ul.products li.product .star-rating {
  margin: 4px 12px 0;
}
.woocommerce div.product .related.products ul.products li.product .button {
  display: none; /* keep the card image-focused; card itself is already a link to the product */
}

/* ==========================================================================
   Shop archive / category / search results — the main WooCommerce product
   loop shown at /shop/ and similar pages. Styled to match the homepage
   grids: 2 columns on mobile, 4 on desktop, images cropped to 4:5.
   ========================================================================== */
.woocommerce ul.products,
.woocommerce.archive ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 20px 0 !important;
}
@media (min-width: 900px) {
  .woocommerce ul.products,
  .woocommerce.archive ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }
}
/* Hide any empty/non-product grid items (e.g. WooCommerce's category
   placeholder tiles) that can otherwise take up a blank grid slot */
.woocommerce ul.products li:not(.product) {
  display: none !important;
}
.woocommerce ul.products li.product {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
  text-align: left;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
  position: relative;
}
.woocommerce ul.products li.product:hover {
  box-shadow: 0 10px 24px rgba(31,42,68,.12);
  transform: translateY(-3px);
}
.woocommerce ul.products li.product a {
  display: block;
  text-decoration: none;
}
.woocommerce ul.products li.product a img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  max-width: 100% !important;
}
.woocommerce ul.products li.product span.onsale {
  position: absolute !important;
  top: 10px !important;
  left: 10px !important;
  right: auto !important;
  background: var(--rose);
  color: #fff !important;
  font-size: .62rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 14px;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: 0 !important;
  min-height: 0;
  line-height: 1.4;
  z-index: 2;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: .85rem;
  font-weight: 500;
  color: var(--ink);
  padding: 10px 12px 2px;
  margin: 0;
  line-height: 1.35;
}
.woocommerce ul.products li.product .price {
  display: block;
  padding: 0 12px 14px;
  font-weight: 700;
  color: var(--rose-dark);
  font-size: .9rem;
}
.woocommerce ul.products li.product .star-rating {
  margin: 4px 12px 0;
}
.woocommerce ul.products li.product .button {
  display: block;
  margin: 0 12px 14px;
  background: var(--rose);
  color: #fff !important;
  text-align: center;
  padding: 9px 0;
  border-radius: 20px;
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  transition: background .2s ease;
}
.woocommerce ul.products li.product .button:hover {
  background: var(--rose-dark);
}

@media (min-width:900px){
  .product-grid-2col{grid-template-columns:repeat(4,1fr);gap:20px;max-width:1180px;margin:0 auto;}
}
@media (max-width:640px){
  .footer-stores{grid-template-columns:1fr;}
  .header-search{display:none;}
}

/* ==========================================================================
   My Account dashboard
   ========================================================================== */
.woocommerce-account .woocommerce {
  max-width: 100%;
  margin: 40px auto 70px;
  padding: 0 5%;
}
.woocommerce-account .entry-title,
.woocommerce-account h1.entry-title {
  max-width: 100%;
  margin: 40px auto 0;
  padding: 0 5%;
  font-size: 1.9rem;
  color: var(--navy);
}

/* Layout: nav menu as a horizontal row on top, content full width below */
.woocommerce-account .woocommerce {
  display: block;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none !important;
  width: 100% !important;
  margin-bottom: 24px;
}
.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  width: 100% !important;
}

/* Nav — horizontal row of tabs */
.woocommerce-MyAccount-navigation ul {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  list-style: none;
  margin: 0;
  padding: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.woocommerce-MyAccount-navigation ul li {
  border-bottom: none;
  flex: 0 0 auto;
}
.woocommerce-MyAccount-navigation ul li a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 22px;
  font-size: .84rem;
  font-weight: 500;
  color: var(--ink);
  transition: background .2s ease, color .2s ease;
  white-space: nowrap;
}
.woocommerce-MyAccount-navigation ul li a::before {
  font-size: 1rem;
  flex-shrink: 0;
}
.woocommerce-MyAccount-navigation-link--dashboard a::before { content: "\1F3E0"; }
.woocommerce-MyAccount-navigation-link--orders a::before { content: "\1F4E6"; }
.woocommerce-MyAccount-navigation-link--downloads a::before { content: "\2B07\FE0F"; }
.woocommerce-MyAccount-navigation-link--edit-address a::before { content: "\1F4CD"; }
.woocommerce-MyAccount-navigation-link--payment-methods a::before { content: "\1F4B3"; }
.woocommerce-MyAccount-navigation-link--edit-account a::before { content: "\2699\FE0F"; }
.woocommerce-MyAccount-navigation-link--customer-logout a::before { content: "\1F6AA"; }
.woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--bg-soft);
  color: var(--rose-dark);
}
.woocommerce-MyAccount-navigation-link.is-active a {
  background: var(--rose);
  color: #fff;
}
@media (max-width: 640px) {
  .woocommerce-MyAccount-navigation ul {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
}

/* Content card */
.woocommerce-MyAccount-content {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 28px 26px;
}
.woocommerce-MyAccount-content > p {
  color: var(--ink);
  line-height: 1.7;
  font-size: .92rem;
}
.woocommerce-MyAccount-content > p:first-child {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--navy);
}
.woocommerce-MyAccount-content > p:first-child a {
  color: var(--rose);
  text-decoration: underline;
}

/* Dashboard stat cards */
.vastra-account-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 20px 0;
}
.vastra-stat-card {
  background: var(--bg-soft);
  border-radius: 10px;
  padding: 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.vastra-stat-icon {
  font-size: 1.5rem;
  margin-bottom: 4px;
}
.vastra-stat-number {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--rose-dark);
}
.vastra-stat-label {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
}

/* Dashboard quick links */
.vastra-account-quicklinks {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 10px;
}
@media (min-width: 640px) {
  .vastra-account-quicklinks { grid-template-columns: repeat(4, 1fr); }
}
.vastra-quicklink {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 18px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  text-align: center;
  font-size: .8rem;
  font-weight: 600;
  color: var(--navy);
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.vastra-quicklink:hover {
  border-color: var(--rose);
  transform: translateY(-3px);
  box-shadow: 0 10px 20px rgba(31,42,68,.1);
}
.vastra-quicklink-icon {
  font-size: 1.4rem;
}

/* Orders table */
.woocommerce-orders-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 10px;
}
.woocommerce-orders-table thead th {
  text-align: left;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  padding: 10px 8px;
  border-bottom: 2px solid var(--line);
}
.woocommerce-orders-table tbody td {
  padding: 14px 8px;
  border-bottom: 1px solid var(--line);
  font-size: .85rem;
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button {
  background: var(--rose);
  color: #fff !important;
  border-radius: 20px;
  padding: 7px 16px;
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
  display: inline-block;
  margin: 2px;
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button:hover {
  background: var(--rose-dark);
}

/* Order status pill */
.woocommerce-orders-table__cell-order-status mark,
mark.order-status {
  background: none;
  display: inline-block;
  padding: 4px 12px;
  border-radius: 14px;
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #fff;
  background-color: var(--muted);
}
mark.order-status.status-processing { background-color: var(--gold); color: var(--navy); }
mark.order-status.status-completed { background-color: var(--teal, #1f7a5c); }
mark.order-status.status-on-hold { background-color: #d98e04; }
mark.order-status.status-pending { background-color: var(--muted); }
mark.order-status.status-cancelled,
mark.order-status.status-failed,
mark.order-status.status-refunded { background-color: var(--rose-dark); }

/* Address cards */
.woocommerce-Addresses {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 640px) {
  .woocommerce-Addresses { grid-template-columns: 1fr 1fr; }
}
.woocommerce-Address {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 20px;
}
.woocommerce-Address-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.woocommerce-Address-title h2 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--navy);
  margin: 0;
}
.woocommerce-Address-title .edit {
  font-size: .78rem;
  color: var(--rose);
  font-weight: 600;
  border-bottom: 1px solid var(--rose);
}
.woocommerce-Address address {
  font-style: normal;
  font-size: .88rem;
  line-height: 1.7;
  color: var(--ink);
}

/* Forms — account details, addresses, downloads */
.woocommerce-account form .form-row label {
  font-size: .8rem;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 4px;
  display: block;
}
.woocommerce-account form .form-row input,
.woocommerce-account form .form-row select,
.woocommerce-account form .form-row textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  font-size: .88rem;
  font-family: inherit;
  color: var(--ink);
}
.woocommerce-account form .form-row input:focus,
.woocommerce-account form .form-row select:focus,
.woocommerce-account form .form-row textarea:focus {
  border-color: var(--rose);
  outline: none;
}
.woocommerce-account form .button,
.woocommerce-account form button[type="submit"] {
  background: var(--rose);
  color: #fff !important;
  border: none;
  padding: 13px 34px;
  border-radius: 26px;
  font-size: .82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.woocommerce-account form .button:hover,
.woocommerce-account form button[type="submit"]:hover {
  background: var(--rose-dark);
  transform: translateY(-2px);
}
.woocommerce-account fieldset {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 18px;
  margin-top: 20px;
}
.woocommerce-account fieldset legend {
  font-size: .85rem;
  font-weight: 600;
  color: var(--navy);
  padding: 0 8px;
}

/* ==========================================================================
   Hide leftover default WordPress sidebar widgets (Search box, Pages,
   Archives, Categories) that sometimes appear below the shop/archive
   product grid — these come from a leftover widget area in
   Appearance > Widgets, not from this theme's own templates.
   ========================================================================== */
.widget_search,
.widget_pages,
.widget_archive,
.widget_categories,
.widget_meta,
.widget_recent_entries,
.widget_recent_comments {
  display: none !important;
}

/* Fallback: if the whole sidebar/widget-area container itself should be
   hidden too (uncomment if the block still shows after the rules above —
   this hides the entire sidebar column, so only enable if you don't need
   any other sidebar content on the site):
.woocommerce-page aside.widget-area,
.woocommerce-page #secondary,
.woocommerce-page .sidebar {
  display: none !important;
}
*/

/* ==========================================================================
   Owner's Message
   ========================================================================== */
.owner-message-section {
  padding-top: 20px;
}
.owner-message {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}
.owner-photo {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  background-color: var(--bg-soft);
  flex-shrink: 0;
  border: 3px solid var(--gold);
}
.owner-photo-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
  color: var(--muted);
}
.owner-text {
  position: relative;
}
.owner-quote-mark {
  font-family: 'Poppins', sans-serif;
  font-size: 3.5rem;
  color: var(--rose);
  opacity: .25;
  line-height: 1;
  display: block;
  margin-bottom: -10px;
}
.owner-message-text {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--ink);
  font-style: italic;
  margin: 0 0 16px;
}
.owner-signature strong {
  display: block;
  font-size: 1rem;
  color: var(--navy);
}
.owner-signature span {
  font-size: .8rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
}
@media (min-width: 720px) {
  .owner-message {
    flex-direction: row;
    text-align: left;
    gap: 36px;
  }
  .owner-photo {
    width: 150px;
    height: 150px;
  }
}

/* ==========================================================================
   Testimonials — horizontal scrollable row
   ========================================================================== */
.testimonial-row {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  padding: 6px 4px 20px;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}
.testimonial-row::-webkit-scrollbar { display: none; }
.testimonial-card {
  flex: 0 0 auto;
  width: 280px;
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 22px;
}
.testimonial-stars {
  color: var(--gold);
  font-size: 1rem;
  letter-spacing: 2px;
  margin-bottom: 12px;
}
.testimonial-text {
  font-size: .88rem;
  line-height: 1.65;
  color: var(--ink);
  margin: 0 0 18px;
  min-height: 90px;
}
.testimonial-person {
  display: flex;
  align-items: center;
  gap: 10px;
}
.testimonial-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  background-color: var(--rose);
  flex-shrink: 0;
}
.testimonial-avatar-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: .95rem;
}
.testimonial-person strong {
  display: block;
  font-size: .85rem;
  color: var(--navy);
}
.testimonial-person span {
  display: block;
  font-size: .72rem;
  color: var(--muted);
}
