/*
Theme Name:   Savita Kitchen
Theme URI:    https://savitakitchen.in
Description:  Ultra-premium child theme for Savita Kitchen — The Taste of Bihar. Built on Astra for WooCommerce. Carries the brand's charcoal / brass / ivory packaging system onto the web.
Author:       Savita Kitchen
Author URI:   https://savitakitchen.in
Template:     astra
Version:      1.0.0
Text Domain:  savita-kitchen
*/

/* ==========================================================================
   0.  DESIGN TOKENS
   The single source of truth. Change a value here and it changes everywhere.
   ========================================================================== */

:root {
  /* Colour — lifted directly from the packaging system */
  --sk-ink:        #0F0E0C;   /* primary charcoal field       */
  --sk-ink-2:      #171512;   /* elevated charcoal surface    */
  --sk-ink-3:      #221E19;   /* charcoal hairline / border   */
  --sk-brass:      #C09A5B;   /* brushed brass, primary accent*/
  --sk-brass-deep: #B08D4F;   /* brass on hover / pressed     */
  --sk-ivory:      #F5F0E4;   /* warm ivory, light field      */
  --sk-ivory-2:    #EFE8DA;   /* secondary ivory surface      */
  --sk-lac:        #7A2E22;   /* burnt lac — sale, urgency    */
  --sk-text:       #2A241D;   /* body copy on ivory           */
  --sk-text-mute:  #6B6055;   /* captions, meta               */
  --sk-line:       rgba(42, 36, 29, .14);
  --sk-line-brass: rgba(192, 154, 91, .28);

  /* Type */
  --sk-display: "Bodoni Moda", "Didot", "Playfair Display", Georgia, serif;
  --sk-sans:    "Jost", "Futura", "Century Gothic", -apple-system, "Segoe UI", sans-serif;

  --sk-fs-hero:  clamp(2.75rem, 6.2vw, 5.75rem);
  --sk-fs-d1:    clamp(2.1rem,  4.4vw, 3.75rem);
  --sk-fs-d2:    clamp(1.65rem, 3.1vw, 2.5rem);
  --sk-fs-h3:    clamp(1.15rem, 1.8vw, 1.4rem);
  --sk-fs-body:  1.0625rem;
  --sk-fs-small: .875rem;
  --sk-fs-eyebrow: .72rem;

  /* Rhythm */
  --sk-section-y: clamp(4.5rem, 9vw, 8.5rem);
  --sk-gutter:    clamp(1.25rem, 4vw, 3rem);
  --sk-maxw:      1280px;
  --sk-maxw-text: 62ch;

  /* Motion */
  --sk-ease: cubic-bezier(.22, .61, .36, 1);
  --sk-dur:  .55s;
}

/* ==========================================================================
   1.  BASE TYPOGRAPHY
   ========================================================================== */

body,
.ast-container,
p, li, td, th, label, input, textarea, select, button {
  font-family: var(--sk-sans);
}

