/*
Theme Name:  UkieLab Graphite
Theme URI:   https://ukielab.com
Description: "Paper & Copper" design for UkieLab — a child theme of Astra. Warm paper ground, graphite ink, copper accents and the concentric-U ring motif from the logo.
Author:      UkieLab
Template:    astra
Version:     1.0.0
Text Domain: ukielab
*/

/* ---------- Fonts (files in assets/fonts/, SIL Open Font License) ----------
   Variable fonts: one file covers every weight. "latin-ext" is fetched only if a page uses accented letters
   outside Western European. */
@font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(assets/fonts/instrument-sans-latin-wght-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(assets/fonts/instrument-sans-latin-ext-wght-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 200 800; font-display: swap; src: url(assets/fonts/bricolage-grotesque-latin-opsz-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 200 800; font-display: swap; src: url(assets/fonts/bricolage-grotesque-latin-ext-opsz-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 100 800; font-display: swap; src: url(assets/fonts/jetbrains-mono-latin-wght-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 100 800; font-display: swap; src: url(assets/fonts/jetbrains-mono-latin-ext-wght-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
/* Astra's customizer font is no longer downloaded; anything still asking for it gets the site's body font. */
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(assets/fonts/instrument-sans-latin-wght-normal.woff2) format('woff2'); }


/* ---------- Tokens ---------- */
:root {
  --ukl-paper: #F5F1EA;
  --ukl-card: #FFFDF9;
  --ukl-line: #E3DBCF;
  --ukl-ink: #1B1B19;        /* Graphite */
  --ukl-body: #33332F;
  --ukl-mute: #66655F;
  --ukl-copper: #8F5E3E;
  --ukl-copper-l: #C48D6B;
  --ukl-copper-t: #F0E2D5;
  --ukl-glint: #2F7F93;
  --ukl-glint-t: #DDEDF0;
  --ukl-dk: #1B1B19;
  --ukl-dk-t: #FFF8F0;
  --ukl-dk-b: #B8B1A7;
  --ukl-dk-l: #D9D3CA;
  --ukl-dk-e: #EAD9C9;
  --ukl-display: 'Bricolage Grotesque', 'Helvetica Neue', Arial, sans-serif;
  --ukl-sans: 'Instrument Sans', 'Helvetica Neue', Arial, sans-serif;
  --ukl-mono: 'JetBrains Mono', 'SFMono-Regular', Menlo, monospace;
  --ukl-radius: 20px;
  --ukl-gutter: 72px;
}
@media (max-width: 1024px) { :root { --ukl-gutter: 40px; } }
@media (max-width: 640px)  { :root { --ukl-gutter: 20px; } }

/* ---------- Base ---------- */
body.ukl {
  background: var(--ukl-paper);
  color: var(--ukl-body);
  font-family: var(--ukl-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
:where(body.ukl) a { color: var(--ukl-copper); text-decoration: none; }
:where(body.ukl) a:hover { color: var(--ukl-ink); }
body.ukl :is(h1, h2, h3, h4, .entry-title, .product_title, .woocommerce-loop-product__title) {
  font-family: var(--ukl-display);
  color: var(--ukl-ink);
  letter-spacing: -0.02em;
  font-weight: 600;
  line-height: 1.1;
}
:where(body.ukl) h1 { font-size: clamp(38px, 5vw, 60px); }
:where(body.ukl) h2 { font-size: clamp(30px, 3.4vw, 44px); }
:where(body.ukl) h3 { font-size: 22px; }
body.ukl #content > .ast-container { max-width: 1440px; padding: 0; }
body.ukl.ukl-page-home #content > .ast-container,
body.ukl.woocommerce #content > .ast-container { max-width: 1440px; padding: 0; }
body.ukl .ast-container { max-width: 1440px; }
body.ukl #primary, body.ukl .site-main { padding: 0; }

/* Generic blocks (buttons, inputs) */
body.ukl .ukl-btn,
body.ukl .wp-block-button__link,
body.ukl .button, body.ukl button.button, body.ukl input[type="submit"],
body.ukl .woocommerce a.button, body.ukl .woocommerce button.button.alt,
body.ukl .single_add_to_cart_button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding: 0 24px; border-radius: 26px; border: 0;
  background: var(--ukl-ink); color: var(--ukl-dk-t);
  font-family: var(--ukl-sans); font-weight: 500; font-size: 16px; line-height: 1;
  cursor: pointer; transition: transform .15s ease, background .15s ease;
}
body.ukl .ukl-btn:hover, body.ukl .button:hover, body.ukl .wp-block-button__link:hover { background: var(--ukl-copper); color: #fff; transform: translateY(-1px); }
body.ukl .ukl-btn--ghost { background: transparent; color: var(--ukl-copper); border: 1.5px solid var(--ukl-copper); }
body.ukl .ukl-btn--ghost:hover { background: var(--ukl-copper); color: #fff; }
body.ukl .ukl-btn--copper, body.ukl .single_add_to_cart_button, body.ukl .woocommerce button.button.alt { background: var(--ukl-copper); color: #FFF8F0; font-weight: 600; }
body.ukl .ukl-btn--copper:hover, body.ukl .single_add_to_cart_button:hover { background: var(--ukl-ink); }
body.ukl input[type="text"], body.ukl input[type="email"], body.ukl input[type="search"], body.ukl input[type="number"],
body.ukl select, body.ukl textarea {
  border: 1px solid var(--ukl-line); background: var(--ukl-card); border-radius: 14px;
  font-family: var(--ukl-sans); color: var(--ukl-ink); padding: 12px 16px;
}
body.ukl input:focus, body.ukl select:focus, body.ukl textarea:focus { outline: 2px solid var(--ukl-copper-l); outline-offset: 1px; border-color: var(--ukl-copper-l); }

/* Small shared parts */
.ukl-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ukl-copper); }
.ukl-eyebrow svg { flex-shrink: 0; }
.ukl-mono { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.ukl-section { padding: 88px var(--ukl-gutter) 0; }
.ukl-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 36px; }
.ukl-section__head > div { display: flex; flex-direction: column; gap: 14px; }
.ukl-section__head h2 { margin: 0; }
.ukl-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--ukl-copper); min-height: 44px; }
.ukl-list { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ukl-list li { display: flex; gap: 12px; align-items: flex-start; }
.ukl-list svg { flex-shrink: 0; margin-top: 4px; }
.ukl-rings { position: absolute; pointer-events: none; }
.ukl-badge { position: absolute; top: 14px; left: 14px; z-index: 2; font-family: var(--ukl-mono); font-size: 11px; letter-spacing: .08em; padding: 6px 10px; border-radius: 999px; background: var(--ukl-ink); color: var(--ukl-dk-e); text-transform: uppercase; }
.ukl-badge--new { background: var(--ukl-glint-t); color: var(--ukl-glint); }
.ukl-badge--sale { background: var(--ukl-copper-t); color: var(--ukl-copper); }
.ukl-stars { display: inline-flex; gap: 2px; color: var(--ukl-copper); }

/* ---------- Header ---------- */
.ukl-announce { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; min-height: 36px; padding: 6px 16px; background: var(--ukl-dk); color: var(--ukl-dk-e); font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.ukl-announce span.dot { color: var(--ukl-copper-l); }
.ukl-header { position: sticky; top: 0; z-index: 50; background: rgba(245,241,234,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--ukl-line); }
.ukl-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 var(--ukl-gutter); height: 84px; max-width: 1440px; margin: 0 auto; }
.ukl-brand { display: flex; align-items: center; gap: 12px; color: var(--ukl-ink) !important; }
.ukl-brand img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; display: block; }
.ukl-brand span { font-family: var(--ukl-display); font-weight: 600; font-size: 24px; letter-spacing: -0.02em; }
.ukl-nav ul { display: flex; gap: 30px; list-style: none; margin: 0; padding: 0; }
.ukl-nav li a { display: inline-block; padding: 6px 2px; font-size: 15px; font-weight: 500; color: var(--ukl-body); border-bottom: 2px solid transparent; }
.ukl-nav li a:hover, .ukl-nav li.current-menu-item > a, .ukl-nav li.current_page_parent > a, .ukl-nav li.current-menu-ancestor > a { color: var(--ukl-ink); border-bottom-color: var(--ukl-copper); }
.ukl-nav .sub-menu { display: none; }
.ukl-tools { display: flex; align-items: center; gap: 8px; }
.ukl-iconbtn { width: 44px; height: 44px; border: 0; background: transparent; border-radius: 22px; display: inline-flex; align-items: center; justify-content: center; color: var(--ukl-ink); cursor: pointer; padding: 0; }
.ukl-iconbtn:hover { background: var(--ukl-copper-t); color: var(--ukl-ink); }
.ukl-search { position: relative; display: flex; align-items: center; }
.ukl-search input { width: 0; opacity: 0; height: 44px; border-radius: 22px; padding: 0; margin: 0; transition: width .2s ease, opacity .2s ease, padding .2s ease; }
.ukl-search:focus-within input, .ukl-search:hover input { width: 200px; opacity: 1; padding: 0 16px; margin-right: 6px; }
.ukl-cart { height: 44px; padding: 0 16px 0 12px; border: 1px solid var(--ukl-line) !important; background: var(--ukl-card); border-radius: 22px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: var(--ukl-ink) !important; }
.ukl-cart:hover { border-color: var(--ukl-copper-l) !important; }
.ukl-cart .sep { color: var(--ukl-mute); }
.ukl-menu-toggle { display: none; }
@media (max-width: 900px) {
  .ukl-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--ukl-paper); border-bottom: 1px solid var(--ukl-line); padding: 12px var(--ukl-gutter) 20px; }
  .ukl-nav ul { flex-direction: column; gap: 4px; }
  .ukl-nav li a { display: block; padding: 12px 0; font-size: 18px; border-bottom: 1px solid var(--ukl-line); }
  .ukl-header.is-open .ukl-nav { display: block; }
  .ukl-menu-toggle { display: inline-flex; }
  .ukl-search { display: none; }
  .ukl-cart .sep, .ukl-cart .total { display: none; }
}
body.ukl.admin-bar .ukl-header { top: 32px; }
@media (max-width: 782px) { body.ukl.admin-bar .ukl-header { top: 46px; } }

/* ---------- Footer ---------- */
.ukl-footer { position: relative; overflow: hidden; background: var(--ukl-dk); color: var(--ukl-dk-l); padding: 72px var(--ukl-gutter) 40px; }
.ukl-footer .ukl-rings { right: -260px; top: -160px; opacity: .3; z-index: 0; }
.ukl-footer__inner > *:not(.ukl-rings) { position: relative; z-index: 1; }
.ukl-footer__inner { position: relative; overflow: visible; max-width: 1296px; margin: 0 auto; display: flex; flex-direction: column; gap: 56px; }
.ukl-footer__top { display: flex; justify-content: space-between; gap: 48px; flex-wrap: wrap; }
.ukl-footer__brand { display: flex; flex-direction: column; gap: 18px; max-width: 360px; }
body.ukl .ukl-footer__brand .ukl-brand span { color: var(--ukl-dk-t); font-size: 22px; }
.ukl-footer__brand .ukl-brand img { box-shadow: 0 0 0 1px rgba(196,141,107,.5); width: 40px; height: 40px; }
.ukl-footer__brand p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ukl-dk-b); }
.ukl-footer__channels { display: flex; gap: 10px; flex-wrap: wrap; font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .05em; color: var(--ukl-dk-b); }
.ukl-footer__channels span.dot { color: var(--ukl-copper-l); }
.ukl-footer__cols { display: flex; gap: 64px; flex-wrap: wrap; }
.ukl-footer__col { display: flex; flex-direction: column; gap: 12px; min-width: 150px; }
body.ukl .ukl-footer__col h4 { margin: 0; font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; color: var(--ukl-copper-l); font-weight: 500; text-transform: uppercase; }
.ukl-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
body.ukl .ukl-footer__col a { color: var(--ukl-dk-l); font-size: 15px; }
body.ukl .ukl-footer__col a:hover { color: var(--ukl-copper-l); }
.ukl-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 24px; border-top: 1px solid rgba(217,211,202,.18); font-size: 13px; color: #8F8981; }
.ukl-footer__bottom .ukl-mono { font-size: 12px; }

/* ---------- Product card ---------- */
.ukl-grid { display: grid; gap: 32px 24px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ukl-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1100px) { .ukl-grid, .ukl-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .ukl-grid, .ukl-grid--3 { grid-template-columns: 1fr; } }
.ukl-card { display: flex; flex-direction: column; gap: 14px; color: var(--ukl-ink); }
.ukl-card__media { position: relative; aspect-ratio: 4 / 3; border-radius: var(--ukl-radius); overflow: hidden; background: var(--ukl-card); border: 1px solid var(--ukl-line); }
.ukl-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
body.ukl .ukl-card__media img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; object-position: center; } /* beat WooCommerce/Astra 'img { height: auto }' so the photo fills the 4:3 frame instead of overflowing */
.ukl-card:hover .ukl-card__media img { transform: scale(1.03); }
.ukl-card__title { font-family: var(--ukl-display); font-weight: 600; font-size: 19px; color: var(--ukl-ink); margin: 0; line-height: 1.25; }
.ukl-card__rating { display: flex; align-items: center; gap: 8px; margin: -6px 0 2px; }
.ukl-card__rating .ukl-mono { color: var(--ukl-mute); font-size: 11px; }
.ukl-card__meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ukl-card__sub { font-size: 14px; color: var(--ukl-mute); }
.ukl-card__price, .ukl-card .price { font-family: var(--ukl-mono); font-size: 15px; color: var(--ukl-copper); white-space: nowrap; margin: 0; }
.ukl-card .price del { color: var(--ukl-mute); opacity: 1; margin-left: 6px; font-weight: 400; }
.ukl-card .price ins { text-decoration: none; }
.ukl-card .price .woocommerce-Price-amount { color: inherit; font-weight: 500; }
.ukl-card--custom { justify-content: space-between; aspect-ratio: auto; min-height: 300px; box-sizing: border-box; padding: 28px; border-radius: var(--ukl-radius); background: var(--ukl-dk); color: var(--ukl-dk-l); position: relative; overflow: hidden; }
.ukl-card--custom .ukl-rings { right: -90px; bottom: -110px; opacity: .4; }
.ukl-card--custom > * { position: relative; }
body.ukl .ukl-card--custom h3 { color: var(--ukl-dk-t); font-size: 26px; margin: 0 0 10px; }
.ukl-card--custom p { margin: 0 0 10px; font-size: 15px; color: var(--ukl-dk-b); }
.ukl-card--custom .ukl-link { color: var(--ukl-copper-l); }

/* WooCommerce loop reset (our cards render their own markup) */
body.ukl ul.products { display: grid; gap: 32px 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
body.ukl ul.products::before, body.ukl ul.products::after { display: none; }
body.ukl ul.products li.product { width: auto; margin: 0; padding: 0; float: none; clear: none; }
@media (max-width: 1100px) { body.ukl ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px)  { body.ukl ul.products { grid-template-columns: 1fr; } }

/* ---------- Shop page ---------- */
.ukl-shop-hero { padding: 56px var(--ukl-gutter) 28px; display: flex; flex-direction: column; gap: 28px; }
.ukl-crumbs { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ukl-mute); flex-wrap: wrap; }
.ukl-crumbs a { color: var(--ukl-mute); }
.ukl-crumbs span.here { color: var(--ukl-ink); }
.ukl-shop-hero__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; flex-wrap: wrap; }
.ukl-shop-hero__intro { display: flex; flex-direction: column; gap: 14px; max-width: 720px; }
.ukl-shop-hero__intro h1 { margin: 0; }
.ukl-shop-hero__intro p { margin: 0; font-size: 18px; line-height: 1.55; }
.ukl-shop-hero__aside { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; font-size: 14px; color: var(--ukl-mute); }
.ukl-shop-hero__aside > div { display: flex; align-items: center; gap: 8px; }
.ukl-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 22px; border-top: 1px solid var(--ukl-line); }
.ukl-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.ukl-chip { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border-radius: 20px; font-size: 14px; font-weight: 500; background: var(--ukl-card); color: var(--ukl-body); border: 1px solid var(--ukl-line); }
.ukl-chip:hover { border-color: var(--ukl-copper-l); color: var(--ukl-ink); }
.ukl-chip.is-active { background: var(--ukl-ink); color: var(--ukl-dk-t); border-color: var(--ukl-ink); }
.ukl-toolbar .woocommerce-ordering { margin: 0; display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--ukl-mute); }
.ukl-toolbar .woocommerce-ordering select { height: 40px; padding: 0 36px 0 16px; border-radius: 20px; font-size: 14px; }
.ukl-toolbar .woocommerce-result-count { display: none; }
.ukl-shop-grid { padding: 12px var(--ukl-gutter) 0; }
body.ukl .woocommerce-pagination { padding: 40px var(--ukl-gutter) 0; }
body.ukl .woocommerce-pagination ul.page-numbers { display: flex; gap: 6px; justify-content: center; list-style: none; margin: 0; padding: 0; border: 0; }
body.ukl .woocommerce-pagination li .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 22px; border: 1px solid var(--ukl-line); background: var(--ukl-card); color: var(--ukl-ink); }
body.ukl .woocommerce-pagination li .page-numbers.current { background: var(--ukl-ink); color: var(--ukl-dk-t); border-color: var(--ukl-ink); }

