/* ======================================================
   EFORAS Design System v5.0
   ====================================================== */
:root {
  --ef-primary: #1B1B35;
  --ef-primary-light: #23234D;
  --ef-primary-mid: #2A2A6A;
  --ef-primary-text: #000B1E;
  --ef-action: #000091;
  --ef-action-hover: #1212FF;
  --ef-accent: #009081;
  --ef-accent-light: #C3FAD5;
  --ef-accent-bg: rgba(0,144,129,0.08);
  --ef-gold: #D97706;
  --ef-gold-light: rgba(217,119,6,0.08);
  --ef-success: #18753C;
  --ef-success-bg: #B8FEC9;
  --ef-info: #0063CB;
  --ef-info-bg: #E8EDFF;
  --ef-warning: #B34000;
  --ef-warning-bg: #FFE9E6;
  --ef-error: #CE0500;
  --ef-grey-1000: #161616;
  --ef-grey-900: #2A2A2A;
  --ef-grey-800: #3A3A3A;
  --ef-grey-700: #4A4A4A;
  --ef-grey-625: #666666;
  --ef-grey-500: #929292;
  --ef-grey-425: #ADADAD;
  --ef-grey-400: #BABABA;
  --ef-grey-200: #E5E5E5;
  --ef-grey-100: #EEEEEE;
  --ef-grey-50: #F6F6F6;
  --ef-white: #FFFFFF;
  --bg-default: var(--ef-white);
  --bg-alt: var(--ef-grey-50);
  --bg-contrast: var(--ef-grey-100);
  --bg-elevated: var(--ef-white);
  --bg-action: var(--ef-action);
  --border-default: var(--ef-grey-200);
  --border-active: var(--ef-action);
  --border-plain: var(--ef-grey-900);
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-heading: "Plus Jakarta Sans", "Inter", sans-serif;
  --font-mono: "JetBrains Mono", "Fira Code", monospace;
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-8: 3rem;
  --sp-10: 4rem;
  --sp-12: 5rem;
  --sp-16: 8rem;
  --container-max: 1200px;
  --container-padding: 1.5rem;
  --shadow-sm: 0 2px 6px rgba(0,0,18,0.04);
  --shadow-md: 0 6px 18px rgba(0,0,18,0.06);
  --shadow-lg: 0 12px 32px rgba(0,0,18,0.08);
  --transition: all 0.2s ease-in-out;
}

/* === BASE === */
.bodywebsite * { box-sizing: border-box; }
.bodywebsite .fa,.bodywebsite .fas,.bodywebsite .far,.bodywebsite .fab,.bodywebsite .fa-solid,.bodywebsite .fa-regular,.bodywebsite .fa-brands,.bodywebsite [class*="fa-"] { font-family: "Font Awesome 6 Free","Font Awesome 6 Brands" !important; }
.bodywebsite, .bodywebsite .page { font-family: var(--font-body); font-size: 1rem; line-height: 1.5rem; color: var(--ef-grey-700); background: var(--bg-default); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overflow-x: hidden; margin: 0; padding: 0; }
.bodywebsite h1 { font-family: var(--font-heading); font-size: 2.5rem; line-height: 3rem; font-weight: 800; color: var(--ef-primary-text); letter-spacing: -0.02em; margin: 0 0 var(--sp-5); }
.bodywebsite h2 { font-family: var(--font-heading); font-size: 1.75rem; line-height: 2.25rem; font-weight: 700; color: var(--ef-primary-text); letter-spacing: -0.01em; margin: 0 0 var(--sp-4); }
.bodywebsite h3 { font-family: var(--font-heading); font-size: 1.375rem; line-height: 1.75rem; font-weight: 700; color: var(--ef-primary-text); margin: 0 0 var(--sp-3); }
.bodywebsite h4 { font-family: var(--font-heading); font-size: 1.125rem; line-height: 1.5rem; font-weight: 600; color: var(--ef-primary-text); margin: 0 0 var(--sp-2); }
.bodywebsite p { margin: 0 0 var(--sp-5); }
.bodywebsite a { color: var(--ef-action); text-decoration: underline; transition: var(--transition); }
.bodywebsite a:hover { color: var(--ef-action-hover); }

