/*
Theme Name:   Blocksy Child — Kenzul Atlas
Description:  Child theme for Kenzul Atlas, built on Blocksy. Design system + global chrome.
Author:       Digital Bureau
Template:     blocksy
Version:      1.0.0
Text Domain:  blocksy-child
*/

/* ============================================
   Kenzul Atlas — Design Tokens
   Authority: docs/DESIGN-DIRECTION.md
   ============================================ */
:root {
  --ka-ink: #14181A;         /* text, primary buttons */
  --ka-ink-hover: #1F2E2F;   /* button hover: ink deepened with a mint tint */
  --ka-mint: #CFDFDE;        /* brand accent: announcement bar, bands, soft surfaces */
  --ka-mint-deep: #A9C3C1;   /* borders / hover on mint surfaces */
  --ka-gold: #C99F52;        /* logo gold: eyebrows, rules, small details, ⵣ motif */
  --ka-paper: #FBFAF7;       /* page background */
  --ka-white: #FFFFFF;       /* cards */
  --ka-muted: #5E6663;       /* secondary text */

  --ka-hairline: rgba(169, 195, 193, 0.4);   /* mint-deep @ 40% */
  --ka-hairline-gold: rgba(201, 159, 82, 0.3); /* gold @ 30% */
  --ka-focus-ring: 0 0 0 3px rgba(201, 159, 82, 0.28);

  --ka-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --ka-sans: "Poppins", "Noto Sans Tifinagh", "Helvetica Neue", Arial, sans-serif;   /* P7 fix: Poppins (client request 2026-09-23); Noto Tifinagh catches a stray ⵣ in excerpts */

  --ka-container: 1240px;
  --ka-container-narrow: 760px;
}

/* Blocksy prints its customizer palette + typography inline AFTER this sheet;
   :root:root out-specifies it so the brand values always apply.
   Palette mapping: 1 primary (ink) · 2 primary hover · 3 text · 4 headings ·
   5 borders (mint-deep) · 6 light surface (mint) · 7 page bg (paper) · 8 white. */
:root:root {
  --theme-palette-color-1: #14181A;
  --theme-palette-color-2: #1F2E2F;
  --theme-palette-color-3: #14181A;
  --theme-palette-color-4: #14181A;
  --theme-palette-color-5: #A9C3C1;
  --theme-palette-color-6: #CFDFDE;
  --theme-palette-color-7: #FBFAF7;
  --theme-palette-color-8: #FFFFFF;

  --theme-text-color: var(--ka-ink);
  --theme-headings-color: var(--ka-ink);
  --theme-border-color: var(--ka-hairline);
  --theme-link-initial-color: var(--ka-ink);
  --theme-link-hover-color: var(--ka-gold);
  --theme-selection-background-color: var(--ka-mint);
  --theme-selection-text-color: var(--ka-ink);

  --theme-font-family: var(--ka-sans);
  --theme-font-size: 16px;
  --theme-line-height: 1.7;

  /* Buttons: square, ink, Poppins uppercase */
  --theme-button-font-weight: 500;
  --theme-button-font-size: 12px;
  --theme-button-border-radius: 0px;
  --theme-button-min-height: 48px;
  --theme-button-padding: 14px 32px;
  --theme-button-background-initial-color: var(--ka-ink);
  --theme-button-background-hover-color: var(--ka-ink-hover);
  --theme-button-text-initial-color: var(--ka-white);
  --theme-button-text-hover-color: var(--ka-white);

  /* Forms: square, hairline, gold focus */
  --theme-form-field-border-radius: 0px;
  --theme-form-field-height: 48px;
  --theme-form-field-border-initial-color: var(--ka-mint-deep);
  --theme-form-field-border-focus-color: var(--ka-gold);
  --theme-form-selection-field-initial-color: var(--ka-mint-deep);
  --theme-form-selection-field-active-color: var(--ka-ink);
  --theme-form-text-initial-color: var(--ka-ink);
  --theme-form-text-focus-color: var(--ka-ink);

  --theme-normal-container-max-width: var(--ka-container);
  --theme-narrow-container-max-width: var(--ka-container-narrow);
}

/* ============================================
   Base
   ============================================ */
body {
  font-family: var(--ka-sans);
  font-weight: 400;
  background-color: var(--ka-paper);
  color: var(--ka-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

::selection { background: var(--ka-mint); color: var(--ka-ink); }

/* Headings: Fraunces display serif. Direct properties (not Blocksy's
   --theme-font-* vars) so the inline customizer typography can't override. */
h1, h2, h3, h4,
.ka-serif,
.page-title,
.entry-title,
.woocommerce-loop-product__title,
.product_title {
  font-family: var(--ka-serif);
  font-weight: 400;
  color: var(--ka-ink);
  letter-spacing: -0.01em;
  font-optical-sizing: auto;
}
h1 { font-size: clamp(36px, 5vw, 58px); line-height: 1.1; }
h2 { font-size: clamp(30px, 3.6vw, 44px); line-height: 1.15; }
h3 { font-size: clamp(22px, 2.2vw, 28px); line-height: 1.25; }
h4 { font-size: 20px; line-height: 1.3; }

/* Small headings read as UI labels: Poppins uppercase */
h5, h6 {
  font-family: var(--ka-sans);
  font-weight: 500;
  font-size: 12px;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ka-ink);
}

/* Prices are set in the display serif */
.price, .woocommerce-Price-amount { font-family: var(--ka-serif); font-weight: 400; }
/* ...except the tiny header cart total (hidden anyway, see Header) */
#header .woocommerce-Price-amount { font-family: var(--ka-sans); }

p { text-wrap: pretty; }
.ka-muted { color: var(--ka-muted); }
.ka-italic { font-family: var(--ka-serif); font-style: italic; }

/* ============================================
   Links
   ============================================ */
a { color: var(--ka-ink); transition: color .2s ease, text-decoration-color .2s ease; }
a:hover { color: var(--ka-ink); }

/* In-copy links: hairline gold underline that firms up on hover */
.entry-content a:not(.ka-btn):not(.button):not(.wp-block-button__link),
.ka-link {
  color: var(--ka-ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  text-decoration-color: var(--ka-gold);
}
.entry-content a:not(.ka-btn):not(.button):not(.wp-block-button__link):hover,
.ka-link:hover { text-decoration-color: var(--ka-ink); }

:focus-visible { outline: 2px solid var(--ka-gold); outline-offset: 2px; }

/* ============================================
   Buttons
   .ka-btn (primary: ink, square) · .ka-btn--secondary (hairline outline)
   · .ka-btn--light (paper on ink/mint-dark surfaces).
   WooCommerce + Blocksy + core buttons inherit the primary treatment.
   ============================================ */
.ka-btn,
.button,
button.button,
input[type="submit"],
.wp-element-button,
.wp-block-button__link,
.ct-button,
.wc-block-components-button:not(.is-link),
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.single_add_to_cart_button,
.checkout-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 14px 32px;
  border: 1px solid var(--ka-ink);
  border-radius: 0 !important;
  background-color: var(--ka-ink);
  color: var(--ka-white);
  font-family: var(--ka-sans);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.ka-btn:hover,
.button:hover,
button.button:hover,
input[type="submit"]:hover,
.wp-element-button:hover,
.wp-block-button__link:hover,
.ct-button:hover,
.wc-block-components-button:not(.is-link):hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.single_add_to_cart_button:hover,
.checkout-button:hover {
  background-color: var(--ka-ink-hover);
  border-color: var(--ka-ink-hover);
  color: var(--ka-white);
}

.ka-btn--secondary,
.wp-block-button.is-style-outline > .wp-block-button__link {
  background-color: transparent;
  color: var(--ka-ink);
  border-color: var(--ka-ink);
}
.ka-btn--secondary:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
  background-color: var(--ka-ink);
  border-color: var(--ka-ink);
  color: var(--ka-white);
}

.ka-btn--light {
  background-color: var(--ka-paper);
  border-color: var(--ka-paper);
  color: var(--ka-ink);
}
.ka-btn--light:hover { background-color: var(--ka-mint); border-color: var(--ka-mint); color: var(--ka-ink); }

.ka-btn[disabled],
.button:disabled,
.button.disabled { opacity: .45; cursor: not-allowed; }

/* ============================================
   Forms
   ============================================ */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="date"],
select,
textarea,
.wc-block-components-text-input input {
  border-radius: 0;
  border: 1px solid var(--ka-mint-deep);
  background-color: var(--ka-white);
  color: var(--ka-ink);
  font-family: var(--ka-sans);
  font-size: 15px;
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
select:focus,
textarea:focus,
.wc-block-components-text-input input:focus {
  border-color: var(--ka-gold);
  box-shadow: var(--ka-focus-ring);
  outline: none;
}
::placeholder { color: var(--ka-muted); opacity: 1; }
label { font-family: var(--ka-sans); font-size: 13px; font-weight: 500; color: var(--ka-ink); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--ka-ink); }

/* ============================================
   Helpers: eyebrow, ⵣ separator, rules, containers, section bands
   ============================================ */

/* Eyebrow label above headings */
.ka-eyebrow {
  display: inline-block;
  font-family: var(--ka-sans);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ka-gold);
  margin: 0 0 14px;
}

/* ⵣ (Berber yaz) glyph — inline accent. Use sparingly. */
.ka-yaz {
  display: inline-block;
  font-family: "Noto Sans Tifinagh", var(--ka-sans);   /* Poppins lacks Tifinagh; Noto subset loads only when the glyph is used */
  font-style: normal;
  color: var(--ka-gold);
  line-height: 1;
  margin-right: .5em;
}

/* ⵣ separator: hairline — glyph — hairline. Markup: <div class="ka-sep" aria-hidden="true"><span>ⵣ</span></div> */
.ka-sep {
  font-family: "Noto Sans Tifinagh", var(--ka-sans);
  display: flex;
  align-items: center;
  gap: 18px;
  max-width: 220px;
  margin: 32px auto;
  color: var(--ka-gold);
  font-size: 18px;
  line-height: 1;
}
.ka-sep::before,
.ka-sep::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--ka-hairline-gold);
}
.ka-sep--left { margin-left: 0; }