body {
  background: var(--sk-ivory);
  color: var(--sk-text);
  font-size: var(--sk-fs-body);
  line-height: 1.75;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4,
.entry-title,
.woocommerce-loop-product__title,
.product_title,
.woocommerce-Tabs-panel h2,
.related > h2,
.up-sells > h2,
.cross-sells > h2 {
  font-family: var(--sk-display);
  font-weight: 500;
  color: var(--sk-ink);
  letter-spacing: -.012em;
  line-height: 1.12;
}

h1 { font-size: var(--sk-fs-d1); }
h2 { font-size: var(--sk-fs-d2); }
h3 { font-size: var(--sk-fs-h3); line-height: 1.3; }

a { color: var(--sk-ink); text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover, a:focus { color: var(--sk-brass-deep); }

::selection { background: var(--sk-brass); color: var(--sk-ink); }

/* Visible keyboard focus — never remove this */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.sk-btn:focus-visible {
  outline: 2px solid var(--sk-brass);
  outline-offset: 3px;
}

/* --- Reusable brand atoms ------------------------------------------------ */

.sk-eyebrow {
  font-family: var(--sk-sans);
  font-size: var(--sk-fs-eyebrow);
  font-weight: 400;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--sk-brass-deep);
  margin: 0 0 1.25rem;
  display: block;
}
.sk-on-dark .sk-eyebrow { color: var(--sk-brass); }

.sk-lede {
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  line-height: 1.8;
  color: var(--sk-text-mute);
  max-width: var(--sk-maxw-text);
}
.sk-on-dark .sk-lede { color: rgba(245, 240, 228, .74); }

.sk-rule {
  width: 64px; height: 1px;
  background: var(--sk-brass);
  border: 0; margin: 2rem 0;
}
.sk-rule--center { margin-inline: auto; }

/* Buttons ---------------------------------------------------------------- */

.sk-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #respond input#submit,
.wc-block-components-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  font-family: var(--sk-sans) !important;
  font-size: .8rem !important;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 1.05rem 2.25rem !important;
  border-radius: 2px !important;
  border: 1px solid var(--sk-ink) !important;
  background: var(--sk-ink) !important;
  color: var(--sk-ivory) !important;
  line-height: 1 !important;
  text-decoration: none;
  transition: background var(--sk-dur) var(--sk-ease),
              color var(--sk-dur) var(--sk-ease),
              border-color var(--sk-dur) var(--sk-ease);
}

.sk-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #respond input#submit:hover {
  background: var(--sk-brass-deep) !important;
  border-color: var(--sk-brass-deep) !important;
  color: var(--sk-ink) !important;
}

.sk-btn--ghost {
  background: transparent !important;
  color: var(--sk-ink) !important;
  border-color: var(--sk-ink) !important;
}
.sk-btn--ghost:hover { background: var(--sk-ink) !important; color: var(--sk-ivory) !important; }

.sk-on-dark .sk-btn--ghost {
  color: var(--sk-ivory) !important;
  border-color: var(--sk-line-brass) !important;
}
.sk-on-dark .sk-btn--ghost:hover {
  background: var(--sk-brass) !important;
  border-color: var(--sk-brass) !important;
  color: var(--sk-ink) !important;
}

.sk-btn--brass {
  background: var(--sk-brass) !important;
  border-color: var(--sk-brass) !important;
  color: var(--sk-ink) !important;
}
.sk-btn--brass:hover { background: var(--sk-ivory) !important; border-color: var(--sk-ivory) !important; }

/* Text link with brass underline reveal */
.sk-link {
  font-size: .78rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid var(--sk-line-brass);
  padding-bottom: .35rem;
  transition: border-color var(--sk-dur) var(--sk-ease);
}
.sk-link:hover { border-color: var(--sk-brass); }

/* ==========================================================================
   2.  SECTION SHELL
   ========================================================================== */

.sk-section { padding: var(--sk-section-y) var(--sk-gutter); position: relative; }
.sk-wrap    { max-width: var(--sk-maxw); margin-inline: auto; width: 100%; }
.sk-wrap--narrow { max-width: 880px; }

.sk-on-dark { background: var(--sk-ink); color: rgba(245, 240, 228, .88); }
.sk-on-dark h1, .sk-on-dark h2, .sk-on-dark h3 { color: var(--sk-ivory); }
.sk-on-ivory-2 { background: var(--sk-ivory-2); }