.ukl-compare { margin: 80px var(--ukl-gutter) 0; padding: 48px 56px; border-radius: 28px; background: var(--ukl-card); border: 1px solid var(--ukl-line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; align-items: center; }
.ukl-compare__intro { display: flex; flex-direction: column; gap: 12px; }
.ukl-compare__intro h2 { margin: 0; font-size: 32px; }
.ukl-compare__intro p { margin: 0; font-size: 15px; }
.ukl-size { display: flex; flex-direction: column; gap: 14px; padding: 24px; border-radius: var(--ukl-radius); background: var(--ukl-paper); border: 1px solid var(--ukl-line); }
.ukl-size__head { display: flex; justify-content: space-between; align-items: baseline; }
.ukl-size__head strong { font-family: var(--ukl-display); font-weight: 600; font-size: 22px; color: var(--ukl-ink); }
.ukl-size__head span { font-family: var(--ukl-mono); font-size: 13px; color: var(--ukl-copper); text-transform: uppercase; }
.ukl-size .ukl-list li { font-size: 14px; }
@media (max-width: 1000px) { .ukl-compare { grid-template-columns: 1fr; padding: 32px; } }

.ukl-faq { padding: 72px var(--ukl-gutter) 88px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.ukl-faq__intro { display: flex; flex-direction: column; gap: 14px; }
.ukl-faq__intro h2 { margin: 0; font-size: 36px; }
.ukl-faq__list { display: flex; flex-direction: column; border-bottom: 1px solid var(--ukl-line); }
.ukl-faq details { border-top: 1px solid var(--ukl-line); padding: 18px 0; }
.ukl-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; cursor: pointer; font-family: var(--ukl-display); font-weight: 600; font-size: 18px; color: var(--ukl-ink); }
.ukl-faq summary::-webkit-details-marker { display: none; }
.ukl-faq summary svg { flex-shrink: 0; transition: transform .2s ease; }
.ukl-faq details[open] summary svg { transform: rotate(45deg); }
.ukl-faq details p { margin: 12px 0 0; font-size: 15px; line-height: 1.55; }
@media (max-width: 900px) { .ukl-faq { grid-template-columns: 1fr; gap: 32px; } }

/* ---------- Single product ---------- */
.ukl-product { padding: 40px var(--ukl-gutter) 0; }
.ukl-product__main { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; align-items: start; padding-top: 28px; }
@media (max-width: 1000px) { .ukl-product__main { grid-template-columns: 1fr; gap: 32px; } }
body.ukl .woocommerce-product-gallery { position: relative; }
body.ukl .woocommerce-product-gallery__wrapper { margin: 0; }
body.ukl .woocommerce-product-gallery .flex-viewport, body.ukl .woocommerce-product-gallery__image:first-child { border-radius: 28px; overflow: hidden; background: var(--ukl-card); border: 1px solid var(--ukl-line); }
body.ukl .woocommerce-product-gallery__image img { border-radius: 0; width: 100%; }
body.ukl .woocommerce-product-gallery .flex-control-thumbs { display: flex; gap: 12px; margin: 14px 0 0; padding: 0 0 6px; overflow-x: auto; scrollbar-width: thin; }
body.ukl .woocommerce-product-gallery .flex-control-thumbs li { width: 104px; flex: 0 0 104px; margin: 0; float: none; }
body.ukl .woocommerce-product-gallery .flex-control-thumbs img { width: 104px; height: 104px; border-radius: 16px; border: 1px solid var(--ukl-line); opacity: 1; object-fit: cover; cursor: pointer; }
body.ukl .woocommerce-product-gallery .flex-control-thumbs img.flex-active { border: 2px solid var(--ukl-copper); }
body.ukl .woocommerce-product-gallery__trigger { top: 14px; right: 14px; width: 44px; height: 44px; border-radius: 22px; border: 1px solid var(--ukl-line); background: var(--ukl-card); }
body.ukl span.onsale { position: absolute; top: 14px; left: 14px; z-index: 3; min-height: 0; min-width: 0; line-height: 1; padding: 6px 10px; border-radius: 999px; font-family: var(--ukl-mono); font-size: 11px; letter-spacing: .08em; background: var(--ukl-copper-t); color: var(--ukl-copper); font-weight: 500; text-transform: uppercase; margin: 0; }
body.ukl .ukl-card__media span.onsale { display: none; }

body.ukl .summary.entry-summary { display: flex; flex-direction: column; gap: 18px; margin: 0; }
body.ukl .summary .ukl-eyebrow { margin: 0; }
body.ukl .product_title { font-size: clamp(32px, 3.6vw, 46px); margin: 0; line-height: 1.05; }
body.ukl .summary .woocommerce-product-rating { display: flex; align-items: center; gap: 12px; margin: 0; font-size: 14px; }
body.ukl .summary .star-rating { color: var(--ukl-copper); margin: 0; }
body.ukl .summary .woocommerce-review-link { color: var(--ukl-copper); }
body.ukl .summary .price { display: flex; align-items: baseline; gap: 12px; margin: 0; font-family: var(--ukl-display); font-weight: 600; font-size: 36px; color: var(--ukl-ink); }
body.ukl .summary .price del { font-size: 20px; color: var(--ukl-mute); opacity: 1; }
body.ukl .summary .price ins { text-decoration: none; }
body.ukl .summary .woocommerce-product-details__short-description p { margin: 0 0 8px; font-size: 16px; line-height: 1.6; }
body.ukl .summary .stock { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ukl-glint); margin: 0; display: inline-flex; align-items: center; gap: 8px; }
body.ukl .summary .stock.in-stock::before { content: ""; width: 8px; height: 8px; border-radius: 4px; background: var(--ukl-glint); }
body.ukl .summary .stock.out-of-stock { color: var(--ukl-copper); }
body.ukl form.cart { display: flex; flex-direction: column; gap: 18px; margin: 0; }
body.ukl form.cart .variations { margin: 0; border: 0; }
body.ukl form.cart .variations td, body.ukl form.cart .variations th { padding: 0; border: 0; display: block; }
body.ukl form.cart .variations th.label { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-mute); margin-bottom: 10px; }
body.ukl form.cart .variations label { font-weight: 500; }
body.ukl form.cart .variations select { width: 100%; height: 52px; border-radius: 16px; }
body.ukl form.cart .reset_variations { font-size: 13px; color: var(--ukl-mute); margin-top: 6px; display: inline-block; }
body.ukl .woocommerce-variation-price .price { font-size: 28px; }
body.ukl .woocommerce-variation-add-to-cart, body.ukl form.cart > .quantity + .single_add_to_cart_button, body.ukl form.cart.cart--simple { display: flex; gap: 12px; align-items: center; }
body.ukl form.cart .quantity { display: inline-flex; align-items: center; border: 1px solid var(--ukl-line); border-radius: 28px; height: 56px; background: var(--ukl-card); margin: 0; overflow: hidden; }
body.ukl form.cart .quantity .qty { width: 72px; height: 56px; border: 0; border-radius: 0; text-align: center; font-weight: 600; color: var(--ukl-ink); background: transparent; padding: 0; }
body.ukl form.cart .quantity .qty:focus { outline: none; }
body.ukl .single_add_to_cart_button { flex: 1 1 auto; height: 56px; border-radius: 28px; font-size: 17px; }
body.ukl .summary .product_meta { display: none; }
.ukl-trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ukl-trust > div { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; background: var(--ukl-card); border: 1px solid var(--ukl-line); font-size: 13px; }
@media (max-width: 480px) { .ukl-trust { grid-template-columns: 1fr; } }
.ukl-inbox { display: flex; flex-direction: column; gap: 10px; padding: 18px 20px; border-radius: 18px; background: var(--ukl-copper-t); }
.ukl-inbox .ukl-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.ukl-inbox .ukl-list li { font-size: 14px; }

.ukl-product__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: start; padding-top: 88px; }
@media (max-width: 1000px) { .ukl-product__details { grid-template-columns: 1fr; gap: 40px; } }
.ukl-product__desc { display: flex; flex-direction: column; gap: 22px; }
.ukl-product__desc h2 { margin: 0; font-size: 38px; }
.ukl-product__desc .ukl-prose h2, .ukl-product__desc .ukl-prose h3 { font-size: 22px; margin: 18px 0 8px; }
.ukl-product__desc .ukl-prose p { margin: 0 0 12px; }
.ukl-product__desc .ukl-prose ul { padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.ukl-product__desc .ukl-prose ul li { position: relative; padding-left: 28px; }
.ukl-product__desc .ukl-prose ul li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 14px; height: 14px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%238F5E3E' stroke-width='2.4' stroke-linecap='round'><path d='M4 3 V11 A6 6 0 0 0 16 11 V3'/><path d='M8 3 V11 A2 2 0 0 0 12 11 V3'/></svg>") no-repeat center / contain; }
.ukl-specs { display: flex; flex-direction: column; gap: 18px; padding: 32px; border-radius: 24px; background: var(--ukl-card); border: 1px solid var(--ukl-line); position: sticky; top: 110px; }
.ukl-specs__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ukl-specs__head strong { font-family: var(--ukl-display); font-weight: 600; font-size: 22px; color: var(--ukl-ink); }
.ukl-specs__head span { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; color: var(--ukl-mute); text-transform: uppercase; }
.ukl-specs table { border: 0; margin: 0; width: 100%; border-collapse: collapse; }
.ukl-specs tr { border-top: 1px solid var(--ukl-line); }
.ukl-specs th, .ukl-specs td { padding: 13px 0; border: 0; text-align: left; vertical-align: top; background: transparent; }
.ukl-specs th { width: 150px; font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .06em; color: var(--ukl-copper); text-transform: uppercase; font-weight: 500; padding-right: 16px; }
.ukl-specs td { font-size: 15px; color: var(--ukl-body); line-height: 1.45; }
.ukl-specs td p { margin: 0; }

.ukl-product__reviews { padding-top: 88px; }
body.ukl #reviews #comments h2, body.ukl .woocommerce-Reviews-title { margin: 0 0 24px; }
body.ukl #reviews ol.commentlist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1000px) { body.ukl #reviews ol.commentlist { grid-template-columns: 1fr; } }
body.ukl #reviews ol.commentlist li { margin: 0; }
body.ukl #reviews ol.commentlist li .comment_container { padding: 26px; border-radius: 22px; background: var(--ukl-card); border: 1px solid var(--ukl-line); display: flex; flex-direction: column; gap: 12px; }
body.ukl #reviews ol.commentlist li img.avatar { display: none; }
body.ukl #reviews ol.commentlist li .comment-text { margin: 0; border: 0; padding: 0; }
body.ukl #reviews .star-rating { color: var(--ukl-copper); }
body.ukl #reviews .meta { font-size: 13px; color: var(--ukl-mute); }
body.ukl #reviews .description p { font-size: 16px; line-height: 1.55; color: var(--ukl-ink); margin: 0 0 8px; }
body.ukl #review_form_wrapper { margin-top: 40px; padding: 32px; border-radius: 24px; background: var(--ukl-card); border: 1px solid var(--ukl-line); }
body.ukl #review_form_wrapper .comment-reply-title { font-family: var(--ukl-display); font-weight: 600; font-size: 22px; color: var(--ukl-ink); }
body.ukl #review_form_wrapper textarea { width: 100%; }

.ukl-product__related { padding: 88px 0; }
body.ukl .related.products, body.ukl .up-sells.products { padding: 88px 0 0; }
body.ukl .related.products > h2, body.ukl .up-sells.products > h2 { font-size: 32px; margin: 0 0 28px; }
body.ukl .related.products ul.products, body.ukl .up-sells.products ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { body.ukl .related.products ul.products, body.ukl .up-sells.products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { body.ukl .related.products ul.products, body.ukl .up-sells.products ul.products { grid-template-columns: 1fr; } }
.ukl-product-end { padding-bottom: 88px; }

/* ---------- Home ---------- */
.ukl-hero { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: center; padding: 72px var(--ukl-gutter) 64px; }
.ukl-hero__copy { display: flex; flex-direction: column; gap: 28px; position: relative; }
.ukl-hero__copy h1 { margin: 0; font-size: clamp(42px, 5.2vw, 72px); line-height: 1.02; }
.ukl-hero__copy p { margin: 0; font-size: 20px; line-height: 1.55; max-width: 520px; }
.ukl-hero__ctas { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.ukl-hero__proof { display: flex; align-items: center; gap: 14px; font-size: 14px; }
.ukl-hero__proof strong { color: var(--ukl-ink); }
.ukl-hero__visual { position: relative; display: flex; align-items: center; min-height: 560px; }
.ukl-hero__visual .ukl-rings { right: -150px; top: -70px; opacity: .45; }
.ukl-hero__img { position: relative; width: 92%; aspect-ratio: 4 / 3; max-height: 470px; border-radius: 28px; overflow: hidden; background: var(--ukl-card); border: 1px solid var(--ukl-line); box-shadow: 0 30px 60px -30px rgba(20,16,12,.35); }
.ukl-hero__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ukl-pill { position: absolute; display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-radius: 16px; background: var(--ukl-card); border: 1px solid var(--ukl-line); box-shadow: 0 12px 30px -12px rgba(20,16,12,.3); }
.ukl-pill--a { left: -24px; bottom: 26px; }
.ukl-pill--b { right: 16px; top: -6px; background: var(--ukl-dk); color: var(--ukl-dk-e); border: 0; }
.ukl-pill > div { display: flex; flex-direction: column; }
.ukl-pill .ukl-mono { color: var(--ukl-mute); }
.ukl-pill--b .ukl-mono { color: var(--ukl-copper-l); }
.ukl-pill strong { font-family: var(--ukl-display); font-weight: 600; font-size: 18px; color: var(--ukl-ink); }
.ukl-pill--b strong { color: var(--ukl-dk-t); }
@media (max-width: 1000px) {
  .ukl-hero { grid-template-columns: 1fr; padding-top: 48px; }
  .ukl-hero__visual { min-height: 0; }
  .ukl-hero__img { width: 100%; }
  .ukl-pill--a { left: 12px; bottom: 12px; } .ukl-pill--b { right: 12px; top: 12px; }
  .ukl-hero__visual .ukl-rings { display: none; }
}

.ukl-trustbar { margin: 0 var(--ukl-gutter); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ukl-line); border-bottom: 1px solid var(--ukl-line); }
.ukl-trustbar > div { display: flex; align-items: center; gap: 14px; padding: 26px 8px; }
.ukl-trustbar > div + div { border-left: 1px solid var(--ukl-line); padding-left: 28px; }
.ukl-trustbar strong { display: block; color: var(--ukl-ink); font-size: 15px; font-weight: 600; }
.ukl-trustbar span { font-size: 13px; color: var(--ukl-mute); }
@media (max-width: 900px) { .ukl-trustbar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ukl-trustbar > div + div { border-left: 0; padding-left: 8px; } }

.ukl-why { position: relative; overflow: hidden; margin: 48px var(--ukl-gutter) 0; padding: 64px; border-radius: 32px; background: var(--ukl-dk); color: var(--ukl-dk-l); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.ukl-why .ukl-rings { left: -160px; bottom: -200px; opacity: .25; }
.ukl-why > div { position: relative; }
.ukl-why__copy { display: flex; flex-direction: column; gap: 22px; }
.ukl-why__copy .ukl-eyebrow { color: var(--ukl-copper-l); }
body.ukl .ukl-why__copy h2 { margin: 0; color: var(--ukl-dk-t); }
.ukl-why__copy p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--ukl-dk-b); max-width: 480px; }
.ukl-why__list { display: flex; flex-direction: column; gap: 14px; }
.ukl-why__item { display: flex; gap: 18px; align-items: flex-start; padding: 20px 22px; border-radius: 18px; background: rgba(255,248,240,.05); border: 1px solid rgba(196,141,107,.28); }
.ukl-why__item svg { flex-shrink: 0; }
.ukl-why__item strong { display: block; font-family: var(--ukl-display); font-weight: 600; font-size: 19px; color: var(--ukl-dk-t); margin-bottom: 4px; }
.ukl-why__item span { font-size: 15px; line-height: 1.5; color: var(--ukl-dk-b); }
@media (max-width: 1000px) { .ukl-why { grid-template-columns: 1fr; padding: 40px; gap: 32px; } }

.ukl-families { padding: 96px var(--ukl-gutter) 24px; }
.ukl-families__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.ukl-family { display: flex; flex-direction: column; gap: 16px; padding: 24px; border-radius: 22px; background: var(--ukl-card); border: 1px solid var(--ukl-line); color: var(--ukl-ink) !important; min-height: 170px; transition: border-color .15s ease, transform .15s ease; }
.ukl-family:hover { border-color: var(--ukl-copper-l); transform: translateY(-2px); }
.ukl-family__icon { width: 48px; height: 48px; border-radius: 14px; background: var(--ukl-copper-t); display: flex; align-items: center; justify-content: center; }
.ukl-family strong { font-family: var(--ukl-display); font-weight: 600; font-size: 20px; display: block; margin-bottom: 4px; }
.ukl-family span { font-size: 14px; color: var(--ukl-mute); line-height: 1.45; }
@media (max-width: 1100px) { .ukl-families__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .ukl-families__grid { grid-template-columns: 1fr; } }

/* ---- Home: spotlight product (photo left, copy right) ---- */
.ukl-spot { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; align-items: center; padding: 88px var(--ukl-gutter) 0; }
.ukl-spot > * { min-width: 0; }
.ukl-spot__visual { position: relative; display: flex; align-items: center; min-height: 520px; }
.ukl-spot__visual .ukl-rings { left: -150px; bottom: -80px; opacity: .4; }
.ukl-spot__img { position: relative; display: block; width: 94%; aspect-ratio: 4 / 3; max-height: 460px; border-radius: 28px; overflow: hidden; background: var(--ukl-card); border: 1px solid var(--ukl-line); box-shadow: 0 30px 60px -30px rgba(20,16,12,.35); }
.ukl-spot__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.ukl-spot__img:hover img { transform: scale(1.025); }
.ukl-spot__visual .ukl-pill--a { left: auto; right: -12px; bottom: 30px; }
.ukl-spot__visual .ukl-pill--b { right: auto; left: 20px; top: -8px; }
.ukl-spot__copy { display: flex; flex-direction: column; gap: 20px; }
.ukl-spot__copy h2 { margin: 0; }
.ukl-spot__copy > p { margin: 0; font-size: 17px; line-height: 1.65; }
.ukl-spot__meta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding-top: 4px; }
.ukl-spot__rating { display: inline-flex; align-items: center; gap: 8px; }
.ukl-spot__rating .ukl-mono { color: var(--ukl-mute); }
@media (max-width: 1000px) {
  .ukl-spot { grid-template-columns: 1fr; gap: 32px; padding-top: 64px; }
  .ukl-spot__visual { min-height: 0; }
  .ukl-spot__img { width: 100%; }
  .ukl-spot__visual .ukl-rings { display: none; }
  .ukl-spot__visual .ukl-pill--a { right: 12px; bottom: 12px; }
  .ukl-spot__visual .ukl-pill--b { left: 12px; top: 12px; }
}