/* Hairline rules */
.ka-rule { border: 0; height: 1px; background: var(--ka-hairline); margin: 40px 0; }
.ka-rule--gold { background: var(--ka-hairline-gold); }

/* Containers */
/* Same column as Blocksy's .ct-container: min(1240px, 90vw), centred — header, footer
   and sections line up on one edge. */
.ka-wrap {
  width: min(var(--ka-container), 90vw);
  margin-left: auto;
  margin-right: auto;
}
.ka-wrap--narrow { width: min(var(--ka-container-narrow), 90vw); }

/* Section bands: generous whitespace, alternating paper / white / mint */
.ka-band { padding-top: 104px; padding-bottom: 104px; background-color: var(--ka-paper); }
.ka-band--white { background-color: var(--ka-white); }
.ka-band--mint { background-color: var(--ka-mint); }
.ka-band--mint .ka-eyebrow { color: var(--ka-ink); }  /* gold on mint lacks contrast */
.ka-band--mint .ka-rule { background: var(--ka-mint-deep); }
.ka-band--ink { background-color: var(--ka-ink); color: var(--ka-paper); }
.ka-band--ink h1, .ka-band--ink h2, .ka-band--ink h3, .ka-band--ink h4 { color: var(--ka-paper); }
.ka-band--tight { padding-top: 64px; padding-bottom: 64px; }

/* ============================================
   Announcement bar (markup: functions.php, wp_body_open)
   ============================================ */
.ka-topbar {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 16px;
  background: var(--ka-mint);
  color: var(--ka-ink);
  font-family: var(--ka-sans);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
}
.ka-topbar__sep { color: var(--ka-ink); margin: 0 12px; opacity: .6; }

/* ============================================
   Header (Blocksy builder: logo · menu · search + cart;
   mobile: trigger · logo · cart — set via theme_mod header_placements)
   ============================================ */
#header [data-row*="middle"] {
  background-color: var(--ka-white);
  border-bottom: 1px solid var(--ka-hairline);
}
#header .site-logo-container img { width: auto; }

/* Primary nav */
#header [data-id="menu"] > ul > li > a,
#header .ct-menu-link {
  --theme-link-initial-color: var(--ka-ink);
  --theme-link-hover-color: var(--ka-ink);
  --theme-link-active-color: var(--ka-ink);
  font-family: var(--ka-sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-transform: none;
  position: relative;
}
/* gold hairline under hover / current item */
#header [data-id="menu"] > ul > li > a::after {
  content: "";
  position: absolute;
  left: var(--menu-item-padding, 16px);
  right: var(--menu-item-padding, 16px);
  bottom: calc(50% - 14px);
  height: 1px;
  background: var(--ka-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
#header [data-id="menu"] > ul > li > a:hover::after,
#header [data-id="menu"] > ul > li.current-menu-item > a::after,
#header [data-id="menu"] > ul > li.current_page_parent > a::after { transform: scaleX(1); }

/* Search + cart icons */
#header [data-id="search"],
#header [data-id="cart"],
#header [data-id="trigger"] {
  --theme-icon-color: var(--ka-ink);
  --theme-icon-hover-color: var(--ka-gold);
}
#header [data-id="cart"] .ct-label { display: none; }   /* no €0.00 subtotal next to the bag */
#header .ct-dynamic-count-cart {
  background: var(--ka-gold);
  color: var(--ka-white);
  font-family: var(--ka-sans);
  font-weight: 500;
}

/* ============================================
   Mobile drawer (#offcanvas): ink panel, Fraunces links, gold MENU eyebrow
   ============================================ */
#offcanvas .ct-panel-inner { background: var(--ka-ink) !important; }
#offcanvas .ct-panel-actions { padding: 22px 28px 0; }
#offcanvas .ct-toggle-close {
  --theme-icon-color: var(--ka-paper);
  --theme-icon-hover-color: var(--ka-gold);
  color: var(--ka-paper);
}
#offcanvas .ct-panel-content { padding: 22px 28px 40px; }
#offcanvas .mobile-menu::before {
  content: "Menu";
  display: block;
  font-family: var(--ka-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ka-gold);
  margin-bottom: 10px;
}
#offcanvas .mobile-menu > ul > li { border-bottom: 1px solid rgba(251, 250, 247, 0.12); }
#offcanvas .mobile-menu > ul > li:last-child { border-bottom: none; }
#offcanvas .mobile-menu .ct-menu-link {
  font-family: var(--ka-serif);
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ka-paper) !important;
  padding: 16px 0;
}
#offcanvas .mobile-menu .ct-menu-link:hover,
#offcanvas .mobile-menu .current-menu-item > .ct-menu-link { color: var(--ka-gold) !important; }

/* ============================================
   Footer (markup: functions.php, blocksy:footer:before)
   ============================================ */
#footer { display: none; }
.ka-footer {
  background: var(--ka-ink);
  color: rgba(251, 250, 247, 0.78);
  font-family: var(--ka-sans);
  font-size: 14px;
  line-height: 1.7;
  padding: 80px 0 0;
}
.ka-footer__grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1.5fr;
  gap: 48px;
  padding-bottom: 64px;
}
.ka-footer__logo { display: inline-block; }
.ka-footer__logo img { width: 112px; height: auto; display: block; }
.ka-footer__tagline {
  margin: 22px 0 0;
  max-width: 26ch;
  font-family: var(--ka-serif);
  font-style: italic;
  font-size: 16px;
  line-height: 1.5;
  color: var(--ka-paper);
}
.ka-footer h6 {
  margin: 0 0 18px;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--ka-gold);
}
.ka-footer ul { list-style: none; margin: 0; padding: 0; }
.ka-footer__col li { margin-bottom: 10px; }
.ka-footer a { color: rgba(251, 250, 247, 0.78); text-decoration: none; }
.ka-footer a:hover { color: var(--ka-gold); }
.ka-footer__giving p { margin: 0 0 22px; color: var(--ka-paper); max-width: 34ch; }
.ka-footer__social { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.ka-footer__social li { margin: 0; }
.ka-footer__social a {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.ka-footer__bottom { border-top: 1px solid var(--ka-hairline-gold); }
.ka-footer__legal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 24px;
  padding-top: 20px;
  padding-bottom: 20px;
  font-size: 12px;
  color: rgba(251, 250, 247, 0.55);
}
.ka-footer__legal ul { display: flex; gap: 24px; }
.ka-footer__legal a { color: rgba(251, 250, 247, 0.55); }

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 999.98px) {
  .ka-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .ka-band { padding-top: 80px; padding-bottom: 80px; }
}
@media (max-width: 689.98px) {
  .ka-band { padding-top: 64px; padding-bottom: 64px; }
  .ka-band--tight { padding-top: 48px; padding-bottom: 48px; }
  /* Announcement bar: one line at 375px — keep only the shipping message */
  .ka-topbar { font-size: 10px; letter-spacing: 0.1em; padding: 9px 12px; }
  .ka-topbar__extra { display: none; }
  .ka-footer { padding-top: 56px; }
  .ka-footer__logo img { width: 88px; }
  .ka-footer__grid { grid-template-columns: 1fr 1fr; gap: 36px 24px; padding-bottom: 48px; }
  .ka-footer__brand,
  .ka-footer__giving { grid-column: 1 / -1; }
  .ka-footer__legal { flex-direction: column; align-items: flex-start; }
}

/* ============================================
   WooCommerce — shared (Phase 4)
   ============================================ */
/* Header cart count: gold bubble, ink figure (updates via Woo cart fragments) */
#header .ct-dynamic-count-cart {
  background: var(--ka-gold);
  color: var(--ka-ink);
  font-size: 10px;
  font-weight: 600;
}

/* Breadcrumbs: quiet single line, muted Poppins */
.ct-breadcrumbs {
  font-family: var(--ka-sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ka-muted);
}
.ct-breadcrumbs a { color: var(--ka-muted); text-decoration: none; }
.ct-breadcrumbs a:hover { color: var(--ka-ink); }
.ct-breadcrumbs .ct-separator { opacity: .5; margin: 0 8px; }
.ct-breadcrumbs .last-item { color: var(--ka-ink); }

/* Checklist used in product copy (replaces Shopify's ✔ characters) */
.ka-checks { list-style: none; padding: 0; margin: 0 0 1.4em; }
.ka-checks li { position: relative; padding-left: 26px; margin-bottom: .55em; }
.ka-checks li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: .55em;
  width: 11px;
  height: 6px;
  border-left: 1.5px solid var(--ka-gold);
  border-bottom: 1.5px solid var(--ka-gold);
  transform: rotate(-45deg);
}

/* Notices (classic): paper, ink text, gold accent rule, .ka-btn "View cart" */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
  background: var(--ka-white) !important;
  color: var(--ka-ink) !important;
  border: 1px solid var(--ka-hairline) !important;
  border-left: 3px solid var(--ka-gold) !important;
  border-radius: 0 !important;
  font-family: var(--ka-sans);
  font-size: 14px;
  box-shadow: none !important;
}
.woocommerce-error,
.wc-block-components-notice-banner.is-error { border-left-color: #A4452C !important; }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--ka-gold) !important; }
.woocommerce-message .button,
.woocommerce-info .button {
  min-height: 40px;
  padding: 10px 22px;
}
.wc-block-components-notice-banner > svg { background: var(--ka-gold) !important; fill: var(--ka-white); border-radius: 50%; }

/* ============================================
   Product page (PDP)
   Summary layers (Blocksy woo_single_layout): title · price · short desc · add to cart;
   eyebrow + facts list come from functions.php hooks.
   ============================================ */
.single-product .hero-section[data-type="type-1"] { margin-bottom: 36px; }
.single-product .product-entry-wrapper {
  display: grid !important;   /* Blocksy sets flex + --product-gallery-width */
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}
.single-product .product-entry-wrapper > .woocommerce-product-gallery,
.single-product .product-entry-wrapper > .summary { width: auto !important; max-width: none; margin: 0; }
.single-product .entry-summary { position: sticky; top: 40px; padding-top: 8px; }

/* Gallery: white stage + one scrolling row of thumbs */
.single-product .woocommerce-product-gallery .flexy-view,
.single-product .woocommerce-product-gallery .ct-media-container { background: var(--ka-white); }
.single-product .woocommerce-product-gallery .flexy-items img { object-fit: contain !important; }
.single-product .flexy-pills[data-type="thumbs"] ol {
  display: grid !important;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 40px) / 6);
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: thin;
  padding-bottom: 6px;
  margin-top: 12px;
}
.single-product .flexy-pills[data-type="thumbs"] li {
  width: auto !important;
  margin: 0 !important;
  background: var(--ka-white);
  border: 1px solid transparent;
  opacity: .72;
  transition: opacity .2s ease, border-color .2s ease;
}
.single-product .flexy-pills[data-type="thumbs"] li.active,
.single-product .flexy-pills[data-type="thumbs"] li:hover { opacity: 1; border-color: var(--ka-gold); }
.single-product .flexy-pills[data-type="thumbs"] li::after { display: none; }
.single-product .flexy-arrow-prev,
.single-product .flexy-arrow-next { border-radius: 0; background: var(--ka-white); color: var(--ka-ink); }