.sk-center { text-align: center; }
.sk-section__head { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.sk-section__head.sk-center .sk-lede { margin-inline: auto; }

/* --- THE SIGNATURE: the brass arc ---------------------------------------
   Same halo that sits behind the product on every pack and hero image.
   It is the one device that ties the site to the packaging, so it is used
   sparingly and never decorated further.
   ------------------------------------------------------------------------ */

.sk-arc {
  position: absolute;
  border: 1px solid var(--sk-line-brass);
  border-radius: 50%;
  pointer-events: none;
  aspect-ratio: 1;
}
.sk-arc--hero {
  width: min(78vw, 720px);
  left: 50%; top: 50%;
  transform: translate(-50%, -46%);
  border-color: rgba(192, 154, 91, .34);
}
.sk-arc--hero-inner {
  width: min(58vw, 540px);
  left: 50%; top: 50%;
  transform: translate(-50%, -46%);
  border-color: rgba(192, 154, 91, .18);
}

/* ==========================================================================
   3.  HERO
   ========================================================================== */

.sk-hero {
  position: relative;
  min-height: clamp(560px, 88vh, 860px);
  display: grid;
  place-items: center;
  text-align: center;
  padding: clamp(6rem, 12vh, 9rem) var(--sk-gutter) clamp(4rem, 8vh, 6rem);
  background: var(--sk-ink);
  overflow: hidden;
}
.sk-hero__bg {
  position: absolute; inset: 0; z-index: 0;
  background-size: cover;
  background-position: center;
  opacity: .5;
}
.sk-hero::after {
  content: "";
  position: absolute; inset: 0; z-index: 1;
  background: radial-gradient(ellipse at 50% 42%, rgba(15,14,12,.28) 0%, rgba(15,14,12,.86) 68%, #0F0E0C 100%);
}
.sk-arc--hero, .sk-arc--hero-inner { z-index: 2; }
.sk-hero__inner { position: relative; z-index: 3; max-width: 940px; }

.sk-hero__brand {
  font-family: var(--sk-sans);
  font-weight: 300;
  font-size: .8rem;
  letter-spacing: .46em;
  text-transform: uppercase;
  color: var(--sk-brass);
  margin: 0 0 2rem;
}
.sk-hero__title {
  font-family: var(--sk-display);
  font-size: var(--sk-fs-hero);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.02em;
  color: var(--sk-ivory);
  margin: 0 0 1.75rem;
}
.sk-hero__title em {
  font-style: italic;
  color: var(--sk-brass);
}
.sk-hero__sub {
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.8;
  color: rgba(245, 240, 228, .72);
  max-width: 54ch;
  margin: 0 auto 2.75rem;
}
.sk-hero__cta { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

.sk-hero__scroll {
  position: absolute; bottom: 2.25rem; left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  font-size: .62rem; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(245, 240, 228, .45);
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
  text-decoration: none;
}
.sk-hero__scroll span { display: block; width: 1px; height: 40px; background: var(--sk-line-brass); }

/* Page-load sequence — one orchestrated moment, nothing else animates on load */
.sk-hero__brand,
.sk-hero__title,
.sk-hero__sub,
.sk-hero__cta { animation: sk-rise .9s var(--sk-ease) both; }
.sk-hero__title { animation-delay: .1s; }
.sk-hero__sub   { animation-delay: .2s; }
.sk-hero__cta   { animation-delay: .3s; }

@keyframes sk-rise {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   4.  TRUST STRIP
   ========================================================================== */

.sk-trust {
  background: var(--sk-ink-2);
  border-top: 1px solid rgba(192, 154, 91, .16);
  border-bottom: 1px solid rgba(192, 154, 91, .16);
  padding: 2.25rem var(--sk-gutter);
}
.sk-trust__grid {
  max-width: var(--sk-maxw); margin-inline: auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem; text-align: center;
}
.sk-trust__item { position: relative; padding: 0 1rem; }
.sk-trust__item + .sk-trust__item::before {
  content: ""; position: absolute; left: 0; top: 50%;
  transform: translateY(-50%);
  width: 1px; height: 34px; background: rgba(192, 154, 91, .2);
}
.sk-trust__k {
  display: block;
  font-family: var(--sk-display);
  font-size: 1.15rem; color: var(--sk-ivory); margin-bottom: .3rem;
}
.sk-trust__v {
  font-size: .68rem; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(192, 154, 91, .85);
}

/* ==========================================================================
   5.  CATEGORY TILES
   ========================================================================== */

.sk-cats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--sk-line); }
.sk-cat {
  position: relative; text-decoration: none;
  background: var(--sk-ivory); padding: clamp(2rem, 3vw, 2.75rem);
  min-height: 320px; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end;
  transition: background var(--sk-dur) var(--sk-ease);
}
.sk-cat__img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .92;
  transform: scale(1.001);
  transition: transform 1.1s var(--sk-ease);
}
.sk-cat::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(15,14,12,.9) 0%, rgba(15,14,12,.25) 55%, rgba(15,14,12,.05) 100%);
}
.sk-cat:hover .sk-cat__img { transform: scale(1.06); }
.sk-cat__body { position: relative; z-index: 2; }
.sk-cat__name {
  font-family: var(--sk-display); font-size: 1.5rem; color: var(--sk-ivory);
  margin: 0 0 .4rem; line-height: 1.15;
}
.sk-cat__meta {
  font-size: .68rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--sk-brass);
}