.ukl-maker { padding: 80px var(--ukl-gutter); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: center; }
.ukl-maker__img { position: relative; aspect-ratio: 4 / 3; max-height: 520px; border-radius: 28px; overflow: hidden; border: 1px solid var(--ukl-line); background: var(--ukl-card); }
.ukl-maker__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ukl-maker__img .ukl-mono { position: absolute; left: 20px; bottom: 20px; padding: 10px 14px; border-radius: 12px; background: var(--ukl-dk); color: var(--ukl-dk-e); }
.ukl-maker__copy { display: flex; flex-direction: column; gap: 22px; }
.ukl-maker__copy h2 { margin: 0; }
.ukl-maker__copy p { margin: 0; font-size: 17px; line-height: 1.65; }
.ukl-maker__ctas { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
@media (max-width: 1000px) { .ukl-maker { grid-template-columns: 1fr; gap: 32px; } }

.ukl-reviews { padding: 24px var(--ukl-gutter) 80px; }
.ukl-reviews__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ukl-review { margin: 0; display: flex; flex-direction: column; gap: 16px; padding: 28px; border-radius: 22px; background: var(--ukl-card); border: 1px solid var(--ukl-line); }
.ukl-review blockquote { margin: 0; padding: 0; border: 0; font-family: var(--ukl-display); font-size: 20px; line-height: 1.4; color: var(--ukl-ink); font-weight: 500; background: transparent; }
.ukl-review blockquote::before { display: none; }
.ukl-review figcaption { font-size: 14px; color: var(--ukl-mute); }
@media (max-width: 1000px) { .ukl-reviews__grid { grid-template-columns: 1fr; } }

.ukl-newsletter { position: relative; overflow: hidden; margin: 0 var(--ukl-gutter) 88px; padding: 56px 64px; border-radius: 28px; background: var(--ukl-copper-t); display: flex; justify-content: space-between; align-items: center; gap: 48px; flex-wrap: wrap; }
.ukl-newsletter .ukl-rings { right: 300px; top: -120px; opacity: .35; }
.ukl-newsletter__copy { position: relative; display: flex; flex-direction: column; gap: 10px; max-width: 520px; }
body.ukl .ukl-newsletter__copy h2 { margin: 0; font-size: 34px; }
.ukl-newsletter__copy p { margin: 0; }
.ukl-newsletter form { position: relative; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ukl-newsletter input[type="email"] { height: 52px; width: 300px; max-width: 100%; padding: 0 18px; border-radius: 26px; border: 1px solid var(--ukl-copper-l); }
.ukl-newsletter .screen-reader-text { position: absolute; left: -9999px; }
@media (max-width: 800px) { .ukl-newsletter { padding: 36px 28px; } }

/* ---------- Cart / checkout / account light touch ---------- */
body.ukl.woocommerce-cart #content, body.ukl.woocommerce-checkout #content, body.ukl.woocommerce-account #content { padding: 40px var(--ukl-gutter) 88px; }
body.ukl .woocommerce table.shop_table { border: 1px solid var(--ukl-line); border-radius: var(--ukl-radius); overflow: hidden; }
body.ukl .woocommerce-message, body.ukl .woocommerce-info, body.ukl .woocommerce-error { border-radius: 16px; border-top-color: var(--ukl-copper); background: var(--ukl-card); }

/* ---------- Regular pages / blog ---------- */
body.ukl.page:not(.ukl-page-home):not(.woocommerce) #content > .ast-container,
body.ukl.single-post #content > .ast-container, body.ukl.blog #content > .ast-container, body.ukl.archive:not(.woocommerce) #content > .ast-container {
  max-width: 1296px; padding: 56px var(--ukl-gutter) 88px;
}
body.ukl .entry-content { font-size: 17px; line-height: 1.7; }
body.ukl .ast-article-post, body.ukl .ast-article-single { background: transparent; }

/* ---------- Icon colour helpers ---------- */
.ukl-ic.is-copper { color: var(--ukl-copper); }
.ukl-ic.is-copper-l { color: var(--ukl-copper-l); }
.ukl-nav ul li, .ukl-footer__col ul li { margin: 0; padding: 0; }

/* ---------- Astra leftovers ---------- */
body.ukl.ast-theme-transparent-header .ukl-header, body.ukl .ukl-header { position: sticky; }
body.ukl .ast-header-break-point .main-header-bar, body.ukl #ast-mobile-header, body.ukl .ast-mobile-header-wrap { display: none !important; }
body.ukl.ast-theme-transparent-header #content { padding-top: 0 !important; margin-top: 0 !important; }
body.ukl .ukl-hero__ctas .ukl-btn--ghost:hover, body.ukl .ukl-maker__ctas .ukl-btn--ghost:hover { color: #fff; }

/* ---------- Single product: undo Astra/Woo widths & boxed container ---------- */
body.ukl.single-product #content > .ast-container, body.ukl.woocommerce-page #content > .ast-container { max-width: 1440px; padding: 0; }
body.ukl.single-product #primary, body.ukl.woocommerce-page #primary { width: 100%; max-width: none; margin: 0; padding: 0; }
body.ukl .ast-separate-container .ast-article-single, body.ukl .ast-separate-container .ast-article-post,
body.ukl .ast-separate-container #primary .ast-article-single { padding: 0; margin: 0; background: transparent; border: 0; box-shadow: none; }
body.ukl.single-product div.product { margin: 0; }
body.ukl.single-product div.product div.images, body.ukl.single-product .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; opacity: 1; }
body.ukl.single-product div.product div.summary { width: 100% !important; float: none !important; margin: 0 !important; }
body.ukl.single-product div.product .woocommerce-product-gallery__image a { display: block; }
body.ukl.single-product .woocommerce-product-gallery__image img { width: 100%; height: auto; }
body.ukl.single-product .ast-shipping-text { font-size: 13px; color: var(--ukl-glint); font-family: var(--ukl-mono); letter-spacing: .06em; text-transform: uppercase; }
body.ukl .summary > .ppcp-messages, body.ukl .summary > .ppc-button-wrapper, body.ukl .summary > .wcpay-express-checkout-wrapper { margin: 0; }
body.ukl .summary > .ppc-button-wrapper { max-width: 420px; }
body.ukl .summary .ukl-trust > div { flex-direction: column; align-items: flex-start; text-align: left; }
/* Variation swatches (Variation Swatches for WooCommerce) */
body.ukl form.cart .variable-items-wrapper { display: flex; gap: 10px; flex-wrap: wrap; margin: 0; }
body.ukl form.cart .variable-items-wrapper .variable-item, body.ukl form.cart .variable-items-wrapper .variable-item.button-variable-item { box-shadow: none !important; border: 1px solid var(--ukl-line) !important; border-radius: 16px !important; background: var(--ukl-card) !important; padding: 12px 18px !important; min-height: 48px; height: auto !important; width: auto !important; font-family: var(--ukl-sans); font-weight: 600; font-size: 15px; color: var(--ukl-ink); margin: 0 !important; }
body.ukl form.cart .variable-items-wrapper .variable-item.selected, body.ukl form.cart .variable-items-wrapper .variable-item:hover { border: 2px solid var(--ukl-ink) !important; padding: 11px 17px !important; }
body.ukl form.cart .variable-items-wrapper .variable-item-span { font-size: 15px; font-weight: 600; }
body.ukl form.cart .variations .label label { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-mute); font-weight: 500; margin-bottom: 10px; display: block; }
body.ukl form.cart .single_variation_wrap { margin-top: 4px; }
body.ukl .summary .ukl-eyebrow { margin-bottom: -4px; }
body.ukl #reviews .comment-form-rating .stars a { color: var(--ukl-copper); }
body.ukl #reviews p.stars a::before { color: var(--ukl-copper); }
/* Shop columns */
body.ukl ul.products[class*="columns-"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
@media (max-width: 1100px) { body.ukl ul.products[class*="columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 560px)  { body.ukl ul.products[class*="columns-"] { grid-template-columns: 1fr !important; } }
body.ukl ul.products li.product-category { display: none; }

/* ---------- Product page: container + CartFlows swatches ---------- */
body.ukl .ast-woocommerce-container, body.ukl.single-product #content, body.ukl.single-product .site-content { background: transparent !important; }
.ukl-specs__list li { font-size: 15px; }
.ukl-specs__list + table { margin-top: 6px; }
body.ukl .cfvsw-swatches-container { display: flex; flex-direction: column; gap: 10px; width: 100%; }
body.ukl .cfvsw-swatches-container .cfvsw-swatches-option { box-shadow: none !important; border: 1px solid var(--ukl-line) !important; border-radius: 16px !important; background: var(--ukl-card) !important; padding: 12px 18px !important; min-height: 48px; height: auto !important; min-width: 0 !important; width: 100% !important; box-sizing: border-box; display: flex; align-items: center; margin: 0 !important; font-family: var(--ukl-sans); font-weight: 600; font-size: 15px; color: var(--ukl-ink); line-height: 1.2; cursor: pointer; }
body.ukl .cfvsw-swatches-container .cfvsw-swatches-option:hover { border-color: var(--ukl-copper-l) !important; }
body.ukl .cfvsw-swatches-container .cfvsw-selected-swatch { border: 2px solid var(--ukl-ink) !important; padding: 11px 17px !important; outline: none !important; }
body.ukl .cfvsw-swatches-container .cfvsw-swatch-inner { font-size: 15px; font-weight: 600; color: var(--ukl-ink); display: flex; align-items: center; gap: 12px; }
body.ukl .cfvsw-swatches-container .cfvsw-swatch-inner::before { content: ''; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--ukl-line); box-sizing: border-box; flex-shrink: 0; }
body.ukl .cfvsw-swatches-container .cfvsw-selected-swatch .cfvsw-swatch-inner::before { border: 6px solid var(--ukl-ink); }
body.ukl .cfvsw-swatches-container .cfvsw-swatches-option.cfvsw-disabled-swatch { opacity: .4; }
body.ukl form.cart .variations td.value { padding-top: 0; }

/* ---------- Cart / checkout / account as a paper card ---------- */
body.ukl.woocommerce-cart .ast-separate-container .ast-article-single,
body.ukl.woocommerce-checkout .ast-separate-container .ast-article-single,
body.ukl.woocommerce-account .ast-separate-container .ast-article-single {
  background: var(--ukl-card); border: 1px solid var(--ukl-line); border-radius: 28px; padding: 40px; margin: 0 auto; max-width: 1100px;
}
body.ukl.woocommerce-cart #content, body.ukl.woocommerce-checkout #content, body.ukl.woocommerce-account #content { padding: 48px var(--ukl-gutter) 88px; }
body.ukl .woocommerce-cart-form .button, body.ukl .wc-proceed-to-checkout .button { height: 48px; }
body.ukl .return-to-shop .button { text-transform: none; }

/* ---------- Mobile pass ---------- */
body.ukl { overflow-x: clip; }
.ukl-product__main > *, .ukl-product__details > *, .ukl-hero > *, .ukl-maker > *, .ukl-why > * { min-width: 0; }
body.ukl ul.products { margin: 0 !important; padding: 0 !important; width: auto !important; }
body.ukl ul.products li.product.ast-grid-common-col, body.ukl ul.products li.product { padding: 0 !important; margin: 0 !important; width: auto !important; }
body.ukl .woocommerce-product-gallery, body.ukl .woocommerce-product-gallery .flex-viewport { max-width: 100%; }
@media (max-width: 640px) {
  .ukl-announce span:not(:first-child) { display: none; }
  .ukl-hero { padding-top: 36px; gap: 28px; }
  .ukl-hero__copy h1 { font-size: 42px; }
  .ukl-hero__copy p { font-size: 17px; }
  .ukl-hero__ctas .ukl-btn { height: 48px; padding: 0 20px; font-size: 15px; }
  .ukl-pill { padding: 10px 14px; }
  .ukl-pill strong { font-size: 15px; }
  .ukl-trustbar { grid-template-columns: 1fr; }
  .ukl-trustbar > div { padding: 16px 0; }
  .ukl-trustbar > div + div { border-left: 0; border-top: 1px solid var(--ukl-line); padding-left: 0; }
  .ukl-section, .ukl-families { padding-top: 56px; }
  .ukl-section__head { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 24px; }
  .ukl-why { padding: 32px 24px; border-radius: 24px; margin-top: 40px; }
  .ukl-why .ukl-rings { display: none; }
  .ukl-maker { padding: 56px var(--ukl-gutter); }
  .ukl-newsletter { padding: 32px 24px; margin-bottom: 56px; }
  .ukl-newsletter .ukl-rings { display: none; }
  .ukl-newsletter input[type="email"] { width: 100%; }
  .ukl-newsletter form { width: 100%; }
  .ukl-newsletter form .ukl-btn { width: 100%; }
  .ukl-footer { padding: 48px var(--ukl-gutter) 32px; }
  .ukl-footer .ukl-rings { display: none; }
  .ukl-footer__cols { gap: 32px 40px; }
  .ukl-shop-hero { padding-top: 32px; gap: 20px; }
  .ukl-shop-hero__aside { align-items: flex-start; }
  .ukl-toolbar { flex-direction: column; align-items: flex-start; }
  .ukl-compare { margin-top: 56px; padding: 24px; gap: 20px; }
  .ukl-faq { padding: 56px var(--ukl-gutter) 64px; }
  .ukl-product { padding-top: 24px; }
  .ukl-product__main { padding-top: 20px; gap: 24px; }
  body.ukl .product_title { font-size: 32px; }
  body.ukl .summary .price { font-size: 30px; }
  .ukl-inbox .ukl-list { grid-template-columns: 1fr; }
  .ukl-product__details { padding-top: 56px; }
  .ukl-specs { position: static; padding: 24px; }
  .ukl-product__desc h2 { font-size: 30px; }
  body.ukl .related.products, body.ukl .up-sells.products { padding-top: 56px; }
  .ukl-card--custom { min-height: 0; padding: 24px; }
}

/* ---------- Final polish ---------- */
.ukl-product__gallery { position: relative; }
@media (max-width: 900px) {
  .ukl-header.is-open .ukl-nav { box-shadow: 0 30px 40px -20px rgba(20,16,12,.35); }
  .ukl-nav li a { border-bottom: 1px solid var(--ukl-line) !important; }
  .ukl-nav li:last-child a { border-bottom: 0 !important; }
}
@media (max-width: 640px) {
  body.ukl .summary .ukl-trust { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  body.ukl .summary .ukl-trust > div { padding: 10px 10px; font-size: 12px; gap: 6px; }
}

/* ---------- Product page v2: design parity ---------- */
body.ukl .ast-woocommerce-container { padding: 0 !important; }
body.ukl .summary .ast-shipping-text { display: none; }
body.ukl .summary > .ppc-button-wrapper, body.ukl .summary > .ppcp-messages, body.ukl .summary > .wcpay-express-checkout-wrapper,
body.ukl .summary .wcpay-express-checkout-wrapper, body.ukl .summary #wcpay-express-checkout-element, body.ukl .summary .wcpay-express-checkout-button-separator { display: none !important; }
.ukl-stockline { display: inline-flex; align-items: center; gap: 8px; font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ukl-glint); }
.ukl-stockline__dot { width: 8px; height: 8px; border-radius: 4px; background: currentColor; }
.ukl-stockline.is-out { color: var(--ukl-copper); }
body.ukl .summary .woocommerce-product-rating + .ukl-stockline { margin-top: -6px; }
.ukl-price-note { font-size: 15px; color: var(--ukl-mute); margin-top: -8px; }
body.ukl .summary .price { margin: 0; }
body.ukl .summary .price del { display: inline; }
body.ukl form.cart .variations, body.ukl form.cart .cfvsw-swatches-container, body.ukl form.cart .cfvsw-hidden-select { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; margin: 0 !important; padding: 0 !important; opacity: 0; pointer-events: none; }
body.ukl form.cart .woocommerce-variation-price, body.ukl form.cart .woocommerce-variation-availability { display: none !important; }
body.ukl form.cart .single_variation_wrap { margin: 0; }
body.ukl form.cart.variations_form { position: relative; }
.ukl-variants { display: flex; flex-direction: column; gap: 10px; }
.ukl-variants__label { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-mute); margin-bottom: 2px; }
.ukl-variant { display: flex; align-items: center; gap: 14px; padding: 15px 18px; border-radius: 16px; border: 1px solid var(--ukl-line); background: transparent; cursor: pointer; margin: 0; transition: border-color .15s ease, background .15s ease; }
.ukl-variant:hover { border-color: var(--ukl-copper-l); }
.ukl-variant.is-selected { border: 2px solid var(--ukl-ink); background: var(--ukl-card); padding: 14px 17px; }
.ukl-variant input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ukl-variant__radio { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--ukl-line); box-sizing: border-box; flex-shrink: 0; }
.ukl-variant.is-selected .ukl-variant__radio { border: 6px solid var(--ukl-ink); }
.ukl-variant__body { display: flex; flex-direction: column; gap: 2px; flex-grow: 1; }
.ukl-variant__name { font-weight: 600; color: var(--ukl-ink); font-size: 15px; }
.ukl-variant__desc { font-size: 13px; color: var(--ukl-mute); }
.ukl-variant__price { font-family: var(--ukl-mono); font-size: 14px; color: var(--ukl-copper); white-space: nowrap; }
.ukl-variant__price del { color: var(--ukl-mute); margin-right: 6px; }
.ukl-variant__price ins { text-decoration: none; }
body.ukl form.cart .quantity { display: inline-flex; align-items: center; }
.ukl-qty-btn { width: 48px; height: 56px; border: 0; background: transparent; display: inline-flex; align-items: center; justify-content: center; color: var(--ukl-ink); cursor: pointer; padding: 0; border-radius: 0; }
.ukl-qty-btn:hover { background: var(--ukl-copper-t); }
body.ukl form.cart .quantity .qty { width: 40px; -moz-appearance: textfield; }
body.ukl form.cart .quantity .qty::-webkit-outer-spin-button, body.ukl form.cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.ukl form.cart .woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: center; }
body.ukl form.cart .woocommerce-variation-add-to-cart .quantity { flex-shrink: 0; }
body.ukl .single_add_to_cart_button { white-space: nowrap; }
body.ukl .single_add_to_cart_button.disabled, body.ukl .single_add_to_cart_button:disabled { opacity: .55; }
.ukl-product__desc > h2 { font-size: clamp(28px, 2.7vw, 38px); margin: 0; }
.ukl-reviews__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 28px; flex-wrap: wrap; }
.ukl-reviews__head > div:first-child { display: flex; flex-direction: column; gap: 12px; }
.ukl-reviews__head h2 { margin: 0; font-size: 38px; }
.ukl-reviews__count { margin: 0; font-size: 15px; color: var(--ukl-mute); }
.ukl-rating-bars { display: flex; flex-direction: column; gap: 6px; min-width: 280px; }
.ukl-rating-bar { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ukl-mute); }
.ukl-rating-bar .n { width: 14px; text-align: right; }
.ukl-rating-bar svg { color: var(--ukl-copper); }
.ukl-rating-bar .track { flex-grow: 1; height: 6px; border-radius: 3px; background: var(--ukl-line); overflow: hidden; }
.ukl-rating-bar .fill { height: 100%; background: var(--ukl-copper); }
.ukl-rating-bar .pct { width: 36px; font-family: var(--ukl-mono); font-size: 12px; }
body.ukl #reviews #comments > h2, body.ukl .woocommerce-Reviews-title { display: none; }
body.ukl #reviews .woocommerce-noreviews { display: none; }
body.ukl #review_form_wrapper { margin-top: 0; }
body.ukl #reviews ol.commentlist + #review_form_wrapper { margin-top: 40px; }
body.ukl .related.products > h2 { font-size: 32px; }

body.ukl .single_add_to_cart_button { text-transform: none; letter-spacing: 0; background: var(--ukl-copper); }
body.ukl .single_add_to_cart_button:hover { background: var(--ukl-ink); }
body.ukl .summary .price .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