/* Summary */
.ka-pdp-eyebrow { margin-bottom: 18px; }
.single-product .product_title {
  font-size: clamp(38px, 4.2vw, 56px);
  line-height: 1.05;
  margin-bottom: 14px;
}
.single-product .summary .price {
  font-size: 26px;
  color: var(--ka-ink);
  margin-bottom: 26px;
}
.single-product .woocommerce-product-details__short-description {
  color: var(--ka-muted);
  font-size: 16px;
  line-height: 1.75;
  max-width: 52ch;
  padding-bottom: 28px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--ka-hairline);
}
.single-product .ct-cart-actions { display: flex; gap: 12px; }
.single-product .ct-cart-actions .single_add_to_cart_button { flex: 1; min-height: 54px; }
.quantity[data-type="type-2"] {
  --quantity-height: 54px;
  border-radius: 0;
}
.quantity[data-type="type-2"] input.qty,
.quantity .ct-increase,
.quantity .ct-decrease { border-radius: 0 !important; border-color: var(--ka-mint-deep) !important; }
.quantity input.qty { font-family: var(--ka-sans); background: var(--ka-white); }

.ka-pdp-facts {
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
  font-size: 14px;
  color: var(--ka-ink);
}
.ka-pdp-facts li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 0;
  border-top: 1px solid var(--ka-hairline);
}
.ka-pdp-facts li:last-child { border-bottom: 1px solid var(--ka-hairline); }
.ka-pdp-facts li::before {
  content: "";
  flex: none;
  width: 5px;
  height: 5px;
  background: var(--ka-gold);
  transform: rotate(45deg);
}
.ka-pdp-facts li:has(.ka-yaz)::before { display: none; }
.ka-pdp-facts .ka-yaz { margin-right: 0; width: 5px; display: inline-flex; justify-content: center; font-size: 15px; }
.ka-pdp-facts .ka-link { color: var(--ka-muted); }

/* Stacked product sections (Blocksy tabs type-4): heading left, copy right, hairline between */
.single-product .woocommerce-tabs[data-type^="type-4"] {
  margin-top: clamp(72px, 9vw, 120px);
  border-top: 1px solid var(--ka-hairline-gold);
}
.single-product .woocommerce-tabs[data-type^="type-4"] {
  width: min(var(--ka-container), 90vw);
  margin-left: auto;
  margin-right: auto;
}
.single-product .woocommerce-tabs[data-type^="type-4"] > article > .entry-content {
  position: relative;
  padding: 56px 0 56px 34%;
  border-bottom: 1px solid var(--ka-hairline);
}
.single-product .woocommerce-tabs[data-type^="type-4"] > article > .entry-content > * {
  max-width: 68ch;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.single-product .woocommerce-tabs[data-type^="type-4"] > article > .entry-content > h2 {
  position: absolute;
  left: 0;
  top: 52px;
  width: 28%;
  margin: 0;
  font-size: clamp(26px, 2.6vw, 34px);
  text-transform: none;
}
.single-product .woocommerce-tabs[data-type^="type-4"] > article > .entry-content > .ka-pdp-desc { max-width: none; }
.single-product .woocommerce-tabs .entry-content h3 {
  font-size: 21px;
  margin: 1.6em 0 .5em;
}
.single-product .woocommerce-tabs .entry-content h3:first-child { margin-top: 0; }
.single-product .woocommerce-tabs .entry-content p,
.single-product .woocommerce-tabs .entry-content li { color: var(--ka-ink); }
.ka-pdp-lead,
.ka-inci {
  font-family: var(--ka-serif);
  font-size: 22px;
  line-height: 1.35;
  margin-bottom: 1em;
}
.ka-inci { font-style: italic; }

/* Description + vertical product video side by side */
.ka-pdp-desc.has-video {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 240px;
  gap: 48px;
  align-items: start;
}
.ka-pdp-desc__text > :last-child { margin-bottom: 0; }
.ka-pdp-video { margin: 0; }
.ka-pdp-video video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 404 / 720;
  object-fit: cover;
  background: var(--ka-ink);
}
.ka-pdp-video figcaption {
  margin-top: 10px;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ka-muted);
}

/* ============================================
   Shop / product archive
   Grid: max 3 columns of 260–360px cards, centred; a lone product becomes one
   generous centred card. Scales to N products with no change.
   ============================================ */
.post-type-archive-product .hero-section[data-type="type-2"] .ka-eyebrow,
.tax-product_cat .hero-section[data-type="type-2"] .ka-eyebrow { display: block; margin-bottom: 10px; color: var(--ka-ink); }
.woocommerce [data-products],
[data-products] {
  grid-template-columns: repeat(auto-fit, minmax(260px, 360px)) !important;
  justify-content: center;
  gap: 40px 32px;
  max-width: calc(3 * 360px + 2 * 32px);
  margin-left: auto;
  margin-right: auto;
}
[data-products]:has(> li.product:only-child) { grid-template-columns: minmax(0, 440px) !important; }

[data-products] > li.product {
  background: var(--ka-white);
  border: 1px solid var(--ka-hairline);
  padding: 0 0 28px;
  text-align: center;
  transition: transform .3s ease, box-shadow .3s ease;
}
[data-products] > li.product:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -24px rgba(20, 24, 26, 0.28);
}
[data-products] > li.product > figure { margin: 0 0 22px; overflow: hidden; }
[data-products] > li.product > figure img { transition: transform .6s ease; }
[data-products] > li.product:hover > figure img { transform: scale(1.03); }
[data-products] .entry-meta {
  justify-content: center;
  margin: 0 24px 8px;
}
[data-products] .entry-meta a {
  font-family: var(--ka-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ka-gold);
}
[data-products] .woocommerce-loop-product__title {
  font-size: 26px;
  line-height: 1.2;
  margin: 0 24px 6px;
}
[data-products] .woocommerce-loop-product__title a { color: var(--ka-ink); }
[data-products] .price { display: block; font-size: 19px; color: var(--ka-ink); margin: 0 24px 20px; }
[data-products] .ct-woo-card-actions { padding: 0 24px; margin-top: 0; }
[data-products] .ct-woo-card-actions .button {
  width: 100%;
  background: transparent;
  color: var(--ka-ink);
  border-color: var(--ka-ink);
}
[data-products] > li.product:hover .ct-woo-card-actions .button,
[data-products] .ct-woo-card-actions .button:hover {
  background: var(--ka-ink);
  color: var(--ka-white);
}
[data-products] .added_to_cart {
  display: inline-block;
  margin-top: 12px;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-color: var(--ka-gold);
  text-underline-offset: .3em;
}

/* ============================================
   Cart + Checkout (WooCommerce blocks)
   Hairlines, Fraunces totals, ink buttons, mint used sparingly.
   ============================================ */
.woocommerce-cart .hero-section[data-type="type-2"],
.woocommerce-checkout .hero-section[data-type="type-2"] { padding-top: 0; }
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { font-family: var(--ka-sans); color: var(--ka-ink); }

/* line items table */
.wc-block-cart-items { border-collapse: collapse; }
.wc-block-cart-items th,
.wc-block-cart-items__header {
  font-family: var(--ka-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  color: var(--ka-muted);
}
.wc-block-cart-items td,
.wc-block-cart-items th,
.wc-block-cart-items__row { border-color: var(--ka-hairline) !important; }
.wc-block-components-product-name {
  font-family: var(--ka-serif);
  font-size: 20px !important;
  color: var(--ka-ink) !important;
  text-decoration: none;
}
.wc-block-cart-item__image img { background: var(--ka-white); }
.wc-block-components-product-metadata { color: var(--ka-muted); font-size: 13px; }
.wc-block-cart-item__remove-link { color: var(--ka-muted) !important; font-size: 12px !important; }
.wc-block-components-quantity-selector {
  border-radius: 0 !important;
  border-color: var(--ka-mint-deep) !important;
}
.wc-block-components-quantity-selector::after { border-radius: 0 !important; border-color: var(--ka-mint-deep) !important; }

/* sidebars / order summary */
.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary,
.wp-block-woocommerce-checkout-order-summary-block { border-color: var(--ka-hairline) !important; }
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
  background: var(--ka-white);
  border: 1px solid var(--ka-hairline) !important;
  border-radius: 0 !important;
  padding: 8px 24px 20px;
}
.wc-block-cart__totals-title,
.wc-block-components-checkout-order-summary__title-text,
.wp-block-woocommerce-cart-order-summary-heading-block {
  font-family: var(--ka-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ka-gold) !important;
}
.wc-block-components-totals-item__value,
.wc-block-components-product-price,
.wc-block-components-order-summary-item__total-price { font-family: var(--ka-serif); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-family: var(--ka-sans); font-weight: 500; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 26px !important; font-weight: 400 !important; }
.wc-block-components-totals-shipping .wc-block-components-totals-item__description,
.wc-block-components-shipping-address { color: var(--ka-muted); font-size: 13px; }

