/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Description: Custom child theme for Astra
Author: Your Name
Author URI: https://yourwebsite.com
Template: astra
Version: 1.9.21
Text Domain: astra-child
*/
:root {

  /* ─── FONTS ─────────────────────────────────────────── */
  --font-body:    'Mulish', system-ui, sans-serif;
  --font-heading: 'Arimo',   system-ui, sans-serif;

  /* ─── TYPE SCALE ─────────────────────────────────────
     Use these everywhere instead of raw px / rem values.
     xs  = captions, badges, fine print
     sm  = labels, secondary text, footer links
     base= body copy (default)
     md  = slightly prominent body, card text
     lg  = lead paragraphs, sidebar titles
     xl  = section subtitles
     2xl = section headings (h3/h4)
     3xl = page headings (h2)
     4xl = hero / display (h1)
  ────────────────────────────────────────────────────── */
  --text-xs:   0.875rem;    /* 14px - footer, captions, fine print */
  --text-sm:   1rem;        /* 16px - secondary text, labels */
  --text-base: 1.125rem;    /* 18px - body text */
  --text-md:   clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);         /* 18→20px */
  --text-lg:   clamp(1.125rem, 1rem + 0.5vw, 1.375rem);           /* 18→22px */
  --text-xl:   clamp(1.25rem, 1rem + 0.9vw, 1.625rem);            /* 20→26px */
  --text-2xl:  clamp(1.25rem, 1rem + 1.5vw, 2rem);               /* 20→32px */
  --text-3xl:  clamp(1.375rem, 1rem + 2.5vw, 2.5rem);            /* 22→40px */
  --text-4xl:  clamp(1.5rem, 1rem + 3.5vw, 3.25rem);             /* 24→52px hero */

  /* ─── COLORS ─────────────────────────────────────────
     Two-layer token system.
     Layer 1 — raw palette shades (brand + neutral).
     Layer 2 — semantic roles that reference Layer 1.
     To rebrand: change a Layer 1 value and it
     propagates to every semantic token that uses it.
  ────────────────────────────────────────────────────── */

  /* ·· Layer 1: Brand blues ·· */
  --blue-50:    #edf5ff;
  --blue-100:   #d3ebff;
  --blue-200:   #b0d8ff;
  --blue-300:   #81beff;
  --blue-400:   #4f96ff;
  --blue-500:   #286fff;
  --blue-600:   #0444ff;
  --blue-700:   #003cff;
  --blue-800:   #0033cc;
  --blue-900:   #0b35a4;
  --blue-950:   #071d5f;

  /* ·· Layer 1: Accents ·· */
  --pink-400:   #F269BF;
  --orange-500: #FC6713;

  /* ·· Layer 1: Neutrals (Tailwind neutral, full scale) ·· */
  --white:          #ffffff;
  --neutral-50:     #fafafa;
  --neutral-100:    #f4f4f5;
  --neutral-200:    #e4e4e7;
  --neutral-300:    #d4d4d8;
  --neutral-400:    #a1a1aa;
  --neutral-500:    #71717a;
  --neutral-600:    #52525b;
  --neutral-700:    #3f3f46;
  --neutral-800:    #27272a;
  --neutral-900:    #18181b;
  --neutral-950:    #09090b;
  --white-80:       rgba(255, 255, 255, 0.80);
  --white-70:       rgba(255, 255, 255, 0.70);
  --white-60:       rgba(255, 255, 255, 0.60);
  --white-55:       rgba(255, 255, 255, 0.55);
  --white-45:       rgba(255, 255, 255, 0.45);

  /* ·· Layer 1: Status ·· */
  --green-600:  #1a8a4a;   /* used: badge-new, success notice */
  --amber-600:  #c67c00;   /* used: badge-best, warning */
  --red-900:    #c0392b;   /* used: badge-sale, error borders */

  /* ·· Layer 2: Semantic roles ·· */
  --color-primary:         var(--blue-600);
  --color-primary-dark:    var(--blue-800);
  --color-primary-light:   var(--blue-100);
  --color-secondary:       var(--blue-100);        /* alias, kept for compatibility */
  --color-accent:          var(--pink-400);
  --color-accent-alt:      var(--orange-500);

  --color-bg:              var(--white);
  --color-bg-soft:         #FFFEFE;                 /* tinted section bg */
  --color-bg-muted:        var(--neutral-100);     /* email bg, subtle panels */
  --color-body:            var(--neutral-800);
  --color-heading:         var(--color-primary);
  --color-faded:           var(--neutral-500);
  --color-border:          var(--neutral-200);

  --color-dark:            var(--blue-950);        /* footer, dark sections */
  --color-dark-text:       var(--white-80);
  --color-dark-text-faded: var(--white-55);

  --color-success:         var(--green-600);
  --color-warning:         var(--amber-600);
  --color-error:           var(--red-900);

  /* ─── SPACING SCALE ──────────────────────────────────
     Fluid — shrinks on mobile, expands on desktop.
     xl = section vertical padding
     lg = between-section gaps
     md = card/container internal padding (large)
     sm = card padding, between-element gaps
     xs = tight internal spacing
  ────────────────────────────────────────────────────── */
  --space-xl: clamp(2.5rem, 8vw, 10rem);  /* 40px → 160px */
  --space-lg: clamp(1.5rem, 5vw,  6rem);  /* 24px → 96px  */
  --space-md: clamp(1.25rem, 3vw,  4rem); /* 20px → 64px  */
  --space-sm: clamp(0.75rem, 2vw,  2rem); /* 12px → 32px  */
  --space-xs: clamp(0.4rem,  1vw,  1rem); /* 6px  → 16px  */

  /* Fixed spacing for UI components (buttons, inputs, badges) */
  --gap-xl:  2.5rem;
  --gap-lg:  2rem;
  --gap-md:  1.25rem;
  --gap-sm:  0.75rem;
  --gap-xs:  0.4rem;

  /* ─── BORDER RADIUS ──────────────────────────────────
     sm  = inputs, small buttons, table cells
     md  = cards, modals, dropdowns
     lg  = large cards, feature blocks
     xl  = hero sections, big containers
     full= pills, badges, circular buttons
  ────────────────────────────────────────────────────── */
  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   14px;
  --radius-xl:   20px;
  --radius-full: 9999px;

  /* ─── SHADOWS ─────────────────────────────────────── */
  --shadow-sm:  0 1px 3px rgba(0,0,0,0.08);
  --shadow-md:  0 4px 12px rgba(0,0,0,0.10);
  --shadow-lg:  0 8px 32px rgba(0,0,0,0.12);
  --shadow-xl:  0 16px 48px rgba(0,0,0,0.18);

  /* ─── LINE HEIGHTS ──────────────────────────────────
     Level-aware tokens: large display text needs tighter
     leading than small text. Use --leading-N on the
     matching heading level, --leading-body on paragraphs.
     Legacy aliases kept for existing usages.
  ────────────────────────────────────────────────────── */
  --leading-1:      1.05;   /* h1 / hero display (very large) */
  --leading-2:      1.15;   /* h2 section headings */
  --leading-3:      1.25;   /* h3 / h4 sub-headings */
  --leading-4:      1.35;   /* h5 / h6 labels */
  --leading-body:   1.5;    /* paragraphs, card body, list items */
  --leading-tight:  1.15;   /* alias - maps to --leading-2 */
  --leading-snug:   1.35;   /* alias - maps to --leading-4 */
  --leading-normal: 1.5;    /* alias - maps to --leading-body */
  --leading-loose:  1.8;    /* long-form / article prose */

  /* ─── TRANSITIONS ────────────────────────────────── */
  --transition-fast:   0.15s ease;
  --transition-normal: 0.3s ease;
  --transition-slow:   0.5s ease;

  /* ─── SECTION THEMES ─────────────────────────────────
     Apply as a class on any <section> to get consistent
     background + text treatment. CSS below wires these up.

     .theme-light   — white bg (default)
     .theme-tinted  — soft blue-grey tint
     .theme-brand   — primary blue bg, white text
     .theme-dark    — near-black navy bg, white text
  ────────────────────────────────────────────────────── */
  --section-padding: var(--space-lg) 0;

  /* ─── ASTRA GLOBAL COLOR OVERRIDES ──────────────────────
     Astra's Customizer outputs --ast-global-color-* inline.
     Redeclaring here in our stylesheet (which loads after)
     overrides them in the cascade — kills the pink theme-color.
  ────────────────────────────────────────────────────── */
  --ast-global-color-0: var(--color-primary);
  --ast-global-color-1: var(--color-primary-dark);
  --ast-global-color-2: var(--color-body);
  --ast-global-color-3: var(--color-faded);
  --ast-global-color-4: var(--color-primary-light);
  --ast-global-color-5: #ffffff;
  --ast-global-color-6: var(--color-accent-alt);
  --ast-global-color-7: var(--color-dark);
  --ast-global-color-8: var(--color-primary); /* overrides pink #f7accf */

  /* ─── NAVBAR HEIGHT ──────────────────────────────────────
     Used wherever the fixed header must be compensated for.
     --navbar-height-mob applies inside the ≤921px breakpoint.
  ────────────────────────────────────────────────────────── */
  --navbar-height:     70px;
  --navbar-height-mob: 3rem;

  /* ─── LAYOUT WIDTHS ─────────────────────────────────────
     12-column grid at 1440px. Gutters handled by container
     padding (--space-sm). Use the col-* tokens for text
     constraints instead of hardcoded pixel values.

     col-page    : full section / page container (12 cols)
     col-content : main layouts with text + image (10 cols)
     col-text    : reading column - standalone body copy (6 cols)
     col-heading : centered section intro headings (5 cols)
  ────────────────────────────────────────────────────────── */
  --content-max-width: 1440px;   /* all section containers */
  --col-content:       1200px;   /* ~10 cols - text+image rows */
  --col-text:           720px;   /* ~6 cols - reading column */
  --col-heading:        580px;   /* ~5 cols - centered headings/intros */

  /* ─── PRIMARY COLOR ALPHA VARIANTS ──────────────────────
     Static rgba values derived from --color-primary (#0444ff).
     If the primary color ever changes, update these too.
     rgb(4, 68, 255) = #0444ff
  ────────────────────────────────────────────────────────── */
  --color-primary-alpha-08: rgba(4, 68, 255, 0.08);
  --color-primary-alpha-10: rgba(4, 68, 255, 0.10);
  --color-primary-alpha-12: rgba(4, 68, 255, 0.12);
  --color-primary-alpha-15: rgba(4, 68, 255, 0.15);
  --color-primary-alpha-20: rgba(4, 68, 255, 0.20);

  /* ─── STATUS STATE BACKGROUNDS / TEXT ───────────────────
     Background + foreground pairs for success/warning banners.
  ────────────────────────────────────────────────────────── */
  --color-success-bg:     #edfaf2;
  --color-success-dark:   #145c33;
  --color-warning-bg:     #fff8ec;
  --color-warning-border: #f0a500;
  --color-warning-dark:   #7a4f00;

  /* ─── COMPONENT RADII ────────────────────────────────────
     radius-card  — product/feature cards, dropdowns, minicart
     radius-btn   — buttons, form inputs, search boxes
  ────────────────────────────────────────────────────────── */
  --radius-card: 12px;
  --radius-btn:   8px;

  /* ─── SURFACE TOKENS ─────────────────────────────────────
     Inherited by all components inside [data-theme] sections.
     Defaults = light / white context.
     Override in [data-theme] blocks; never target components
     directly to vary appearance per section theme.
  ─────────────────────────────────────────────────────── */
  --s-text:             var(--color-body);
  --s-text-muted:       var(--color-faded);
  --s-icon:             var(--color-primary);
  --s-icon-bg:          var(--color-primary-light);
  --s-eyebrow:          var(--color-primary);
  --s-stat-num:         var(--color-primary);
  /* Button primary */
  --s-btn-bg:           var(--color-primary);
  --s-btn-color:        #fff;
  --s-btn-border:       var(--color-primary);
  --s-btn-hover-bg:     var(--color-primary-dark);
  --s-btn-hover-shadow: var(--color-primary-alpha-20);
  /* Button outline */
  --s-btn-alt-bg:          transparent;
  --s-btn-alt-color:        var(--color-primary-dark);
  --s-btn-alt-border:       var(--color-primary);
  --s-btn-alt-hover-bg:     var(--color-primary);
  --s-btn-alt-hover-color:  #fff;
  --s-btn-alt-hover-shadow: var(--color-primary-alpha-20);
}

