/*!
 * رحلة وفاء — theme styles. All colors / fonts come from theme.json (Site Editor → Styles).
 * These rules only describe component layout so every block stays editable in the native editor.
 */
:root {
  --ol-primary: var(--wp--preset--color--primary, #352546);
  --ol-primary-2: var(--wp--preset--color--primary-container, #4c3b5e);
  --ol-on-primary: var(--wp--preset--color--on-primary, #fff);
  --ol-secondary: var(--wp--preset--color--secondary, #67587a);
  --ol-sec-cont: var(--wp--preset--color--secondary-container, #e9d5fd);
  --ol-on-sec-cont: var(--wp--preset--color--on-secondary-container, #6a5a7c);
  --ol-surface: var(--wp--preset--color--surface, #fff7ff);
  --ol-white: var(--wp--preset--color--surface-container-lowest, #fff);
  --ol-low: var(--wp--preset--color--surface-container-low, #faf1fc);
  --ol-cont: var(--wp--preset--color--surface-container, #f4ebf7);
  --ol-high: var(--wp--preset--color--surface-container-high, #eee5f1);
  --ol-text: var(--wp--preset--color--on-surface, #1e1a22);
  --ol-text-2: var(--wp--preset--color--on-surface-variant, #4a454d);
  --ol-outline: var(--wp--preset--color--outline, #7b757e);
  --ol-outline-v: var(--wp--preset--color--outline-variant, #ccc4cd);
  --ol-fixed: var(--wp--preset--color--primary-fixed, #efdbff);
  --ol-fixed-dim: var(--wp--preset--color--primary-fixed-dim, #d4bee9);
  --ol-star: var(--wp--preset--color--star, #e0a526);
  --ol-wide: 1280px;
  --ol-pad: 2rem;
  --ol-radius: 0.75rem;
  --ol-radius-lg: 1.5rem;
  --ol-shadow: 0 12px 32px -8px rgba(76, 59, 94, 0.1);
  --ol-shadow-lg: 0 24px 48px -12px rgba(53, 37, 70, 0.22);
  --ol-border: 1px solid rgba(139, 122, 158, 0.2);
  --ol-serif: var(--wp--preset--font-family--serif, Amiri, serif);
}
html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body { overflow-x: hidden; -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0; }
.ol-main { margin: 0 !important; }
.ol-main > * { margin-block-start: 0 !important; }
img { max-width: 100%; height: auto; }
.screen-reader-text { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }
.ol-ltr { direction: ltr; text-align: right; }
.ol-ltr-text { unicode-bidi: plaintext; text-align: start; }
.ol-center { text-align: center; }
.ol-center .wp-block-buttons, .ol-center.ol-actions { justify-content: center; }
.ol-center-tile { margin-inline: auto; }
.ol-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- layout ---------- */
.ol-section { padding-block: 3.5rem; margin: 0 !important; }
.ol-container { max-width: var(--ol-wide); margin-inline: auto !important; padding-inline: var(--ol-pad); box-sizing: border-box; }
.ol-container--narrow { max-width: 820px; }
.ol-section > .ol-container > * + * { margin-block-start: 2rem; }
.ol-section-head { gap: 0.6rem; margin-block-end: 0 !important; }
.ol-section-head > * { margin: 0; }
.ol-section-head--split { margin-bottom: 2rem !important; }
.ol-section-desc { color: var(--ol-text-2); font-size: 1rem; max-width: 34rem; margin: 0; }
.ol-center.ol-section-head { align-items: center; }
.ol-section-head.ol-center .ol-section-desc { margin-inline: auto; }
.ol-cols-2, .ol-cols-3, .ol-cols-4 { gap: 1.5rem !important; margin: 0; }
.ol-cols-3 > .wp-block-column, .ol-cols-4 > .wp-block-column, .ol-cols-2 > .wp-block-column { display: flex; flex-direction: column; }
.ol-cols-3 > .wp-block-column > *, .ol-cols-4 > .wp-block-column > *, .ol-cols-2 > .wp-block-column > * { flex: 1; }

/* ---------- typography helpers ---------- */
.ol-display { font-size: clamp(2.2rem, 5vw, 3.25rem) !important; line-height: 1.25 !important; letter-spacing: -0.01em; color: var(--ol-primary); margin: 0.5rem 0 0.25rem; }
.ol-display--md { font-size: clamp(1.9rem, 4vw, 2.6rem) !important; }
.ol-subtitle { font-size: 1.5rem; color: var(--ol-secondary); font-weight: 500; margin: 0; display: flex; align-items: center; gap: 0.75rem; }
.ol-subtitle::before { content: ""; width: 2rem; height: 2px; background: var(--ol-secondary); border-radius: 9999px; }
.ol-lead { font-size: 1.125rem; line-height: 2; color: var(--ol-text-2); max-width: 42rem; margin: 0; }
.ol-h2 { font-size: clamp(1.6rem, 3vw, 2rem) !important; margin: 0; }
.ol-h3 { font-size: 1.25rem !important; margin: 0; }
.ol-h4 { font-size: 1.05rem !important; margin: 0; }
.ol-h5 { font-size: 1rem !important; margin: 0 0 0.5rem; }
.ol-h3--bar { display: flex; align-items: center; gap: 0.6rem; }
.ol-h3--bar::before { content: ""; width: 4px; height: 1.4em; background: var(--ol-secondary); border-radius: 4px; }
.ol-caption { font-size: 0.78rem; color: var(--ol-outline); margin: 0; line-height: 1.5; }
.ol-eyebrow { font-size: 0.78rem; font-weight: 600; color: var(--ol-secondary); margin: 0; }
.ol-card-text { color: var(--ol-text-2); font-size: 0.95rem; line-height: 1.9; margin: 0; }
.ol-on-dark, .ol-on-dark a { color: #fff !important; }
.ol-on-dark-soft { color: var(--wp--preset--color--on-primary-container, #bca7d0) !important; }
.ol-empty { text-align: center; color: var(--ol-outline); padding: 2rem; grid-column: 1 / -1; }

/* ---------- header ---------- */
.ol-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 247, 255, 0.86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: var(--ol-border); margin: 0 !important; }
.admin-bar .ol-header { top: var(--wp-admin--admin-bar--height, 32px); }
.ol-header__inner { gap: 1rem; padding-block: 0.75rem; }
.ol-brand { gap: 0.7rem; flex-wrap: nowrap; }
.ol-brand__mark { width: 2.5rem; height: 2.5rem; border-radius: 0.65rem; background: var(--ol-primary-2); display: grid; place-items: center; flex: none; }
.ol-brand__icon { margin: 0; width: 1.4rem; height: 1.4rem; color: #fff; }
.ol-brand__icon svg { width: 100%; height: 100%; fill: currentColor; }
.ol-brand__text { gap: 0; }
.ol-brand__title, .ol-brand__title a { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--ol-primary); text-decoration: none; line-height: 1.3; }
.ol-brand__tagline { margin: 0; font-size: 0.7rem; color: var(--ol-secondary); line-height: 1.3; }
.ol-nav { flex: 1; }
.ol-nav .wp-block-navigation__container { gap: 0.15rem 0.2rem; }
.ol-nav .wp-block-navigation-item__content { padding: 0.45rem 0.75rem; border-radius: 0.6rem; color: var(--ol-text-2); font-weight: 500; text-decoration: none; transition: background 0.2s, color 0.2s; }
.ol-nav .wp-block-navigation-item__content:hover { background: var(--ol-cont); color: var(--ol-primary); }
.ol-nav .current-menu-item > .wp-block-navigation-item__content, .ol-nav [aria-current="page"] { background: var(--ol-sec-cont); color: var(--ol-primary); font-weight: 600; }
.ol-header__cta { margin: 0; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--ol-surface); }

/* ---------- buttons ---------- */
.wp-block-buttons { gap: 0.75rem; }
.ol-actions-sm, .ol-actions-block { margin: 0; }
.ol-btn-primary .wp-block-button__link, button.ol-btn-primary {
  background: var(--ol-primary); color: var(--ol-on-primary); border: 0; border-radius: 9999px; padding: 0.85rem 1.75rem; font: 600 0.9rem/1.4 inherit; font-family: inherit; cursor: pointer;
  box-shadow: 0 12px 28px -6px rgba(53, 37, 70, 0.35); transition: transform 0.25s, background 0.25s, box-shadow 0.25s; text-decoration: none; display: inline-flex; align-items: center; gap: 0.4rem; justify-content: center;
}
.ol-btn-primary .wp-block-button__link:hover, button.ol-btn-primary:hover { background: var(--ol-primary-2); transform: translateY(-2px); box-shadow: 0 16px 36px -6px rgba(53, 37, 70, 0.45); }
.ol-btn-soft .wp-block-button__link, button.ol-btn-soft { background: var(--ol-high); color: var(--ol-text-2); border: 0; border-radius: 9999px; padding: 0.85rem 1.4rem; font-weight: 600; font-family: inherit; font-size: 0.9rem; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem; transition: background 0.2s, color 0.2s; }
.ol-btn-soft .wp-block-button__link:hover, button.ol-btn-soft:hover { background: var(--ol-sec-cont); color: var(--ol-on-sec-cont); }
.ol-btn-light .wp-block-button__link { background: #fff; color: var(--ol-primary); border-radius: 9999px; padding: 0.9rem 1.75rem; box-shadow: 0 10px 24px -8px rgba(0, 0, 0, 0.4); display: inline-flex; align-items: center; gap: 0.4rem; }
.ol-btn-light .wp-block-button__link:hover { background: var(--ol-fixed); color: var(--ol-primary); transform: translateY(-2px); }
.ol-btn-ghost .wp-block-button__link { background: rgba(255, 255, 255, 0.12); color: #fff; border: 1px solid rgba(255, 255, 255, 0.28); border-radius: 9999px; padding: 0.9rem 1.5rem; display: inline-flex; align-items: center; gap: 0.4rem; }
.ol-btn-ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }
.ol-btn-link .wp-block-button__link { background: transparent; color: var(--ol-primary); padding: 0.3rem 0.5rem; font-size: 0.8rem; display: inline-flex; align-items: center; gap: 0.3rem; }
.ol-btn-link .wp-block-button__link:hover { background: var(--ol-cont); color: var(--ol-primary); }
.ol-btn-sm .wp-block-button__link { padding: 0.6rem 1.2rem; font-size: 0.82rem; }
.ol-btn-block, .ol-btn-block .wp-block-button__link { width: 100%; display: flex; justify-content: center; }
.ol-actions-block { width: 100%; }
.ol-actions-block .wp-block-button { width: 100%; }
.ol-header__cta .wp-block-button__link { box-shadow: none; }

/* ---------- badges / chips ---------- */
.ol-badge { display: inline-flex; align-items: center; gap: 0.4rem; background: var(--ol-sec-cont); color: var(--ol-on-sec-cont); font-size: 0.8rem; font-weight: 600; padding: 0.3rem 0.9rem; border-radius: 9999px; margin: 0; width: fit-content; line-height: 1.6; }
.ol-badge a { color: inherit; text-decoration: none; }
.ol-badge--dark { background: rgba(255, 255, 255, 0.14); color: #fff; }
.ol-chip { display: inline-flex; align-items: center; gap: 0.35rem; background: var(--ol-high); color: var(--ol-text-2); font-size: 0.78rem; padding: 0.25rem 0.75rem; border-radius: 9999px; margin: 0; width: fit-content; line-height: 1.6; }
.ol-badges { gap: 0.5rem; margin-bottom: 0.75rem; }
.ol-chips { gap: 0.5rem; }
.ol-chip-btn .wp-block-button__link { background: var(--ol-white); color: var(--ol-text-2); border: var(--ol-border); border-radius: 9999px; padding: 0.4rem 1rem; font-size: 0.82rem; font-weight: 500; box-shadow: none; }
.ol-chip-btn .wp-block-button__link:hover, .ol-chip-btn.is-active .wp-block-button__link { background: var(--ol-primary); color: #fff; border-color: var(--ol-primary); }
.ol-chips-row { gap: 0.5rem; }
.ol-cat-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ol-cat-chips li { margin: 0; }
.ol-cat-chips a { display: inline-block; background: var(--ol-white); color: var(--ol-text-2); border: var(--ol-border); border-radius: 9999px; padding: 0.4rem 1rem; font-size: 0.82rem; font-weight: 500; text-decoration: none; transition: all 0.2s; }
.ol-cat-chips a:hover, .ol-cat-chips .current-cat a { background: var(--ol-primary); color: #fff; border-color: var(--ol-primary); }

/* ---------- hero ---------- */
.ol-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--ol-low), var(--ol-surface) 70%); padding-block: 2rem 3.5rem; }
.ol-hero::before { content: ""; position: absolute; top: -6rem; inset-inline-start: 25%; width: 24rem; height: 24rem; border-radius: 50%; background: rgba(212, 190, 233, 0.28); filter: blur(64px); pointer-events: none; }
.ol-hero::after { content: ""; position: absolute; top: 33%; inset-inline-end: -5rem; width: 20rem; height: 20rem; border-radius: 50%; background: rgba(238, 219, 255, 0.4); filter: blur(64px); pointer-events: none; }
.ol-hero > .ol-container { position: relative; z-index: 1; }
.ol-hero--sub { padding-block: 3.5rem 2.5rem; }
.ol-hero__grid { gap: 3rem !important; margin: 0; align-items: center; }
.ol-hero__text > * { margin-block: 0; }
.ol-hero__text > * + * { margin-block-start: 1.1rem; }
.ol-author-line { gap: 0.75rem; }
.ol-avatar { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--ol-fixed); color: var(--ol-primary); display: grid; place-items: center; font-weight: 700; margin: 0; flex: none; }
.ol-author-name { font-size: 1.1rem; font-weight: 700; color: var(--ol-primary); margin: 0; line-height: 1.4; }
.ol-actions { margin-block: 0.5rem; }
.ol-metrics { gap: 2rem; padding-top: 0.5rem; }
.ol-metric-box { gap: 0.1rem; }
.ol-metric { font-weight: 700; color: var(--ol-primary); margin: 0; font-size: 1rem; }

.ol-book-card { position: relative; background: var(--ol-white); border-radius: var(--ol-radius-lg); padding: 1rem; box-shadow: var(--ol-shadow-lg); border: var(--ol-border); max-width: 28rem; margin-inline: auto; }
.ol-book-cover { margin: 0; }
.ol-book-cover img { width: 100%; border-radius: 0.9rem; display: block; box-shadow: 0 10px 30px -10px rgba(30, 26, 34, 0.35); }
.ol-float-badge { position: absolute; top: 1.6rem; inset-inline-start: 1.6rem; z-index: 2; background: rgba(53, 37, 70, 0.9); color: #fff; font-size: 0.72rem; font-weight: 600; padding: 0.3rem 0.8rem; border-radius: 9999px; margin: 0; display: inline-flex; align-items: center; gap: 0.3rem; }
.ol-book-card__foot { padding: 0.75rem 0.25rem 0; gap: 0.5rem; }
.ol-note { font-size: 0.75rem; color: var(--ol-text-2); margin: 0; display: flex; align-items: center; gap: 0.3rem; }

/* ---------- quotes ---------- */
.ol-quote-card { position: relative; background: var(--ol-white); border-radius: var(--ol-radius-lg); padding: 3rem 3rem 2.5rem; box-shadow: var(--ol-shadow); border: var(--ol-border); max-width: 60rem; margin-inline: auto !important; }
.ol-quote-mark { position: absolute; top: 0.25rem; inset-inline-start: 1.5rem; font-family: var(--ol-serif); font-size: 6rem; line-height: 1; color: var(--ol-fixed-dim); margin: 0; }
.ol-quote-text { font-family: var(--ol-serif); font-size: clamp(1.15rem, 2vw, 1.5rem); line-height: 2.1; color: var(--ol-text); margin: 0 0 1.5rem; position: relative; }
.ol-callout { background: linear-gradient(135deg, var(--ol-primary-2), var(--ol-primary)); border-radius: var(--ol-radius); padding: 1.25rem 1.5rem; color: #fff; margin-top: 1rem; }
.ol-callout__row { gap: 1rem; }
.ol-callout__icon { width: 1.8rem; height: 1.8rem; color: #f1c96b; margin: 0; flex: none; }
.ol-callout__icon svg { width: 100%; height: 100%; fill: currentColor; }
.ol-callout__text { font-family: var(--ol-serif); font-size: 1.3rem; line-height: 1.9; margin: 0; color: #fff; }
.ol-callout__cite { font-size: 0.82rem; color: var(--wp--preset--color--on-primary-container, #bca7d0); margin: 0.25rem 0 0; }

/* ---------- cards ---------- */
.ol-card { background: var(--ol-white); border: var(--ol-border); border-radius: var(--ol-radius-lg); padding: 1.6rem; box-shadow: var(--ol-shadow); transition: transform 0.3s, box-shadow 0.3s; box-sizing: border-box; }
.ol-card > * { margin-block: 0; }
.ol-card > * + * { margin-block-start: 0.9rem; }
.ol-pillar:hover, .ol-post-card:hover, .ol-review-card:hover { transform: translateY(-4px); box-shadow: var(--ol-shadow-lg); }
.ol-pillar { display: flex; flex-direction: column; }
.ol-pillar .ol-card-foot { margin-top: auto !important; padding-top: 1rem; border-top: 1px solid rgba(139, 122, 158, 0.15); }
.ol-card-foot { gap: 0.5rem; color: var(--ol-secondary); font-size: 0.82rem; font-weight: 600; }
.ol-card-foot__label { margin: 0; }
.ol-card-foot__arrow { width: 1.1rem; height: 1.1rem; margin: 0; color: var(--ol-secondary); }
.ol-card-foot__arrow svg, .ol-tile-icon svg, .ol-expert__icon svg { width: 100%; height: 100%; fill: currentColor; }
.ol-icon-tile { width: 2.9rem; height: 2.9rem; border-radius: 0.8rem; background: var(--ol-primary-2); display: grid; place-items: center; flex: none; margin: 0; }
.ol-icon-tile--soft { background: var(--ol-sec-cont); }
.ol-icon-tile--light { background: rgba(255, 255, 255, 0.14); }
.ol-icon-tile--sm { width: 2.2rem; height: 2.2rem; border-radius: 50%; }
.ol-tile-icon { width: 1.5rem; height: 1.5rem; color: #fff; margin: 0; }
.ol-icon-tile--soft .ol-tile-icon { color: var(--ol-primary-2); }
.ol-icon-tile--sm .ol-tile-icon { width: 1.1rem; height: 1.1rem; }
.ol-icon-tile--light .ol-tile-icon { color: #fff; }

/* ---------- download banner ---------- */
.ol-banner { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--ol-primary), var(--ol-primary-2)); border-radius: 2rem; padding: 3rem; color: #fff; box-shadow: var(--ol-shadow-lg); }
.ol-banner::before { content: ""; position: absolute; top: -5rem; inset-inline-end: -4rem; width: 18rem; height: 18rem; border-radius: 50%; background: rgba(255, 255, 255, 0.07); }
.ol-banner::after { content: ""; position: absolute; bottom: -6rem; inset-inline-start: -3rem; width: 16rem; height: 16rem; border-radius: 50%; background: rgba(212, 190, 233, 0.12); }
.ol-banner > * { position: relative; z-index: 1; }
.ol-banner__grid { gap: 2.5rem !important; margin: 0; }
.ol-banner .wp-block-column > * + * { margin-block-start: 1rem; }
.ol-banner--center { text-align: center; padding: 3.5rem 2rem; }
.ol-banner--center .ol-lead { margin-inline: auto; }
.ol-glass { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.18); border-radius: var(--ol-radius-lg); padding: 1.5rem; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ol-glass__title { color: #fff; font-weight: 700; margin: 0 0 0.75rem; display: flex; align-items: center; gap: 0.4rem; }
.ol-info-row { gap: 1rem; padding-block: 0.6rem; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.ol-info-row:last-child { border-bottom: 0; }
.ol-info__label { color: var(--wp--preset--color--on-primary-container, #bca7d0); margin: 0; font-size: 0.85rem; }
.ol-info__value { color: #fff; margin: 0; font-weight: 600; font-size: 0.85rem; }
.ol-cta-cover { margin: 0; transform: rotate(-3deg); }
.ol-cta-cover img { border-radius: 0.8rem; box-shadow: 0 24px 40px -12px rgba(0, 0, 0, 0.5); }

/* ---------- profiles & notice ---------- */
.ol-profile { display: flex; flex-direction: column; gap: 1.2rem; }
.ol-profile > * { margin: 0 !important; }
.ol-profile__head { gap: 1rem; }
.ol-avatar-wrap { flex: none; }
.ol-avatar-lg { width: 3.4rem; height: 3.4rem; border-radius: 0.9rem; background: var(--ol-primary-2); color: #fff; font-size: 1.5rem; font-weight: 700; display: grid; place-items: center; margin: 0; }
.ol-profile__foot { margin-top: auto !important; padding-top: 1rem; border-top: 1px solid rgba(139, 122, 158, 0.15); gap: 0.5rem; }
.ol-contact-list { gap: 0.6rem; }
.ol-contact-row { display: flex; align-items: flex-start; gap: 0.5rem; margin: 0; font-size: 0.9rem; color: var(--ol-text-2); }
.ol-notice { background: var(--ol-cont); border: var(--ol-border); border-radius: var(--ol-radius-lg); padding: 1.5rem 2rem; max-width: 60rem; margin-inline: auto !important; }
.ol-notice__row { gap: 1.25rem; }
.ol-notice__row > .wp-block-group { flex: 1; }
.ol-awareness { padding-top: 0; }

/* ---------- reviews ---------- */
.ol-score { padding: 1.75rem; }
.ol-score__head { gap: 0.5rem; }
.ol-score__title { margin: 0; font-weight: 700; color: var(--ol-primary); display: flex; align-items: center; gap: 0.4rem; }
.ol-score__row { gap: 1rem; }
.ol-score__big { font-size: 3.5rem; font-weight: 700; line-height: 1; color: var(--ol-primary); margin: 0; }
.ol-stars { color: var(--ol-star); letter-spacing: 0.1em; margin: 0; font-size: 1rem; line-height: 1.2; }
.ol-stars--lg { font-size: 1.4rem; }
.ol-bar-row { gap: 0.75rem; }
.ol-bar__label { margin: 0; font-size: 0.78rem; color: var(--ol-text-2); min-width: 3.5rem; }
.ol-bar__pct { margin: 0; font-size: 0.78rem; color: var(--ol-outline); min-width: 2.5rem; text-align: end; }
.ol-bar { flex: 1; height: 0.5rem; border-radius: 9999px; background: var(--ol-high); overflow: hidden; margin: 0 !important; gap: 0 !important; flex-wrap: nowrap !important; width: 100%; }
.ol-bar > .wp-block-column { padding: 0; min-height: 0.5rem; flex-grow: 0; }
.ol-bar__fill { background: var(--ol-secondary); border-radius: 9999px; }
.ol-score__bars { gap: 0.5rem; }
.ol-score__foot { gap: 0.75rem; padding-top: 1rem; border-top: 1px solid rgba(139, 122, 158, 0.15); }
.ol-expert { display: flex; flex-direction: column; gap: 1rem; }
.ol-expert > * { margin: 0 !important; }
.ol-expert__head { gap: 0.5rem; }
.ol-expert__icon { width: 1.5rem; height: 1.5rem; margin: 0; color: var(--ol-secondary); }
.ol-expert__text { font-family: var(--ol-serif); font-size: 1.15rem; line-height: 2; flex: 1; }
.ol-expert__person { gap: 0.75rem; margin-top: auto !important; padding-top: 1rem; border-top: 1px solid rgba(139, 122, 158, 0.15); }
.ol-expert--light { background: var(--ol-low); }
.ol-expert--dark { background: linear-gradient(135deg, var(--ol-primary-2), var(--ol-primary)); color: #fff; }
.ol-expert--dark .ol-expert__text, .ol-expert--dark .ol-h4 { color: #fff; }
.ol-expert--dark .ol-caption { color: var(--wp--preset--color--on-primary-container, #bca7d0); }
.ol-expert--dark .ol-chip { background: rgba(255, 255, 255, 0.14); color: #fff; }
.ol-expert--dark .ol-expert__icon { color: #f1c96b; }

.ol-toolbar { gap: 1rem; margin-bottom: 2rem; }
.ol-reviews-list .ol-toolbar { margin-bottom: 2rem; }
.ol-search { margin: 0; min-width: min(20rem, 100%); }
.ol-search .wp-block-search__inside-wrapper { border: var(--ol-border); border-radius: 9999px; background: var(--ol-white); padding: 0.2rem; }
.ol-search .wp-block-search__input { border: 0; background: transparent; padding: 0.5rem 1rem; font-family: inherit; font-size: 0.9rem; }
.ol-search .wp-block-search__button { background: transparent; border: 0; color: var(--ol-secondary); padding: 0.4rem 0.7rem; }
.ol-search--wide { max-width: 36rem; margin-inline: auto; }
.ol-review-grid { gap: 1.5rem !important; }
.ol-review-card { height: 100%; display: flex; flex-direction: column; }
.ol-review-card__title { font-size: 1.15rem !important; margin: 0; }
.ol-review-card__body > * { margin-block: 0.6rem 0; }
.ol-review__stars { color: var(--ol-star); letter-spacing: 0.1em; margin: 0; }
.ol-review__badge { display: inline-block; background: var(--ol-sec-cont); color: var(--ol-on-sec-cont); font-size: 0.75rem; padding: 0.2rem 0.75rem; border-radius: 9999px; margin: 0; width: fit-content; }
.ol-review__text { color: var(--ol-text-2); font-size: 0.95rem; line-height: 1.9; }
.ol-review__quote { font-size: 1rem !important; background: var(--ol-cont); border-radius: 0.5rem; padding: 0.9rem 1rem !important; margin: 0.75rem 0 0 !important; }
.ol-review__quote p { margin: 0; }
.ol-review__reader { font-weight: 600; font-size: 0.85rem; color: var(--ol-primary); border-top: 1px solid rgba(139, 122, 158, 0.15); padding-top: 0.75rem; margin-top: 1rem !important; }
.ol-pagination { margin-top: 2rem; gap: 0.5rem; }
.ol-pagination a, .ol-pagination span { padding: 0.5rem 1rem; border-radius: 9999px; background: var(--ol-high); color: var(--ol-text-2); text-decoration: none; font-size: 0.85rem; }
.ol-pagination .current { background: var(--ol-primary); color: #fff; }
.ol-pagination a:hover { background: var(--ol-sec-cont); }

.ol-gallery { background: linear-gradient(180deg, var(--ol-low), var(--ol-surface)); }
.ol-snap { border-radius: var(--ol-radius-lg); padding: 5rem 1.25rem 1.25rem; min-height: 16rem; color: #fff; background: linear-gradient(160deg, var(--ol-secondary), var(--ol-primary)); display: flex; flex-direction: column; justify-content: flex-end; gap: 0.5rem; box-shadow: var(--ol-shadow); }
.ol-snap--b { background: linear-gradient(160deg, #4c3b5e, #1e1a22); }
.ol-snap--c { background: linear-gradient(160deg, #8b7a9e, #4c3b5e); }
.ol-snap--d { background: linear-gradient(160deg, #6a5a7c, #352546); }
.ol-snap > * { margin: 0; }
.ol-snap__handle { font-weight: 700; font-size: 0.85rem; color: var(--ol-fixed-dim); direction: ltr; text-align: start; }
.ol-snap__text { font-size: 0.9rem; line-height: 1.8; color: #fff; }

/* ---------- forms ---------- */
.ol-form-card { max-width: 52rem; margin-inline: auto !important; padding: 2rem; }
.ol-form { display: flex; flex-direction: column; gap: 1.1rem; }
.ol-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.ol-field { display: flex; flex-direction: column; gap: 0.4rem; }
.ol-field label { font-size: 0.82rem; font-weight: 600; color: var(--ol-text-2); }
.ol-field input, .ol-field select, .ol-field textarea { width: 100%; box-sizing: border-box; background: var(--ol-surface); border: 1px solid var(--ol-fixed-dim); border-radius: 0.6rem; padding: 0.7rem 0.9rem; font: inherit; font-size: 0.92rem; color: var(--ol-text); transition: border-color 0.2s, box-shadow 0.2s; }
.ol-field input:focus, .ol-field select:focus, .ol-field textarea:focus { outline: 0; border-color: var(--ol-primary); box-shadow: 0 0 0 3px rgba(105, 87, 124, 0.15); }
.ol-check { display: flex; align-items: flex-start; gap: 0.6rem; font-size: 0.85rem; color: var(--ol-text-2); }
.ol-check input { margin-top: 0.35rem; accent-color: var(--ol-primary); }
.ol-form__submit { display: flex; justify-content: center; }
.ol-form-msg { display: none; background: var(--ol-cont); border: var(--ol-border); border-radius: 0.6rem; padding: 0.8rem 1rem; color: var(--ol-primary); font-size: 0.9rem; }
.ol-form-msg:target { display: block; }
.ol-form--compact { gap: 0.7rem; }
.ol-stars-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 0.15rem; }
.ol-stars-input input { position: absolute; opacity: 0; pointer-events: none; }
.ol-stars-input label { font-size: 1.6rem; color: var(--ol-outline-v); cursor: pointer; line-height: 1; transition: color 0.15s; }
.ol-stars-input input:checked ~ label, .ol-stars-input label:hover, .ol-stars-input label:hover ~ label { color: var(--ol-star); }

/* ---------- blog ---------- */
.ol-blog-hero .ol-container > * + * { margin-block-start: 1.1rem; }
.ol-feature { padding: 0; overflow: hidden; }
.ol-feature > * + * { margin: 0; }
.ol-feature__grid { margin: 0; gap: 0 !important; }
.ol-feature__text { padding: 2.25rem; display: flex; flex-direction: column; gap: 1.1rem; }
.ol-feature__text > * { margin: 0 !important; }
.ol-feature__title, .ol-feature__title a { font-size: clamp(1.4rem, 2.6vw, 1.9rem) !important; line-height: 1.5; color: var(--ol-primary); text-decoration: none; }
.ol-feature__excerpt { font-family: var(--ol-serif); font-size: 1.15rem; line-height: 2; color: var(--ol-text-2); }
.ol-feature__foot { margin-top: auto !important; padding-top: 1rem; border-top: 1px solid rgba(139, 122, 158, 0.15); gap: 1rem; }
.ol-feature__author { gap: 0.6rem; }
.ol-feature__art, .ol-feature__art > .wp-block-post-featured-image { height: 100%; margin: 0; }
.ol-feature__image { height: 100%; }
.ol-feature__image img { width: 100%; height: 100% !important; min-height: 18rem; object-fit: cover; }
.ol-meta-row { gap: 0.5rem; }
.ol-meta { font-size: 0.78rem; color: var(--ol-outline); margin: 0; }
.ol-meta-dot { margin: 0; color: var(--ol-outline-v); }
.ol-blog-layout { gap: 2rem !important; align-items: flex-start; margin: 0; }
.ol-list-head { margin-bottom: 1.25rem; }
.ol-post-grid { gap: 1.5rem !important; }
.ol-post-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; height: 100%; }
.ol-post-card > * + * { margin: 0; }
.ol-post-card__media { position: relative; }
.ol-post-card__image { margin: 0; }
.ol-post-card__image img { width: 100%; object-fit: cover; display: block; background: var(--ol-fixed); }
.ol-post-card__media { min-height: 3.5rem; background: linear-gradient(135deg, var(--ol-fixed), var(--ol-sec-cont)); }
.ol-feature__art { background: linear-gradient(135deg, var(--ol-fixed), var(--ol-sec-cont)); min-height: 12rem; }
.ol-post-card__term { position: absolute; top: 0.75rem; inset-inline-start: 0.75rem; margin: 0; }
.ol-post-card__term a { display: inline-block; background: rgba(255, 255, 255, 0.92); color: var(--ol-primary); font-size: 0.72rem; font-weight: 600; padding: 0.2rem 0.7rem; border-radius: 9999px; text-decoration: none; }
.ol-post-card__body { padding: 1.25rem 1.25rem 0; gap: 0.6rem; flex: 1; }
.ol-post-card__body > * { margin: 0 !important; }
.ol-post-card__title, .ol-post-card__title a { font-size: 1.05rem !important; line-height: 1.6; color: var(--ol-primary); text-decoration: none; }
.ol-post-card__excerpt { font-size: 0.88rem; color: var(--ol-text-2); line-height: 1.85; }
.ol-post-card__foot { padding: 0.9rem 1.25rem 1.1rem; gap: 0.35rem; margin-top: auto !important; border-top: 1px solid rgba(139, 122, 158, 0.12); }
.ol-sidebar { gap: 1.25rem; position: sticky; top: 6rem; }
.ol-side-card { padding: 1.4rem; }
.ol-side-card--tint { background: var(--ol-cont); }
.ol-side-quote { font-family: var(--ol-serif); font-size: 1.15rem; line-height: 2; margin: 0; }
.ol-side-cite { gap: 0.5rem; padding-top: 0.75rem; border-top: 1px solid rgba(139, 122, 158, 0.2); }
.ol-stat__head { gap: 0.5rem; margin-bottom: 0.35rem; }
.ol-stat__label { margin: 0; font-size: 0.8rem; color: var(--ol-text-2); }
.ol-stat__pct { margin: 0; font-size: 0.8rem; font-weight: 700; color: var(--ol-primary); }
.ol-stat { gap: 0; }
.ol-featured { padding-block: 0 2rem; }
.ol-single__image img { border-radius: var(--ol-radius-lg); width: 100%; }
.ol-prose { font-size: 1.1rem; line-height: 2.1; }
.ol-prose > * + * { margin-block-start: 1.4rem; }
.ol-prose h2, .ol-prose h3 { margin-top: 2.2rem; }
.ol-comments { margin-top: 3rem; }

/* ---------- certificate tool ---------- */
.ol-cert { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.75rem; align-items: start; }
.ol-cert__editor { display: flex; flex-direction: column; gap: 1.1rem; }
.ol-cert__form { display: flex; flex-direction: column; gap: 1.1rem; }
.ol-cert__head, .ol-cert__label-row { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }
.ol-cert__headtitle { display: flex; align-items: center; gap: 0.6rem; }
.ol-cert__head h3 { margin: 0; }
.ol-cert__num { width: 2rem; height: 2rem; border-radius: 0.5rem; background: var(--ol-sec-cont); color: var(--ol-primary); display: grid; place-items: center; font-weight: 700; }
.ol-cert__rating { display: flex; align-items: center; gap: 0.6rem; min-height: 2.6rem; }
.ol-cert__stars { display: flex; gap: 0.1rem; }
.star-btn { background: none; border: 0; padding: 0; font-size: 1.6rem; color: var(--ol-outline-v); cursor: pointer; line-height: 1; transition: transform 0.15s; }
.star-btn:hover { transform: scale(1.15); }
.star-btn.is-on { color: var(--ol-star); }
.ol-cert__themes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; }
.theme-picker-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.8rem 0.4rem; border-radius: 0.8rem; border: 1px solid var(--ol-fixed-dim); background: var(--ol-white); font: inherit; font-size: 0.78rem; font-weight: 600; cursor: pointer; color: var(--ol-text-2); transition: all 0.2s; }
.theme-picker-btn.is-on { border-color: var(--ol-primary-2); box-shadow: 0 0 0 2px var(--ol-primary-2); background: var(--ol-low); color: var(--ol-primary); }
.ol-dot { width: 1.1rem; height: 1.1rem; border-radius: 50%; display: inline-block; border: 1px solid rgba(0,0,0,.08); }
.ol-dot--royal { background: #9333ea; }
.ol-dot--classic { background: #e3d2b9; }
.ol-dot--minimal { background: #e2e8f0; }
.ol-cert__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.ol-cert__actions .ol-btn-primary { flex: 1; min-width: 12rem; }
.ol-cert__note::before { color: var(--ol-secondary); }
.ol-btn-xs { padding: 0.4rem 0.9rem !important; font-size: 0.75rem !important; }
.ol-mono { font-family: ui-monospace, Menlo, Consolas, monospace; direction: ltr; font-weight: 700; }
.ol-cert__bar { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; margin-bottom: 0.9rem; flex-wrap: wrap; }
.ol-cert__bar-end { display: flex; align-items: center; gap: 0.5rem; }
.ol-cert__live { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 600; font-size: 0.85rem; color: var(--ol-text-2); }
.ol-pulse { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: #10b981; box-shadow: 0 0 0 0 rgba(16,185,129,.5); animation: ol-pulse 1.8s infinite; }
@keyframes ol-pulse { 70% { box-shadow: 0 0 0 7px rgba(16,185,129,0); } 100% { box-shadow: 0 0 0 0 rgba(16,185,129,0); } }
.ol-cert__preview { position: sticky; top: 6rem; min-width: 0; }
.ol-cert__doc { position: relative; width: 100%; max-width: 680px; min-height: 900px; margin-inline: auto; box-sizing: border-box; padding: 2.5rem; border: 1px solid #d8b4fe; border-radius: 1rem; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; box-shadow: 0 20px 40px -15px rgba(59, 7, 100, 0.18), 0 0 0 1px rgba(0,0,0,.05); transition: background .3s, border-color .3s; font-size: 0.9rem; }
.doc-theme-royal { background: radial-gradient(circle at 10% 20%, rgba(243, 232, 255, 0.5) 0%, rgba(255, 255, 255, 0.95) 70%), #fff; border-color: #d8b4fe; }
.doc-theme-classic { background: #fbf9f4; border-color: #d5c3aa; }
.doc-theme-minimal { background: #fff; border-color: #e2e8f0; }
.ol-cert__frame { position: absolute; inset: 1rem; border: 1px solid rgba(59, 7, 100, 0.1); border-radius: 0.75rem; pointer-events: none; }
.ol-cert__frame--dashed { inset: 1.25rem; border-style: dashed; border-color: rgba(59, 7, 100, 0.2); border-radius: 0.5rem; }
.ol-cert__top { position: relative; }
.ol-cert__doc-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding-bottom: 1.1rem; margin-bottom: 1.4rem; border-bottom: 1px solid #f3e8ff; }
.ol-cert__pub { display: flex; align-items: center; gap: 0.75rem; }
.ol-cert__logo { width: 3rem; height: 3rem; border-radius: 0.5rem; background: #3b0764; color: #fff; display: grid; place-items: center; font-family: var(--wp--preset--font-family--title, inherit); font-size: 1.3rem; font-weight: 700; flex: none; }
.ol-cert__pub-name { margin: 0; font-family: var(--wp--preset--font-family--title, inherit); font-size: 1rem; color: #22033c; }
.ol-cert__pub-sub { font-size: 0.7rem; color: #64748b; display: block; }
.ol-cert__meta { display: flex; flex-direction: column; align-items: flex-end; gap: 0.5rem; }
.ol-cert__stamp { border: 2px solid #7e22ce; border-radius: 9999px; padding: 0.2rem 0.8rem; text-align: center; background: rgba(255,255,255,.8); transform: rotate(-12deg); line-height: 1.3; }
.ol-cert__stamp span { display: block; font-size: 0.56rem; font-weight: 700; color: #581c87; letter-spacing: .06em; direction: ltr; }
.ol-cert__stamp strong { display: block; font-size: 0.7rem; color: #3b0764; font-family: var(--ol-serif); }
.ol-cert__date { font-size: 0.62rem; color: #94a3b8; }
.ol-cert__book { display: flex; align-items: center; gap: 1rem; background: rgba(255,255,255,.8); border: 1px solid rgba(243,232,255,.9); border-radius: 0.75rem; padding: 0.85rem; margin-bottom: 1.4rem; }
.ol-cert__book img { width: 3.5rem; height: 5rem; object-fit: cover; border-radius: 0.35rem; box-shadow: 0 4px 10px rgba(0,0,0,.2); flex: none; border: 1px solid #e9d5ff; }
.ol-cert__book-tags { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.ol-cert__tag { font-size: 0.62rem; font-weight: 700; background: #f3e8ff; color: #581c87; padding: 0.1rem 0.5rem; border-radius: 0.25rem; }
.ol-cert__isbn { font-size: 0.68rem; color: #64748b; font-family: ui-monospace, Menlo, monospace; direction: ltr; }
.ol-cert__book h5 { margin: 0.2rem 0 0; font-size: 0.88rem; color: #0f172a; }
.ol-cert__book p { margin: 0; font-size: 0.75rem; color: #7e22ce; font-weight: 500; }
.ol-cert__reader-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; padding-bottom: 0.8rem; margin-bottom: 1.2rem; border-bottom: 1px solid rgba(243,232,255,.8); }
.ol-cert__lbl { display: block; font-size: 0.68rem; color: #94a3b8; }
.ol-cert__who { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.ol-cert__who h4 { margin: 0; font-size: 1rem; color: #0f172a; }
.ol-cert__role { font-size: 0.68rem; padding: 0.1rem 0.65rem; border-radius: 9999px; background: #f3e8ff; color: #581c87; font-weight: 500; }
.ol-cert__city { font-size: 0.7rem; color: #64748b; display: block; margin-top: 0.15rem; }
.ol-cert__pstars { color: #fbbf24; font-size: 1rem; letter-spacing: .12em; }
.ol-cert__body { margin-bottom: 1.4rem; }
.ol-cert__title { margin: 0 0 0.8rem; font-family: var(--wp--preset--font-family--title, inherit); font-size: 1.15rem; color: #22033c; line-height: 1.6; }
.ol-cert__text { margin: 0; font-family: var(--ol-serif); font-size: 1.08rem; line-height: 2; color: #334155; text-align: justify; white-space: pre-wrap; }
.ol-cert__quote { margin: 0 !important; border: 0; border-inline-start: 4px solid #7e22ce; background: rgba(250,245,255,.8); border-radius: 0.5rem; padding: 0.85rem 1rem; }
.ol-cert__quote p { margin: 0.3rem 0 0; font-family: var(--ol-serif); font-size: 1.05rem; color: #3b0764; }
.ol-cert__sign { position: relative; display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; border-top: 1px dashed rgba(59,7,100,.2); padding-top: 1rem; margin-top: 1.4rem; }
.ol-cert__sign-info { max-width: 55%; }
.ol-cert__sign-info p { margin: 0.3rem 0 0; font-size: 0.6rem; color: #94a3b8; line-height: 1.7; }
.ol-cert__code { font-family: ui-monospace, Menlo, monospace; font-size: 0.65rem; color: #64748b; direction: ltr; display: inline-block; }
.ol-cert__sign-box { text-align: center; min-width: 9rem; }
.ol-cert__signature { font-family: var(--ol-serif); font-style: italic; font-size: 1.25rem; color: #3b0764; border-bottom: 1px solid #cbd5e1; padding: 0.15rem 0.5rem; margin: 0.2rem 0; }
.doc-theme-classic .ol-cert__logo { background: #46382b; }
.doc-theme-classic .ol-cert__stamp { border-color: #8a6a3e; }
.doc-theme-classic .ol-cert__stamp span, .doc-theme-classic .ol-cert__stamp strong { color: #5b4526; }
.doc-theme-classic .ol-cert__book, .doc-theme-classic .ol-cert__quote { background: #f7f3eb; border-color: #eee5d5; }
.doc-theme-classic .ol-cert__quote { border-inline-start-color: #8a6a3e; }
.doc-theme-classic .ol-cert__title, .doc-theme-classic .ol-cert__pub-name { color: #46382b; }
.doc-theme-minimal .ol-cert__logo { background: #334155; }
.doc-theme-minimal .ol-cert__stamp { border-color: #64748b; }
.doc-theme-minimal .ol-cert__stamp span, .doc-theme-minimal .ol-cert__stamp strong { color: #475569; }
.doc-theme-minimal .ol-cert__book, .doc-theme-minimal .ol-cert__quote { background: #f8fafc; }
.doc-theme-minimal .ol-cert__quote { border-inline-start-color: #475569; }
.doc-theme-minimal .ol-cert__title, .doc-theme-minimal .ol-cert__pub-name { color: #0f172a; }
.ol-cert-section { padding-top: 0; }
.ol-dark-band { background: linear-gradient(180deg, #3b0764, #22033c); }
.ol-card--glass { background: rgba(255, 255, 255, 0.07); border-color: rgba(255, 255, 255, 0.14); box-shadow: none; }
.ol-card--glass p { color: #e9d5ff; }
.ol-card--glass .ol-h3 { color: #fff; }

@media print {
  body * { visibility: hidden !important; }
  #certificate-document, #certificate-document * { visibility: visible !important; }
  #certificate-document { position: absolute; inset: 0 auto auto 0; width: 100%; max-width: 100%; min-height: 0; box-shadow: none; margin: 0; }
  @page { size: A4; margin: 12mm; }
}

.ol-kufi { font-family: var(--wp--preset--font-family--title, inherit) !important; font-weight: 700 !important; }

/* ---------- footer ---------- */
.ol-footer { background: var(--ol-white); border-top: var(--ol-border); padding-block: 3rem 1.5rem; margin: 0 !important; }
.ol-footer__cols { gap: 2.5rem !important; margin: 0 0 2rem; }
.ol-footer__cols .wp-block-column > * + * { margin-block-start: 0.7rem; }
.ol-footer__brand { font-weight: 700; font-size: 1.1rem; color: var(--ol-primary); margin: 0; }
.ol-footer__text { font-size: 0.88rem; color: var(--ol-text-2); line-height: 1.9; margin: 0; }
.ol-footer__author { font-size: 0.85rem; font-weight: 600; color: var(--ol-primary); margin: 0; }
.ol-footer__h { font-size: 1rem !important; margin: 0; }
.ol-footer__bottom { gap: 1rem; padding-top: 1.25rem; border-top: 1px solid rgba(139, 122, 158, 0.18); font-size: 0.78rem; color: var(--ol-outline); }
.ol-footer__copy { margin: 0; }
.ol-footer__links { gap: 1.25rem; }
.ol-footer__link { margin: 0; }
.ol-footer__link a { color: var(--ol-outline); text-decoration: none; }
.ol-footer__link a:hover { color: var(--ol-primary); }

/* ---------- icons (core WordPress icon library as CSS masks; add class ol-ico-NAME to any block) ---------- */
[class*="ol-ico-"]::before { content: ""; display: inline-block; flex: none; width: 1.15em; height: 1.15em; background-color: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; vertical-align: -0.2em; }
.wp-block-button[class*="ol-ico-"] > .wp-block-button__link::before { content: ""; display: inline-block; width: 1.15em; height: 1.15em; background-color: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; vertical-align: -0.2em; margin-inline-end: 0.4rem; }
.wp-block-button[class*="ol-ico-"]::before { display: none; }
button[class*="ol-ico-"]::before { margin-inline-end: 0.4rem; }
p[class*="ol-ico-"]::before { margin-inline-end: 0.4rem; }
.ol-ico-arrow-left { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M20 12L5 12M10 7L5 12L10 17%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-check { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M7 12L10 15L17 8%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-cloud-download { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M8 16.25C6.20507 16.25 4.75 14.7949 4.75 13C4.75 11.2051 6.20507 9.75 8 9.75C8.17905 9.75 8.35472 9.76448 8.5259 9.79233C8.75298 7.79872 10.4456 6.25 12.5 6.25C14.7091 6.25 16.5 8.04086 16.5 10.25C16.5 10.4194 16.4895 10.5863 16.469 10.7502C16.4793 10.7501 16.4897 10.75 16.5 10.75C18.0188 10.75 19.25 11.9812 19.25 13.5C19.25 15.0188 18.0188 16.25 16.5 16.25H16M12 10.5V17M9.5 14.5L12 17L14.5 14.5%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-copy { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M20.25 6.75V19C20.25 19.6904 19.6904 20.25 19 20.25H6.75%22 vector-effect=%22non-scaling-stroke%22 /%3E %3Cpath d=%22M3.75 5C3.75 4.30964 4.30964 3.75 5 3.75H16C16.6904 3.75 17.25 4.30964 17.25 5V16C17.25 16.6904 16.6904 17.25 16 17.25H5C4.30964 17.25 3.75 16.6904 3.75 16V5Z%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-download { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M12 3V16M6 10.5L12 16L17.5 10.5M4.75 15V19.25H19.25V15%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-envelope { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M20.25 8.5V7C20.25 6.30964 19.6904 5.75 19 5.75H5C4.30964 5.75 3.75 6.30964 3.75 7V8.5M20.25 8.5V17C20.25 17.6904 19.6904 18.25 19 18.25H5C4.30964 18.25 3.75 17.6904 3.75 17V8.5M20.25 8.5L12 14.5L3.75 8.5%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-external { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M9.5 6.25H6.5C5.80964 6.25 5.25 6.80964 5.25 7.5V17.5C5.25 18.1904 5.80964 18.75 6.5 18.75H16.5C17.1904 18.75 17.75 18.1904 17.75 17.5V14.5M11.5 12.5L18.75 5.25M12.5 5.25H18.75V11.5%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-info { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M12 16V11M12 9.5V8M19.25 12C19.25 16.0041 16.0041 19.25 12 19.25C7.99594 19.25 4.75 16.0041 4.75 12C4.75 7.99594 7.99594 4.75 12 4.75C16.0041 4.75 19.25 7.99594 19.25 12Z%22 stroke-linejoin=%22round%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-map-marker { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M6.75 10.37C6.75 7.4705 9.10051 5.12 12 5.12C14.8995 5.12 17.25 7.4705 17.25 10.37C17.25 13.2695 14 17 12 19.25C10 17 6.75 13.2695 6.75 10.37Z%22 vector-effect=%22non-scaling-stroke%22 /%3E %3Cpath d=%22M12 12A1.5 1.5 0 1 0 12 9A1.5 1.5 0 0 0 12 12Z%22 fill=%22%23000%22 stroke=%22none%22 /%3E %3C/svg%3E"); }
.ol-ico-mobile { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M11 16.5H13M16.25 18V6C16.25 5.30964 15.6904 4.75 15 4.75H9C8.30964 4.75 7.75 5.30964 7.75 6L7.75 18C7.75 18.6904 8.30964 19.25 9 19.25H15C15.6904 19.25 16.25 18.6904 16.25 18Z%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-page { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M8.5 8.25H15.5M8.5 11.75H15.5M8.5 15.25H15.5M18.25 18V6C18.25 5.30964 17.6904 4.75 17 4.75H7C6.30964 4.75 5.75 5.30964 5.75 6L5.75 18C5.75 18.6904 6.30964 19.25 7 19.25H17C17.6904 19.25 18.25 18.6904 18.25 18Z%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-pages { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M7.75 20.25H19C19.6904 20.25 20.25 19.6904 20.25 19V5.75%22 vector-effect=%22non-scaling-stroke%22 /%3E %3Cpath d=%22M7.5 6.25H14.5M7.5 9.75H14.5M7.5 13.25H14.5M17.25 16V4C17.25 3.30964 16.6904 2.75 16 2.75H6C5.30964 2.75 4.75 3.30964 4.75 4L4.75 16C4.75 16.6904 5.30964 17.25 6 17.25H16C16.6904 17.25 17.25 16.6904 17.25 16Z%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-pencil { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M5 19.25H12%22 vector-effect=%22non-scaling-stroke%22 /%3E %3Cpath d=%22M10 15L7.5 15.5L8 13L16 5L18 7L10 15Z%22 fill=%22%23000%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-quote { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M10 11.25V6.75H4.75V11.25H10ZM10 11.25V16C10 17.5 9.5 19 6 19M19 11.25V6.75H13.75V11.25H19ZM19 11.25V16C19 17.5 18.5 19 15 19%22 vector-effect=%22non-scaling-stroke%22 /%3E %3Cpath d=%22M10 6.75V11.25H4.75V6.75H10Z%22 fill=%22%23000%22 stroke=%22none%22 /%3E %3Cpath d=%22M19 6.75V11.25H13.75V6.75H19Z%22 fill=%22%23000%22 stroke=%22none%22 /%3E %3C/svg%3E"); }
.ol-ico-reaction { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M4.75 12C4.75 7.99593 7.99594 4.75 12 4.75C16.0041 4.75 19.25 7.99594 19.25 12C19.25 16.0041 16.0041 19.25 12 19.25C7.99594 19.25 4.75 16.0041 4.75 12Z%22 stroke-linejoin=%22round%22 vector-effect=%22non-scaling-stroke%22 /%3E %3Cpath d=%22M9 12.5C9 14.1569 10.3431 15.5 12 15.5C13.6569 15.5 15 14.1569 15 12.5%22 stroke-linejoin=%22round%22 vector-effect=%22non-scaling-stroke%22 /%3E %3Ccircle cx=%229.5%22 cy=%2210%22 r=%220.5%22 fill=%22%23000%22 vector-effect=%22non-scaling-stroke%22 /%3E %3Ccircle cx=%2214.5%22 cy=%2210%22 r=%220.5%22 fill=%22%23000%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-receipt { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M8 10H16M8 14H16M19.25 4.75V19L16.5 17.75L14 19.25L12 17.75L10 19.25L7.5 17.75L4.75 19V4.75L7.5 6L10 4.5L12 6L14 4.5L16.5 6L19.25 4.75Z%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-search { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M5 19L9.28769 14.7123M18.25 11C18.25 13.8995 15.8995 16.25 13 16.25C10.1005 16.25 7.75 13.8995 7.75 11C7.75 8.10051 10.1005 5.75 13 5.75C15.8995 5.75 18.25 8.10051 18.25 11Z%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-send { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M4.75 13V18L19 12L4.75 6V11M4.75 13L7.5 12L4.75 11M4.75 13V11%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-share { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M15.75 5.69118V7C15.75 7.13807 15.8619 7.25 16 7.25H18C18.1381 7.25 18.25 7.13807 18.25 7V5C18.25 4.86193 18.1381 4.75 18 4.75H16C15.8619 4.75 15.75 4.86193 15.75 5V5.69118ZM15.75 5.69118L8.25 11.4265M15.75 18.3088V19C15.75 19.1381 15.8619 19.25 16 19.25H18C18.1381 19.25 18.25 19.1381 18.25 19V17C18.25 16.8619 18.1381 16.75 18 16.75H16C15.8619 16.75 15.75 16.8619 15.75 17V18.3088ZM15.75 18.3088L8.25 12.5735M8.25 11.4265V11C8.25 10.8619 8.13807 10.75 8 10.75H6C5.86193 10.75 5.75 10.8619 5.75 11V13C5.75 13.1381 5.86193 13.25 6 13.25H8C8.13807 13.25 8.25 13.1381 8.25 13V12.5735M8.25 11.4265V12.5735%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-shield { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M18 6.75V10.5C18 14.4187 15.4956 17.7524 12 18.9879C8.50442 17.7524 6 14.4187 6 10.5V6.75L12 4L18 6.75Z%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }
.ol-ico-star-filled { --ico: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 style=%22fill: none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E %3Cpath d=%22M12 5.71576L13.6106 8.97924C13.7563 9.27438 14.0379 9.47895 14.3636 9.52628L17.965 10.0496L15.359 12.5899C15.1233 12.8196 15.0157 13.1506 15.0714 13.475L15.6866 17.0619L12.4653 15.3684C12.174 15.2152 11.826 15.2152 11.5347 15.3684L8.31341 17.0619L8.92861 13.475C8.98425 13.1506 8.8767 12.8196 8.64102 12.5899L6.03497 10.0496L9.63644 9.52628C9.96215 9.47895 10.2437 9.27438 10.3894 8.97924L12 5.71576Z%22 fill=%22%23000%22 vector-effect=%22non-scaling-stroke%22 /%3E %3C/svg%3E"); }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
  :root { --ol-pad: 1.5rem; }
  .ol-cols-4 { flex-wrap: wrap !important; }
  .ol-cols-4 > .wp-block-column { flex-basis: calc(50% - 0.75rem) !important; flex-grow: 1; }
  .ol-cert { grid-template-columns: 1fr; }
  .ol-cert__doc { min-height: 0; }
  .ol-cert__preview, .ol-sidebar { position: static; }
}
@media (max-width: 781px) {
  :root { --ol-pad: 1.25rem; }
  .ol-section { padding-block: 2.5rem; }
  .ol-hero__grid, .ol-banner__grid { gap: 1.5rem !important; }
  .ol-banner { padding: 2rem 1.25rem; border-radius: 1.5rem; }
  .ol-quote-card { padding: 2.5rem 1.25rem 1.5rem; }
  .ol-cols-4 > .wp-block-column { flex-basis: 100% !important; }
  .ol-form__row, .ol-cert__themes { grid-template-columns: 1fr; }
  .ol-toolbar, .ol-section-head--split { flex-direction: column; align-items: stretch; }
  .ol-header__cta { display: none; }
  .ol-feature__text { padding: 1.5rem; }
  .ol-post-grid { grid-template-columns: 1fr !important; }
  .ol-review-grid { grid-template-columns: 1fr !important; }
  .ol-cta-cover { max-width: 12rem; margin-inline: auto; }
  .ol-metrics { gap: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