/* checkout steps + fields */
.wc-block-components-checkout-step__title,
.wc-block-components-title.wc-block-components-title {
  font-family: var(--ka-serif) !important;
  font-weight: 400 !important;
  font-size: 24px !important;
  color: var(--ka-ink);
}
.wc-block-components-checkout-step { border-color: var(--ka-hairline) !important; }
.wc-block-components-checkout-step__container::after,
.wc-block-components-checkout-step::after { background: var(--ka-hairline) !important; }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select__select,
.wc-block-components-textarea {
  border-radius: 0 !important;
  border-color: var(--ka-mint-deep) !important;
  background: var(--ka-white) !important;
}
.wc-block-components-text-input.is-active input:focus,
.wc-blocks-components-select__select:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus {
  border-color: var(--ka-gold) !important;
  box-shadow: var(--ka-focus-ring) !important;
  outline: none !important;
}
.wc-blocks-components-select .wc-blocks-components-select__container { border-radius: 0 !important; }

/* radio panels (shipping + payment options) */
.wc-block-components-radio-control--highlight-checked,
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option {
  border-radius: 0 !important;
}
.wc-block-components-radio-control--highlight-checked::after,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
  border-radius: 0 !important;
  box-shadow: inset 0 0 0 1px var(--ka-ink) !important;
}
.wc-block-components-radio-control--highlight-checked { box-shadow: inset 0 0 0 1px var(--ka-hairline); }
.wc-block-components-radio-control__input:checked { border-color: var(--ka-ink) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--ka-ink) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { border-radius: 0 !important; }
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content { color: var(--ka-muted); font-size: 14px; }
.wc-block-checkout__terms,
.wc-block-components-checkout-return-to-cart-button { font-size: 13px; color: var(--ka-muted); }

/* primary actions: full-width ink */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button { width: 100%; min-height: 56px; }

/* Empty cart (page content: .ka-empty-cart) */
.ka-empty-cart { text-align: center; padding: 40px 0 24px; }
.ka-empty-cart__title { font-size: clamp(28px, 3vw, 38px); margin: 0 0 12px; }
.ka-empty-cart p { margin: 0 auto 28px; max-width: 42ch; }

/* ============================================
   WooCommerce — responsive
   ============================================ */
@media (max-width: 999.98px) {
  .single-product .product-entry-wrapper { grid-template-columns: 1fr; gap: 36px; }
  .single-product .entry-summary { position: static; }
  .single-product .woocommerce-tabs[data-type^="type-4"] > article > .entry-content { padding-left: 0; }
  .single-product .woocommerce-tabs[data-type^="type-4"] > article > .entry-content > h2 { position: static; width: auto; margin-bottom: 24px; }
}
@media (max-width: 689.98px) {
  .single-product .hero-section[data-type="type-1"] { margin-bottom: 20px; }
  .single-product .flexy-pills[data-type="thumbs"] ol { grid-auto-columns: calc((100% - 24px) / 4.4); }
  .single-product .woocommerce-tabs[data-type^="type-4"] > article > .entry-content { padding: 40px 0; }
  .ka-pdp-desc.has-video { grid-template-columns: 1fr; gap: 32px; }
  .ka-pdp-video { max-width: 260px; }
  [data-products] { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Shop card image: square white stage, whole product visible (overrides Blocksy's 4/3 card crop) */
[data-products] > li.product > figure .ct-media-container { aspect-ratio: 1 / 1; background: var(--ka-white); }
[data-products] > li.product > figure .ct-media-container img { width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: contain; }

/* Cart/checkout fixes: blocks sit in the page column; block buttons + product links
   opt out of the in-copy gold-underline link style; single outline on selected radio panels */
.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide { width: min(var(--ka-container), 90vw); max-width: none; margin-left: auto !important; margin-right: auto !important; }
.entry-content a.wc-block-components-button,
.entry-content a.wc-block-components-button:hover {
  color: var(--ka-white) !important;
  text-decoration: none !important;
}
.entry-content a.wc-block-components-product-name,
.entry-content .wc-block-cart-item__image a { text-decoration: none !important; }
.entry-content a.wc-block-components-product-name:hover { color: var(--ka-gold) !important; }
.wc-block-components-radio-control--highlight-checked { box-shadow: none; }
.wc-block-components-radio-control--highlight-checked::after { border: 1px solid var(--ka-ink) !important; box-shadow: none !important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: none !important; }

/* PDP: ajax "View cart" link beside Add to cart = secondary button; clean active thumb */
.single-product .ct-cart-actions .added_to_cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 24px;
  border: 1px solid var(--ka-ink);
  background: transparent;
  color: var(--ka-ink);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 0;
}
.single-product .ct-cart-actions .added_to_cart:hover { background: var(--ka-ink); color: var(--ka-white); }
.single-product .flexy-pills[data-type="thumbs"] li .ct-media-container { border: 0 !important; border-radius: 0 !important; }
.single-product .flexy-pills[data-type="thumbs"] li .ct-media-container::after { display: none !important; }
.wc-block-components-radio-control--highlight-checked::after { display: none !important; }
.wc-block-components-radio-control--highlight-checked { border: 1px solid var(--ka-ink) !important; border-radius: 0 !important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option { border: 0 !important; box-shadow: none !important; }
.wc-block-components-order-summary-item .wc-block-components-product-name { font-family: var(--ka-serif); font-size: 18px !important; }

/* ============================================
   Homepage (Phase 5)
   Markup: Home page content (Custom HTML blocks), built by scripts/build_home.php.
   Sections: hero · USP strip · product feature · origin story (ink) · ritual 3-up ·
   giving back (mint) · FAQ teaser · journal teaser · newsletter (ink, WPForms).
   ============================================ */

/* Full-bleed sections flush against each other inside Blocksy's constrained content */
.entry-content > .alignfull:is(.ka-hero, .ka-usp, .ka-band) {
  width: 100%;
  max-width: none;
  margin-top: 0;
  margin-bottom: 0;
}
.home .woocommerce-notices-wrapper:empty,
.home .blocksy-woo-messages-default:not(:has(.woocommerce-message, .woocommerce-error, .woocommerce-info)) { display: none; }
.ka-center { text-align: center; }
.ka-hero figure, .ka-feature figure, .ka-story figure, .ka-ritual figure, .ka-journal figure { margin: 0; }

/* Shared: quiet text link with gold hairline (overrides the in-copy link rule) */
.entry-content a.ka-arrow-link {
  display: inline-block;
  font-family: var(--ka-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.7em;
  text-decoration-color: var(--ka-gold);
  padding-bottom: 6px;
}
.entry-content .ka-band--ink a.ka-arrow-link { color: var(--ka-paper) !important; }
.entry-content .ka-band--ink a.ka-arrow-link:hover { color: var(--ka-gold) !important; }

/* Shared: section headers */
.ka-section-head { margin-bottom: clamp(40px, 5vw, 64px); }
.ka-section-head h2 { margin: 0; }
.ka-section-head--center { text-align: center; max-width: 640px; margin-left: auto; margin-right: auto; }
.ka-section-head__intro { margin: 20px auto 0; color: var(--ka-muted); max-width: 56ch; }
.ka-section-head--split { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }

/* 1 — Hero: full-bleed grove, ink type set in the clear sky (upper left) */
.ka-hero {
  position: relative;
  display: flex;
  align-items: flex-start;
  min-height: clamp(600px, 88vh, 900px);
  overflow: hidden;
  background: #B9C3C2;   /* sky tone while the image loads */
}
.ka-hero__media,
.ka-hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.ka-hero__media img { object-fit: cover; object-position: 62% 72%; }
.ka-hero__inner {
  position: relative;
  padding-top: clamp(56px, 9vh, 112px);
  padding-bottom: 64px;
}
.ka-hero__head,
.ka-hero__body { max-width: 600px; }
.ka-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--ka-ink);
  margin-bottom: 22px;
}
.ka-hero__eyebrow::before { content: ""; width: 32px; height: 1px; background: var(--ka-gold); }
.ka-hero__title {
  margin: 0;
  font-size: clamp(44px, 5.2vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.02em;
}
.ka-hero__title em { display: block; font-style: italic; font-weight: 400; }
.ka-hero__lede {
  margin: 26px 0 34px;
  max-width: 40ch;
  font-size: 17px;
  line-height: 1.6;
  color: var(--ka-ink);
}
.ka-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.ka-hero .ka-hero__btn2 { background: rgba(251, 250, 247, 0.55); color: var(--ka-ink); }
.ka-hero .ka-hero__btn2:hover { background: var(--ka-ink); color: var(--ka-white); }

/* 2 — USP strip */
.ka-usp { background: var(--ka-white); border-bottom: 1px solid var(--ka-hairline); }
.ka-usp__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  list-style: none;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}
.ka-usp__list li {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 26px 12px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ka-ink);
  text-align: center;
}
.ka-usp__list li + li { border-left: 1px solid var(--ka-hairline); }
.ka-usp__list li::before {
  content: "";
  flex: none;
  width: 5px;
  height: 5px;
  background: var(--ka-gold);
  transform: rotate(45deg);
}

/* 3 — Product feature: editorial split */
.ka-feature__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(48px, 7vw, 112px);
  align-items: center;
}
.ka-feature__media { position: relative; }
.ka-feature__media::after {   /* offset gold hairline frame */
  content: "";
  position: absolute;
  inset: 22px -22px -22px 22px;
  border: 1px solid var(--ka-hairline-gold);
  z-index: 0;
  pointer-events: none;
}
.ka-feature__media img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 60% 50%;
}
.ka-feature__text h2 { font-size: clamp(40px, 4.4vw, 60px); line-height: 1.05; margin: 0 0 14px; }
.ka-feature__lead {
  font-family: var(--ka-serif);
  font-style: italic;
  font-size: 20px;
  line-height: 1.4;
  color: var(--ka-muted);
  margin: 0 0 22px;
  max-width: 34ch;
}
.ka-feature__text > p:not([class]) { max-width: 48ch; }
.ka-feature__buy {
  margin-top: 30px;
  padding-top: 28px;
  border-top: 1px solid var(--ka-hairline);
}
.ka-feature__price { display: flex; align-items: baseline; gap: 14px; margin: 0 0 22px; }
.ka-feature__price .price { font-size: 30px; color: var(--ka-ink); }
.ka-feature__size { font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ka-muted); }
.ka-feature__ctas { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 30px; }
.entry-content a.ka-feature__more { font-size: 14px; }