/* ================= GLOBAL TYPOGRAPHY ================== */

/* Sticky footer — content area grows to push footer to the bottom */
html { height: 100%; }
::selection {
  background-color: var(--color-primary-dark);
  color: var(--blue-50);
}

body {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  font-family: var(--font-body) !important;
  font-size: var(--text-base) !important;
  line-height: var(--leading-normal) !important;
  color: var(--color-body) !important;
  font-weight: 500 !important;
  background-color: var(--blue-50) !important;
}
#page.site {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.site-content,
#content.site-content {
  flex: 1;
}

/* Astra page-builder layout (set per-page via WP meta) outputs:
   .ast-page-builder-template .site-content > .ast-container { max-width:100%; padding:0 }
   No override needed here - section backgrounds span full viewport via that mechanism. */

/* Body text max-width for readability (--col-text) */
.ikmore-home-feature__text p,
.ikmore-home-about__text > p,
.ikmore-home-cta__sub,
.ikmore-partners-hero__sub,
.ikmore-contact-hero__sub,
.ikmore-partners-cta__body,
.ikmore-contact-hero__sub,
.entry-content p {
  max-width: var(--col-text);
}

/* Centered section headers - heading + sub constrained to --col-heading */
.ikmore-partners-section-header,
.ikmore-hp-section__header,
.ikmore-home-cta__inner,
.ikmore-partners-cta__inner {
  max-width: var(--col-heading);
  margin-inline: auto;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.widget-title {
  font-family: var(--font-heading) !important;
}

ul li + li,
ol li + li {
  margin-top: 0.25rem;
}

h1 { font-size: var(--text-4xl); line-height: var(--leading-1); }
h2 { font-size: var(--text-3xl); line-height: var(--leading-2); }
h3 { font-size: var(--text-2xl); line-height: var(--leading-3); }
h4 { font-size: var(--text-xl);  line-height: var(--leading-3); }
h5 { font-size: var(--text-lg);  line-height: var(--leading-4); }
h6 { font-size: var(--text-md);  line-height: var(--leading-4); }

/* ================= CONTAINER SYSTEM ================== */

.container,
.ast-container {
  max-width: var(--content-max-width);
  margin-inline: auto;
  padding-inline: var(--space-sm);
}

.container-sm {
  max-width: 768px;
  margin-inline: auto;
  padding-inline: var(--space-sm);
}

.container-md {
  max-width: 1024px;
  margin-inline: auto;
  padding-inline: var(--space-sm);
}

.container-padding-sm { padding-block: var(--space-sm); }
.container-padding { padding-block: var(--space-md); }
.container-padding-lg { padding-block: var(--space-lg); }


/* ================= SECTION THEME SYSTEM ================
   Base class:  .ikmore-hp-section
   Modifier:    .ikmore-hp-section--{theme}

   Apply base + modifier to any <section>. The modifier
   controls background, text, headings and links. No other
   CSS needed — one class changes the whole visual treatment.

   Available themes:
     (none)      white bg, dark text          (default)
     --tinted    soft light-blue bg, dark text
     --gradient  light-blue gradient, dark text  (homepage style)
     --brand     primary blue bg, white text
     --dark      dark navy bg, white text

   Adjacent same-theme sections auto-collapse their shared
   padding so content never gets a double gap.
====================================================== */

/* ── Base: white bg, section padding ── */
.ikmore-hp-section {
  padding-block: var(--space-lg);
  background: var(--color-bg);
  color: var(--color-body);
}

/* ── Modifiers use combined selector (.base.modifier) for specificity (0,2,0)
   so they always beat the base rule (0,1,0) regardless of order. ── */

/* ── Tinted: soft light-blue, dark text ── */
.ikmore-hp-section.ikmore-hp-section--tinted {
  background: var(--color-bg-soft);
  color: var(--color-body);
}

/* ── Gradient: light-blue gradient, dark text (homepage-style) ── */
.ikmore-hp-section.ikmore-hp-section--gradient {
  background: linear-gradient(160deg, var(--blue-200) 0%, var(--blue-100) 100%);
  color: var(--color-body);
}

/* ── Brand: primary blue bg, white text ── */
.ikmore-hp-section.ikmore-hp-section--brand {
  background: var(--color-primary);
  color: #fff;
}
.ikmore-hp-section.ikmore-hp-section--brand h1,
.ikmore-hp-section.ikmore-hp-section--brand h2,
.ikmore-hp-section.ikmore-hp-section--brand h3,
.ikmore-hp-section.ikmore-hp-section--brand h4,
.ikmore-hp-section.ikmore-hp-section--brand h5,
.ikmore-hp-section.ikmore-hp-section--brand h6 { color: #fff; }
.ikmore-hp-section.ikmore-hp-section--brand a         { color: var(--color-primary-light); }
.ikmore-hp-section.ikmore-hp-section--brand a:hover   { color: #fff; }

/* ── Dark: navy bg, white text ── */
.ikmore-hp-section.ikmore-hp-section--dark {
  background: var(--color-dark);
  color: var(--color-dark-text);
}
.ikmore-hp-section.ikmore-hp-section--dark h1,
.ikmore-hp-section.ikmore-hp-section--dark h2,
.ikmore-hp-section.ikmore-hp-section--dark h3,
.ikmore-hp-section.ikmore-hp-section--dark h4,
.ikmore-hp-section.ikmore-hp-section--dark h5,
.ikmore-hp-section.ikmore-hp-section--dark h6 { color: #fff; }
.ikmore-hp-section.ikmore-hp-section--dark a       { color: var(--color-primary-light); }
.ikmore-hp-section.ikmore-hp-section--dark a:hover { color: #fff; }

/* ── Adjacent same-theme: collapse touching padding ──
   Scope to same-modifier pairs only — different themes should NOT collapse. */
.ikmore-hp-section:not([class*="--"]) + .ikmore-hp-section:not([class*="--"]) { padding-top: 0; }
.ikmore-hp-section--tinted   + .ikmore-hp-section--tinted   { padding-top: 0; }
.ikmore-hp-section--gradient + .ikmore-hp-section--gradient { padding-top: 0; }
.ikmore-hp-section--brand    + .ikmore-hp-section--brand    { padding-top: 0; }
.ikmore-hp-section--dark     + .ikmore-hp-section--dark     { padding-top: 0; }

/* Legacy .theme-* aliases — kept for any direct usage outside templates */
.theme-light    { background: var(--color-bg);      color: var(--color-body); }
.theme-tinted   { background: var(--color-bg-soft); color: var(--color-body); }
.theme-brand    { background: var(--color-primary);  color: #fff; }
.theme-dark     { background: var(--color-dark);    color: var(--color-dark-text); }
.theme-brand h1,.theme-brand h2,.theme-brand h3,.theme-brand h4 { color: #fff; }
.theme-dark  h1,.theme-dark  h2,.theme-dark  h3,.theme-dark  h4 { color: #fff; }


/* ─── SECTION THEMES ─────────────────────────────────────
   Add data-theme="X" to any <section> (or wrapper).
   All components inside that use --s-* tokens adapt
   automatically — no extra selectors needed.
─────────────────────────────────────────────────────── */

/* Colored sections sit inset from the viewport edges */
[data-theme="tinted"],
[data-theme="dark"],
[data-theme="pink"] {
  margin-inline: 20px;
  border-radius: 20px;
}
@media (max-width: 921px) {
  [data-theme="tinted"],
  [data-theme="dark"],
  [data-theme="pink"] {
    margin-inline: 8px;
  }
}

/* tinted: soft light-blue bg — alternating sections, heroes */
[data-theme="tinted"] {
  /* text/heading tokens inherit :root defaults (dark text on light bg) */
  /* card tokens same as light */
}

/* dark: navy / blue-950 bg — dark heroes, promo CTAs */
[data-theme="dark"] {
  color:                  var(--white-80);
  --color-heading:        #fff;
  --color-body:           var(--white-80);
  --color-faded:          var(--white-55);
  --color-border:         rgba(255, 255, 255, 0.12);
  --color-bg:             rgba(255, 255, 255, 0.06);
  --s-text:               var(--white-80);
  --s-text-muted:         var(--white-55);
  --s-icon:               var(--blue-300);
  --s-icon-bg:            rgba(255, 255, 255, 0.10);
  --s-eyebrow:            var(--blue-300);
  --s-stat-num:           #fff;
  --s-btn-bg:             #fff;
  --s-btn-color:          var(--color-primary);
  --s-btn-border:         #fff;
  --s-btn-hover-bg:       rgba(255, 255, 255, 0.88);
  --s-btn-hover-shadow:   rgba(0, 0, 0, 0.20);
  --s-btn-alt-bg:          transparent;
  --s-btn-alt-color:       #fff;
  --s-btn-alt-border:      rgba(255, 255, 255, 0.50);
  --s-btn-alt-hover-bg:    rgba(255, 255, 255, 0.12);
  --s-btn-alt-hover-color: #fff;
  --s-btn-alt-hover-shadow: rgba(0, 0, 0, 0.15);
}
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 { color: #fff; }

/* pink: promo banner — light pink bg, rose accents */
[data-theme="pink"] {
  color:                  #5c2048;
  --color-heading:        #7b1546;
  --color-body:           #5c2048;
  --color-faded:          #8a4a70;
  --color-border:         rgba(214, 51, 132, 0.18);
  --color-bg:             rgba(255, 255, 255, 0.65);
  --s-text:               #5c2048;
  --s-text-muted:         #8a4a70;
  --s-icon:               #d63384;
  --s-icon-bg:            rgba(214, 51, 132, 0.12);
  --s-eyebrow:            #d63384;
  --s-stat-num:           #b0396f;
  --s-btn-bg:             #d63384;
  --s-btn-color:          #fff;
  --s-btn-border:         #d63384;
  --s-btn-hover-bg:       #b0396f;
  --s-btn-hover-shadow:   rgba(214, 51, 132, 0.30);
  --s-btn-alt-bg:          transparent;
  --s-btn-alt-color:       #b0396f;
  --s-btn-alt-border:      #d63384;
  --s-btn-alt-hover-bg:    rgba(214, 51, 132, 0.08);
  --s-btn-alt-hover-color: #b0396f;
  --s-btn-alt-hover-shadow: rgba(214, 51, 132, 0.15);
}
[data-theme="pink"] h1,
[data-theme="pink"] h2,
[data-theme="pink"] h3,
[data-theme="pink"] h4,
[data-theme="pink"] h5,
[data-theme="pink"] h6 { color: #7b1546; }


/* ================= SECTION UTILITIES ================== */

.section {
  padding-block: var(--space-lg);
}
.section-sm {
  padding-block: var(--space-md);
}
.section-heading {
  margin-bottom: var(--space-sm);
}
.section-eyebrow {
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-faded);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.25em;
  display: block;
}
.section-subtitle {
  font-size: var(--text-lg);
  color: var(--color-body);
  max-width: 40ch;
  margin-bottom: var(--space-sm);
  margin-inline: auto;
}

/* ================= CARD COMPONENTS ================== */

.card {
  background-color: var(--color-bg);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-sm);
  padding: var(--space-sm);
  transition: box-shadow var(--transition-normal);
  border: 1px solid var(--color-border);
}
.card:hover {
  box-shadow: var(--shadow-md);
}
.card-sm {
  padding: var(--space-xs);
}
.card-lg {
  padding: var(--space-md);
}



/* ================= HEADER + MENU ================== */

/* Fixed header — position + transition only. Astra owns the default background. */
.site-header#masthead {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
  transition: background-color var(--transition-normal),
              border-color var(--transition-normal),
              box-shadow var(--transition-normal);
}

/* Equal vertical padding + vertical centering on the grid row */
.ast-primary-header-bar .ast-builder-grid-row {
  padding-top: 0.75rem !important;
  padding-bottom: 0.75rem !important;
  min-height: var(--navbar-height) !important;
  align-items: center !important;
  box-sizing: border-box !important;
}
/* Prevent Astra's sticky class from altering height or padding */
.ast-header-sticked .ast-primary-header-bar .ast-builder-grid-row,
.ast-header-sticked .ast-primary-header-bar {
  padding-top: 0.75rem !important;
  padding-bottom: 0.75rem !important;
  min-height: var(--navbar-height) !important;
}
@media (max-width: 921px) {
  .ast-primary-header-bar .ast-builder-grid-row {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    min-height: var(--navbar-height-mob) !important;
  }
  .ast-header-sticked .ast-primary-header-bar .ast-builder-grid-row,
  .ast-header-sticked .ast-primary-header-bar {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    min-height: var(--navbar-height-mob) !important;
  }
}

/* Override Astra defaults */
/* Logo/branding wrapper vertical padding */
.ast-site-identity {
  padding: 0.5rem 0 !important;
}
/* Remove Astra's hardcoded container max-width and side padding on breadcrumb wrapper */
.site-header-focus-item + .ast-breadcrumbs-wrapper {
  max-width: unset !important;
  padding-left: unset !important;
  padding-right: unset !important;
}
/* Mobile/primary header bar min-height */
.ast-mobile-header-wrap .ast-primary-header-bar,
.ast-primary-header-bar .site-primary-header-wrap {
  min-height: 56px !important;
}

/* Navbar container — max-width + horizontal padding matching site rhythm */
#masthead .ast-container {
  max-width: 1440px !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  margin-inline: auto;
}
@media (max-width: 921px) {
  #masthead .ast-container {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}

/* Navbar logo */
.custom-logo-link svg,
.ikmore-navbar__logo-link svg {
  display: block;
  height: 20px;
  width: auto;
  color: var(--color-primary);
}
@media (max-width: 921px) {
  .custom-logo-link svg,
  .ikmore-navbar__logo-link svg {
    height: 22px;
  }
}
@media (max-width: 480px) {
  .custom-logo-link svg,
  .ikmore-navbar__logo-link svg {
    height: 18px;
  }
}

/* Homepage: transparent until 120px scroll, then white */
body.home:not(.header-scrolled) .site-header#masthead,
body.home:not(.header-scrolled) .ast-primary-header-bar {
  background-color: transparent !important;
  border-bottom: none !important;
  box-shadow: none !important;
}
body.home.header-scrolled .site-header#masthead {
  background-color: #fff;
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.06);
}
.main-header-menu .menu-item > .menu-link {
  position: relative;
  padding-bottom: 6px;
  display: inline-flex;
  align-items: center;
  line-height: 1.4;
  vertical-align: middle;
}
.main-header-menu .menu-item > .menu-link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 0;
  height: 2px;
  background-color: currentColor;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  transition: transform var(--transition-normal);
  z-index: 1;
}
.main-header-menu .menu-item:hover > .menu-link::after {
  transform: translateX(-50%) scaleX(1);
  width: 60%;
}
.main-header-menu .menu-item.current-menu-item > .menu-link::after {
  transform: translateX(-50%) scaleX(1);
  width: 60%;
  background-color: var(--color-primary);
}

/* ── Shop area: white page background ── */

body.woocommerce,
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
  background-color: #fff;
}

/* Shop pages inherit the default solid-white header — no override needed */

/* ── Shop header icons (account + cart) ── */

.ikmore-shop-icons {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-left: 1.5rem;
}
.ikmore-shop-icon {
  position: relative;
  display: flex;
  align-items: center;
  color: var(--color-body);
  transition: color var(--transition-fast);
}
.ikmore-shop-icon:hover {
  color: var(--color-primary);
}
.ikmore-cart-count {
  position: absolute;
  top: -6px;
  right: -8px;
  background-color: var(--color-primary);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1;
  min-width: 16px;
  height: 16px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
}
.ikmore-cart-count.ikmore-hidden {
  display: none;
}

/* ── Login / Register button (guests only) ── */

.ikmore-login-btn {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 0.875rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.ikmore-login-btn:hover {
  background-color: var(--color-primary);
  color: #fff;
}

/* ── Cart toggle button (reset default button styles) ── */

.ikmore-cart-toggle {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

/* ── Mini-cart dropdown ── */

.ikmore-cart-wrap {
  position: relative;
}
.ikmore-minicart-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  width: min(340px, 95vw);
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
  z-index: 1000;
  overflow: hidden;
}
.ikmore-minicart-dropdown.open {
  display: block;
  animation: ikmore-dropdown-in 0.15s ease;
}
@keyframes ikmore-dropdown-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Arrow pointer */
.ikmore-minicart-dropdown::before {
  content: "";
  position: absolute;
  top: -7px;
  right: 10px;
  width: 12px;
  height: 12px;
  background: #fff;
  border-left: 1px solid var(--color-border);
  border-top: 1px solid var(--color-border);
  transform: rotate(45deg);
}

/* Cart items list */
.ikmore-minicart-dropdown .woocommerce-mini-cart {
  max-height: 300px;
  overflow-y: auto;
  padding: 1rem;
  margin: 0;
  list-style: none;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart-item {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-border);
  font-size: 0.875rem;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart-item:last-child {
  border-bottom: none;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart-item img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  flex-shrink: 0;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart-item a:not(.remove) {
  font-weight: 600;
  color: var(--color-heading);
  text-decoration: none;
  line-height: 1.3;
  display: block;
  margin-bottom: 0.2rem;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart-item a:not(.remove):hover {
  color: var(--color-primary);
}
.ikmore-minicart-dropdown .woocommerce-mini-cart-item .quantity {
  color: var(--color-faded);
  font-size: 0.8rem;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart-item .remove {
  margin-left: auto;
  color: var(--color-faded);
  font-size: 1.1rem;
  text-decoration: none;
  line-height: 1;
  flex-shrink: 0;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart-item .remove:hover {
  color: var(--color-error);
}

/* Empty cart message */
.ikmore-minicart-dropdown .woocommerce-mini-cart__empty-message {
  padding: 1.5rem 1rem;
  text-align: center;
  color: var(--color-faded);
  font-size: 0.875rem;
  margin: 0;
}

/* Total + action buttons */
.ikmore-minicart-dropdown .woocommerce-mini-cart__total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.875rem 1rem;
  border-top: 1px solid var(--color-border);
  font-size: 0.9rem;
  margin: 0;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart__total .woocommerce-Price-amount {
  font-weight: 700;
  font-size: 1rem;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart__buttons {
  display: flex;
  gap: 0.5rem;
  padding: 0.75rem 1rem 1rem;
  margin: 0;
}
.ikmore-minicart-dropdown .woocommerce-mini-cart__buttons .button {
  flex: 1;
  text-align: center;
  justify-content: center;
}

/* ================= HOMEPAGE TEMPLATE ================== */

.ikmore-hp {
}

/* ── Container ── */
.ikmore-hp-container {
  max-width: var(--content-max-width);
  margin-inline: auto;
  padding-inline: var(--space-sm);
}
.ikmore-home-container {
  max-width: var(--col-content);
  margin-inline: auto;
  padding-inline: var(--space-sm);
}

/* Section theme system defined globally above (.ikmore-hp-section + modifiers) */
.ikmore-hp-section__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  gap: 1rem;
}
.ikmore-hp-section__title {
  font-family: var(--font-heading);
  font-size: var(--text-3xl); /* matches other section h2 headings */
  font-weight: 700;
  color: var(--color-heading);
  margin: 0;
}
.ikmore-hp-section__link {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  white-space: nowrap;
}
.ikmore-hp-section__link:hover { text-decoration: underline; }

/* ── Hero ── */
.ikmore-hp-hero {
  background: linear-gradient(135deg, var(--blue-950) 0%, var(--blue-800) 50%, var(--blue-700) 100%);
  color: #fff;
  padding: clamp(4rem, 10vw, 8rem) 0 clamp(3rem, 8vw, 6rem);
  margin-top: calc(-1 * var(--navbar-height)); /* compensate for fixed header */
  padding-top: calc(clamp(4rem, 10vw, 8rem) + var(--navbar-height));
}
.ikmore-hp-hero__inner {
  max-width: var(--content-max-width);
  margin-inline: auto;
  padding-inline: var(--space-sm);
}
.ikmore-hp-hero__eyebrow {
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--s-eyebrow);
  opacity: 0.8;
  margin: 0 0 1rem;
}
.ikmore-hp-hero__heading {
  font-family: var(--font-heading);
  font-size: var(--text-4xl);
  font-weight: 800;
  line-height: var(--leading-tight);
  margin: 0 0 1.25rem;
  color: var(--color-heading);
  max-width: 700px;
}
.ikmore-hp-hero__sub {
  font-size: var(--text-md);
  opacity: 0.85;
  max-width: 540px;
  line-height: var(--leading-normal);
  margin: 0 0 2rem;
}
.ikmore-hp-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

/* ── Unified button component ── */
.ikmore-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.75rem;
  border-radius: var(--radius-btn);
  font-size: var(--text-base);
  font-weight: 600;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}
.ikmore-btn:hover,
.ikmore-btn:focus-visible {
  text-decoration: none;
}
/* Primary: adapts to section theme via --s-btn-* tokens */
.ikmore-btn--primary {
  background-color: var(--s-btn-bg);
  color: var(--s-btn-color);
  border-color: var(--s-btn-border);
}
.ikmore-btn--primary:hover,
.ikmore-btn--primary:focus-visible {
  background-color: var(--s-btn-hover-bg);
  border-color: var(--s-btn-hover-bg);
  color: var(--s-btn-color) !important;
  box-shadow: 0 4px 14px var(--s-btn-hover-shadow);
}
/* Outline: adapts to section theme via --s-btn-alt-* tokens */
.ikmore-btn--outline {
  background-color: var(--s-btn-alt-bg);
  color: var(--s-btn-alt-color);
  border-color: var(--s-btn-alt-border);
}
.ikmore-btn--outline:hover,
.ikmore-btn--outline:focus-visible {
  background-color: var(--s-btn-alt-hover-bg);
  border-color: var(--s-btn-alt-hover-bg);
  color: var(--s-btn-alt-hover-color) !important;
  box-shadow: 0 4px 14px var(--s-btn-alt-hover-shadow);
}
/* White / Ghost: explicit overrides to break out of the current theme */
.ikmore-btn--white {
  background-color: #fff;
  color: var(--color-primary);
  border-color: #fff;
}
.ikmore-btn--white:hover,
.ikmore-btn--white:focus-visible {
  background-color: rgba(255,255,255,0.88);
  border-color: rgba(255,255,255,0.88);
  color: var(--color-primary) !important;
  box-shadow: 0 4px 14px rgba(0,0,0,0.2);
}
.ikmore-btn--ghost {
  background-color: transparent;
  color: #fff;
  border-color: rgba(255,255,255,0.5);
}
.ikmore-btn--ghost:hover,
.ikmore-btn--ghost:focus-visible {
  background-color: rgba(255,255,255,0.12);
  border-color: #fff;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(0,0,0,0.15);
}

/* ── Category cards ── */
.ikmore-hp-cats__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.25rem;
}
.ikmore-hp-cat {
  display: block;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  overflow: hidden;
  text-decoration: none;
  transition: box-shadow var(--transition-normal), transform var(--transition-normal);
  background: #fff;
}
.ikmore-hp-cat:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
  transform: translateY(-3px);
}
.ikmore-hp-cat__img-wrap {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--color-bg-soft);
}
.ikmore-hp-cat__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}
.ikmore-hp-cat:hover .ikmore-hp-cat__img {
  transform: scale(1.04);
}
.ikmore-hp-cat__img-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--color-secondary), var(--blue-200));
}
.ikmore-hp-cat__body {
  padding: 1rem;
}
.ikmore-hp-cat__name {
  display: block;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-heading);
  margin-bottom: 0.25rem;
}
.ikmore-hp-cat__count {
  display: block;
  font-size: 0.8125rem;
  color: var(--color-faded);
}