/* ==========================================================================
   6.  STORY  (editorial split)
   ========================================================================== */

.sk-story__grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2.5rem, 6vw, 6rem); align-items: center;
}
.sk-story__media { position: relative; }
.sk-story__media img {
  width: 100%; height: auto; display: block;
  aspect-ratio: 4 / 5; object-fit: cover;
}
.sk-story__media::after {
  content: ""; position: absolute;
  inset: 14px; border: 1px solid var(--sk-line-brass); pointer-events: none;
}
.sk-story__quote {
  font-family: var(--sk-display); font-style: italic;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.45; color: var(--sk-ink);
  margin: 0 0 1.75rem;
}
.sk-story__sig {
  font-size: .7rem; letter-spacing: .24em; text-transform: uppercase;
  color: var(--sk-text-mute); margin-top: 2rem;
}

/* ==========================================================================
   7.  PROCESS  (a real three-step sequence, so it is numbered)
   ========================================================================== */

.sk-process { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 3.5rem); }
.sk-step { position: relative; padding-top: 2.5rem; border-top: 1px solid var(--sk-line-brass); }
.sk-step__n {
  font-family: var(--sk-display); font-size: 2.5rem; line-height: 1;
  color: var(--sk-brass); display: block; margin-bottom: 1.25rem;
}
.sk-step__t { font-size: 1.25rem; margin: 0 0 .85rem; }
.sk-step__d { font-size: .96rem; line-height: 1.8; color: rgba(245,240,228,.68); margin: 0; }
.sk-section:not(.sk-on-dark) .sk-step__d { color: var(--sk-text-mute); }

/* ==========================================================================
   8.  SPOTLIGHT BANNER
   ========================================================================== */

.sk-spot {
  position: relative; overflow: hidden;
  min-height: clamp(420px, 62vh, 620px);
  display: grid; align-items: center;
  padding: var(--sk-section-y) var(--sk-gutter);
  background: var(--sk-ink);
}
.sk-spot__bg { position: absolute; inset: 0; background-size: cover; background-position: center right; opacity: .58; }
.sk-spot::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(15,14,12,.96) 0%, rgba(15,14,12,.82) 42%, rgba(15,14,12,.25) 100%);
}
.sk-spot__inner { position: relative; z-index: 2; max-width: var(--sk-maxw); margin-inline: auto; width: 100%; }
.sk-spot__box { max-width: 560px; }
.sk-spot__title { font-size: var(--sk-fs-d1); color: var(--sk-ivory); margin: 0 0 1.25rem; }

/* ==========================================================================
   9.  REVIEWS
   ========================================================================== */

.sk-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.sk-review {
  border: 1px solid var(--sk-line);
  padding: clamp(1.75rem, 3vw, 2.5rem);
  background: var(--sk-ivory);
  display: flex; flex-direction: column;
}
.sk-review__stars { color: var(--sk-brass); letter-spacing: .25em; font-size: .8rem; margin-bottom: 1.25rem; }
.sk-review__body {
  font-family: var(--sk-display); font-size: 1.1rem; line-height: 1.6;
  color: var(--sk-ink); margin: 0 0 1.75rem; flex: 1;
}
.sk-review__who { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--sk-text-mute); }

/* ==========================================================================
   10.  NEWSLETTER
   ========================================================================== */

.sk-news { position: relative; overflow: hidden; text-align: center; }
.sk-news__inner { position: relative; z-index: 2; max-width: 620px; margin-inline: auto; }
.sk-news form { display: flex; gap: .75rem; margin-top: 2rem; flex-wrap: wrap; justify-content: center; }
.sk-news input[type="email"] {
  flex: 1 1 280px;
  background: transparent;
  border: 1px solid var(--sk-line-brass);
  color: var(--sk-ivory);
  padding: 1rem 1.25rem;
  font-family: var(--sk-sans); font-size: .95rem;
  border-radius: 2px;
}
.sk-news input[type="email"]::placeholder { color: rgba(245,240,228,.4); }
.sk-news__fine { font-size: .72rem; color: rgba(245,240,228,.42); margin-top: 1.25rem; letter-spacing: .04em; }