/* 4 — Origin story (ink band) */
.ka-story__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(56px, 8vw, 128px);
  align-items: center;
}
.ka-story__media { position: relative; padding-bottom: 72px; }
.ka-story__main { width: 78%; }
.ka-story__main img,
.ka-story__inset img { display: block; width: 100%; height: auto; object-fit: cover; }
.ka-story__main img { aspect-ratio: 4 / 5; }
.ka-story__inset {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 54%;
  border: 10px solid var(--ka-ink);
}
.ka-story__inset img { aspect-ratio: 3 / 2; }
.ka-story__text h2 { margin: 0; font-size: clamp(36px, 4vw, 54px); }
.ka-story__text .ka-sep { margin: 26px 0 28px; max-width: 160px; }
.ka-story__text p { color: rgba(251, 250, 247, 0.78); max-width: 50ch; }
.ka-story__quote {
  margin: 30px 0;
  padding: 0 0 0 26px;
  border-left: 1px solid var(--ka-gold);
}
.ka-story__quote p {
  margin: 0;
  font-family: var(--ka-serif);
  font-style: italic;
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.35;
  color: var(--ka-paper) !important;
}
.ka-story__text .ka-story__sign {
  margin: 26px 0 30px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ka-gold);
}

/* 5 — Ritual 3-up (staggered on desktop) */
.ka-ritual__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 40px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.ka-ritual__card:nth-child(2) { margin-top: 72px; }
.ka-ritual__media { overflow: hidden; margin-bottom: 24px !important; }
.ka-ritual__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.ka-ritual__num { display: block; font-family: var(--ka-serif); font-style: italic; font-size: 16px; color: var(--ka-gold); margin-bottom: 6px; }
.ka-ritual__card h3 { margin: 0 0 10px; font-size: 26px; }
.ka-ritual__card p { margin: 0; color: var(--ka-muted); font-size: 15px; max-width: 38ch; }
.ka-ritual .ka-center { margin: clamp(48px, 5vw, 64px) 0 0; }

/* 6 — Giving back (mint band) */
.ka-giving__inner { text-align: center; }
.ka-giving__mark {
  display: block;
  font-family: "Noto Sans Tifinagh", var(--ka-sans);
  font-size: 34px;
  line-height: 1;
  color: var(--ka-ink);
  margin-bottom: 26px;
}
.ka-giving h2 { margin: 0 0 26px; }
.ka-giving__pledge {
  font-family: var(--ka-serif);
  font-style: italic;
  font-size: clamp(22px, 2.5vw, 30px);
  line-height: 1.35;
  margin: 0 auto 20px;
  max-width: 30ch;
}
.ka-giving__inner > p:not([class]) { margin: 0 auto 32px; max-width: 54ch; color: #3C4543; }

/* 7 — FAQ teaser: details/summary accordion */
.ka-faq__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
  gap: clamp(40px, 7vw, 112px);
  align-items: start;
}
.ka-faq__head h2 { margin: 0 0 32px; }
.ka-faq__item { border-top: 1px solid var(--ka-hairline); }
.ka-faq__item:last-child { border-bottom: 1px solid var(--ka-hairline); }
.ka-faq__item summary {
  position: relative;
  display: block;
  list-style: none;
  cursor: pointer;
  padding: 24px 48px 24px 0;
  font-family: var(--ka-serif);
  font-size: clamp(19px, 1.7vw, 22px);
  line-height: 1.35;
  color: var(--ka-ink);
}
.ka-faq__item summary::-webkit-details-marker { display: none; }
.ka-faq__item summary:hover { color: var(--ka-ink-hover); }
.ka-faq__icon { position: absolute; right: 6px; top: 50%; width: 14px; height: 14px; transform: translateY(-50%); }
.ka-faq__icon::before,
.ka-faq__icon::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 14px;
  height: 1.5px;
  margin-top: -0.75px;
  background: var(--ka-gold);
  transition: transform .25s ease;
}
.ka-faq__icon::after { transform: rotate(90deg); }
.ka-faq__item[open] .ka-faq__icon::after { transform: rotate(0deg); }
.ka-faq__answer p { margin: 0; padding: 0 48px 26px 0; color: var(--ka-muted); max-width: 62ch; }

/* 8 — Journal teaser */
.ka-journal__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 40px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.entry-content .ka-journal__card a { --theme-text-decoration: none; display: block; text-decoration: none !important; color: var(--ka-ink); }
.ka-journal__media { overflow: hidden; margin-bottom: 22px !important; }
.ka-journal__media img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .6s ease; }
.ka-journal__card a:hover img { transform: scale(1.03); }
.ka-journal__card .ka-eyebrow { margin-bottom: 8px; }
.ka-journal__card h3 { margin: 0; font-size: 24px; transition: color .2s ease; }
.ka-journal__card a:hover h3 { color: var(--ka-ink-hover); text-decoration: underline; text-decoration-color: var(--ka-gold); text-decoration-thickness: 1px; text-underline-offset: .2em; }