/* === LAYOUT === */
.ef-container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-padding); width: 100%; }
.ef-section { padding: var(--sp-12) 0; }
.ef-section--sm { padding: var(--sp-8) 0; }
.ef-section--alt { background: var(--bg-alt); }
.ef-section--contrast { background: var(--bg-contrast); }
.ef-section--dark { background: var(--ef-primary); color: var(--ef-white); }
.ef-section--dark h1,.ef-section--dark h2,.ef-section--dark h3,.ef-section--dark h4 { color: var(--ef-white); }
.ef-section--dark p,.ef-section--dark li { color: rgba(255,255,255,0.8); }
.ef-section--dark a { color: var(--ef-accent-light); }
.ef-row { display: flex; flex-wrap: wrap; margin: 0 calc(var(--sp-2) * -1); }
.ef-row--gutters > [class*="ef-col"] { padding: var(--sp-2); }
.ef-col { flex: 1; padding: 0 var(--sp-2); }
.ef-col-1 { flex: 0 0 calc(100%/12*1); max-width: calc(100%/12*1); padding: 0 var(--sp-2); }
.ef-col-2 { flex: 0 0 calc(100%/12*2); max-width: calc(100%/12*2); padding: 0 var(--sp-2); }
.ef-col-3 { flex: 0 0 calc(100%/12*3); max-width: calc(100%/12*3); padding: 0 var(--sp-2); }
.ef-col-4 { flex: 0 0 calc(100%/12*4); max-width: calc(100%/12*4); padding: 0 var(--sp-2); }
.ef-col-5 { flex: 0 0 calc(100%/12*5); max-width: calc(100%/12*5); padding: 0 var(--sp-2); }
.ef-col-6 { flex: 0 0 calc(100%/12*6); max-width: calc(100%/12*6); padding: 0 var(--sp-2); }
.ef-col-7 { flex: 0 0 calc(100%/12*7); max-width: calc(100%/12*7); padding: 0 var(--sp-2); }
.ef-col-8 { flex: 0 0 calc(100%/12*8); max-width: calc(100%/12*8); padding: 0 var(--sp-2); }
.ef-col-9 { flex: 0 0 calc(100%/12*9); max-width: calc(100%/12*9); padding: 0 var(--sp-2); }
.ef-col-10 { flex: 0 0 calc(100%/12*10); max-width: calc(100%/12*10); padding: 0 var(--sp-2); }
.ef-col-11 { flex: 0 0 calc(100%/12*11); max-width: calc(100%/12*11); padding: 0 var(--sp-2); }
.ef-col-12 { flex: 0 0 100%; max-width: 100%; padding: 0 var(--sp-2); }

/* === HEADER — ef-header (faithful pattern) === */
.ef-header { width: 100%; background: var(--ef-white); box-shadow: 0 1px 0 var(--border-default); position: sticky; top: 0; z-index: 1000; }
.ef-header__body { border-bottom: 1px solid var(--border-default); }
.ef-header__body-row { display: flex; align-items: center; justify-content: space-between; padding: var(--sp-4) 0; min-height: 4.5rem; }
.ef-header__brand { display: flex; align-items: center; gap: var(--sp-6); }
.ef-header__brand-top { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); }
.ef-header__logo { display: flex; align-items: center; gap: var(--sp-3); text-decoration: none; color: var(--ef-primary-text); }
.ef-header__logo:hover { text-decoration: none; }
.ef-header__logo-mark { width: 48px; height: 48px; background: var(--ef-action); display: flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-weight: 800; font-size: 1.25rem; color: var(--ef-white); }
.ef-header__logo-text { display: flex; flex-direction: column; line-height: 1.2; }
.ef-header__logo-name { font-family: var(--font-heading); font-weight: 800; font-size: 1.25rem; color: var(--ef-primary-text); letter-spacing: 0.08em; text-transform: uppercase; }
.ef-header__logo-tagline { font-family: var(--font-mono); font-size: 0.6875rem; color: var(--ef-grey-625); letter-spacing: 0.02em; text-transform: uppercase; margin-top: 2px; }
.ef-header__navbar { display: none; }
.ef-header__service { display: flex; flex-direction: column; gap: 2px; }
.ef-header__service-title { font-size: 0.8125rem; font-weight: 600; color: var(--ef-primary-text); margin: 0; }
.ef-header__service-tagline { font-size: 0.75rem; color: var(--ef-grey-625); margin: 0; font-style: italic; }
.ef-header__tools { display: flex; align-items: center; gap: var(--sp-4); }
.ef-header__tools-links .ef-btns-group { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: var(--sp-2); }
.ef-header__tools-links .ef-btns-group li { list-style: none; }
.ef-header__toggle { display: none; background: none; border: 1px solid var(--border-default); font-size: 0.875rem; color: var(--ef-action); cursor: pointer; padding: var(--sp-2) var(--sp-4); font-weight: 500; font-family: var(--font-body); }
.ef-header__menu { background: var(--ef-white); border-bottom: 1px solid var(--border-default); }
.ef-header__menu--open { display: block; }

/* === NAVIGATION — ef-nav === */
.ef-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: stretch; }
.ef-nav__item { position: relative; }
.ef-nav__link { display: flex; align-items: center; padding: var(--sp-4) var(--sp-5); font-size: 0.875rem; font-weight: 500; color: var(--ef-grey-700); text-decoration: none; border-bottom: 2px solid transparent; transition: var(--transition); }
.ef-nav__link:hover, .ef-nav__link[aria-current="page"] { color: var(--ef-action); text-decoration: none; border-bottom-color: var(--ef-action); }
.ef-nav__link[aria-current="page"] { font-weight: 600; }