/* ==========================================================================
   11.  FAQ / ASSURANCE
   ========================================================================== */

.sk-faq { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 clamp(2rem, 5vw, 4rem); }
.sk-faq details { border-bottom: 1px solid var(--sk-line); padding: 1.35rem 0; }
.sk-faq summary {
  cursor: pointer; list-style: none;
  font-family: var(--sk-display); font-size: 1.1rem; color: var(--sk-ink);
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.sk-faq summary::-webkit-details-marker { display: none; }
.sk-faq summary::after { content: "+"; color: var(--sk-brass); font-family: var(--sk-sans); font-size: 1.4rem; line-height: 1; }
.sk-faq details[open] summary::after { content: "–"; }
.sk-faq details p { margin: 1rem 0 0; font-size: .96rem; color: var(--sk-text-mute); }

/* ==========================================================================
   12.  CONTACT PAGE
   ========================================================================== */

.sk-contact { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--sk-line); }
.sk-contact__card { background: var(--sk-ivory); padding: clamp(2rem, 3.5vw, 3rem); }
.sk-contact__label { font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; color: var(--sk-brass-deep); margin-bottom: 1rem; }
.sk-contact__val { font-family: var(--sk-display); font-size: 1.2rem; line-height: 1.5; color: var(--sk-ink); }
.sk-contact__val a { text-decoration: none; }

/* ==========================================================================
   13.  WOOCOMMERCE — PRODUCT CARDS
   ========================================================================== */

.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.5rem, 2.5vw, 2.25rem) clamp(1rem, 2vw, 1.75rem);
  margin: 0 !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  text-align: center;
  position: relative;
  padding-bottom: 1.5rem;
}

/* The arc rises behind the pack shot on hover — the signature, reused small */
.woocommerce ul.products li.product a img {
  position: relative; z-index: 2;
  margin: 0 auto 1.35rem !important;
  transition: transform .8s var(--sk-ease);
  mix-blend-mode: multiply;
}
.woocommerce ul.products li.product:hover a img { transform: translateY(-6px) scale(1.02); }

.woocommerce ul.products li.product::before {
  content: "";
  position: absolute;
  top: 6%; left: 50%;
  width: 62%; aspect-ratio: 1;
  transform: translateX(-50%) scale(.72);
  border: 1px solid var(--sk-line-brass);
  border-radius: 50%;
  opacity: 0;
  transition: opacity .7s var(--sk-ease), transform .7s var(--sk-ease);
  z-index: 1; pointer-events: none;
}
.woocommerce ul.products li.product:hover::before { opacity: 1; transform: translateX(-50%) scale(1); }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--sk-display) !important;
  font-size: 1.18rem !important;
  font-weight: 500;
  line-height: 1.3;
  color: var(--sk-ink);
  padding: 0 0 .5rem !important;
  margin: 0;
}
.woocommerce ul.products li.product .price {
  font-family: var(--sk-sans) !important;
  font-size: .95rem !important;
  color: var(--sk-text) !important;
  font-weight: 400;
  display: block;
  margin-bottom: 1.1rem;
}
.woocommerce ul.products li.product .price del { color: var(--sk-text-mute); opacity: .65; margin-right: .4rem; }
.woocommerce ul.products li.product .price ins { color: var(--sk-lac); text-decoration: none; font-weight: 500; }

.woocommerce ul.products li.product .button {
  font-size: .72rem !important;
  padding: .85rem 1.5rem !important;
  background: transparent !important;
  color: var(--sk-ink) !important;
  border-color: var(--sk-ink) !important;
}
.woocommerce ul.products li.product .button:hover {
  background: var(--sk-ink) !important;
  color: var(--sk-ivory) !important;
}

