/* SERU helper classes — add via Advanced → CSS Classes in Elementor */

/* Small line before an eyebrow heading */
.seru-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 8px; }
.seru-eyebrow .elementor-heading-title::before { content: ""; width: 18px; height: 2px; background: currentColor; border-radius: 2px; flex: none; }

/* Card lift on hover */
.seru-lift { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.seru-lift:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -16px rgba(11, 27, 63, .22) !important; }

/* Image zoom inside a lifted card */
.seru-lift .seru-zoom img { transition: transform .5s ease; }
.seru-lift:hover .seru-zoom img { transform: scale(1.04); }

/* Image fills its column (mock pack cards) */
.elementor .seru-fill { position: relative; flex: 1 1 auto !important; min-height: 240px; }
.elementor .seru-fill img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }

/* Button: subtle raise on hover */
.seru-btn .elementor-button { transition: background-color .2s, color .2s, border-color .2s, transform .2s; }
.seru-btn .elementor-button:hover { transform: translateY(-1px); }

/* Decorative ring in banners */
.seru-ring { position: relative; overflow: hidden; }
.seru-ring::after { content: ""; position: absolute; right: -60px; bottom: -80px; width: 260px; height: 260px; border-radius: 50%; border: 40px solid rgba(255, 255, 255, .08); pointer-events: none; }

/* Pricing cards in a row: equal height */
.seru-pc-h100, .seru-pc-h100 > .elementor-widget-container { height: 100%; flex-grow: 1; }

/* Shrink an element to its content (pills, badges) */
.seru-fit { width: auto !important; max-width: 100%; --width: auto; }
.seru-fit-start { align-self: flex-start !important; width: auto !important; max-width: 100%; --width: auto; }
.seru-fit-center { align-self: center !important; width: auto !important; max-width: 100%; --width: auto; }

/* Push to the bottom of a flex column (review author row) */
.seru-push { margin-top: auto !important; }

/* FAQ: each item is a white card, teal border when open */
.seru-faq .e-n-accordion-item { background: #fff; border: 1px solid #E3E8F0; border-radius: 12px; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.seru-faq .e-n-accordion-item:hover { border-color: #14B39E; }
.seru-faq .e-n-accordion-item[open] { border-color: #14B39E; box-shadow: 0 8px 24px -8px rgba(11, 27, 63, .14); }
.seru-faq .e-n-accordion-item-title { background: transparent !important; }

/* Long-form text (privacy, blog articles) */
.seru-prose h2 { font-size: 26px; font-weight: 800; letter-spacing: -.02em; color: #0B1B3F; margin: 1.8em 0 .6em; line-height: 1.25; scroll-margin-top: 110px; }
.seru-prose h2:first-child { margin-top: 0; }
.seru-prose h3 { font-size: 20px; font-weight: 800; color: #0B1B3F; margin: 1.5em 0 .5em; }
.seru-prose p, .seru-prose ul, .seru-prose ol { margin: 0 0 1.25em; }
.seru-prose ul, .seru-prose ol { padding-left: 1.25em; }
.seru-prose li { margin-bottom: .4em; }
.seru-prose a { color: #0A7F70; text-decoration: underline; text-underline-offset: 3px; }
.seru-prose strong { color: #0B1B3F; }
.seru-prose blockquote { margin: 2em 0; padding: 20px 24px; border-left: 4px solid #0E9A88; background: #EEFAF7; border-radius: 0 12px 12px 0; color: #0B1B3F; font-weight: 600; }
.seru-prose img { border-radius: 14px; }

/* Blog post cover image */
.seru-cover img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }

/* Compact posts list (sidebar) */
.seru-posts-compact .seru-posts { gap: 14px; }
.seru-posts-compact .seru-posts__card { flex-direction: row; align-items: center; gap: 12px; border: 0; box-shadow: none; border-radius: 0; }
.seru-posts-compact .seru-posts__card:hover { transform: none; box-shadow: none; }
.seru-posts-compact .seru-posts__media { flex: none; width: 72px; aspect-ratio: 1; border-radius: 8px; }
.seru-posts-compact .seru-posts__body { padding: 0; }
.seru-posts-compact .seru-posts__meta { margin: 0; order: 2; }
.seru-posts-compact .seru-posts__meta .seru-posts__badge, .seru-posts-compact .seru-posts__meta span + span { display: none; }
.seru-posts-compact .seru-posts__title { font-size: 14px; margin: 0 0 4px; }

/* Text editor: no trailing gap after the last paragraph */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Never squash (header brand) */
.seru-noshrink, .seru-noshrink > .elementor-element { flex-shrink: 0 !important; }
.seru-noshrink .elementor-widget-image { width: 38px; min-width: 38px; }

/* Header menu: take the space that is left, never the whole row */
.seru-nav { flex: 1 1 0% !important; min-width: 0; width: auto !important; max-width: none !important; }

/* Header menu: keep text readable on hover/focus/open (Elementor defaults it to white) */
.seru-nav .elementor-nav-menu--main .elementor-item:hover,
.seru-nav .elementor-nav-menu--main .elementor-item:focus,
.seru-nav .elementor-nav-menu--main .elementor-item.highlighted,
.seru-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #0A7F70 !important; }

/* Show/hide by login state (header buttons, menu items) */
body.logged-in .seru-guest-only { display: none !important; }
body:not(.logged-in) .seru-member-only { display: none !important; }
/* Menu items meant for the mobile (burger) menu only */
.elementor-nav-menu--main .seru-mobile-only { display: none !important; }

/* Mobile/tablet menu: full-width panel under the header */
.seru-nav nav.elementor-nav-menu--dropdown { border-top: 1px solid #EEF2F7; box-shadow: 0 18px 30px -12px rgba(11, 27, 63, .18); }
.seru-nav nav.elementor-nav-menu--dropdown .elementor-item { border-bottom: 1px solid #F1F4F8; }
.seru-nav .elementor-menu-toggle { border: 1px solid #E3E8F0; }