/* 9 — Newsletter (ink band) + WPForms email-only form */
.ka-newsletter__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: center;
}
.ka-newsletter h2 { margin: 0 0 14px; }
.ka-newsletter__text p:not(.ka-eyebrow) { margin: 0; color: rgba(251, 250, 247, 0.78); max-width: 44ch; }
.ka-newsletter .wpforms-container {
  --wpforms-field-border-radius: 0px;
  --wpforms-button-border-radius: 0px;
  --wpforms-field-size-input-height: 54px;
  --wpforms-button-size-height: 54px;
  --wpforms-field-background-color: transparent;
  --wpforms-field-border-color: rgba(251, 250, 247, 0.4);
  --wpforms-field-text-color: #FBFAF7;
  --wpforms-button-background-color: #FBFAF7;
  --wpforms-button-text-color: #14181A;
  --wpforms-label-error-color: #E6C88F;
  margin: 0 !important;
}
.ka-newsletter .wpforms-container .wpforms-form { display: flex; align-items: flex-start; }
.ka-newsletter .wpforms-container .wpforms-field-container { flex: 1; min-width: 0; }
.ka-newsletter .wpforms-container .wpforms-field { padding: 0 !important; }
.ka-newsletter div.wpforms-container-full .wpforms-form input[type="email"] {
  width: 100%;
  max-width: none;
  height: 54px;
  padding: 0 18px;
  background: transparent;
  border: 1px solid rgba(251, 250, 247, 0.4);
  border-right: 0;
  border-radius: 0;
  color: var(--ka-paper);
  font-family: var(--ka-sans);
  font-size: 15px;
  box-shadow: none;
}
.ka-newsletter div.wpforms-container-full .wpforms-form input[type="email"]::placeholder { color: rgba(251, 250, 247, 0.6); }
.ka-newsletter div.wpforms-container-full .wpforms-form input[type="email"]:focus {
  border-color: var(--ka-gold);
  border-right: 1px solid var(--ka-gold);
  box-shadow: var(--ka-focus-ring);
}
.ka-newsletter div.wpforms-container-full .wpforms-form .wpforms-submit-container { margin: 0 !important; padding: 0 !important; }
.ka-newsletter div.wpforms-container-full .wpforms-form button[type="submit"] {
  height: 54px;
  padding: 0 32px;
  background: var(--ka-paper);
  border: 1px solid var(--ka-paper);
  border-radius: 0;
  color: var(--ka-ink);
  font-family: var(--ka-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: none;
}
.ka-newsletter div.wpforms-container-full .wpforms-form button[type="submit"]:hover { background: var(--ka-mint); border-color: var(--ka-mint); }
.ka-newsletter div.wpforms-container-full .wpforms-form button[type="submit"]:focus-visible { outline: 2px solid var(--ka-gold); outline-offset: 2px; }
.ka-newsletter div.wpforms-container-full .wpforms-form em.wpforms-error,
.ka-newsletter div.wpforms-container-full .wpforms-form label.wpforms-error { color: #E6C88F; font-size: 13px; margin-top: 8px; }
.ka-newsletter .wpforms-confirmation-container-full,
.ka-newsletter div[submit-success] > .wpforms-confirmation-container-full {
  background: transparent !important;
  border: 1px solid var(--ka-hairline-gold) !important;
  border-left: 3px solid var(--ka-gold) !important;
  border-radius: 0 !important;
  color: var(--ka-paper) !important;
  padding: 18px 22px !important;
  margin: 0 !important;
}
.ka-newsletter .wpforms-confirmation-container-full p { margin: 0; color: var(--ka-paper) !important; font-family: var(--ka-serif); font-size: 20px; }

/* Homepage — tablet */
@media (max-width: 999.98px) {
  .ka-ritual__grid,
  .ka-journal__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ka-ritual__card:nth-child(2) { margin-top: 0; }
  .ka-ritual__card:nth-child(3) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 clamp(24px, 3vw, 40px); align-items: center; }
  .ka-ritual__card:nth-child(3) .ka-ritual__media { grid-row: 1 / span 3; margin-bottom: 0 !important; }
  .ka-journal__card:nth-child(3) { display: none; }
  .ka-faq__grid { grid-template-columns: 1fr; gap: 36px; }
  .ka-faq__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
  .ka-faq__head h2 { margin: 0; }
  .ka-faq__head .ka-eyebrow { width: 100%; margin-bottom: -10px; }
}

/* Homepage — hero reflows below 900px: image block with the title in the sky, lede + CTAs below on paper */
@media (max-width: 899.98px) {
  .ka-hero { display: grid; min-height: 0; background: var(--ka-paper); }
  .ka-hero__media { position: relative; grid-area: 1 / 1; height: clamp(440px, 70vw, 600px); }
  .ka-hero__media img { object-position: 64% 78%; }
  .ka-hero__inner { display: contents; }
  .ka-hero__head {
    grid-area: 1 / 1;
    position: relative;
    align-self: start;
    width: min(var(--ka-container), 90vw);
    margin: 0 auto;
    padding-top: clamp(36px, 7vw, 64px);
  }
  .ka-hero__body {
    grid-area: 2 / 1;
    width: min(var(--ka-container), 90vw);
    max-width: none;
    margin: 0 auto;
    padding: 30px 0 48px;
  }
  .ka-hero__lede { margin-top: 0; }
  .ka-hero .ka-hero__btn2 { background: transparent; }

  .ka-feature__grid,
  .ka-story__grid,
  .ka-newsletter__grid { grid-template-columns: 1fr; }
  .ka-feature__media { max-width: 560px; margin-right: 22px !important; }
  .ka-story__media { max-width: 560px; }
}

/* Homepage — phones */
@media (max-width: 599.98px) {
  .ka-hero__media { height: auto; aspect-ratio: 1100 / 1575; max-height: 640px; }
  .ka-hero__media img { object-position: 50% 100%; }
  .ka-hero__head { padding-top: 34px; }
  .ka-hero__eyebrow { margin-bottom: 14px; font-size: 10px; }
  .ka-hero__title { font-size: clamp(36px, 10.4vw, 44px); }
  .ka-hero__body { padding: 28px 0 44px; }
  .ka-hero__lede { font-size: 16px; }
  .ka-hero__ctas { flex-direction: column; }
  .ka-hero__ctas .ka-btn { width: 100%; }

  .ka-usp__list { grid-template-columns: 1fr 1fr; }
  .ka-usp__list li { padding: 18px 8px; font-size: 10.5px; letter-spacing: 0.12em; gap: 9px; }
  .ka-usp__list li:nth-child(3) { border-left: 0; }
  .ka-usp__list li:nth-child(n+3) { border-top: 1px solid var(--ka-hairline); }

  .ka-feature__media::after { inset: 14px -14px -14px 14px; }
  .ka-feature__media { margin-right: 14px !important; }
  .ka-story__media { padding-bottom: 56px; }
  .ka-story__inset { border-width: 6px; width: 58%; }

  .ka-ritual__grid,
  .ka-journal__grid { grid-template-columns: 1fr; gap: 44px; }
  .ka-ritual__card:nth-child(3) { display: block; }
  .ka-ritual__card:nth-child(3) .ka-ritual__media { margin-bottom: 24px !important; }
  .ka-journal__card:nth-child(3) { display: block; }

  .ka-newsletter .wpforms-container .wpforms-form { flex-direction: column; align-items: stretch; }
  .ka-newsletter div.wpforms-container-full .wpforms-form input[type="email"] { border-right: 1px solid rgba(251, 250, 247, 0.4); }
  .ka-newsletter div.wpforms-container-full .wpforms-form .wpforms-submit-container { margin-top: 10px !important; }
  .ka-newsletter div.wpforms-container-full .wpforms-form button[type="submit"] { width: 100%; }
}

/* ============================================
   Pages & Journal (Phase 6)
   Markup: scripts/build_pages.php (Our Story, Contact, FAQ, policies), scripts/build_journal.php
   (guides), child templates home.php (journal index) + single-post.php (guide).
   ============================================ */

.entry-content > .alignfull.ka-landscape { width: 100%; max-width: none; margin-top: 0; margin-bottom: 0; }
.ka-landscape figure, .ka-founder figure, .ka-craft figure, .ka-cta figure, .ka-post__cover { margin: 0; }
.ka-meta { margin: 0; font-size: 13px; letter-spacing: 0.02em; color: var(--ka-muted); }
.ka-page-title { margin: 0; font-size: clamp(40px, 5vw, 60px); line-height: 1.05; letter-spacing: -0.02em; }

/* Quiet links + cards outside .entry-content (journal templates) */
.ka-journal a.ka-arrow-link,
.ka-post-cta a.ka-arrow-link {
  display: inline-block;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.7em;
  text-decoration-color: var(--ka-gold);
  padding-bottom: 6px;
}
.ka-journal__card a { display: block; text-decoration: none !important; color: var(--ka-ink); }

/* Page hero (centred, narrow): Our Story, Journal index */
.ka-page-hero__inner { text-align: center; }
.ka-page-hero__title { margin: 0; font-size: clamp(44px, 6vw, 80px); line-height: 1.02; letter-spacing: -0.02em; }
.ka-page-hero__title em { font-style: italic; }
.ka-page-hero__lede {
  margin: 26px auto 0;
  max-width: 34ch;
  font-family: var(--ka-serif);
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.4;
  color: var(--ka-muted);
}
.ka-page-hero .ka-sep { margin: 44px auto 0; }

/* Our Story — landscape band */
.ka-landscape { background: var(--ka-paper); }
.ka-landscape__media img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; object-position: 50% 60%; }
.ka-landscape__caption {
  margin: 18px auto 0;
  padding-bottom: 8px;
  font-size: 13px;
  color: var(--ka-muted);
  font-style: italic;
  font-family: var(--ka-serif);
}

/* Our Story — founder narrative */
.ka-founder__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
  gap: clamp(48px, 8vw, 128px);
  align-items: center;
}
.ka-founder__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.ka-founder__text h2 { margin: 0 0 28px; font-size: clamp(34px, 3.8vw, 50px); }
.ka-founder__text > p { max-width: 54ch; }
.ka-pullquote { margin: 34px 0; padding: 0 0 0 26px; border-left: 1px solid var(--ka-gold); }
.ka-pullquote p {
  margin: 0;
  font-family: var(--ka-serif);
  font-style: italic;
  font-size: clamp(22px, 2.3vw, 30px);
  line-height: 1.3;
  color: var(--ka-ink);
}

/* Our Story — the name (ink) */
.ka-name__inner { text-align: center; }
.ka-name__mark {
  display: block;
  font-family: "Noto Sans Tifinagh", var(--ka-sans);
  font-size: 34px;
  line-height: 1;
  color: var(--ka-gold);
  margin-bottom: 26px;
}
.ka-name h2 { margin: 0 0 24px; font-size: clamp(36px, 4.4vw, 58px); }
.ka-name__lead {
  font-family: var(--ka-serif);
  font-style: italic;
  font-size: clamp(21px, 2.3vw, 28px);
  line-height: 1.4;
  margin: 0 auto 22px;
  max-width: 34ch;
  color: var(--ka-paper);
}
.ka-name__inner > p:not([class]) { margin: 0 auto; max-width: 56ch; color: rgba(251, 250, 247, 0.78); }

/* Our Story — from tree to bottle */
.ka-craft__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
  gap: clamp(48px, 8vw, 128px);
  align-items: center;
}
.ka-craft__text h2 { margin: 0 0 24px; }
.ka-craft__text > p { max-width: 54ch; }
.ka-craft__media img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.ka-figures { list-style: none; margin: 36px 0 36px; padding: 0; border-top: 1px solid var(--ka-hairline); }
.ka-figures li {
  display: grid;
  grid-template-columns: minmax(0, 170px) minmax(0, 1fr);
  gap: 24px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--ka-hairline);
}
.ka-figures__num { font-family: var(--ka-serif); font-size: 26px; line-height: 1.2; color: var(--ka-ink); }
.ka-figures__label { font-size: 15px; color: var(--ka-muted); }

/* Our Story — giving back (extends the homepage .ka-giving) */
.ka-giving--story { scroll-margin-top: 90px; }
.ka-giving__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(32px, 6vw, 96px);
  margin-top: clamp(48px, 6vw, 72px);
  padding-top: clamp(40px, 5vw, 56px);
  border-top: 1px solid var(--ka-mint-deep);
}
.ka-giving__cols h3 { margin: 0 0 16px; font-size: clamp(22px, 2vw, 26px); }
.ka-giving__cols p { color: #3C4543; max-width: 52ch; }
.ka-giving__cols .ka-arrow-link { color: var(--ka-ink); }

/* Closing product CTA (Our Story) */
.ka-cta__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 7vw, 112px);
  align-items: center;
}
.ka-cta__media img { display: block; width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; }
.ka-cta__text h2 { margin: 0 0 16px; font-size: clamp(36px, 4vw, 54px); }
.ka-cta__text > p:not([class]) { max-width: 44ch; }
.ka-cta__price { display: flex; align-items: baseline; gap: 14px; margin: 24px 0 26px; }
.ka-cta__price .price { font-size: 28px; color: var(--ka-ink); }

/* Contact */
.ka-contact__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.8fr);
  gap: clamp(48px, 8vw, 128px);
  align-items: start;
}
.ka-contact__lede { margin: 20px 0 40px; font-family: var(--ka-serif); font-size: clamp(20px, 2vw, 24px); line-height: 1.4; color: var(--ka-muted); }
.ka-contact__details { padding-top: 8px; border-top: 1px solid var(--ka-hairline-gold); }
.ka-contact__block { padding: 24px 0; border-bottom: 1px solid var(--ka-hairline); }
.ka-contact__block p { margin: 0 0 8px; font-size: 15px; color: var(--ka-muted); }
.ka-contact__block p:last-child { margin-bottom: 0; }
.ka-contact .ka-contact__label {
  margin: 0 0 10px;
  font-family: var(--ka-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ka-gold);
}
.entry-content a.ka-contact__email { font-family: var(--ka-serif); font-size: 22px; color: var(--ka-ink); }
.ka-contact__links { list-style: none; margin: 0; padding: 0; }
.ka-contact__links li { margin: 0 0 6px; font-size: 15px; }
.ka-contact__legal { margin: 20px 0 0; font-size: 12px; color: var(--ka-muted); }