/* Sale badge — burnt lac, squared, quiet */
.woocommerce span.onsale {
  background: var(--sk-lac) !important;
  color: var(--sk-ivory) !important;
  font-family: var(--sk-sans) !important;
  font-size: .62rem !important;
  letter-spacing: .18em; text-transform: uppercase;
  border-radius: 0 !important;
  padding: .45rem .8rem !important;
  min-height: 0 !important; min-width: 0 !important;
  line-height: 1 !important;
  top: 0 !important; left: 0 !important; right: auto !important;
  margin: 0 !important;
  z-index: 4;
}

/* Star ratings */
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before { color: var(--sk-brass); }

/* ==========================================================================
   14.  WOOCOMMERCE — SINGLE PRODUCT
   ========================================================================== */

.single-product .product_title {
  font-size: clamp(1.9rem, 3.4vw, 2.9rem) !important;
  margin-bottom: 1rem !important;
}
.single-product .woocommerce-product-details__short-description {
  font-size: 1.05rem; line-height: 1.85; color: var(--sk-text-mute);
  max-width: 52ch; margin-bottom: 1.75rem;
}
.single-product .summary .price,
.single-product .summary .price .amount {
  font-family: var(--sk-display) !important;
  font-size: 1.85rem !important;
  color: var(--sk-ink) !important;
  font-weight: 500;
}
.single-product .summary .price del .amount { font-size: 1.15rem !important; color: var(--sk-text-mute) !important; }
.single-product .summary .price ins .amount { color: var(--sk-lac) !important; }

.single-product form.cart { margin-top: 1.75rem !important; }
.single-product .single_add_to_cart_button { width: 100%; max-width: 380px; }

.single-product .quantity input.qty {
  height: 52px; width: 72px;
  border: 1px solid var(--sk-line);
  background: transparent;
  font-family: var(--sk-sans);
  text-align: center;
  border-radius: 2px;
}

/* Variation dropdown — this is the size selector, it has to feel deliberate */
.single-product table.variations { border: 0; margin-bottom: 1.25rem; }
.single-product table.variations th.label {
  font-size: .68rem; letter-spacing: .24em; text-transform: uppercase;
  color: var(--sk-text-mute); padding-bottom: .6rem;
}
.single-product table.variations select {
  width: 100%; padding: .95rem 1.1rem;
  border: 1px solid var(--sk-ink);
  background: transparent;
  font-family: var(--sk-sans); font-size: .95rem;
  border-radius: 2px;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--sk-brass-deep) 50%),
                    linear-gradient(135deg, var(--sk-brass-deep) 50%, transparent 50%);
  background-position: calc(100% - 20px) center, calc(100% - 14px) center;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.single-product .product_meta {
  font-size: .78rem; letter-spacing: .06em; color: var(--sk-text-mute);
  border-top: 1px solid var(--sk-line);
  padding-top: 1.5rem; margin-top: 2rem;
}

/* Trust row injected by functions.php under the add-to-cart */
.sk-pdp-trust {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1rem; margin: 2rem 0 0;
  border-top: 1px solid var(--sk-line);
  border-bottom: 1px solid var(--sk-line);
  padding: 1.5rem 0;
  list-style: none;
}
.sk-pdp-trust li {
  font-size: .68rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--sk-text-mute); text-align: center; line-height: 1.6; margin: 0;
}
.sk-pdp-trust li strong {
  display: block; font-family: var(--sk-display); font-size: 1.05rem;
  letter-spacing: 0; text-transform: none; color: var(--sk-ink); margin-bottom: .25rem;
}

/* Free-shipping progress notice */
.sk-ship-bar {
  background: var(--sk-ivory-2);
  border-left: 2px solid var(--sk-brass);
  padding: .9rem 1.2rem;
  font-size: .85rem; color: var(--sk-text);
  margin: 1.5rem 0;
}
.sk-ship-bar strong { color: var(--sk-lac); }