/* ── Product grid (shared between homepage sections, 404, empty cart) ── */
.ikmore-hp-prods {
  display: grid;
  gap: 1.25rem;
}
.ikmore-hp-prods--8 {
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}
.ikmore-hp-prods--4 {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.ikmore-hp-prod {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--transition-normal);
}
.ikmore-hp-prod:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.09);
}
.ikmore-hp-prod__thumb {
  display: block;
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: var(--color-bg-soft);
}
.ikmore-hp-prod__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}
.ikmore-hp-prod:hover .ikmore-hp-prod__img {
  transform: scale(1.03);
}
.ikmore-hp-prod__body {
  padding: 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
}
.ikmore-hp-prod__name {
  font-size: 0.875rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.35;
}
.ikmore-hp-prod__name a {
  color: var(--color-heading);
  text-decoration: none;
}
.ikmore-hp-prod__name a:hover { color: var(--color-primary); }
.ikmore-hp-prod__price {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--color-primary);
}
.ikmore-hp-prod__cta {
  margin-top: auto;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 0.8125rem !important;
  padding: 0.375rem 0.75rem !important;
}

/* ── B2B strip ── */
.ikmore-hp-b2b {
  background: linear-gradient(135deg, var(--blue-950) 0%, var(--blue-800) 100%);
  color: #fff;
}
.ikmore-hp-b2b__inner {
  display: flex;
  align-items: center;
  gap: 3rem;
}
.ikmore-hp-b2b__text { flex: 1; }
.ikmore-hp-b2b__heading {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: 700;
  color: #fff;
  margin: 0.5rem 0 1rem;
}
.ikmore-hp-b2b__body {
  font-size: 1rem;
  opacity: 0.85;
  line-height: 1.65;
  margin-bottom: 1.25rem;
}
.ikmore-hp-b2b__perks {
  list-style: none;
  padding: 0;
  margin: 0 0 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ikmore-hp-b2b__perks li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9375rem;
  opacity: 0.9;
}
.ikmore-hp-b2b__perks li::before {
  content: '';
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background: rgba(255,255,255,0.9);
  border-radius: 50%;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230033cc' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230033cc' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
          mask-size: contain;
}
.ikmore-hp-b2b__visual {
  flex-shrink: 0;
  opacity: 0.15;
}
.ikmore-hp-b2b__icon-wrap { color: #fff; }

/* ── 404 page ── */
.ikmore-404 {
  padding: var(--space-lg) 0;
  text-align: center;
  max-width: 640px;
  margin-inline: auto;
}
.ikmore-404__inner { padding: 0 var(--space-sm); }
.ikmore-404__code {
  font-size: 6rem;
  font-weight: 800;
  color: var(--color-secondary);
  line-height: 1;
  margin: 0 0 0.5rem;
  font-family: var(--font-heading);
}
.ikmore-404__heading {
  font-size: 1.75rem;
  font-family: var(--font-heading);
  margin: 0 0 0.75rem;
}
.ikmore-404__sub {
  color: var(--color-faded);
  margin-bottom: 1.75rem;
}
.ikmore-404__search {
  display: flex;
  max-width: 420px;
  margin: 0 auto 1.5rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-btn);
  overflow: hidden;
}
.ikmore-404__search-input {
  flex: 1;
  border: none;
  padding: 0.65rem 1rem;
  font-size: 0.9375rem;
  font-family: var(--font-body);
  outline: none;
}
.ikmore-404__search-btn {
  border: none;
  background: var(--color-primary);
  color: #fff;
  padding: 0 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
}
.ikmore-404__search-btn:hover { background: var(--color-primary-dark); }
.ikmore-404__actions {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}
.ikmore-404__products {
  text-align: left;
  padding: 0 var(--space-sm);
  max-width: var(--content-max-width);
  margin-inline: auto;
}
.ikmore-404__products-title {
  font-size: 1.25rem;
  margin-bottom: 1.25rem;
}