/* === BUTTONS === */
.ef-btn { display: inline-flex; align-items: center; gap: var(--sp-2); font-family: var(--font-body); font-weight: 500; font-size: 1rem; line-height: 1.5rem; padding: var(--sp-2) var(--sp-5); min-height: 2.5rem; border: none; cursor: pointer; text-decoration: none; transition: var(--transition); white-space: nowrap; }
.ef-btn--primary { background: var(--ef-action); color: var(--ef-white); }
.ef-btn--primary:hover { background: var(--ef-action-hover); color: var(--ef-white); text-decoration: none; }
.ef-btn--secondary { background: transparent; color: var(--ef-action); box-shadow: inset 0 0 0 1px var(--ef-action); }
.ef-btn--secondary:hover { background: rgba(0,0,145,0.05); color: var(--ef-action); text-decoration: none; }
.ef-btn--tertiary { background: transparent; color: var(--ef-action); }
.ef-btn--tertiary:hover { background: rgba(0,0,145,0.05); text-decoration: none; }
.ef-btn--sm { font-size: 0.875rem; padding: var(--sp-1) var(--sp-4); min-height: 2rem; }
.ef-btn--lg { font-size: 1.125rem; padding: var(--sp-3) var(--sp-6); min-height: 3rem; }
.ef-btn--full { width: 100%; justify-content: center; }
.ef-btn--white { background: var(--ef-white); color: var(--ef-action); }
.ef-btn--white:hover { background: var(--ef-grey-50); color: var(--ef-action); text-decoration: none; }
.ef-btns-group--lg { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.ef-btns-group--lg li { list-style: none; }
.ef-btns-group--lg .ef-btn { font-size: 0.875rem; }

/* === CARDS === */
.ef-card { display: flex; flex-direction: column; background: var(--bg-default); border: 1px solid var(--border-default); transition: var(--transition); height: 100%; }
.ef-card:hover { box-shadow: var(--shadow-md); }
.ef-card__header { padding: var(--sp-5) var(--sp-5) 0; }
.ef-card__body { padding: var(--sp-5); flex: 1; }
.ef-card__footer { padding: 0 var(--sp-5) var(--sp-5); margin-top: auto; }
.ef-card__img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-bottom: 1px solid var(--border-default); }
.ef-card__title { font-size: 1.125rem; line-height: 1.5rem; font-weight: 600; margin-bottom: var(--sp-2); }
.ef-card__title a { color: var(--ef-primary-text); text-decoration: none; }
.ef-card__title a:hover { color: var(--ef-action); }
.ef-card__desc { font-size: 0.875rem; line-height: 1.5rem; color: var(--ef-grey-625); margin-bottom: var(--sp-4); }
.ef-card__meta { font-size: 0.75rem; color: var(--ef-grey-500); display: flex; align-items: center; gap: var(--sp-2); }
.ef-card--horizontal { flex-direction: row; }
.ef-card--horizontal .ef-card__img { width: 280px; min-height: 100%; aspect-ratio: auto; border-bottom: none; border-right: 1px solid var(--border-default); }

/* === TILES === */
.ef-tile { display: flex; flex-direction: column; align-items: center; text-align: center; padding: var(--sp-6); background: var(--bg-default); border: 1px solid var(--border-default); transition: var(--transition); height: 100%; }
.ef-tile:hover { box-shadow: var(--shadow-sm); border-color: var(--ef-action); }
.ef-tile__pictogram { width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; margin-bottom: var(--sp-5); color: var(--ef-action); }
.ef-tile__pictogram i { font-size: 2.5rem; }
.ef-tile__title { font-size: 1.125rem; font-weight: 600; color: var(--ef-primary-text); margin-bottom: var(--sp-2); }
.ef-tile__desc { font-size: 0.875rem; line-height: 1.5rem; color: var(--ef-grey-625); }

/* === BADGES & TAGS === */
.ef-badge { display: inline-flex; align-items: center; font-size: 0.75rem; font-weight: 500; line-height: 1; padding: var(--sp-1) var(--sp-2); background: var(--ef-grey-100); color: var(--ef-grey-700); white-space: nowrap; }
.ef-badge--accent { background: var(--ef-accent-bg); color: var(--ef-accent); }
.ef-badge--action { background: var(--ef-info-bg); color: var(--ef-action); }
.ef-badge--gold { background: var(--ef-gold-light); color: var(--ef-gold); }
.ef-badge--success { background: var(--ef-success-bg); color: var(--ef-success); }
.ef-tag { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: 0.875rem; font-weight: 500; line-height: 1.5rem; padding: var(--sp-1) var(--sp-3); border-radius: 1rem; background: var(--bg-contrast); color: var(--ef-grey-700); text-decoration: none; transition: var(--transition); }
.ef-tag:hover { background: var(--ef-grey-200); text-decoration: none; color: var(--ef-grey-700); }

/* === CALLOUT & HIGHLIGHT === */
.ef-callout { position: relative; padding: var(--sp-5); background: var(--bg-contrast); border-left: 4px solid var(--ef-action); margin-bottom: var(--sp-5); }
.ef-callout--accent { border-left-color: var(--ef-accent); }
.ef-callout--gold { border-left-color: var(--ef-gold); }
.ef-callout__title { font-size: 1.125rem; font-weight: 600; margin-bottom: var(--sp-2); color: var(--ef-primary-text); }
.ef-callout__text { font-size: 0.875rem; color: var(--ef-grey-700); margin: 0; }
.ef-highlight { padding-left: var(--sp-5); border-left: 4px solid var(--ef-action); font-size: 1.125rem; line-height: 1.75rem; color: var(--ef-grey-700); }

/* === BREADCRUMB === */
.ef-breadcrumb { margin: var(--sp-4) 0 var(--sp-6); font-size: 0.75rem; line-height: 1.25rem; color: var(--ef-grey-500); }
.ef-breadcrumb a { color: var(--ef-grey-625); text-decoration: none; }
.ef-breadcrumb a:hover { text-decoration: underline; }
.ef-breadcrumb__sep { margin: 0 var(--sp-2); }

