/* Site-wide styles, ported unchanged from Global Styles > Additional CSS.
   Includes local @font-face declarations (Newsreader etc.), homepage sections,
   testimonial grid, header/mega-menu and utility classes. */
/* === Modula rebuild — site CSS (lives in Global Styles > Additional CSS) === */

/* Local fonts (Font Library files in uploads/fonts) */
@font-face { font-family:'Newsreader'; font-weight:400; font-style:normal; font-display:swap; src:url('/wp-content/uploads/fonts/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438weI_ACexEPjCggA.woff2') format('woff2'); }
@font-face { font-family:'Newsreader'; font-weight:500; font-style:normal; font-display:swap; src:url('/wp-content/uploads/fonts/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438wSo_ACexEPjCggA.woff2') format('woff2'); }
@font-face { font-family:'Newsreader'; font-weight:700; font-style:normal; font-display:swap; src:url('/wp-content/uploads/fonts/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD9JVF438wn4jACexEPjCggA.woff2') format('woff2'); }
@font-face { font-family:'Newsreader'; font-weight:400; font-style:italic; font-display:swap; src:url('/wp-content/uploads/fonts/cY9kfjOCX1hbuyalUrK439vogqC9yFZCYg7oRZaLP4obnf7fTXglsMwoT-ZFHDWwgECi.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-weight:400; font-style:normal; font-display:swap; src:url('/wp-content/uploads/fonts/zYXGKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1swZSAXcomDVmadSD6llzBaI5loa26g.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-weight:500; font-style:normal; font-display:swap; src:url('/wp-content/uploads/fonts/zYXGKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1swZSAXcomDVmadSD2FlzBaI5loa26g.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-weight:600; font-style:normal; font-display:swap; src:url('/wp-content/uploads/fonts/zYXGKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1swZSAXcomDVmadSDNF5zBaI5loa26g.woff2') format('woff2'); }

/* Brand tokens (frontend fallback — global styles user layer prints before theme on this install) */
:root, body { --wp--preset--color--primary:#1A1A1A; --wp--preset--color--primary-accent:#F0F0EE; }
:root { --modula-ink:#1A1A1A; --modula-muted:#666666; }
body { font-family:'IBM Plex Sans',sans-serif; }
h1,h2,h3,h4,h5,.wp-block-post-title { font-family:'Newsreader',serif; font-weight:400; letter-spacing:-0.01em; }

/* Utility classes used across homepage / pricing / header parts */
.modula-badge-pill { display:inline-block; background:var(--modula-ink); color:#fff; border-radius:100px; padding:.35rem 1rem; font-size:.75rem !important; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.modula-badge-new { display:inline-block; background:var(--modula-ink); color:#fff; border-radius:100px; padding:.14rem .5rem; font-size:.6rem !important; font-weight:600; letter-spacing:.09em; text-transform:uppercase; vertical-align:middle; margin-left:.5rem; }
.modula-chips { display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; }
.modula-chip { border:1px solid #E0E0E0; border-radius:100px; padding:.45rem 1.1rem; font-size:.875rem !important; color:var(--modula-ink); }
.modula-chip .check { color:var(--modula-ink); font-weight:600; margin-right:.35rem; }
.modula-dark .modula-chip .check { color:#fff; }
.modula-stars { color:#F6B21B; letter-spacing:3px; }
.modula-caption { color:var(--modula-muted); font-size:.9rem !important; }
.modula-dark .modula-chip { border-color:#3A3A3A; color:#fff; }
.is-style-modula-quiet-link a { color:var(--modula-ink); text-decoration:underline; text-underline-offset:4px; }

/* Demo switcher tabs (core buttons; JS in mu-plugin toggles .is-active) */
.modula-demo-tabs { margin:2rem auto 2.2rem; max-width:960px; }
.modula-demo-tabs .modula-demo-tab .wp-block-button__link { border:1px solid #E0E0E0; background:#fff; color:var(--modula-ink); border-radius:100px; padding:.55rem 1.25rem; font-family:'IBM Plex Sans',sans-serif; font-size:.9rem; font-weight:500; cursor:pointer; transition:all .15s ease; }
.modula-demo-tabs .modula-demo-tab:hover .wp-block-button__link { border-color:var(--modula-ink); }
.modula-demo-tabs .modula-demo-tab.is-active .wp-block-button__link { background:var(--modula-ink); color:#fff; border-color:var(--modula-ink); }
.modula-demo-tab .tab-new { display:inline-block; margin-left:.45rem; background:var(--modula-ink); color:#fff; border-radius:100px; font-size:.62rem; font-weight:600; letter-spacing:.05em; padding:.1rem .45rem; vertical-align:middle; }
.modula-dark .modula-demo-tab .wp-block-button__link { background:transparent; border-color:#3A3A3A; color:#fff; }
.modula-dark .modula-demo-tab:hover .wp-block-button__link { border-color:#fff; }
.modula-dark .modula-demo-tab.is-active .wp-block-button__link { background:#fff; color:var(--modula-ink); border-color:#fff; }
.modula-dark .modula-demo-tab .tab-new { background:#fff; color:var(--modula-ink); }
.modula-demo-panel { display:none; }
.modula-demo-panel.is-active { display:block; }
.modula-demo-stage { min-height:420px; }

/* Protection feature list (dark section) */
.modula-protect-list .modula-protect-item { margin:0 !important; padding:1rem 0; border-bottom:1px solid #2C2C2C; }
.modula-protect-list .modula-protect-item:first-child { padding-top:.2rem; }
.modula-protect-list .modula-protect-item:last-child { border-bottom:none; }
.modula-protect-item h3 { margin:0 0 .3rem !important; font-size:1.02rem !important; letter-spacing:0; }
.modula-protect-item h3::before { content:"✓"; color:#fff; font-family:'IBM Plex Sans',sans-serif; font-weight:600; margin-right:.6rem; }
.modula-protect-item p { margin:0 !important; line-height:1.55 !important; padding-left:1.35rem; }

/* Mega menu panels */
.modula-mega-head { letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:#999 !important; font-family:'IBM Plex Sans',sans-serif !important; margin-bottom:.6rem !important; }
.modula-mega-links { line-height:2.1 !important; }
.modula-mega-links a { color:var(--modula-ink); text-decoration:none; }
.modula-mega-links a:hover { text-decoration:underline; text-underline-offset:4px; }
.modula-mega-links .modula-badge-new { font-size:.55rem !important; padding:.08rem .42rem; margin-left:.3rem; }
.wp-block-ollie-mega-menu__menu-container { border:1px solid #ECECEC; border-radius:14px; box-shadow:0 24px 60px rgba(0,0,0,.12); overflow:hidden; }
.wp-block-ollie-mega-menu__menu-container.menu-width-wide { width:min(1260px, calc(100vw - 3rem)); }
/* Fix: mega-menu panel overlapping the main nav on a slow page load.
   The ollie/mega-menu block's own view.js only writes the panel's `top` offset (from its
   data-top-spacing attribute) once document.readyState is "complete" (window `load`), not on
   DOMContentLoaded. Its base stylesheet ships `top:0`, so hovering a menu after the page has
   started rendering but before every image/script has finished loading opens the panel flush
   with the top of the nav item — overlapping the nav bar — until that late JS finally runs.
   The correct offset (data-top-spacing="78" on both mega menus, Layouts and Features) is already
   present in the server-rendered HTML, so it can be applied at first paint with no JS dependency.
   NB: this targets the one topSpacing value actually in use; if that block setting is ever
   changed in the editor, add another `[data-top-spacing="N"]` rule (or update this one). */
.wp-block-ollie-mega-menu__menu-container[data-top-spacing="78"] { top: 78px; }
.modula-mm-preview { background:#1a1a1a; border-radius:12px; padding:1.1rem; }
.modula-mm-preview .modula-mm-preview-img { margin:0 0 .9rem !important; }
.modula-mm-preview .modula-mm-preview-img img { width:100%; height:auto; aspect-ratio:740/485; object-fit:cover; border-radius:8px; display:block; transition:opacity .15s ease; }
.modula-mm-preview .modula-mm-preview-title { margin:0 0 .35rem !important; }
.modula-mm-preview .modula-mm-preview-desc { color:#b9b9b9 !important; margin:0 !important; line-height:1.55 !important; }
#mega-layouts-panel .modula-mega-links a.is-previewing { text-decoration:underline; text-underline-offset:4px; }

/* Hero parallax caption as CTA (class added by JS) */
.modula-dark .modula-title, .modula-dark .modula-description, .modula-dark .figc p { color:#fff !important; }
.modula-hero-cta { cursor:pointer; font-family:'Newsreader',serif !important; font-size:clamp(4rem, 8.5vw, 8rem) !important; font-weight:700 !important; line-height:1.05 !important; letter-spacing:-0.02em; transition:opacity .2s ease; display:flex; flex-direction:column; align-items:center; text-align:center; }
.modula-hero-cta:hover { opacity:.85; }
.modula-hero-cta::after { content:"↓  See every layout live"; display:block; font-family:'IBM Plex Sans',sans-serif; font-size:1rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; margin-top:1.2rem; opacity:.85; }

/* Footer CTA — dark rounded panel + floating product-UI mockup (Download Monitor pattern) */
.modula-cta { position:relative; background:#141414; background:linear-gradient(135deg,#191919 0%,#0e0e0e 100%); border-radius:28px; padding:clamp(2.2rem,4vw,4rem); display:grid; grid-template-columns:1.05fr .95fr; gap:2.5rem; align-items:center; overflow:hidden; }
.modula-cta::before { content:""; position:absolute; top:-30%; right:-10%; width:60%; height:160%; background:radial-gradient(closest-side,rgba(255,255,255,.06),transparent); pointer-events:none; }
.modula-cta-copy { position:relative; z-index:1; }
.modula-cta-eyebrow { display:inline-block; color:#8a8a8a; font-family:'IBM Plex Sans',sans-serif; font-size:.75rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; margin-bottom:1rem; }
.modula-cta-title { color:#fff; font-family:'Newsreader',serif; font-weight:700; font-size:clamp(2rem,3.4vw,3.1rem); line-height:1.08; letter-spacing:-.02em; margin:0 0 1rem; max-width:14ch; }
.modula-cta-sub { color:#b4b4b4; font-family:'IBM Plex Sans',sans-serif; font-size:1.02rem; line-height:1.6; margin:0 0 2rem; max-width:46ch; }
.modula-cta-actions { display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap; }
.modula-cta-btn { display:inline-flex; align-items:center; gap:.55rem; background:#fff; color:#141414; border-radius:100px; padding:.85rem 1.6rem; font-family:'IBM Plex Sans',sans-serif; font-size:.95rem; font-weight:600; text-decoration:none; transition:transform .14s ease, box-shadow .14s ease; }
.modula-cta-btn span { transition:transform .18s ease; }
.modula-cta-btn:hover { transform:translateY(-1px); box-shadow:0 10px 26px rgba(0,0,0,.35); }
.modula-cta-btn:hover span { transform:translateX(3px); }
.modula-cta-talk { display:flex; align-items:center; gap:.7rem; }
.modula-cta-avatars { display:inline-flex; }
.modula-cta-avatars span { width:26px; height:26px; border-radius:100px; border:2px solid #141414; margin-left:-8px; background-size:cover; }
.modula-cta-avatars span:first-child { margin-left:0; }
.modula-cta-avatars .a1 { background:linear-gradient(135deg,#f6b21b,#e6791b); }
.modula-cta-avatars .a2 { background:linear-gradient(135deg,#3eaf7c,#1f8a4c); }
.modula-cta-avatars .a3 { background:linear-gradient(135deg,#6a8cff,#4b5bd6); }
.modula-cta-talk a { color:#fff; font-family:'IBM Plex Sans',sans-serif; font-size:.92rem; font-weight:500; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:1px; }
.modula-cta-talk a:hover { border-bottom-color:#fff; }
.modula-cta-guarantee { color:#7c7c7c; font-family:'IBM Plex Sans',sans-serif; font-size:.82rem; margin:1.6rem 0 0; }
/* Mockup column */
.modula-cta-mock { position:relative; z-index:1; min-height:340px; }
.modula-mock-panel { position:absolute; top:50%; left:0; right:-2.5rem; transform:translateY(-50%); background:#fff; border-radius:16px; box-shadow:0 30px 70px rgba(0,0,0,.4); padding:1.1rem 1.15rem; }
.modula-mock-head { display:flex; align-items:center; justify-content:space-between; padding:.15rem .35rem .85rem; border-bottom:1px solid #efefef; }
.modula-mock-head-title { display:inline-flex; align-items:center; gap:.5rem; font-family:'IBM Plex Sans',sans-serif; font-size:.92rem; font-weight:600; color:#1a1a1a; }
.modula-mock-head-title svg { width:16px; height:16px; color:#1a1a1a; }
.modula-mock-head-count { font-family:'IBM Plex Sans',sans-serif; font-size:.76rem; font-weight:600; color:#4b5bd6; }
.modula-mock-table { display:flex; flex-direction:column; }
.modula-mock-row { display:grid; grid-template-columns:1.9fr .85fr .6fr .85fr; align-items:center; gap:.4rem; padding:.62rem .35rem; border-bottom:1px solid #f4f4f4; font-family:'IBM Plex Sans',sans-serif; font-size:.8rem; }
.modula-mock-row:last-child { border-bottom:0; }
.modula-mock-row--head { padding-top:.7rem; padding-bottom:.5rem; }
.modula-mock-row--head span { font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:#a0a0a0; font-weight:600; }
.modula-mock-row .g { display:flex; align-items:center; gap:.55rem; color:#1a1a1a; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.modula-mock-row .g i { flex:0 0 auto; width:26px; height:26px; border-radius:6px; background-size:cover; background-position:center; }
.modula-mock-row .mut { color:#8a8a8a; }
.modula-mock-row .badge { justify-self:start; display:inline-block; border-radius:100px; padding:.16rem .55rem; font-size:.68rem; font-weight:600; }
.modula-mock-row .badge.pub { background:#e4f6ec; color:#1f8a4c; }
.modula-mock-row .badge.draft { background:#fdf2dc; color:#b7791f; }
.modula-mock-row .badge.prot { background:#e8eafd; color:#4b5bd6; }
.modula-mock-preview { position:absolute; bottom:-1.6rem; right:-2rem; width:196px; background:#fff; border-radius:14px; box-shadow:0 20px 44px rgba(0,0,0,.32); overflow:hidden; }
.modula-mock-preview-img { position:relative; height:120px; background-size:cover; background-position:center 30%; }
.modula-mock-preview-tag { position:absolute; top:.5rem; left:.5rem; display:inline-flex; align-items:center; gap:.3rem; background:rgba(20,20,20,.82); color:#fff; font-family:'IBM Plex Sans',sans-serif; font-size:.62rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; padding:.22rem .55rem; border-radius:100px; }
.modula-mock-preview-tag::before { content:""; width:6px; height:6px; border-radius:100px; background:#3eaf7c; box-shadow:0 0 0 3px rgba(62,175,124,.25); }
.modula-mock-preview-cap { padding:.6rem .8rem .72rem; display:flex; flex-direction:column; gap:.16rem; }
.modula-mock-preview-cap .n { font-family:'IBM Plex Sans',sans-serif; font-size:.82rem; font-weight:600; color:#1a1a1a; }
.modula-mock-preview-cap .m { font-family:'IBM Plex Sans',sans-serif; font-size:.7rem; color:#8a8a8a; }
@media (max-width:980px){
  .modula-cta { grid-template-columns:1fr; gap:2rem; }
  .modula-cta-title { max-width:none; }
  .modula-cta-mock { min-height:0; margin-top:.5rem; }
  .modula-mock-panel { position:static; transform:none; right:auto; box-shadow:0 18px 44px rgba(0,0,0,.3); }
  .modula-mock-preview { position:absolute; bottom:-1rem; right:.5rem; }
}
@media (max-width:520px){
  .modula-cta { padding:1.6rem 1.3rem; border-radius:20px; }
  .modula-mock-row { grid-template-columns:1.7fr .7fr .8fr; }
  .modula-mock-row .mut:nth-child(3) { display:none; }
  .modula-mock-row--head span:nth-child(3) { display:none; }
  .modula-mock-preview { right:-.3rem; }
}

/* Album wall — live, real gallery covers presented as browsable albums (show, don't tell) */
.modula-albumwall { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.modula-albumcard { display:block; text-decoration:none; border-radius:16px; overflow:hidden; border:1px solid #ECECEC; background:#fff; box-shadow:0 2px 12px rgba(20,20,30,.05); transition:transform .18s ease, box-shadow .18s ease; }
.modula-albumcard:hover { transform:translateY(-4px); box-shadow:0 20px 44px rgba(20,20,30,.14); }
.modula-albumcard .cover { position:relative; aspect-ratio:16/11; background-size:cover; background-position:center; }
.modula-albumcard .cover::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.28), rgba(0,0,0,0) 55%); }
.modula-albumcard .badge { position:absolute; z-index:2; top:12px; right:12px; background:rgba(20,20,24,.82); color:#fff; font-family:'IBM Plex Sans',sans-serif; font-size:12px; font-weight:600; padding:5px 11px; border-radius:100px; backdrop-filter:blur(4px); }
.modula-albumcard .stack { position:absolute; z-index:2; left:12px; bottom:12px; display:flex; gap:5px; }
.modula-albumcard .stack span { width:28px; height:28px; border-radius:7px; border:2px solid #fff; background-size:cover; background-position:center; box-shadow:0 2px 6px rgba(0,0,0,.3); }
.modula-albumcard .meta { padding:16px 18px 18px; }
.modula-albumcard .t { display:block; font-family:'Newsreader',serif; font-size:1.25rem; color:#1a1a1a; line-height:1.2; }
.modula-albumcard .d { display:block; font-family:'IBM Plex Sans',sans-serif; font-size:.82rem; color:#8a8a94; margin-top:4px; }
@media (max-width:900px){ .modula-albumwall { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .modula-albumwall { grid-template-columns:1fr; } }

/* Code blocks (KB CSS-snippet articles) — wrap long lines instead of overflowing the column */
.wp-block-code { overflow-x:auto; }
.wp-block-code code { white-space:pre-wrap; word-break:break-word; overflow-wrap:anywhere; display:block; }

/* Video gallery playlist — replace the chunky native scrollbar with a thin, unobtrusive one */
.modula-video .modula-video-items { scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.28) transparent; }
.modula-video .modula-video-items::-webkit-scrollbar { width:6px; }
.modula-video .modula-video-items::-webkit-scrollbar-track { background:transparent; }
.modula-video .modula-video-items::-webkit-scrollbar-thumb { background:rgba(255,255,255,.28); border-radius:100px; }
.modula-video .modula-video-items:hover { scrollbar-color:rgba(255,255,255,.5) transparent; }
.modula-video .modula-video-items:hover::-webkit-scrollbar-thumb { background:rgba(255,255,255,.5); }
.modula-video .modula-video-items::-webkit-scrollbar-button { display:none; height:0; width:0; }

/* Feature-page product screenshot */
.modula-shot img, .modula-shot video { border-radius:14px; box-shadow:0 20px 50px rgba(20,20,30,.13); display:block; width:100%; height:auto; }
/* Video spotlights — click-to-play with a big centre play button + "Video" badge */
figure.wp-block-video.modula-shot { position:relative; margin:0; }
figure.wp-block-video.modula-shot video { cursor:pointer; }
.modula-vplay { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; cursor:pointer; border:0; padding:0; background:linear-gradient(180deg, rgba(10,10,14,.06), rgba(10,10,14,.28)); border-radius:14px; transition:background .18s ease; }
.modula-vplay:hover { background:linear-gradient(180deg, rgba(10,10,14,.10), rgba(10,10,14,.38)); }
.modula-vplay .disc { width:96px; height:96px; border-radius:100px; background:rgba(255,255,255,.96); box-shadow:0 14px 40px rgba(0,0,0,.35); display:flex; align-items:center; justify-content:center; transition:transform .18s ease; }
.modula-vplay:hover .disc { transform:scale(1.07); }
.modula-vplay .disc::after { content:""; margin-left:7px; border-left:30px solid #141414; border-top:19px solid transparent; border-bottom:19px solid transparent; }
.modula-vbadge { position:absolute; top:14px; left:14px; z-index:2; display:inline-flex; align-items:center; gap:.45rem; background:rgba(20,20,24,.86); color:#fff; font-family:'IBM Plex Sans',sans-serif; font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:.34rem .7rem; border-radius:100px; backdrop-filter:blur(4px); pointer-events:none; }
.modula-vbadge::before { content:""; border-left:8px solid #fff; border-top:5px solid transparent; border-bottom:5px solid transparent; }
figure.wp-block-video.modula-shot.is-playing .modula-vbadge { opacity:0; transition:opacity .2s ease; }
@media (max-width:600px){ .modula-vplay .disc { width:70px; height:70px; } .modula-vplay .disc::after { border-left-width:22px; border-top-width:14px; border-bottom-width:14px; margin-left:5px; } }
/* Feature checklist (core wp:list styled) */
.modula-checklist { list-style:none !important; margin:1.4rem 0 0 !important; padding:0 !important; display:flex; flex-direction:column; gap:.65rem; }
.modula-checklist li { position:relative; padding-left:2rem; font-family:'IBM Plex Sans',sans-serif; font-size:.98rem; color:#33333c; line-height:1.4; }
.modula-checklist li::before { content:"✓"; position:absolute; left:0; top:.02rem; width:1.35rem; height:1.35rem; background:#1A1A1A; color:#fff; border-radius:50%; font-size:.72rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
/* Full-width section transitions — kill stray block margins that leave gaps */

/* === Restored rules (recovered from Global Styles revision 1832) === */
.modula-eyebrow { letter-spacing:.16em; font-size:.8rem !important; font-weight:500; text-transform:uppercase; color:var(--modula-ink); }
.modula-eyebrow .dot { color:var(--modula-ink); font-size:.7rem; vertical-align:middle; }
.modula-price-row { gap:1.5rem; }
.modula-price-row > .wp-block-column { display:flex; }
.modula-price-card { border:1px solid #ECECEC; border-radius:16px; background:#fff; padding:1.8rem 1.6rem; width:100%; display:flex; flex-direction:column; gap:.6rem; position:relative; }
.modula-price-card.is-featured { border-color:var(--modula-ink); box-shadow:0 16px 40px rgba(0,0,0,.08); }
.modula-price-flag { position:absolute; top:-14px; left:50%; transform:translateX(-50%); margin:0 !important; }
.modula-price-line { margin:.4rem 0 !important; }
.modula-price-line .price-was { color:#999; text-decoration:line-through; font-size:.85rem; }
.modula-price-line .price-now { font-family:'Newsreader',serif; font-size:3rem; line-height:1; color:var(--modula-ink); }
.modula-price-line .price-save { display:inline-block; margin-left:.6rem; background:#F0F0EE; color:var(--modula-ink); border-radius:100px; font-size:.72rem; font-weight:600; padding:.2rem .6rem; vertical-align:middle; }
.modula-price-features { line-height:2 !important; }
.modula-price-features .check { color:var(--modula-ink); font-weight:600; margin-right:.3rem; }
.modula-video-items { scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.28) transparent; }
.modula-video-items::-webkit-scrollbar { width:6px; }
.modula-video-items::-webkit-scrollbar-track { background:transparent; }
.modula-video-items::-webkit-scrollbar-thumb { background:rgba(255,255,255,.28); border-radius:100px; }
.modula-video-items:hover { scrollbar-color:rgba(255,255,255,.5) transparent; }
.modula-video-items:hover::-webkit-scrollbar-thumb { background:rgba(255,255,255,.5); }
.modula-video-items::-webkit-scrollbar-button { display:none; height:0; width:0; }
.modula-reviews { display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem; padding:0 clamp(1.5rem,5vw,5.5rem); max-width:1820px; margin:0 auto; align-items:stretch; }
.modula-rev { position:relative; overflow:hidden; display:flex; flex-direction:column; background:#fff; border:1px solid #e5e5e5; border-radius:14px; padding:2rem 1.9rem; box-shadow:0 14px 40px rgba(0,0,0,.06); }
.modula-rev::after { content:"”"; position:absolute; top:.1rem; right:1.1rem; font-family:'Newsreader',Georgia,serif; font-size:4.5rem; line-height:1; color:rgba(22,163,74,.12); pointer-events:none; }
.modula-rev.is-featured { grid-column:span 2; padding:2.4rem 2.4rem 2rem; }
.modula-rev-stars { color:#f5a623; letter-spacing:4px; font-size:1rem; line-height:1; margin-bottom:1.3rem; }
.modula-rev blockquote { flex:1 1 auto; margin:0 0 1.6rem; padding:0; border:0; font-family:'IBM Plex Sans',sans-serif; font-size:1.05rem; line-height:1.55; color:#1a1a1a; }
.modula-rev.is-featured blockquote { color:#111; font-family:'Newsreader',serif; font-weight:500; font-size:1.7rem; line-height:1.4; letter-spacing:-.01em; }
.modula-rev figcaption { display:flex; align-items:center; gap:.75rem; margin-top:auto; border-top:1px solid #f0f0f0; padding-top:1.1rem; text-align:left; flex-wrap:wrap; }
.modula-rev::before { content:"✓ Verified purchase"; align-self:flex-start; margin-bottom:1rem; background:#e9f8ef; color:#15803d; font:600 11.5px/1 'IBM Plex Sans',system-ui,sans-serif; padding:.45rem .7rem; border-radius:999px; white-space:nowrap; }
.modula-rev-who { text-align:left; }
.modula-rev-av { flex:0 0 auto; width:42px; height:42px; border-radius:100px; background:#111; color:#fff; display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Sans',sans-serif; font-size:.85rem; font-weight:600; letter-spacing:.01em; }
.modula-rev.is-featured .modula-rev-av { width:48px; height:48px; font-size:.95rem; }
.modula-rev-who { display:flex; flex-direction:column; line-height:1.3; }
.modula-rev-who strong { font-family:'IBM Plex Sans',sans-serif; font-size:.92rem; font-weight:600; color:#1a1a1a; }
.modula-rev-who > span { font-family:'IBM Plex Sans',sans-serif; font-size:.82rem; color:#777; }
.modula-rev.is-featured .modula-rev-who strong { color:#111; font-size:1rem; }
.modula-rev.is-featured .modula-rev-who > span { color:#777; }
@media (max-width:1200px) {
  .modula-reviews { grid-template-columns:repeat(2,1fr); }
  .modula-rev.is-featured { grid-column:span 2; }
}
@media (max-width:600px) {
  .modula-reviews { grid-template-columns:1fr; }
  .modula-rev.is-featured { grid-column:span 1; }
  .modula-rev.is-featured blockquote { font-size:1.3rem; }
}
.modula-proof { width:100%; }
.modula-proof-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
.modula-proof-count { font-size:.92rem; color:var(--modula-muted); }
.modula-proof-count strong { color:var(--modula-ink); font-weight:600; font-variant-numeric:tabular-nums; }
.modula-proof-approve { position:relative; border:0; background:var(--modula-ink); color:#fff; border-radius:100px; padding:.5rem 1.15rem; font-family:'IBM Plex Sans',sans-serif; font-size:.85rem; font-weight:500; cursor:pointer; transition:transform .12s ease, background .25s ease; }
.modula-proof-approve:hover { opacity:.9; }
.modula-proof-approve:active { transform:scale(.97); }
.modula-proof-approve .done { display:none; }
.modula-proof-approve.is-sent { background:#1f8a4c; }
.modula-proof-approve.is-sent .label { display:none; }
.modula-proof-approve.is-sent .done { display:inline; }
.modula-proof-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem; }
.modula-proof-card { position:relative; margin:0; border-radius:14px; overflow:hidden; cursor:pointer; aspect-ratio:4/3; background:#111; box-shadow:0 1px 3px rgba(0,0,0,.08); outline:2px solid transparent; outline-offset:-2px; transition:box-shadow .2s ease, outline-color .2s ease; }
.modula-proof-card:focus-visible { outline-color:var(--modula-ink); }
.modula-proof-card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s ease; }
.modula-proof-card:hover img { transform:scale(1.035); }
.modula-proof-card.is-selected { outline-color:var(--modula-ink); box-shadow:0 10px 28px rgba(0,0,0,.18); }
.modula-proof-badge { position:absolute; top:.7rem; left:.7rem; display:inline-flex; align-items:center; gap:.35rem; background:rgba(20,20,20,.92); color:#fff; border-radius:100px; padding:.34rem .72rem .34rem .5rem; font-size:.78rem; font-weight:600; letter-spacing:.01em; opacity:0; transform:translateY(-5px) scale(.94); transition:opacity .18s ease, transform .18s ease; pointer-events:none; }
.modula-proof-badge svg { width:15px; height:15px; color:#fff; }
.modula-proof-card.is-selected .modula-proof-badge { opacity:1; transform:none; }
.modula-proof-tick { position:absolute; top:.6rem; right:.6rem; width:30px; height:30px; border:0; border-radius:8px; background:rgba(255,255,255,.94); display:flex; align-items:center; justify-content:center; box-shadow:0 2px 7px rgba(0,0,0,.2); transition:background .16s ease, transform .14s ease; pointer-events:none; }
.modula-proof-tick svg { width:17px; height:17px; opacity:0; transform:scale(.7); transition:opacity .16s ease, transform .16s ease; }
.modula-proof-card:hover .modula-proof-tick { transform:scale(1.06); }
.modula-proof-card.is-selected .modula-proof-tick { background:#22a35c; }
.modula-proof-card.is-selected .modula-proof-tick svg { opacity:1; transform:none; }
.modula-dark .modula-proof-count { color:rgba(255,255,255,.72); }
.modula-dark .modula-proof-count strong { color:#fff; }
.modula-dark .modula-proof-hint { color:rgba(255,255,255,.62); }
.modula-dark .modula-proof-approve { background:#fff; color:#141414; }
.modula-dark .modula-proof-approve.is-sent { background:#22a35c; color:#fff; }
.modula-dark .modula-proof-card.is-selected { outline-color:#fff; }
.modula-proof-hint { text-align:center; color:var(--modula-muted); font-size:.82rem; margin:1rem 0 0 !important; }
@media (max-width:820px) {
  .modula-proof-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .modula-proof-grid { gap:.7rem; }
  .modula-proof-badge { font-size:.72rem; }
}
.modula .modula-item:not(.modula-item-tiled):not(.modula-item-tiled *) .modula-item-picture-stack .modula-item-picture--placeholder { display:none !important; }
.modula .modula-item:not(.modula-item-tiled):not(.modula-item-tiled *) picture.modula-item-picture { display:block; width:100% !important; height:100% !important; }
.modula .modula-item:not(.modula-item-tiled):not(.modula-item-tiled *) picture.modula-item-picture img.pic { width:100% !important; height:100% !important; object-fit:cover !important; display:block; }
.modula-tools-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.75rem; align-items:stretch; }
.modula-tool-card { border:1px solid #ECECEC; border-radius:16px; background:#fff; overflow:hidden; display:flex; flex-direction:column; transition:transform .18s ease, box-shadow .18s ease; }
.modula-tool-card:hover { transform:translateY(-3px); box-shadow:0 20px 44px rgba(20,20,30,.08); }
.modula-tool-visual { background:#FAFAFB; border-bottom:1px solid #F0F0F0; line-height:0; aspect-ratio:16/10; overflow:hidden; }
.modula-tool-visual figure { margin:0 !important; height:100%; }
.modula-tool-visual img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; padding:14px; box-sizing:border-box; }
.modula-tool-visual-icon { aspect-ratio:16/10; line-height:normal; display:flex; align-items:center; justify-content:center; background:linear-gradient(180deg,#FAFAFB,#F3F4F6); }
.modula-tool-icon { display:inline-flex; align-items:center; justify-content:center; width:88px; height:88px; border-radius:100px; background:#EFFAF4; color:#1A1A1A; }
.modula-tool-icon svg { width:40px; height:40px; }
.modula-tool-card > .modula-tool-caption { margin:1rem 1.5rem 0 !important; color:var(--modula-muted); font-size:.78rem !important; }
.modula-tool-card > h3 { margin:.3rem 1.5rem 0 !important; }
.modula-tool-card > p.has-small-font-size { margin:.45rem 1.5rem 1.6rem !important; line-height:1.6 !important; }
@media (max-width:780px) {
  .modula-tools-grid { grid-template-columns:1fr; gap:1.25rem; }
}
#panel-slider { max-width:1120px; margin-left:auto; margin-right:auto; }
@media (max-width: 600px) {
  .modula .modula-slider .modula-items.f-carousel { --f-arrow-width: 40px !important;
    --f-arrow-height: 40px !important;
    --f-arrow-svg-width: 14px !important;
    --f-arrow-svg-height: 14px !important; }
}

/* Checkout: fără bare de anunțuri. Bara „Modula 3.0 Beta" e în template part-ul header și dispare
   prin comutarea pe header-minimal; banner-ul EU e injectat de wpchill-eu-banner la wp_body_open,
   în afara template-ului, deci se poate scoate doar de aici. */
body.edd-checkout .wpchill-eu-banner{display:none}

/* Checkout — blocul de argumente de sub sumarul comenzii + reasigurarea de sub buton.
   Verzii sunt aceiași cu cei din pricing (#16a34a / #15803d), ca să nu apară o a treia nuanță. */
.edd-checkout .mc-checkout-trust{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #e3e3f0}
.edd-checkout .mc-checkout-points{margin:0;padding:0;list-style:none;display:grid;gap:.55rem}
.edd-checkout .mc-checkout-points li{position:relative;padding-left:1.5rem;font-size:.85rem;line-height:1.45;color:#4a4a55}
.edd-checkout .mc-checkout-points li::before{content:"\2713";position:absolute;left:0;top:0;color:#16a34a;font-weight:700}
.edd-checkout .mc-checkout-points a{color:inherit}
.edd-checkout .mc-checkout-guarantee{margin:1.1rem 0 0;padding:.8rem .9rem;background:#f0f9f3;font-size:.85rem;line-height:1.5;color:#15803d}
.edd-checkout .mc-checkout-guarantee strong{display:block;color:#14532d}
.edd-checkout .mc-checkout-reassure{margin:.9rem 0 0;font-size:.8rem;line-height:1.5;color:#6b6b76;text-align:center}