/* ── Empty cart ── */
.ikmore-empty-cart {
  text-align: center;
  padding: var(--space-lg) var(--space-sm);
}
.ikmore-empty-cart__icon {
  color: var(--color-border);
  margin-bottom: 1rem;
}
.ikmore-empty-cart__heading {
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
}
.ikmore-empty-cart__sub {
  color: var(--color-faded);
  max-width: 400px;
  margin: 0 auto 1.75rem;
}
.ikmore-empty-cart__suggestions {
  margin-top: 3rem;
  text-align: left;
  max-width: 960px;
  margin-inline: auto;
  padding-inline: var(--space-sm);
}
.ikmore-empty-cart__suggestions-title {
  font-size: 1.125rem;
  margin-bottom: 1.25rem;
}


/* ── Free shipping notice ── */

.ikmore-shipping-notice {
  background: var(--color-secondary);
  border: 1px solid var(--color-primary-alpha-15);
  border-radius: var(--radius-btn);
  padding: 0.75rem 1rem;
  font-size: 0.9rem;
  margin-bottom: 1.25rem;
  color: var(--color-body);
}
.ikmore-shipping-notice--free {
  background: var(--color-success-bg);
  border-color: var(--color-success);
  color: var(--color-success-dark);
}
.ikmore-shipping-icon {
  margin-right: 4px;
}

/* ── Stock urgency ── */

.ikmore-stock-urgency {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--color-warning-bg);
  border: 1px solid var(--color-warning-border);
  border-radius: var(--radius-sm);
  padding: 0.4rem 0.75rem;
  font-size: 0.875rem;
  color: var(--color-warning-dark);
  margin: 0.5rem 0;
}


/* ── Product badges ── */

.ikmore-badge-wrap {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
}
/* On single product page it's not inside a relative container — reset */
.single-product .ikmore-badge-wrap {
  position: static;
  margin-bottom: 0.75rem;
}
.ikmore-badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2em 0.65em;
  border-radius: 4px;
  line-height: 1.6;
}
.ikmore-badge--new  { background: var(--color-success); color: #fff; }
.ikmore-badge--best { background: var(--color-warning); color: #fff; }
.ikmore-badge--sale { background: var(--color-error);   color: #fff; }

/* Product cards need position:relative for badge absolute positioning */
.woocommerce ul.products li.product {
  position: relative;
}


/* ── Add-to-cart button icon ── */
/*
 * Cart icon injected via ::before using CSS mask-image so it inherits
 * currentColor — stays white on the primary button, adapts on hover.
 */

.woocommerce a.button.add_to_cart_button::before,
.woocommerce button.single_add_to_cart_button::before {
  content: '';
  display: inline-block;
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  margin-right: 7px;
  vertical-align: middle;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='21' r='1'/%3E%3Ccircle cx='19' cy='21' r='1'/%3E%3Cpath d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.16'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='21' r='1'/%3E%3Ccircle cx='19' cy='21' r='1'/%3E%3Cpath d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.16'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
}


/* ── Quantity input ── */

/* Hide browser spin arrows */
.ikmore-qty-wrap input[type="number"]::-webkit-inner-spin-button,
.ikmore-qty-wrap input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.ikmore-qty-wrap input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
  width: 5rem;
  text-align: center;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-btn);
  font-size: 0.95rem;
  font-family: var(--font-body);
  cursor: pointer;
}
.ikmore-qty-wrap input[type="number"]:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 1px;
  border-color: var(--color-primary);
}


/* ================= BGN / EUR DUAL PRICE ==================
 * Main price: EUR, output by WooCommerce, styled by theme.
 * Secondary price: BGN, informational, Bulgarian legal requirement.
 * 1,95583 лв. = 1 евро (BNB fixed rate).
 * .ikmore-bgn-price is an inline <span> - all properties inherit by default.
 * No CSS needed; this comment is kept for documentation only.
 */


/* ================= WOOCOMMERCE ================== */
/*
 * Scoped under .woocommerce to avoid touching non-shop pages.
 * Uses the design system variables defined in :root above.
 * Covers: buttons, inputs, tables, notices, product cards, cart, checkout.
 */

/* --- Buttons (primary) --- */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wc-block-components-button,
.wc-block-cart__submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4em;
  background-color: var(--s-btn-bg);
  color: var(--s-btn-color) !important;
  border: 2px solid var(--s-btn-border);
  border-radius: var(--radius-btn);
  padding: 0.375rem 0.75rem !important;
  font-family: var(--font-body);
  font-size: 0.875rem !important;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover {
  background-color: var(--s-btn-hover-bg) !important;
  border-color: var(--s-btn-hover-bg) !important;
  color: var(--s-btn-color) !important;
}

/* --- Buttons (secondary / outline) --- */

/* Checkout "Proceed" gets primary style from the button block above */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 1.05rem;
  padding: 0.75em 1.5em;
}

/* --- Add-to-cart: quantity + button row --- */

.woocommerce .quantity input.qty {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-btn);
  padding: 0.6em 0.75em;
  font-size: 0.95rem;
  width: 5rem;
  text-align: center;
  font-family: var(--font-body);
}
.woocommerce .quantity input.qty:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 1px;
  border-color: var(--color-primary);
}

/* --- Product price --- */

.woocommerce .price,
.woocommerce li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--color-primary);
  font-weight: 700;
  font-size: 1.1rem;
}
.woocommerce div.product p.price {
  font-size: 1.35rem;
}
del .woocommerce-Price-amount {
  color: var(--color-faded);
  font-weight: 400;
}
ins .woocommerce-Price-amount {
  color: var(--color-accent-alt);
}