/* === KEY FIGURES === */
.ef-keyfigures { display: flex; align-items: stretch; background: var(--ef-primary); overflow: hidden; }
.ef-keyfigure { flex: 1; padding: var(--sp-5) var(--sp-6); text-align: center; color: var(--ef-white); border-right: 1px solid rgba(255,255,255,0.1); transition: var(--transition); }
.ef-keyfigure:last-child { border-right: none; }
.ef-keyfigure:hover { background: rgba(255,255,255,0.04); }
.ef-keyfigure__number { font-family: var(--font-heading); font-size: 2.5rem; font-weight: 800; line-height: 1; color: var(--ef-white); margin-bottom: var(--sp-1); }
.ef-keyfigure__label { font-size: 0.8125rem; color: rgba(255,255,255,0.65); text-transform: uppercase; letter-spacing: 0.06em; }

/* === HERO === */
.ef-hero { background: var(--ef-primary); color: var(--ef-white); padding: var(--sp-16) 0 var(--sp-12); position: relative; overflow: hidden; }
.ef-hero::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 50%; background: linear-gradient(135deg, rgba(0,0,145,0.15) 0%, transparent 70%); pointer-events: none; }
.ef-hero__overline { font-family: var(--font-mono); font-size: 0.8125rem; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: var(--sp-4); }
.ef-hero__title { font-family: var(--font-heading); font-size: 3rem; line-height: 3.5rem; font-weight: 800; color: var(--ef-white); margin-bottom: var(--sp-5); max-width: 700px; }
.ef-hero__desc { font-size: 1.125rem; line-height: 1.75rem; color: rgba(255,255,255,0.8); max-width: 600px; margin-bottom: var(--sp-6); }
.ef-hero__actions { display: flex; gap: var(--sp-4); flex-wrap: wrap; }

/* === SECTION HEADER === */
.ef-section-header { margin-bottom: var(--sp-8); max-width: 700px; }
.ef-section-header--center { text-align: center; margin-left: auto; margin-right: auto; }
.ef-section-header__overline { font-family: var(--font-mono); font-size: 0.8125rem; color: var(--ef-accent); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: var(--sp-3); }
.ef-section-header__title { font-size: 1.75rem; line-height: 2.25rem; font-weight: 700; color: var(--ef-primary-text); margin-bottom: var(--sp-4); }
.ef-section-header__desc { font-size: 1rem; line-height: 1.75rem; color: var(--ef-grey-625); }
.ef-section--dark .ef-section-header__overline { color: var(--ef-accent-light); }
.ef-section--dark .ef-section-header__title { color: var(--ef-white); }
.ef-section--dark .ef-section-header__desc { color: rgba(255,255,255,0.7); }

/* === PRICING === */
.ef-pricing { background: var(--bg-default); border: 1px solid var(--border-default); padding: var(--sp-6); display: flex; flex-direction: column; height: 100%; }
.ef-pricing--featured { border-color: var(--ef-action); border-width: 2px; box-shadow: var(--shadow-md); }
.ef-pricing__name { font-size: 1.25rem; font-weight: 700; color: var(--ef-primary-text); margin-bottom: var(--sp-2); }
.ef-pricing__desc { font-size: 0.875rem; color: var(--ef-grey-625); margin-bottom: var(--sp-5); }
.ef-pricing__price { font-size: 2rem; font-weight: 800; color: var(--ef-primary-text); margin-bottom: var(--sp-5); font-family: var(--font-heading); }
.ef-pricing__price span { font-size: 0.875rem; font-weight: 400; color: var(--ef-grey-500); }
.ef-pricing__features { list-style: none; padding: 0; margin: 0 0 var(--sp-6); flex: 1; }
.ef-pricing__features li { padding: var(--sp-2) 0; font-size: 0.875rem; color: var(--ef-grey-700); border-bottom: 1px solid var(--ef-grey-100); display: flex; align-items: center; gap: var(--sp-2); }
.ef-pricing__features li i { color: var(--ef-success); font-size: 0.75rem; }
.ef-pricing__action { margin-top: auto; }

/* === TEAM MEMBER === */
.ef-member { text-align: center; padding: var(--sp-6); background: var(--bg-default); border: 1px solid var(--border-default); }
.ef-member__avatar { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin: 0 auto var(--sp-4); border: 3px solid var(--ef-grey-200); }
.ef-member__name { font-size: 1rem; font-weight: 600; color: var(--ef-primary-text); margin-bottom: 2px; }
.ef-member__role { font-size: 0.8125rem; color: var(--ef-grey-500); margin-bottom: var(--sp-3); }
.ef-member__social { display: flex; justify-content: center; gap: var(--sp-3); }
.ef-member__social a { color: var(--ef-grey-400); font-size: 0.875rem; text-decoration: none; }
.ef-member__social a:hover { color: var(--ef-action); }

/* === FOLLOW — ef-follow (social links above footer) === */
.ef-follow { background: var(--bg-alt); padding: var(--sp-6) 0; border-bottom: 1px solid var(--border-default); }
.ef-follow__social { display: flex; align-items: center; justify-content: center; gap: var(--sp-6); flex-wrap: wrap; }
.ef-follow__title { font-size: 0.875rem; font-weight: 700; color: var(--ef-primary-text); margin: 0; }

