/*
Theme Name: The Lean Six Sigma Company
Theme URI: https://example.com
Author: Jason
Description: The Lean Six Sigma Company Theme
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: custom-theme
Tags: custom, responsive, block-patterns, full-site-editing
*/

@import url('https://fonts.googleapis.com/css2?family=Mona+Sans:ital,wdth,wght@0,75..125,200..900;1,75..125,200..900&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');

/* ==========================================================================
   DESIGN TOKENS
   ========================================================================== */
:root {
  --color-primary:         #E70491;
  --color-primary-light:   #FFBBE5;
  --color-secondary:       #0075FF;
  --color-secondary-light: #F3F8FF;
  --color-dark:            #002A4C;
  --color-heading:         #001B2F;
  --color-body:            #556981;
  --color-white:           #FFFFFF;

  --font-heading: 'Mona Sans', sans-serif;
  --font-body:    'Open Sans', sans-serif;

  --font-size-h1:   clamp(2rem,   5vw + 1rem,   3.5rem);
  --font-size-h2:   clamp(1.375rem, 3vw + 0.5rem, 2rem);
  --font-size-h3:   clamp(1.125rem, 2vw + 0.25rem, 1.375rem);
  --font-size-h4:   clamp(1rem,     1.5vw,          1.25rem);
  --font-size-h5:   clamp(0.875rem, 1vw,            0.9rem);
  --font-size-body: clamp(0.875rem, 1vw + 0.25rem,  1rem);
  --font-size-small: 0.875rem;
  --font-size-xs:    0.8rem;
  --font-size-btn:   0.875rem;

  --line-height-heading: 110%;
  --font-weight-bold:    700;
  --font-weight-semibold:600;
  --font-weight-medium:  500;

  --btn-padding-y:    15px;
  --btn-padding-x:    20px;
  --btn-height:       50px;
  --btn-radius:       5px;
  --btn-radius-dark:  10px;

  --radius-card:  8px;
  --radius-input: 5px;
  --transition:   0.2s ease;

  --gf-bg:               #EDF4FF;
  --gf-text:             #0B2A4A;
  --gf-placeholder:      #516784;
  --gf-focus:            #A9C8FF;
  --gf-error:            #D2343E;
  --gf-btn:              #E70491;
  --gf-btn-text:         #FFFFFF;
  --gf-radius:           8px;
  --gf-pad-y:            12px;
  --gf-pad-x:            16px;
  --gf-gap:              6px;
  --gf-field-font-size:  16px;
  --gf-float-label-size: 12px;
  --gf-label-space:      18px;
  --gf-phone-flag-width: 56px;
  --gf-accent:           #187CC4;
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; -webkit-font-smoothing: antialiased; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  color: var(--color-body);
  background: var(--color-white);
  line-height: 1.6;
  overflow-x: hidden;
}
main, .wp-site-blocks { overflow-x: hidden; }

img, video, .wp-block-image img { max-width: 100%; height: auto; vertical-align: middle; border: 0; }

a { color: var(--color-primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-dark); }
p a { color: var(--color-primary); }

p { margin-block-start: 0; }
p:last-child { margin-block-end: 0 !important; }

h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-heading);
  color: var(--color-heading);
  margin-block-start: 0;
  margin-bottom: 1.5rem;
  letter-spacing: -0.03em;
}
h1 { font-size: var(--font-size-h1); }
h2 { font-size: var(--font-size-h2); }
h3 { font-size: var(--font-size-h3); }
h4 { font-size: var(--font-size-h4); }
h5 { font-size: var(--font-size-h5); text-transform: uppercase; }
h6 { font-size: var(--font-size-h5); }

.wp-block-list li            { margin-bottom: 0 !important; }
.wp-block-list li:last-child { margin-bottom: 1rem !important; }

/* ==========================================================================
   BUTTON BASE
   ========================================================================== */
.wp-block-button__link,
.wp-element-button,
.btn {
  display: inline-flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: var(--btn-padding-y) var(--btn-padding-x);
  min-height: var(--btn-height);
  font-family: var(--font-heading);
  font-style: normal;
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-btn);
  line-height: 1.25rem;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  border: none;
  border-radius: var(--btn-radius);
  transition: background-color var(--transition), color var(--transition),
              border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.wp-block-button__link:hover,