body.ukl button.single_add_to_cart_button, body.ukl button.single_add_to_cart_button.alt, body.ukl .ast-woocommerce-container button.single_add_to_cart_button { background: var(--ukl-copper) !important; color: #FFF8F0 !important; }
body.ukl button.single_add_to_cart_button:hover, body.ukl button.single_add_to_cart_button.alt:hover { background: var(--ukl-ink) !important; }

/* ---------- Product page: no white content box, review form ---------- */
body.ukl .ast-article-single, body.ukl .ukl-product, body.ukl #primary .ast-article-single, body.ukl.single-product .ast-article-single { background: transparent !important; box-shadow: none !important; border: 0 !important; }
body.ukl #review_form_wrapper { margin-top: 0; padding: 40px; border-radius: 24px; background: var(--ukl-card); border: 1px solid var(--ukl-line); max-width: 860px; }
body.ukl #review_form { border: 0 !important; padding: 0 !important; margin: 0; background: transparent; }
body.ukl #review_form .comment-respond { padding: 0; }
body.ukl #review_form .comment-reply-title { display: block; font-family: var(--ukl-display); font-weight: 600; font-size: 26px; color: var(--ukl-ink); margin: 0 0 6px; line-height: 1.15; letter-spacing: -0.02em; }
body.ukl #review_form .comment-notes { margin: 0 0 22px; font-size: 14px; color: var(--ukl-mute); }
body.ukl #review_form .comment-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
body.ukl #review_form .comment-form > * { margin: 0; }
body.ukl #review_form .comment-form-rating, body.ukl #review_form .comment-form-comment, body.ukl #review_form .comment-form-cookies-consent, body.ukl #review_form .form-submit { grid-column: 1 / -1; }
body.ukl #review_form label { display: block; font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-mute); margin: 0 0 8px; font-weight: 500; }
body.ukl #review_form .comment-form-rating label { display: block; }
body.ukl #review_form p.stars { margin: 0; line-height: 1; }
body.ukl #review_form p.stars a { font-size: 28px; width: 1em; height: 1em; color: var(--ukl-copper); margin-right: 6px; }
body.ukl #review_form p.stars a::before { color: var(--ukl-line); }
body.ukl #review_form p.stars a:hover::before, body.ukl #review_form p.stars a.active::before, body.ukl #review_form p.stars:hover a::before, body.ukl #review_form p.stars.selected a.active::before, body.ukl #review_form p.stars.selected a:not(.active)::before { color: var(--ukl-copper); }
body.ukl #review_form p.stars.selected a.active ~ a::before, body.ukl #review_form p.stars a:hover ~ a::before { color: var(--ukl-line); }
body.ukl #review_form textarea, body.ukl #review_form input[type="text"], body.ukl #review_form input[type="email"] { width: 100%; box-sizing: border-box; border: 1px solid var(--ukl-line); background: var(--ukl-paper); border-radius: 14px; padding: 12px 16px; font-family: var(--ukl-sans); font-size: 15px; color: var(--ukl-ink); }
body.ukl #review_form textarea { min-height: 140px; }
body.ukl #review_form .comment-form-cookies-consent { display: flex; align-items: center; gap: 10px; }
body.ukl #review_form .comment-form-cookies-consent label { display: inline; margin: 0; text-transform: none; letter-spacing: 0; font-family: var(--ukl-sans); font-size: 14px; color: var(--ukl-body); }
body.ukl #review_form .comment-form-cookies-consent input { margin: 0; accent-color: var(--ukl-ink); width: 16px; height: 16px; }
body.ukl #review_form input.submit, body.ukl #review_form input[type="submit"] { display: inline-flex; align-items: center; height: 52px; padding: 0 28px; border-radius: 26px; border: 0; background: var(--ukl-ink) !important; color: var(--ukl-dk-t) !important; font-family: var(--ukl-sans); font-weight: 500; font-size: 16px; text-transform: none; letter-spacing: 0; cursor: pointer; }
body.ukl #review_form input.submit:hover { background: var(--ukl-copper) !important; }
@media (max-width: 640px) { body.ukl #review_form .comment-form { grid-template-columns: 1fr; } body.ukl #review_form_wrapper { padding: 24px; } }
body.ukl #reviews #review_form_wrapper, body.ukl .woocommerce #review_form_wrapper { padding: 40px !important; }
body.ukl #review_form .comment-notes, body.ukl #review_form .comment-form-rating, body.ukl #review_form .comment-form-comment, body.ukl #review_form .comment-form-cookies-consent, body.ukl #review_form .form-submit { grid-column: 1 / -1 !important; }
body.ukl #review_form .comment-form-author, body.ukl #review_form .comment-form-email { grid-column: auto; }
body.ukl #review_form .comment-form input[type="text"], body.ukl #review_form .comment-form input[type="email"], body.ukl #review_form .comment-form textarea { width: 100% !important; max-width: none !important; }
@media (max-width: 640px) { body.ukl #reviews #review_form_wrapper { padding: 24px !important; } }
body.ukl #review_form .comment-form > p, body.ukl #review_form .comment-form > div { width: 100% !important; max-width: none !important; float: none !important; box-sizing: border-box; padding: 0 !important; }
body.ukl #review_form .comment-form { display: grid !important; }

/* ---------- Product page layout v3: description under the gallery, specs under the buy box ---------- */
body.ukl .ukl-product { padding: 44px var(--ukl-gutter) 0 !important; }
.ukl-product__main { align-items: start; }
.ukl-product__col { display: flex; flex-direction: column; gap: 56px; min-width: 0; }
.ukl-product__col--right .ukl-specs { position: static; }
body.ukl .summary .product_title { margin-bottom: 0 !important; }
body.ukl .summary > div:empty { display: none !important; }
body.ukl .summary .ukl-trust > div { flex-direction: row; align-items: center; padding: 12px 12px; font-size: 13px; white-space: nowrap; }
body.ukl .summary .ukl-trust { gap: 8px; }
body.ukl .related.products ul.products[class*="columns-"], body.ukl .up-sells.products ul.products[class*="columns-"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 1100px) { body.ukl .related.products ul.products[class*="columns-"], body.ukl .up-sells.products ul.products[class*="columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 560px)  { body.ukl .related.products ul.products[class*="columns-"], body.ukl .up-sells.products ul.products[class*="columns-"] { grid-template-columns: 1fr !important; } }
@media (max-width: 1000px) { .ukl-product__col { gap: 40px; } }
@media (max-width: 640px) { body.ukl .ukl-product { padding-top: 24px !important; } body.ukl .summary .ukl-trust > div { white-space: normal; font-size: 12px; } }

/* =====================================================================
   Site-wide: pages, blog, single post, 404, account — same design language
   ===================================================================== */
body.ukl #content > .ast-container { max-width: 1440px !important; padding: 0 !important; }
body.ukl.page #content > .ast-container, body.ukl.single-post #content > .ast-container, body.ukl.blog #content > .ast-container,
body.ukl.archive:not(.woocommerce) #content > .ast-container, body.ukl.search #content > .ast-container, body.ukl.error404 #content > .ast-container { max-width: 1440px; padding: 0; }
body.ukl #primary { width: 100%; max-width: none; margin: 0; padding: 0; }

/* Page header */
.ukl-pagehead { display: flex; flex-direction: column; gap: 16px; padding: 44px var(--ukl-gutter) 40px; max-width: 1440px; margin: 0 auto; box-sizing: border-box; }
.ukl-pagehead .entry-title, .ukl-pagehead h1 { margin: 0; font-size: clamp(38px, 4.4vw, 60px); line-height: 1.02; max-width: 900px; }
.ukl-pagehead__lead { margin: 0; font-size: 18px; line-height: 1.55; color: var(--ukl-body); max-width: 720px; }
.ukl-pagehead--post { padding-bottom: 32px; }

/* Regular pages: content column */
.ukl-page .ukl-article { padding: 0 var(--ukl-gutter) 88px; max-width: 1440px; margin: 0 auto; box-sizing: border-box; }
.ukl-page .entry-content { font-size: 17px; line-height: 1.7; }
.ukl-page .entry-content > *:not(.alignfull):not(.alignwide):not(.wp-block-uagb-container):not(.uagb-is-root-container) { max-width: 820px; }
.ukl-page .entry-content > .is-layout-constrained, .ukl-page .entry-content > .wp-block-columns { max-width: none; }

/* Spectra / Gutenberg blocks: match the theme */
body.ukl .uagb-heading-text, body.ukl .wp-block-heading, body.ukl .entry-content h1, body.ukl .entry-content h2, body.ukl .entry-content h3, body.ukl .entry-content h4 { font-family: var(--ukl-display) !important; color: var(--ukl-ink) !important; letter-spacing: -0.02em; font-weight: 600 !important; }
body.ukl .entry-content h2 { font-size: clamp(30px, 3.2vw, 40px); }
body.ukl .entry-content h3 { font-size: 24px; }
body.ukl .entry-content p, body.ukl .uagb-infobox__content-wrap p, body.ukl .uagb-ifb-desc, body.ukl .uagb-container-inner-blocks-wrap p { font-family: var(--ukl-sans); color: var(--ukl-body); }
body.ukl .entry-content a:not(.wp-block-button__link):not(.uagb-buttons-repeater) { color: var(--ukl-copper); }
body.ukl .wp-block-button__link, body.ukl .uagb-buttons-repeater, body.ukl .uagb-button__link, body.ukl .wp-block-uagb-buttons-child .uagb-buttons-repeater {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 24px !important; border-radius: 26px !important; border: 0 !important;
  background: var(--ukl-ink) !important; color: var(--ukl-dk-t) !important; font-family: var(--ukl-sans) !important; font-weight: 500 !important; font-size: 16px !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important;
}
body.ukl .wp-block-button__link:hover, body.ukl .uagb-buttons-repeater:hover { background: var(--ukl-copper) !important; color: #fff !important; transform: translateY(-1px); }
body.ukl .is-style-outline .wp-block-button__link { background: transparent !important; color: var(--ukl-copper) !important; border: 1.5px solid var(--ukl-copper) !important; }
body.ukl .wp-block-uagb-container, body.ukl .uagb-container-inner-blocks-wrap, body.ukl .wp-block-uagb-image__figure img, body.ukl .entry-content img, body.ukl .wp-block-image img { border-radius: var(--ukl-radius); }
body.ukl .wp-block-uagb-container.uagb-is-root-container { border-radius: 28px; overflow: hidden; }
body.ukl .wp-block-uagb-info-box, body.ukl .uagb-infobox__content-wrap { font-family: var(--ukl-sans); }
body.ukl .wp-block-uagb-info-box .uagb-ifb-title { font-family: var(--ukl-display) !important; color: var(--ukl-ink) !important; font-weight: 600 !important; }
body.ukl .uagb-ifb-icon svg, body.ukl .uagb-ifb-icon { fill: var(--ukl-copper) !important; color: var(--ukl-copper) !important; }
body.ukl .wp-block-uagb-testimonial, body.ukl .wp-block-uagb-team, body.ukl .uagb-team__wrap { font-family: var(--ukl-sans); }
body.ukl .uagb-team__title, body.ukl .uagb-tm__author-name { font-family: var(--ukl-display) !important; color: var(--ukl-ink) !important; }
body.ukl .uagb-team__image-wrap img { border-radius: 50%; }
body.ukl .entry-content ul:not(.ukl-list):not(.products) li::marker { color: var(--ukl-copper); }
body.ukl .wp-block-separator { border-color: var(--ukl-line); }
body.ukl .wp-block-quote, body.ukl blockquote { border-left: 3px solid var(--ukl-copper-l); padding-left: 20px; font-family: var(--ukl-display); font-size: 22px; color: var(--ukl-ink); }
body.ukl .wp-block-table table, body.ukl .entry-content table { border: 1px solid var(--ukl-line); border-radius: 16px; overflow: hidden; border-collapse: separate; border-spacing: 0; }
body.ukl .entry-content th { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ukl-copper); background: var(--ukl-card); }
body.ukl .entry-content td, body.ukl .entry-content th { border-color: var(--ukl-line); }
/* Forms in pages (WPForms / SureForms / comments) */
body.ukl .entry-content input[type="text"], body.ukl .entry-content input[type="email"], body.ukl .entry-content input[type="tel"], body.ukl .entry-content textarea, body.ukl .entry-content select,
body.ukl .wpforms-container input[type="text"], body.ukl .wpforms-container input[type="email"], body.ukl .wpforms-container textarea, body.ukl .srfm-input-common { border: 1px solid var(--ukl-line) !important; background: var(--ukl-card) !important; border-radius: 14px !important; padding: 12px 16px !important; font-family: var(--ukl-sans) !important; color: var(--ukl-ink) !important; box-shadow: none !important; }
body.ukl .wpforms-submit, body.ukl .srfm-button, body.ukl .entry-content button[type="submit"], body.ukl .entry-content input[type="submit"] { display: inline-flex; align-items: center; min-height: 52px; padding: 0 28px !important; border-radius: 26px !important; border: 0 !important; background: var(--ukl-ink) !important; color: var(--ukl-dk-t) !important; font-family: var(--ukl-sans) !important; font-weight: 500 !important; font-size: 16px !important; cursor: pointer; }
body.ukl .wpforms-submit:hover, body.ukl .srfm-button:hover { background: var(--ukl-copper) !important; }
body.ukl .wpforms-field-label, body.ukl .srfm-block label { font-family: var(--ukl-mono) !important; font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-mute) !important; font-weight: 500 !important; }

/* Blog index / archives */
.ukl-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; padding: 0 var(--ukl-gutter); max-width: 1440px; margin: 0 auto; box-sizing: border-box; }
.ukl-postcard { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; background: transparent; }
.ukl-postcard__media { display: block; aspect-ratio: 4 / 3; border-radius: var(--ukl-radius); overflow: hidden; background: var(--ukl-card); border: 1px solid var(--ukl-line); }
.ukl-postcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; border-radius: 0; }
.ukl-postcard:hover .ukl-postcard__media img { transform: scale(1.03); }
.ukl-postcard__blank { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.ukl-postcard__blank .ukl-rings { position: static; opacity: .35; }
.ukl-postcard__body { display: flex; flex-direction: column; gap: 8px; }
.ukl-postcard__meta { color: var(--ukl-copper); }
.ukl-postcard__title { margin: 0; font-size: 22px; line-height: 1.25; }
.ukl-postcard__title a { color: var(--ukl-ink); }
.ukl-postcard__title a:hover { color: var(--ukl-copper); }
.ukl-postcard__excerpt { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ukl-body); }
.ukl-pagination { padding: 48px var(--ukl-gutter) 88px; }
.ukl-pagination .nav-links { display: flex; gap: 6px; justify-content: center; }
.ukl-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 22px; border: 1px solid var(--ukl-line); background: var(--ukl-card); color: var(--ukl-ink); }
.ukl-pagination .page-numbers.current { background: var(--ukl-ink); color: var(--ukl-dk-t); border-color: var(--ukl-ink); }
.ukl-blog .ukl-empty { padding: 0 var(--ukl-gutter) 24px; }
.ukl-blog > p { padding: 0 var(--ukl-gutter) 88px; }
@media (max-width: 1000px) { .ukl-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px)  { .ukl-posts { grid-template-columns: 1fr; } }

/* Single post */
.ukl-single .ukl-article--post { padding: 0 0 88px; }
.ukl-single .ukl-article--post:has(.ukl-comments) { padding-bottom: 0; }
.ukl-single__hero { margin: 0 var(--ukl-gutter) 48px; border-radius: 28px; overflow: hidden; border: 1px solid var(--ukl-line); background: var(--ukl-card); max-width: 1296px; }
.ukl-single__hero img { width: 100%; height: auto; display: block; max-height: 640px; object-fit: cover; border-radius: 0; }
.ukl-single__content { max-width: 760px; margin: 0 auto; padding: 0 var(--ukl-gutter); font-size: 18px; line-height: 1.75; }
.ukl-single__content h2 { font-size: 32px; margin: 40px 0 14px; }
.ukl-single__content h3 { font-size: 24px; margin: 32px 0 10px; }
.ukl-single__content p { margin: 0 0 20px; }
.ukl-single__content img { border-radius: var(--ukl-radius); }
.ukl-single__content figure { margin: 28px 0; }
.ukl-single__content .wp-block-image figcaption { font-size: 13px; color: var(--ukl-mute); text-align: center; }
.ukl-single__foot { max-width: 760px; margin: 48px auto 0; padding: 32px var(--ukl-gutter) 0; border-top: 1px solid var(--ukl-line); display: flex; flex-direction: column; gap: 20px; }
.ukl-tags a { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; margin: 0 6px 6px 0; border-radius: 16px; border: 1px solid var(--ukl-line); font-size: 13px; color: var(--ukl-body); }
.ukl-single__nav { display: flex; justify-content: space-between; gap: 24px; }
.ukl-single__nav a { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--ukl-ink); }
.ukl-single__nav a:hover { color: var(--ukl-copper); }
.ukl-single__nav .next { margin-left: auto; text-align: right; }
body.ukl .ukl-single .comments-area { max-width: 760px; margin: 48px auto 0; padding: 0 var(--ukl-gutter); }
body.ukl .ast-single-post .entry-header, body.ukl .ast-post-format- .entry-header { display: none; }

/* 404 */
.ukl-404 { padding: 72px var(--ukl-gutter) 120px; }
.ukl-404__inner { position: relative; max-width: 640px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.ukl-404__inner .ukl-rings { position: absolute; right: -80px; top: -90px; opacity: .3; }
.ukl-404__inner h1 { margin: 0; font-size: clamp(40px, 5vw, 64px); }
.ukl-404__inner p { margin: 0; font-size: 18px; max-width: 480px; }

/* Cart / checkout / account — same card + form styling */
body.ukl.woocommerce-cart #content, body.ukl.woocommerce-checkout #content, body.ukl.woocommerce-account #content { padding: 0 !important; }
body.ukl.woocommerce-cart .ukl-page, body.ukl.woocommerce-checkout .ukl-page, body.ukl.woocommerce-account .ukl-page { padding-bottom: 0; }
body.ukl.woocommerce-cart .ukl-article, body.ukl.woocommerce-checkout .ukl-article, body.ukl.woocommerce-account .ukl-article { max-width: 1100px; margin: 0 auto 88px; padding: 40px; background: var(--ukl-card); border: 1px solid var(--ukl-line); border-radius: 28px; box-sizing: border-box; }
body.ukl.woocommerce-cart .ukl-page .entry-content > *, body.ukl.woocommerce-checkout .ukl-page .entry-content > *, body.ukl.woocommerce-account .ukl-page .entry-content > * { max-width: none; }
body.ukl .woocommerce form .form-row input.input-text, body.ukl .woocommerce form .form-row textarea, body.ukl .woocommerce form .form-row select, body.ukl .woocommerce-EditAccountForm input, body.ukl .woocommerce-form-login input.input-text, body.ukl .woocommerce-form-register input.input-text, body.ukl .woocommerce-ResetPassword input.input-text { border: 1px solid #9C907E !important; background: var(--ukl-paper) !important; border-radius: 14px !important; padding: 12px 16px !important; font-family: var(--ukl-sans); color: var(--ukl-ink); box-shadow: none !important; }
body.ukl .woocommerce form .form-row label, body.ukl .woocommerce-form-login label, body.ukl .woocommerce-form-register label { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-mute); font-weight: 500; }
body.ukl .woocommerce form .form-row label.woocommerce-form__label-for-checkbox { font-family: var(--ukl-sans); font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--ukl-body); }
body.ukl .woocommerce-form-login, body.ukl .woocommerce-form-register, body.ukl .woocommerce-ResetPassword { border: 0 !important; padding: 0 !important; margin: 0 !important; max-width: 480px; }
body.ukl .woocommerce-form-login .button, body.ukl .woocommerce-form-register .button, body.ukl .woocommerce-ResetPassword .button, body.ukl .woocommerce button.button, body.ukl .woocommerce a.button, body.ukl .woocommerce input.button, body.ukl #place_order { display: inline-flex !important; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px !important; border-radius: 26px !important; border: 0 !important; background: var(--ukl-ink) !important; color: var(--ukl-dk-t) !important; font-family: var(--ukl-sans) !important; font-weight: 500 !important; font-size: 16px !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1 !important; }
body.ukl .woocommerce button.button:hover, body.ukl .woocommerce a.button:hover, body.ukl #place_order:hover { background: var(--ukl-copper) !important; color: #fff !important; }
body.ukl .woocommerce button.button.alt, body.ukl .checkout-button, body.ukl #place_order { background: var(--ukl-copper) !important; font-weight: 600 !important; }
body.ukl .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
body.ukl .woocommerce-MyAccount-navigation ul li a { display: block; padding: 10px 14px; border-radius: 12px; color: var(--ukl-body); font-weight: 500; }
body.ukl .woocommerce-MyAccount-navigation ul li.is-active a, body.ukl .woocommerce-MyAccount-navigation ul li a:hover { background: var(--ukl-copper-t); color: var(--ukl-ink); }
body.ukl .woocommerce-MyAccount-content { font-size: 15px; }
body.ukl .woocommerce table.shop_table th { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ukl-copper); font-weight: 500; }
body.ukl .woocommerce table.shop_table td, body.ukl .woocommerce table.shop_table th { border-color: var(--ukl-line); }
body.ukl .woocommerce .cart-collaterals .cart_totals, body.ukl .woocommerce-checkout #order_review, body.ukl .woocommerce-checkout-review-order { background: var(--ukl-paper); border: 1px solid var(--ukl-line); border-radius: var(--ukl-radius); padding: 24px; }
body.ukl .woocommerce h2, body.ukl .woocommerce h3 { font-family: var(--ukl-display); font-weight: 600; color: var(--ukl-ink); }
body.ukl .woocommerce-info, body.ukl .woocommerce-message, body.ukl .woocommerce-error { border-radius: 16px; border-top-color: var(--ukl-copper); background: var(--ukl-paper); color: var(--ukl-body); }
body.ukl .woocommerce-info::before, body.ukl .woocommerce-message::before { color: var(--ukl-copper); }
@media (max-width: 800px) { body.ukl.woocommerce-cart .ukl-article, body.ukl.woocommerce-checkout .ukl-article, body.ukl.woocommerce-account .ukl-article { padding: 24px; border-radius: 20px; } }