/* --- Product grid layout --- */

.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
  padding: 0 !important;
  margin: 0 !important;
}
@media (max-width: 921px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr);
  }
}
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.ast-col-sm-12,
.woocommerce ul.products li.product[class*="ast-col"] {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

/* --- Product cards (shop loop) --- */

.woocommerce ul.products li.product {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  padding: var(--space-xs);
  transition: box-shadow var(--transition-normal);
  background: var(--color-bg);
}
.woocommerce ul.products li.product:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.09);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-heading);
}

/* --- Sale badge --- */

.woocommerce span.onsale {
  background-color: var(--color-accent-alt);
  border-radius: var(--radius-sm);
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.2em 0.6em;
  min-height: unset;
  line-height: 1.6;
}

/* --- Wholesale discount badge (single product) --- */

.ikmore-ws-badge {
  display: inline-block;
  background-color: var(--color-secondary);
  color: var(--color-primary);
  border: 1px solid var(--color-primary-alpha-20);
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  font-weight: 600;
  padding: 0.3em 0.8em;
  margin-top: 0.5em;
}

/* --- Cart table --- */

.woocommerce table.cart td,
.woocommerce table.cart th,
.woocommerce-cart table.cart td,
.woocommerce-cart table.cart th {
  border-color: var(--color-border);
  vertical-align: middle;
  padding: 1rem 0.75rem;
}
.woocommerce table.cart td.product-name a {
  font-weight: 600;
  color: var(--color-heading);
}
.woocommerce table.cart td.product-name a:hover {
  color: var(--color-primary);
}
.woocommerce .cart-collaterals .cart_totals {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  padding: var(--space-sm);
}
.woocommerce .cart-collaterals .cart_totals h2 {
  font-size: 1.2rem;
  margin-bottom: 1rem;
}
.woocommerce .cart-collaterals .cart_totals table {
  border: none;
}
.woocommerce .cart-collaterals .cart_totals table td,
.woocommerce .cart-collaterals .cart_totals table th {
  border-top: 1px solid var(--color-border);
  padding: 0.75rem 0;
}
.woocommerce .cart-collaterals .cart_totals .order-total .woocommerce-Price-amount {
  font-size: 1.2rem;
  font-weight: 700;
}

/* --- Checkout form --- */

.woocommerce form .form-row {
  margin-bottom: 1.25rem;
}
.woocommerce form .form-row label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-body);
  margin-bottom: 0.35rem;
  display: block;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-btn);
  padding: 0.6em 0.85em;
  font-size: 0.95rem;
  font-family: var(--font-body);
  width: 100%;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-alpha-12);
  outline: none;
}
.woocommerce #customer_details,
.woocommerce #order_review_heading,
.woocommerce #order_review {
  margin-bottom: var(--space-md);
}

/* --- Order review table (checkout) --- */

.woocommerce-checkout #payment {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  padding: var(--space-sm);
  background: var(--color-bg-soft);
}
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 1rem;
  margin-bottom: 1rem;
}
.woocommerce-checkout #payment div.payment_box {
  background-color: var(--color-secondary);
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
  padding: 0.75rem 1rem;
}

/* --- Notices --- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: var(--radius-btn);
  font-size: 0.9rem;
}
.woocommerce-message {
  border-top-color: var(--color-primary);
}
.woocommerce-error {
  border-top-color: var(--color-error);
}
.woocommerce-info {
  border-top-color: var(--color-accent);
}

/* ================= SHOP FILTER BAR ================== */

.ikmore-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0 1.5rem;
  flex-wrap: wrap;
}

.ikmore-filter-bar__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex: 1;
}

.ikmore-filter-bar__sort {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex-shrink: 0;
}

/* Divider between cats and sort groups */
.ikmore-filter-bar__divider {
  width: 1px;
  height: 1.5rem;
  background: var(--color-border);
  align-self: center;
  flex-shrink: 0;
}

/* Base pill */
.ikmore-filter-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 0.875rem;
  border-radius: var(--radius-full);
  border: 1.5px solid var(--color-primary-alpha-15);
  background: transparent;
  color: var(--color-body);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
  white-space: nowrap;
}
.ikmore-filter-pill:hover {
  background: var(--color-primary-alpha-08);
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.ikmore-filter-pill.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* Sort pills - visually lighter than category pills */
.ikmore-filter-pill--sort {
  border-color: var(--color-border);
  color: var(--color-faded);
  font-size: 0.8125rem;
}
.ikmore-filter-pill--sort:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: var(--color-primary-alpha-08);
}
.ikmore-filter-pill--sort.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* Result count */
.woocommerce-result-count {
  font-size: 0.875rem;
  color: var(--color-faded);
  margin: 0 0 1rem;
}

@media (max-width: 921px) {
  .ikmore-filter-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    padding-bottom: 1.25rem;
  }
  .ikmore-filter-bar__sort {
    width: 100%;
  }
  .ikmore-filter-bar__divider {
    display: none;
  }
}


/* --- My Account --- */

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 0.6em 0.85em;
  border-radius: var(--radius-sm);
  font-weight: 500;
  color: var(--color-body);
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
  background-color: var(--color-secondary);
  color: var(--color-primary);
}

/* My Account: full layout */
.woocommerce-account .woocommerce {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  padding: 2rem 0;
}
.woocommerce-MyAccount-navigation {
  flex: 0 0 220px;
  background: var(--neutral-50);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1rem;
}
.woocommerce-MyAccount-navigation ul li {
  border-bottom: 1px solid var(--color-border);
}
.woocommerce-MyAccount-navigation ul li:last-child {
  border-bottom: none;
}
.woocommerce-MyAccount-content {
  flex: 1 1 0;
  min-width: 0;
}

/* Orders table */
.woocommerce-orders-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.woocommerce-orders-table th {
  text-align: left;
  padding: 0.6rem 0.75rem;
  background: var(--color-secondary);
  color: var(--color-primary);
  font-weight: 600;
  border-bottom: 2px solid var(--color-primary);
}
.woocommerce-orders-table td {
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
}
.woocommerce-orders-table tr:last-child td {
  border-bottom: none;
}
.woocommerce-orders-table .button {
  padding: 4px 10px;
  font-size: 0.8rem;
}

/* Addresses */
.woocommerce-Addresses .woocommerce-Address {
  background: var(--neutral-50);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1.25rem;
}
.woocommerce-Addresses .woocommerce-Address-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.woocommerce-Addresses .woocommerce-Address-title h3 {
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
}
.woocommerce-Addresses address {
  font-style: normal;
  line-height: 1.7;
  color: var(--color-body);
  font-size: 0.9rem;
}

/* Account forms */
.woocommerce-EditAccountForm .form-row label,
.woocommerce-address-fields .form-row label {
  font-weight: 600;
  font-size: 0.85rem;
  margin-bottom: 0.3rem;
  display: block;
  color: var(--color-heading);
}
.woocommerce-EditAccountForm .form-row input,
.woocommerce-address-fields .form-row input,
.woocommerce-EditAccountForm .form-row select,
.woocommerce-address-fields .form-row select {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-btn);
  padding: 0.55rem 0.85rem;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-body);
  background: #fff;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.woocommerce-EditAccountForm .form-row input:focus,
.woocommerce-address-fields .form-row input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-alpha-12);
}

@media (max-width: 768px) {
  .woocommerce-account .woocommerce {
    flex-direction: column;
  }
  .woocommerce-MyAccount-navigation {
    flex: none;
    width: 100%;
  }
}


/* ================= LOGIN / REGISTER MODAL ================== */

.ikmore-auth-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ikmore-auth-modal[hidden] {
  display: none;
}
.ikmore-auth-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(2px);
}
.ikmore-auth-modal__dialog {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: var(--radius-lg);
  width: min(480px, 95vw);
  max-height: 90vh;
  overflow-y: auto;
  padding: 2rem;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
}
.ikmore-auth-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  color: var(--color-faded);
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  transition: background var(--transition-fast), color var(--transition-fast);
}
.ikmore-auth-modal__close:hover {
  background: var(--color-secondary);
  color: var(--color-primary);
}

/* Tabs */
.ikmore-auth-modal__tabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 2px solid var(--color-border);
  padding-bottom: 0;
}
.ikmore-auth-modal__tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  padding: 0.5rem 1.25rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-faded);
  cursor: pointer;
  transition: color var(--transition-fast), border-color var(--transition-fast);
}
.ikmore-auth-modal__tab.is-active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}
.ikmore-auth-modal__tab:hover:not(.is-active) {
  color: var(--color-body);
}

/* Panel content */
.ikmore-auth-modal__panel .woocommerce-form__label {
  font-weight: 600;
  font-size: 0.85rem;
  display: block;
  margin-bottom: 0.3rem;
  color: var(--color-heading);
}
.ikmore-auth-modal__panel input[type="text"],
.ikmore-auth-modal__panel input[type="email"],
.ikmore-auth-modal__panel input[type="password"] {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-btn);
  padding: 0.55rem 0.85rem;
  font-size: 0.9rem;
  font-family: var(--font-body);
  color: var(--color-body);
  margin-bottom: 1rem;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.ikmore-auth-modal__panel input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-alpha-12);
}
.ikmore-auth-modal__panel .woocommerce-Button,
.ikmore-auth-modal__panel .button {
  width: 100%;
  justify-content: center;
  margin-top: 0.5rem;
}

/* Prevent body scroll when modal open */
body.ikmore-modal-open {
  overflow: hidden;
}


/* ================= RELATED PRODUCTS ================== */

.related.products {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 2px solid var(--color-border);
}
.related.products > h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-heading);
  margin-bottom: 1.5rem;
}
.related.products .products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
@media (max-width: 900px) {
  .related.products .products {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 480px) {
  .related.products .products {
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
  }
}
.related.products .product .woocommerce-loop-product__title {
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0.5rem 0 0.25rem;
}
.related.products .product .price {
  color: var(--color-primary);
  font-weight: 700;
  font-size: 0.9rem;
}
.related.products .product img {
  border-radius: var(--radius-btn);
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
}
.related.products .product .button {
  margin-top: 0.5rem;
  width: 100%;
  text-align: center;
}


/* ================= SEASONAL COLLECTIONS (product_collection taxonomy pills) ================== */

.ikmore-collections {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.75rem;
}
.ikmore-collection-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 20px;
  background: var(--color-secondary);
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--color-primary-alpha-20);
  transition: background var(--transition-fast), color var(--transition-fast);
}
.ikmore-collection-pill:hover {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}


/* ================= HOMEPAGE (page-home.php) ================== */

/* ── Shared container ── */
.ikmore-home-container {
  max-width: var(--content-max-width);
  margin-inline: auto;
  padding-inline: var(--space-sm);
}