/* Tabs */
.woocommerce-tabs ul.tabs {
  border-bottom: 1px solid var(--sk-line) !important;
  padding: 0 !important; margin-bottom: 2.5rem !important;
  display: flex; gap: 2.5rem; flex-wrap: wrap;
}
.woocommerce-tabs ul.tabs::before { display: none !important; }
.woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important; padding: 0 !important;
}
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a {
  font-family: var(--sk-sans) !important;
  font-size: .74rem !important;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--sk-text-mute) !important;
  padding: 1rem 0 !important;
  border-bottom: 2px solid transparent;
  display: block;
}
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover {
  color: var(--sk-ink) !important;
  border-bottom-color: var(--sk-brass);
}
.woocommerce-tabs .panel { max-width: 76ch; }
.woocommerce-tabs .panel h2 { font-size: 1.5rem; margin-bottom: 1rem; }
.woocommerce-tabs .panel h3 { margin-top: 2rem; }

/* Spec table used inside descriptions */
.sk-spec { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: .92rem; }
.sk-spec th, .sk-spec td { text-align: left; padding: .8rem 0; border-bottom: 1px solid var(--sk-line); vertical-align: top; }
.sk-spec th { width: 34%; font-weight: 400; color: var(--sk-text-mute); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }

/* Related products heading */
.related.products > h2, .upsells.products > h2 {
  font-size: var(--sk-fs-d2); text-align: center; margin-bottom: 3rem;
}

/* ==========================================================================
   15.  WOOCOMMERCE — SHOP, CART, CHECKOUT, ACCOUNT
   ========================================================================== */

.woocommerce-products-header { text-align: center; padding-bottom: 1rem; }
.woocommerce-products-header__title { font-size: var(--sk-fs-d1) !important; }
.term-description { max-width: 62ch; margin: 1.25rem auto 0; color: var(--sk-text-mute); }

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering select {
  font-size: .78rem; letter-spacing: .08em; color: var(--sk-text-mute);
}
.woocommerce .woocommerce-ordering select {
  border: 1px solid var(--sk-line); padding: .6rem .9rem; border-radius: 2px; background: transparent;
}

.woocommerce-breadcrumb {
  font-size: .7rem !important; letter-spacing: .16em; text-transform: uppercase;
  color: var(--sk-text-mute) !important; margin-bottom: 2rem !important;
}
.woocommerce-breadcrumb a { color: var(--sk-text-mute) !important; text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--sk-brass-deep) !important; }

.woocommerce table.shop_table {
  border: 1px solid var(--sk-line) !important;
  border-radius: 0 !important;
  border-collapse: collapse !important;
}
.woocommerce table.shop_table th {
  font-family: var(--sk-sans); font-size: .7rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--sk-text-mute); font-weight: 400;
}
.woocommerce table.shop_table td { border-top: 1px solid var(--sk-line) !important; }

.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-top-color: var(--sk-brass) !important;
  background: var(--sk-ivory-2) !important;
  font-size: .92rem;
  border-radius: 0 !important;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--sk-brass-deep) !important; }
.woocommerce-error { border-top-color: var(--sk-lac) !important; }

.woocommerce form .form-row label {
  font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sk-text-mute);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single {
  border: 1px solid var(--sk-line) !important;
  border-radius: 2px !important;
  padding: .9rem 1rem !important;
  height: auto !important;
  font-family: var(--sk-sans);
  background: #fff;
}
.woocommerce form .form-row input.input-text:focus { border-color: var(--sk-brass) !important; }

#order_review_heading, .woocommerce-billing-fields h3, .cart_totals h2 {
  font-size: 1.35rem; padding-bottom: 1rem; border-bottom: 1px solid var(--sk-line); margin-bottom: 1.5rem;
}
.woocommerce-checkout #payment { background: var(--sk-ivory-2) !important; border-radius: 0 !important; }
.woocommerce-checkout #payment div.payment_box { background: var(--sk-ivory) !important; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--sk-ivory) !important; }

/* ==========================================================================
   16.  HEADER & FOOTER (Astra)
   ========================================================================== */

.site-header, .ast-primary-header-bar {
  background: var(--sk-ivory) !important;
  border-bottom: 1px solid var(--sk-line);
}
.main-header-menu .menu-link, .ast-header-break-point .main-header-menu .menu-link {
  font-family: var(--sk-sans) !important;
  font-size: .74rem !important;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--sk-ink) !important;
}
.main-header-menu .menu-item:hover > .menu-link { color: var(--sk-brass-deep) !important; }
.site-title, .site-title a {
  font-family: var(--sk-sans) !important;
  font-weight: 300; letter-spacing: .3em; text-transform: uppercase;
  font-size: 1.05rem !important;
}
.site-header .ast-site-identity { padding: 1rem 0; }