/* === FOOTER — ef-footer (faithful pattern) === */
.ef-footer { background: var(--ef-primary); color: var(--ef-white); padding-top: 0; }
.ef-footer__top { padding: var(--sp-8) 0; border-bottom: 1px solid rgba(255,255,255,0.1); }
.ef-footer__top-cat { font-size: 0.875rem; font-weight: 700; color: var(--ef-white); text-transform: uppercase; letter-spacing: 0.04em; margin: 0 0 var(--sp-4); }
.ef-footer__top-list { list-style: none; padding: 0; margin: 0; }
.ef-footer__top-list li { margin-bottom: var(--sp-3); }
.ef-footer__top-link { color: rgba(255,255,255,0.6); font-size: 0.875rem; text-decoration: none; transition: var(--transition); display: inline-flex; align-items: center; gap: var(--sp-2); }
.ef-footer__top-link:hover { color: var(--ef-white); text-decoration: none; }
.ef-footer__body { display: flex; gap: var(--sp-8); padding: var(--sp-6) 0; border-bottom: 1px solid rgba(255,255,255,0.1); flex-wrap: wrap; }
.ef-footer__brand { display: flex; align-items: flex-start; gap: var(--sp-4); }
.ef-footer__brand-link { text-decoration: none; }
.ef-footer__brand-name { font-family: var(--font-heading); font-weight: 800; font-size: 1.25rem; color: var(--ef-white); letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: var(--sp-2); }
.ef-footer__desc { font-size: 0.875rem; line-height: 1.75; color: rgba(255,255,255,0.5); max-width: 320px; margin: 0; }
.ef-footer__content { flex: 1; }
.ef-footer__content-desc { font-size: 0.875rem; color: rgba(255,255,255,0.6); line-height: 1.75; margin: 0 0 var(--sp-4); max-width: 500px; }
.ef-footer__content-list { list-style: none; padding: 0; margin: 0; display: flex; gap: var(--sp-4); flex-wrap: wrap; }
.ef-footer__content-link { color: rgba(255,255,255,0.6); font-size: 0.875rem; text-decoration: none; }
.ef-footer__content-link:hover { color: var(--ef-white); text-decoration: none; }
.ef-footer__bottom { padding: var(--sp-4) 0 var(--sp-6); }
.ef-footer__bottom-list { list-style: none; padding: 0; margin: 0 0 var(--sp-4); display: flex; flex-wrap: wrap; gap: 0; }
.ef-footer__bottom-item { font-size: 0.75rem; }
.ef-footer__bottom-item:not(:last-child)::after { content: "|"; margin: 0 var(--sp-3); color: rgba(255,255,255,0.2); }
.ef-footer__bottom-link { color: rgba(255,255,255,0.5); text-decoration: none; font-size: 0.75rem; }
.ef-footer__bottom-link:hover { color: var(--ef-white); text-decoration: none; }
.ef-footer__bottom-copy { font-size: 0.75rem; color: rgba(255,255,255,0.3); }
.ef-footer__bottom-copy p { margin: 0; }

/* === FORMS === */
.ef-input-group { margin-bottom: var(--sp-5); }
.ef-input-group label { display: block; font-size: 0.875rem; font-weight: 500; color: var(--ef-primary-text); margin-bottom: var(--sp-2); }
.ef-input, .ef-textarea, .ef-select { width: 100%; padding: var(--sp-2) var(--sp-4); font-family: var(--font-body); font-size: 1rem; line-height: 1.5rem; color: var(--ef-grey-900); background: var(--bg-default); border: 1px solid var(--border-default); transition: var(--transition); }
.ef-input:focus, .ef-textarea:focus, .ef-select:focus { outline: 2px solid var(--ef-action); outline-offset: 2px; border-color: var(--ef-action); }
.ef-textarea { min-height: 120px; resize: vertical; }

/* === ACCORDION === */
.ef-accordion { border: 1px solid var(--border-default); margin-bottom: -1px; }
.ef-accordion__trigger { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: var(--sp-4) var(--sp-5); background: var(--bg-default); border: none; font-size: 1rem; font-weight: 600; color: var(--ef-primary-text); cursor: pointer; text-align: left; font-family: var(--font-body); }
.ef-accordion__trigger:hover { background: var(--bg-alt); }
.ef-accordion__trigger::after { content: "\f078"; font-family: "Font Awesome 6 Free" !important; font-weight: 900; font-size: 0.75rem; color: var(--ef-action); transition: transform 0.2s; }
.ef-accordion__trigger.active::after { transform: rotate(180deg); }
.ef-accordion__content { display: none; padding: var(--sp-4) var(--sp-5) var(--sp-5); font-size: 0.875rem; line-height: 1.75rem; color: var(--ef-grey-700); border-top: 1px solid var(--border-default); }
.ef-accordion__content.open { display: block; }

/* === TESTIMONIAL === */
.ef-testimonial { padding: var(--sp-6); background: var(--bg-default); border: 1px solid var(--border-default); }
.ef-testimonial__quote { font-size: 1rem; line-height: 1.75rem; color: var(--ef-grey-700); font-style: italic; margin-bottom: var(--sp-5); padding-left: var(--sp-5); border-left: 3px solid var(--ef-accent); }
.ef-testimonial__author { display: flex; align-items: center; gap: var(--sp-3); }
.ef-testimonial__name { font-size: 0.875rem; font-weight: 600; color: var(--ef-primary-text); }
.ef-testimonial__org { font-size: 0.75rem; color: var(--ef-grey-500); }

/* === STEPPER === */
.ef-stepper { display: flex; gap: var(--sp-2); margin-bottom: var(--sp-6); }
.ef-stepper__step { flex: 1; text-align: center; padding: var(--sp-4) var(--sp-2); border-top: 3px solid var(--ef-grey-200); position: relative; }
.ef-stepper__step--active { border-top-color: var(--ef-action); }
.ef-stepper__step--done { border-top-color: var(--ef-success); }
.ef-stepper__num { font-family: var(--font-heading); font-weight: 700; font-size: 0.8125rem; color: var(--ef-grey-500); margin-bottom: var(--sp-1); }
.ef-stepper__step--active .ef-stepper__num { color: var(--ef-action); }
.ef-stepper__label { font-size: 0.75rem; font-weight: 500; color: var(--ef-grey-625); }

