/* Kah's Collection – design tokens + base typography */
:root {
  --kc-ivory: #F8F5F0;
  --kc-sand: #F0E9DF;
  --kc-stone: #E2D8CA;
  --kc-line: #DDD3C5;
  --kc-ink: #1E1B18;
  --kc-ink-2: #3A342E;
  --kc-mute: #6E655B;
  --kc-gold: #9C7A4A;
  --kc-gold-soft: #C8AA7E;
  --kc-serif: "Cormorant Garamond", "Times New Roman", serif;
  --kc-sans: "Jost", "Helvetica Neue", Arial, sans-serif;
  --kc-track: .18em;
  --kc-ease: cubic-bezier(.22,.61,.36,1);
}

html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body.kc-luxe,
body.kc-luxe #wrapper,
body.kc-luxe #main,
body.kc-luxe .page-wrapper { background: var(--kc-ivory); }
body.kc-luxe {
  font-family: var(--kc-sans);
  font-weight: 400;
  color: var(--kc-ink-2);
  font-size: 15px;
  line-height: 1.7;
  letter-spacing: .01em;
}
body.kc-luxe ::selection { background: var(--kc-stone); color: var(--kc-ink); }

/* Headings: refined serif, never heavy */
.kc-luxe h1, .kc-luxe h2, .kc-luxe h3, .kc-luxe h4, .kc-luxe h5, .kc-luxe h6,
.kc-luxe .heading-font, .kc-luxe .product-title, .kc-luxe .entry-title {
  font-family: var(--kc-serif);
  font-weight: 500;
  color: var(--kc-ink);
  letter-spacing: .01em;
  line-height: 1.15;
}
.kc-luxe h1 { font-size: clamp(2.2rem, 4.2vw, 3.6rem); }
.kc-luxe h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.kc-luxe h3 { font-size: clamp(1.4rem, 2vw, 1.8rem); }
.kc-luxe strong, .kc-luxe b { font-weight: 500; }
.kc-luxe .uppercase, .kc-luxe .is-uppercase { letter-spacing: var(--kc-track); }
.kc-luxe .alt-font { font-family: var(--kc-serif); font-style: italic; }

.kc-luxe a { color: var(--kc-ink); transition: color .25s var(--kc-ease), opacity .25s var(--kc-ease); }
.kc-luxe a:hover { color: var(--kc-gold); }
.kc-luxe p a, .kc-luxe .entry-content a:not(.button) { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* Eyebrow / display helpers used across pages */
.kc-eyebrow {
  font-family: var(--kc-sans);
  font-size: 11px !important;
  font-weight: 500;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--kc-gold);
  margin-bottom: 1.1em;
}
.kc-display { font-weight: 400 !important; line-height: 1.05 !important; }
.kc-display em, .kc-luxe h2 em, .kc-luxe h1 em { font-style: italic; font-weight: 400; }
.kc-lede { font-size: 1.05rem; color: var(--kc-mute); max-width: 34em; font-weight: 300; }
.kc-center { text-align: center; margin-left: auto; margin-right: auto; }