/* Announcement bar rendered by functions.php */
.sk-topbar {
  background: var(--sk-ink);
  color: var(--sk-ivory);
  text-align: center;
  font-size: .7rem; letter-spacing: .2em; text-transform: uppercase;
  padding: .7rem 1rem;
}
.sk-topbar a { color: var(--sk-brass); text-decoration: none; }

.site-footer, .ast-small-footer, .footer-adv {
  background: var(--sk-ink) !important;
  color: rgba(245, 240, 228, .7) !important;
  border: 0 !important;
}
.site-footer a, .ast-small-footer a { color: rgba(245, 240, 228, .7) !important; text-decoration: none; }
.site-footer a:hover { color: var(--sk-brass) !important; }
.site-footer .widget-title, .footer-adv .widget-title {
  font-family: var(--sk-sans) !important;
  font-size: .68rem !important; letter-spacing: .24em; text-transform: uppercase;
  color: var(--sk-brass) !important; margin-bottom: 1.25rem !important;
}
.sk-legal-line {
  font-size: .68rem; line-height: 1.9; letter-spacing: .04em;
  color: rgba(245, 240, 228, .42); text-align: center;
  padding: 1.5rem var(--sk-gutter);
  border-top: 1px solid rgba(192, 154, 91, .16);
}

/* ==========================================================================
   17.  RESPONSIVE
   ========================================================================== */

@media (max-width: 1024px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr); }
  .sk-cats { grid-template-columns: repeat(2, 1fr); }
  .sk-process { grid-template-columns: 1fr; gap: 2.5rem; }
  .sk-reviews { grid-template-columns: 1fr; }
  .sk-contact { grid-template-columns: 1fr; }
  .sk-faq { grid-template-columns: 1fr; }
}

@media (max-width: 782px) {
  .sk-story__grid { grid-template-columns: 1fr; }
  .sk-story__media { order: -1; }
  .sk-trust__grid { grid-template-columns: repeat(2, 1fr); gap: 1.75rem 1rem; }
  .sk-trust__item:nth-child(3)::before { display: none; }
  .sk-pdp-trust { grid-template-columns: repeat(2, 1fr); gap: 1.5rem 1rem; }
  .sk-spot::after { background: linear-gradient(to top, rgba(15,14,12,.96) 20%, rgba(15,14,12,.55) 100%); }
}

@media (max-width: 600px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); gap: 2rem 1rem; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem !important; }
  .woocommerce ul.products li.product .button { width: 100%; padding: .8rem 1rem !important; }
  .sk-cats { grid-template-columns: 1fr; }
  .sk-cat { min-height: 260px; }
  .sk-hero { min-height: 78vh; }
  .sk-hero__cta { flex-direction: column; }
  .sk-hero__cta .sk-btn { width: 100%; }
  .single-product .single_add_to_cart_button { max-width: none; }
}

/* Sticky mobile add-to-cart (rendered by functions.php) */
.sk-sticky-atc {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 999;
  background: var(--sk-ivory);
  border-top: 1px solid var(--sk-line);
  padding: .75rem 1rem;
  display: none;
  align-items: center; gap: 1rem;
  box-shadow: 0 -8px 24px rgba(15, 14, 12, .08);
}
.sk-sticky-atc__price { font-family: var(--sk-display); font-size: 1.15rem; white-space: nowrap; }
.sk-sticky-atc .sk-btn { flex: 1; padding: .95rem 1rem !important; }
@media (max-width: 782px) {
  .single-product .sk-sticky-atc { display: flex; }
  .single-product .site-footer { padding-bottom: 5rem; }
}

/* ==========================================================================
   18.  PRINT
   ========================================================================== */
@media print {
  .sk-hero, .sk-topbar, .site-footer, .sk-sticky-atc, .sk-news { display: none !important; }
  body { background: #fff; color: #000; }
}