/* === NOTICE/ALERT === */
.ef-notice { display: flex; align-items: flex-start; gap: var(--sp-4); padding: var(--sp-4) var(--sp-5); border-left: 4px solid var(--ef-info); background: var(--ef-info-bg); }
.ef-notice--success { border-left-color: var(--ef-success); background: var(--ef-success-bg); }
.ef-notice--warning { border-left-color: var(--ef-warning); background: var(--ef-warning-bg); }
.ef-notice__icon { font-size: 1.25rem; color: var(--ef-info); flex-shrink: 0; margin-top: 2px; }
.ef-notice--success .ef-notice__icon { color: var(--ef-success); }
.ef-notice--warning .ef-notice__icon { color: var(--ef-warning); }
.ef-notice__text { font-size: 0.875rem; line-height: 1.5rem; }

/* === UTILITIES === */
.text-center { text-align: center; }
.text-mono { font-family: var(--font-mono); }
.text-sm { font-size: 0.875rem; line-height: 1.5rem; }
.text-xs { font-size: 0.75rem; line-height: 1.25rem; }
.text-muted { color: var(--ef-grey-500); }
.text-accent { color: var(--ef-accent); }
.text-action { color: var(--ef-action); }
.mb-0 { margin-bottom: 0; }
.mb-2 { margin-bottom: var(--sp-2); }
.mb-4 { margin-bottom: var(--sp-4); }
.mb-5 { margin-bottom: var(--sp-5); }
.mb-6 { margin-bottom: var(--sp-6); }
.mb-8 { margin-bottom: var(--sp-8); }
.mt-4 { margin-top: var(--sp-4); }
.mt-6 { margin-top: var(--sp-6); }
.gap-2 { gap: var(--sp-2); }
.gap-4 { gap: var(--sp-4); }
.d-flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.w-full { width: 100%; }

/* === RESPONSIVE === */
@media (max-width: 992px) {
  .ef-col-3, .ef-col-4 { flex: 0 0 50%; max-width: 50%; }
  .ef-hero__title { font-size: 2.25rem; line-height: 2.75rem; }
  .ef-keyfigures { flex-wrap: wrap; }
  .ef-keyfigure { flex: 0 0 50%; border-bottom: 1px solid rgba(255,255,255,0.1); }
  .ef-card--horizontal { flex-direction: column; }
  .ef-card--horizontal .ef-card__img { width: 100%; border-right: none; border-bottom: 1px solid var(--border-default); }
  .ef-follow__social { flex-direction: column; text-align: center; }
  .ef-footer__body { flex-direction: column; }
  .ef-footer__top .ef-row { flex-direction: column; gap: var(--sp-5); }
  .ef-footer__top .ef-row > [class*="ef-col"] { flex: 0 0 100%; max-width: 100%; }
}
@media (max-width: 768px) {
  :root { --container-padding: 1rem; }
  .ef-col-3, .ef-col-4, .ef-col-6 { flex: 0 0 100%; max-width: 100%; }
  .ef-hero { padding: var(--sp-10) 0 var(--sp-8); }
  .ef-hero__title { font-size: 1.75rem; line-height: 2.25rem; }
  .ef-section { padding: var(--sp-8) 0; }
  .ef-keyfigure { flex: 0 0 50%; }
  .ef-keyfigure__number { font-size: 1.75rem; }
  .ef-footer__bottom-list { flex-direction: column; gap: var(--sp-2); }
  .ef-footer__bottom-item::after { display: none; }
  /* Nav mobile */
  .ef-nav__list { display: none; }
  .ef-header__toggle { display: flex; align-items: center; gap: var(--sp-2); }
  .ef-header__navbar { display: block; }
  .ef-header__service { display: none; }
  .ef-header__tools { display: none; }
  .ef-nav__list.open { display: flex; flex-direction: column; }
}
@media (max-width: 480px) {
  .ef-hero__title { font-size: 1.5rem; line-height: 2rem; }
  .ef-hero__actions { flex-direction: column; }
  .ef-keyfigure { flex: 0 0 100%; }
  h1 { font-size: 1.75rem; line-height: 2.25rem; }
  h2 { font-size: 1.375rem; line-height: 1.75rem; }
}

/* === RESPONSIVE GRID — sm/md breakpoints === */
@media (min-width: 576px) {
  .ef-col-sm-3 { flex: 0 0 25%; max-width: 25%; }
  .ef-col-sm-4 { flex: 0 0 33.333%; max-width: 33.333%; }
  .ef-col-sm-6 { flex: 0 0 50%; max-width: 50%; }
}
@media (min-width: 768px) {
  .ef-col-md-2 { flex: 0 0 16.666%; max-width: 16.666%; }
  .ef-col-md-3 { flex: 0 0 25%; max-width: 25%; }
  .ef-col-md-4 { flex: 0 0 33.333%; max-width: 33.333%; }
  .ef-col-md-6 { flex: 0 0 50%; max-width: 50%; }
}