/* Product category pages use the store hero too (archive-product.php) — nothing extra needed */
/* Astra grid leftovers on blog cards + sidebar widths */
body.ukl .ukl-postcard, body.ukl article.ukl-postcard.ast-article-post { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; float: none !important; background: transparent !important; box-shadow: none !important; border: 0 !important; }
body.ukl .ukl-postcard .ukl-postcard__media img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
body.ukl #primary, body.ukl.ast-right-sidebar #primary, body.ukl.ast-left-sidebar #primary { width: 100% !important; max-width: none !important; }
body.ukl #secondary { display: none; }
body.ukl.woocommerce-cart .ukl-article.ast-article-single, body.ukl.woocommerce-checkout .ukl-article.ast-article-single, body.ukl.woocommerce-account .ukl-article.ast-article-single { background: var(--ukl-card) !important; border: 1px solid var(--ukl-line) !important; }
body.ukl .ukl-page .ukl-article.ast-article-single { padding: 0 var(--ukl-gutter) 88px !important; }
body.ukl.woocommerce-cart .ukl-article.ast-article-single, body.ukl.woocommerce-checkout .ukl-article.ast-article-single, body.ukl.woocommerce-account .ukl-article.ast-article-single { padding: 40px !important; }
/* main paddings that Astra's .site-main reset was eating */
body.ukl main.ukl-404 { padding: 72px var(--ukl-gutter) 120px; }
body.ukl.woocommerce-cart .ukl-article.ast-article-single, body.ukl.woocommerce-checkout .ukl-article.ast-article-single, body.ukl.woocommerce-account .ukl-article.ast-article-single { width: 100%; }
body.ukl.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 40px; }
body.ukl.woocommerce-account .woocommerce > .woocommerce-notices-wrapper, body.ukl.woocommerce-account .woocommerce > form, body.ukl.woocommerce-account .woocommerce > h2, body.ukl.woocommerce-account .woocommerce > .u-columns, body.ukl.woocommerce-account .woocommerce > .woocommerce-message, body.ukl.woocommerce-account .woocommerce > .woocommerce-error { grid-column: 1 / -1; }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation { width: auto; float: none; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
@media (max-width: 800px) { body.ukl.woocommerce-account .woocommerce { grid-template-columns: 1fr; } }
body.ukl .srfm-button, body.ukl .srfm-submit-button { text-transform: none !important; letter-spacing: 0 !important; border-radius: 26px !important; }
body.ukl .srfm-form-container, body.ukl .srfm-form { --srfm-color-input-background: var(--ukl-card); --srfm-color-input-border: var(--ukl-line); --srfm-color-input-text: var(--ukl-ink); --srfm-color-input-label: var(--ukl-mute); --srfm-btn-bg-color: var(--ukl-ink); --srfm-btn-text-color: var(--ukl-dk-t); --srfm-btn-border-radius: 26px; --srfm-color-input-border-radius: 14px; font-family: var(--ukl-sans); }

/* =====================================================================
   About page
   ===================================================================== */
.ukl-about__hero { display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; align-items: center; padding: 44px var(--ukl-gutter) 56px; }
.ukl-about__hero-copy { display: flex; flex-direction: column; gap: 22px; }
.ukl-about__hero-copy h1 { margin: 0; font-size: clamp(42px, 5.2vw, 72px); line-height: 1.02; }
.ukl-about__lead { margin: 0; font-size: 19px; line-height: 1.55; max-width: 560px; }
.ukl-about__hero-visual { position: relative; display: flex; justify-content: center; align-items: center; min-height: 380px; }
.ukl-about__hero-visual .ukl-rings { left: 50%; top: 50%; bottom: auto; transform: translate(-50%, -50%); width: 460px; height: 460px; opacity: .4; }
.ukl-about__portrait { position: relative; width: 260px; max-width: 70%; aspect-ratio: 4 / 5; border-radius: 28px; overflow: hidden; border: 1px solid var(--ukl-line); background: var(--ukl-card); box-shadow: 0 30px 60px -30px rgba(20,16,12,.35); }
.ukl-about__portrait img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.ukl-about__hero-visual .ukl-pill--b { right: auto; left: calc(50% - 190px); top: auto; bottom: 28px; }
.ukl-about__stats { margin: 0 var(--ukl-gutter); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ukl-line); border-bottom: 1px solid var(--ukl-line); }
.ukl-about__stats > div { display: flex; flex-direction: column; gap: 4px; padding: 26px 8px; }
.ukl-about__stats > div + div { border-left: 1px solid var(--ukl-line); padding-left: 28px; }
.ukl-about__stats strong { font-family: var(--ukl-display); font-weight: 600; font-size: 36px; color: var(--ukl-ink); line-height: 1; letter-spacing: -0.02em; }
.ukl-about__stats span { font-size: 14px; color: var(--ukl-mute); }
.ukl-about__story, .ukl-about__shelf { padding: 88px var(--ukl-gutter) 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: center; }
.ukl-about__story-img, .ukl-about__shelf-img { position: relative; aspect-ratio: 4 / 3; border-radius: 28px; overflow: hidden; border: 1px solid var(--ukl-line); background: var(--ukl-card); }
.ukl-about__story-img img, .ukl-about__shelf-img img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.ukl-about__story-img .ukl-mono { position: absolute; left: 20px; bottom: 20px; padding: 10px 14px; border-radius: 12px; background: var(--ukl-dk); color: var(--ukl-dk-e); }
.ukl-about__story-copy, .ukl-about__shelf-copy { display: flex; flex-direction: column; gap: 22px; }
.ukl-about__story-copy h2, .ukl-about__shelf-copy h2 { margin: 0; }
.ukl-about__story-copy .ukl-prose p, .ukl-about__shelf-copy p { margin: 0 0 14px; font-size: 17px; line-height: 1.65; }
.ukl-about__how { padding: 96px var(--ukl-gutter) 0; }
.ukl-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; counter-reset: step; }
.ukl-step { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 26px 24px 28px; border-radius: 22px; background: var(--ukl-card); border: 1px solid var(--ukl-line); }
.ukl-step__num { position: absolute; top: 22px; right: 22px; color: var(--ukl-copper-l); font-size: 13px; }
.ukl-step strong { font-family: var(--ukl-display); font-weight: 600; font-size: 20px; color: var(--ukl-ink); line-height: 1.2; }
.ukl-step p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--ukl-body); }
.ukl-about__facts { position: relative; overflow: hidden; margin: 88px var(--ukl-gutter) 0; padding: 64px; border-radius: 32px; background: var(--ukl-dk); color: var(--ukl-dk-l); display: flex; flex-direction: column; gap: 36px; }
.ukl-about__facts .ukl-rings { right: -200px; top: -240px; opacity: .22; }
.ukl-about__facts-head { position: relative; display: flex; flex-direction: column; gap: 14px; max-width: 640px; }
.ukl-about__facts-head .ukl-eyebrow { color: var(--ukl-copper-l); }
body.ukl .ukl-about__facts h2 { margin: 0; color: var(--ukl-dk-t); }
.ukl-facts { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ukl-fact { display: flex; gap: 16px; align-items: flex-start; padding: 22px; border-radius: 18px; background: rgba(255,248,240,.05); border: 1px solid rgba(196,141,107,.28); }
.ukl-fact svg { flex-shrink: 0; }
.ukl-fact strong { display: block; font-family: var(--ukl-display); font-weight: 600; font-size: 18px; color: var(--ukl-dk-t); margin-bottom: 4px; line-height: 1.2; }
.ukl-fact span { font-size: 14px; line-height: 1.5; color: var(--ukl-dk-b); }
.ukl-about__shelf { padding-bottom: 96px; }
@media (max-width: 1100px) { .ukl-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ukl-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1000px) {
  .ukl-about__hero { grid-template-columns: 1fr; padding-top: 32px; }
  .ukl-about__hero-visual { min-height: 0; justify-content: flex-start; padding-bottom: 24px; }
  .ukl-about__hero-visual .ukl-rings { display: none; }
  .ukl-about__portrait { width: 240px; max-width: 70%; aspect-ratio: 4 / 5; }
  .ukl-about__hero-visual .ukl-pill--b { left: 120px; bottom: 0; }
  .ukl-about__story, .ukl-about__shelf { grid-template-columns: 1fr; gap: 28px; padding-top: 56px; }
  .ukl-about__facts { padding: 36px 24px; margin-top: 56px; }
  .ukl-about__facts .ukl-rings { display: none; }
  .ukl-about__how { padding-top: 56px; }
}
@media (max-width: 640px) { .ukl-about__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ukl-about__stats > div + div { border-left: 0; padding-left: 8px; } .ukl-steps, .ukl-facts { grid-template-columns: 1fr; } .ukl-about__hero-copy h1 { font-size: 42px; } }

/* =====================================================================
   Contact page
   ===================================================================== */
.ukl-contact__hero { display: flex; flex-direction: column; gap: 16px; padding: 44px var(--ukl-gutter) 40px; }
.ukl-contact__hero h1 { margin: 0; font-size: clamp(42px, 5.2vw, 72px); line-height: 1.02; }
.ukl-contact__grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 32px; padding: 0 var(--ukl-gutter); align-items: start; }
.ukl-contact__aside { display: flex; flex-direction: column; gap: 18px; }
.ukl-contact__card { display: flex; flex-direction: column; gap: 22px; padding: 28px; border-radius: 24px; background: var(--ukl-card); border: 1px solid var(--ukl-line); }
.ukl-contact__row { display: flex; gap: 16px; align-items: flex-start; }
.ukl-contact__row svg { flex-shrink: 0; margin-top: 2px; }
.ukl-contact__row > div { display: flex; flex-direction: column; gap: 3px; }
.ukl-contact__row .ukl-mono { color: var(--ukl-mute); }
.ukl-contact__row strong { font-family: var(--ukl-display); font-weight: 600; font-size: 18px; color: var(--ukl-ink); }
.ukl-contact__row a { font-family: var(--ukl-display); font-weight: 600; font-size: 18px; color: var(--ukl-ink); }
.ukl-contact__row a:hover { color: var(--ukl-copper); }
.ukl-contact__row .sub { font-size: 14px; color: var(--ukl-mute); }
.ukl-contact__reasons { display: flex; flex-direction: column; gap: 10px; }
.ukl-contact__reasons-label { color: var(--ukl-copper); margin: 8px 0 4px; }
.ukl-contact__reason { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: 18px; border: 1px solid var(--ukl-line); background: transparent; }
.ukl-contact__reason .ukl-family__icon { width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0; }
.ukl-contact__reason strong { display: block; font-family: var(--ukl-display); font-weight: 600; font-size: 17px; color: var(--ukl-ink); margin-bottom: 2px; }
.ukl-contact__reason span { font-size: 14px; line-height: 1.5; color: var(--ukl-body); }
.ukl-contact__form { display: flex; flex-direction: column; gap: 24px; padding: 36px; border-radius: 28px; background: var(--ukl-card); border: 1px solid var(--ukl-line); position: sticky; top: 110px; }
.ukl-contact__form-head { display: flex; flex-direction: column; gap: 10px; }
.ukl-contact__form-head h2 { margin: 0; font-size: 30px; }
.ukl-contact__form-head p { margin: 0; font-size: 15px; color: var(--ukl-mute); }
body.ukl .ukl-contact__form .srfm-form-container, body.ukl .ukl-contact__form .wpforms-container { margin: 0; padding: 0; background: transparent; }
body.ukl .ukl-contact__form .srfm-form { --srfm-color-input-background: var(--ukl-paper); }
.ukl-contact__cta { position: relative; overflow: hidden; margin: 72px var(--ukl-gutter) 88px; padding: 48px 56px; border-radius: 28px; background: var(--ukl-copper-t); display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.ukl-contact__cta .ukl-rings { right: 340px; top: -120px; opacity: .35; }
.ukl-contact__cta .ukl-btn { position: relative; }
@media (max-width: 1000px) { .ukl-contact__grid { grid-template-columns: 1fr; } .ukl-contact__form { position: static; padding: 24px; } .ukl-contact__cta { padding: 32px 24px; } .ukl-contact__cta .ukl-rings { display: none; } }

/* =====================================================================
   My Account, logged in
   ===================================================================== */
body.ukl.woocommerce-account.logged-in .ukl-article.ast-article-single { max-width: 1296px; }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation { padding: 6px; border-radius: 18px; background: var(--ukl-paper); border: 1px solid var(--ukl-line); align-self: start; }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation ul li a { font-size: 15px; }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { background: var(--ukl-ink); color: var(--ukl-dk-t); }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover { background: var(--ukl-copper-t); color: var(--ukl-ink); }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child a { color: var(--ukl-copper); }
body.ukl.woocommerce-account .woocommerce-MyAccount-content { display: flex; flex-direction: column; gap: 18px; font-size: 15px; line-height: 1.6; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content > p { margin: 0; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content a:not(.button) { color: var(--ukl-copper); font-weight: 500; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content h2, body.ukl.woocommerce-account .woocommerce-MyAccount-content h3, body.ukl.woocommerce-account .woocommerce-MyAccount-content legend { font-family: var(--ukl-display); font-weight: 600; color: var(--ukl-ink); font-size: 22px; margin: 8px 0 0; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content .woocommerce-notices-wrapper:empty { display: none; }
body.ukl.woocommerce-account table.shop_table, body.ukl.woocommerce-account table.woocommerce-orders-table { width: 100%; border: 1px solid var(--ukl-line); border-radius: 18px; overflow: hidden; border-collapse: separate; border-spacing: 0; margin: 0; }
body.ukl.woocommerce-account table.shop_table th, body.ukl.woocommerce-account table.shop_table td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--ukl-line); text-align: left; background: transparent; }
body.ukl.woocommerce-account table.shop_table thead th { background: var(--ukl-paper); }
body.ukl.woocommerce-account table.shop_table tr:last-child td { border-bottom: 0; }
body.ukl.woocommerce-account table.shop_table .button { min-height: 40px !important; padding: 0 16px !important; font-size: 14px !important; }
body.ukl.woocommerce-account .woocommerce-Addresses, body.ukl.woocommerce-account .u-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
body.ukl.woocommerce-account .woocommerce-Address, body.ukl.woocommerce-account .u-column1, body.ukl.woocommerce-account .u-column2 { width: auto; float: none; padding: 22px; border-radius: 18px; background: var(--ukl-paper); border: 1px solid var(--ukl-line); }
body.ukl.woocommerce-account .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
body.ukl.woocommerce-account .woocommerce-Address-title h2, body.ukl.woocommerce-account .woocommerce-Address-title h3 { font-size: 18px; margin: 0; }
body.ukl.woocommerce-account .woocommerce-Address-title .edit { font-size: 13px; font-family: var(--ukl-mono); text-transform: uppercase; letter-spacing: .06em; }
body.ukl.woocommerce-account address { font-style: normal; line-height: 1.6; color: var(--ukl-body); margin-top: 10px; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm fieldset, body.ukl.woocommerce-account .woocommerce-address-fields fieldset { border: 1px solid var(--ukl-line); border-radius: 18px; padding: 18px 22px; margin: 10px 0; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm .form-row, body.ukl.woocommerce-account .woocommerce-address-fields .form-row { margin: 0 0 14px; }
body.ukl.woocommerce-account .form-row-first, body.ukl.woocommerce-account .form-row-last { width: 48% !important; float: left; }
body.ukl.woocommerce-account .form-row-last { float: right; }
body.ukl.woocommerce-account .form-row-wide, body.ukl.woocommerce-account .form-row.clear { clear: both; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm input.input-text, body.ukl.woocommerce-account .woocommerce-address-fields input.input-text, body.ukl.woocommerce-account .woocommerce-address-fields select, body.ukl.woocommerce-account .woocommerce-EditAccountForm select { width: 100%; box-sizing: border-box; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm .button, body.ukl.woocommerce-account .woocommerce-address-fields .button { margin-top: 6px; }
body.ukl.woocommerce-account .woocommerce-Message, body.ukl.woocommerce-account .woocommerce-info { display: flex; align-items: center; gap: 12px; padding: 14px 18px; margin: 0; }
body.ukl.woocommerce-account .woocommerce-Message .button, body.ukl.woocommerce-account .woocommerce-info .button { order: 2; margin-left: auto; float: none; }
body.ukl.woocommerce-account mark, body.ukl.woocommerce-account .woocommerce-MyAccount-content mark { background: var(--ukl-copper-t); color: var(--ukl-ink); padding: 0 4px; border-radius: 4px; }
body.ukl.woocommerce-account .woocommerce-orders-table__cell-order-status { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ukl-glint); }
body.ukl.woocommerce-account .woocommerce-order-details, body.ukl.woocommerce-account .woocommerce-customer-details { padding: 22px; border-radius: 18px; background: var(--ukl-paper); border: 1px solid var(--ukl-line); }
@media (max-width: 800px) { body.ukl.woocommerce-account .woocommerce-Addresses, body.ukl.woocommerce-account .u-columns { grid-template-columns: 1fr; } body.ukl.woocommerce-account .form-row-first, body.ukl.woocommerce-account .form-row-last { width: 100% !important; float: none; } }
body.ukl .srfm-form button, body.ukl .srfm-form button *, body.ukl .srfm-form .srfm-button { text-transform: none !important; letter-spacing: 0 !important; font-family: var(--ukl-sans) !important; }

/* ---------- My Account: signed-out (login) view ---------- */
body.ukl.woocommerce-account .woocommerce { display: block; }
body.ukl.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 240px 1fr; gap: 40px; }
body.ukl.woocommerce-account:not(.logged-in) .ukl-pagehead { align-items: center; text-align: center; padding-bottom: 28px; }
body.ukl.woocommerce-account:not(.logged-in) .ukl-pagehead .ukl-crumbs { justify-content: center; }
body.ukl.woocommerce-account:not(.logged-in) .ukl-article.ast-article-single { max-width: 560px !important; width: 100%; padding: 40px 44px !important; }
body.ukl.woocommerce-account:not(.logged-in) .woocommerce > h2 { font-size: 26px; margin: 0 0 6px; }
body.ukl.woocommerce-account:not(.logged-in) .woocommerce > h2 + form::before { content: "Use the email from your order. New here? An account is created for you at checkout."; display: block; font-size: 14px; color: var(--ukl-mute); margin: 0 0 22px; line-height: 1.5; }
body.ukl.woocommerce-account .woocommerce-form-login, body.ukl.woocommerce-account .woocommerce-form-register, body.ukl.woocommerce-account .woocommerce-ResetPassword { max-width: none; }
body.ukl.woocommerce-account .woocommerce-form-login .form-row, body.ukl.woocommerce-account .woocommerce-ResetPassword .form-row { margin: 0 0 16px; padding: 0; width: 100%; float: none; }
body.ukl.woocommerce-account .woocommerce-form-login label:not(.woocommerce-form__label-for-checkbox) { display: block; margin-bottom: 8px; }
body.ukl.woocommerce-account .woocommerce-form-login .input-text, body.ukl.woocommerce-account .password-input { width: 100%; box-sizing: border-box; }
body.ukl.woocommerce-account .password-input { display: block; position: relative; }
body.ukl.woocommerce-account .show-password-input { top: 50%; transform: translateY(-50%); right: 14px; }
body.ukl.woocommerce-account .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 10px; margin: 4px 0 18px; cursor: pointer; }
body.ukl.woocommerce-account .woocommerce-form-login__rememberme input { margin: 0; width: 16px; height: 16px; accent-color: var(--ukl-ink); }
body.ukl.woocommerce-account .woocommerce-form-login__submit { width: 100%; }
body.ukl.woocommerce-account .lost_password { margin: 16px 0 0; text-align: center; font-size: 14px; }
body.ukl.woocommerce-account .lost_password a { color: var(--ukl-copper); }
body.ukl.woocommerce-account .woocommerce-privacy-policy-text { font-size: 13px; color: var(--ukl-mute); }
body.ukl.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: 1fr; gap: 24px; }
body.ukl.woocommerce-account .u-columns.col2-set .u-column2 { border-top: 1px solid var(--ukl-line); padding-top: 24px; }
@media (max-width: 640px) { body.ukl.woocommerce-account:not(.logged-in) .ukl-article.ast-article-single { padding: 24px !important; } }
/* Astra's flex container shrinks #main to its content on some pages */
body.ukl #content > .ast-container { display: block !important; }
body.ukl #main.site-main { width: 100%; flex: 1 1 100%; }
body.ukl.woocommerce-account .entry-content > .woocommerce { max-width: none !important; width: 100%; }
body.ukl.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 240px minmax(0, 1fr) !important; }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1 !important; grid-row: 1; order: 0 !important; width: 240px !important; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content { grid-column: 2 !important; grid-row: 1; order: 1 !important; width: auto !important; min-width: 0; }
body.ukl.woocommerce-account .woocommerce > .woocommerce-notices-wrapper:not(:empty) { grid-column: 1 / -1; grid-row: auto; }
@media (max-width: 800px) { body.ukl.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 1fr !important; } body.ukl.woocommerce-account .woocommerce-MyAccount-navigation { width: 100% !important; grid-column: 1 !important; } body.ukl.woocommerce-account .woocommerce-MyAccount-content { grid-column: 1 !important; grid-row: 2; } body.ukl.woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: row; flex-wrap: wrap; } }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation ul li { border: 0 !important; padding: 0 !important; margin: 0 !important; }
body.ukl.woocommerce-account .woocommerce-MyAccount-navigation ul li a { border: 0 !important; }
body.ukl.woocommerce-account .woocommerce-Address-title, body.ukl.woocommerce-account .woocommerce-Address address, body.ukl.woocommerce-account .woocommerce-Address p { background: transparent !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; }
body.ukl.woocommerce-account .woocommerce-Address-title h2, body.ukl.woocommerce-account .woocommerce-Address-title h3 { text-align: left; }
body.ukl.woocommerce-account .woocommerce-Address { display: flex; flex-direction: column; gap: 10px; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content > p:first-child { font-size: 15px; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content .woocommerce-notices-wrapper:empty { display: none; }

/* ---------- My Account: empty states ---------- */
.ukl-empty-state { display: flex; flex-direction: column; gap: 32px; }
.ukl-empty-state__head { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; padding: 32px 36px; border-radius: 22px; background: var(--ukl-paper); border: 1px solid var(--ukl-line); }
.ukl-empty-state__head .ukl-rings { right: -70px; top: -80px; opacity: .35; }
.ukl-empty-state__icon { width: 48px; height: 48px; border-radius: 14px; background: var(--ukl-copper-t); display: inline-flex; align-items: center; justify-content: center; }
body.ukl .ukl-empty-state__head h2 { margin: 0; font-size: 26px; }
.ukl-empty-state__head p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ukl-body); max-width: 520px; }
.ukl-empty-state__head .ukl-hero__ctas { margin-top: 6px; }
.ukl-empty-state__products { display: flex; flex-direction: column; gap: 16px; }
.ukl-empty-state__products .ukl-mono { color: var(--ukl-copper); }
.ukl-empty-state__products .ukl-grid { gap: 20px 16px; }
.ukl-empty-state__products .ukl-card__title { font-size: 17px; }
.ukl-empty-state__products .ukl-card__media { aspect-ratio: 4 / 3; }
.ukl-empty-state__foot { margin: 0; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content .woocommerce-notices-wrapper { display: none; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content .woocommerce-notices-wrapper:has(.woocommerce-message, .woocommerce-error, .woocommerce-info) { display: block; }
@media (max-width: 1000px) { .ukl-empty-state__products .ukl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ukl-empty-state__products .ukl-grid { grid-template-columns: 1fr; } .ukl-empty-state__head { padding: 24px; } }
body.ukl.woocommerce-account .woocommerce-MyAccount-content > a.button { width: auto !important; align-self: flex-start; background: transparent !important; color: var(--ukl-copper) !important; border: 1.5px solid var(--ukl-copper) !important; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content > a.button:hover { background: var(--ukl-copper) !important; color: #fff !important; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content a.ukl-btn { color: var(--ukl-dk-t) !important; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content a.ukl-btn:hover { color: #fff !important; }
body.ukl.woocommerce-account .woocommerce-MyAccount-content a.ukl-card { color: var(--ukl-ink) !important; font-weight: 400; }

/* ---------- Account details: password box ---------- */
body.ukl.woocommerce-account .woocommerce-EditAccountForm fieldset { border: 1px solid var(--ukl-line); border-radius: 18px; padding: 22px 24px 8px; margin: 14px 0 22px; background: var(--ukl-paper); min-width: 0; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm legend { float: left; width: 100%; padding: 0; margin: 0 0 4px; font-family: var(--ukl-display); font-weight: 600; font-size: 20px; color: var(--ukl-ink); border: 0; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm legend::after { content: "Leave these blank to keep your current password."; display: block; font-family: var(--ukl-sans); font-weight: 400; font-size: 14px; color: var(--ukl-mute); margin: 4px 0 16px; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm fieldset > .form-row { clear: both; margin: 0 0 14px; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm fieldset .input-text { background: var(--ukl-card) !important; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm .password-input { display: block; position: relative; width: 100%; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm .password-input .input-text { width: 100%; padding-right: 44px !important; }
body.ukl.woocommerce-account .show-password-input { position: absolute; top: 50%; right: 14px; transform: translateY(-50%); width: 20px; height: 20px; margin: 0; cursor: pointer; color: var(--ukl-mute); }
body.ukl.woocommerce-account .show-password-input::after { font-size: 18px; line-height: 1; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm > .form-row > span > em, body.ukl.woocommerce-account .woocommerce-EditAccountForm .description { font-size: 13px; color: var(--ukl-mute); }
body.ukl.woocommerce-account .woocommerce-EditAccountForm .form-row label { margin-bottom: 8px; display: block; }
body.ukl.woocommerce-account .woocommerce-EditAccountForm .woocommerce-Button { margin-top: 4px; }

/* =====================================================================
   Cart page — items on the left, sticky order summary on the right
   ===================================================================== */
body.ukl.woocommerce-cart .ukl-article.ast-article-single { background: transparent !important; border: 0 !important; padding: 0 !important; max-width: 1180px; border-radius: 0; }
body.ukl.woocommerce-cart .ukl-page { padding-top: 40px; }
body.ukl.woocommerce-cart .ukl-page__head h1, body.ukl.woocommerce-cart .entry-title { margin-bottom: 8px; }
body.ukl.woocommerce-cart .entry-content > .woocommerce, body.ukl.woocommerce-cart .woocommerce { max-width: none !important; width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 32px 40px; align-items: start; }
body.ukl.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.ukl.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
body.ukl.woocommerce-cart .woocommerce-cart-form { grid-column: 1; min-width: 0; }
body.ukl.woocommerce-cart .cart-collaterals { grid-column: 2; position: sticky; top: 24px; display: flex; flex-direction: column; gap: 16px; }
body.ukl.woocommerce-cart .cart-collaterals::before, body.ukl.woocommerce-cart .cart-collaterals::after { display: none; }

/* items table → clean rows */
body.ukl .woocommerce-cart-form table.shop_table { border: 1px solid var(--ukl-line) !important; border-radius: 22px; background: var(--ukl-card); border-collapse: separate; border-spacing: 0; margin: 0; overflow: hidden; }
body.ukl .woocommerce-cart-form table.shop_table thead th { padding: 14px 16px; border-bottom: 1px solid var(--ukl-line) !important; color: var(--ukl-mute); background: var(--ukl-paper); }
body.ukl .woocommerce-cart-form table.shop_table th.product-remove, body.ukl .woocommerce-cart-form table.shop_table th.product-thumbnail { padding: 0; }
body.ukl .woocommerce-cart-form table.shop_table td { padding: 22px 16px; border: 0 !important; border-bottom: 1px solid var(--ukl-line) !important; vertical-align: middle; background: transparent; }
body.ukl .woocommerce-cart-form table.shop_table tr.cart_item:last-of-type td { border-bottom: 1px solid var(--ukl-line) !important; }
body.ukl .woocommerce-cart-form td.product-remove { width: 48px; padding-right: 0 !important; }
body.ukl .woocommerce-cart-form td.product-remove a.remove { width: 30px; height: 30px; line-height: 28px; border: 1px solid var(--ukl-line); border-radius: 50%; color: var(--ukl-mute) !important; background: var(--ukl-card); font-size: 20px; font-weight: 400; }
body.ukl .woocommerce-cart-form td.product-remove a.remove:hover { background: var(--ukl-ink); border-color: var(--ukl-ink); color: var(--ukl-paper) !important; }
body.ukl .woocommerce-cart-form td.product-thumbnail { width: 96px; padding-left: 0 !important; }
body.ukl .woocommerce-cart-form td.product-thumbnail img { width: 80px; height: 80px; object-fit: cover; border-radius: 14px; border: 1px solid var(--ukl-line); background: var(--ukl-paper); }
body.ukl .woocommerce-cart-form td.product-name { font-size: 16px; line-height: 1.35; }
body.ukl .woocommerce-cart-form td.product-name a { color: var(--ukl-ink) !important; font-weight: 600; text-decoration: none; }
body.ukl .woocommerce-cart-form td.product-name a:hover { color: var(--ukl-copper) !important; }
body.ukl .woocommerce-cart-form td.product-name .variation, body.ukl .woocommerce-cart-form td.product-name p.backorder_notification, body.ukl .woocommerce-cart-form td.product-name .wc-item-meta { margin: 6px 0 0; font-size: 13px; color: var(--ukl-mute); }
body.ukl .woocommerce-cart-form td.product-name .variation dt, body.ukl .woocommerce-cart-form td.product-name .variation dd { display: inline; margin: 0; font-weight: 400; }
body.ukl .woocommerce-cart-form td.product-name .variation dd p { display: inline; }
body.ukl .woocommerce-cart-form td.product-price { color: var(--ukl-mute); white-space: nowrap; }
body.ukl .woocommerce-cart-form td.product-subtotal { font-weight: 600; color: var(--ukl-ink); white-space: nowrap; text-align: right; }
body.ukl .woocommerce-cart-form th.product-subtotal { text-align: right; }
body.ukl .woocommerce-cart-form td.product-quantity .quantity { display: inline-flex; align-items: center; border: 1px solid var(--ukl-line); border-radius: 22px; height: 44px; background: var(--ukl-card); overflow: hidden; }
body.ukl .woocommerce-cart-form td.product-quantity .qty { width: 56px; height: 42px; border: 0; background: transparent; text-align: center; font-weight: 600; color: var(--ukl-ink); padding: 0; -moz-appearance: textfield; }
body.ukl .woocommerce-cart-form td.product-quantity .qty::-webkit-outer-spin-button, body.ukl .woocommerce-cart-form td.product-quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.ukl .woocommerce-cart-form td.product-quantity .qty:focus { outline: none; }

/* coupon + update row */
body.ukl .woocommerce-cart-form td.actions { padding: 16px !important; background: var(--ukl-paper); border-bottom: 0 !important; }
body.ukl .woocommerce-cart-form td.actions .coupon { display: inline-flex; align-items: center; gap: 8px; float: none; }
body.ukl .woocommerce-cart-form td.actions .coupon label { display: none; }
body.ukl .woocommerce-cart-form td.actions .coupon .input-text { height: 44px !important; width: 190px !important; border: 1px solid var(--ukl-line) !important; border-radius: 22px !important; padding: 0 16px !important; background: var(--ukl-card) !important; font-family: var(--ukl-sans); font-size: 14px; }
body.ukl .woocommerce-cart-form td.actions .coupon .button, body.ukl .woocommerce-cart-form td.actions > .button { min-height: 44px !important; height: 44px; padding: 0 20px !important; font-size: 14px !important; }
body.ukl .woocommerce-cart-form td.actions .coupon .button { background: transparent !important; color: var(--ukl-ink) !important; border: 1px solid var(--ukl-line) !important; }
body.ukl .woocommerce-cart-form td.actions .coupon .button:hover { border-color: var(--ukl-ink) !important; }
body.ukl .woocommerce-cart-form td.actions > .button { float: right; background: transparent !important; color: var(--ukl-mute) !important; border: 1px solid var(--ukl-line) !important; }
body.ukl .woocommerce-cart-form td.actions > .button:disabled { opacity: .45; }
body.ukl .woocommerce-cart-form td.actions > .button:not(:disabled) { color: var(--ukl-ink) !important; border-color: var(--ukl-ink) !important; }

/* order summary */
body.ukl.woocommerce-cart .cart_totals { width: 100% !important; float: none !important; background: var(--ukl-card) !important; border: 1px solid var(--ukl-line) !important; border-radius: 22px !important; padding: 24px !important; }
body.ukl.woocommerce-cart .cart_totals h2 { font-size: 22px; margin: 0 0 14px; padding: 0; background: none; border: 0; }
body.ukl.woocommerce-cart .cart_totals table.shop_table { border: 0 !important; margin: 0; background: transparent; border-collapse: collapse; }
body.ukl.woocommerce-cart .cart_totals table.shop_table th, body.ukl.woocommerce-cart .cart_totals table.shop_table td { padding: 12px 0; border: 0 !important; border-bottom: 1px solid var(--ukl-line) !important; background: transparent !important; vertical-align: top; }
body.ukl.woocommerce-cart .cart_totals table.shop_table th { font-family: var(--ukl-sans); font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--ukl-body); font-weight: 400; width: 45%; }
body.ukl.woocommerce-cart .cart_totals table.shop_table td { text-align: right; color: var(--ukl-ink); font-weight: 500; }
body.ukl.woocommerce-cart .cart_totals tr.order-total th, body.ukl.woocommerce-cart .cart_totals tr.order-total td { border-bottom: 0 !important; padding-top: 16px; font-size: 18px; font-weight: 600; }
body.ukl.woocommerce-cart .cart_totals tr.order-total td .amount { font-family: var(--ukl-display); font-size: 26px; letter-spacing: -0.01em; }
body.ukl.woocommerce-cart .cart_totals tr.order-total td small { display: block; font-size: 12px; color: var(--ukl-mute); font-weight: 400; }
body.ukl.woocommerce-cart .cart_totals .woocommerce-shipping-totals td { font-weight: 500; }
body.ukl.woocommerce-cart .cart_totals .woocommerce-shipping-totals ul#shipping_method { margin: 0; padding: 0; list-style: none; }
body.ukl.woocommerce-cart .cart_totals .woocommerce-shipping-totals ul#shipping_method li { margin: 0 0 6px; text-align: right; }
body.ukl.woocommerce-cart .cart_totals .woocommerce-shipping-totals ul#shipping_method label { font-weight: 500; color: var(--ukl-ink); }
body.ukl.woocommerce-cart .cart_totals .woocommerce-shipping-destination { font-size: 13px; color: var(--ukl-mute); margin: 4px 0 0; }
body.ukl.woocommerce-cart .cart_totals .woocommerce-shipping-calculator { font-size: 13px; }
body.ukl.woocommerce-cart .cart_totals .shipping-calculator-button { color: var(--ukl-copper); }
body.ukl.woocommerce-cart .cart_totals .wc-proceed-to-checkout { padding: 18px 0 0; margin: 0; }
body.ukl.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button { display: flex !important; width: 100%; min-height: 56px; font-size: 17px !important; margin: 0; }
body.ukl.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button::after { content: "→"; margin-left: 8px; }
body.ukl.woocommerce-cart .cart_totals .wc-proceed-to-checkout > :not(.checkout-button) { margin-top: 12px; }
body.ukl .ukl-cart-trust { list-style: none; margin: 0; padding: 18px 24px; background: var(--ukl-copper-t); border-radius: 18px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; color: var(--ukl-ink); }
body.ukl .ukl-cart-trust li { display: flex; align-items: center; gap: 10px; }
body.ukl .ukl-cart-trust svg { flex-shrink: 0; }
body.ukl .ukl-cart-continue { align-self: flex-start; font-weight: 500; }
body.ukl .ukl-cart-continue .is-flip, body.ukl .ukl-comments .is-flip { transform: rotate(180deg); }
body.ukl.woocommerce-cart .cross-sells { grid-column: 1 / -1; order: 10; margin-top: 24px; }
body.ukl.woocommerce-cart .cross-sells h2 { font-size: 24px; margin-bottom: 18px; }
body.ukl.woocommerce-cart .cross-sells ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; }
body.ukl.woocommerce-cart .cross-sells ul.products li.product { width: auto !important; margin: 0 !important; }

/* empty cart */
body.ukl.woocommerce-cart .cart-empty, body.ukl.woocommerce-cart .return-to-shop { display: none; }
body.ukl.woocommerce-cart .woocommerce > .ukl-empty-state { grid-column: 1 / -1; }

@media (max-width: 960px) {
  body.ukl.woocommerce-cart .entry-content > .woocommerce, body.ukl.woocommerce-cart .woocommerce { grid-template-columns: minmax(0, 1fr) !important; }
  body.ukl.woocommerce-cart .woocommerce-cart-form, body.ukl.woocommerce-cart .cart-collaterals { grid-column: 1; }
  body.ukl.woocommerce-cart .cart-collaterals { position: static; }
}
@media (max-width: 768px) {
  body.ukl .woocommerce-cart-form table.shop_table thead { display: none; }
  body.ukl .woocommerce-cart-form table.shop_table tr.cart_item { display: grid; grid-template-columns: 80px 1fr auto; grid-template-areas: "thumb name remove" "thumb qty subtotal"; gap: 8px 14px; padding: 16px; border-bottom: 1px solid var(--ukl-line); align-items: center; }
  body.ukl .woocommerce-cart-form table.shop_table tr.cart_item td { display: block; padding: 0 !important; border: 0 !important; }
  body.ukl .woocommerce-cart-form table.shop_table tr.cart_item td::before { display: none; }
  body.ukl .woocommerce-cart-form td.product-thumbnail { grid-area: thumb; width: auto; }
  body.ukl .woocommerce-cart-form td.product-name { grid-area: name; }
  body.ukl .woocommerce-cart-form td.product-remove { grid-area: remove; width: auto; text-align: right; }
  body.ukl .woocommerce-cart-form td.product-price { display: none !important; }
  body.ukl .woocommerce-cart-form td.product-quantity { grid-area: qty; }
  body.ukl .woocommerce-cart-form td.product-subtotal { grid-area: subtotal; text-align: right; }
  body.ukl .woocommerce-cart-form td.actions { display: flex; flex-wrap: wrap; gap: 10px; }
  body.ukl .woocommerce-cart-form td.actions .coupon .input-text { width: 150px !important; }
  body.ukl .woocommerce-cart-form td.actions > .button { float: none; margin-left: auto; }
  body.ukl.woocommerce-cart .cross-sells ul.products { grid-template-columns: 1fr; }
}
body.ukl.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button.button { background: var(--ukl-copper) !important; color: #FFF8F0 !important; font-weight: 600 !important; }
body.ukl.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button.button:hover { background: var(--ukl-ink) !important; }
body.ukl.woocommerce-cart .cart_totals .wc-proceed-to-checkout > .checkout-button + *::before { content: "or pay directly with"; display: block; text-align: center; font-family: var(--ukl-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-mute); margin: 4px 0 10px; }
body.ukl.woocommerce-cart .cart_totals .wc-proceed-to-checkout > .checkout-button + :empty::before { display: none; }

/* =====================================================================
   Comments (posts & pages)
   ===================================================================== */
body.ukl .ukl-comments { max-width: 760px; margin: 56px auto 88px; padding: 0 var(--ukl-gutter); display: flex; flex-direction: column; gap: 28px; box-sizing: border-box; }
body.ukl .ukl-comments__head { display: flex; flex-direction: column; gap: 8px; }
body.ukl .ukl-comments__title { margin: 0; font-size: 28px; }
body.ukl .ukl-comments__list, body.ukl .ukl-comments__list ol.children { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
body.ukl .ukl-comments__list ol.children { margin: 14px 0 0 56px; }
body.ukl .ukl-comment { margin: 0; }
body.ukl .ukl-comment__body { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding: 22px; background: var(--ukl-card); border: 1px solid var(--ukl-line); border-radius: 22px; }
body.ukl .ukl-comment.is-author > .ukl-comment__body { background: var(--ukl-copper-t); border-color: transparent; }
body.ukl .ukl-comment__avatar img { width: 44px; height: 44px; border-radius: 50%; display: block; }
body.ukl .ukl-comment__main { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
body.ukl .ukl-comment__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
body.ukl .ukl-comment__author { font-weight: 600; color: var(--ukl-ink); }
body.ukl .ukl-comment__badge { color: var(--ukl-copper); border: 1px solid var(--ukl-copper-l); border-radius: 999px; padding: 2px 8px; font-size: 10px; }
body.ukl .ukl-comment__time { color: var(--ukl-mute); text-decoration: none; }
body.ukl .ukl-comment__time:hover { color: var(--ukl-copper); }
body.ukl .ukl-comment__pending { margin: 0; font-size: 13px; color: var(--ukl-copper); }
body.ukl .ukl-comment__text { font-size: 16px; line-height: 1.6; color: var(--ukl-body); }
body.ukl .ukl-comment__text p { margin: 0 0 10px; }
body.ukl .ukl-comment__text p:last-child { margin-bottom: 0; }
body.ukl .ukl-comment__actions { display: flex; gap: 14px; font-size: 14px; }
body.ukl .ukl-comment__actions a { color: var(--ukl-copper); font-weight: 500; }
body.ukl .ukl-comments .comment-navigation .nav-links { display: flex; justify-content: space-between; }
body.ukl .ukl-comments .comment-navigation a { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--ukl-ink); }
body.ukl .ukl-comments__closed { margin: 0; color: var(--ukl-mute); font-size: 14px; }

/* form */
body.ukl .ukl-comments__form { padding: 32px; background: var(--ukl-card); border: 1px solid var(--ukl-line); border-radius: 28px; }
body.ukl .ukl-comments__form-head { display: flex; flex-direction: column; gap: 8px; margin: 0 0 6px; }
body.ukl .ukl-comments__form .comment-reply-title { margin: 0; font-family: var(--ukl-display); font-weight: 600; font-size: 28px; letter-spacing: -0.02em; line-height: 1.1; color: var(--ukl-ink); display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
body.ukl .ukl-comments__form .ukl-comments__cancel a { font-family: var(--ukl-sans); font-size: 14px; font-weight: 500; color: var(--ukl-copper); }
body.ukl .ukl-comments__form .comment-notes, body.ukl .ukl-comments__form .logged-in-as { margin: 0 0 22px; font-size: 14px; color: var(--ukl-mute); line-height: 1.5; }
body.ukl .ukl-comments__form .logged-in-as a { color: var(--ukl-copper); }
body.ukl .ukl-comments__form .comment-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; margin: 0; }
body.ukl .ukl-comments__form .comment-form > * { margin: 0; width: auto; max-width: none; float: none; }
body.ukl .ukl-comments__form .comment-notes, body.ukl .ukl-comments__form .logged-in-as, body.ukl .ukl-comments__form .comment-form-comment, body.ukl .ukl-comments__form .comment-form-cookies-consent, body.ukl .ukl-comments__form .form-submit { grid-column: 1 / -1; }
body.ukl .ukl-comments__form .comment-form label { display: block; margin: 0 0 8px; font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-mute); font-weight: 500; }
body.ukl .ukl-comments__form .comment-form label .required { color: var(--ukl-copper); }
body.ukl .ukl-comments__form .comment-form input[type="text"], body.ukl .ukl-comments__form .comment-form input[type="email"], body.ukl .ukl-comments__form .comment-form textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--ukl-line) !important; background: var(--ukl-paper) !important; border-radius: 14px !important; padding: 12px 16px !important; font-family: var(--ukl-sans) !important; font-size: 16px; color: var(--ukl-ink) !important; box-shadow: none !important; }
body.ukl .ukl-comments__form .comment-form textarea { min-height: 150px; resize: vertical; line-height: 1.55; }
body.ukl .ukl-comments__form .comment-form input:focus, body.ukl .ukl-comments__form .comment-form textarea:focus { outline: none; border-color: var(--ukl-copper-l) !important; box-shadow: 0 0 0 3px var(--ukl-copper-t) !important; }
body.ukl .ukl-comments__form .ukl-field-note { display: block; margin-top: 6px; font-size: 12px; color: var(--ukl-mute); }
body.ukl .ukl-comments__form .comment-form-cookies-consent { display: flex; align-items: center; gap: 10px; }
body.ukl .ukl-comments__form .comment-form-cookies-consent input { margin: 0; width: 16px; height: 16px; accent-color: var(--ukl-ink); }
body.ukl .ukl-comments__form .comment-form-cookies-consent label { margin: 0; font-family: var(--ukl-sans); font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--ukl-body); }
body.ukl .ukl-comments__form .form-submit { display: flex; align-items: center; gap: 16px; }
body.ukl .ukl-comments__form .form-submit .ukl-btn, body.ukl .ukl-comments__form .form-submit #submit { display: inline-flex !important; align-items: center; gap: 8px; min-height: 52px; padding: 0 28px !important; border-radius: 26px !important; border: 0 !important; background: var(--ukl-ink) !important; color: var(--ukl-dk-t) !important; font-family: var(--ukl-sans) !important; font-weight: 500 !important; font-size: 16px !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1 !important; cursor: pointer; }
body.ukl .ukl-comments__form .form-submit .ukl-btn:hover, body.ukl .ukl-comments__form .form-submit #submit:hover { background: var(--ukl-copper) !important; color: #fff !important; }
body.ukl .ukl-comments__form .form-submit .ukl-btn:hover svg { transform: translateX(3px); }
@media (max-width: 640px) {
  body.ukl .ukl-comments__form { padding: 22px; border-radius: 22px; }
  body.ukl .ukl-comments__form .comment-form { grid-template-columns: 1fr; }
  body.ukl .ukl-comments__list ol.children { margin-left: 20px; }
  body.ukl .ukl-comment__body { padding: 16px; gap: 12px; grid-template-columns: 36px minmax(0, 1fr); }
  body.ukl .ukl-comment__avatar img { width: 36px; height: 36px; }
}
/* multi-attribute products (e.g. Color + Screen size): one card group per attribute, no per-card price */
body.ukl .ukl-variants--multi { display: grid; grid-template-columns: auto; gap: 8px; margin-bottom: 4px; }
body.ukl .ukl-variants--multi .ukl-variants__label { grid-column: 1 / -1; }
body.ukl .ukl-variants--multi .ukl-variant { padding: 12px 16px; }
body.ukl .ukl-variants--multi .ukl-variant.is-selected { padding: 11px 15px; }
body.ukl .ukl-variants--multi .ukl-variant__name { font-size: 14px; }
@media (min-width: 640px) { body.ukl .ukl-variants--multi { grid-template-columns: 1fr 1fr; } }
body.ukl .ukl-variant.is-unavailable { opacity: .45; }
/* remove-from-cart: draw the × ourselves so it sits dead centre */
body.ukl .woocommerce-cart-form td.product-remove a.remove { position: relative; display: inline-flex !important; align-items: center; justify-content: center; width: 32px; height: 32px; line-height: 1; font-size: 0 !important; text-indent: 0; color: transparent !important; vertical-align: middle; }
body.ukl .woocommerce-cart-form td.product-remove a.remove::before, body.ukl .woocommerce-cart-form td.product-remove a.remove::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: var(--ukl-mute); border-radius: 2px; transform: translate(-50%, -50%) rotate(45deg); transition: background .15s ease; }
body.ukl .woocommerce-cart-form td.product-remove a.remove::after { transform: translate(-50%, -50%) rotate(-45deg); }
body.ukl .woocommerce-cart-form td.product-remove a.remove:hover::before, body.ukl .woocommerce-cart-form td.product-remove a.remove:hover::after { background: var(--ukl-paper); }

/* =========================================================================
   Audit fixes (Sep 2026): buy box first on phones, benefits, before-you-buy,
   sticky add-to-cart, category guide
   ========================================================================= */
.ukl-product__main { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto 1fr; grid-template-areas: "gallery buy" "desc buy"; column-gap: 56px; row-gap: 56px; }
.ukl-product__gallery { grid-area: gallery; min-width: 0; }
.ukl-product__buy { grid-area: buy; display: flex; flex-direction: column; gap: 40px; min-width: 0; align-self: start; }
.ukl-product__buy .ukl-specs { position: static; }
.ukl-product__desc { grid-area: desc; min-width: 0; }
.ukl-product__extra { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding-top: 8px; }
.ukl-product__extra > div { aspect-ratio: 4 / 3; border-radius: 20px; overflow: hidden; border: 1px solid var(--ukl-line); }
.ukl-product__extra img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 1000px) {
  .ukl-product__main { grid-template-columns: 1fr; grid-template-rows: none; grid-template-areas: none; row-gap: 28px; }
  .ukl-product__gallery, .ukl-product__buy, .ukl-product__desc { grid-area: auto; }
  .ukl-product__buy { display: contents; }
  .ukl-product__gallery { order: 1; }
  .ukl-product__buy > .summary { order: 2; }
  .ukl-product__desc { order: 3; }
  .ukl-product__buy > .ukl-specs { order: 4; }
}

/* Key benefits + top question under Add to cart */
.ukl-benefits { gap: 10px; }
.ukl-benefits li { font-size: 15px; line-height: 1.45; color: var(--ukl-ink); }
.ukl-firstq { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-radius: 16px; border: 1px solid var(--ukl-line); border-left: 3px solid var(--ukl-copper); background: var(--ukl-card); }
.ukl-firstq strong { font-family: var(--ukl-display); font-weight: 600; font-size: 16px; color: var(--ukl-ink); }
.ukl-firstq p { margin: 0; font-size: 14px; line-height: 1.55; }
.ukl-firstq .ukl-link { min-height: 32px; font-size: 14px; }
.ukl-policy-links { margin: -6px 0 0; font-size: 13px; color: var(--ukl-mute); }
.ukl-policy-links a { color: var(--ukl-copper); text-decoration: underline; text-underline-offset: 3px; }

/* Before you buy */
.ukl-byb { margin-top: 72px; padding: 48px 56px; border-radius: 28px; background: var(--ukl-card); border: 1px solid var(--ukl-line); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.ukl-byb__facts { display: flex; flex-direction: column; gap: 16px; }
.ukl-byb__facts h2 { margin: 0; font-size: 32px; }
.ukl-byb dl { margin: 8px 0 0; display: flex; flex-direction: column; }
.ukl-byb dl > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-top: 1px solid var(--ukl-line); }
.ukl-byb dt { font-family: var(--ukl-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-copper); padding-top: 3px; }
.ukl-byb dd { margin: 0; font-size: 15px; line-height: 1.5; color: var(--ukl-ink); }
.ukl-byb__faq h3 { margin: 0 0 8px; font-size: 20px; }
.ukl-byb__faq details { border-top: 1px solid var(--ukl-line); padding: 16px 0; }
.ukl-byb__faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; cursor: pointer; font-family: var(--ukl-display); font-weight: 600; font-size: 17px; color: var(--ukl-ink); }
.ukl-byb__faq summary::-webkit-details-marker { display: none; }
.ukl-byb__faq summary svg { flex-shrink: 0; transition: transform .2s ease; }
.ukl-byb__faq details[open] summary svg { transform: rotate(45deg); }
.ukl-byb__faq details p { margin: 10px 0 0; font-size: 15px; line-height: 1.55; }
@media (max-width: 1000px) { .ukl-byb { grid-template-columns: 1fr; padding: 28px 22px; gap: 32px; margin-top: 48px; border-radius: 22px; } .ukl-byb dl > div { grid-template-columns: 1fr; gap: 4px; } }

/* Sticky add-to-cart bar (phones) */
.ukl-stickybuy { display: none; }
@media (max-width: 1000px) {
  .ukl-stickybuy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--ukl-card); border-top: 1px solid var(--ukl-line); box-shadow: 0 -12px 30px -18px rgba(20,16,12,.35); transform: translateY(110%); transition: transform .25s ease; }
  .ukl-stickybuy.is-visible { transform: translateY(0); }
  .ukl-stickybuy__info { display: flex; flex-direction: column; min-width: 0; }
  .ukl-stickybuy__info strong { font-family: var(--ukl-display); font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ukl-ink); }
  .ukl-stickybuy__price { font-size: 14px; color: var(--ukl-ink); }
  .ukl-stickybuy__price del { color: var(--ukl-mute); margin-right: 6px; }
  .ukl-stickybuy__price ins { text-decoration: none; }
  .ukl-stickybuy .ukl-btn { flex-shrink: 0; min-height: 46px; padding: 0 20px; }
  body.ukl-has-stickybuy .ukl-footer { padding-bottom: 96px; }
}

/* Category buying guide */
.ukl-guide { margin: 72px var(--ukl-gutter) 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 56px; }
.ukl-guide__head { display: flex; flex-direction: column; gap: 14px; }
.ukl-guide__head h2 { margin: 0; font-size: 32px; }
.ukl-guide .ukl-prose p { margin: 0 0 14px; font-size: 16px; line-height: 1.65; }
@media (max-width: 900px) { .ukl-guide { grid-template-columns: 1fr; gap: 20px; margin-top: 48px; } }
@media (min-width: 1001px) { .ukl-compare:has(.ukl-size:nth-child(3):last-child) { grid-template-columns: minmax(0, 1.1fr) repeat(2, minmax(0, 1fr)); } }

/* Accessibility: visible keyboard focus */
body.ukl a:focus-visible, body.ukl button:focus-visible, body.ukl summary:focus-visible, body.ukl input:focus-visible, body.ukl select:focus-visible, body.ukl textarea:focus-visible { outline: 2px solid var(--ukl-copper); outline-offset: 3px; }

/* Screen readers: hide the star-font letters ("sssss") WooCommerce draws in ratings — the aria-label says "Rated x out of 5" */
.star-rating::before { content: "\73\73\73\73\73" / ""; }
.star-rating span::before { content: "\53\53\53\53\53" / ""; }

/* Checkout & forms: stronger labels and field borders (WCAG contrast), compact coupon row */
body.ukl.woocommerce-checkout form .form-row label, body.ukl.woocommerce-cart form .form-row label, body.ukl .woocommerce-account form .form-row label { color: var(--ukl-ink); font-weight: 500; }
body.ukl.woocommerce-checkout .input-text, body.ukl.woocommerce-checkout select, body.ukl.woocommerce-checkout .select2-selection { border-color: #A89C8A !important; }
body.ukl.woocommerce-checkout .input-text:focus, body.ukl.woocommerce-checkout select:focus { border-color: var(--ukl-copper) !important; }
body.ukl.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { padding: 10px 16px !important; font-size: 14px; margin-bottom: 16px; }
body.ukl.woocommerce-checkout form.checkout_coupon { max-width: 480px; padding: 16px !important; margin-bottom: 20px !important; }
body.ukl.woocommerce-checkout form.checkout_coupon p:first-child { font-size: 14px; margin-bottom: 8px; }

/* Product gallery: WooCommerce hides it (opacity 0) until its slider script runs — show the first photo straight away */
body.ukl .woocommerce-product-gallery { opacity: 1 !important; }
body.ukl .woocommerce-product-gallery__image:first-child img { width: 100%; height: auto; display: block; }

/* Ratings: hide WooCommerce's star-font letters ("sssss SSSSS") from screen readers; the aria-label carries the rating */
body.ukl .star-rating::before, .woocommerce .star-rating::before, .woocommerce-page .star-rating::before { content: "\73\73\73\73\73" / "" !important; }
body.ukl .star-rating span::before, .woocommerce .star-rating span::before, .woocommerce-page .star-rating span::before { content: "\53\53\53\53\53" / "" !important; }

/* =========================================================================
   Checkout (classic): aligned with the page title, two cards on desktop
   (details left, sticky order summary right), one clean column on phones
   ========================================================================= */
body.ukl.woocommerce-checkout .ukl-article.ast-article-single { max-width: 1440px !important; width: 100%; margin: 0 auto 88px !important; padding: 0 var(--ukl-gutter) !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body.ukl.woocommerce-checkout .entry-content > .woocommerce { max-width: none !important; }

/* coupon notice: icon no longer sits on the text */
body.ukl.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { position: relative; padding: 14px 18px 14px 46px !important; border-radius: 14px; display: block; }
body.ukl.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { left: 18px !important; top: 50% !important; transform: translateY(-50%); margin: 0 !important; }
body.ukl.woocommerce-checkout form.checkout_coupon { max-width: none; border-radius: 14px; }

/* express pay (Google/Apple Pay) row spans the width */
body.ukl.woocommerce-checkout form.checkout > .wcpay-express-checkout-wrapper,
body.ukl.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }

body.ukl.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 420px); grid-template-rows: auto auto 1fr; column-gap: 40px; align-items: start; }
body.ukl.woocommerce-checkout form.checkout::before, body.ukl.woocommerce-checkout form.checkout::after { display: none !important; }
body.ukl.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 2 / span 2; float: none !important; width: auto !important; margin: 0 !important; padding: 32px; background: var(--ukl-card); border: 1px solid var(--ukl-line); border-radius: 24px; box-sizing: border-box; }
body.ukl.woocommerce-checkout #customer_details .col-1, body.ukl.woocommerce-checkout #customer_details .col-2 { float: none !important; width: 100% !important; max-width: none !important; padding: 0 !important; }
body.ukl.woocommerce-checkout #customer_details .col-2 { margin-top: 24px; }
body.ukl.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 2; float: none !important; width: auto !important; margin: 0 !important; padding: 26px 26px 6px !important; background: var(--ukl-card) !important; border: 1px solid var(--ukl-line) !important; border-bottom: 0 !important; border-radius: 24px 24px 0 0 !important; font-size: 20px; }
body.ukl.woocommerce-checkout #order_review { grid-column: 2; grid-row: 3; float: none !important; width: auto !important; margin: 0 !important; padding: 8px 26px 26px !important; background: var(--ukl-card) !important; border: 1px solid var(--ukl-line) !important; border-top: 0 !important; border-radius: 0 0 24px 24px !important; box-sizing: border-box; }