/* Buttons: square, letter-spaced, quiet */
.kc-luxe .button, .kc-luxe button.button, .kc-luxe input[type="submit"], .kc-luxe .wp-element-button,
.kc-luxe .wc-block-components-button:not(.is-link) {
  font-family: var(--kc-sans) !important;
  font-weight: 500 !important;
  font-size: 11.5px !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  min-height: 48px;
  line-height: 46px;
  padding: 0 2.2em;
  box-shadow: none !important;
  transition: background-color .3s var(--kc-ease), color .3s var(--kc-ease), border-color .3s var(--kc-ease);
}
.kc-luxe .button.primary:not(.is-outline), .kc-luxe .single_add_to_cart_button, .kc-luxe input[type="submit"],
.kc-luxe .checkout-button, .kc-luxe .wc-block-components-button:not(.is-link):not(.outlined) {
  background-color: var(--kc-ink) !important;
  border: 1px solid var(--kc-ink) !important;
  color: var(--kc-ivory) !important;
}
.kc-luxe .button.primary:not(.is-outline):hover, .kc-luxe .single_add_to_cart_button:hover, .kc-luxe input[type="submit"]:hover,
.kc-luxe .wc-block-components-button:not(.is-link):not(.outlined):hover {
  background-color: var(--kc-gold) !important;
  border-color: var(--kc-gold) !important;
  color: #fff !important;
}
.kc-luxe .button.is-outline, .kc-luxe .button.white.is-outline {
  border: 1px solid currentColor !important;
  background: transparent !important;
}
.kc-luxe .button.is-outline:not(.white) { color: var(--kc-ink) !important; }
.kc-luxe .button.is-outline:not(.white):hover { background: var(--kc-ink) !important; color: var(--kc-ivory) !important; border-color: var(--kc-ink) !important; }
.kc-luxe .button.white.is-outline:hover { background: #fff !important; color: var(--kc-ink) !important; }
.kc-luxe .button.is-link, .kc-luxe .kc-textlink {
  background: none !important; border: 0 !important; padding: 0 !important; min-height: 0; line-height: 1.4;
  border-bottom: 1px solid currentColor !important; padding-bottom: 4px !important;
}

/* Forms */
.kc-luxe input[type="text"], .kc-luxe input[type="email"], .kc-luxe input[type="tel"], .kc-luxe input[type="password"],
.kc-luxe input[type="search"], .kc-luxe input[type="number"], .kc-luxe textarea, .kc-luxe select {
  border-radius: 0 !important;
  border: 1px solid var(--kc-line);
  background-color: #fff;
  box-shadow: none !important;
  font-family: var(--kc-sans);
  color: var(--kc-ink);
  min-height: 46px;
}
.kc-luxe input:focus, .kc-luxe textarea:focus, .kc-luxe select:focus { border-color: var(--kc-ink) !important; outline: none; }
.kc-luxe :focus-visible { outline: 1px solid var(--kc-gold); outline-offset: 3px; }

/* Section titles from the page builder */
.kc-luxe .section-title-container { margin-bottom: 2rem; }
.kc-luxe .section-title b { display: none; }
.kc-luxe .section-title-center span, .kc-luxe .section-title span.section-title-main {
  font-family: var(--kc-serif); font-weight: 400; text-transform: none; letter-spacing: .01em; font-size: clamp(1.8rem, 3vw, 2.5rem);
}
.kc-luxe .section-title a { font-family: var(--kc-sans); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; }

/* Dividers */
.kc-luxe .is-divider { background-color: var(--kc-gold-soft); height: 1px; max-width: 48px; }
.kc-luxe hr { border-color: var(--kc-line); }

/* Notices */
.kc-luxe .woocommerce-message, .kc-luxe .woocommerce-info, .kc-luxe .message-container {
  background: var(--kc-sand); border: 0; border-left: 2px solid var(--kc-gold); color: var(--kc-ink-2);
}

/* Reveal (JS adds .is-in; falls back to visible after 2.5s) */
.kc-js .kc-reveal { opacity: 0; transform: translateY(18px); transition: opacity 1s var(--kc-ease), transform 1s var(--kc-ease); animation: kcShow 0s 2.5s forwards; }
.kc-js .kc-reveal.is-in { opacity: 1; transform: none; animation: none; }
@keyframes kcShow { to { opacity: 1; transform: none; } }

/* Currency: show the price matching the chosen currency */
.kc-price { display: inline; }
.kc-code { font-family: var(--kc-sans); font-size: .72em; letter-spacing: .12em; margin-left: .35em; color: var(--kc-mute); font-weight: 400; }
html:not(.kc-usd) .kc-price--usd { display: none !important; }
html.kc-usd .kc-price--cad:not(.kc-price--only) { display: none !important; }
.kc-currency-note { font-size: 13px; color: var(--kc-mute); letter-spacing: .02em; margin: 0 0 1.2em; padding: .8em 1em; background: var(--kc-sand); border-left: 2px solid var(--kc-gold); }

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .kc-luxe *, .kc-luxe *::before, .kc-luxe *::after { transition: none !important; animation: none !important; }
}