/* Contact — WPForms: square fields, gold focus, ink button */
.ka-contact .wpforms-container {
  --wpforms-field-border-radius: 0px;
  --wpforms-button-border-radius: 0px;
  --wpforms-field-border-color: var(--ka-mint-deep);
  --wpforms-field-text-color: var(--ka-ink);
  --wpforms-label-color: var(--ka-ink);
  --wpforms-button-background-color: var(--ka-ink);
  --wpforms-button-text-color: #FFFFFF;
  --wpforms-field-size-input-height: 50px;
  --wpforms-button-size-height: 52px;
  margin: 0 !important;
}
.ka-contact div.wpforms-container-full .wpforms-form .wpforms-field { padding: 0 0 22px !important; }
.ka-contact div.wpforms-container-full .wpforms-form .wpforms-field-label {
  margin: 0 0 8px;
  font-family: var(--ka-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ka-ink);
}
.ka-contact div.wpforms-container-full .wpforms-form .wpforms-required-label { color: var(--ka-gold); }
.ka-contact div.wpforms-container-full .wpforms-form input[type="text"],
.ka-contact div.wpforms-container-full .wpforms-form input[type="email"],
.ka-contact div.wpforms-container-full .wpforms-form textarea {
  width: 100%;
  max-width: none;
  border: 1px solid var(--ka-mint-deep);
  border-radius: 0;
  background: var(--ka-white);
  color: var(--ka-ink);
  font-family: var(--ka-sans);
  font-size: 15px;
  box-shadow: none;
}
.ka-contact div.wpforms-container-full .wpforms-form textarea { min-height: 180px; padding: 14px 16px; }
.ka-contact div.wpforms-container-full .wpforms-form input:focus,
.ka-contact div.wpforms-container-full .wpforms-form textarea:focus {
  border-color: var(--ka-gold);
  box-shadow: var(--ka-focus-ring);
  outline: none;
}
.ka-contact div.wpforms-container-full .wpforms-form .wpforms-submit-container { padding: 6px 0 0 !important; }
.ka-contact div.wpforms-container-full .wpforms-form button[type="submit"] {
  height: 52px;
  padding: 0 40px;
  background: var(--ka-ink);
  border: 1px solid var(--ka-ink);
  border-radius: 0;
  color: var(--ka-white);
  font-family: var(--ka-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow: none;
}
.ka-contact div.wpforms-container-full .wpforms-form button[type="submit"]:hover { background: var(--ka-ink-hover); border-color: var(--ka-ink-hover); }
.ka-contact div.wpforms-container-full .wpforms-form button[type="submit"]:focus-visible { outline: 2px solid var(--ka-gold); outline-offset: 2px; }
.ka-contact div.wpforms-container-full .wpforms-form em.wpforms-error,
.ka-contact div.wpforms-container-full .wpforms-form label.wpforms-error { color: #9A3B2E; font-size: 13px; margin-top: 6px; }
.ka-contact .wpforms-confirmation-container-full,
.ka-contact div[submit-success] > .wpforms-confirmation-container-full {
  background: var(--ka-white) !important;
  border: 1px solid var(--ka-hairline) !important;
  border-left: 3px solid var(--ka-gold) !important;
  border-radius: 0 !important;
  color: var(--ka-ink) !important;
  padding: 22px 24px !important;
  margin: 0 !important;
}
.ka-contact .wpforms-confirmation-container-full p { margin: 0; color: var(--ka-ink) !important; font-family: var(--ka-serif); font-size: 20px; line-height: 1.4; }

/* FAQ page (accordion reuses the homepage .ka-faq__item) */
.ka-faq-page__head { text-align: center; margin-bottom: clamp(40px, 5vw, 64px); }
.ka-faq-page__nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; list-style: none; margin: 32px 0 0; padding: 0; }
.entry-content .ka-faq-page__nav a {
  display: inline-block;
  padding: 9px 18px;
  border: 1px solid var(--ka-mint-deep);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background-color .2s ease, border-color .2s ease;
}
.entry-content .ka-faq-page__nav a:hover { background: var(--ka-mint); border-color: var(--ka-mint); }
.ka-faq-group { scroll-margin-top: 90px; }
.ka-faq-group + .ka-faq-group { margin-top: clamp(48px, 6vw, 72px); }
.ka-faq-group__title { margin: 0 0 12px; font-size: clamp(26px, 2.6vw, 32px); }
.ka-faq-page .ka-faq__answer p { max-width: none; }
.ka-faq-page .ka-faq__answer p + p { padding-top: 0; }
.ka-faq-page .ka-faq__answer p:not(:last-child) { padding-bottom: 14px; }
.ka-help__inner { display: flex; justify-content: space-between; align-items: center; gap: 24px 40px; flex-wrap: wrap; }
.ka-help h2 { margin: 0 0 6px; font-size: clamp(26px, 2.6vw, 32px); }
.ka-help p { margin: 0; color: #3C4543; }

/* Legal / policy pages (Blocksy narrow column; body.ka-legal-page) */
.ka-legal__head { padding: clamp(24px, 4vw, 48px) 0 clamp(24px, 3vw, 36px); margin-bottom: 36px; border-bottom: 1px solid var(--ka-hairline-gold); }
.ka-legal__head h1 { margin: 0; font-size: clamp(40px, 5vw, 58px); letter-spacing: -0.02em; }
.ka-legal__intro { margin: 18px 0 0; font-family: var(--ka-serif); font-style: italic; font-size: 20px; color: var(--ka-muted); }
.ka-legal-page .entry-content { font-size: 16px; line-height: 1.75; }
.ka-legal-page .entry-content h2 { margin: 48px 0 14px; font-size: clamp(24px, 2.4vw, 30px); }
.ka-legal-page .entry-content h3 { margin: 30px 0 10px; font-size: 20px; }
.ka-legal-page .entry-content ul { padding-left: 1.2em; }
.ka-legal-page .entry-content li::marker { color: var(--ka-gold); }
.ka-legal__foot { margin-top: 56px; padding: 22px 24px; background: var(--ka-mint); }
.ka-legal__foot p { margin: 0; font-size: 15px; }

/* Journal index */
.ka-journal-index .ka-page-hero { padding-top: clamp(56px, 8vw, 104px); padding-bottom: clamp(48px, 6vw, 72px); }
.ka-journal__grid--index { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(40px, 5vw, 64px) clamp(24px, 4vw, 56px); }
.ka-journal__grid--index .ka-journal__card h3 { font-size: clamp(26px, 2.6vw, 34px); }
.ka-journal__excerpt { margin: 12px 0 14px; color: var(--ka-muted); max-width: 52ch; }
.ka-journal__card .ka-meta { margin-top: 10px; }
.ka-journal-index .nav-links { margin-top: 56px; text-align: center; }

/* Journal guide */
.ka-post__head { padding-top: clamp(48px, 7vw, 96px); text-align: center; }
.ka-post__head .ka-eyebrow a { color: inherit; text-decoration: none; }
.ka-post__head .ka-eyebrow a:hover { color: var(--ka-ink); }
.ka-post__title { margin: 0; font-size: clamp(40px, 5.4vw, 70px); line-height: 1.04; letter-spacing: -0.02em; }
.ka-post__lead {
  margin: 26px auto 22px;
  max-width: 44ch;
  font-family: var(--ka-serif);
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.45;
  color: var(--ka-muted);
}
.ka-post__cover { margin-top: clamp(40px, 5vw, 64px) !important; }
.ka-post__cover img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; max-height: 720px; object-fit: cover; }
.ka-post__body { padding: clamp(48px, 6vw, 80px) 0 clamp(72px, 8vw, 112px); font-size: 17px; line-height: 1.75; }
.ka-post__body > * { max-width: 66ch; margin-left: auto; margin-right: auto; }
.ka-post__body h2 { margin: 56px auto 16px; font-size: clamp(28px, 3vw, 36px); }
.ka-post__body > h2:first-child { margin-top: 0; }
.ka-post__body h3 { margin: 34px auto 10px; font-size: clamp(21px, 2vw, 24px); }
.ka-post__body ul, .ka-post__body ol { padding-left: 1.3em; }
.ka-post__body li { margin-bottom: 8px; }
.ka-post__body li::marker { color: var(--ka-gold); font-family: var(--ka-serif); }
.ka-post__body .wp-block-quote {
  margin: 40px auto;
  padding: 0 0 0 26px;
  border-left: 1px solid var(--ka-gold);
}
.ka-post__body .wp-block-quote p {
  margin: 0;
  font-family: var(--ka-serif);
  font-style: italic;
  font-size: clamp(21px, 2.2vw, 26px);
  line-height: 1.4;
}
.ka-post__body .wp-block-quote cite {
  display: block;
  margin-top: 14px;
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ka-gold);
}
.ka-post-cta__inner { text-align: center; }
.ka-post-cta h2 { margin: 0 0 16px; }
.ka-post-cta p:not([class]) { margin: 0 auto 30px; max-width: 46ch; color: rgba(251, 250, 247, 0.78); }

/* Pages — tablet */
@media (max-width: 999.98px) {
  .ka-journal__grid--index .ka-journal__card:nth-child(3) { display: block; }
  .ka-contact__grid { grid-template-columns: 1fr; }
}

/* Pages — below 900px */
@media (max-width: 899.98px) {
  .ka-founder__grid,
  .ka-craft__grid,
  .ka-cta__grid { grid-template-columns: 1fr; }
  .ka-founder__media { max-width: 520px; }
  .ka-craft__media { order: -1; max-width: 560px; }
  .ka-landscape__media img { aspect-ratio: 16 / 10; }
}

/* Pages — phones */
@media (max-width: 599.98px) {
  .ka-band.ka-page-hero { padding-top: 64px; padding-bottom: 56px; }
  .ka-landscape__media img { aspect-ratio: 4 / 3; object-position: 30% 60%; }
  .ka-figures li { grid-template-columns: 1fr; gap: 4px; }
  .ka-giving__cols { grid-template-columns: 1fr; }
  .ka-journal__grid--index { grid-template-columns: 1fr; }
  .ka-help__inner .ka-btn { width: 100%; }
  .ka-post__body { font-size: 16px; }
  .ka-contact div.wpforms-container-full .wpforms-form button[type="submit"] { width: 100%; }
}
.ka-name .ka-yaz { margin: 0 0.1em; }