/* ── Hero — light blue gradient, dark text ── */
.ikmore-home-hero {
  background: linear-gradient(160deg, var(--blue-200) 0%, var(--blue-100) 100%);
  color: var(--color-body);
  margin-top: calc(-1 * var(--navbar-height));
  overflow: hidden;
}
.ikmore-home-hero__layout {
  max-width: var(--content-max-width);
  margin-inline: auto;
  padding: calc(var(--space-lg) + var(--navbar-height)) var(--space-sm) var(--space-lg);
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: var(--gap-xl);
  align-items: center;
}
.ikmore-home-hero__eyebrow {
  display: inline-block;
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--s-eyebrow);
  margin-bottom: 0.75rem;
}
.ikmore-home-hero__heading {
  font-family: var(--font-heading);
  font-size: var(--text-4xl);
  font-weight: 800;
  line-height: var(--leading-tight);
  color: var(--color-primary-dark);
  margin: 0 0 1.25rem;
}
.ikmore-home-hero__sub {
  font-size: var(--text-md);
  color: var(--color-body);
  line-height: var(--leading-normal);
  max-width: 520px;
  margin: 0 0 2rem;
}
.ikmore-home-hero__ctas {
  display: flex;
  gap: 0.875rem;
  flex-wrap: wrap;
}

.ikmore-home-hero__img-wrap {
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-xl);
}
.ikmore-home-hero__img {
  width: 100%;
  height: auto;
  display: block;
}

/* ── About section ── */
.ikmore-home-about__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap-xl);
  align-items: center;
}
.ikmore-home-about__text h2 {
  margin: 0 0 1rem;
}
.ikmore-home-about__text > p {
  color: var(--color-faded);
  line-height: var(--leading-normal);
  margin-bottom: 1.5rem;
}
.ikmore-home-about__img-wrap {
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.ikmore-home-about__img {
  width: 100%;
  height: auto;
  display: block;
}

/* ── Stats (inside about text column) ── */
.ikmore-home-stats {
  display: flex;
  gap: var(--gap-lg);
  flex-wrap: wrap;
  margin-top: 0.5rem;
}
.ikmore-home-stat {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.ikmore-home-stat__num {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: 800;
  color: var(--s-stat-num);
  line-height: 1;
}
.ikmore-home-stat__label {
  font-size: var(--text-sm);
  color: var(--s-text-muted);
}


/* ── Standalone stats showcase section ── */
.ikmore-home-stats-section {
  background: var(--color-bg-soft);
  padding-block: var(--space-md);
}
.ikmore-home-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-lg);
  text-align: center;
}
.ikmore-home-stat-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: var(--gap-md) var(--gap-sm);
}
.ikmore-home-stat-card .ikmore-home-stat__num {
  font-size: var(--text-4xl);
  font-weight: 800;
  color: var(--color-primary-dark);
  line-height: 1;
}
.ikmore-home-stat-card .ikmore-home-stat__label {
  font-size: var(--text-base);
  color: var(--color-faded);
  font-weight: 500;
}
@media (max-width: 640px) {
  .ikmore-home-stats-row {
    grid-template-columns: 1fr;
    gap: var(--gap-md);
  }
}

/* ── Feature rows wrapper — flex column guarantees gap (no margin collapse) ── */
.ikmore-home-features {
  display: flex !important;
  flex-direction: column !important;
  gap: 8rem !important;
  padding-bottom: 2rem;
}

/* ── Alternating feature rows ── */
.ikmore-home-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
.ikmore-home-feature--reverse {
  direction: rtl;
}
.ikmore-home-feature--reverse > * {
  direction: ltr;
}
.ikmore-home-feature__img-wrap {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  aspect-ratio: 4 / 3;
}
.ikmore-home-feature__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ikmore-home-feature__text h2,
.ikmore-home-feature__text h3 {
  margin: 0 0 1.5rem;
}
.ikmore-home-feature__text > p {
  color: var(--color-faded);
  line-height: var(--leading-normal);
  margin: 0 0 1.25rem;
}
.ikmore-home-feature__list {
  list-style: none;
  padding: 0 0 0 1rem; /* 1rem paragraph indent from left edge */
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.ikmore-home-feature__list li {
  font-size: var(--text-base);
  color: var(--color-body);
  padding-left: 1.5rem;
  position: relative;
  line-height: var(--leading-snug);
}
.ikmore-home-feature__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  background-color: var(--color-primary);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}

/* ── Brand pillars - light blue section, cards on light bg ── */
.ikmore-home-pillars-section {
  background: linear-gradient(160deg, var(--blue-100) 0%, var(--blue-50) 100%);
  padding: var(--space-lg) 0;
}
.ikmore-home-pillars__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-md);
}
.ikmore-home-pillar {
  background: rgba(255,255,255,0.7);
  border: 1px solid var(--color-primary-alpha-10);
  border-radius: var(--radius-lg);
  padding: var(--gap-lg) var(--gap-md);
  text-align: center;
  transition: background var(--transition-normal), box-shadow var(--transition-normal);
}
.ikmore-home-pillar:hover {
  background: rgba(255,255,255,0.95);
  box-shadow: var(--shadow-md);
}
.ikmore-home-pillar__icon {
  width: 2.5rem;
  height: 2.5rem;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
  color: var(--s-icon);
}
.ikmore-home-pillar__icon svg {
  width: 2rem;
  height: 2rem;
}
.ikmore-home-pillar__title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-heading);
  margin: 0 0 0.625rem;
}
.ikmore-home-pillar__desc {
  font-size: var(--text-base);
  color: var(--color-faded);
  line-height: var(--leading-normal);
  margin: 0;
}

/* ── Calameo embed ── */
.ikmore-calameo-wrap {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  aspect-ratio: 900 / 600;
  position: relative;
}
.ikmore-calameo-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: transparent;
}

/* Click-to-load placeholder shown before user requests the Calameo viewer. */
.ikmore-calameo-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  background: var(--color-surface);
  border: 2px dashed var(--color-border);
  border-radius: var(--radius-lg);
  color: var(--color-faded);
  text-align: center;
  padding: 2rem;
}
.ikmore-calameo-placeholder__icon {
  width: 3.5rem;
  height: 3.5rem;
  color: var(--color-accent);
  opacity: 0.6;
}
.ikmore-calameo-placeholder__text {
  font-size: var(--text-base);
  color: var(--color-faded);
  margin: 0;
}

/* ── Contact CTA section ── */
.ikmore-home-cta__inner {
  text-align: center;
  max-width: 560px;
  margin-inline: auto;
}
.ikmore-home-cta__heading {
  font-size: var(--text-3xl);
  margin: 0 0 0.75rem;
}
.ikmore-home-cta__sub {
  font-size: var(--text-base);
  color: var(--color-faded);
  margin: 0 0 1.75rem;
  line-height: var(--leading-normal);
}

/* ── Responsive ── */
@media (max-width: 921px) {
  .ikmore-home-hero {
    margin-top: calc(-1 * var(--navbar-height-mob));
  }
  .ikmore-home-hero__layout {
    grid-template-columns: 1fr;
    padding-top: calc(var(--space-md) + var(--navbar-height-mob));
  }
  .ikmore-home-hero__img-wrap { display: none; }
  .ikmore-home-about__inner,
  .ikmore-home-feature,
  .ikmore-home-feature--reverse {
    grid-template-columns: 1fr;
    direction: ltr;
  }
  .ikmore-home-about__img-wrap { order: -1; }
  .ikmore-home-feature__img-wrap { order: -1; }

  /* When feature rows and about stack to single column, shrink the
     internal grid gap (image ↔ text) which would otherwise be 5rem / gap-xl */
  .ikmore-home-feature,
  .ikmore-home-about__inner {
    gap: var(--gap-md);
  }

  /* Reduce gap between feature rows */
  .ikmore-home-features {
    gap: var(--space-md) !important;
  }
}
@media (max-width: 768px) {
  .ikmore-home-pillars__grid {
    grid-template-columns: 1fr;
  }
  .ikmore-home-stats {
    gap: var(--gap-md);
  }
}
@media (max-width: 640px) {
  .ikmore-home-hero__ctas { flex-direction: column; }
  .ikmore-home-hero__btn { width: 100%; text-align: center; }
}


/* ================= PARTNERSHIPS PAGE ================== */

/* ── Shared section layout helpers ── */
.ikmore-partners-section-header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto var(--gap-lg);
}
.ikmore-partners-section-title {
  font-size: var(--text-2xl);
  font-family: var(--font-heading);
  color: var(--color-heading);
  margin: 0 0 0.5rem;
}
.ikmore-partners-section-sub {
  font-size: var(--text-base);
  color: var(--color-faded);
  margin: 0;
}

/* ── Hero ── */
.ikmore-partners-hero {
  background: linear-gradient(135deg, var(--blue-950) 0%, var(--blue-800) 55%, var(--blue-700) 100%);
  padding: var(--space-lg) 0;
}
.ikmore-partners-hero__inner {
  max-width: 760px;
  margin-inline: auto;
  padding-inline: var(--space-sm);
  text-align: center;
}
.ikmore-partners-hero__heading {
  font-family: var(--font-heading);
  font-size: var(--text-4xl);
  font-weight: 800;
  line-height: var(--leading-tight);
  color: var(--color-heading);
  margin: 0.75rem 0 1.25rem;
}
.ikmore-partners-hero__sub {
  font-size: var(--text-md);
  opacity: 0.85;
  line-height: var(--leading-normal);
  max-width: 600px;
  margin: 0 auto 2rem;
}
.ikmore-partners-hero__ctas {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ── Type cards grid ── */
.ikmore-partners-types__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-md);
}
.ikmore-partners-type-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-bg);
  transition: box-shadow var(--transition-normal), transform var(--transition-normal);
}
.ikmore-partners-type-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.ikmore-partners-type-card__img-wrap {
  aspect-ratio: 16/9;
  overflow: hidden;
}
.ikmore-partners-type-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}
.ikmore-partners-type-card:hover .ikmore-partners-type-card__img {
  transform: scale(1.04);
}
.ikmore-partners-type-card__body {
  padding: var(--gap-md);
}
.ikmore-partners-type-card__title {
  font-size: var(--text-md);
  font-weight: 700;
  color: var(--color-heading);
  margin: 0 0 0.5rem;
  line-height: var(--leading-snug);
}
.ikmore-partners-type-card__desc {
  font-size: var(--text-sm);
  color: var(--color-faded);
  line-height: var(--leading-normal);
  margin: 0;
}

/* ── Advantages grid ── */
.ikmore-partners-advantages__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-md);
}
.ikmore-partners-adv-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--gap-md);
}
.ikmore-partners-adv-card__icon {
  width: 2.5rem;
  height: 2.5rem;
  background: var(--s-icon-bg);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.875rem;
  color: var(--s-icon);
}
.ikmore-partners-adv-card__icon svg {
  width: 1.125rem;
  height: 1.125rem;
}
.ikmore-partners-adv-card__title {
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-heading);
  margin: 0 0 0.5rem;
  line-height: var(--leading-snug);
}
.ikmore-partners-adv-card__desc {
  font-size: var(--text-sm);
  color: var(--color-faded);
  line-height: var(--leading-normal);
  margin: 0;
}

/* ── Shelving section ── */
.ikmore-partners-shelving__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap-xl);
  align-items: center;
}
.ikmore-partners-shelving__img-wrap {
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.ikmore-partners-shelving__img {
  width: 100%;
  height: auto;
  display: block;
}
.ikmore-partners-shelving__text h2 {
  font-size: var(--text-2xl);
  margin: 0 0 1rem;
}
.ikmore-partners-shelving__text p {
  color: var(--color-faded);
  line-height: var(--leading-normal);
  margin-bottom: 1.25rem;
}
.ikmore-partners-shelving__list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.ikmore-partners-shelving__list li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: var(--text-base);
  color: var(--color-body);
}
.ikmore-partners-shelving__list li::before {
  content: '';
  flex-shrink: 0;
  margin-top: 0.2em;
  width: 1rem;
  height: 1rem;
  background-color: var(--color-primary);
  border-radius: 50%;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}

