.elementor-kit-6{--e-global-color-primary:#0A7373;--e-global-color-secondary:#3B3934;--e-global-color-text:#1F1D1A;--e-global-color-accent:#14A3A3;--e-global-color-ukcharcdeep:#2E2C28;--e-global-color-ukaccdeep:#08595A;--e-global-color-ukacctint:#E6F5F4;--e-global-color-ukdanger:#C8202D;--e-global-color-ukgreen:#1D7F49;--e-global-color-ukgreentint:#E6F2EB;--e-global-color-ukbg:#FAF8F5;--e-global-color-uksurface:#FFFFFF;--e-global-color-uksand:#F3EFE9;--e-global-color-ukmist:#E6E2E7;--e-global-color-ukline:#E4DFD7;--e-global-color-uklinestrong:#CFC9BF;--e-global-color-uklineinput:#8A857C;--e-global-color-ukmuted:#65615A;--e-global-color-ukondarkmuted:#D6D2CA;--e-global-typography-primary-font-family:"Urbanist";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Urbanist";--e-global-typography-secondary-font-weight:800;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:15px;--e-global-typography-accent-font-weight:600;--e-global-typography-ukdisplay-font-family:"Urbanist";--e-global-typography-ukdisplay-font-size:56px;--e-global-typography-ukdisplay-font-weight:800;--e-global-typography-ukdisplay-line-height:1.1;--e-global-typography-ukdisplay-letter-spacing:-0.015em;--e-global-typography-ukh1-font-family:"Urbanist";--e-global-typography-ukh1-font-size:44px;--e-global-typography-ukh1-font-weight:800;--e-global-typography-ukh1-line-height:1.2;--e-global-typography-ukh1-letter-spacing:-0.015em;--e-global-typography-ukh2-font-family:"Urbanist";--e-global-typography-ukh2-font-size:36px;--e-global-typography-ukh2-font-weight:800;--e-global-typography-ukh2-line-height:1.2;--e-global-typography-ukh2-letter-spacing:-0.015em;--e-global-typography-ukh3-font-family:"Urbanist";--e-global-typography-ukh3-font-size:24px;--e-global-typography-ukh3-font-weight:700;--e-global-typography-ukh3-line-height:1.2;--e-global-typography-ukh3-letter-spacing:-0.015em;--e-global-typography-ukh4-font-family:"Urbanist";--e-global-typography-ukh4-font-size:20px;--e-global-typography-ukh4-font-weight:700;--e-global-typography-ukh4-line-height:1.2;--e-global-typography-ukh4-letter-spacing:-0.015em;--e-global-typography-ukoverline-font-family:"Inter";--e-global-typography-ukoverline-font-size:12px;--e-global-typography-ukoverline-font-weight:700;--e-global-typography-ukoverline-text-transform:uppercase;--e-global-typography-ukoverline-line-height:1.35;--e-global-typography-ukoverline-letter-spacing:0.08em;--e-global-typography-uksmall-font-family:"Inter";--e-global-typography-uksmall-font-size:14px;--e-global-typography-uksmall-font-weight:400;--e-global-typography-uksmall-line-height:1.6;background-color:#FAF8F5;color:#1F1D1A;font-family:"Inter", Sans-serif;font-size:16px;line-height:1.6;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:#0A7373;font-family:"Inter", Sans-serif;font-size:15px;font-weight:600;color:#FFFFFF;border-radius:999px 999px 999px 999px;padding:16px 24px 16px 24px;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:#08595A;color:#FFFFFF;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:#0A7373;}.elementor-kit-6 a:hover{color:#08595A;}.elementor-kit-6 h1{color:#1F1D1A;font-family:"Urbanist", Sans-serif;font-size:44px;font-weight:800;line-height:1.2;}.elementor-kit-6 h2{color:#1F1D1A;font-family:"Urbanist", Sans-serif;font-size:36px;font-weight:800;line-height:1.2;}.elementor-kit-6 h3{color:#1F1D1A;font-family:"Urbanist", Sans-serif;font-size:24px;font-weight:700;line-height:1.2;}.elementor-kit-6 h4{color:#1F1D1A;font-family:"Urbanist", Sans-serif;font-size:20px;font-weight:700;line-height:1.2;}.elementor-kit-6 h5{color:#1F1D1A;font-family:"Urbanist", Sans-serif;font-size:18px;font-weight:700;line-height:1.2;}.elementor-kit-6 h6{color:#1F1D1A;font-family:"Urbanist", Sans-serif;font-size:16px;font-weight:700;line-height:1.2;}.elementor-kit-6 label{color:#1F1D1A;}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{color:#1F1D1A;background-color:#FFFFFF;border-style:solid;border-width:1.5px 1.5px 1.5px 1.5px;border-color:#8A857C;border-radius:12px 12px 12px 12px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1256px;}.e-con{--container-max-width:1256px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-6{--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:15px;--e-global-typography-ukdisplay-font-size:44px;--e-global-typography-ukh1-font-size:36px;--e-global-typography-ukh2-font-size:30px;--e-global-typography-ukh3-font-size:22px;--e-global-typography-ukh4-font-size:18px;--e-global-typography-ukoverline-font-size:12px;--e-global-typography-uksmall-font-size:14px;}.elementor-kit-6 h1{font-size:36px;}.elementor-kit-6 h2{font-size:30px;}.elementor-kit-6 h3{font-size:22px;}.elementor-kit-6 h4{font-size:18px;}.elementor-kit-6 h5{font-size:18px;}.elementor-kit-6 h6{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:15px;--e-global-typography-ukdisplay-font-size:34px;--e-global-typography-ukh1-font-size:30px;--e-global-typography-ukh2-font-size:26px;--e-global-typography-ukh3-font-size:20px;--e-global-typography-ukh4-font-size:18px;--e-global-typography-ukoverline-font-size:12px;--e-global-typography-uksmall-font-size:14px;}.elementor-kit-6 h1{font-size:30px;}.elementor-kit-6 h2{font-size:26px;}.elementor-kit-6 h3{font-size:20px;}.elementor-kit-6 h4{font-size:18px;}.elementor-kit-6 h5{font-size:16px;}.elementor-kit-6 h6{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ==========================================================================
   Unikem Pharmacy at SPAR: Elementor site stylesheet (Site Settings > Custom CSS)
   Source design: Claude Design batch 1 (site/assets/styles.css), rebuilt for Elementor markup.
   Colours and fonts point at Elementor Global Colors / Global Fonts, so a change in Site
   Settings updates the whole design. Breakpoints: tablet >= 768px, desktop >= 1025px.
   Rules that restyle Elementor / WooCommerce / YITH widget internals start with "body" so
   they win over widget stylesheets that load after this file.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
body {
  --color-charcoal: var(--e-global-color-secondary, #3B3934);
  --color-charcoal-deep: var(--e-global-color-ukcharcdeep, #2E2C28);
  --color-accent: var(--e-global-color-accent, #14A3A3);
  --color-accent-strong: var(--e-global-color-primary, #0A7373);
  --color-accent-deep: var(--e-global-color-ukaccdeep, #08595A);
  --color-accent-tint: var(--e-global-color-ukacctint, #E6F5F4);
  --color-danger: var(--e-global-color-ukdanger, #C8202D);
  --color-green: var(--e-global-color-ukgreen, #1D7F49);
  --color-green-tint: var(--e-global-color-ukgreentint, #E6F2EB);
  --color-bg: var(--e-global-color-ukbg, #FAF8F5);
  --color-surface: var(--e-global-color-uksurface, #FFFFFF);
  --color-sand: var(--e-global-color-uksand, #F3EFE9);
  --color-mist: var(--e-global-color-ukmist, #E6E2E7);
  --color-line: var(--e-global-color-ukline, #E4DFD7);
  --color-line-strong: var(--e-global-color-uklinestrong, #CFC9BF);
  --color-line-input: var(--e-global-color-uklineinput, #8A857C);
  --color-ink: var(--e-global-color-text, #1F1D1A);
  --color-muted: var(--e-global-color-ukmuted, #65615A);
  --color-white: #FFFFFF;
  --color-on-dark: #FFFFFF;
  --color-on-dark-muted: var(--e-global-color-ukondarkmuted, #D6D2CA);
  --color-on-dark-line: rgba(255, 255, 255, 0.18);
  --color-on-dark-tint: rgba(255, 255, 255, 0.08);
  --color-overlay: rgba(31, 29, 26, 0.55);
  --color-text: var(--color-ink);
  --color-text-muted: var(--color-muted);
  --color-link: var(--color-accent-strong);
  --color-link-hover: var(--color-accent-deep);
  --color-focus: var(--color-accent-strong);

  --font-heading: var(--e-global-typography-primary-font-family, "Urbanist"), "Segoe UI", system-ui, sans-serif;
  --font-body: var(--e-global-typography-text-font-family, "Inter"), "Segoe UI", system-ui, sans-serif;

  --fs-display: 2.125rem; --fs-h1: 1.875rem; --fs-h2: 1.625rem; --fs-h3: 1.25rem; --fs-h4: 1.125rem;
  --fs-body-lg: 1.0625rem; --fs-body: 1rem; --fs-sm: 0.875rem; --fs-xs: 0.8125rem; --fs-overline: 0.75rem;
  --lh-tight: 1.1; --lh-heading: 1.2; --lh-snug: 1.35; --lh-body: 1.6;
  --ls-heading: -0.015em; --ls-overline: 0.08em;
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem;
  --space-7: 2rem; --space-8: 2.5rem; --space-9: 3rem; --space-10: 4rem; --space-11: 5rem; --space-12: 6rem;
  --tap: 44px; --control-h: 48px;
  --radius-xs: 4px; --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 24px; --radius-pill: 999px;
  --shadow-xs: 0 1px 2px rgba(31, 29, 26, .06);
  --shadow-sm: 0 2px 8px rgba(31, 29, 26, .08);
  --shadow-md: 0 8px 24px rgba(31, 29, 26, .10);
  --shadow-lg: 0 16px 48px rgba(31, 29, 26, .18);
  --icon-sm: 18px; --icon-md: 22px; --icon-lg: 28px;
  --dur-fast: 150ms; --dur: 220ms; --ease: cubic-bezier(.2, .7, .2, 1);
  --product-image-ratio: 4 / 3;

  background-color: var(--color-bg);
  color: var(--color-text);
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 768px) {
body { --fs-display: 2.75rem; --fs-h1: 2.25rem; --fs-h2: 1.875rem; --fs-h3: 1.375rem; --fs-body-lg: 1.125rem; }
}
@media (min-width: 1025px) {
body { --fs-display: 3.5rem; --fs-h1: 2.75rem; --fs-h2: 2.25rem; --fs-h3: 1.5rem; --fs-h4: 1.25rem; }
}

/* 2. Base ------------------------------------------------------------------ */
/* Component classes own typography inside Elementor Heading widgets. Elementor forces links in
   headings to inherit colour/size from the heading, body so components set those on the heading element. */
body .elementor-widget-heading .elementor-heading-title {
  display: block; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; line-height: inherit; margin: 0; padding: 0;
}
body .elementor-widget-heading .elementor-heading-title a { color: inherit; font-size: inherit; line-height: inherit; text-decoration: none; }
/* Heading tags default to the heading line height, as in the design (zero-specificity :where keeps component rules in charge) */
body .elementor-widget-heading :where(h1, h2, h3, h4, h5, h6).elementor-heading-title { line-height: var(--lh-heading); }
body .elementor-widget-text-editor p, body .elementor-widget-text-editor ul, body .elementor-widget-text-editor ol, body .elementor-widget-text-editor dl, body .elementor-widget-text-editor dd { margin: 0; }
body .elementor-widget-text-editor a { color: var(--color-link); text-underline-offset: .18em; }
body .elementor-widget-text-editor a:hover { color: var(--color-link-hover); }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.uk-on-dark { --color-focus: var(--color-white); --color-link: var(--color-on-dark); --color-link-hover: var(--color-on-dark); color: var(--color-on-dark); }
.uk-vh { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* Elementor child containers default to 100% width; uk-auto sizes them to their content */
body .e-con.uk-auto { --width: auto !important; width: auto; }
/* Swiper-based widgets clip their off-screen slides */
body .uk-hero .swiper, body .uk-hero .e-n-carousel, body .uk-carousel .swiper { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
.elementor *, .elementor *::before, .elementor *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* 3. Icons (CSS masks; the icon comes from a uk-i-* class) ------------------------ */
.uk-icobox::before, body .uk-ib .elementor-heading-title::before, body .uk-ia .elementor-heading-title::after, body .uk-btn.uk-ib .elementor-button-content-wrapper::before, body .uk-btn.uk-ia .elementor-button-content-wrapper::after, body .uk-action .elementor-heading-title a::before {
  content: ""; flex: none; display: block;
  width: var(--uk-ico-size, var(--icon-md)); height: var(--uk-ico-size, var(--icon-md));
  background-color: currentColor;
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-ib .elementor-heading-title, body .uk-ia .elementor-heading-title { display: inline-flex; align-items: center; gap: var(--uk-ico-gap, var(--space-2)); }
body .uk-ib .elementor-heading-title a, body .uk-ia .elementor-heading-title a { display: inline-flex; align-items: center; }

body /* 4. Type helpers ---------------------------------------------------------- */
.uk-overline .elementor-heading-title {
  display: flex; width: fit-content; max-width: 100%; align-items: center; gap: var(--space-2);
  padding: var(--space-1) var(--space-3); border-radius: var(--radius-pill);
  background: var(--color-accent-tint); color: var(--color-accent-strong);
  font-family: var(--font-body); font-size: var(--fs-overline); font-weight: 700; line-height: var(--lh-snug);
  letter-spacing: var(--ls-overline); text-transform: uppercase;
}
body .uk-overline--on-dark .elementor-heading-title { background: var(--color-on-dark-tint); color: var(--color-on-dark); }
body .uk-overline--on-tint .elementor-heading-title { background: var(--color-surface); }
body .uk-h-display .elementor-heading-title, body .uk-h1 .elementor-heading-title, body .uk-h2 .elementor-heading-title, body .uk-h3 .elementor-heading-title, body .uk-h4 .elementor-heading-title, body .uk-title .elementor-heading-title {
  font-family: var(--font-heading); font-weight: 700; line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text);
}
body .uk-on-dark .uk-h2 .elementor-heading-title, body .uk-on-dark .uk-title .elementor-heading-title { color: var(--color-on-dark); }
body .uk-h-display .elementor-heading-title { font-size: var(--fs-display); font-weight: 800; line-height: var(--lh-tight); }
body .uk-h1 .elementor-heading-title { font-size: var(--fs-h1); font-weight: 800; }
body .uk-h2 .elementor-heading-title { font-size: var(--fs-h2); font-weight: 800; }
body .uk-h3 .elementor-heading-title { font-size: var(--fs-h3); }
body .uk-h4 .elementor-heading-title { font-size: var(--fs-h4); }
.uk-lead { font-size: var(--fs-body-lg); line-height: var(--lh-body); color: var(--color-text-muted); }
.uk-muted { color: var(--color-text-muted); }
.uk-sm { font-size: var(--fs-sm); }
.uk-xs { font-size: var(--fs-xs); line-height: var(--lh-snug); }
.uk-maxch { max-width: 62ch; }
.uk-link-arrow { --uk-ico-size: var(--icon-sm); }
body .uk-link-arrow .elementor-heading-title { min-height: var(--tap); font-family: var(--font-body); font-size: var(--fs-body); font-weight: 600; color: var(--color-link); }
body .uk-link-arrow:hover .elementor-heading-title { color: var(--color-link-hover); }
body .uk-link-arrow .elementor-heading-title a:hover { text-decoration: underline; }
body .uk-link-arrow .elementor-heading-title::after { transition: transform var(--dur-fast) var(--ease); }
body .uk-link-arrow:hover .elementor-heading-title::after { transform: translateX(3px); }
body .uk-on-dark .uk-link-arrow .elementor-heading-title, body .uk-on-dark .uk-link-arrow:hover .elementor-heading-title { color: var(--color-on-dark); }
.uk-tbc {
  display: inline; padding: 0 var(--space-1); border: 1px dashed var(--color-line-input); border-radius: var(--radius-xs);
  background: var(--color-surface); color: var(--color-text-muted); font-family: var(--font-body);
  font-size: .8125em; font-weight: 500; letter-spacing: 0; text-transform: none;
}
.uk-on-dark .uk-tbc { background: transparent; border-color: var(--color-on-dark-muted); color: var(--color-on-dark-muted); }
.uk-section-head__intro { flex: 1 1 auto; }

/* 5. Buttons (Elementor Button widget + uk-btn classes) --------------------------- */
body .uk-btn .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  min-height: var(--control-h); padding: 0 var(--space-6);
  border: 2px solid transparent; border-radius: var(--radius-pill); background: transparent;
  font-family: var(--font-body); font-size: .9375rem; font-weight: 600; line-height: 1; letter-spacing: 0;
  text-decoration: none; white-space: nowrap; cursor: pointer; box-shadow: none;
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
body .uk-btn .elementor-button-content-wrapper { align-items: center; gap: var(--space-2); }
body .uk-btn .elementor-button-content-wrapper::before, body .uk-btn .elementor-button-content-wrapper::after { --uk-ico-size: var(--icon-sm); }
body .uk-btn--primary .elementor-button { background: var(--color-accent-strong); color: var(--color-white); }
body .uk-btn--primary .elementor-button:hover, body .uk-btn--primary .elementor-button:focus-visible { background: var(--color-accent-deep); color: var(--color-white); }
body .uk-btn--secondary .elementor-button { background: var(--color-charcoal); color: var(--color-white); }
body .uk-btn--secondary .elementor-button:hover { background: var(--color-charcoal-deep); color: var(--color-white); }
body .uk-btn--outline .elementor-button { border-color: var(--color-charcoal); color: var(--color-charcoal); background: transparent; }
body .uk-btn--outline .elementor-button:hover { background: var(--color-charcoal); color: var(--color-white); }
body .uk-btn--on-dark .elementor-button { border-color: var(--color-on-dark); color: var(--color-on-dark); background: transparent; }
body .uk-btn--on-dark .elementor-button:hover { background: var(--color-on-dark); color: var(--color-charcoal); }
body .uk-btn--block, body .uk-btn--block .elementor-button-wrapper, body .uk-btn--block .elementor-button { width: 100%; }
body .uk-btn--icon .elementor-button { width: var(--tap); min-height: var(--tap); height: var(--tap); padding: 0; border-radius: 50%; }
body .uk-btn--icon .elementor-button-content-wrapper::before { --uk-ico-size: var(--icon-md); }
body .uk-btn--icon .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body .uk-btn--ghost-dark .elementor-button { color: var(--color-on-dark); background: transparent; border-color: transparent; }
body .uk-btn--ghost-dark .elementor-button:hover { background: var(--color-on-dark-tint); color: var(--color-on-dark); }

/* 6. Sections -------------------------------------------------------------------- */
.uk-section--surface { background-color: var(--color-surface); }
.uk-section--sand { background-color: var(--color-sand); }
.uk-section--tint { background-color: var(--color-accent-tint); }
.uk-band { background-color: var(--color-surface); border-block: 1px solid var(--color-line); }

/* 7. Media placeholder (swap for a real photo later) ----------------------------- */
.uk-ph {
  position: relative; width: 100%; aspect-ratio: 4 / 3;
  border: 1.5px dashed var(--color-line-strong); border-radius: var(--radius-xl);
  background-color: var(--color-sand);
  background-image: repeating-linear-gradient(135deg, transparent 0 14px, var(--color-bg) 14px 15px);
  color: var(--color-text-muted); text-align: center; overflow: hidden;
}
.uk-ph::before { --uk-ico-size: var(--icon-lg); }
body .uk-ph__label .elementor-heading-title { max-width: 34ch; margin-inline: auto; font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); color: var(--color-text-muted); }
.uk-ph--5x4 { aspect-ratio: 5 / 4; }
.uk-ph--3x2 { aspect-ratio: 3 / 2; }
.uk-ph--1x1 { aspect-ratio: 1 / 1; }

/* 8. Header ------------------------------------------------------------------------ */
.uk-header { position: relative; z-index: 50; }
.uk-topbar { background-color: var(--color-charcoal-deep); }
.uk-topbar > .e-con-inner { min-height: 36px; }
.uk-topbar__item { --uk-ico-size: 16px; }
body .uk-topbar__item .elementor-heading-title { color: var(--color-on-dark-muted); font-size: var(--fs-xs); line-height: 1.4; }
body .uk-topbar__item .elementor-heading-title:has(a) { color: var(--color-on-dark); font-weight: 600; }
body .uk-topbar__item .elementor-heading-title a:hover { text-decoration: underline; }

.uk-headbar { background-color: var(--color-charcoal); color: var(--color-on-dark); }
body .uk-headbar > .e-con-inner {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "menu logo actions" "search search search";
  align-items: center; gap: var(--space-3) var(--space-2); padding-block: var(--space-3);
}
body .uk-headbar .uk-menu-toggle { grid-area: menu; }
body .uk-headbar .uk-logo { grid-area: logo; justify-self: start; width: auto; }
body .uk-headbar .uk-search { grid-area: search; width: 100%; }
body .uk-headbar .uk-actions { grid-area: actions; width: auto; }
body .uk-logo img { width: auto; height: 34px; max-width: none; display: block; }
body .uk-menu-toggle .elementor-button { color: var(--color-on-dark); }

body .uk-action .elementor-heading-title { font-size: 0; line-height: 1; font-weight: 500; color: var(--color-on-dark); }
body .uk-action .elementor-heading-title a {
  position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  min-width: var(--tap); min-height: var(--tap); padding: var(--space-1); border-radius: var(--radius-sm);
}
body .uk-action .elementor-heading-title a:hover { background: var(--color-on-dark-tint); }

/* Menu cart as a header action */
body .uk-cart .elementor-menu-cart__toggle .elementor-button {
  position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  min-width: var(--tap); min-height: var(--tap); padding: var(--space-1); border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--color-on-dark); font-size: 0; font-weight: 500; line-height: 1;
}
body .uk-cart .elementor-menu-cart__toggle .elementor-button:hover { background: var(--color-on-dark-tint); }
body .uk-cart .elementor-menu-cart__toggle .elementor-button::before {
  content: ""; width: var(--icon-md); height: var(--icon-md); background-color: currentColor;
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-cart .elementor-menu-cart__toggle .elementor-button::after { content: "Cart"; position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body .uk-cart .elementor-menu-cart__toggle .elementor-button-text { display: none; }
body .uk-cart .elementor-menu-cart__toggle .elementor-button-icon { position: static; }
body .uk-cart .elementor-menu-cart__toggle .elementor-button-icon > i, body .uk-cart .elementor-menu-cart__toggle .elementor-button-icon > svg, body .uk-cart .elementor-menu-cart__toggle .elementor-button-icon > .e-font-icon-svg { display: none; }
body .uk-cart .elementor-menu-cart__toggle .elementor-button-icon-qty[data-counter] {
  position: absolute; top: 2px; right: 0; left: auto; inset-inline-end: 0; inset-inline-start: auto; min-width: 20px; height: 20px; padding: 0 var(--space-1);
  border: 2px solid var(--color-charcoal); border-radius: var(--radius-pill); background: var(--color-accent-strong); color: var(--color-white);
  font-family: var(--font-body); font-size: .6875rem; font-weight: 700; line-height: 16px; text-align: center;
}

/* Header search (Elementor Pro Search widget) */
body .uk-search .e-search-form { position: relative; display: flex; width: 100%; margin: 0; gap: 0; }
body .uk-search .e-search-input-wrapper { flex: 1; position: relative; }
body .uk-search .e-search-input {
  width: 100%; min-height: var(--control-h); height: var(--control-h); padding: 0 calc(var(--control-h) + var(--space-2)) 0 var(--space-5);
  border: 1.5px solid transparent; border-radius: var(--radius-pill); background: var(--color-surface); color: var(--color-text);
  font-family: var(--font-body); font-size: var(--fs-body); box-shadow: none;
}
body .uk-search .e-search-input::placeholder { color: var(--color-text-muted); opacity: 1; }
body .uk-search .e-search-submit {
  position: absolute; top: 2px; right: 2px; left: auto; inset-inline-end: 2px; inset-inline-start: auto; display: grid; place-items: center;
  width: 44px; height: 44px; min-height: 0; min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 50%;
  background: var(--color-accent-strong); color: var(--color-white); font-size: 0; z-index: 2;
}
body .uk-search .e-search-submit:hover { background: var(--color-accent-deep); }
body .uk-search .e-search-submit::before {
  content: ""; width: 20px; height: 20px; background-color: currentColor;
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-search .e-search-submit > * { display: none; }
body .uk-search .e-search-results-container { border: 0; box-shadow: none; background: transparent; }
body .uk-search .e-search-results:not(:empty) {
  margin-top: var(--space-2); padding: var(--space-2); border: 1px solid var(--color-line); border-radius: var(--radius-md);
  background: var(--color-surface); box-shadow: var(--shadow-lg); color: var(--color-text);
}

/* Desktop nav row */
.uk-navrow { background-color: var(--color-surface); border-bottom: 1px solid var(--color-line); }
.uk-aside-link { --uk-ico-size: 18px; }
body .uk-aside-link .elementor-heading-title { min-height: var(--tap); font-size: var(--fs-sm); font-weight: 600; color: var(--color-text); }
body .uk-aside-link .elementor-heading-title::before { color: var(--color-accent-strong); }
body .uk-aside-link:hover .elementor-heading-title { color: var(--color-accent-strong); }

/* Mega menu (two Elementor Mega Menu widgets side by side) */
body .uk-mega .e-n-menu-heading { gap: 0; }
body .uk-mega .e-n-menu-title {
  position: relative; min-height: 56px; padding: 0 var(--space-4); background: transparent; border: 0;
  color: var(--color-text); font-family: var(--font-body); font-size: .9375rem; font-weight: 600; line-height: 1.2;
}
body .uk-mega .e-n-menu-title-container, body .uk-mega .e-n-menu-title-text { color: inherit; font: inherit; }
body .uk-mega .e-n-menu-title::before {
  content: ""; position: absolute; left: var(--space-4); right: var(--space-4); bottom: 0; height: 3px;
  border-radius: var(--radius-pill) var(--radius-pill) 0 0; background: var(--color-accent);
  transform: scaleX(0); transition: transform var(--dur) var(--ease);
}
body .uk-mega .e-n-menu-title:hover, body .uk-mega .e-n-menu-title.e-current, body .uk-mega .e-n-menu-title:has([aria-expanded="true"]) { color: var(--color-accent-strong); }
body .uk-mega .e-n-menu-title:hover::before, body .uk-mega .e-n-menu-title.e-current::before, body .uk-mega .e-n-menu-title:has([aria-expanded="true"])::before { transform: scaleX(1); }
body .uk-mega .e-n-menu-dropdown-icon { color: inherit; background: transparent; border: 0; padding: 0 0 0 var(--space-1); }
body .uk-mega .e-n-menu-dropdown-icon svg { width: 12px; height: 12px; fill: currentColor; }
.uk-megapanel { background-color: var(--color-surface); border-top: 1px solid var(--color-line); box-shadow: var(--shadow-lg); }
body .uk-mega__col-title .elementor-heading-title {
  color: var(--color-text-muted); font-family: var(--font-body); font-size: var(--fs-overline); font-weight: 700;
  letter-spacing: var(--ls-overline); text-transform: uppercase;
}
.uk-mlink { --uk-ico-size: var(--icon-md); }
body .uk-mlink .elementor-heading-title { display: flex; width: 100%; font-size: var(--fs-body); font-weight: 500; color: var(--color-text); }
body .uk-mlink .elementor-heading-title a {
  display: flex; align-items: center; gap: var(--space-3); flex: 1 1 auto; min-width: 0; min-height: var(--tap);
  padding: var(--space-1) var(--space-2); margin-inline: calc(var(--space-2) * -1); border-radius: var(--radius-sm);
}
body .uk-mlink .elementor-heading-title a::before {
  content: ""; flex: none; width: var(--uk-ico-size); height: var(--uk-ico-size); background-color: var(--color-accent-strong);
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-mlink .elementor-heading-title a:hover { background: var(--color-sand); }
.uk-mfeatured { border-radius: var(--radius-lg); background-color: var(--color-sand); }
.uk-mfoot { border-top: 1px solid var(--color-line); }
.uk-dropdown { border: 1px solid var(--color-line); border-radius: 0 0 var(--radius-md) var(--radius-md); background-color: var(--color-surface); box-shadow: var(--shadow-lg); }
body .uk-dropdown .uk-mlink .elementor-heading-title a { margin-inline: 0; padding: var(--space-2) var(--space-3); }

/* Compact product row (mega menu picks, search results) */
.uk-pmini { border-radius: var(--radius-md); background-color: var(--color-surface); color: var(--color-text); text-decoration: none; transition: box-shadow var(--dur-fast) var(--ease); }
.uk-pmini:hover { box-shadow: var(--shadow-sm); color: var(--color-text); }
.uk-pmini__media { aspect-ratio: var(--product-image-ratio); border-radius: var(--radius-sm); overflow: hidden; background-color: var(--color-mist); }
body .uk-pmini__media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: var(--product-image-ratio); display: block; }
body .uk-pmini__title .elementor-heading-title {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  margin: 0; font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); color: var(--color-text);
}
body .uk-pmini__price .price, body .uk-pmini__price .woocommerce-Price-amount { margin: 0; font-family: var(--font-heading); font-size: 1rem; font-weight: 800; color: var(--color-text); }

/* Off-canvas mobile navigation */
body .uk-offcanvas .e-off-canvas__content { background-color: var(--color-surface); box-shadow: var(--shadow-lg); width: min(88vw, 400px); }
.uk-oc-head { background-color: var(--color-charcoal); color: var(--color-on-dark); }
body .uk-oc-head .uk-logo img { height: 32px; }
body .uk-mnav-link .elementor-heading-title { font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; color: var(--color-text); }
body .uk-mnav-link .elementor-heading-title a { display: flex; align-items: center; min-height: 52px; padding: 0 var(--space-1); }
body .uk-mnav-link:hover .elementor-heading-title { color: var(--color-accent-strong); }
.uk-mnav-link, .uk-mnav-acc { border-bottom: 1px solid var(--color-line); }
body .uk-mnav-acc .e-n-accordion-item { border: 0; }
body .uk-mnav-acc .e-n-accordion-item-title {
  min-height: 52px; padding: 0 var(--space-1); border: 0; background: transparent; justify-content: space-between;
  font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; color: var(--color-text);
}
body .uk-mnav-acc .e-n-accordion-item-title-text { font: inherit; color: inherit; }
body .uk-mnav-acc .e-n-accordion-item-title-icon svg { width: 16px; height: 16px; fill: currentColor; }
body .uk-mnav-acc .e-n-accordion-item > .e-con { padding: 0 0 var(--space-3) 0; border: 0; }
body .uk-msub .elementor-heading-title { font-size: .9375rem; color: var(--color-text); }
body .uk-msub .elementor-heading-title a { display: flex; align-items: center; gap: var(--space-3); min-height: var(--tap); }
body .uk-msub .elementor-heading-title a::before {
  content: ""; flex: none; width: 20px; height: 20px; background-color: var(--color-accent-strong);
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-msub:hover .elementor-heading-title { color: var(--color-accent-strong); }
.uk-oc-foot { border-top: 1px solid var(--color-line); background-color: var(--color-bg); }

/* 9. Hero slider (Elementor Pro Nested Carousel) ----------------------------------- */
body .uk-hero__slide {
  display: grid; grid-template-rows: auto auto; border: 1px solid var(--color-line);
  border-radius: var(--radius-xl); overflow: hidden; background-color: var(--color-surface); height: 100%;
}
body .uk-hero__media { aspect-ratio: 4 / 3; }
body .uk-hero__media.uk-ph { border: 0; border-radius: 0; height: 100%; }
.uk-hero__panel { position: relative; z-index: 1; }
body .uk-hero__title .elementor-heading-title { font-size: var(--fs-h1); font-weight: 800; line-height: var(--lh-tight); }
.uk-hero__title .uk-accent { color: var(--color-accent-strong); }
body .uk-hero .swiper-pagination { position: static; margin-top: var(--space-3); display: flex; justify-content: flex-start; width: auto; }
body .uk-hero .swiper-pagination-bullet {
  width: 10px; height: 10px; margin: 17px !important; border-radius: var(--radius-pill); background: var(--color-line-strong); opacity: 1;
  transition: width var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
body .uk-hero .swiper-pagination-bullet-active { width: 28px; background: var(--color-accent-strong); }
body .uk-hero .elementor-swiper-button {
  position: absolute; width: var(--tap); height: var(--tap); border: 1.5px solid var(--color-line-strong); border-radius: 50%;
  background: var(--color-surface); color: var(--color-ink); display: grid; place-items: center;
  top: auto; bottom: 0; transform: none; z-index: 3;
}
body .uk-hero .elementor-swiper-button:hover { background: var(--color-charcoal); border-color: var(--color-charcoal); color: var(--color-white); }
body .uk-hero .elementor-swiper-button svg { width: 18px; height: 18px; fill: currentColor; }
body .uk-hero .elementor-swiper-button-prev { left: auto; right: calc(var(--tap) + var(--space-2)); inset-inline-start: auto; inset-inline-end: calc(var(--tap) + var(--space-2)); }
body .uk-hero .elementor-swiper-button-next { left: auto; right: 0; inset-inline-start: auto; inset-inline-end: 0; }
@media (min-width: 768px) {
body .uk-hero__slide { grid-template-rows: none; aspect-ratio: 16 / 9; }
body .uk-hero__media { grid-area: 1 / 1; aspect-ratio: auto; height: 100%; }
body .uk-hero__media.uk-ph { padding-left: 50% !important; }
body .uk-hero__panel {
    grid-area: 1 / 1; align-self: end; justify-self: start; max-width: 480px; margin: var(--space-6);
    padding: var(--space-6); border-radius: var(--radius-lg); background-color: var(--color-surface); box-shadow: var(--shadow-md);
  }
}
@media (min-width: 1025px) {
body .uk-hero__slide { aspect-ratio: 21 / 9; }
body .uk-hero__panel { max-width: 560px; margin: var(--space-8); padding: var(--space-7); }
body .uk-hero .swiper-pagination { position: absolute; left: auto; right: calc(var(--space-6) + 2 * var(--tap) + var(--space-6)); bottom: calc(var(--space-6) + 2px); top: auto; margin: 0; z-index: 3; }
body .uk-hero .elementor-swiper-button { bottom: var(--space-6); border-color: transparent; box-shadow: var(--shadow-sm); }
body .uk-hero .elementor-swiper-button-next { right: var(--space-6); inset-inline-end: var(--space-6); }
body .uk-hero .elementor-swiper-button-prev { right: calc(var(--space-6) + var(--tap) + var(--space-2)); inset-inline-end: calc(var(--space-6) + var(--tap) + var(--space-2)); }
}

/* 10. USP strip -------------------------------------------------------------------- */
.uk-usp__icon { height: 44px; border-radius: var(--radius-md); background-color: var(--color-accent-tint); color: var(--color-accent-strong); }
body .uk-usp__title .elementor-heading-title { font-family: var(--font-heading); font-size: 1rem; font-weight: 700; line-height: var(--lh-snug); letter-spacing: var(--ls-heading); color: var(--color-text); }
body .uk-usp__text .elementor-heading-title { font-size: var(--fs-xs); line-height: var(--lh-snug); color: var(--color-text-muted); }

/* 11. Category tiles ------------------------------------------------------------------ */
.uk-cat {
  border: 1px solid transparent; border-radius: var(--radius-lg); background-color: var(--color-sand); color: var(--color-text);
  text-decoration: none; min-height: 72px;
  transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.uk-cat__icon { height: 44px; border-radius: var(--radius-md); background-color: var(--color-surface); color: var(--color-accent-strong); transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease); }
body .uk-cat__label .elementor-heading-title { font-family: var(--font-heading); font-size: .9375rem; font-weight: 700; line-height: var(--lh-snug); color: var(--color-text); }
.uk-cat__meta { --uk-ico-size: 14px; }
body .uk-cat__meta .elementor-heading-title { gap: var(--space-1); font-size: var(--fs-xs); font-weight: 600; color: var(--color-accent-strong); }
.uk-cat:hover { border-color: var(--color-line-strong); background-color: var(--color-surface); box-shadow: var(--shadow-sm); color: var(--color-text); }
.uk-cat:hover .uk-cat__icon { background-color: var(--color-accent-strong); color: var(--color-white); }
@media (min-width: 768px) {
.uk-cat { min-height: 164px; }
.uk-cat__icon { height: 52px; --uk-ico-size: var(--icon-lg); }
body .uk-cat__label .elementor-heading-title { font-size: 1.0625rem; }
body .uk-cat__body { margin-top: auto; }
.uk-cat:hover { transform: translateY(-2px); }
}

/* 12. Product card (Elementor Loop Item) --------------------------------------------- */
.uk-card {
  position: relative; height: 100%; border: 1px solid var(--color-line); border-radius: var(--radius-lg);
  background-color: var(--color-surface); overflow: hidden;
  transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.uk-card:hover { border-color: var(--color-line-strong); box-shadow: var(--shadow-md); }
body .uk-card__media { position: relative; aspect-ratio: var(--product-image-ratio); background-color: var(--color-mist); overflow: hidden; }
body .uk-card__img, body .uk-card__img a, body .uk-card__img img { display: block; width: 100%; height: 100%; }
body .uk-card__img img { object-fit: cover; aspect-ratio: var(--product-image-ratio); max-width: none; transition: transform var(--dur) var(--ease); }
.uk-card:hover .uk-card__img img { transform: scale(1.03); }
body .uk-card__badge { position: absolute; top: var(--space-3); left: var(--space-3); z-index: 2; width: auto; }
body .uk-card__badge .elementor-heading-title { display: flex; flex-wrap: wrap; gap: var(--space-1); font-size: 0; }
body .uk-card__badge .elementor-heading-title:empty { display: none; }
body .uk-card__badge .elementor-heading-title a {
  display: inline-flex; align-items: center; padding: var(--space-1) var(--space-3); border-radius: var(--radius-pill);
  background-color: var(--color-accent-tint); color: var(--color-accent-strong); pointer-events: none;
  font-family: var(--font-body); font-size: var(--fs-overline); font-weight: 700; line-height: var(--lh-snug); letter-spacing: .02em;
}
body .uk-card__badge .elementor-heading-title a[href*="/product-tag/new"] { background-color: var(--color-charcoal); color: var(--color-white); }
body .uk-card__wish { position: absolute; top: var(--space-1); right: var(--space-1); z-index: 3; width: auto; }
body .uk-card__cat .elementor-heading-title { font-size: .75rem; font-weight: 500; line-height: 1.4; color: var(--color-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body .uk-card__cat .elementor-heading-title a { pointer-events: none; }
body .uk-card__title .elementor-heading-title {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: calc(2em * var(--lh-snug)); margin: 0;
  font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); letter-spacing: 0; color: var(--color-text);
}
body .uk-card__title:hover .elementor-heading-title { color: var(--color-accent-strong); }
body .uk-card__title .elementor-heading-title a:hover { text-decoration: underline; }
body .uk-card__foot { margin-top: auto; }
body .uk-card__price .price, body .uk-card__price p.price {
  display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--space-2); margin: 0;
  font-family: var(--font-heading); font-size: 1rem; font-weight: 800; line-height: var(--lh-snug); color: var(--color-text);
}
body .uk-card__price .price del { order: 2; font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 500; color: var(--color-text-muted); }
body .uk-card__price .price ins { text-decoration: none; color: var(--color-accent-strong); }
@media (min-width: 768px) { body .uk-card__price .price { font-size: 1.125rem; } }

/* Round "add to cart" button (WooCommerce AJAX link inside the loop widget) */
body .uk-card__add { width: auto; flex: none; }
body .uk-card__add .e-loop-add-to-cart-form-container, body .uk-card__add form.cart { margin: 0; display: flex; }
body .uk-card__add .quantity { display: none; }
body .uk-card__add a.button {
  position: relative; display: grid; place-items: center; width: var(--tap); height: var(--tap); min-height: 0; padding: 0; margin: 0;
  border: 1.5px solid var(--color-accent-strong); border-radius: 50%; background: transparent; color: var(--color-accent-strong);
  font-size: 0; line-height: 0; text-indent: 0; box-shadow: none;
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body .uk-card__add a.button::before {
  content: ""; width: var(--icon-md); height: var(--icon-md); background-color: currentColor;
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-card__add a.button:hover { background: var(--color-accent-strong); color: var(--color-white); }
body .uk-card__add a.button.loading { opacity: .6; }
body .uk-card__add a.button.loading::after, body .uk-card__add a.button.added::after { display: none; }
body .uk-card__add a.button.added { background: var(--color-green); border-color: var(--color-green); color: var(--color-white); }
body .uk-card__add .added_to_cart { display: none; }

/* YITH wishlist button as the design's round heart */
body .uk-card__wish .yith-add-to-wishlist-button-block { margin: 0; }
body .uk-card__wish .yith-wcwl-add-to-wishlist-button {
  display: grid; place-items: center; width: var(--tap); height: var(--tap); padding: 0; margin: 0; border: 0;
  background: transparent; color: var(--color-ink); box-shadow: none; cursor: pointer;
}
body .uk-card__wish .yith-wcwl-add-to-wishlist-button .yith-wcwl-icon-svg__wrapper {
  display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--color-surface); box-shadow: var(--shadow-xs);
}
body .uk-card__wish .yith-wcwl-add-to-wishlist-button svg { width: 20px; height: 20px; color: inherit; }
body .uk-card__wish .yith-wcwl-add-to-wishlist-button:hover, body .uk-card__wish .yith-wcwl-add-to-wishlist-button--added { color: var(--color-accent-strong); }
body .uk-card__wish .yith-wcwl-add-to-wishlist-button__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body .uk-card__wish .yith-wcwl-add-to-wishlist-button--loading { opacity: 1; }

/* Loop grid / carousel */
body .uk-loop .e-loop-item { height: 100%; }
body .uk-carousel .elementor-swiper-button {
  width: var(--tap); height: var(--tap); border: 1.5px solid var(--color-accent-strong); border-radius: 50%;
  background: var(--color-surface); color: var(--color-accent-strong); display: grid; place-items: center; z-index: 3;
}
body .uk-carousel .elementor-swiper-button:hover { background: var(--color-accent-strong); color: var(--color-white); }
body .uk-carousel .elementor-swiper-button svg { width: 18px; height: 18px; fill: currentColor; }
body .uk-carousel .elementor-swiper-button.swiper-button-disabled { border-color: var(--color-line); color: var(--color-line-strong); opacity: 1; }
/* Arrows sit in the section head, right of "View all" */
body .uk-carousel--headnav { position: relative; overflow: visible; }
body .uk-carousel--headnav .elementor-swiper-button { position: absolute; top: calc(-1 * (var(--tap) + var(--space-7))); bottom: auto; transform: none; margin: 0; }
body .uk-carousel--headnav .elementor-swiper-button-next { right: 0; left: auto; inset-inline-end: 0; inset-inline-start: auto; }
body .uk-carousel--headnav .elementor-swiper-button-prev { right: calc(var(--tap) + var(--space-2)); left: auto; inset-inline-end: calc(var(--tap) + var(--space-2)); inset-inline-start: auto; }
body .uk-head-navspace { padding-inline-end: calc(2 * var(--tap) + var(--space-2) + var(--space-3)); }

/* 13. Promo banners ------------------------------------------------------------------ */
.uk-promo { border-radius: var(--radius-xl); overflow: hidden; }
.uk-promo--dark { background-color: var(--color-charcoal); color: var(--color-on-dark); }
.uk-promo--tint { background-color: var(--color-accent-tint); }
body .uk-promo__title .elementor-heading-title { font-family: var(--font-heading); font-size: var(--fs-h3); font-weight: 800; line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text); }
body .uk-promo--dark .uk-promo__title .elementor-heading-title { color: var(--color-on-dark); }
.uk-promo__text { font-size: var(--fs-sm); color: var(--color-text-muted); }
.uk-promo--dark .uk-promo__text { color: var(--color-on-dark-muted); }
.uk-promo__media { aspect-ratio: var(--product-image-ratio); border-radius: var(--radius-lg); overflow: hidden; background-color: var(--color-mist); }
body .uk-promo__media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: var(--product-image-ratio); display: block; }
body .uk-promo__media .elementor-widget-image { height: 100%; }

/* 14. Service card + teaser ------------------------------------------------------------ */
.uk-svc {
  height: 100%; border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-surface);
  transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.uk-svc:hover { border-color: var(--color-line-strong); box-shadow: var(--shadow-md); }
.uk-svc__icon { height: 52px; border-radius: var(--radius-md); background-color: var(--color-accent-tint); color: var(--color-accent-strong); --uk-ico-size: var(--icon-lg); }
body .uk-svc__title .elementor-heading-title { font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text); }
.uk-svc__text { font-size: var(--fs-sm); color: var(--color-text-muted); }
.uk-svc__meta { border-top: 1px solid var(--color-line); }
body .uk-svc__meta dl { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; }
body .uk-svc__meta dl > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-1) var(--space-3); }
body .uk-svc__meta dt { font-size: .75rem; font-weight: 700; letter-spacing: var(--ls-overline); text-transform: uppercase; color: var(--color-text-muted); }
body .uk-svc__meta dd { margin: 0; font-size: var(--fs-sm); font-weight: 600; }
.uk-svc__action { margin-top: auto; }
.uk-note { font-size: var(--fs-xs); color: var(--color-text-muted); }
@media (min-width: 1025px) { body .uk-sticky-intro { position: sticky; top: var(--space-6); } }

/* 15. Story ------------------------------------------------------------------------ */
.uk-facts { border-radius: var(--radius-lg); background-color: var(--color-surface); border: 1px solid var(--color-line); }
.uk-fact { --uk-ico-size: var(--icon-md); }
body .uk-fact .elementor-heading-title { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--fs-sm); line-height: var(--lh-body); color: var(--color-text); }
body .uk-fact .elementor-heading-title::before { color: var(--color-accent-strong); margin-top: 1px; }
body .uk-fact .elementor-heading-title:has(a) { font-weight: 600; }
body .uk-fact .elementor-heading-title a { text-decoration: underline; }

/* 16. Steps --------------------------------------------------------------------------- */
.uk-step { border-radius: var(--radius-lg); background-color: var(--color-surface); border: 1px solid var(--color-line); }
body .uk-step__num { width: auto; flex: none; }
body .uk-step__num .elementor-heading-title {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  background-color: var(--color-charcoal); color: var(--color-white); font-family: var(--font-heading); font-weight: 800; line-height: 1;
}
body .uk-step__title .elementor-heading-title { font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text); }
body .uk-step__text .elementor-heading-title { font-size: var(--fs-sm); line-height: 1.5; color: var(--color-text-muted); }

/* 17. Info block (prescriptions) ------------------------------------------------------- */
.uk-info { border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-surface); }
.uk-info__icon { height: 52px; border-radius: 50%; background-color: var(--color-charcoal); color: var(--color-white); }
body .uk-info__title .elementor-heading-title { font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text); }
body .uk-info__text .elementor-heading-title { font-size: var(--fs-sm); color: var(--color-text-muted); }

/* 18. Newsletter forms (Elementor Pro Form) --------------------------------------------- */
body .uk-form .elementor-form-fields-wrapper { display: flex; flex-wrap: nowrap; gap: var(--space-2); margin: 0; }
body .uk-form .elementor-field-group { width: auto; max-width: none; margin: 0; padding: 0; }
body .uk-form .elementor-field-type-email { flex: 1 1 auto; min-width: 0; }
body .uk-form .elementor-field-type-submit { flex: none; }
body .uk-form .elementor-field-textual {
  min-height: var(--control-h); padding: 0 var(--space-5); border: 1.5px solid var(--color-line-input); border-radius: var(--radius-pill);
  background-color: var(--color-surface); color: var(--color-text); font-family: var(--font-body); font-size: var(--fs-body); box-shadow: none;
}
body .uk-form .elementor-field-textual:hover, body .uk-form .elementor-field-textual:focus { border-color: var(--color-ink); }
body .uk-form .elementor-field-textual::placeholder { color: var(--color-text-muted); opacity: 1; }
body .uk-form .elementor-button {
  min-height: var(--control-h); padding: 0 var(--space-5); border: 0; border-radius: var(--radius-pill);
  background-color: var(--color-accent-strong); color: var(--color-white); font-family: var(--font-body); font-size: .9375rem; font-weight: 600;
}
body .uk-form .elementor-button:hover { background-color: var(--color-accent-deep); color: var(--color-white); }
body .uk-form--stacked .elementor-form-fields-wrapper { flex-direction: column; }
body .uk-form--stacked .elementor-field-type-submit, body .uk-form--stacked .elementor-button { width: 100%; }
body .uk-form .elementor-message { font-size: var(--fs-sm); font-weight: 600; color: var(--color-green); margin-top: var(--space-2); }
.uk-legal, .uk-legal p { font-size: var(--fs-xs); color: var(--color-text-muted); }
.uk-on-dark .uk-legal, .uk-on-dark .uk-legal p { color: var(--color-on-dark-muted); }
body .uk-on-dark .uk-legal a { color: var(--color-on-dark); }

/* 19. Footer ------------------------------------------------------------------------- */
.uk-footer { background-color: var(--color-charcoal); color: var(--color-on-dark-muted); font-size: var(--fs-sm); line-height: var(--lh-body); }
.uk-footer__top { border-bottom: 1px solid var(--color-on-dark-line); }
body .uk-footer .uk-logo img { height: 44px; }
body .uk-footer__tagline .elementor-heading-title { color: var(--color-on-dark-muted); font-size: var(--fs-sm); line-height: var(--lh-body); }
body .uk-fcol-title .elementor-heading-title { font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; letter-spacing: var(--ls-heading); color: var(--color-on-dark); }
body .uk-flinks .elementor-icon-list-items { display: flex; flex-direction: column; margin: 0; padding: 0; }
body .uk-flinks .elementor-icon-list-item { padding: 0; margin: 0; }
body .uk-flinks .elementor-icon-list-item::after { display: none; }
body .uk-flinks .elementor-icon-list-item a { display: inline-flex; align-items: center; min-height: var(--tap); color: var(--color-on-dark-muted); text-decoration: none; }
body .uk-flinks .elementor-icon-list-item a:hover { color: var(--color-on-dark); text-decoration: underline; }
body .uk-flinks .elementor-icon-list-text { color: inherit; font-size: var(--fs-sm); }
body .uk-flinks .elementor-icon-list-icon { display: none; }
@media (min-width: 1025px) { body .uk-flinks .elementor-icon-list-item a { min-height: 36px; } }
.uk-fcontact { --uk-ico-size: 20px; }
body .uk-fcontact .elementor-heading-title { display: flex; align-items: center; gap: var(--space-3); color: var(--color-on-dark-muted); font-size: var(--fs-sm); line-height: 1.5; }
body .uk-fcontact .elementor-heading-title::before { color: var(--color-on-dark); }
body .uk-fcontact .elementor-heading-title:has(a) { color: var(--color-on-dark); font-weight: 600; }
body .uk-fcontact .elementor-heading-title a { display: inline-flex; align-items: center; min-height: var(--tap); overflow-wrap: anywhere; }
body .uk-fcontact .elementor-heading-title a:hover { text-decoration: underline; }
body .uk-fhours dl { display: grid; grid-template-columns: auto 1fr; gap: var(--space-1) var(--space-4); margin: 0; font-size: var(--fs-sm); }
body .uk-fhours dt { color: var(--color-on-dark); font-weight: 600; }
body .uk-fhours dd { margin: 0; color: var(--color-on-dark-muted); }
.uk-footer__bottom { background-color: var(--color-charcoal-deep); }
body .uk-chips ul { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
body .uk-chips li {
  display: inline-flex; align-items: center; min-height: 32px; padding: 0 var(--space-3);
  border: 1px solid var(--color-on-dark-line); border-radius: var(--radius-pill); background: var(--color-on-dark-tint);
  color: var(--color-on-dark); font-size: var(--fs-xs); font-weight: 600; white-space: nowrap;
}
body .uk-pay-label .elementor-heading-title { font-weight: 600; color: var(--color-on-dark); font-size: var(--fs-xs); }
body .uk-copy .elementor-heading-title { font-size: var(--fs-xs); color: var(--color-on-dark-muted); }
@media (max-width: 1024px) { body .uk-fcol--wide { grid-column: 1 / -1; } }

/* WhatsApp floating button */
body .uk-fab { position: fixed; right: var(--space-3); bottom: var(--space-3); z-index: 60; width: auto; }
body .uk-fab .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); width: 56px; height: 56px; min-height: 0; padding: 0;
  border-radius: var(--radius-pill); background-color: var(--color-green); color: var(--color-white); box-shadow: var(--shadow-md);
  font-family: var(--font-body); font-size: .9375rem; font-weight: 600; transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
body .uk-fab .elementor-button:hover { color: var(--color-white); box-shadow: var(--shadow-lg); transform: translateY(-2px); }
body .uk-fab .elementor-button-content-wrapper { align-items: center; gap: var(--space-2); }
body .uk-fab .elementor-button-content-wrapper::before { --uk-ico-size: 26px; }
body .uk-fab .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (min-width: 768px) {
body .uk-fab { right: var(--space-6); bottom: var(--space-6); }
body .uk-fab .elementor-button { width: auto; padding: 0 var(--space-5) 0 var(--space-4); }
body .uk-fab .elementor-button-text { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
}

/* 20. Newsletter slide-in (Elementor Pro Popup) ----------------------------------------- */
.uk-slidein-icon { height: 44px; border-radius: var(--radius-md); background-color: var(--color-accent-tint); color: var(--color-accent-strong); }
body .uk-slidein-title .elementor-heading-title { font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-snug); letter-spacing: var(--ls-heading); color: var(--color-text); }
body .uk-slidein-text .elementor-heading-title { font-size: var(--fs-sm); color: var(--color-text-muted); line-height: 1.5; }

/* 21. Responsive -------------------------------------------------------------------------- */
@media (min-width: 768px) {
body .uk-logo img { height: 40px; }
}
@media (min-width: 1025px) {
body .uk-headbar > .e-con-inner { grid-template-areas: "logo search actions"; gap: var(--space-8); padding-block: var(--space-4); }
body .uk-headbar .uk-logo img { height: 52px; }
body .uk-headbar .uk-search { max-width: 640px; justify-self: center; }
.uk-actions { gap: var(--space-2); }
body .uk-action .elementor-heading-title { font-size: .6875rem; }
body .uk-action .elementor-heading-title a { min-width: 60px; padding: var(--space-1) var(--space-2); }
body .uk-cart .elementor-menu-cart__toggle .elementor-button { min-width: 60px; padding: var(--space-1) var(--space-2); font-size: .6875rem; }
body .uk-cart .elementor-menu-cart__toggle .elementor-button::after { position: static; width: auto; height: auto; clip: auto; overflow: visible; font-size: .6875rem; }
body .uk-cart .elementor-menu-cart__toggle .elementor-button-icon-qty[data-counter] { right: 6px; inset-inline-end: 6px; }
}

/* Carousel arrows: Elementor positions them with 4-class .elementor-kit-6s, so these carry one more class */
body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button { top: auto; bottom: 0; transform: none; }
body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button-next { right: 0; left: auto; }
body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button-prev { right: calc(var(--tap) + var(--space-2)); left: auto; }
@media (min-width: 1025px) {
  body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button { bottom: calc(var(--space-6) + var(--e-n-carousel-swiper-padding-bottom, 0px)); }
  body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button-next { right: var(--space-6); }
  body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button-prev { right: calc(var(--space-6) + var(--tap) + var(--space-2)); }
}
body .uk-carousel--headnav.elementor-widget-loop-carousel.elementor-element .swiper ~ .elementor-swiper-button { top: calc(-1 * (var(--tap) + var(--space-7))); bottom: auto; transform: none; }
body .uk-carousel--headnav.elementor-widget-loop-carousel.elementor-element .swiper ~ .elementor-swiper-button-next { right: 0; left: auto; }
body .uk-carousel--headnav.elementor-widget-loop-carousel.elementor-element .swiper ~ .elementor-swiper-button-prev { right: calc(var(--tap) + var(--space-2)); left: auto; }

/* 22. Overrides that must out-rank Elementor widget stylesheets ------------------------------ */

/* Icons drawn in containers: Elementor reserves .e-con::before for background overlays
   (absolutely positioned), so the icon pseudo-element is put back into the flex flow. */
body .uk-icobox::before {
  position: static; inset: auto; top: auto; left: auto; border: 0; border-radius: 0;
  opacity: 1; mix-blend-mode: normal; transition: none;
  width: var(--uk-ico-size, var(--icon-md)); height: var(--uk-ico-size, var(--icon-md));
}
body .uk-cat__icon, body .uk-usp__icon, body .uk-svc__icon, body .uk-info__icon, body .uk-slidein-icon { flex: none; }

/* WhatsApp floating button icon */
body .uk-fab .elementor-button-content-wrapper::before {
  content: ""; flex: none; display: block; width: 26px; height: 26px; background-color: currentColor;
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}

/* Category tiles and steps keep icon and text on one row where the layout is a row */
body .uk-cat, body .uk-step, body .uk-usp { flex-wrap: nowrap; }
body .uk-cat__body, body .uk-step__body, body .uk-usp__body { min-width: 0; }

/* Logos align to the start of their column */
body .uk-logo, body .uk-logo a { text-align: start; }
body .uk-logo img { margin-inline: 0; }
/* block-level logo image: no inline baseline gap under it (it stretched the whole head bar by 8px) */
body .uk-logo a, body .uk-logo img { display: block; }

/* Product card title: two-line clamp (product title widget renders the heading inline by default) */
body .uk-card__title.elementor-widget-woocommerce-product-title .elementor-heading-title {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
body .uk-pmini__title.elementor-widget-woocommerce-product-title .elementor-heading-title {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* Header search: beat .elementor-widget-search .e-search .e-search-submit */
body .uk-search.elementor-widget-search .e-search .e-search-input {
  border-radius: var(--radius-pill); border: 1.5px solid transparent; background: var(--color-surface); color: var(--color-text);
  min-height: var(--control-h); height: var(--control-h); padding: 0 calc(var(--control-h) + var(--space-2)) 0 var(--space-5);
  font-family: var(--font-body); font-size: var(--fs-body);
}
body .uk-search.elementor-widget-search .e-search .e-search-submit {
  position: absolute; top: 2px; right: 2px; left: auto; inset-inline-end: 2px; inset-inline-start: auto;
  display: grid; place-items: center; width: 44px; min-width: 0; height: 44px; min-height: 0; padding: 0; margin: 0;
  border: 0; border-radius: 50%; background-color: var(--color-accent-strong); color: var(--color-white); font-size: 0;
}
body .uk-search.elementor-widget-search .e-search .e-search-submit:hover { background-color: var(--color-accent-deep); }

/* Mega menus sit side by side at their natural width */
body .uk-nav > .elementor-widget { width: auto; flex: none; max-width: none; }
body .uk-nav .e-n-menu, body .uk-nav .e-n-menu-wrapper { width: auto; }

/* Carousel arrows (loop carousel): beat Elementor's widget .elementor-kit-6s */
body .uk-carousel.elementor-widget-loop-carousel.elementor-element .elementor-swiper-button {
  width: var(--tap); height: var(--tap); border: 1.5px solid var(--color-accent-strong); border-radius: 50%;
  background: var(--color-surface); color: var(--color-accent-strong); display: grid; place-items: center; opacity: 1;
}
body .uk-carousel.elementor-widget-loop-carousel.elementor-element .elementor-swiper-button svg { width: 18px; height: 18px; fill: currentColor; }
body .uk-carousel.elementor-widget-loop-carousel.elementor-element .elementor-swiper-button:hover { background: var(--color-accent-strong); color: var(--color-white); }
body .uk-carousel.elementor-widget-loop-carousel.elementor-element .elementor-swiper-button:hover svg { fill: currentColor; }
body .uk-carousel.elementor-widget-loop-carousel.elementor-element .elementor-swiper-button.swiper-button-disabled { border-color: var(--color-line); color: var(--color-line-strong); background: var(--color-surface); }

/* Hero carousel controls */
body .uk-hero.elementor-widget-n-carousel { position: relative; }
body .uk-hero.elementor-widget-n-carousel.elementor-element .elementor-swiper-button {
  width: var(--tap); height: var(--tap); border: 1.5px solid var(--color-line-strong); border-radius: 50%;
  background: var(--color-surface); color: var(--color-ink); display: grid; place-items: center; opacity: 1;
}
body .uk-hero.elementor-widget-n-carousel.elementor-element .elementor-swiper-button svg { width: 18px; height: 18px; fill: currentColor; }
body .uk-hero.elementor-widget-n-carousel.elementor-element .elementor-swiper-button:hover { background: var(--color-charcoal); border-color: var(--color-charcoal); color: var(--color-white); }
body .uk-hero__panel { padding: var(--space-5); }
/* Elementor centres the dots with translate(-50%, -100%) and pins them 5px from the bottom with a four-class
   .elementor-kit-6; the design anchors them to a corner */
body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .swiper-pagination { transform: none; }
@media (max-width: 1024px) {
  body .uk-hero.elementor-widget-n-carousel { padding-bottom: calc(var(--tap) + var(--space-3)); }
  body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .swiper-pagination { position: absolute; left: 0; right: auto; bottom: 0; top: auto; width: auto; margin: 0; }
  body .uk-hero.elementor-widget-n-carousel .swiper-pagination-bullet { margin: 17px 8px !important; }
}
@media (min-width: 768px) { body .uk-hero__panel { padding: var(--space-6); } }
@media (min-width: 1025px) {
  body .uk-hero__panel { padding: var(--space-7); }
  /* The dots element is the white pill of the design; its right padding holds the prev/next buttons */
  body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .swiper-pagination {
    left: auto; top: auto; right: calc(var(--space-6) - var(--space-2)); bottom: calc(var(--space-6) - var(--space-1));
    display: flex; align-items: center; width: auto; height: calc(var(--tap) + var(--space-2));
    padding: 0 calc(2 * var(--tap) + 2 * var(--space-2) + var(--space-1)) 0 var(--space-1);
    border-radius: var(--radius-pill); background: var(--color-surface); box-shadow: var(--shadow-sm);
  }
  body .uk-hero.elementor-widget-n-carousel.elementor-element .swiper ~ .elementor-swiper-button { bottom: var(--space-6); border-color: transparent; box-shadow: none; z-index: 4; }
}

/* Mega menu: Elementor colours and sizes titles through its own variables, so set those */
body .uk-mega {
  --n-menu-title-color-normal: var(--color-text); --n-menu-title-color-hover: var(--color-accent-strong);
  --n-menu-title-color-active: var(--color-accent-strong); --n-menu-dropdown-indicator-size: 12px;
}

/* Measure limits: Elementor caps widgets at max-width:100% with a four-class .elementor-kit-6 */
body .elementor.elementor .e-con > .elementor-widget.uk-maxch, body .e-con.e-con > .e-con-inner > .elementor-widget.uk-maxch { max-width: 62ch; }
body .e-con.uk-footer__brand { max-width: 46ch; }

/* Product badges: Elementor forces links in headings to inherit size and colour (four-part .elementor-kit-6) */
body .uk-card__badge.elementor-widget-heading .elementor-heading-title[class*="elementor-size-"] > a {
  font-size: var(--fs-overline); line-height: var(--lh-snug); color: var(--color-accent-strong);
}
body .uk-card__badge.elementor-widget-heading .elementor-heading-title[class*="elementor-size-"] > a[href*="/product-tag/new"] { color: var(--color-white); }

/* Cart counter: beat the menu cart's five-class bubble rule */
body .uk-cart.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon .elementor-button-icon-qty[data-counter] {
  top: 2px; inset-inline-end: 0; min-width: 20px; height: 20px; padding: 0 var(--space-1);
  border: 2px solid var(--color-charcoal); border-radius: var(--radius-pill); background-color: var(--color-accent-strong); color: var(--color-white);
  font-family: var(--font-body); font-size: .6875rem; font-weight: 700; line-height: 16px; text-align: center;
}
@media (min-width: 1025px) {
  body .uk-cart.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon .elementor-button-icon-qty[data-counter] { inset-inline-end: 6px; }
}

/* Newsletter fields are pills; the Kit's form-field style (12px radius) targets inputs with :not() .elementor-kit-6s */
body .uk-form.elementor-widget-form .elementor-field-group .elementor-field-textual { border-radius: var(--radius-pill); border-color: var(--color-line-input); }
body .uk-form.elementor-widget-form .elementor-field-group .elementor-field-textual:hover,
body .uk-form.elementor-widget-form .elementor-field-group .elementor-field-textual:focus { border-color: var(--color-ink); }
/* Newsletter success and error messages: Elementor draws their icon with the eicons font, which the front end does not
   load (a missing-glyph box before the text) */
body .uk-form .elementor-message::before { display: none; }

/* Arrow links: the link itself is the 44px tap area, as in the design (.link-arrow min-height: var(--tap)). The heading
   around it is already 44px tall and centres it, so nothing moves */
body .uk-link-arrow .elementor-heading-title a { min-height: var(--tap); }

/* Drawer: head and foot stay in view, only the menu list scrolls (as in the design) */
body .uk-offcanvas .e-off-canvas__content { overflow: hidden; }
/* Elementor wraps containers on mobile: with a fixed height the list would spill into extra columns */
body .e-con.uk-oc { height: 100%; flex-wrap: nowrap; }
body .e-con.uk-oc-body { flex-wrap: nowrap; }

/* Drawer accordions: Elementor colours titles and icons through its own variables */
body .uk-mnav-acc {
  --n-accordion-title-normal-color: var(--color-text); --n-accordion-title-hover-color: var(--color-accent-strong);
  --n-accordion-title-active-color: var(--color-text); --n-accordion-icon-normal-color: var(--color-text);
  --n-accordion-icon-hover-color: var(--color-accent-strong); --n-accordion-icon-active-color: var(--color-text);
}

/* Live search results and the side cart sit inside the dark head bar: give them body text colour */
body .uk-search .e-search-results, body .uk-cart .elementor-menu-cart__main { color: var(--color-text); }
body .uk-pmini__title .elementor-heading-title { color: var(--color-text); }
/* "Hide title" on a page hides every .elementor-page-title; Elementor Pro undoes that inside loop widgets only, not in live search results */
body .elementor-widget-search .e-search-results .elementor-page-title { display: block; }

/* Product cards: the side cart opens on add, so hide WooCommerce's injected "View cart" link */
body .e-loop-item .uk-card__add.elementor-widget-woocommerce-product-add-to-cart .elementor-add-to-cart .e-loop-add-to-cart-form-container a.added_to_cart { display: none; }

/* Side cart (Elementor Pro Menu Cart) in the design system's drawer, row and button styles */
body .uk-cart {
  --cart-background-color: var(--color-surface); --cart-close-button-color: var(--color-text); --cart-close-button-hover-color: var(--color-accent-strong);
  --remove-item-button-color: var(--color-text-muted); --remove-item-button-hover-color: var(--color-danger);
  --product-price-color: var(--color-text-muted); --divider-color: var(--color-line); --subtotal-divider-color: var(--color-line);
  --menu-cart-subtotal-color: var(--color-text); --cart-footer-buttons-border-radius: var(--radius-pill); --space-between-buttons: var(--space-2);
  --view-cart-button-background-color: var(--color-surface); --view-cart-button-text-color: var(--color-text);
  --view-cart-button-hover-background-color: var(--color-charcoal); --view-cart-button-hover-text-color: var(--color-white);
  --checkout-button-background-color: var(--color-accent-strong); --checkout-button-text-color: var(--color-white);
  --checkout-button-hover-background-color: var(--color-accent-deep); --checkout-button-hover-text-color: var(--color-white);
  --view-cart-button-padding: 0 var(--space-4); --checkout-button-padding: 0 var(--space-4);
}
body .uk-cart .elementor-menu-cart__container { background-color: var(--color-overlay); }
body .uk-cart .elementor-menu-cart__main { width: min(88vw, 400px); font-family: var(--font-body); box-shadow: var(--shadow-lg); }
body .uk-cart .elementor-menu-cart__product-name a { color: var(--color-text); font-weight: 600; line-height: var(--lh-snug); }
body .uk-cart .elementor-menu-cart__product-name a:hover { color: var(--color-accent-strong); }
body .uk-cart .elementor-menu-cart__product-image img { border-radius: var(--radius-sm); background-color: var(--color-mist); }
body .uk-cart .elementor-menu-cart__subtotal { font-family: var(--font-heading); font-size: 1.125rem; }
body .uk-cart .elementor-menu-cart__footer-buttons .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; min-height: var(--control-h);
  border: 1.5px solid var(--color-ink); font-family: var(--font-body); font-size: .9375rem; font-weight: 600; line-height: 1.2;
}
body .uk-cart .elementor-menu-cart__footer-buttons .elementor-button--checkout { border-color: var(--color-accent-strong); }
body .uk-cart .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover { border-color: var(--color-accent-deep); }

/* Loop grids: Elementor's 1fr columns grow to fit long unbreakable text; equal columns as in the design (minmax(0, 1fr)) */
body .uk-loop .elementor-loop-container > .e-loop-item { min-width: 0; }

/* Wishlist heart images */
body{--uk-heart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F1D1A' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath fill='none' d='M12 20s-7-4.4-9.2-9A5 5 0 0 1 12 6a5 5 0 0 1 9.2 5c-2.2 4.6-9.2 9-9.2 9z'/%3E%3C/svg%3E");--uk-heart-filled:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A7373' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath fill='%230A7373' d='M12 20s-7-4.4-9.2-9A5 5 0 0 1 12 6a5 5 0 0 1 9.2 5c-2.2 4.6-9.2 9-9.2 9z'/%3E%3C/svg%3E")}

/* Icon library (from the Claude Design symbol set) */
.uk-i-advice{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12a8 8 0 0 1-11.6 7.1L4 20l1-4A8 8 0 1 1 20 12z'/%3E%3Cpath d='M12 9v6M9 12h6'/%3E%3C/svg%3E")}
.uk-i-arrow-right{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E")}
.uk-i-bag{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6L5 8z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E")}
.uk-i-bag-plus{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6L5 8z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3Cpath d='M12 11.5v5M9.5 14h5'/%3E%3C/svg%3E")}
.uk-i-bottle{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 9h6v10a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2V9z'/%3E%3Cpath d='M10 9V6.5h4V9'/%3E%3Cpath d='M12 6.5V3'/%3E%3Cpath d='M9 13h3M9 16h3'/%3E%3C/svg%3E")}
.uk-i-calendar{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E")}
.uk-i-calendar-heart{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3Cpath d='M12 18s-3-1.8-3-3.7a1.5 1.5 0 0 1 3-.6 1.5 1.5 0 0 1 3 .6c0 1.9-3 3.7-3 3.7z'/%3E%3C/svg%3E")}
.uk-i-capsule{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.5 20.5a4.95 4.95 0 0 1-7-7l6-6a4.95 4.95 0 0 1 7 7z'/%3E%3Cpath d='m8.5 8.5 7 7'/%3E%3C/svg%3E")}
.uk-i-card{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 10h18M7 15h4'/%3E%3C/svg%3E")}
.uk-i-chat{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 20.5 5 16a8.5 8.5 0 1 1 3 3l-4.5 1.5z'/%3E%3Cpath d='M9.2 8.6c-.4.9-.2 2.4 1.3 4s3.1 2 4 1.6l.8-1.2-1.8-1.1-.9.6c-.7-.3-1.3-.9-1.7-1.7l.6-.9-1-1.8-1.3.5z'/%3E%3C/svg%3E")}
.uk-i-check{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E")}
.uk-i-check-circle{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 3 3 5-6'/%3E%3C/svg%3E")}
.uk-i-chevron-down{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.uk-i-chevron-left{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 6-6 6 6 6'/%3E%3C/svg%3E")}
.uk-i-chevron-right{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E")}
.uk-i-clipboard{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V3h6v1'/%3E%3Cpath d='M12 10v6M9 13h6'/%3E%3C/svg%3E")}
.uk-i-clock{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}
.uk-i-close{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E")}
.uk-i-comb{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='4' rx='1'/%3E%3Cpath d='M5.5 11v6M8.5 11v6M11.5 11v6M14.5 11v6M17.5 11v6'/%3E%3C/svg%3E")}
.uk-i-droplet{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3s6 6.5 6 11a6 6 0 0 1-12 0c0-4.5 6-11 6-11z'/%3E%3Cpath d='M9.5 14.5A2.5 2.5 0 0 0 12 17'/%3E%3C/svg%3E")}
.uk-i-external{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6'/%3E%3Cpath d='M20 4 11 13'/%3E%3Cpath d='M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E")}
.uk-i-filter{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1'/%3E%3Ccircle cx='15' cy='6' r='2'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E")}
.uk-i-first-aid{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M9 7V5h6v2'/%3E%3Cpath d='M12 10.5v6M9 13.5h6'/%3E%3C/svg%3E")}
.uk-i-flower{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M12 9.5C10 7 10 4 12 3c2 1 2 4 0 6.5zM14.5 12c2.5-2 5.5-2 6.5 0-1 2-4 2-6.5 0zM12 14.5c2 2.5 2 5.5 0 6.5-2-1-2-4 0-6.5zM9.5 12C7 14 4 14 3 12c1-2 4-2 6.5 0z'/%3E%3C/svg%3E")}
.uk-i-glass{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 4h12l-1.5 16h-9L6 4z'/%3E%3Cpath d='M6.5 9h11'/%3E%3Ccircle cx='11' cy='13' r='1'/%3E%3Ccircle cx='13.5' cy='16.5' r='1'/%3E%3C/svg%3E")}
.uk-i-heart{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-9.2-9A5 5 0 0 1 12 6a5 5 0 0 1 9.2 5c-2.2 4.6-9.2 9-9.2 9z'/%3E%3C/svg%3E")}
.uk-i-heart-pulse{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-9.2-9A5 5 0 0 1 12 6a5 5 0 0 1 9.2 5c-2.2 4.6-9.2 9-9.2 9z'/%3E%3Cpath d='M3.5 12H8l1.5-3 3 6 1.5-3h6.5'/%3E%3C/svg%3E")}
.uk-i-image{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='m21 17-5-5-9 8'/%3E%3C/svg%3E")}
.uk-i-info{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E")}
.uk-i-lotion{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 10h8v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10z'/%3E%3Cpath d='M10 10V7h4v3'/%3E%3Cpath d='M12 7V4h4'/%3E%3Cpath d='M11 15h2'/%3E%3C/svg%3E")}
.uk-i-mail{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E")}
.uk-i-map-pin{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E")}
.uk-i-menu{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E")}
.uk-i-minus{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E")}
.uk-i-pause{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6v12M15 6v12'/%3E%3C/svg%3E")}
.uk-i-phone{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E")}
.uk-i-play{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 5.5v13l10.5-6.5L8 5.5z'/%3E%3C/svg%3E")}
.uk-i-plus{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")}
.uk-i-scooter{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='17.5' r='2.5'/%3E%3Ccircle cx='18' cy='17.5' r='2.5'/%3E%3Cpath d='M18 17.5 15.5 7H13'/%3E%3Cpath d='M8.5 17.5H16'/%3E%3Cpath d='M3 9.5h7v5H3z'/%3E%3C/svg%3E")}
.uk-i-search{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")}
.uk-i-shield{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v5c0 4.5 3 8.3 7 10 4-1.7 7-5.5 7-10V6l-7-3z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E")}
.uk-i-store{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9 5.5 4h13L20 9'/%3E%3Cpath d='M4 9h16v1.5a2.7 2.7 0 0 1-5.3 0 2.7 2.7 0 0 1-5.4 0A2.7 2.7 0 0 1 4 10.5V9z'/%3E%3Cpath d='M5 13v7h14v-7'/%3E%3Cpath d='M10 20v-4h4v4'/%3E%3C/svg%3E")}
.uk-i-syringe{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 2 4 4'/%3E%3Cpath d='m17 7 3-3'/%3E%3Cpath d='M19 9 8.5 19.5a2.1 2.1 0 0 1-3 0l-1-1a2.1 2.1 0 0 1 0-3L15 5'/%3E%3Cpath d='m9 11 4 4'/%3E%3Cpath d='m5 19-3 3'/%3E%3Cpath d='m14 4 6 6'/%3E%3C/svg%3E")}
.uk-i-tag{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12V4a1 1 0 0 1 1-1h8l9 9-9 9-9-9z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E")}
.uk-i-thermometer{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 14.5V5a2 2 0 0 0-4 0v9.5a4 4 0 1 0 4 0z'/%3E%3Cpath d='M12 9v7'/%3E%3C/svg%3E")}
.uk-i-tooth{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5.5C10.5 4 8.5 3.5 7 4 4.5 5 4 8 5 11c.8 2.3 1 4.5 1.5 7 .3 1.8 1 3 2 3s1.3-1.5 1.7-3.5c.3-1.5.8-2.5 1.8-2.5s1.5 1 1.8 2.5c.4 2 .7 3.5 1.7 3.5s1.7-1.2 2-3c.5-2.5.7-4.7 1.5-7 1-3 .5-6-2-7-1.5-.5-3.5 0-5 1.5z'/%3E%3C/svg%3E")}
.uk-i-user{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E")}
.uk-i-wind{--uk-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10a3 3 0 1 0-3-3'/%3E%3Cpath d='M3 12h15a3 3 0 1 1-3 3'/%3E%3Cpath d='M3 16h6'/%3E%3C/svg%3E")}

/* ---- css/_pages-common.css ---- */
/* Inner pages: shared page header and breadcrumb (uk_pages_common.py). Tokens only, no hard-coded colours. */
.uk-pagehead { background-color: var(--color-sand); border-bottom: 1px solid var(--color-line); }
body .uk-pagehead__title .elementor-heading-title { font-size: var(--fs-h1); font-weight: 800; line-height: var(--lh-tight); }
body .uk-pagehead__lead p { font-size: var(--fs-body-lg); color: var(--color-text-muted); }
body .uk-pagehead__note p { font-size: var(--fs-xs); color: var(--color-text-muted); }

/* Breadcrumb (design system: .breadcrumb) */
body .uk-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); }
body .uk-breadcrumb li { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--color-text-muted); }
body .uk-breadcrumb li + li::before { content: "/"; color: var(--color-line-strong); }
body .uk-breadcrumb a { display: inline-flex; align-items: center; min-height: var(--tap); color: var(--color-text-muted); text-decoration: none; }
body .uk-breadcrumb a:hover { color: var(--color-accent-strong); text-decoration: underline; }
body .uk-breadcrumb [aria-current="page"] { color: var(--color-text); font-weight: 600; }


/* ---- css/info.css ---- */
/* Info pages (build/pages/info.py): Delivery information, FAQ, Shipping Policy, POPIA and PAIA, Wishlist.
   Shipping Policy and POPIA and PAIA use the legal layout (legal.css); this file only adds what they lack.
   Every top-level section of these five pages carries .uk-ipg. Tokens only, no hard-coded colours. */

/* ---------- Shared ---------- */
/* 44px tap areas for links in facts and notes, without changing the text rhythm */
body .uk-ipg .uk-fact .elementor-heading-title a {
  display: inline-flex; align-items: center; min-height: var(--tap); margin-block: calc((var(--tap) - 1.6em) / -2); overflow-wrap: anywhere;
}
body .uk-ipg .uk-link-arrow .elementor-heading-title a { min-height: var(--tap); }
body .uk-ipg .uk-note a { display: inline-block; padding-block: calc((var(--tap) - 1.6em) / 2); margin-block: calc((var(--tap) - 1.6em) / -2); }

/* Label and value rows on light backgrounds: trading hours, delivery days and times */
body .uk-ihours__title .elementor-heading-title {
  color: var(--color-text); font-family: var(--font-heading); font-size: var(--fs-body-lg); font-weight: 700;
  line-height: var(--lh-heading); letter-spacing: var(--ls-heading);
}
body .uk-ihours dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--space-2) var(--space-5); margin: 0; font-size: var(--fs-sm); line-height: var(--lh-snug); }
body .uk-ihours dt { font-weight: 600; color: var(--color-text); }
body .uk-ihours dd { margin: 0; color: var(--color-text-muted); }

/* Content cards that are not links (no hover lift) */
body .uk-icard { border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-surface); }
body .uk-icard__title .elementor-heading-title {
  color: var(--color-text); font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700;
  line-height: var(--lh-heading); letter-spacing: var(--ls-heading);
}
body .uk-icard__text { color: var(--color-text-muted); font-size: var(--fs-sm); }
body .uk-icard__links { margin-top: calc(var(--space-2) * -1); }

/* ---------- Delivery: fee table (also inside the Shipping Policy prose) ---------- */
/* Two classes on every cell rule: the theme's zebra and hover rules (table tbody>tr:nth-child(odd)>td) out-rank one */
body .uk-fees { border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-surface); overflow: hidden; }
body .uk-fees table.uk-feetable { width: 100%; margin: 0; border: 0; border-collapse: collapse; background-color: transparent; font-size: var(--fs-sm); }
body .uk-fees table.uk-feetable :is(th, td) {
  padding: var(--space-3) var(--space-5); border: 0; border-top: 1px solid var(--color-line); background-color: transparent;
  color: var(--color-text); text-align: left; vertical-align: middle; line-height: var(--lh-snug);
}
body .uk-fees table.uk-feetable thead th {
  border-top: 0; background-color: var(--color-sand); color: var(--color-text-muted);
  font-size: var(--fs-overline); font-weight: 700; letter-spacing: var(--ls-overline); text-transform: uppercase;
}
body .uk-fees table.uk-feetable tbody th { font-weight: 400; }
body .uk-fees table.uk-feetable thead th:last-child, body .uk-fees table.uk-feetable .uk-feetable__fee { text-align: right; }
body .uk-fees .uk-feetable__zone { display: block; color: var(--color-text); font-family: var(--font-heading); font-size: var(--fs-body); font-weight: 700; }
body .uk-fees .uk-feetable__areas { display: block; margin-top: var(--space-1); color: var(--color-text-muted); font-size: var(--fs-xs); }
body .uk-fees table.uk-feetable .uk-feetable__fee { font-family: var(--font-heading); font-size: var(--fs-body-lg); font-weight: 800; white-space: nowrap; }
body .uk-legal-prose .uk-fees { margin: 0 0 var(--space-4); }
body .uk-legal-prose .uk-fees:last-child { margin-bottom: 0; }

/* Delivery page columns keep their measure */
body .e-con.uk-dlv-intro, body .e-con.uk-dlv-cards { min-width: 0; }
body .e-con.uk-dlv-intro { max-width: 62ch; }

/* ---------- FAQ ---------- */
/* Topic links in the page header: the design system's chips, as 44px links */
body .uk-faq-topics ul { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
body .uk-faq-topics a {
  display: inline-flex; align-items: center; min-height: var(--tap); padding: 0 var(--space-4);
  border: 1px solid var(--color-line-strong); border-radius: var(--radius-pill); background-color: var(--color-surface);
  color: var(--color-text); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); text-decoration: none;
  transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body .uk-faq-topics a:hover { border-color: var(--color-charcoal); color: var(--color-accent-strong); }

/* Groups: the topic intro beside its questions on desktop (sticky), stacked below; a rule between groups */
body .e-con.uk-faq-group { scroll-margin-top: var(--space-4); }
body .e-con.uk-faq-group > .e-con, body .e-con.uk-faq-group > .elementor-widget { min-width: 0; }
body .uk-faq-group--rule { border-top: 1px solid var(--color-line); }
@media (min-width: 1025px) { body .e-con.uk-faq-group__intro { position: sticky; top: var(--space-6); } }

/* Accordion (Elementor Nested Accordion) as the design system's .accordion: separate bordered items, 56px triggers,
   a 32px sand chevron circle that turns and tints when open. Elementor colours titles through its own variables.
   The widget's own CSS sets the item spacing variable to 0 with a three-class .elementor-kit-6, so the margin is set directly. */
body .uk-faq-acc {
  --n-accordion-border-width: 0px;
  --n-accordion-title-normal-color: var(--color-text); --n-accordion-title-hover-color: var(--color-accent-strong);
  --n-accordion-title-active-color: var(--color-text);
}
body .uk-faq-acc .e-n-accordion-item { border: 1px solid var(--color-line); border-radius: var(--radius-md); background-color: var(--color-surface); }
body .uk-faq-acc .e-n-accordion-item:not(:last-child) { margin-block-end: var(--space-3); }
body .uk-faq-acc .e-n-accordion-item-title {
  justify-content: space-between; gap: var(--space-4); min-height: 56px; padding: var(--space-3) var(--space-5);
  border: 0; border-radius: var(--radius-md);
}
body .uk-faq-acc .e-n-accordion-item-title:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
body .uk-faq-acc .e-n-accordion-item-title-header { flex: 1 1 auto; min-width: 0; }
body .uk-faq-acc .e-n-accordion-item-title-text {
  margin: 0; color: inherit; font-family: var(--font-heading); font-size: var(--fs-body-lg); font-weight: 700;
  line-height: var(--lh-snug); letter-spacing: 0;
}
body .uk-faq-acc .e-n-accordion-item-title-icon {
  order: 2; display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%;
  background-color: var(--color-sand); color: inherit;
  transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
/* Elementor's two SVG slots stay in the markup but out of layout; the design's line chevron is the mask below.
   (Elementor shows and hides the slots with six-part .elementor-kit-6s, so the SVGs are hidden rather than the slots.) */
body .uk-faq-acc .e-n-accordion-item-title-icon > span { position: absolute; width: 0; height: 0; overflow: hidden; }
body .uk-faq-acc .e-n-accordion-item-title-icon svg { display: none; }
body .uk-faq-acc .e-n-accordion-item-title-icon::before {
  content: ""; width: var(--icon-sm); height: var(--icon-sm); background-color: currentColor;
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-faq-acc .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon {
  transform: rotate(180deg); background-color: var(--color-accent-tint); color: var(--color-accent-strong);
}
body .uk-faq-acc .e-n-accordion-item > .e-con { border: 0; }

/* Answers */
body .uk-faq-a { color: var(--color-text-muted); }
body .uk-faq-a :is(p, li) { font-size: var(--fs-body); line-height: var(--lh-body); }
body .uk-faq-a :is(p, ul) + :is(p, ul) { margin-top: var(--space-3); }
body .uk-faq-a ul { padding-left: var(--space-5); }
body .uk-faq-a li + li { margin-top: var(--space-1); }
body .uk-faq-a li::marker { color: var(--color-accent-strong); }
body .uk-faq-a strong { color: var(--color-text); font-weight: 600; }
body .uk-faq-a a { font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; overflow-wrap: anywhere; }

/* ---------- Wishlist (YITH WooCommerce Wishlist shortcode) ---------- */
/* YITH colours its table cells and add-to-cart button through these variables, with .elementor-kit-6s of up to six parts
   (and prints its own values on :root once its options are saved): set them here, where they win by inheritance */
body .uk-wishlist {
  --color-wishlist-table-background: transparent; --color-wishlist-table-text: var(--color-text);
  --color-wishlist-table-border: var(--color-line); --color-headers-background: var(--color-sand);
  --color-add-to-cart-background: var(--color-accent-strong); --color-add-to-cart-text: var(--color-white);
  --color-add-to-cart-border: var(--color-accent-strong); --color-add-to-cart-background-hover: var(--color-accent-deep);
  --color-add-to-cart-text-hover: var(--color-white); --color-add-to-cart-border-hover: var(--color-accent-deep);
  --add-to-cart-rounded-corners-radius: var(--radius-pill);
}
/* The page H1 names the list, so YITH's own "My wishlist" title is not repeated */
body .uk-wishlist .wishlist-title-container { display: none; }
body .uk-wishlist .yith-wcwl-form { margin: 0; }

/* Table layout (desktop and tablet; also phones on a desktop browser) */
body .uk-wishlist table.wishlist_table {
  width: 100%; margin: 0; border: 1px solid var(--color-line); border-radius: var(--radius-lg);
  border-collapse: separate; border-spacing: 0; background-color: var(--color-surface); font-size: var(--fs-sm); overflow: hidden;
}
body .uk-wishlist table.wishlist_table :is(th, td) {
  padding: var(--space-4); border: 0; border-top: 1px solid var(--color-line); background-color: transparent;
  color: var(--color-text); text-align: left; vertical-align: middle; line-height: var(--lh-snug);
}
body .uk-wishlist table.wishlist_table thead th {
  padding-block: var(--space-3); border-top: 0; background-color: var(--color-sand); color: var(--color-text-muted);
  font-size: var(--fs-overline); font-weight: 700; letter-spacing: var(--ls-overline); text-transform: uppercase;
}
body .uk-wishlist table.wishlist_table .product-remove { width: 56px; padding-inline: var(--space-3) 0; }
/* WooCommerce hides .product-thumbnail in any table.cart up to 768px (YITH's table carries that class) */
body .uk-wishlist table.wishlist_table :is(th, td).product-thumbnail { display: table-cell; width: calc(88px + 2 * var(--space-4)); }
body .uk-wishlist table.wishlist_table td.product-thumbnail a { display: block; max-width: none; border: 0; }
body .uk-wishlist table.wishlist_table td.product-thumbnail img {
  display: block; width: 88px; height: auto; aspect-ratio: var(--product-image-ratio); object-fit: cover;
  border-radius: var(--radius-sm); background-color: var(--color-mist);
}
body .uk-wishlist table.wishlist_table td.product-name a { color: var(--color-text); font-size: var(--fs-body); font-weight: 600; text-decoration: none; }
body .uk-wishlist table.wishlist_table td.product-name a:hover { color: var(--color-accent-strong); text-decoration: underline; }
body .uk-wishlist .wishlist_table td.product-price { font-family: var(--font-heading); font-size: var(--fs-body-lg); font-weight: 800; white-space: nowrap; }
body .uk-wishlist .wishlist_table td.product-price del { font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 500; color: var(--color-text-muted); }
body .uk-wishlist .wishlist_table td.product-price ins { text-decoration: none; color: var(--color-accent-strong); }
body .uk-wishlist .wishlist_table .product-add-to-cart { text-align: right; }

/* Stock (design system .stock): a dot and a short label */
body .uk-wishlist .wishlist_table :is(.wishlist-in-stock, .wishlist-out-of-stock) {
  display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--fs-xs); font-weight: 600; white-space: nowrap;
}
body .uk-wishlist .wishlist_table :is(.wishlist-in-stock, .wishlist-out-of-stock)::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background-color: currentColor; }
body .uk-wishlist .wishlist_table .wishlist-in-stock { color: var(--color-green); }
body .uk-wishlist .wishlist_table .wishlist-out-of-stock { color: var(--color-text-muted); }

/* Remove: a round 40px icon button (YITH prints a multiplication sign) */
body .uk-wishlist .wishlist_table a.remove_from_wishlist:not(.button) {
  display: grid; place-items: center; width: 40px; height: 40px; margin: 0; padding: 0; border: 1px solid var(--color-line);
  border-radius: 50%; background-color: var(--color-surface); color: var(--color-text-muted) !important;
  font-family: var(--font-body); font-size: var(--fs-h4); font-weight: 400; line-height: 1; text-decoration: none;
  transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body .uk-wishlist .wishlist_table a.remove_from_wishlist:not(.button):hover { border-color: var(--color-danger); background-color: var(--color-surface); color: var(--color-danger) !important; }

/* Add to cart (and YITH's optional Remove button): the design system's buttons.
   YITH sets display, margin and padding on these links with !important, so these rules must too. */
body .uk-wishlist .wishlist_table a.button {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: var(--tap);
  margin: 0 !important; padding: 0 var(--space-5) !important; border: 2px solid var(--color-accent-strong); border-radius: var(--radius-pill);
  background-color: var(--color-accent-strong); color: var(--color-white); font-family: var(--font-body); font-size: var(--fs-sm);
  font-weight: 600; line-height: 1.2; text-decoration: none; white-space: nowrap; box-shadow: none;
  transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body .uk-wishlist .wishlist_table a.button:hover { border-color: var(--color-accent-deep); background-color: var(--color-accent-deep); color: var(--color-white); }
body .uk-wishlist .wishlist_table a.button.remove_from_wishlist { border-color: var(--color-charcoal); background-color: transparent; color: var(--color-charcoal); }
body .uk-wishlist .wishlist_table a.button.remove_from_wishlist:hover { background-color: var(--color-charcoal); color: var(--color-white); }
body .uk-wishlist .wishlist_table a.added_to_cart { display: inline-flex !important; margin: var(--space-2) 0 0 !important; font-weight: 600; color: var(--color-link); }
body .uk-wishlist .wishlist_table .dateadded { color: var(--color-text-muted); font-size: var(--fs-xs); }

/* Empty wishlist: a heart (uk-i-heart on the widget), the message and, below the widget, "Continue shopping" */
body .uk-wishlist table.wishlist_table td.wishlist-empty, body .uk-wishlist .wishlist_table p.wishlist-empty {
  margin: 0; padding: var(--space-10) var(--space-5); border-top: 0; color: var(--color-text); text-align: center;
  font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700; line-height: var(--lh-heading);
}
body .uk-wishlist .wishlist_table .wishlist-empty::before {
  content: ""; display: block; width: 48px; height: 48px; margin: 0 auto var(--space-4); background-color: var(--color-accent-strong);
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-wishlist table.wishlist_table:has(td.wishlist-empty) thead { display: none; }

/* Mobile layout (YITH sends a list to phones): one card per product */
body .uk-wishlist ul.wishlist_table.mobile { display: flex; flex-direction: column; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
body .uk-wishlist ul.wishlist_table.mobile:has(p.wishlist-empty) { border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-surface); }
body .uk-wishlist ul.wishlist_table.mobile > li {
  position: relative; margin: 0; padding: var(--space-4); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-surface);
}
/* the remove button sits top right, as on the table cards; the name keeps clear of it */
body .uk-wishlist .wishlist_table.mobile li .item-wrapper { display: flex; align-items: flex-start; gap: var(--space-3); width: 100%; margin: 0; padding-right: calc(40px + var(--space-3)); }
body .uk-wishlist .wishlist_table.mobile li .item-wrapper .product-thumbnail { flex: none; width: 88px; max-width: none; margin: 0; }
body .uk-wishlist .wishlist_table.mobile li .product-thumbnail a { display: block; }
body .uk-wishlist .wishlist_table.mobile li .product-thumbnail img {
  display: block; width: 100%; height: auto; aspect-ratio: var(--product-image-ratio); object-fit: cover;
  border-radius: var(--radius-sm); background-color: var(--color-mist);
}
body .uk-wishlist .wishlist_table.mobile li .item-wrapper .item-details { flex: 1 1 auto; width: auto; min-width: 0; }
body .uk-wishlist .wishlist_table.mobile li .product-name h3 { margin: 0 0 var(--space-2); font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); letter-spacing: 0; }
body .uk-wishlist .wishlist_table.mobile li .product-name h3 a { color: var(--color-text); text-decoration: none; }
body .uk-wishlist .wishlist_table.mobile li table { width: auto; margin: 0; border: 0; }
body .uk-wishlist .wishlist_table.mobile li table td { padding: 0 var(--space-2) var(--space-1) 0; border: 0; background-color: transparent; font-size: var(--fs-xs); text-align: left; }
body .uk-wishlist .wishlist_table.mobile li table td.label { color: var(--color-text-muted); font-weight: 600; }
body .uk-wishlist .wishlist_table.mobile li .item-details-table td.value { font-family: var(--font-heading); font-size: var(--fs-body); font-weight: 800; color: var(--color-text); }
body .uk-wishlist .wishlist_table.mobile li .additional-info-wrapper {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3);
  margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--color-line);
}
body .uk-wishlist .wishlist_table.mobile li .additional-info-wrapper:not(:has(.product-add-to-cart, .additional-info, .move-to-another-wishlist)) { margin: 0; padding: 0; border: 0; }
body .uk-wishlist .wishlist_table.mobile li .additional-info-wrapper .product-add-to-cart { flex: 1 1 auto; margin: 0; text-align: left; }
body .uk-wishlist .wishlist_table.mobile li .additional-info-wrapper .product-remove { position: absolute; top: var(--space-4); right: var(--space-4); margin: 0; }
body .uk-wishlist .wishlist_table.mobile li .product-remove a.remove_from_wishlist { font-size: 0; }
body .uk-wishlist .wishlist_table.mobile li .product-remove a.remove_from_wishlist i { display: none; }
body .uk-wishlist .wishlist_table.mobile li .product-remove a.remove_from_wishlist::before { content: "\00d7"; font-size: var(--fs-h4); }

/* Share links (shown when YITH's sharing option is on): neutral round buttons instead of brand colours */
body .uk-wishlist .yith_wcwl_wishlist_footer { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin-top: var(--space-5); }
body .uk-wishlist .yith_wcwl_wishlist_footer .yith-wcwl-share { float: none; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: 0; }
body .uk-wishlist .yith-wcwl-share h4.yith-wcwl-share-title { margin: 0; color: var(--color-text); font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600; letter-spacing: 0; }
body .uk-wishlist .yith-wcwl-share ul { gap: var(--space-2); margin: 0; }
body .uk-wishlist .yith-wcwl-share li a {
  display: grid; place-items: center; width: var(--tap); height: var(--tap); padding: 0; border: 1px solid var(--color-line-strong);
  border-radius: 50%; background: var(--color-surface); color: var(--color-text);
}
body .uk-wishlist .yith-wcwl-share li a:hover { border-color: var(--color-charcoal); background: var(--color-charcoal); color: var(--color-white); }
body .uk-wishlist .yith-wcwl-share li a svg { width: var(--icon-sm); height: var(--icon-sm); }

/* Narrow screens on the table layout: each row becomes a card (image, name, price and stock, then the buttons) */
@media (max-width: 767px) {
  body .uk-wishlist table.wishlist_table:not(:has(td.wishlist-empty)) { border: 0; border-radius: 0; background-color: transparent; overflow: visible; }
  body .uk-wishlist table.wishlist_table thead { display: none; }
  body .uk-wishlist table.wishlist_table tbody { display: flex; flex-direction: column; gap: var(--space-3); }
  body .uk-wishlist table.wishlist_table tbody tr {
    display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; column-gap: var(--space-3); row-gap: var(--space-2); align-items: center;
    padding: var(--space-4); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-surface);
  }
  body .uk-wishlist table.wishlist_table tbody tr:has(td.wishlist-empty) { display: block; padding: 0; border: 0; }
  body .uk-wishlist table.wishlist_table tbody td { display: block; width: auto; padding: 0; border: 0; }
  body .uk-wishlist table.wishlist_table tbody td.product-thumbnail { display: block; grid-column: 1; grid-row: 1 / span 3; align-self: start; width: auto; }
  body .uk-wishlist table.wishlist_table tbody td.product-thumbnail img { width: 100%; }
  body .uk-wishlist table.wishlist_table tbody td.product-name { grid-column: 2; }
  body .uk-wishlist table.wishlist_table tbody td.product-remove { grid-column: 3; grid-row: 1; width: auto; padding: 0; }
  body .uk-wishlist table.wishlist_table tbody :is(td.product-price, td.product-stock-status) { grid-column: 2 / span 2; }
  body .uk-wishlist table.wishlist_table tbody td.product-add-to-cart { grid-column: 1 / -1; text-align: left; }
  body .uk-wishlist table.wishlist_table tbody td.product-add-to-cart:empty { display: none; }
  body .uk-wishlist table.wishlist_table td.product-name a { font-size: var(--fs-sm); }
}


/* ---- css/legal.css ---- */
/* Legal pages (build/pages/legal.py): Privacy Policy, Terms & Conditions, Refund & Returns Policy.
   One long-form layout: a sticky "On this page" card on desktop, a collapsible list on tablet and mobile,
   numbered sections with a readable measure, and a closing contact block. Tokens only. */

/* Page header note: last updated, then the drafting note */
body .uk-pagehead__note .uk-legal-updated { font-weight: 600; color: var(--color-text); }
body .uk-pagehead__note .uk-legal-draft { display: block; margin-top: var(--space-1); }

/* Layout: the grid columns come from Elementor; the text keeps a readable line length */
body .e-con.uk-legal-article, body .e-con.uk-legal-toc-col { min-width: 0; }
body .e-con.uk-legal-article { max-width: 70ch; }
@media (max-width: 1024px) {
  body .e-con.uk-legal-toc-col { max-width: 70ch; }
}
@media (min-width: 1025px) {
  body .e-con.uk-legal-toc-col {
    position: sticky; top: var(--space-6); align-self: start;
    max-height: calc(100vh - 2 * var(--space-6)); overflow-y: auto; overscroll-behavior: contain;
  }
}

/* Contents card (desktop) */
.uk-legal-toc { padding: var(--space-5) var(--space-5) var(--space-4); border-radius: var(--radius-lg); background-color: var(--color-sand); }
body .uk-legal-toc__title {
  margin: 0 0 var(--space-3); color: var(--color-text-muted); font-size: var(--fs-overline); font-weight: 700;
  line-height: var(--lh-snug); letter-spacing: var(--ls-overline); text-transform: uppercase;
}
body .uk-legal-toc ol, body .uk-legal-tocm ol { margin: 0; padding: 0; list-style: none; }
body .uk-legal-toc ol { display: flex; flex-direction: column; gap: 2px; }
body .uk-legal-toc a {
  display: flex; align-items: baseline; gap: var(--space-2); padding: var(--space-2) var(--space-3);
  margin-inline: calc(var(--space-3) * -1); border-radius: var(--radius-sm);
  color: var(--color-text); font-size: var(--fs-sm); font-weight: 500; line-height: var(--lh-snug); text-decoration: none;
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
body .uk-legal-toc a:hover { background-color: var(--color-surface); color: var(--color-accent-strong); }
body .uk-legal-toc__n { flex: none; min-width: 1.25rem; color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
body .uk-legal-toc .uk-legal-toc__sub { margin-top: 2px; padding-left: calc(1.25rem + var(--space-2)); }
body .uk-legal-toc .uk-legal-toc__sub a { padding-block: var(--space-1); font-size: var(--fs-xs); font-weight: 400; color: var(--color-text-muted); }
body .uk-legal-toc .uk-legal-toc__sub a:hover { color: var(--color-accent-strong); }
body .uk-legal-toc__more { margin: var(--space-3) 0 0; padding-top: var(--space-3); border-top: 1px solid var(--color-line); }
body .uk-legal-toc .uk-legal-toc__more a { font-weight: 600; color: var(--color-link); }

/* Contents list (tablet and mobile): the design system's accordion item */
body .uk-legal-tocm { border: 1px solid var(--color-line); border-radius: var(--radius-md); background-color: var(--color-surface); }
body .uk-legal-tocm summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  min-height: 56px; padding: var(--space-3) var(--space-5); border-radius: var(--radius-md); list-style: none; cursor: pointer;
  color: var(--color-text); font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; line-height: var(--lh-snug);
}
body .uk-legal-tocm summary::-webkit-details-marker { display: none; }
body .uk-legal-tocm summary::marker { content: ""; }
body .uk-legal-tocm summary:hover { color: var(--color-accent-strong); }
body .uk-legal-tocm__chev {
  display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%;
  background-color: var(--color-sand); color: var(--color-text);
  transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
body .uk-legal-tocm__chev::before {
  content: ""; width: var(--icon-sm); height: var(--icon-sm); background-color: currentColor;
  -webkit-mask: var(--uk-ico) center / contain no-repeat; mask: var(--uk-ico) center / contain no-repeat;
}
body .uk-legal-tocm[open] .uk-legal-tocm__chev { transform: rotate(180deg); background-color: var(--color-accent-tint); color: var(--color-accent-strong); }
body .uk-legal-tocm nav { padding: 0 var(--space-5) var(--space-2); }
body .uk-legal-tocm a {
  display: flex; align-items: center; gap: var(--space-2); min-height: var(--tap); padding: var(--space-1) 0;
  border-top: 1px solid var(--color-line); color: var(--color-text); font-size: var(--fs-sm); line-height: var(--lh-snug); text-decoration: none;
}
body .uk-legal-tocm a:hover { color: var(--color-accent-strong); }
body .uk-legal-tocm .uk-legal-toc__sub a { padding-left: calc(1.25rem + var(--space-2)); color: var(--color-text-muted); }
body .uk-legal-tocm .uk-legal-toc__more { margin: 0; }
body .uk-legal-tocm .uk-legal-toc__more a { font-weight: 600; color: var(--color-link); }

/* Sections: numbered h2, a divider between sections, anchors stop just below the top of the window */
body .e-con.uk-legal-sec, body .e-con.uk-legal-sub, body .e-con.uk-legal-q { scroll-margin-top: var(--space-4); }
body .e-con.uk-legal-sec + .e-con.uk-legal-sec { border-top: 1px solid var(--color-line); }
body .uk-legal-n { margin-right: var(--space-1); color: var(--color-accent-strong); font-variant-numeric: tabular-nums; }
body .uk-legal-h3 .elementor-heading-title, body .uk-legal-prose h3 {
  color: var(--color-text); font-family: var(--font-heading); font-size: var(--fs-h4); font-weight: 700;
  line-height: var(--lh-heading); letter-spacing: var(--ls-heading);
}

/* Prose (Text Editor widgets): the base reset zeroes margins, so the rhythm is set here */
body .uk-legal-prose { color: var(--color-text); }
body .uk-legal-prose :is(p, li, dd) { font-size: var(--fs-body); line-height: 1.7; }
body .uk-legal-prose :is(p, ul, ol, dl) { margin: 0 0 var(--space-4); }
body .uk-legal-prose :is(p, ul, ol, dl):last-child { margin-bottom: 0; }
body .uk-legal-prose h3 { margin: var(--space-7) 0 var(--space-3); }
body .uk-legal-prose h3:first-child { margin-top: 0; }
body .uk-legal-prose :is(ul, ol) { padding-left: 1.375rem; }
body .uk-legal-prose li { padding-left: var(--space-1); }
body .uk-legal-prose li + li { margin-top: var(--space-2); }
body .uk-legal-prose li::marker { color: var(--color-accent-strong); }
body .uk-legal-prose ol > li::marker { font-weight: 700; }
body .uk-legal-prose strong { font-weight: 600; color: var(--color-text); }
body .uk-legal-prose a { font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; overflow-wrap: anywhere; }

/* Facts lists (dl): label and value, side by side from tablet up */
body .uk-legal-prose dl { border: 1px solid var(--color-line); border-radius: var(--radius-md); background-color: var(--color-surface); overflow: hidden; }
body .uk-legal-prose dl > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: var(--space-3) var(--space-4); }
body .uk-legal-prose dl > div + div { border-top: 1px solid var(--color-line); }
body .uk-legal-prose dt { color: var(--color-text-muted); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); }
body .uk-legal-prose dd { margin: 0; line-height: 1.6; }
@media (min-width: 768px) {
  body .uk-legal-prose dl > div { grid-template-columns: minmax(0, 12.5rem) minmax(0, 1fr); gap: var(--space-4); align-items: baseline; }
}

/* Notice that must stand out (CPA s49: limits of liability) */
body .uk-legal-prose .uk-legal-callout { padding: var(--space-3) var(--space-4); border: 1px solid var(--color-line-strong); border-radius: var(--radius-md); background-color: var(--color-sand); }

/* Closing contact block */
.uk-legal-q { border-radius: var(--radius-lg); background-color: var(--color-sand); }


/* ---- css/live-media.css ---- */
/* Live photos (uk_live_media.py manifest slots). When a slot is filled, the labelled placeholder (.uk-ph) is swapped
   for an Image widget carrying .uk-live-photo. These rules give the photo exactly the placeholder's box: the box keeps
   the placeholder's aspect ratio and radius, and the photo covers it without ever sizing it. Tokens only. */

/* The image is taken out of flow, so its own pixel size can never stretch the slide or the story grid */
body .uk-live-photo { position: relative; width: 100%; overflow: hidden; background-color: var(--color-mist); }
body .uk-live-photo img {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none;
  border-radius: 0; object-fit: cover; object-position: center;
}

/* Hero slide: .uk-hero__media already sets the box (4:3 row above the panel on mobile, the whole slide from 768px,
   with the panel overlaid bottom-left). The slide's own radius and overflow clip the corners, as for the placeholder. */
body .uk-hero__media.uk-live-photo { border-radius: 0; }

/* Story block: same 5:4 box and large radius as .uk-ph.uk-ph--5x4 */
body .uk-live-photo--5x4 { aspect-ratio: 5 / 4; border-radius: var(--radius-xl); }


/* ---- css/pages-main.css ---- */
/* About, Contact and Clinical services pages (build/pages/main.py). Tokens only, no hard-coded colours.
   These pages reuse the homepage components in unikem.css (uk-story, uk-facts, uk-svc, uk-step, uk-info); this file
   only adds what they lack. Every top-level section of these pages carries .uk-pg-main, so page-wide tweaks stay here. */

/* Photos: a live image (uk_live_media) and its labelled placeholder share one box per role.
   wide = hero band, split = beside text, landscape = team / store. Stacked layouts (tablet) use 16:9 so a
   full-width photo does not fill the screen. */
.uk-ph.uk-ratio--wide, .uk-ph.uk-ratio--split, .uk-ph.uk-ratio--landscape { aspect-ratio: 4 / 3; }
body .uk-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-xl); }
@media (min-width: 768px) {
  .uk-ph.uk-ratio--wide, .uk-ph.uk-ratio--split, .uk-ph.uk-ratio--landscape,
  body .uk-photo.uk-ratio--wide img, body .uk-photo.uk-ratio--split img, body .uk-photo.uk-ratio--landscape img { aspect-ratio: 16 / 9; }
}
@media (min-width: 1025px) {
  .uk-ph.uk-ratio--wide, body .uk-photo.uk-ratio--wide img { aspect-ratio: 21 / 9; }
  .uk-ph.uk-ratio--split, body .uk-photo.uk-ratio--split img { aspect-ratio: 5 / 4; }
  .uk-ph.uk-ratio--landscape, body .uk-photo.uk-ratio--landscape img { aspect-ratio: 3 / 2; }
}

/* Placeholder chips stay on one line */
.uk-pg-main .uk-tbc { white-space: nowrap; }

/* 44px tap areas without changing the text rhythm (design system: story__fact a) */
body .uk-facts--tap .uk-fact .elementor-heading-title a {
  display: inline-flex; align-items: center; min-height: var(--tap); margin-block: calc((var(--tap) - 1.6em) / -2); overflow-wrap: anywhere;
}
body .uk-pg-main .uk-note a, body .uk-pg-main .uk-legal a {
  display: inline-block; padding-block: calc((var(--tap) - 1.6em) / 2); margin-block: calc((var(--tap) - 1.6em) / -2);
}

/* Opening hours on light backgrounds (the footer's uk-fhours is for the dark footer) */
body .uk-hours__title .elementor-heading-title { font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--color-text); }
body .uk-hours dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--space-2) var(--space-5); margin: 0; font-size: var(--fs-sm); line-height: var(--lh-snug); }
body .uk-hours dt { font-weight: 600; color: var(--color-text); }
body .uk-hours dd { margin: 0; color: var(--color-text-muted); }

/* Value cards reuse the service card, without the hover lift (they are not links) */
.uk-svc--static:hover { border-color: var(--color-line); box-shadow: none; }

/* Clinical services: compact cards with duration and price side by side, grouped with a rule between groups */
body .uk-svc__meta--row dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1) var(--space-4); }
body .uk-svc__meta--row dl > div { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 2px; }
body .uk-svc--compact .uk-svc__title .elementor-heading-title { font-size: 1.0625rem; }
.uk-svc-group--rule { border-top: 1px solid var(--color-line); }
@media (min-width: 1025px) { body .uk-svc-group__intro { position: sticky; top: var(--space-6); } }
/* Immunisation schedule: one card, two columns wide, ages as the design system's light chips (.chip-list / .chip) */
@media (min-width: 768px) { body .uk-svc--wide { grid-column: span 2; } }
body .uk-svc__text ul.uk-agelist { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-3) 0 0; padding: 0; list-style: none; }
body .uk-svc__text .uk-agelist li {
  display: inline-flex; align-items: center; min-height: 32px; padding: 0 var(--space-3);
  border: 1px solid var(--color-line-strong); border-radius: var(--radius-pill); background: var(--color-surface);
  color: var(--color-text); font-size: var(--fs-xs); font-weight: 600; line-height: var(--lh-snug); white-space: nowrap;
}

/* Contact form panel */
.uk-panel { border: 1px solid var(--color-line); border-radius: var(--radius-lg); background-color: var(--color-surface); }

/* Contact form (Elementor Pro Form) in the design system's field style: labels above, 48px controls, 12px radius,
   full-width submit on mobile. The Kit styles inputs with a (0,3,1) :not() .elementor-kit-6, so control rules carry the
   widget class as well. Column and row gaps are 0 in the widget; spacing comes from the grid gap below. */
body .uk-cform .elementor-form-fields-wrapper { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5) var(--space-4); margin: 0; }
body .uk-cform .elementor-field-group {
  grid-column: 1 / -1; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: var(--space-2);
  width: auto; max-width: none; margin: 0; padding: 0;
}
/* Honeypot: Elementor replaces its group classes with elementor-field-type-text only; drop it from the grid */
body .uk-cform .elementor-form-fields-wrapper > .elementor-field-type-text:not(.elementor-field-group) { display: none; }
body .uk-cform .elementor-field-group > .elementor-field-label {
  margin: 0; padding: 0; font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); color: var(--color-text);
}
body .uk-cform.elementor-widget-form .elementor-field-group .elementor-field-textual {
  width: 100%; min-height: var(--control-h); margin: 0; padding: 0 var(--space-4);
  border: 1.5px solid var(--color-line-input); border-radius: var(--radius-md); background-color: var(--color-surface); box-shadow: none;
  color: var(--color-text); font-family: var(--font-body); font-size: var(--fs-body); line-height: var(--lh-body);
  transition: border-color var(--dur-fast) var(--ease);
}
body .uk-cform.elementor-widget-form .elementor-field-group textarea.elementor-field-textual { min-height: 140px; padding-block: var(--space-3); resize: vertical; }
body .uk-cform.elementor-widget-form .elementor-field-group .elementor-field-textual:hover,
body .uk-cform.elementor-widget-form .elementor-field-group .elementor-field-textual:focus { border-color: var(--color-ink); }
body .uk-cform.elementor-widget-form .elementor-field-group .elementor-field-textual:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 1px; }
body .uk-cform .elementor-field-textual::placeholder { color: var(--color-text-muted); opacity: 1; }
body .uk-cform.elementor-widget-form .elementor-error .elementor-field-textual { border-color: var(--color-danger); }
body .uk-cform .elementor-field-group.elementor-field-type-submit { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; }
body .uk-cform.elementor-widget-form .elementor-field-type-submit .elementor-button {
  width: 100%; min-height: var(--control-h); padding: 0 var(--space-6); border: 0; border-radius: var(--radius-pill);
  background-color: var(--color-accent-strong); color: var(--color-white); font-family: var(--font-body); font-size: .9375rem; font-weight: 600; line-height: 1;
  transition: background-color var(--dur-fast) var(--ease);
}
body .uk-cform.elementor-widget-form .elementor-field-type-submit .elementor-button:hover { background-color: var(--color-accent-deep); color: var(--color-white); }
body .uk-cform .elementor-message { margin: var(--space-3) 0 0; font-size: var(--fs-sm); font-weight: 600; line-height: var(--lh-snug); }
/* Elementor draws the message icon with the eicons font, which the front end does not load (a missing-glyph box) */
body .uk-cform .elementor-message::before { display: none; }
body .uk-cform .elementor-message.elementor-message-success { color: var(--color-green); }
body .uk-cform .elementor-message.elementor-message-danger { color: var(--color-danger); }
@media (min-width: 768px) {
  body .uk-cform .elementor-form-fields-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .uk-cform .elementor-field-group.elementor-col-50 { grid-column: auto; }
  body .uk-cform.elementor-widget-form .elementor-field-type-submit .elementor-button { width: auto; flex: 0 0 auto; }
}

/* Map (Elementor Google Maps widget): rounded; on desktop it spans the text and photo rows beside it */
body .uk-map { align-self: stretch; height: 100%; border-radius: var(--radius-xl); overflow: hidden; background-color: var(--color-mist); }
body .uk-map .elementor-widget-container, body .uk-map .elementor-custom-embed { height: 100%; }
body .uk-map iframe { display: block; width: 100%; height: 100%; min-height: 320px; border: 0; }
@media (min-width: 768px) { body .uk-map iframe { min-height: 400px; } }
@media (min-width: 1025px) { body .uk-map { grid-row: span 2; } }/* End custom CSS */