.wp-element-button:hover,
.btn:hover   { transform: translateY(-1px); }
.wp-block-button__link:active,
.wp-element-button:active,
.btn:active  { transform: translateY(0); }
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible,
.btn:focus-visible { outline: 2px solid var(--color-secondary); outline-offset: 3px; }

:root :where(.wp-block-buttons-is-layout-flex) { gap: 0.75rem; }
.inline_button { display: inline !important; }

/* ==========================================================================
   BUTTON VARIANTS
   ========================================================================== */
.wp-block-button__link,
.wp-element-button,
.btn-primary {
  background: var(--color-primary);
  color: var(--color-white) !important;
  border: 1px solid transparent;
  box-sizing: border-box;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.wp-block-button__link:hover,
.wp-element-button:hover,
.btn-primary:hover { background: #FFBBE5; color: #E70491 !important; }

.btn-secondary,
.wp-block-button.is-style-secondary .wp-block-button__link {
  background: var(--color-secondary-light) !important;
  color: var(--color-secondary) !important;
  border: 1px solid var(--color-secondary) !important;
  box-sizing: border-box !important;
}
.btn-secondary:hover,
.wp-block-button.is-style-secondary .wp-block-button__link:hover {
  background: #0075FF !important; color: #F3F8FF !important;
}

.btn-outline,
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: #0075FF !important;
  border: 1px solid #0075FF !important;
  box-sizing: border-box !important;
  min-height: var(--btn-height) !important;
  padding: var(--btn-padding-y) var(--btn-padding-x) !important;
}
.btn-outline:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: #F3F8FF !important; color: #0075FF !important;
}

.btn-dark,
.wp-block-button.is-style-primary-dark .wp-block-button__link {
  background: var(--color-dark) !important;
  color: var(--color-white) !important;
  border: 1px solid transparent !important;
  border-radius: var(--btn-radius-dark) !important;
  box-sizing: border-box !important;
}
.btn-dark:hover,
.wp-block-button.is-style-primary-dark .wp-block-button__link:hover {
  background: #001221 !important; color: #F3F8FF !important;
}