/* === HEADER TOOLS FIX === */
.ef-header__tools-links { display: flex; align-items: center; }
.ef-header__tools-links .ef-btns-group { display: flex; align-items: center; gap: var(--sp-3); list-style: none; margin: 0; padding: 0; }
.ef-header__tools-links .ef-btn { white-space: nowrap; overflow: visible; text-overflow: initial; }
.ef-header__tools-links .ef-btn--primary { background: var(--ef-action); color: var(--ef-white) !important; padding: var(--sp-2) var(--sp-4); }
.ef-header__tools-links .ef-btn--primary:hover { background: var(--ef-action-hover); }
.ef-header__tools-links .ef-btn i { margin-right: var(--sp-1); }

/* === FOOTER CONTRAST & LAYOUT FIX === */
.ef-footer__top { padding: var(--sp-8) 0; }
.ef-footer__top .ef-row { display: flex; flex-wrap: wrap; }
.ef-footer__top .ef-row > [class*="ef-col"] { padding: 0 var(--sp-4); margin-bottom: var(--sp-6); }
.ef-footer__top-cat { font-size: 0.8125rem; font-weight: 700; color: var(--ef-white); text-transform: uppercase; letter-spacing: 0.06em; margin: 0 0 var(--sp-4); }
.ef-footer__top-link { color: rgba(255,255,255,0.7); }
.ef-footer__top-link:hover { color: var(--ef-white); }
.ef-footer__body { padding: var(--sp-6) 0; }
.ef-footer__desc { color: rgba(255,255,255,0.6); }
.ef-footer__content-desc { color: rgba(255,255,255,0.7); }
.ef-footer__content-link { color: rgba(255,255,255,0.7); }
.ef-footer__bottom { padding: var(--sp-5) 0; border-top: 1px solid rgba(255,255,255,0.15); }
.ef-footer__bottom-list { display: inline-flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 0 0 var(--sp-3); }
.ef-footer__bottom-item { display: inline-flex; align-items: center; }
.ef-footer__bottom-link { color: rgba(255,255,255,0.6); text-decoration: none; font-size: 0.8125rem; padding: var(--sp-1) 0; }
.ef-footer__bottom-link:hover { color: var(--ef-white); text-decoration: underline; }
.ef-footer__bottom-item:not(:last-child)::after { content: "|"; margin: 0 var(--sp-3); color: rgba(255,255,255,0.25); font-size: 0.8125rem; }
.ef-footer__bottom-copy { color: rgba(255,255,255,0.4); font-size: 0.8125rem; }

/* === FOLLOW SECTION FIX === */
.ef-follow { background: var(--bg-alt); padding: var(--sp-5) 0; }
.ef-follow__social { display: flex; align-items: center; justify-content: center; gap: var(--sp-6); flex-wrap: wrap; }
.ef-follow__title { font-size: 1rem; font-weight: 700; color: var(--ef-primary-text); margin: 0; }
.ef-btns-group--lg .ef-btn--tertiary { border: 1px solid var(--border-default); padding: var(--sp-2) var(--sp-4); }
.ef-btns-group--lg .ef-btn--tertiary:hover { background: rgba(0,0,145,0.05); border-color: var(--ef-action); }

/* ============================================
   EFORAS v5.2 — Lightened Sections Fix
   ============================================ */

/* Hero: Blue gradient instead of flat dark */
.ef-hero {
  background: linear-gradient(135deg, #000091 0%, #1B1B35 50%, #2A2A6A 100%) !important;
}
.ef-hero::before {
  background: linear-gradient(135deg, rgba(0,144,129,0.1) 0%, transparent 50%) !important;
}

/* Key Figures: Lighter dark blue */
.ef-keyfigures {
  background: #161652 !important;
  border-top: 3px solid var(--ef-accent);
}
.ef-keyfigure:hover {
  background: rgba(255,255,255,0.06) !important;
}
.ef-keyfigure__label {
  color: rgba(255,255,255,0.7) !important;
}

/* Dark sections: Use deep blue gradient */
.ef-section--dark {
  background: linear-gradient(180deg, #1B1B35 0%, #0D0D3A 100%) !important;
}

/* Footer: Dark navy blue */
.ef-footer {
  background: #1B1B35 !important;
}
.ef-footer__top-cat {
  position: relative;
  padding-bottom: var(--sp-3);
}
.ef-footer__top-cat::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 32px;
  height: 2px;
  background: var(--ef-accent);
}
.ef-footer__top-link {
  color: rgba(255,255,255,0.75) !important;
}
.ef-footer__top-link:hover {
  color: var(--ef-white) !important;
}
.ef-footer__desc {
  color: rgba(255,255,255,0.65) !important;
}
.ef-footer__content-desc {
  color: rgba(255,255,255,0.75) !important;
}
.ef-footer__content-link {
  color: rgba(255,255,255,0.75) !important;
}
.ef-footer__content-link:hover {
  color: var(--ef-white) !important;
}
.ef-footer__bottom {
  border-top-color: rgba(255,255,255,0.12) !important;
}
.ef-footer__bottom-link {
  color: rgba(255,255,255,0.65) !important;
}
.ef-footer__bottom-link:hover {
  color: var(--ef-white) !important;
}
.ef-footer__bottom-copy,
.ef-footer__bottom-copy p {
  color: rgba(255,255,255,0.5) !important;
}

/* Follow section */
.ef-follow {
  background: var(--ef-grey-50) !important;
  border-top: 1px solid var(--border-default);
  border-bottom: 1px solid var(--border-default);
}

/* Testimonials */
.ef-testimonial {
  background: var(--ef-white);
  border: 1px solid var(--border-default);
  padding: var(--sp-6);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.ef-testimonial__quote {
  font-size: 0.9375rem;
  line-height: 1.75rem;
  color: var(--ef-grey-700);
  font-style: italic;
  flex: 1;
  margin-bottom: var(--sp-5);
  padding-left: var(--sp-5);
  border-left: 3px solid var(--ef-accent);
}
.ef-testimonial__author {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--border-default);
}
.ef-testimonial__name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ef-primary-text);
}
.ef-testimonial__org {
  font-size: 0.75rem;
  color: var(--ef-grey-500);
}