/* ============================================
   QA fixes (Phase 7)
   ============================================ */

/* Announcement bar: always one clean line. ≥1000px full message; 690–999px shipping message
   only (second phrase drops); <690px short form (existing rule above). Measured in Poppins
   11px/0.14em: full ≈ 860px, shipping ≈ 510px, short (10px) ≈ 280px — fits 320px. */
@media (max-width: 999.98px) {
  .ka-topbar__second { display: none; }
}
@media (max-width: 359.98px) {
  .ka-topbar { letter-spacing: 0.08em; padding-left: 10px; padding-right: 10px; }
}

/* Primary nav echoes the wordmark: Poppins uppercase, wide tracking (Poppins swap) */
#header [data-id="menu"] > ul > li > a,
#header .ct-menu-link {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* Poppins runs heavier than Jost: body copy at 300, emphasis at 500 (UI labels keep their own 400/500) */
body { font-weight: 300; }
b, strong { font-weight: 500; }

/* Footer socials: one line in the 4-col footer with the wider Poppins caps */
.ka-footer__social { gap: 6px 16px; }
.ka-footer__social a { letter-spacing: 0.12em; }

/* 404 (markup: functions.php, blocksy:404:custom-output) */
.ka-404 { padding-top: clamp(72px, 10vw, 136px); padding-bottom: clamp(72px, 10vw, 136px); }
.ka-404__inner { text-align: center; }
.ka-404 .ka-sep { margin: 32px auto; }
.ka-404__lede { margin: 0 auto 36px; max-width: 40ch; color: var(--ka-muted); }
.ka-404__ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* Search results + post archives (Blocksy entry cards): hairline cards, gold eyebrow, no author */
:is(.search, .category, .tag, .author, .date) .entries .entry-card {
  background: var(--ka-white);
  border: 1px solid var(--ka-hairline);
  border-radius: 0;
  box-shadow: none;
}
:is(.search, .category, .tag, .author, .date) .entry-card .entry-title { font-size: clamp(24px, 2.2vw, 28px); line-height: 1.2; }
:is(.search, .category, .tag, .author, .date) .entry-card .entry-title a { color: var(--ka-ink); text-decoration: none; }
:is(.search, .category, .tag, .author, .date) .entry-card .entry-title a:hover { color: var(--ka-ink-hover); }
:is(.search, .category, .tag, .author, .date) .entry-card [data-id="meta_1"] a {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: var(--ka-gold);
}
:is(.search, .category, .tag, .author, .date) .entry-card [data-id="meta_2"] { color: var(--ka-muted); font-weight: 400; }
:is(.search, .category, .tag, .author, .date) .entry-card .meta-author { display: none; }
:is(.search, .category, .tag, .author, .date) .entry-card .entry-excerpt { color: var(--ka-muted); font-size: 15px; }
.search .entry-card.product .ct-media-container img { object-fit: contain !important; background: var(--ka-white); }
.search .page-title,
:is(.category, .tag) .page-title { font-size: clamp(36px, 4.4vw, 56px); }

/* Search modal (Blocksy #search-modal): ink panel, one hairline field in Fraunces, paper results */
#search-modal { background-color: rgba(20, 24, 26, 0.985) !important; }
#search-modal .ct-toggle-close { --theme-icon-color: var(--ka-paper); --theme-icon-hover-color: var(--ka-gold); }
#search-modal .ct-search-form-inner,
#search-modal .ct-search-form-inner:focus-within {
  border: 0 !important;
  border-bottom: 1px solid rgba(251, 250, 247, 0.35) !important;
  border-radius: 0 !important;
  outline: none !important;
  background: transparent;
  transition: border-color .2s ease;
}
#search-modal .ct-search-form-inner:focus-within { border-bottom-color: var(--ka-gold) !important; }
#search-modal input[type="search"],
#search-modal input[type="search"]:focus {
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  background: transparent !important;
  color: var(--ka-paper);
  font-family: var(--ka-serif);
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 400;
  padding-left: 0;
}
#search-modal input[type="search"]::placeholder { color: rgba(251, 250, 247, 0.45); }
#search-modal .ct-search-form button[type="submit"] { background: transparent !important; border: 0 !important; color: var(--ka-paper); --theme-icon-color: var(--ka-paper); }
#search-modal .ct-search-form button[type="submit"]:hover { color: var(--ka-gold); --theme-icon-color: var(--ka-gold); }
#search-modal .ct-search-results { background: transparent; border: 0; box-shadow: none; }
#search-modal .ct-search-item { color: var(--ka-paper) !important; border-radius: 0; text-decoration: none; }
#search-modal .ct-search-item > span:last-child { color: var(--ka-paper); font-family: var(--ka-serif); font-size: 19px; font-weight: 400; }
#search-modal .ct-search-item:hover > span:last-child,
#search-modal .ct-search-item:focus-visible > span:last-child { color: var(--ka-gold); }
#search-modal .ct-search-item .ct-media-container,
#search-modal .ct-search-item img { border-radius: 0 !important; background: var(--ka-white); }

/* Footer: give the Giving-back column room so the socials sit on one line (desktop only) */
@media (min-width: 1000px) {
  .ka-footer__grid { grid-template-columns: 1.2fr 0.85fr 0.85fr 1.9fr; }
}

/* My account: nav without in-copy underlines, readable active item, hairline cards/fieldsets */
.woocommerce-MyAccount-navigation ul { border: 1px solid var(--ka-hairline); }
.entry-content .woocommerce-MyAccount-navigation a {
  text-decoration: none !important;
  color: var(--ka-ink);
  font-weight: 400;
  transition: background-color .2s ease, color .2s ease;
}
.entry-content .woocommerce-MyAccount-navigation li:not(.is-active) a:hover { background: var(--ka-mint); color: var(--ka-ink); }
.entry-content .woocommerce-MyAccount-navigation .is-active a { background: var(--ka-ink); color: var(--ka-paper) !important; }
.woocommerce-MyAccount-navigation .is-active a svg,
.woocommerce-MyAccount-navigation .is-active a::before { color: var(--ka-gold); fill: currentColor; }
.woocommerce-account .woocommerce-Address,
.woocommerce-account fieldset {
  border: 1px solid var(--ka-hairline) !important;
  border-radius: 0 !important;
  background: var(--ka-white);
}
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 { font-size: 22px; }
.woocommerce-account fieldset legend { font-family: var(--ka-serif); font-size: 20px; font-weight: 400; padding: 0 10px; }
.woocommerce-account .woocommerce-orders-table th { font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ka-muted); }
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .woocommerce-orders-table th { border-color: var(--ka-hairline) !important; }

/* Order received / view order (classic Woo templates): brand notice, section rhythm, solid hairlines */
.woocommerce-notice--success,
.woocommerce-thankyou-order-received {
  background: var(--ka-white) !important;
  border: 1px solid var(--ka-hairline);
  border-left: 3px solid var(--ka-gold);
  border-radius: 0 !important;
  color: var(--ka-ink);
  font-family: var(--ka-serif);
  font-size: 22px;
  padding: 20px 24px !important;
}
.woocommerce-thankyou-order-received::before,
.woocommerce-thankyou-order-received > svg { display: none; }
.woocommerce-order-overview { background: var(--ka-white); }
.woocommerce-order-overview li { font-size: 11px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ka-muted); }
.woocommerce-order-overview li strong { display: block; margin-top: 6px; font-size: 16px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ka-ink); }
.woocommerce-order-details,
.woocommerce-customer-details { margin-top: clamp(40px, 5vw, 56px); }
.woocommerce-order-details__title,
.woocommerce-column__title { font-size: 26px; margin-bottom: 18px; }
.woocommerce-table--order-details th,
.woocommerce-table--order-details td { border-style: solid !important; border-color: var(--ka-hairline) !important; }
.woocommerce-table--order-details thead th { font-size: 11px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ka-muted); }
.woocommerce-table--order-details tfoot th { font-weight: 400; }
.woocommerce-table--order-details tfoot tr:nth-last-child(2) td .amount { font-size: 20px; }   /* order total (payment method is the last row) */
.woocommerce-customer-details address {
  border: 1px solid var(--ka-hairline) !important;
  border-radius: 0 !important;
  background: var(--ka-white);
  font-style: normal;
}

/* Journal guide: cover was pinned left (figure margin reset beat .ka-wrap's auto margins) */
.ka-post__cover { margin-left: auto; margin-right: auto; }
/* Guide body: one text column — 66ch resolved per font-size, so h2/h3 sat 50px left of the paragraphs */
.ka-post__body > * { max-width: 680px; }

/* Light body weight reads thin reversed out of ink: 400 on ink bands */
.ka-band--ink { font-weight: 400; }

/* Focus rings: Blocksy draws them in ink (palette 1) — invisible on the ink footer, ink bands,
   drawer and search modal. Gold there; ink stays on light surfaces (higher contrast than gold). */
:is(.ka-footer, .ka-band--ink, #offcanvas, #search-modal) :is(a, button, summary, input):focus-visible {
  outline: 2px solid var(--ka-gold);
  outline-offset: 3px;
}

/* Contact form: every invalid field gets the error border (the email field kept its mint border) */
.ka-contact div.wpforms-container-full .wpforms-form .wpforms-has-error :is(input, textarea) { border-color: #9A3B2E; }

/* Hero lede sits over the photograph: keep it at 400 so it holds against the trees */
.ka-hero__lede { font-weight: 400; }

/* PDP short description: the hairline under it spans the summary column (the 52ch cap moves to the text) */
.single-product .woocommerce-product-details__short-description { max-width: none; }
.single-product .woocommerce-product-details__short-description > * { max-width: 52ch; }

/* Smallest phones: Add to cart label stays on one line beside the quantity stepper */
@media (max-width: 359.98px) {
  .single-product .ct-cart-actions .single_add_to_cart_button { padding-left: 14px; padding-right: 14px; letter-spacing: 0.1em; }
}