.register_button,
.wp-block-button.is-style-register .wp-block-button__link {
  background: var(--color-secondary-light) !important;
  color: var(--color-secondary) !important;
  border: 1px solid var(--color-secondary) !important;
  border-radius: 18px !important;
  box-sizing: border-box !important;
}
.register_button:hover,
.wp-block-button.is-style-register .wp-block-button__link:hover { background: #eef4ff !important; }

.cta_button,
.wp-block-button.is-style-cta .wp-block-button__link {
  background: var(--color-primary) !important;
  color: var(--color-white) !important;
  border: 1px solid var(--color-primary) !important;
  border-radius: 18px !important;
  box-sizing: border-box !important;
  box-shadow: 0 10px 28px rgba(225,29,143,0.35);
}
.cta_button:hover,
.wp-block-button.is-style-cta .wp-block-button__link:hover {
  background: #c8157b !important;
  border-color: #c8157b !important;
  box-shadow: 0 12px 32px rgba(200,21,123,0.4);
}

.wp-block-button:not([class*="is-style-"]) .wp-block-button__link,
.wp-block-button.is-style-fill .wp-block-button__link {
  background-color: #E70491 !important;
  color: #ffffff !important;
  border-color: #E70491 !important;
}
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover,
.wp-block-button.is-style-fill .wp-block-button__link:hover {
  background-color: #c80380 !important;
  border-color: #c80380 !important;
  color: #ffffff !important;
}
.wp-element-button { background-color: #E70491 !important; color: #ffffff !important; }
.wp-element-button:hover { background-color: #c80380 !important; color: #ffffff !important; }

/* ==========================================================================
   HEADER (WordPress block nav base only — visual styles live in navbar.css)
   ========================================================================== */
.site-header { position: relative; z-index: 1000; background: var(--color-white); }
.current-menu-item { color: var(--color-secondary); }

:root :where(.wp-block-navigation-is-layout-flex) { gap: 1rem; }
.wp-block-navigation .wp-block-page-list,
.wp-block-navigation__container,
.wp-block-navigation__responsive-close,
.wp-block-navigation__responsive-container,
.wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-dialog { gap: inherit; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer { background: var(--color-dark); color: var(--color-secondary-light); }
.site-footer a { color: var(--color-secondary-light); }
.site-footer a:hover { color: var(--color-white); }

/* ==========================================================================
   GRAVITY FORMS
   ========================================================================== */
.gform_footer p, .gform_footer br, .shortcode-form p { display: none !important; }

.gform_wrapper.gravity-theme .gform_fields {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--gf-gap) !important;
  margin: 0 !important; padding: 0 !important;
}
.gform_wrapper.gravity-theme .gfield { margin: 0 !important; }
.gform_wrapper.gravity-theme .gfield--width-full    { grid-column: span 12 / span 12; }
.gform_wrapper.gravity-theme .gfield--width-half    { grid-column: span 6 / span 6; }
.gform_wrapper.gravity-theme .gfield--width-third   { grid-column: span 4 / span 4; }
.gform_wrapper.gravity-theme .gfield--width-quarter { grid-column: span 3 / span 3; }
.gform_wrapper.gravity-theme .gform_required_legend { display: none; }
.gform_wrapper.gravity-theme { position: relative; z-index: 2; }

.gform_wrapper.gravity-theme .ginput_container input,
.gform_wrapper.gravity-theme .ginput_container textarea,
.gform_wrapper.gravity-theme .ginput_container select {
  box-sizing: border-box; border-style: solid; border-width: 2px;
  border-color: transparent; outline: 0;
}
.gform_wrapper.gravity-theme .ginput_container input[type=text],
.gform_wrapper.gravity-theme .ginput_container input[type=email],
.gform_wrapper.gravity-theme .ginput_container input[type=tel],
.gform_wrapper.gravity-theme .ginput_container input[type=number],
.gform_wrapper.gravity-theme .ginput_container input[type=url],
.gform_wrapper.gravity-theme .ginput_container textarea {
  background: var(--gf-bg); border-radius: var(--gf-radius);
  padding: var(--gf-pad-y) var(--gf-pad-x) !important;
  color: var(--gf-text); font-size: var(--gf-field-font-size); width: 100%;
  border-width: 2px !important; transition: border-color .15s ease;
}
.gform_wrapper.gravity-theme .ginput_container textarea { min-height: 150px; resize: vertical; }
.gform_wrapper.gravity-theme .ginput_container select {
  background: var(--gf-bg); border-radius: var(--gf-radius);
  padding: var(--gf-pad-y) 40px var(--gf-pad-y) var(--gf-pad-x) !important;
  color: var(--gf-text); font-size: var(--gf-field-font-size); width: 100%;
  appearance: none; border-width: 2px !important;
  background-image:
    linear-gradient(45deg,  transparent 50%, var(--gf-placeholder) 50%),
    linear-gradient(135deg, var(--gf-placeholder) 50%, transparent 50%);
  background-position: calc(100% - 24px) calc(50% - 2px), calc(100% - 16px) calc(50% - 2px);
  background-size: 7px 7px, 7px 7px; background-repeat: no-repeat;
  transition: border-color .15s ease;
}
.gform_wrapper.gravity-theme .ginput_container input:hover,
.gform_wrapper.gravity-theme .ginput_container input:focus,
.gform_wrapper.gravity-theme .ginput_container textarea:hover,
.gform_wrapper.gravity-theme .ginput_container textarea:focus,
.gform_wrapper.gravity-theme .ginput_container select:hover,
.gform_wrapper.gravity-theme .ginput_container select:focus { border-color: var(--gf-focus) !important; }

.gform_wrapper.gravity-theme .gform_footer input[type=submit],
.gform_wrapper.gravity-theme .gform_button {
  display: block; width: 100%; box-sizing: border-box;
  background: var(--gf-btn); color: var(--gf-btn-text);
  border: 2px solid transparent; border-radius: 6px; padding: 12px 22px;
  font-family: var(--font-heading); font-size: 18px; font-weight: 700;
  cursor: pointer; transition: filter .15s ease;
}
.gform_wrapper.gravity-theme .gform_button:hover  { filter: brightness(1.05); }
.gform_wrapper.gravity-theme .gform_button:active { filter: brightness(0.95); }

.gform_wrapper.gravity-theme .gfield_validation_message,
.gform_wrapper.gravity-theme .validation_message {
  color: var(--gf-error); background: #fff4f4;
  border: 1px solid rgba(210,52,62,.25);
  border-radius: 6px; padding: 8px 10px; margin-top: 6px;
}
.gform_wrapper.gravity-theme .gform_validation_errors {
  background: #fff4f4; border: 1px solid rgba(210,52,62,.35);
  color: var(--gf-error); border-radius: 8px; padding: 12px 14px; margin: 10px 0 16px;
}

.gform_wrapper.gravity-theme .gfield--type-checkbox .gfield_label,
.gform_wrapper.gravity-theme .gfield--type-radio    .gfield_label { display: none; }
.gform_wrapper.gravity-theme .gfield--type-checkbox .gfield_checkbox .gchoice,
.gform_wrapper.gravity-theme .gfield--type-radio    .gfield_radio   .gchoice {
  display: flex; align-items: center; gap: 14px;
  list-style: none; margin: 0; padding-left: 0;
}
.gform_wrapper.gravity-theme .gfield-choice-input[type="checkbox"],
.gform_wrapper.gravity-theme .gfield-choice-input[type="radio"] {
  margin: 0; inline-size: 18px; block-size: 18px;
  transform: scale(1.2); transform-origin: center;
  accent-color: var(--gf-accent); appearance: auto;
}
.gform_wrapper.gravity-theme .gfield-choice-input[type="radio"] { border-radius: 50%; }
.gform_wrapper.gravity-theme .gfield--type-checkbox .gfield_checkbox label,
.gform_wrapper.gravity-theme .gfield--type-radio    .gfield_radio   label {
  background: transparent !important; border: 0 !important;
  padding: 0 !important; cursor: pointer; line-height: 1.5;
}
.gform_wrapper.gravity-theme .gfield--type-checkbox .gfield_checkbox label::before,
.gform_wrapper.gravity-theme .gfield--type-checkbox .gfield_checkbox label::after,
.gform_wrapper.gravity-theme .gfield--type-radio    .gfield_radio   label::before,
.gform_wrapper.gravity-theme .gfield--type-radio    .gfield_radio   label::after {
  content: none !important; display: none !important;
}
.gform_wrapper.gravity-theme .gfield-choice-input[type="checkbox"]:checked + label,
.gform_wrapper.gravity-theme .gfield-choice-input[type="radio"]:checked    + label {
  background: rgba(24,124,196,.08) !important; border-radius: 6px; padding: 2px 6px !important;
}

/* ==========================================================================
   COURSE USP / BENEFITS
   ========================================================================== */
.course_usp { list-style: none; margin: 20px 0; padding: 0; }
.course_usp li { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; line-height: 1.4; }
.course_usp li::before { content: ""; width: 24px; height: 24px; flex-shrink: 0; background-size: contain; background-repeat: no-repeat; background-position: center; }
.course_usp li a { color: var(--color-secondary); font-weight: 500; }

.benefits-list { list-style: none; margin: 24px 0; padding: 0; }
.benefits-list li { position: relative; padding-left: 38px; margin-bottom: 14px; line-height: 1.6; }
.benefits-list li::before {
  content: ""; position: absolute; left: 0; top: 0.85em; transform: translateY(-50%);
  width: 22px; height: 22px; border-radius: 50%; background-color: #7BB5FF;
  background-image: url("https://www.theleansixsigmacompany.eu/wp-content/uploads/sites/30/Vector.png");
  background-size: 12px 12px; background-position: center; background-repeat: no-repeat;
}

.button-group { display: flex; flex-direction: column; gap: 4px !important; margin-top: 12px !important; }
.button-group a {
  display: block !important; width: 100%; box-sizing: border-box;
  text-align: center; padding: 16px 24px; border-radius: 18px;
  font-family: var(--font-heading); font-size: var(--font-size-body);
  font-weight: var(--font-weight-semibold); line-height: 1.3;
  text-decoration: none !important; border: 2px solid transparent;
  cursor: pointer; margin: 0 !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.1s ease;
}

/* ==========================================================================
   STICKY / FIXED ELEMENTS
   ========================================================================== */
.sticky_group { overflow: visible; position: sticky; left: 0; padding: 0 !important; top: -1px; z-index: 9998; }
.sticky-bottom-cta { padding: 15px 0; position: fixed; bottom: 0; width: 100%; z-index: 1000000; }

/* ==========================================================================
   BLOG / ARCHIVE / EMPLOYEE
   ========================================================================== */
.wp-block-avatar img { height: 50px; object-fit: cover; }
.post_overview-cta-label { display: inline; padding: 5px !important; border-radius: 5px; }
.single-post .wp-block-post-content        { font-size: 14px; }
.single-post .wp-block-post-content h2     { font-size: 18px !important; }
.single-post .wp-block-post-content h3     { font-size: 16px !important; }

.employee-info-column        { margin-top: -300px !important; position: relative; }
.employee_featured_image img { background-color: #DDEBFF; border: 4px solid var(--color-white); border-radius: 16px !important; }
.employee-contact-link a     { color: var(--color-secondary); font-weight: bold; font-size: 14px; text-decoration: none; }
.employee-contact-link a:hover { text-decoration: underline; }
.specialism-list a, .icon-link a { text-decoration: none; color: inherit; }
.specialism-list a:hover, .icon-link a:hover { text-decoration: underline; }

/* ==========================================================================
   MARQUEE TICKER
   ========================================================================== */
.course-brochure-usp { overflow: hidden; padding: 6px 0 4px; }
.course-brochure-usp__track { display: flex; width: max-content; animation: course-brochure-marquee 18s linear infinite; }
.course-brochure-usp__row   { display: inline-flex; align-items: center; gap: 32px; margin-right: 48px; }
.course-brochure-usp__item  { display: inline-flex; align-items: flex-end; gap: 8px; white-space: nowrap; font-size: 14px; line-height: 1 !important; }
.course-brochure-usp__check { width: 18px; height: 18px; border-radius: 50%; background: #ffe4f2; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.course-brochure-usp__check::before { content: "\2713"; font-size: 11px; color: var(--color-primary); font-weight: 700; }
@keyframes course-brochure-marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .course-brochure-usp__track { animation: none; } }

/* ==========================================================================
   WIKI LETTER FILTER
   ========================================================================== */
.wiki-letter-filter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 2rem; }
.wiki-letter { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 8px; border-radius: var(--radius-input); background: var(--color-secondary-light); color: var(--color-dark); font-family: var(--font-heading); font-weight: var(--font-weight-medium); font-size: var(--font-size-small); text-decoration: none; transition: background var(--transition), color var(--transition); }
.wiki-letter:hover, .wiki-letter.is-active { background: var(--color-primary); color: var(--color-white); }

/* ==========================================================================
   UTILITY
   ========================================================================== */
.background_overview { background: var(--color-white); padding: 30px; border-radius: 20px; }
.iso { color: #8BC5FF; font-weight: 600; }

/* ==========================================================================
   WORDPRESS CORE CLASSES
   ========================================================================== */
.alignleft   { float: left;  margin-right: 1.5rem; margin-bottom: 1rem; }
.alignright  { float: right; margin-left: 1.5rem;  margin-bottom: 1rem; }
.aligncenter { display: block; margin-inline: auto; margin-bottom: 1rem; }
.alignwide   { margin-inline: -2rem; }
.alignfull   { margin-inline: calc(50% - 50vw); width: 100vw; }
.wp-caption-text { font-size: 0.875rem; color: var(--color-body); margin-top: 0.25rem; }
.screen-reader-text { clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; }
.screen-reader-text:focus { background: var(--color-white); clip: auto !important; clip-path: none; display: block; font-size: 1rem; height: auto; left: 5px; top: 5px; padding: 15px 23px 14px; width: auto; z-index: 100000; }
.editor-styles-wrapper *, .editor-styles-wrapper *::before, .editor-styles-wrapper *::after { box-sizing: border-box; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media only screen and (max-width: 768px) {
  .wp-block-columns { padding: 0 15px; }
  .lean-courses__banner { padding: 60px 0; }
  .gform_wrapper.gravity-theme .gfield { grid-column: 1 / -1 !important; }
}

@media only screen and (max-width: 600px) {
  .employee-info-column { margin-top: 0 !important; }
  .wp-block-buttons { flex-direction: column; align-items: stretch; }
  .wp-block-button  { width: 100%; }
  .wp-block-button__link { width: 100%; }
}