/* Alt sections */
.ef-section--alt {
  background: #F8F9FA !important;
}

/* Text utilities */
.text-sm { font-size: 0.875rem; line-height: 1.5rem; }
.text-muted { color: var(--ef-grey-625); }



/* ============================================
   v5.3 - Article, Search & Subpage Styles
   ============================================ */

/* --- Breadcrumb --- */
.ef-breadcrumb {
  font-size: 0.875rem;
  color: var(--ef-text-muted, #666);
  margin-bottom: 1.5rem;
  padding: 0.75rem 0;
}
.ef-breadcrumb a {
  color: var(--ef-primary, #000091);
  text-decoration: none;
}
.ef-breadcrumb a:hover {
  text-decoration: underline;
}
.ef-breadcrumb__sep {
  margin: 0 0.5rem;
  color: var(--ef-text-muted, #999);
}

/* --- Article --- */
.ef-article {
  max-width: 800px;
  margin: 0 auto;
  padding-bottom: 3rem;
}
.ef-article__header {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--ef-border, #ddd);
}
.ef-article__title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--ef-primary, #000091);
  margin-bottom: 0.75rem;
  line-height: 1.3;
}
.ef-article__meta {
  font-size: 0.875rem;
  color: var(--ef-text-muted, #666);
  display: flex;
  gap: 1.5rem;
  align-items: center;
}
.ef-article__meta i {
  margin-right: 0.35rem;
  color: var(--ef-accent, #00AC8C);
}
.ef-article__content {
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--ef-text, #1e1e1e);
}
.ef-article__content p {
  margin-bottom: 1.25rem;
}
.ef-article__content h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ef-primary, #000091);
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--ef-accent, #00AC8C);
}
.ef-article__content h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ef-primary, #000091);
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}
.ef-article__content ul,
.ef-article__content ol {
  margin-bottom: 1.25rem;
  padding-left: 1.5rem;
}
.ef-article__content li {
  margin-bottom: 0.5rem;
}
.ef-article__content a {
  color: var(--ef-accent, #00AC8C);
  text-decoration: underline;
}
.ef-article__content a:hover {
  color: var(--ef-primary, #000091);
}

/* --- Article figures --- */
.ef-article__figure {
  margin: 2rem 0;
  text-align: center;
}
.ef-article__img {
  max-width: 100%;
  height: auto;
  border-radius: 0.5rem;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}
.ef-article__figcaption {
  margin-top: 0.75rem;
  font-size: 0.85rem;
  color: var(--ef-text-muted, #666);
  font-style: italic;
}

/* --- Legal content (privacy, etc.) --- */
.ef-legal-content {
  max-width: 900px;
}
.ef-legal-content h2 {
  font-size: 1.35rem;
}
.ef-legal-content p {
  text-align: justify;
}

/* --- Search --- */
.ef-search-box {
  max-width: 600px;
  margin: 0 auto 2rem;
}
.ef-search-form {
  width: 100%;
}
.ef-search-form__wrap {
  display: flex;
  gap: 0.75rem;
  align-items: stretch;
}
.ef-search-form__input {
  flex: 1;
  padding: 0.75rem 1rem;
  border: 2px solid var(--ef-border, #ddd);
  border-radius: 0.375rem;
  font-size: 1rem;
  transition: border-color 0.2s;
  background: #fff;
}
.ef-search-form__input:focus {
  outline: none;
  border-color: var(--ef-primary, #000091);
  box-shadow: 0 0 0 3px rgba(0,0,145,0.1);
}
.ef-search-form__btn {
  white-space: nowrap;
}
.ef-search-results {
  max-width: 700px;
  margin: 0 auto;
}
.ef-search-result {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--ef-border, #eee);
}
.ef-search-result__link {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--ef-primary, #000091);
  text-decoration: none;
}
.ef-search-result__link:hover {
  text-decoration: underline;
  color: var(--ef-accent, #00AC8C);
}
.ef-search-result__desc {
  font-size: 0.9rem;
  color: var(--ef-text-muted, #666);
  margin-top: 0.35rem;
}
.ef-search-noresult {
  text-align: center;
  color: var(--ef-text-muted, #666);
  font-style: italic;
  padding: 2rem 0;
}

/* --- Section small (subpages) --- */
.ef-section--sm {
  padding: 2rem 0;
}
.ef-section--sm:first-of-type {
  padding-top: 1.5rem;
  padding-bottom: 0.5rem;
}

/* --- Section alt background --- */
.ef-section--alt {
  background: var(--ef-bg-alt, #f6f6f6);
}

/* --- Responsive article --- */
@media (max-width: 768px) {
  .ef-article__title {
    font-size: 1.5rem;
  }
  .ef-article__content {
    font-size: 1rem;
  }
  .ef-search-form__wrap {
    flex-direction: column;
  }
}