/* order table: full width, plain rows */
body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table { width: 100% !important; margin: 0 0 20px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; border-collapse: collapse; table-layout: auto; }
body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table th, body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table td { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--ukl-line) !important; padding: 12px 0 !important; vertical-align: top; }
body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child, body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child { text-align: right; padding-left: 16px !important; white-space: nowrap; }
body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name { font-size: 15px; line-height: 1.4; color: var(--ukl-ink); }
body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity { color: var(--ukl-mute); font-weight: 400; }
body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th, body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td { border-bottom: 0 !important; font-size: 18px; color: var(--ukl-ink); padding-top: 16px !important; }
body.ukl.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method { margin: 0; padding: 0; list-style: none; }

/* payment */
body.ukl.woocommerce-checkout #payment { background: var(--ukl-paper) !important; border-radius: 16px !important; padding: 6px 16px 16px !important; }
body.ukl.woocommerce-checkout #payment ul.payment_methods { padding: 8px 0 !important; border-bottom: 1px solid var(--ukl-line) !important; }
body.ukl.woocommerce-checkout #payment div.payment_box { background: var(--ukl-card) !important; border-radius: 12px; }
body.ukl.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
body.ukl.woocommerce-checkout #payment .place-order { padding: 14px 0 0 !important; margin: 0 !important; }
body.ukl.woocommerce-checkout #place_order { width: 100% !important; float: none !important; min-height: 56px; font-size: 17px !important; border-radius: 999px !important; }
body.ukl.woocommerce-checkout .woocommerce-privacy-policy-text p { font-size: 13px; line-height: 1.5; color: var(--ukl-mute); }

