/* =========================================================
   Platform Maps (GeneratePress / Elementor / WooCommerce / WP)
   ========================================================= */

/* ===== GeneratePress → core tokens ===== */
:root{
  --contrast: var(--color-heading);
  --contrast-2: var(--color-text-strong);
  --contrast-3: var(--color-text);

  --base:   var(--color-border);
  --base-2: var(--color-surface-alt);
  --base-3: var(--color-surface);

  --interactive:     var(--color-primary);
  --interactive-600: var(--color-primary-strong);
  --interactive-400: var(--color-brand-400);
  --interactive-300: color-mix(in oklab, var(--color-primary), #fff 35%);
  --interactive-200: color-mix(in oklab, var(--color-primary), #fff 55%);
  --interactive-100: var(--color-brand-100);
  --interactive-50:  color-mix(in oklab, var(--color-primary), #fff 88%);

  --gp-button-radius: var(--radius-input);
  --gp-form-field-radius: var(--radius-input);
}

/* ===== Elementor (Globals) ===== */
:root{
  --e-global-color-primary:   var(--color-heading);
  --e-global-color-secondary: var(--color-text-strong);
  --e-global-color-text:      var(--color-text);
  --e-global-color-accent:    var(--color-primary);

  --e-global-typography-primary-font-family:   var(--font-sans);
  --e-global-typography-secondary-font-family: var(--font-sans);
  --e-global-typography-text-font-family:      var(--font-sans);
}

/* ===== WooCommerce ===== */
:root{
  --wc-primary:        var(--color-primary);
  --wc-primary-text:   #fff;
  --wc-secondary:      var(--color-surface-alt);
  --wc-secondary-text: var(--color-text);
  --wc-content-bg:     var(--color-surface);
  --wc-subtext:        var(--color-text);

  --wc-green:  var(--color-success);
  --wc-blue:   var(--color-info);
  --wc-orange: var(--color-warning);
  --wc-red:    var(--color-danger);

  --wc-form-border-color: var(--color-border);
  --wc-form-border-radius: var(--radius-input);
}

/* ===== Elementor layout contract ===== */
:where(.elementor) .e-con.e-con-boxed  > .e-con-inner{
  max-width: min(100%, var(--container-max));
  margin-inline: auto;
  padding-inline: var(--container-padding);
}
:where(.elementor) .e-con.e-con-full   > .e-con-inner{
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
:where(.elementor-section.elementor-section-boxed) > .elementor-container{
  max-width: min(100%, var(--container-max));
  margin-inline: auto;
  padding-inline: var(--container-padding);
}
:where(.elementor-section.elementor-section-full_width) > .elementor-container{
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
:where(.elementor) .e-con > .e-con-inner:has(> .e-con){ padding-inline: 0; }
:where(.elementor) .e-con.e-con-boxed > .e-con-inner > .e-con.e-con-boxed > .e-con-inner{
  padding-inline: var(--container-padding);
}

/* ===== Form controls normalization ===== */
:where(input[type="text"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="url"], input[type="password"], select, textarea, button){
  font-size: inherit;
}
:where(input[type="text"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="url"], input[type="password"], select, textarea){
  padding: var(--input-padding-y) var(--input-padding-x);
  border-radius: var(--radius-input);
  border: var(--border-width-1) solid var(--input-border);
  background: var(--input-bg);
}
:where(button, .button, [type="submit"]){
  min-height: var(--btn-min-height);
  padding: var(--btn-padding-y) var(--btn-padding-x);
  border-radius: var(--radius-button);
}

/* ===== WP Presets mapping ===== */
:root{
  --wp--preset--color--black: #000;
  --wp--preset--color--white: #fff;
  --wp--preset--color--contrast:      var(--color-heading);
  --wp--preset--color--contrast-2:    var(--color-text-strong);
  --wp--preset--color--contrast-3:    var(--color-text);
  --wp--preset--color--base:          var(--color-border);
  --wp--preset--color--base-2:        var(--color-surface-alt);
  --wp--preset--color--base-3:        var(--color-surface);
  --wp--preset--color--global-color-7:var(--color-primary);

  --wp--preset--font-size--small:  var(--fs-small);
  --wp--preset--font-size--medium: var(--fs-body);
  --wp--preset--font-size--large:  var(--fs-h4);
  --wp--preset--font-size--x-large:var(--fs-h3);
}

/* ===== Focus color normalize ===== */
:root{ --e-focus-outline-color: var(--focus-ring-color); }

@media (min-width: 768px){
  :root{ --plp-star-inset: var(--space-4); }
}