/* ── FAQ accordion ── */
.ikmore-partners-faq__list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ikmore-faq-item {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.ikmore-faq-item[open] {
  border-color: var(--color-primary-light);
}
.ikmore-faq-item__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--color-heading);
  cursor: pointer;
  list-style: none;
  gap: 1rem;
  transition: color var(--transition-fast);
}
.ikmore-faq-item__q::-webkit-details-marker { display: none; }
.ikmore-faq-item__q::after {
  content: '';
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  background-color: var(--color-primary);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  transition: transform var(--transition-fast);
}
.ikmore-faq-item[open] .ikmore-faq-item__q {
  color: var(--color-primary);
}
.ikmore-faq-item[open] .ikmore-faq-item__q::after {
  transform: rotate(180deg);
}
.ikmore-faq-item__a {
  padding: 0 1.25rem 1rem;
  border-top: 1px solid var(--color-border);
}
.ikmore-faq-item__a p {
  margin: 0.75rem 0 0;
  font-size: var(--text-base);
  color: var(--color-faded);
  line-height: var(--leading-normal);
}

/* ── CTA section ── */
.ikmore-partners-cta {
  padding-bottom: var(--space-xl); /* large gap before footer */
}
.ikmore-partners-cta__inner {
  text-align: left;
}
.ikmore-partners-cta__heading {
  font-size: var(--text-2xl);
  font-family: var(--font-heading);
  color: var(--color-heading);
  margin: 0 0 1rem;
}
.ikmore-partners-cta__body {
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--color-faded);
  margin: 0 0 1.5rem;
}

/* ── Partnership form section ── */
.ikmore-partners-form-section__inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--space-xl);
  align-items: start;
}
.ikmore-partners-form-section__intro h2 {
  font-size: var(--text-2xl);
  margin: 0 0 0.75rem;
}
.ikmore-partners-form-section__intro p {
  color: var(--color-faded);
  margin: 0;
}

/* Two-column compact layout for the partnership form fields.
   Row 1: Ime/Firma | Email
   Row 2: Grad      | Tip na obekta
   Row 3: Telefon (full)
   Row 4: Saobshtenie (full) */
.ikmore-partners-form-section__form .wpforms-form .wpforms-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1rem;
}
.ikmore-partners-form-section__form .wpforms-form .wpforms-fields .wpforms-field {
  float: none;
}
.ikmore-partners-form-section__form #wpforms-4670-field_0-container {
  width: calc(50% - 0.5rem);
  order: 1;
}
.ikmore-partners-form-section__form #wpforms-4670-field_4-container {
  width: calc(50% - 0.5rem);
  order: 2;
}
.ikmore-partners-form-section__form #wpforms-4670-field_1-container {
  width: calc(50% - 0.5rem);
  order: 3;
}
.ikmore-partners-form-section__form #wpforms-4670-field_2-container {
  width: calc(50% - 0.5rem);
  order: 4;
}
.ikmore-partners-form-section__form #wpforms-4670-field_3-container { order: 5; }
.ikmore-partners-form-section__form #wpforms-4670-field_5-container { order: 6; }

/* Responsive */
@media (max-width: 1024px) {
  .ikmore-partners-types__grid,
  .ikmore-partners-advantages__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 921px) {
  .ikmore-partners-hero {
    padding-top: var(--space-lg);
  }
}
@media (max-width: 768px) {
  .ikmore-partners-form-section__inner {
    grid-template-columns: 1fr;
  }
  .ikmore-partners-form-section__form #wpforms-4670-field_0-container,
  .ikmore-partners-form-section__form #wpforms-4670-field_4-container,
  .ikmore-partners-form-section__form #wpforms-4670-field_1-container,
  .ikmore-partners-form-section__form #wpforms-4670-field_2-container {
    width: 100%;
  }
  .ikmore-partners-shelving__inner {
    grid-template-columns: 1fr;
  }
  .ikmore-partners-shelving__img-wrap {
    max-height: 320px;
    overflow: hidden;
  }
}
@media (max-width: 640px) {
  .ikmore-partners-types__grid,
  .ikmore-partners-advantages__grid {
    grid-template-columns: 1fr;
  }
  .ikmore-partners-hero__ctas {
    flex-direction: column;
    align-items: stretch;
  }
}


/* ================= CONTACT PAGE ================== */

/* ── Hero ── */
.ikmore-contact-hero {
  background: var(--color-bg-soft);
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-md) 0;
  text-align: center;
}
.ikmore-contact-hero__inner {
  max-width: 640px;
  margin-inline: auto;
  padding-inline: var(--space-sm);
}
.ikmore-contact-hero__heading {
  font-family: var(--font-heading);
  font-size: var(--text-3xl);
  font-weight: 800;
  color: var(--color-heading);
  margin: 0 0 0.75rem;
}
.ikmore-contact-hero__sub {
  font-size: var(--text-md);
  color: var(--color-faded);
  margin: 0;
  line-height: var(--leading-normal);
}

/* ── Main layout ── */
.ikmore-contact-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: var(--gap-xl);
  align-items: flex-start;
}

/* ── Info sidebar ── */
.ikmore-contact-info {
  background: var(--color-bg-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--gap-md);
  font-size: var(--text-sm);
}
.ikmore-contact-info__title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-heading);
  margin: 0 0 1.25rem;
}
.ikmore-contact-info__item {
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
  margin-bottom: 1.25rem;
}
.ikmore-contact-info__item:last-of-type {
  margin-bottom: 0;
}
.ikmore-contact-info__icon {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  background: var(--color-primary-light);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
}
.ikmore-contact-info__icon svg {
  width: 1rem;
  height: 1rem;
}
.ikmore-contact-info__item strong {
  display: block;
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--color-heading);
  margin-bottom: 0.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ikmore-contact-info__item p {
  margin: 0;
  font-size: var(--text-base);
  color: var(--color-faded);
}
.ikmore-contact-info__item a {
  color: var(--color-primary);
  text-decoration: none;
}
.ikmore-contact-info__item a:hover {
  text-decoration: underline;
}
.ikmore-contact-info__note {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
  font-size: var(--text-sm);
  color: var(--color-faded);
  line-height: var(--leading-normal);
}
.ikmore-contact-info__note a {
  color: var(--color-primary);
  text-decoration: none;
}
.ikmore-contact-info__note a:hover { text-decoration: underline; }

/* ── Form wrap ── */
.ikmore-contact-form-wrap__title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-heading);
  margin: 0 0 1.25rem;
}

/* WPForms - shared styles for contact and partnership forms */
.ikmore-contact-form-wrap .wpforms-container .wpforms-form .wpforms-field input,
.ikmore-contact-form-wrap .wpforms-container .wpforms-form .wpforms-field textarea,
.ikmore-contact-form-wrap .wpforms-container .wpforms-form .wpforms-field select,
.ikmore-partners-form-section__form .wpforms-container .wpforms-form .wpforms-field input,
.ikmore-partners-form-section__form .wpforms-container .wpforms-form .wpforms-field textarea,
.ikmore-partners-form-section__form .wpforms-container .wpforms-form .wpforms-field select {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-body) !important;
  font-size: var(--text-base) !important;
  padding: 0.6rem 0.875rem !important;
  width: 100% !important;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.ikmore-contact-form-wrap .wpforms-container .wpforms-form .wpforms-field input:focus,
.ikmore-contact-form-wrap .wpforms-container .wpforms-form .wpforms-field textarea:focus,
.ikmore-contact-form-wrap .wpforms-container .wpforms-form .wpforms-field select:focus,
.ikmore-partners-form-section__form .wpforms-container .wpforms-form .wpforms-field input:focus,
.ikmore-partners-form-section__form .wpforms-container .wpforms-form .wpforms-field textarea:focus,
.ikmore-partners-form-section__form .wpforms-container .wpforms-form .wpforms-field select:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px var(--color-primary-alpha-12) !important;
  outline: none !important;
}
.ikmore-contact-form-wrap .wpforms-container .wpforms-form .wpforms-submit-container button[type=submit],
.ikmore-partners-form-section__form .wpforms-container .wpforms-form .wpforms-submit-container button[type=submit] {
  background: var(--s-btn-bg) !important;
  border: 2px solid var(--s-btn-border) !important;
  border-radius: var(--radius-btn) !important;
  color: var(--s-btn-color) !important;
  font-family: var(--font-body) !important;
  font-size: var(--text-base) !important;
  font-weight: 600 !important;
  padding: 0.75rem 1.75rem !important;
  cursor: pointer !important;
  transition: background-color var(--transition-fast), border-color var(--transition-fast) !important;
}
.ikmore-contact-form-wrap .wpforms-container .wpforms-form .wpforms-submit-container button[type=submit]:hover,
.ikmore-partners-form-section__form .wpforms-container .wpforms-form .wpforms-submit-container button[type=submit]:hover {
  background: var(--s-btn-hover-bg) !important;
  border-color: var(--s-btn-hover-bg) !important;
  color: var(--s-btn-color) !important;
}

/* Responsive */
@media (max-width: 921px) {
  .ikmore-contact-hero {
    padding-top: var(--space-md);
  }
}
@media (max-width: 768px) {
  .ikmore-contact-layout {
    grid-template-columns: 1fr;
  }
  .ikmore-contact-info {
    order: 2; /* form first on mobile */
  }
  .ikmore-contact-form-wrap {
    order: 1;
  }
}


/* ================= FOOTER ================== */

.ikmore-footer {
  background: var(--color-dark);
  color: var(--color-dark-text);
  font-size: var(--text-xs);
  line-height: 1.6;
  margin-top: auto;
}

.ikmore-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 3.5rem var(--space-sm) 2.5rem;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 2.5rem;
}

/* Column headings */
.ikmore-footer__col-title {
  color: var(--white);
  font-size: var(--text-sm) !important;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 1rem !important;
  font-family: var(--font-heading);
}

/* Link lists */
.ikmore-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ikmore-footer__links a,
nav.ikmore-footer__col a {
  color: var(--white-70);
  text-decoration: none;
  transition: color var(--transition-fast);
}
.ikmore-footer__links a:hover,
nav.ikmore-footer__col a:hover {
  color: #fff;
}

/* Brand column */
.ikmore-footer__col--brand {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
/* Footer logo - inline SVG, white on dark background */
.ikmore-footer__logo-link svg {
  display: block;
  height: 28px;
  width: auto;
  color: #fff;
}

/* Transparent header (homepage hero) - logo stays primary blue since hero bg is light */
.ast-theme-transparent-header .custom-logo-link svg {
  color: var(--color-primary);
}
.ikmore-footer__logo-text {
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.3px;
  font-family: var(--font-heading);
}
.ikmore-footer__tagline {
  margin: 0;
  color: var(--white-60);
  font-size: var(--text-sm);
  line-height: 1.65;
  max-width: 260px;
}

/* Social icons */
.ikmore-footer__social {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 0.75rem;
}
.ikmore-footer__social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: var(--radius-btn);
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.75);
  text-decoration: none;
  transition: background var(--transition-fast), color var(--transition-fast);
}
.ikmore-footer__social a:hover {
  background: var(--color-primary);
  color: #fff;
}