@media (min-width: 1001px) {
  body.ukl.woocommerce-checkout #order_review { position: sticky; top: 110px; }
}
@media (max-width: 1000px) {
  body.ukl.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 0; }
  body.ukl.woocommerce-checkout #customer_details { grid-column: 1; grid-row: auto; padding: 22px 18px; border-radius: 20px; margin-bottom: 24px !important; }
  body.ukl.woocommerce-checkout #order_review_heading, body.ukl.woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
  body.ukl.woocommerce-checkout #order_review_heading { padding: 22px 18px 4px !important; border-radius: 20px 20px 0 0 !important; }
  body.ukl.woocommerce-checkout #order_review { padding: 6px 18px 20px !important; border-radius: 0 0 20px 20px !important; }
  body.ukl.woocommerce-checkout .ukl-article.ast-article-single { margin-bottom: 56px !important; }
}
@media (max-width: 480px) {
  body.ukl.woocommerce-checkout #customer_details .form-row-first, body.ukl.woocommerce-checkout #customer_details .form-row-last { width: 100% !important; float: none !important; }
}

/* Checkout fields: one style for inputs, selects and the state/country dropdown; 3:1 border contrast */
body.ukl.woocommerce-checkout form .input-text, body.ukl.woocommerce-checkout form select, body.ukl.woocommerce-checkout form textarea,
body.ukl.woocommerce-checkout .select2-container .select2-selection--single { background: var(--ukl-paper) !important; border: 1px solid #9C907E !important; border-radius: 14px !important; min-height: 46px; box-shadow: none !important; }
body.ukl.woocommerce-checkout .select2-container .select2-selection--single { height: 46px !important; display: flex; align-items: center; padding: 0 !important; }
body.ukl.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px !important; padding-left: 16px !important; color: var(--ukl-ink); font-size: 15px; }
body.ukl.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 44px !important; right: 8px !important; }
body.ukl.woocommerce-checkout form .input-text:focus, body.ukl.woocommerce-checkout form select:focus, body.ukl.woocommerce-checkout .select2-container--focus .select2-selection--single { border-color: var(--ukl-copper) !important; outline: 2px solid rgba(143,94,62,.25); outline-offset: 1px; }

/* Cart: same side margins as the page title (the card used to touch the screen edges on phones) */
body.ukl.woocommerce-cart .ukl-article.ast-article-single { padding: 0 var(--ukl-gutter) !important; box-sizing: border-box; margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 768px) {
  body.ukl .woocommerce-cart-form td.product-name { text-align: left !important; font-size: 16px; line-height: 1.35; }
  body.ukl .woocommerce-cart-form td.product-name a { text-align: left; }
  body.ukl .woocommerce-cart-form td.product-quantity { justify-self: start; }
}

/* =========================================================================
   Product page: bigger, calmer reading + "Why …?", size guide, closing CTA
   ========================================================================= */
.ukl-benefits li { font-size: 16px; }
.ukl-firstq p { font-size: 15px; }
body.ukl .summary .ukl-trust > div { font-size: 14px; }
.ukl-product__desc .ukl-prose { font-size: 17px; line-height: 1.65; }
.ukl-product__desc .ukl-prose h2, .ukl-product__desc .ukl-prose h3 { margin: 32px 0 10px; }
.ukl-product__desc .ukl-prose p { margin: 0 0 14px; }
.ukl-product__desc .ukl-prose ul { margin: 0 0 16px; }
.ukl-product__desc .ukl-prose ol { margin: 0 0 16px; padding: 0; list-style: none; counter-reset: ukl-step; display: flex; flex-direction: column; gap: 10px; }
.ukl-product__desc .ukl-prose ol li { counter-increment: ukl-step; position: relative; padding-left: 40px; min-height: 28px; }
.ukl-product__desc .ukl-prose ol li::before { content: counter(ukl-step); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--ukl-copper-t); color: var(--ukl-copper); font: 600 14px/28px var(--ukl-sans); text-align: center; }
.ukl-product__desc .ukl-prose figure, .ukl-product__desc .ukl-prose img { max-width: 100%; height: auto; border-radius: 18px; }
.ukl-product__desc .ukl-prose figure { margin: 8px 0 18px; }
.ukl-product__desc .ukl-prose figcaption { margin-top: 8px; font-size: 14px; color: var(--ukl-mute); }

.ukl-sizelink { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 14px; font-size: 15px; color: var(--ukl-copper); text-decoration: underline; text-underline-offset: 3px; }

/* Why …? old way vs easy way */
.ukl-story { margin-top: 72px; display: flex; flex-direction: column; gap: 28px; }
.ukl-story__head { display: flex; flex-direction: column; gap: 10px; max-width: 720px; }
.ukl-story__head h2, .ukl-sizes__head h2 { margin: 0; font-size: 36px; }
.ukl-story__head p, .ukl-sizes__head p { margin: 0; font-size: 18px; color: var(--ukl-body); }
.ukl-story__cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 20px; align-items: stretch; }
.ukl-story__old, .ukl-story__new { border-radius: 28px; padding: 36px 40px; display: flex; flex-direction: column; gap: 16px; }
.ukl-story__old { background: transparent; border: 1px dashed var(--ukl-line); color: var(--ukl-mute); }
.ukl-story__old .ukl-mono { color: var(--ukl-mute); }
.ukl-story__old ol { margin: 0; padding: 0; list-style: none; counter-reset: ukl-old; display: flex; flex-direction: column; gap: 14px; }
.ukl-story__old li { counter-increment: ukl-old; position: relative; padding-left: 44px; font-size: 18px; line-height: 30px; text-decoration: line-through; text-decoration-color: rgba(102,101,95,.45); }
.ukl-story__old li::before { content: counter(ukl-old); position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--ukl-line); font: 500 14px/28px var(--ukl-sans); text-align: center; text-decoration: none; }
.ukl-story__new { background: var(--ukl-dk); color: var(--ukl-dk-t); }
.ukl-story__new .ukl-mono { color: var(--ukl-copper-l); }
.ukl-story__new p { margin: 0; font-family: var(--ukl-display); font-size: 26px; line-height: 1.3; letter-spacing: -0.01em; color: var(--ukl-dk-t); }
.ukl-story__img { margin-top: auto; border-radius: 18px; overflow: hidden; aspect-ratio: 16 / 9; }
.ukl-story__img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Size guide */
.ukl-sizes { margin-top: 72px; display: flex; flex-direction: column; gap: 28px; }
.ukl-sizes__head { display: flex; flex-direction: column; gap: 10px; max-width: 720px; }
.ukl-sizes__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ukl-sizecard { display: flex; flex-direction: column; gap: 22px; padding: 32px; border-radius: 28px; background: var(--ukl-card); border: 1px solid var(--ukl-line); }
.ukl-sizecard__scale { width: 100%; height: auto; display: block; }
.ukl-sizecard__scale .scr { fill: #EDEAE3; stroke: var(--ukl-ink); stroke-width: 0.05; }
.ukl-sizecard__scale .card { fill: none; stroke: var(--ukl-copper); stroke-width: 0.04; stroke-dasharray: 0.12 0.1; }
.ukl-sizecard__body { display: flex; flex-direction: column; gap: 6px; }
.ukl-sizecard__body p { margin: 0; font-size: 16px; line-height: 1.55; }
.ukl-sizecard__title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ukl-sizecard__title strong { font-family: var(--ukl-display); font-size: 30px; color: var(--ukl-ink); }
.ukl-sizecard__title span { font-size: 20px; font-weight: 600; color: var(--ukl-ink); }
p.ukl-sizecard__meta { font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ukl-copper); }