/* Address / contacts */
.ikmore-footer__address {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.ikmore-footer__address p {
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  color: var(--white-70);
}
.ikmore-footer__address svg {
  flex-shrink: 0;
  margin-top: 3px;
  opacity: 0.6;
}
.ikmore-footer__address a {
  color: var(--color-dark-text);
  text-decoration: none;
  transition: color var(--transition-fast);
}
.ikmore-footer__address a:hover {
  color: #fff;
}
.ikmore-footer__contact-link {
  display: inline-block;
  margin-top: 0.75rem;
  color: var(--color-secondary);
  font-size: 0.83rem;
  font-weight: 600;
  text-decoration: none;
  transition: opacity var(--transition-fast);
}
.ikmore-footer__contact-link:hover {
  color: #fff;
  opacity: 1;
}

/* Bottom bar */
.ikmore-footer__bar {
  border-top: 1px solid rgba(255,255,255,0.1);
}
.ikmore-footer__bar-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1rem var(--space-sm);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.ikmore-footer__copy,
.ikmore-footer__legal {
  margin: 0;
  font-size: 14px;
  color: var(--white-45);
}
.ikmore-footer__copy a {
  color: var(--white-60);
  text-decoration: none;
}
.ikmore-footer__legal {
  display: flex;
  gap: 1.25rem;
}
.ikmore-footer__legal a {
  color: var(--white-45);
  text-decoration: none;
  transition: color var(--transition-fast);
}
.ikmore-footer__legal a:hover {
  color: rgba(255,255,255,0.8);
}

/* Responsive */
@media (max-width: 1024px) {
  .ikmore-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
  .ikmore-footer__col--brand {
    grid-column: 1 / -1;
  }
}
@media (max-width: 640px) {
  .ikmore-footer__inner {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .ikmore-footer__col--brand {
    grid-column: auto;
  }
  .ikmore-footer__bar-inner {
    flex-direction: column;
    text-align: center;
  }
}


/* ================= MOBILE RESPONSIVE FIXES ================== */

/* ── Mini-cart: prevent overflow on narrow screens ── */
@media (max-width: 480px) {
  .ikmore-minicart-dropdown {
    right: -8px; /* slight offset so arrow still aligns */
  }
}

/* ── Hero section ── */
@media (max-width: 640px) {
  .ikmore-hp-hero {
    padding-block: clamp(3rem, 8vw, 5rem);
  }
  /* hero heading font-size now driven by var(--text-4xl) token — no override needed */
  .ikmore-hp-hero__ctas {
    flex-direction: column;
    align-items: stretch;
  }
  .ikmore-hp-btn {
    text-align: center;
    justify-content: center;
  }
}

/* ── Category grid ── */
@media (max-width: 640px) {
  .ikmore-hp-cats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
}
@media (max-width: 380px) {
  .ikmore-hp-cats__grid {
    grid-template-columns: 1fr;
  }
}

/* ── Product grids ── */
@media (max-width: 640px) {
  .ikmore-hp-prods,
  .ikmore-hp-prods--8,
  .ikmore-hp-prods--4 {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
}
@media (max-width: 380px) {
  .ikmore-hp-prods,
  .ikmore-hp-prods--8,
  .ikmore-hp-prods--4 {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
}

/* ── Section header (title + "See all" link) ── */
@media (max-width: 480px) {
  .ikmore-hp-section__header {
    flex-wrap: wrap;
    gap: 0.25rem;
  }
  .ikmore-hp-section__link {
    font-size: 0.8rem;
  }
}

/* ── B2B section ── */
@media (max-width: 768px) {
  .ikmore-hp-b2b__inner {
    flex-direction: column;
    gap: 2rem;
    text-align: center;
  }
  .ikmore-hp-b2b__perks {
    text-align: left;
    display: inline-block;
  }
  .ikmore-hp-b2b__visual {
    display: none; /* hide decorative icon on mobile */
  }
}

/* ── 404 search form ── */
@media (max-width: 480px) {
  .ikmore-404__search {
    flex-direction: column;
    max-width: 100%;
    border-radius: var(--radius-md);
    overflow: visible;
    gap: 0.5rem;
    background: none;
    border: none;
    box-shadow: none;
  }
  .ikmore-404__search-input {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-btn);
    padding: 0.7rem 1rem;
    font-size: 1rem;
    width: 100%;
  }
  .ikmore-404__search-btn {
    border-radius: var(--radius-btn);
    padding: 0.7rem;
    width: 100%;
    justify-content: center;
  }
}

/* ── 404 action buttons ── */
@media (max-width: 480px) {
  .ikmore-404__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .ikmore-404__actions .button,
  .ikmore-404__actions a {
    text-align: center;
    width: 100%;
  }
}

/* ── Auth modal: tighter padding on mobile ── */
@media (max-width: 480px) {
  .ikmore-auth-modal__dialog {
    padding: 1.25rem;
  }
  .ikmore-auth-modal__close {
    top: 0.75rem;
    right: 0.75rem;
    font-size: 1.6rem; /* larger tap target */
    padding: 6px 10px;
  }
}

/* ── Homepage product card text on small screens ── */
@media (max-width: 480px) {
  .ikmore-hp-prod__name {
    font-size: 0.8rem;
  }
  .ikmore-hp-prod__price {
    font-size: 0.85rem;
  }
  .ikmore-hp-prod__cta {
    font-size: 0.78rem;
    padding: 0.4rem 0.6rem;
  }
}

/* ── Single product page: full-width add-to-cart on mobile ── */
@media (max-width: 640px) {
  .woocommerce div.product form.cart {
    flex-wrap: wrap;
  }
  .woocommerce div.product form.cart .quantity {
    width: 100%;
    margin-bottom: 0.5rem;
  }
  .woocommerce div.product form.cart .single_add_to_cart_button {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

/* ── Cart & checkout tables: prevent horizontal scroll ── */
@media (max-width: 640px) {
  .woocommerce-cart-form {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .woocommerce table.shop_table {
    min-width: 480px;
  }
  /* Order summary stack */
  .woocommerce-checkout #order_review,
  .cart-collaterals {
    width: 100% !important;
    float: none !important;
  }
}


/* ================= MOBILE HEADER ================== */

/* ── Compact shop icons on tablet/mobile ── */
@media (max-width: 921px) {

  /* Reduce gap so icons don't crowd the hamburger */
  .ikmore-shop-icons {
    gap: 0.4rem;
    margin-left: 0.5rem;
  }

  /* Shrink "Вход / Регистрация" to a compact icon-like button */
  .ikmore-login-btn {
    font-size: 0.75rem;
    padding: 4px 8px;
    white-space: nowrap;
  }

  /* Cart and account icons: tighten */
  .ikmore-shop-icon {
    width: 36px;
    height: 36px;
  }

  /* Ensure header stays single row and doesn't wrap */
  .main-header-container {
    flex-wrap: nowrap;
    align-items: center;
  }
}

/* ── Very small screens: hide login text, show only icons ── */
@media (max-width: 480px) {
  .ikmore-login-btn {
    /* Replace text with a user icon via CSS */
    font-size: 0;
    width: 36px;
    height: 36px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-btn);
    background: var(--color-secondary);
  }
  .ikmore-login-btn::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    background-color: var(--color-primary);
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-7 8-7s8 3 8 7'/%3E%3C/svg%3E");
    mask-repeat: no-repeat;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-7 8-7s8 3 8 7'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
  }
}

/* ── Astra mobile dropdown menu: brand styling ── */
.ast-header-break-point .main-navigation .menu-item .menu-link,
.ast-header-break-point .main-navigation ul .menu-item .menu-link {
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-body);
  font-weight: 500;
}
.ast-header-break-point .main-navigation .current-menu-item > .menu-link,
.ast-header-break-point .main-navigation .current-menu-ancestor > .menu-link {
  color: var(--color-primary) !important;
  font-weight: 700 !important;
}
.ast-header-break-point .main-navigation .menu-item .menu-link:hover {
  color: var(--color-primary);
}

/* ── Mobile menu popup: brand background ── */
.ast-mobile-popup-inner,
.ast-mobile-popup-content {
  background-color: #fff !important;
}

/* ── Hamburger toggle button: strip Astra bg, keep brand color ── */
.ast-header-break-point .menu-toggle.main-header-menu-toggle {
  color: var(--color-primary) !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0.25rem !important;
  line-height: 1 !important;
}
.ast-header-break-point .menu-toggle.main-header-menu-toggle:hover,
.ast-header-break-point .menu-toggle.main-header-menu-toggle:focus {
  color: var(--color-primary) !important;
  background: transparent !important;
  opacity: 0.8;
}
/* Hamburger bars inherit color from the button via currentColor */
.ast-header-break-point .menu-toggle.main-header-menu-toggle .ast-icon,
.ast-header-break-point .menu-toggle.main-header-menu-toggle svg {
  color: inherit !important;
  fill: currentColor !important;
}

/* ── Suppress desktop underline animation on mobile ── */
@media (max-width: 921px) {
  .main-header-menu .menu-item > .menu-link::after {
    display: none;
  }
}

/* ── Hide Astra header builder button (Контакти) in mobile popup ── */
.ast-mobile-popup-inner .ast-builder-button-1,
.ast-mobile-popup-content .ast-builder-button-1 {
  display: none !important;
}


/* ================= RESPONSIVE TOKEN OVERRIDES ================== */

/* ── Tablet + mobile (≤921px): collapse large/xl spacing to md level ── */
/* Sections use padding: var(--space-lg) — two adjacent = 2x. Must tighten early. */
@media (max-width: 921px) {
  :root {
    --space-xl: var(--space-md);
    --space-lg: var(--space-md);
  }
}

@media (max-width: 640px) {
  :root {
    --leading-tight:  1.15;
    --leading-snug:   1.3;
    --leading-normal: 1.55;

    --gap-xl: 1.75rem;
    --gap-lg: 1.5rem;
    --gap-md: 1rem;
    --gap-sm: 0.6rem;
    --gap-xs: 0.35rem;
  }
}


/* ================= MOBILE NAVBAR + LOGO TWEAKS ================== */

/* ── Navbar: mobile — narrower height ── */
@media (max-width: 921px) {
  .ast-primary-header-bar.main-header-bar,
  .main-header-bar {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .site-header,
  .site-header#masthead,
  #masthead,
  .ast-primary-header-bar {
    height: var(--navbar-height-mob) !important;
    min-height: var(--navbar-height-mob) !important;
  }
  .custom-logo {
    height: auto !important;
    width: auto !important;
    max-height: 48px !important;
  }
}

/* ── Page content: push below fixed navbar ── */
/*
 * All pages get padding-top so content starts below the fixed navbar.
 * Transparent-header heroes cancel this with margin-top: -navbar-height
 * so their background still extends to the top (behind the transparent bar).
 */
.site-content {
  padding-top: var(--navbar-height);
}
@media (max-width: 921px) {
  .site-content {
    padding-top: var(--navbar-height-mob);
  }
}


/* ================= ABOUT PAGE (page-za-nas.php) ================== */

/* Stats: centred row, same component as homepage stats */
.ikmore-about-stats {
  justify-content: center;
}


/* ================= HIDDEN NAV ITEMS (pre-launch - remove when live) ================== */

.ast-primary-navigation-wrap li.menu-item:has(> a[href*="za-nas"]),
.ast-mobile-popup-inner li.menu-item:has(> a[href*="za-nas"]) {
  display: none !important;
}