/* Closing CTA */
.ukl-pcta { margin-top: 72px; padding: 44px 56px; border-radius: 28px; background: var(--ukl-dk); color: var(--ukl-dk-t); display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.ukl-pcta h2 { margin: 0 0 8px; font-size: 32px; color: var(--ukl-dk-t) !important; }
.ukl-pcta p { margin: 0; font-size: 17px; color: var(--ukl-dk-l); max-width: 560px; }
.ukl-pcta__buy { display: flex; align-items: center; gap: 20px; flex-shrink: 0; }
.ukl-pcta__price { font-family: var(--ukl-display); font-size: 24px; font-weight: 600; color: var(--ukl-dk-t); white-space: nowrap; }
.ukl-pcta__price .screen-reader-text { position: absolute; clip: rect(0 0 0 0); width: 1px; height: 1px; overflow: hidden; }
body.ukl .ukl-pcta .ukl-btn { background: var(--ukl-copper); color: #fff; }
body.ukl .ukl-pcta .ukl-btn:hover { background: var(--ukl-copper-l); color: #fff; }

@media (max-width: 1000px) {
  .ukl-story, .ukl-sizes, .ukl-pcta { margin-top: 48px; }
  .ukl-story__cols, .ukl-sizes__grid { grid-template-columns: 1fr; }
  .ukl-story__old, .ukl-story__new, .ukl-sizecard { padding: 26px 22px; border-radius: 22px; }
  .ukl-story__head h2, .ukl-sizes__head h2 { font-size: 28px; }
  .ukl-story__new p { font-size: 22px; }
  .ukl-pcta { flex-direction: column; align-items: flex-start; padding: 30px 22px; border-radius: 22px; }
  .ukl-pcta h2 { font-size: 26px; }
  .ukl-pcta__buy { width: 100%; justify-content: space-between; }
}
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
#ukl-buy, #sizes, #before-you-buy { scroll-margin-top: 110px; }
.ukl-story__old { align-self: start; }
.ukl-sizecard__scale .scr-t { font: 600 0.7px var(--ukl-display); fill: var(--ukl-mute); }
.ukl-sizecard__scale .card-t { font: 500 0.38px var(--ukl-sans); fill: var(--ukl-copper); }
.ukl-pcta .ukl-btn { white-space: nowrap; }
@media (max-width: 640px) {
  .ukl-pcta__buy { flex-direction: column; align-items: stretch; gap: 14px; }
  .ukl-pcta .ukl-btn { justify-content: center; width: 100%; }
}
.ukl-sizecard.is-current { border-color: var(--ukl-copper); box-shadow: 0 0 0 1px var(--ukl-copper) inset; }
.ukl-sizecard__here { align-self: flex-start; margin-top: 6px; padding: 6px 12px; border-radius: 999px; background: var(--ukl-copper-t); color: var(--ukl-copper); font-size: 14px; font-weight: 500; }
.ukl-sizecard .ukl-link { margin-top: 6px; font-size: 16px; }
.ukl-sizes__grid:has(> .ukl-sizecard:only-child) { grid-template-columns: minmax(0, 620px); }

/* Simple products: quantity + Add to cart on one row, like variable products */
body.ukl .summary form.cart:not(.variations_form) { flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 12px; }
body.ukl .summary form.cart:not(.variations_form) .quantity { flex: 0 0 auto; width: auto; margin: 0 !important; }
body.ukl .summary form.cart:not(.variations_form) .single_add_to_cart_button { flex: 1 1 auto; min-width: 0; height: 56px; margin: 0 !important; }
/* The stock line duplicates the "In stock · ships from New Jersey" eyebrow */
body.ukl .summary .ast-stock-detail { display: none; }
@media (max-width: 1000px) {
  .ukl-product__main { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  body.ukl .summary form.cart .quantity .ukl-qty-btn { width: 40px; }
  body.ukl .summary form.cart .quantity .qty { width: 34px; }
  body.ukl .summary form.cart .single_add_to_cart_button { padding-left: 14px !important; padding-right: 14px !important; font-size: 15px; }
}
body.ukl .summary .woocommerce-variation-add-to-cart .quantity { margin: 0 !important; }
body.ukl .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button { height: 56px; margin: 0 !important; }

/* =========================================================================
   Pay-for-order page (/checkout/order-pay/…, shown after a declined payment
   or from a "pay now" link) and order-received tables: fit on phones
   ========================================================================= */
body.ukl.woocommerce-order-pay #order_review { max-width: 720px; margin: 0 auto !important; padding: 26px !important; border: 1px solid var(--ukl-line) !important; border-radius: 24px !important; background: var(--ukl-card) !important; box-sizing: border-box; }
body.ukl.woocommerce-order-pay #order_review table.shop_table { width: 100% !important; table-layout: fixed; border: 0 !important; border-radius: 0 !important; border-collapse: collapse; margin: 0 0 20px !important; background: transparent !important; }
body.ukl.woocommerce-order-pay #order_review table.shop_table th,
body.ukl.woocommerce-order-pay #order_review table.shop_table td { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--ukl-line) !important; padding: 12px 0 !important; vertical-align: top; overflow-wrap: anywhere; word-break: break-word; }
body.ukl.woocommerce-order-pay #order_review table.shop_table thead th.product-name { width: 58%; }
body.ukl.woocommerce-order-pay #order_review table.shop_table thead th.product-quantity { width: 14%; }
body.ukl.woocommerce-order-pay #order_review table.shop_table thead th.product-total { width: 28%; }
body.ukl.woocommerce-order-pay #order_review table.shop_table td:last-child,
body.ukl.woocommerce-order-pay #order_review table.shop_table thead th:last-child { text-align: right; padding-left: 12px !important; }
body.ukl.woocommerce-order-pay #order_review table.shop_table td.product-name { font-size: 15px; line-height: 1.4; color: var(--ukl-ink); padding-right: 12px !important; }
body.ukl.woocommerce-order-pay #order_review table.shop_table td.product-quantity { color: var(--ukl-mute); }
body.ukl.woocommerce-order-pay #order_review table.shop_table tfoot th { text-align: left; }
body.ukl.woocommerce-order-pay #order_review table.shop_table tfoot td { font-size: 15px; }
body.ukl.woocommerce-order-pay #payment { background: var(--ukl-paper) !important; border-radius: 16px !important; padding: 6px 16px 16px !important; }
body.ukl.woocommerce-order-pay #place_order { width: 100% !important; float: none !important; min-height: 56px; border-radius: 999px !important; }
body.ukl.woocommerce-order-received .woocommerce-table--order-details td,
body.ukl.woocommerce-order-received .woocommerce-table--order-details th,
body.ukl.woocommerce-order-received ul.order_details li { overflow-wrap: anywhere; word-break: break-word; }
body.ukl.woocommerce-order-received .woocommerce-table--order-details { table-layout: fixed; width: 100%; }
@media (max-width: 640px) {
  body.ukl.woocommerce-order-pay #order_review { padding: 18px !important; border-radius: 20px !important; }
  body.ukl.woocommerce-order-pay #order_review table.shop_table thead th.product-name { width: 50%; }
  body.ukl.woocommerce-order-pay #order_review table.shop_table thead th.product-quantity { width: 16%; }
  body.ukl.woocommerce-order-pay #order_review table.shop_table thead th.product-total { width: 34%; }
}

/* Header between 901px and ~1180px (tablet landscape, small laptops): menu + cart fit without sideways scroll */
@media (min-width: 901px) and (max-width: 1180px) { .ukl-nav ul { gap: 16px; } .ukl-nav li a { font-size: 14px; } }
@media (min-width: 901px) and (max-width: 1020px) { .ukl-nav ul { gap: 12px; } .ukl-tools { gap: 4px; } }

/* Decorative rings in the home hero and spotlight bleed past the right edge on wide screens: clip them instead of adding a sideways scroll */
.ukl-hero, .ukl-spot { overflow-x: clip; }

/* =========================================================================
   Ocean Tide: NOAA station finder — dark card so it stands out from the
   light boxes around it; results are simple ✓ chips
   ========================================================================= */
body.ukl .ukl-finder { position: relative; gap: 12px; padding: 22px 22px 20px; border: 0; border-radius: 20px; background: var(--ukl-dk); color: var(--ukl-dk-l); box-shadow: 0 22px 44px -26px rgba(20,16,12,.55); }
body.ukl .ukl-finder > strong { font-size: 19px; color: var(--ukl-dk-t); }
body.ukl .ukl-finder > p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--ukl-dk-l); }
.ukl-finder__search { display: flex; gap: 8px; margin-top: 2px; }
.ukl-finder__search input { flex: 1 1 auto; min-width: 0; height: 50px; padding: 0 18px; border: 0; border-radius: 25px; background: #FFFDF9; font-size: 16px; color: var(--ukl-ink); }
.ukl-finder__search input::placeholder { color: #8A8478; }
.ukl-finder__search input:focus { outline: 3px solid var(--ukl-copper-l); outline-offset: 2px; }
body.ukl .ukl-finder__geo { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; height: 50px; padding: 0 18px; border-radius: 25px; border: 1px solid rgba(255,248,240,.35) !important; background: transparent !important; color: var(--ukl-dk-t) !important; font-size: 15px; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important; font-family: var(--ukl-sans) !important; font-weight: 500 !important; min-height: 0 !important; box-shadow: none !important; }
body.ukl .ukl-finder__geo:hover { border-color: var(--ukl-copper-l) !important; color: #fff !important; }
.ukl-finder__geo.is-busy { opacity: .6; cursor: progress; }
.ukl-finder__list { list-style: none; margin: 0; padding: 6px; border-radius: 16px; background: #FFFDF9; box-shadow: 0 18px 40px -18px rgba(0,0,0,.5); max-height: 320px; overflow: auto; }
.ukl-finder__list li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 11px 12px; border-radius: 10px; cursor: pointer; }
.ukl-finder__list li:hover, .ukl-finder__list li.is-active { background: var(--ukl-copper-t); }
.ukl-finder__list li .n { font-size: 15px; color: var(--ukl-ink); }
.ukl-finder__list li .m { flex-shrink: 0; font-family: var(--ukl-mono); font-size: 11px; letter-spacing: .04em; color: var(--ukl-mute); }
.ukl-finder__list li.is-empty { cursor: default; color: var(--ukl-mute); font-size: 14px; }
.ukl-finder__list li.is-empty:hover { background: transparent; }
.ukl-finder__result { padding: 18px; border-radius: 16px; background: rgba(255,248,240,.07); border: 1px solid rgba(255,248,240,.12); display: flex; flex-direction: column; gap: 12px; }
.ukl-finder__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 12px; }
.ukl-finder__head b { font-family: var(--ukl-display); font-size: 18px; font-weight: 600; color: var(--ukl-dk-t); }
.ukl-finder__head span { font-family: var(--ukl-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--ukl-dk-b); }
.ukl-finder__wait { margin: 0; color: var(--ukl-dk-b); }
.ukl-finder__verdict { margin: 0; display: flex; align-items: center; gap: 10px; font-family: var(--ukl-display); font-size: 17px; font-weight: 600; color: #8FD3A8; }
.ukl-finder__verdict span { flex: 0 0 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; background: #4FA36E; color: #0F1F14; }
.ukl-finder__group { display: flex; flex-direction: column; gap: 10px; }
.ukl-finder__group > em { font-style: normal; font-family: var(--ukl-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-copper-l); }
.ukl-finder__group > em small { margin-left: 6px; padding: 2px 7px; border-radius: 999px; border: 1px solid rgba(255,248,240,.25); font-size: 10px; letter-spacing: .06em; color: var(--ukl-dk-b); }
.ukl-finder__group.is-extra { padding-top: 14px; border-top: 1px solid rgba(255,248,240,.12); }
.ukl-finder__feats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; }
.ukl-finder__feats li { display: flex; align-items: center; gap: 10px; font-size: 15px; line-height: 1.3; color: var(--ukl-dk-t); }
.ukl-finder__feats li .i { flex: 0 0 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; background: #4FA36E; color: #0F1F14; }
.ukl-finder__group.is-extra .ukl-finder__feats li { font-size: 14px; }
.ukl-finder__group.is-extra .ukl-finder__feats li .i { flex-basis: 18px; height: 18px; font-size: 11px; }
.ukl-finder__feats li.is-no { color: rgba(255,248,240,.55); }
.ukl-finder__feats li.is-no .i { background: transparent; border: 1px solid rgba(255,248,240,.3); color: rgba(255,248,240,.5); }
.ukl-finder__note { margin: 0; font-size: 13px !important; line-height: 1.5; color: var(--ukl-dk-b) !important; }
.ukl-finder__near { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 4px; border-top: 1px solid rgba(255,248,240,.12); }
.ukl-finder__near em { font-style: normal; width: 100%; padding-top: 8px; font-size: 13px; color: var(--ukl-dk-b); }
body.ukl .ukl-finder__near button { border: 1px solid rgba(255,248,240,.3) !important; background: transparent !important; color: var(--ukl-dk-t) !important; border-radius: 999px; padding: 7px 12px; font-size: 14px; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important; font-family: var(--ukl-sans) !important; font-weight: 500 !important; min-height: 0 !important; box-shadow: none !important; }
body.ukl .ukl-finder__near button:hover { border-color: var(--ukl-copper-l) !important; }
.ukl-finder__near button small { color: var(--ukl-dk-b); }
@media (max-width: 480px) {
  body.ukl .ukl-finder { padding: 18px 16px; }
  body.ukl .ukl-finder__geo { padding: 0 14px; }
  .ukl-finder__feats { grid-template-columns: 1fr; gap: 8px; }
}

/* ---------- MoonGraph 3D preview (inc/moongraph-3d.php) ---------- */
.ukl-3d { margin-top: 72px; display: flex; flex-direction: column; gap: 28px; scroll-margin-top: 110px; }
.ukl-3d__head { display: flex; flex-direction: column; gap: 10px; max-width: 720px; }
.ukl-3d__head h2 { margin: 0; font-size: 36px; }
.ukl-3d__head p { margin: 0; font-size: 18px; color: var(--ukl-body); }
.ukl-3d__stage { border-radius: 28px; overflow: hidden; background: #050505; }
.ukl-3d__stage moongraph-viewer { display: block; --mg-height: clamp(420px, 46vw, 640px); --mg-mobile-height: 320px; }
.ukl-3d__stage moongraph-viewer > img { display: block; width: 100%; height: var(--mg-height); object-fit: cover; }
body.ukl .ukl-3d-chip { position: absolute; left: 14px; top: 14px; z-index: 3; display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px 0 14px; border-radius: 22px; background: var(--ukl-dk); color: var(--ukl-dk-t); font-family: var(--ukl-sans); font-size: 15px; font-weight: 500; text-decoration: none; box-shadow: 0 10px 24px -12px rgba(20,16,12,.6); }
body.ukl .ukl-3d-chip:hover, body.ukl .ukl-3d-chip:focus-visible { background: var(--ukl-copper); color: #fff; }
body.ukl .ukl-3d-chip svg { color: var(--ukl-copper-l); }
body.ukl .ukl-3d-chip:hover svg, body.ukl .ukl-3d-chip:focus-visible svg { color: #fff; }
@media (max-width: 1000px) {
  .ukl-3d { margin-top: 48px; }
  .ukl-3d__head h2 { font-size: 28px; }
  .ukl-3d__stage { border-radius: 22px; }
}

/* ---------- "Reasons to …" picture cards (ukl_product_reasons) ---------- */
.ukl-reasons { margin-top: 72px; display: flex; flex-direction: column; gap: 28px; }
.ukl-reasons__head { display: flex; flex-direction: column; gap: 10px; max-width: 720px; }
.ukl-reasons__head h2 { margin: 0; font-size: 36px; }
.ukl-reasons__head p { margin: 0; font-size: 18px; color: var(--ukl-body); }
body.ukl .ukl-reasons__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 20px; }
.ukl-reason { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.ukl-reason__img { border-radius: 22px; overflow: hidden; aspect-ratio: 1 / 1; background: var(--ukl-dk); }
.ukl-reason__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ukl-reason__text { display: flex; flex-direction: column; gap: 6px; }
.ukl-reason__text strong { font-family: var(--ukl-display); font-size: 20px; font-weight: 600; line-height: 1.25; color: var(--ukl-ink); }
.ukl-reason__text span { font-size: 16px; line-height: 1.5; color: var(--ukl-body); }
.ukl-reason__for { font-style: normal; font-family: var(--ukl-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ukl-copper); }
.ukl-reasons__foot { display: flex; flex-direction: column; gap: 6px; max-width: 820px; }
.ukl-reasons__also { margin: 0; font-size: 17px; color: var(--ukl-ink); }
.ukl-reasons__note { margin: 0; font-size: 16px; color: var(--ukl-mute); }
@media (max-width: 1000px) {
  .ukl-reasons { margin-top: 48px; }
  .ukl-reasons__head h2 { font-size: 28px; }
  body.ukl .ukl-reasons__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body.ukl .ukl-reasons__grid { grid-template-columns: 1fr; gap: 16px; }
  .ukl-reason { flex-direction: row; align-items: center; gap: 16px; }
  .ukl-reason__img { flex: 0 0 42%; border-radius: 18px; }
  .ukl-reason__text strong { font-size: 18px; }
}

/* Size comparison shown inside "Why …?" in place of the "easy way" card (story 'side' => 'sizes') */
.ukl-story__cols > .ukl-sizecard { scroll-margin-top: 110px; }
.ukl-story__cols > .ukl-sizecard > .ukl-mono { color: var(--ukl-copper); }

/* ---------- Cookie banner (WPConsent) on phones: a slim bar instead of a tall stack ----------
   The banner lives in a shadow root and exposes ::part() hooks. Message on the left, Reject / Accept on the
   right, Preferences as a text link under them. The "powered by" row has no hook, so it is parked in a
   zero-height second grid row and clipped; the Preferences window still shows it. */
@media (max-width: 600px) {
  #wpconsent-container::part(wpconsent-banner) { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 0; grid-auto-columns: 0; gap: 0; align-items: start; padding: 0 12px; overflow: hidden; }
  #wpconsent-container::part(wpconsent-banner-body) { grid-column: 1; grid-row: 1; align-self: center; margin: 0; padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)) 0; font-size: 13px; line-height: 1.3; text-align: left; }
  #wpconsent-container::part(wpconsent-banner-footer) { grid-column: 2; grid-row: 1; align-self: center; display: grid; grid-template-columns: auto auto; gap: 2px 6px; align-items: center; padding: 8px 0 calc(4px + env(safe-area-inset-bottom, 0px)); }
  #wpconsent-container::part(wpconsent-button-cancel), #wpconsent-container::part(wpconsent-button-accept) { width: auto; min-height: 40px; padding: 0 14px; font-size: 14px; white-space: nowrap; }
  #wpconsent-container::part(wpconsent-button-preferences) { grid-column: 1 / -1; grid-row: 2; justify-self: center; width: auto; min-height: 0; padding: 2px 6px; border: 0; background: transparent; color: inherit; font-size: 13px; font-weight: 400; line-height: 1.3; text-decoration: underline; }
}

/* ---------- Layout stability: nothing should jump while the page loads ---------- */
/* Product photos before the slider script runs: WooCommerce prints every photo stacked, which pushed the buy
   box thousands of pixels down until the script collapsed them. Show one photo and keep room for the
   thumbnail strip, exactly as it looks afterwards. (Once the slider runs, the photos sit inside .flex-viewport
   and these selectors no longer match.) */
body.ukl .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:nth-child(n+2) { display: none !important; }
body.ukl .woocommerce-product-gallery:has(> .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:nth-child(2))::after { content: ""; display: block; height: 133px; } /* 16px gap + 104px thumbnails + their 16px bottom margin, less the 3px the framed photo loses inside the slider */
/* One frame for every product photo (shape of the main photo, set in inc/woocommerce.php; 3:2 if unknown), so the
   gallery keeps its height when a photo of another shape is shown. Other shapes are fitted inside, not cropped. */
body.ukl.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image { aspect-ratio: var(--ukl-gal-ratio, 3 / 2); background: var(--ukl-card); }
body.ukl.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > a { display: block; height: 100%; }
body.ukl.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > a > img:not(.zoomImg), body.ukl.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > img:not(.zoomImg) { width: 100%; height: 100%; object-fit: contain; }
/* Price: when a variation is chosen WooCommerce puts its price in a nested .price span, which made the line 4px taller. */
body.ukl .summary > p.price > .price { display: contents; }
/* Rating row: same height whichever of Astra's width classes is on <body> (its script swaps them after load). */
body.ukl .summary .woocommerce-product-rating { min-height: 28px; }
body.ukl .summary .woocommerce-product-rating .woocommerce-review-link { line-height: 28px; }
/* Station finder: its empty result box and list stay hidden until used ([hidden] was losing to display:flex). */
.ukl-finder__result[hidden], .ukl-finder__list[hidden] { display: none !important; }
