html{line-height:1.15;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:border-box}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-block-end:.9rem;margin-block-start:0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}a{background-color:transparent;color:#c36;text-decoration:none}a:active,a:hover{color:#336}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;height:auto;max-width:100%}details{display:block}summary{display:list-item}figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}[hidden],template{display:none}@media print{*,:after,:before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}label{display:inline-block;line-height:1;vertical-align:middle}button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#333}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;width:auto}[type=button],[type=submit],button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}[type=button]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{background-color:#c36;color:#fff;text-decoration:none}[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}select{display:block}table{background-color:transparent;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}table td,table th{border:1px solid hsla(0,0%,50%,.502);line-height:1.5;padding:15px;vertical-align:top}table th{font-weight:700}table tfoot th,table thead th{font-size:1em}table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50%,.502)}table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50%,.071)}table tbody tr:hover>td,table tbody tr:hover>th{background-color:hsla(0,0%,50%,.102)}table tbody+tbody{border-block-start:2px solid hsla(0,0%,50%,.502)}@media(max-width:767px){table table{font-size:.8em}table table td,table table th{line-height:1.3;padding:7px}table table th{font-weight:400}}dd,dl,dt,li,ol,ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline}
.comments-area a,.page-content a{text-decoration:underline}.alignright{float:right;margin-left:1rem}.alignleft{float:left;margin-right:1rem}.aligncenter{clear:both;display:block;margin-inline:auto}.alignwide{margin-inline:-80px}.alignfull{margin-inline:calc(50% - 50vw);max-width:100vw}.alignfull,.alignfull img{width:100vw}.wp-caption{margin-block-end:1.25rem;max-width:100%}.wp-caption.alignleft{margin:5px 20px 20px 0}.wp-caption.alignright{margin:5px 0 20px 20px}.wp-caption img{display:block;margin-inline:auto}.wp-caption-text{margin:0}.gallery-caption{display:block;font-size:.8125rem;line-height:1.5;margin:0;padding:.75rem}.pagination{display:flex;justify-content:space-between;margin:20px auto}.sticky{display:block;position:relative}.bypostauthor{font-size:inherit}.hide{display:none!important}.post-password-form{margin:50px auto;max-width:500px}.post-password-form p{align-items:flex-end;display:flex;width:100%}.post-password-form [type=submit]{margin-inline-start:3px}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#eee;clip:auto!important;clip-path:none;color:#333;display:block;font-size:1rem;height:auto;left:5px;line-height:normal;padding:12px 24px;text-decoration:none;top:5px;width:auto;z-index:100000}.post .entry-title a{text-decoration:none}.post .wp-post-image{max-height:500px;-o-object-fit:cover;object-fit:cover;width:100%}@media(max-width:991px){.post .wp-post-image{max-height:400px}}@media(max-width:575px){.post .wp-post-image{max-height:300px}}#comments .comment-list{font-size:.9em;list-style:none;margin:0;padding:0}#comments .comment,#comments .pingback{position:relative}#comments .comment .comment-body,#comments .pingback .comment-body{border-block-end:1px solid #ccc;display:flex;flex-direction:column;padding-block-end:30px;padding-block-start:30px;padding-inline-end:0;padding-inline-start:60px}#comments .comment .avatar,#comments .pingback .avatar{border-radius:50%;left:0;margin-inline-end:10px;position:absolute}body.rtl #comments .comment .avatar,body.rtl #comments .pingback .avatar,html[dir=rtl] #comments .comment .avatar,html[dir=rtl] #comments .pingback .avatar{left:auto;right:0}#comments .comment-meta{display:flex;justify-content:space-between;margin-block-end:.9rem}#comments .comment-metadata,#comments .reply{font-size:11px;line-height:1}#comments .children{list-style:none;margin:0;padding-inline-start:30px;position:relative}#comments .children li:last-child{padding-block-end:0}#comments ol.comment-list .children:before{content:"↪";display:inline-block;font-size:1em;font-weight:400;left:0;line-height:100%;position:absolute;top:45px;width:auto}body.rtl #comments ol.comment-list .children:before,html[dir=rtl] #comments ol.comment-list .children:before{content:"↩";left:auto;right:0}@media(min-width:768px){#comments .comment-author,#comments .comment-metadata{line-height:1}}@media(max-width:767px){#comments .comment .comment-body{padding:30px 0}#comments .children{padding-inline-start:20px}#comments .comment .avatar{float:left;position:inherit}body.rtl #comments .comment .avatar,html[dir=rtl] #comments .comment .avatar{float:right}}.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{margin-inline-end:auto;margin-inline-start:auto;width:100%}@media(max-width:575px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{padding-inline-end:10px;padding-inline-start:10px}}@media(min-width:576px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:500px}.site-footer.footer-full-width .footer-inner,.site-header.header-full-width .header-inner{max-width:100%}}@media(min-width:768px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:600px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:992px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:800px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:1200px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:1140px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}.site-header+.elementor{min-height:calc(100vh - 320px)}
/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/*
    Add your custom styles here
*/
/**
 * Swipe View — Reels Viewer (SMASH-1851 / SMASH-1978 / SMASH-1979)
 *
 * Restyled 2026-09-08 to Aman's FINAL reference build (HEAD 0334f13), per the
 * decision log at local-notes/swipe-view-launch/aman-final-porting-decisions-2026-09-08.md.
 * Rule ids in comments below (1.1, IG-4, …) are that log's.
 *
 * ── Viewport-unit convention (team feedback 2026-08-24, UNCHANGED) ─────────
 * EVERY viewport-height value in this file is declared TWICE, `vh` first and
 * `dvh` second. `100vh` is the LARGE viewport — it deliberately excludes mobile
 * browsers' collapsible toolbars from its measurement, so on a phone the viewer
 * sized itself taller than the visible area and the bottom-right rail rendered
 * underneath the browser chrome (the reported clipping). `100dvh` tracks the
 * viewport as the toolbars come and go, which is what "full screen" has to mean
 * here.
 *
 * The two-declaration order is the whole mechanism, not styling: a browser that
 * doesn't parse `dvh` discards the second declaration and keeps the `vh` value,
 * and one that does parse it takes the later declaration per the cascade. Never
 * collapse a pair into just the dvh line, and never reverse the order. Rule 1.1
 * of the porting log is explicit that the reference's bare `100dvh` is NOT
 * ported: we keep this pair convention, and a test guards it.
 *
 * The JS side is coupled to this: goToIndex() translates the track by one
 * viewport height per slide and uses the SAME vh-then-dvh assignment pair (see
 * its comment). A unit mismatch between the two files desyncs the track from the
 * slides progressively — slide N lands N * (100vh - 100dvh) off.
 *
 * ── Capability-query convention (rule 1.2) ─────────────────────────────────
 * The desktop-vs-touch switch is INPUT CAPABILITY, never viewport width. The
 * reference expresses it as ten `max-width: 768px` branches; every one of them
 * is really "does this pointer hover" — chevrons and tooltips need a mouse, the
 * in-frame rail and the rail-mounted CTA are touch layouts. So:
 *
 *   BASE rules in this file are the TOUCH layout (full-bleed frame, no rail
 *   column, no chevrons, no tooltips, CTA in the rail).
 *   `@media (hover: hover) and (pointer: fine)` at the END of the file adds the
 *   DESKTOP layout (framed 9:16 stage, rail column beside it, chevrons,
 *   tooltips, CTA pill in the top row).
 *
 * ZERO width media queries ship from this file, and no `dvh` value appears
 * without its `vh` partner. tests/js/swipe-css-conventions.test.js fails the
 * build on either.
 *
 * ── @media placement is load-bearing, not tidiness ────────────────────────
 * Every @media block lives BELOW every top-level rule. The geometry suites read
 * the stylesheet as `stripCssComments(css).split('@media')[0]`, so a mid-file
 * @media block silently truncates their view of the file and every rule after it
 * reads as missing. (Recorded in the survey's harness-blind-spot table; it has
 * bitten three times.) Narrow-viewport overrides fold into the existing blocks.
 */

/* ── Body lock ───────────────────────────────────────────────────────────── */
.sbi-qs-scroll-locked {
	overflow: hidden !important;
	height: 100vh;
	height: 100dvh;
}

/* ── Overlay root ────────────────────────────────────────────────────────── *
 * Rule 1.13 — the BACKDROP. Base (touch) is opaque with no blur: a blurred
 * backdrop on a full-bleed viewer paints nothing but itself, and the filter
 * costs a compositor pass on the least capable hardware. The desktop block
 * below swaps in the reference's translucent-plus-blur treatment, where the host
 * page staying faintly visible is Aman's stated intent.
 *
 * Rule 1.15 — TYPE SCALE without the webfont. The reference loads Inter
 * Variable from rsms.me; a third-party font request from a WP plugin is a new
 * external dependency (and self-hosting is a new bundled asset), so neither
 * ships. `Inter, InterVariable` lead the stack so the design's own face is used
 * wherever the host site already serves it, and the system stack carries the
 * rest. `liga`/`calt` on, matching the reference. Deliberately does NOT inherit
 * the host theme's font — the viewer is a self-contained surface.
 */
.sbi-qs-overlay {
	position: fixed;
	inset: 0;
	background: #000;
	z-index: 999999;
	display: none;
	overflow: hidden;
	color: #fff;
	color-scheme: dark;
	font-family: Inter, InterVariable, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;
	font-feature-settings: 'liga' 1, 'calt' 1;
	-webkit-font-smoothing: antialiased;
	-webkit-tap-highlight-color: transparent;
	user-select: none;
	/* Viewer root fades in over 180ms (rule 1.13). Fade-IN only: close() tears
	 * the DOM down synchronously so focus restoration, the scroll-lock release
	 * and the analytics flush all stay on one tick. A fade-OUT would have to
	 * defer teardown behind a timer, which is a new failure mode (an interrupted
	 * close leaving the body locked) for 180ms of polish on the way out. */
	opacity: 0;
	transition: opacity 180ms ease;

	/* ── Geometry tokens ────────────────────────────────────────────────────
	 * Base values are the TOUCH layout: full-bleed frame, square corners, no
	 * rail column reserved beside the stage. The desktop block at the end of
	 * this file overrides all four.
	 *
	 * --sbi-qs-frame-shift is HALF the horizontal space the rail column plus
	 * the stage gap occupy. Rule 1.1 centres the frame and the rail column
	 * TOGETHER, not the frame alone, so the frame's centre sits that far left of
	 * the window's centre. Holding it as one token is what keeps the frame, the
	 * session-level frame chrome, the rail column and the chevrons agreeing:
	 * five rules derive from it and none of them repeats the arithmetic. */
	--sbi-qs-stage-radius: 0px;
	--sbi-qs-rail-w: 0px;
	--sbi-qs-stage-gap: 0px;
	--sbi-qs-frame-shift: 0px;
	/* ── Stage-relative anchoring (unchanged mechanism, new formula) ─────────
	 * Half the PAINTED frame's width. This is what lets overlay-level chrome
	 * anchor to the FRAME's edges rather than the WINDOW's:
	 *
	 *     right: calc(50% - var(--sbi-qs-frame-shift) - var(--sbi-qs-stage-half))
	 *
	 * is the frame's left inset — and, because the frame+gap+rail trio is
	 * centred, it is also the rail column's RIGHT inset. That symmetry is why
	 * the rail column and the chevrons can anchor off the same one expression.
	 *
	 * On touch the frame is full-bleed, so half of it is exactly 50vw and the
	 * min()/ratio clamp has nothing to clamp. The desktop block restores the
	 * continuous `min()` form — rule 1.2's clamp-not-breakpoint requirement, and
	 * the reason a real iPhone SE (320x568, a quarter pixel above 9/16) can't
	 * fall off a threshold. The 9/16 ratio there MUST stay the same ratio
	 * .sbi-qs-media sizes with; a test asserts every occurrence agrees. */
	--sbi-qs-stage-half: 50vw;
	/* Expanded-caption cap (rule IG-5). See .sbi-qs-caption-text. */
	--sbi-qs-caption-cap: calc(18.2px * 12);
}
.sbi-qs-overlay.sbi-qs-active {
	display: block;
}
.sbi-qs-overlay.sbi-qs-visible {
	opacity: 1;
}
.sbi-qs-overlay:focus {
	outline: 0;
}

/* ── Close — window-anchored, TOP-LEFT (rule 1.4) ────────────────────────── *
 * MOVED from top-right (2026-09-08). Two things changed and both are the
 * design's: the corner, and the rest-state paint.
 *
 * Still window-anchored, and that reasoning is unchanged and still the right
 * one: close dismisses the VIEWER, a window-level object, so it belongs to the
 * window; mute and play/pause act on the VIDEO, so they belong to the frame.
 * Anchoring a control by what it acts on keeps deciding correctly as chrome is
 * added. What the reference changes is which corner — the frame's top-LEFT is
 * now deliberately empty (rule 1.5: no wordmark, no counter), so the window's
 * top-left is free and the frame's top-right belongs to mute + CTA.
 *
 * The 2026-08-18 bare-glyph decision is REVERSED here, deliberately rather than
 * by drift: rule 1.4 gives every circular control in this design one paint —
 * `rgba(255,255,255,.16)` at rest, `.28` on hover — and close, the chevrons and
 * the TikTok rail circles all share it. The reference's own mobile IG override
 * to `.14` is a specificity accident (spec §4.4 item 1, confirmed against his
 * "all circular buttons share one style" commit), so `.16` is used uniformly on
 * both viewports.
 *
 * 40x40 is the design's box and is BELOW the 44px convention this file uses
 * elsewhere. Recorded, not silently accepted: 40px clears WCAG 2.5.8 (24px) and
 * 2.5.5's AAA target is 44px, which this viewer's other controls meet. The
 * design's number wins per the authority split (visual design = Aman), and the
 * gap is one line in the change log rather than a silent 4px.
 */
.sbi-qs-close {
	/* ── The UA's form-control defaults, refused explicitly ──────────────────
	 * A <button> is not a normal element: the UA sets its own `font` shorthand
	 * (`400 13.3333px Arial` in Chrome) and its own `padding: 1px 6px`, and
	 * NEITHER inherits from the viewer. Measured on the live demo: every button
	 * in this viewer reported `font-family: Arial` while the overlay itself
	 * reported the design's `Inter, InterVariable, …` stack — so rule 1.6's
	 * "Tap to unmute" label and the rail's counts were rendering in Arial, at
	 * the design's sizes but not its face.
	 *
	 * `font: inherit` FIRST, so each rule's own explicit size/weight below still
	 * wins on source order. `padding: 0` because a glyph-only control's box is
	 * its tap target and the UA's 6px side padding silently shrinks the content
	 * area (a 40px close disc was laying out its 22px glyph in 28px of content
	 * box). `appearance: none` because iOS Safari otherwise paints its own
	 * control chrome over the disc.
	 *
	 * Deliberately repeated per rule rather than hoisted into a
	 * `.sbi-qs-overlay button` reset: that selector has HIGHER specificity
	 * (0,1,1) than the single-class rules here (0,1,0), so it would override the
	 * paddings those rules set on purpose — the mute chip's `0 7px`, the pill's
	 * `0 13px 0 11px`. Flat specificity is what keeps this predictable. */
	font: inherit;
	-webkit-appearance: none;
	appearance: none;
	padding: 0;
	position: absolute;
	top: 12px;
	top: max(12px, env(safe-area-inset-top, 0px));
	left: 12px;
	z-index: 6;
	box-sizing: border-box;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 0;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	cursor: pointer;
	/* Rex review (SMASH-1851): explicit, not relied-on-by-omission — every
	 * genuine control states its own pointer-events: auto so an "opt out by
	 * default" ancestor can't silently swallow it if a future change wraps
	 * these in a container. */
	pointer-events: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 150ms ease, transform 150ms ease;
}
.sbi-qs-close:hover,
.sbi-qs-close:focus-visible {
	background: rgba(255, 255, 255, 0.28);
	outline: 0;
}
.sbi-qs-close:active {
	transform: scale(0.94);
}
/* Kept even though the reference has no focus ring anywhere (spec §4.2's last
 * row names IG/TikTok anchors as the gap). Behaviour + a11y are ours where the
 * design is silent, and a keyboard user must be able to see where they are. */
.sbi-qs-close:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.6);
}
.sbi-qs-close svg {
	width: 22px;
	height: 22px;
}
/* ── The 44px hit target, WITHOUT changing the design's 40px disc ─────────────
 * Same technique as .sbi-qs-caption-more's, and the same reason: the visible
 * box is the design's and is not negotiable, while the REACHABLE box is ours
 * and this file's convention is 44px. A positioned pseudo-element takes no part
 * in layout but is hit-tested, and a hit on it resolves to its originating
 * element — so elementFromPoint over this ring returns the button.
 *
 * 40 -> 44 is 2px on each side. Worth doing rather than waving through: 40px
 * clears WCAG 2.5.8 (24px, AA) but misses 2.5.5's 44px AAA target, and this
 * viewer's other controls meet it. Invisible either way, so there is no design
 * question to escalate — only a gap to close. */
.sbi-qs-close::before {
	content: '';
	position: absolute;
	inset: -2px;
	border-radius: 50%;
}

/* ── Viewport (clips the transforming track) ─────────────────────────────── *
 * Both z-index: 2 AND pointer-events: none are load-bearing here, not
 * decorative — see the note on .sbi-qs-gesture below for why the z-index fix
 * has to live here and not on a slide descendant.
 *
 * pointer-events: none is inherited by everything painted inside (track, post,
 * frame, media, per-slide chrome) UNLESS a rule targets that element
 * specifically. The genuine per-slide controls do exactly that — the author
 * link, the Follow pill, the more/less button, every rail item — and NOT via a
 * blanket `> *` rule, which is the defect Rex caught in review (see
 * .sbi-qs-bottom). Without the `none` here, .sbi-qs-viewport / .sbi-qs-track
 * themselves (bare containers with no click handler) become the hit-test result
 * for a tap anywhere on the video area, and tap-to-toggle-play silently stops
 * firing.
 */
.sbi-qs-viewport {
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 2;
	pointer-events: none;
}

.sbi-qs-track {
	position: relative;
	width: 100%;
	will-change: transform;
	transform: translate3d(0, 0, 0);
	pointer-events: none; /* Inherited from .sbi-qs-viewport anyway; explicit for clarity. */
	/* Transition is applied inline by the JS so the first positioning can skip animation. */
}

/* ── Individual post — the SLIDE, one viewport tall ──────────────────────── *
 * Full viewport height, and that is the track's arithmetic, not a visual
 * choice: goToIndex() translates by one viewport height per slide. The PAINTED
 * frame inside is shorter than this on desktop (rule 1.1's 8px margins) — the
 * slide is the scroll unit, the frame is the picture.
 */
.sbi-qs-post {
	position: relative;
	width: 100%;
	/* vh-then-dvh pair — see the viewport-unit convention at the top of this
	 * file. This is the rule the rail-clipping report was actually about: the
	 * slide, and therefore the chrome positioned against its bottom edge, used
	 * to extend below the visible viewport on a phone. */
	height: 100vh;
	height: 100dvh;
	overflow: hidden;
	pointer-events: none;
}

/* ── The FRAME (rule 1.1) ────────────────────────────────────────────────── *
 * Base = touch: full-bleed, square corners, no margins. `inset: 0` with no
 * width/height fills the slide.
 *
 * Desktop (see the capability block at the end of the file) = a 9:16 column of
 * height `viewport - 16px`, giving 8px top and bottom margins, centred TOGETHER
 * with the rail column. The centring mechanism is `margin: auto` against a
 * right inset that reserves the rail column plus the stage gap: the box then
 * centres inside `[0, 100vw - rail - gap]`, whose centre is exactly
 * `50vw - frame-shift`. No transform is involved, which matters — a transform
 * here would mint a stacking context, and this file's §6.3 history is about
 * exactly those.
 *
 * `isolation: isolate` is the reference's (and ours): it scopes the per-slide
 * chrome's paint order to the frame. It adds a stacking context INSIDE the
 * track, which is already inside one (the track's transform), so it cannot
 * affect the only comparison that decides pointer ownership — viewport z-index
 * vs gesture z-index, one level up. See .sbi-qs-gesture.
 *
 * `overflow: hidden` is the CLIP for the corner radius and for the per-slide
 * chrome, which NOW LIVES INSIDE THIS BOX (it used to hug the stage from
 * outside). Nothing in here needs to escape: the author row and the caption are
 * inset by their own padding, and the expanded caption is capped and scrolls
 * internally (rule IG-5) rather than growing past the frame — which is the very
 * defect spec §4.1 item 9 measured in the reference (a 2.5k-char caption
 * escaping the frame top by 463px and being silently clipped).
 */
.sbi-qs-media {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	background: #000;
	border-radius: var(--sbi-qs-stage-radius, 0px);
	overflow: hidden;
	isolation: isolate;
	pointer-events: none;
}

/* ── Letterbox backdrop (rule 1.14) ──────────────────────────────────────── *
 * Media WIDER than 9:16 x 1.04 letterboxes with `contain` over a blurred,
 * darkened blow-up of its own poster. Media TALLER than that is CROPPED with
 * `cover` and gets no backdrop — the reference's behaviour, carried as decided
 * (log rule 1.14, flagged to Aman as Q5).
 *
 * Instagram posters are absent on most cached rows, so the common IG case is
 * the plain black frame; the JS only sets this element up when a poster URL
 * actually survives the scheme check. Recorded because it makes the treatment
 * look unimplemented on a typical feed when it is simply not applicable.
 *
 * The URL reaches this element as an inline `background-image` set by the JS
 * through a dedicated CSS-url guard, never by string-building a stylesheet.
 */
.sbi-qs-backdrop {
	position: absolute;
	inset: -10%;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	filter: blur(28px) brightness(0.55) saturate(1.2);
	transform: scale(1.1);
	pointer-events: none;
}

.sbi-qs-video,
.sbi-qs-poster,
.sbi-qs-embed {
	position: relative;
	width: 100%;
	height: 100%;
	pointer-events: none;
	/* The second half of the corner clip. `border-radius` alone is dropped on
	 * real GPUs once a composited video layer settles — the layer ignores the
	 * ancestor's clip — so the shape is ALSO stated as a `clip-path`, which
	 * composites. Both read the one variable, so there is still one value and
	 * one gate. Neither is redundant with the other; they fail in different
	 * directions, and at-rest corners stay an on-device verification step
	 * (SwiftShader/headless cannot reproduce the failure). */
	border-radius: var(--sbi-qs-stage-radius, 0px);
	clip-path: inset(0 round var(--sbi-qs-stage-radius, 0px));
}
.sbi-qs-video,
.sbi-qs-poster {
	/* Rule 1.14: `cover` is the DEFAULT (the taller-than-9:16 case, cropped);
	 * `[data-fit="contain"]` below switches the wider case to letterboxing.
	 * This inverts the previous always-`contain` treatment, which letterboxed
	 * every non-9:16 source inside a fixed frame.
	 *
	 * NO `background` here, and that is load-bearing rather than tidying. It
	 * used to be `#000`, which was right when the frame always letterboxed
	 * against black — but an `object-fit: contain` element still FILLS its box
	 * and paints its own background in the letterbox bands, so once rule 1.14
	 * put a blurred poster backdrop behind the media, that background covered
	 * it completely. Caught by the browser measurement pass on the live demo:
	 * every geometry and state probe passed, the backdrop was present,
	 * displayed, correctly filtered and correctly sized, and the bands still
	 * rendered plain black.
	 *
	 * The frame's own `background: #000` is what shows through instead — which
	 * is exactly the behaviour rule 1.14 asks for in the (common, on Instagram)
	 * no-poster case, since the backdrop is hidden then. One black, one owner. */
	object-fit: cover;
}
.sbi-qs-media[data-fit="contain"] .sbi-qs-video,
.sbi-qs-media[data-fit="contain"] .sbi-qs-poster {
	object-fit: contain;
}
.sbi-qs-embed {
	border: 0;
	background: #000;
}

/* ── Media host ──────────────────────────────────────────────────────────── *
 * The tier's own element (video / iframe / poster img) goes in here, and
 * instantiateTier() clears THIS node on every escalation. It exists so the
 * per-slide chrome — backdrop, scrim, bottom row, spinner, terminal tier — can
 * live inside the painted frame and survive a tier change. The previous
 * structure had the frame and the media host as one element, which is exactly
 * why the chrome had to sit outside the frame and hug it, and why the meta row
 * read wider than the video column.
 */
.sbi-qs-mediahost {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

/* ── Buffering spinner (rule 1.19, spec §6.1's loading affordance) ───────── */
.sbi-qs-spinner {
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -18px 0 0 -18px;
	box-sizing: border-box;
	width: 36px;
	height: 36px;
	border: 3px solid rgba(255, 255, 255, 0.25);
	border-top-color: #fff;
	border-radius: 50%;
	z-index: 2;
	pointer-events: none;
	opacity: 0;
	transition: opacity 200ms ease;
	animation: sbiQsSpin 0.8s linear infinite;
}
.sbi-qs-media[data-buffering="true"] .sbi-qs-spinner {
	opacity: 1;
}

/* ── Terminal tier (rule 1.19) ───────────────────────────────────────────── *
 * The poster stays visible under a scrim with one centred line and a route out.
 * The permanent top-row CTA (desktop) / rail "View" item (touch) is untouched
 * by the escalation — spec §6f forbids re-rendering or relocating it — so this
 * pill is an ADDITION on the dead tier, not that CTA moved.
 */
.sbi-qs-fail {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	background: rgba(0, 0, 0, 0.4);
	/* §6.3: the layer is inert and the pill opts back in. */
	pointer-events: none;
}
.sbi-qs-media[data-tier="terminal"] .sbi-qs-fail {
	display: flex;
}
/* Shown on BOTH viewports, unlike the top-row CTA it borrows its paint from: a
 * dead tier needs a visible route out even on touch, where the top pill is
 * hidden and the rail's "View" item is the CTA. */
.sbi-qs-media[data-tier="terminal"] .sbi-qs-fail-link {
	display: inline-flex;
	pointer-events: auto;
}
.sbi-qs-fail-text {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
}

/* ── Gesture-capture layer (§7.1: hidden from AT, not focusable) ─────────── *
 * SMASH-1851: this layer is a SIBLING of .sbi-qs-viewport (both are direct
 * children of .sbi-qs-overlay) — it is NOT nested inside the track, so a
 * z-index set on something inside the track never gets compared against this
 * element's z-index at all.
 *
 * .sbi-qs-track carries a live `transform` (the swipe animation, §3.2) and
 * therefore establishes its OWN stacking context (a non-none transform does
 * that per spec, independent of will-change). That traps every z-index inside
 * the track — a slide descendant's z-index only ever orders it against OTHER
 * elements inside that same trapped context, never against this gesture div.
 * The actual comparison that decides who wins a click is this element's z-index
 * vs .sbi-qs-viewport's, because those two are the ones that are actually
 * siblings. That is why .sbi-qs-viewport carries the real z-index: 2 (above
 * this element's 1) instead.
 *
 * With .sbi-qs-viewport on top, this div would swallow EVERY click inside the
 * track were it not for the pointer-events: none on .sbi-qs-post /
 * .sbi-qs-media / the media elements: those make the video area transparent to
 * the pointer so a tap still falls through here (tap-to-toggle keeps working
 * everywhere except the bits of chrome that explicitly opt back in).
 *
 * Carries NO tabindex, deliberately. It used to have tabindex="-1" to keep it
 * "out of the tab order", which was backwards: a <div> is not focusable to
 * begin with, so the attribute did not remove sequential focusability (there
 * was none) — it ADDED click and programmatic focusability, which is the one
 * thing an aria-hidden element must not have. Chrome then refused the
 * aria-hidden outright on any click landing here.
 */
.sbi-qs-gesture {
	position: absolute;
	inset: 0;
	z-index: 1;
	cursor: pointer;
}

/* ── Session-level frame chrome (the second consumer of the frame geometry) ─ *
 * An overlay-level box that reproduces the PAINTED FRAME's exact geometry, and
 * holds the chrome that is session-scoped rather than per-post: the top row
 * (mute + CTA), the progress bar, and the pause glyph.
 *
 * Why it exists, since the reference has no equivalent: in his build the top row
 * and the progress bar are per-slide children of each frame, which is free
 * because there is exactly one of each state to hold — his mute is a global
 * `state.muted` read by CSS. Ours cannot be per-slide: mute is one session-level
 * <button> (one accessible name, one focus stop, one disabled state driven by
 * the ACTIVE tier's capability), and N mute buttons would mean N focus stops in
 * the trap and N labels to keep in sync. The CTA pill is per-post data, but only
 * ever one post is active, so its href is refreshed on slide change — the same
 * thing updateChrome() already does for every other session control.
 *
 * Consequence to know: this chrome does NOT travel with a drag, while the rail
 * and the bottom row (both per-slide, inside the track) do. That matches the
 * ratified rule, which names the RAIL as the element that mirrors the drag
 * transform, and it matches the reference visually because his build has no JS
 * drag to reveal the difference.
 *
 * `overflow: hidden` + the radius are what let the 2px progress bar sit flush
 * on the frame's ROUNDED bottom edge: the bar is full frame width, so without
 * the clip its square ends would poke out past the corner curve. This is the
 * one job that could not be done by positioning alone.
 *
 * The geometry formula is stated in TWO places — here and .sbi-qs-media — and
 * that duplication is the cost of the split above.
 * tests/js/swipe-stage-geometry.test.js re-derives both from the file and fails
 * if they disagree, so the pair cannot drift silently.
 */
.sbi-qs-framechrome {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	z-index: 3;
	border-radius: var(--sbi-qs-stage-radius, 0px);
	overflow: hidden;
	/* §6.3: the container is inert; each genuine control opts back in. */
	pointer-events: none;
}

/* ── Top row inside the frame (rule 1.5) ─────────────────────────────────── *
 * `[blank left] … [mute][View on Instagram]`, right-aligned. The frame's
 * top-LEFT is deliberately EMPTY — the reference removed the Reels wordmark and
 * never added a counter there (rule 1.8), and the window close button now
 * occupies that corner of the WINDOW.
 *
 * Touch keeps a 62px left pad so the row's contents can never slide under that
 * window-anchored close button, which on a full-bleed frame overlaps this row.
 */
.sbi-qs-top {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	box-sizing: border-box;
	height: 48px;
	padding: 14px 10px 0 62px;
	padding-top: max(14px, env(safe-area-inset-top, 0px));
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	/* Rule IG-1 — the only text-shadow in the design's IG skin, and it is here
	 * because the top row has NO scrim behind it (there is no top gradient).
	 * The bottom row gets its contrast from .sbi-qs-scrim instead. */
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
	pointer-events: none;
}

/* ── Mute button (rule 1.6 / spec §2.4) ──────────────────────────────────── *
 * MOVED from the bottom-right gutter to the frame's top-right (reversing the
 * 2026-08-28 placement), and completely restyled: this is the design's shared
 * unmute affordance, the single most-explained element in Aman's walkthrough.
 *
 * The state paint is the point, and it is inverted from every other control in
 * this file: MUTED is LOUD (solid white chip, dark glyph) and UNMUTED is QUIET
 * (dark translucent, white glyph). His commit message is literal about it —
 * "Mute chip is solid white whenever muted, dark translucent once unmuted" —
 * and it is why the chip carries NO shadow: it is deliberately flatter than the
 * scrim-shadowed text around it.
 *
 * The label slides OUT OF the button rather than appearing beside it, which is
 * what makes 34 -> 136 a single expanding box instead of two elements. The
 * transitions are the measured ones and they are deliberately asymmetric
 * (700ms for the geometry, 450ms for the colour, 350ms+50ms for the label's
 * opacity) — the label fades in behind a width that is still opening.
 *
 * WHEN the label shows is OURS, not his (rule 1.7): he opens muted
 * unconditionally, we keep §4.1's unmuted attempt, so the label becomes the
 * REFUSAL arm. The JS owns that gate; this file only paints the two states.
 */
.sbi-qs-mute {
	/* ── The UA's form-control defaults, refused explicitly ──────────────────
	 * A <button> is not a normal element: the UA sets its own `font` shorthand
	 * (`400 13.3333px Arial` in Chrome) and its own `padding: 1px 6px`, and
	 * NEITHER inherits from the viewer. Measured on the live demo: every button
	 * in this viewer reported `font-family: Arial` while the overlay itself
	 * reported the design's `Inter, InterVariable, …` stack — so rule 1.6's
	 * "Tap to unmute" label and the rail's counts were rendering in Arial, at
	 * the design's sizes but not its face.
	 *
	 * `font: inherit` FIRST, so each rule's own explicit size/weight below still
	 * wins on source order. `padding: 0` because a glyph-only control's box is
	 * its tap target and the UA's 6px side padding silently shrinks the content
	 * area (a 40px close disc was laying out its 22px glyph in 28px of content
	 * box). `appearance: none` because iOS Safari otherwise paints its own
	 * control chrome over the disc.
	 *
	 * Deliberately repeated per rule rather than hoisted into a
	 * `.sbi-qs-overlay button` reset: that selector has HIGHER specificity
	 * (0,1,1) than the single-class rules here (0,1,0), so it would override the
	 * paddings those rules set on purpose — the mute chip's `0 7px`, the pill's
	 * `0 13px 0 11px`. Flat specificity is what keeps this predictable. */
	font: inherit;
	-webkit-appearance: none;
	appearance: none;
	position: relative;   /* the ::before hit-target ring below */
	box-sizing: border-box;
	min-width: 34px;
	height: 34px;
	border: 0;
	border-radius: 17px;
	padding: 0 7px;
	background: #fff;
	color: #111;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	/* Deliberate — reference commit 33f0e75 removes it from the chip and the
	 * glyph both. Stated rather than omitted so a future "add a shadow like the
	 * other controls" change has to argue with it. */
	box-shadow: none;
	text-shadow: none;
	cursor: pointer;
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	/* NO `overflow: hidden` here (MG-06). The ::before below is the 44px hit
	 * ring, absolutely positioned at `inset: -5px` — so it lies OUTSIDE this
	 * 34px chip's padding box, and clipping the box clipped the ring with it.
	 * The pseudo-element still computed as 44x44 with `pointer-events: auto`,
	 * which is why this read as working: nothing outside the chip was actually
	 * hit-testable, so an edge tap fell through to `.sbi-qs-gesture` and PAUSED
	 * the Reel instead of toggling sound — a misroute of exactly the kind §6.3
	 * exists to exclude, on the one control whose visual size is deliberately
	 * smaller than its target.
	 *
	 * Nothing here needs the clip: the sliding "Tap to unmute" label clips
	 * itself (`.sbi-qs-mute-label { max-width: 0; overflow: hidden }`), and the
	 * 20px glyph cannot overflow a 34px chip. `.sbi-qs-close` never had this
	 * bug because it does not clip — same ring pattern, `inset: -2px`. */
	white-space: nowrap;
	line-height: 1;
	transition: padding 700ms cubic-bezier(0.22, 1, 0.36, 1),
		background 450ms ease,
		color 450ms ease;
}
.sbi-qs-mute svg {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	filter: none;
}
/* ── The 44px hit target for a 34px chip (see .sbi-qs-close::before) ─────────
 * 5px on each side takes the 34px resting chip to 44x44. The insets are
 * asymmetric in effect rather than in value: the chip GROWS to 136px wide while
 * hinting, so the horizontal 5px only ever matters at rest, where it is needed.
 *
 * The right-hand 5px reaches into the 8px gap between this and the CTA pill and
 * stops 3px short of it — and the pill's own expansion below is VERTICAL ONLY
 * for exactly that reason. Two controls whose grown hit boxes overlap would hand
 * the shared strip to whichever paints last, which is the kind of silent,
 * position-dependent misroute §6.3's history is made of. */
.sbi-qs-mute::before {
	content: '';
	position: absolute;
	inset: -5px;
	border-radius: 22px;
}
.sbi-qs-mute-label {
	max-width: 0;
	margin-left: 0;
	opacity: 0;
	transform: translateX(-6px);
	overflow: hidden;
	font-size: 13px;
	font-weight: 600;
	line-height: 13px;
	letter-spacing: -0.005em;
	white-space: nowrap;
	transition: max-width 700ms cubic-bezier(0.22, 1, 0.36, 1),
		margin 700ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 350ms ease 50ms,
		transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}
.sbi-qs-mute-hinting {
	padding: 0 12px 0 9px;
}
.sbi-qs-mute-hinting .sbi-qs-mute-label {
	max-width: 140px;
	margin-left: 6px;
	opacity: 1;
	transform: none;
}
/* Unmuted — the quiet state. Driven by an attribute rather than a class so the
 * paint can never disagree with what updateMuteChrome() computed as the REAL
 * state (rule 1.7a: the button always reflects reality, including "muted for a
 * reason the visitor didn't choose"). */
.sbi-qs-mute[data-state="on"] {
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
}
.sbi-qs-mute[data-state="on"]:hover,
.sbi-qs-mute[data-state="on"]:focus-visible {
	background: rgba(0, 0, 0, 0.75);
}
.sbi-qs-mute[data-state="on"] .sbi-qs-mute-label {
	display: none;
}
.sbi-qs-mute:focus-visible {
	outline: 0;
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.6);
}
/* Rule 1.20 / §6.2: a control the tier cannot support is DISABLED, never
 * omitted. The reference omits the button when `hasAudio === false`, which
 * leaves `m` flipping a state with no control and no audible effect. */
.sbi-qs-mute:disabled {
	opacity: 0.35;
	cursor: default;
}

/* ── CTA pill "View on Instagram" (rule IG-6) ────────────────────────────── *
 * Desktop only, top-right beside mute. On touch it is `display: none` and the
 * CTA becomes a rail item instead — Aman states this migration explicitly for
 * all three platforms ("the view button on mobile moves at the bottom, the mute
 * stays up top").
 *
 * Replaces the left-aligned in-caption pill that used to sit in the bottom
 * chrome band (rule IG-7). Hidden by default because base = touch.
 */
.sbi-qs-view-on-ig,
.sbi-qs-fail-link {
	position: relative;   /* the ::before hit-target band below */
	display: none;
	box-sizing: border-box;
	align-items: center;
	gap: 7px;
	height: 34px;
	padding: 0 13px 0 11px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.35);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	text-shadow: none;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
	pointer-events: auto;
	flex: 0 0 auto;
	transition: background 150ms ease;
}
.sbi-qs-view-on-ig svg,
.sbi-qs-fail-link svg {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
}
/* VERTICAL ONLY — see .sbi-qs-mute::before for why. The pill is already 163px
 * wide, so height is the only axis that misses 44px. */
.sbi-qs-view-on-ig::before,
.sbi-qs-fail-link::before {
	content: '';
	position: absolute;
	top: -5px;
	right: 0;
	bottom: -5px;
	left: 0;
	border-radius: 999px;
}
.sbi-qs-view-on-ig:hover,
.sbi-qs-view-on-ig:focus-visible,
.sbi-qs-fail-link:hover,
.sbi-qs-fail-link:focus-visible {
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	text-decoration: none;
	outline: 0;
}
.sbi-qs-view-on-ig:focus-visible,
.sbi-qs-fail-link:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.7);
}

/* ── Progress bar (rule 1.12) ────────────────────────────────────────────── *
 * MOVED from a full-bleed bar across the WINDOW's top edge to the bottom edge
 * INSIDE the frame, at the design's 2px (TikTok's is 3px, and its red fill goes
 * white on both). Sits inside .sbi-qs-framechrome so the frame's radius clips
 * the bar's square ends.
 *
 * scaleX rather than width is unchanged and is the whole reason the bar
 * interpolates smoothly between the 250ms samples §6.1 requires: a transform
 * animates on the compositor, a width relayouts.
 */
.sbi-qs-progress {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: rgba(255, 255, 255, 0.28);
	overflow: hidden;
	/* A read-only readout with no click handler. Without this it would swallow
	 * taps landing in its band instead of letting them reach the gesture layer
	 * (spec §6.3's "non-interactive chrome MUST opt out too"). */
	pointer-events: none;
}
.sbi-qs-progress-fill {
	display: block;
	width: 100%;
	height: 100%;
	background: #fff;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 250ms linear;
}
/* Applied by setProgress() for ONE write, whenever the position moves backward
 * (a slide change, a loop wrap). Without it the fill ANIMATES back down over
 * 250ms, which reads as the bar rewinding — rule 1.12's "jump on nav" class.
 * The class is added, the value written, then the class removed on the next
 * frame, so only that single write is unanimated. */
.sbi-qs-progress-fill-jump {
	transition: none;
}

/* ── Pause glyph (rule 1.10) ─────────────────────────────────────────────── *
 * REPLACES the 600ms tap-flash. This is a play triangle shown for AS LONG AS
 * the slide is paused, not a transient echo of a tap — so the viewer always
 * shows whether it is playing, which is also what §6.1's "play/pause reflects
 * actual state" asks for on the visual channel (the sr-only live region carries
 * it on the AT channel).
 *
 * Deliberately NOT `inset: 0` + `place-items: center`, which is how the
 * reference does it. This is a shrink-wrapped, centre-anchored 84px box, so a
 * future pointer-events regression on this layer would expose an 84px disc
 * rather than the whole frame. Same reasoning the tap-flash it replaces was
 * built with, and this file's founding §6.3 defect is exactly that shape.
 *
 * The in-curve OVERSHOOTS (scale ~1.026 at 120ms) and the out-curve does not —
 * asymmetric on purpose per the walkthrough: "appearing is a statement,
 * disappearing gets out of the way."
 */
.sbi-qs-flash {
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -42px 0 0 -42px;
	z-index: 4;
	/* Decorative echo of state the layer BELOW owns. Without this it would
	 * swallow the tap that toggles playback — an 84px dead disc dead centre of
	 * the frame, i.e. exactly where a visitor taps to resume. */
	pointer-events: none;
	display: none;
}
.sbi-qs-flash svg {
	box-sizing: border-box;
	width: 84px;
	height: 84px;
	padding: 22px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.4);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: #fff;
	will-change: transform, filter;
}
.sbi-qs-overlay[data-paused="true"] .sbi-qs-flash {
	display: block;
}
.sbi-qs-overlay[data-paused="true"] .sbi-qs-flash svg {
	animation: sbiQsFlashIn 200ms cubic-bezier(0.2, 0.9, 0.25, 1.15) both;
}
/* The dissolve. `.sbi-qs-flash-on` is left behind by the JS for one 100ms
 * window after unpausing, so the glyph can animate OUT rather than vanishing. */
.sbi-qs-overlay[data-paused="false"] .sbi-qs-flash-on {
	display: block;
}
.sbi-qs-overlay[data-paused="false"] .sbi-qs-flash-on svg {
	animation: sbiQsFlashOut 100ms cubic-bezier(0.4, 0, 0.6, 1) both;
}

/* ── Desktop up/down chevrons (rule 1.11) ────────────────────────────────── *
 * Row 2 of the rail column, vertically centred on the frame. The reference
 * builds the rail column as a `minmax(0,1fr) auto 1fr` grid (measured
 * 380/124/380 at an 884px frame) so the chevrons land on the frame's centre and
 * get pushed up if the action stack ever needs more than its half.
 *
 * Ours reproduces the RESULT without the grid, and the reason is that the two
 * rows have different owners: the action stack is per-POST (its counts change
 * per slide, and the ratified rule has it travelling with the drag) so it lives
 * inside the track, while the chevrons are session-level and cannot. Nothing can
 * be one grid across that boundary. Since the frame is vertically centred in the
 * viewport, "centred on the frame" is `top: 50%`, and the grid's row-growth
 * behaviour is unreachable at IG's rail height anyway (183px against a 380px
 * half). Recorded as a deviation with a measured equivalence rather than
 * silently.
 *
 * Anchored off the same one expression as the rail column: `50% - frame-shift -
 * stage-half` is the frame's LEFT inset and, because the trio is centred, also
 * the rail column's RIGHT inset.
 *
 * VISIBILITY is input capability, never width (rule 1.2): touch has swipe for
 * this already, and width is wrong in both directions — a narrow desktop window
 * still has a mouse, a large tablet still does not.
 *
 * Both directions are built unconditionally and DISABLED at the ends of the
 * track, rather than added and removed: a control that vanishes at the last
 * slide moves its sibling, and a disabled button keeps the cluster's geometry
 * stable while staying honest about what it can do (§6.2).
 */
.sbi-qs-nav {
	position: absolute;
	right: calc(50% - var(--sbi-qs-frame-shift) - var(--sbi-qs-stage-half));
	width: var(--sbi-qs-rail-w);
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	/* Hidden by default (base = touch); the capability query at the end of this
	 * file switches it on. */
	display: none;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	/* §6.3: the CONTAINER is inert and the two buttons opt back in below. */
	pointer-events: none;
}
.sbi-qs-nav-prev,
.sbi-qs-nav-next {
	/* ── The UA's form-control defaults, refused explicitly ──────────────────
	 * A <button> is not a normal element: the UA sets its own `font` shorthand
	 * (`400 13.3333px Arial` in Chrome) and its own `padding: 1px 6px`, and
	 * NEITHER inherits from the viewer. Measured on the live demo: every button
	 * in this viewer reported `font-family: Arial` while the overlay itself
	 * reported the design's `Inter, InterVariable, …` stack — so rule 1.6's
	 * "Tap to unmute" label and the rail's counts were rendering in Arial, at
	 * the design's sizes but not its face.
	 *
	 * `font: inherit` FIRST, so each rule's own explicit size/weight below still
	 * wins on source order. `padding: 0` because a glyph-only control's box is
	 * its tap target and the UA's 6px side padding silently shrinks the content
	 * area (a 40px close disc was laying out its 22px glyph in 28px of content
	 * box). `appearance: none` because iOS Safari otherwise paints its own
	 * control chrome over the disc.
	 *
	 * Deliberately repeated per rule rather than hoisted into a
	 * `.sbi-qs-overlay button` reset: that selector has HIGHER specificity
	 * (0,1,1) than the single-class rules here (0,1,0), so it would override the
	 * paddings those rules set on purpose — the mute chip's `0 7px`, the pill's
	 * `0 13px 0 11px`. Flat specificity is what keeps this predictable. */
	font: inherit;
	-webkit-appearance: none;
	appearance: none;
	padding: 0;
	position: relative;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 0;
	/* Rule 1.4's one circular-control paint, shared with close. */
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	cursor: pointer;
	pointer-events: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	transition: background 150ms ease, transform 150ms ease, opacity 150ms ease;
}
.sbi-qs-nav-prev svg,
.sbi-qs-nav-next svg {
	width: 24px;
	height: 24px;
}
.sbi-qs-nav-prev:hover,
.sbi-qs-nav-next:hover,
.sbi-qs-nav-prev:focus-visible,
.sbi-qs-nav-next:focus-visible {
	background: rgba(255, 255, 255, 0.28);
	outline: 0;
}
.sbi-qs-nav-prev:active,
.sbi-qs-nav-next:active {
	transform: scale(0.94);
}
.sbi-qs-nav-prev:focus-visible,
.sbi-qs-nav-next:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.6);
}
.sbi-qs-nav-prev:disabled,
.sbi-qs-nav-next:disabled {
	opacity: 0.3;
	cursor: default;
	transform: none;
}

/* ── Bottom scrim (rule IG-1) ────────────────────────────────────────────── *
 * 42% of the frame's height, inside the frame, under the bottom row. There is
 * deliberately NO top scrim: the top row carries its own text-shadow instead
 * (see .sbi-qs-top), because a second gradient up there would fight the
 * frame's clean top edge that removing the wordmark created.
 */
.sbi-qs-scrim {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 42%;
	z-index: 1;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.28) 55%, rgba(0, 0, 0, 0) 100%);
	pointer-events: none;
}

/* ── Rail column (rule 1.3) ──────────────────────────────────────────────── *
 * Base = touch: an in-frame absolute overlay at the frame's bottom-right,
 * shrink-wrapped to its content (`right: 10px` is the design's IG inset).
 * Desktop (capability block) = a 44px-wide column OUTSIDE the frame, 16px to
 * its right, bottom-aligned with the frame.
 *
 * ── SESSION-LEVEL: one column, an overlay child (SMASH-1851) ───────────────
 * It used to be a child of `.sbi-qs-post` — one column per slide, inside the
 * track — which is how it got its travel for free: the track's transform
 * carried it. Measured on 6.13.0.6, that made the active rail sweep the FULL
 * SLIDE HEIGHT on every navigation (900px at 1440x900, 844px at 390x844) while
 * the top row and the chevrons held perfectly still. Asmita, 2026-09-10: "keep
 * them in place and update them without them going up and down with the video
 * (we do this with TikTok)."
 *
 * This does NOT reverse the rule ratified 2026-08-27 ("the rail travels with
 * the reel"). That rule is about the DRAG, where a pinned rail leaves reel N's
 * stats over reel N+1's incoming video for the whole gesture — and the drag
 * follow survives, now as an explicit transform (see `transition-property`
 * below and setRailTravel() in the JS) rather than as an inherited one. What
 * goes is travel on the COMMIT, which is exactly what TikTok does: its one rail
 * element takes the live drag delta and lands at rest in the same paint that
 * swaps its content (`chromeTravelStyle`, SwipeView.jsx).
 *
 * The RESTING GEOMETRY is unchanged by the move, and the reason is checkable
 * rather than hopeful: `.sbi-qs-post` is `height: 100vh/100dvh` and
 * `.sbi-qs-overlay` is `position: fixed; inset: 0`, so the old and the new
 * containing blocks are the same box and these insets resolve identically
 * against either. Measured at both viewports before and after — zero delta.
 *
 * The one thing the move inherits rather than fixes: on a phone the overlay's
 * `inset: 0` and the post's `100dvh` can disagree by the browser chrome's
 * height on engines where a fixed box resolves against the LARGE viewport. That
 * is the same reference `.sbi-qs-framechrome` (also session-level, also
 * `bottom: 0` against the overlay) has always used, so this introduces no new
 * risk class — but it does mean the rail's bottom clearance is one of the
 * things only a real device can settle. Flagged for the iPhone pass, not
 * papered over.
 *
 * Base = touch: an in-frame absolute overlay at the frame's bottom-right
 * (`right: 10px` is the design's IG inset). Desktop (capability block) = a 44px
 * column OUTSIDE the frame, 16px to its right, bottom-aligned with it. It could
 * not be a child of `.sbi-qs-framechrome` instead, which would otherwise be the
 * tidier home: that box carries `overflow: hidden` so the 2px progress bar can
 * sit flush on the frame's rounded bottom edge, and on desktop the rail is
 * outside the frame, so it would be clipped away entirely.
 *
 * z-index 5, up from the 2 it carried inside the post. Inside a slide it only
 * had to beat the gesture layer's 1 within the viewport's own stacking context;
 * at overlay level it is a sibling of `.sbi-qs-framechrome` (3) and shares its
 * visual column with `.sbi-qs-nav` (5), so it takes the chevrons' level. Below
 * close (6) and the coach overlay (9), which both deliberately paint over
 * everything.
 *
 * The 44px width is the reference's `.sc-railcol`; the action stack inside it
 * shrink-wraps to ~29px and centres, which is why his `.sc-rail` measures
 * 28.9px inside a 44px column.
 */
.sbi-qs-railcol {
	position: absolute;
	right: 10px;
	bottom: 0;
	z-index: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	/* Only the DURATION is written from JS (setRailTravel), so the easing and
	 * the property list stay declarative and in one place. `transform` alone,
	 * never `all`: the duration is toggled between 0ms and 320ms on every drag
	 * frame, and `all` would drag every other animatable property into that. */
	transition-property: transform;
	transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
	transition-duration: 0ms;
	/* §6.3: the column is inert; each rail item opts back in. */
	pointer-events: none;
}
/* An all-empty rail hides the COLUMN, not just its items — see updateRail().
 * `display: flex` above is an AUTHOR declaration and therefore beats `hidden`'s
 * UA rule, so without this the attribute would hide nothing at all. The column
 * must genuinely leave layout: its 18px of bottom padding is dead space for the
 * dismiss and tap-to-pause carve-outs, and a laid-out empty column would keep
 * carving a live region out of the backdrop for a post that has no rail. */
.sbi-qs-railcol[hidden] {
	display: none;
}
.sbi-qs-rail {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	padding-bottom: 18px;
	padding-bottom: max(18px, var(--sbi-qs-safe-bottom, env(safe-area-inset-bottom, 0px)));
	pointer-events: none;
}

/* ── Rail items (rules IG-2, IG-3) ───────────────────────────────────────── *
 * BARE GLYPHS — no discs. Rule IG-2, and it is the one place the IG skin
 * departs from "all circular buttons share one style": TikTok's rail glyphs sit
 * in translucent circles, Instagram's do not, because Instagram's own Reels
 * player renders them bare. A drop-shadow does the contrast work a disc would
 * otherwise do.
 *
 * SEMANTICS differ per item and are NOT interchangeable (rule IG-3):
 *   like    — a READOUT, not a control. `<div role="img">` with an exact-figure
 *             label, `cursor: default`, and the hover transform suppressed.
 *             There is no logged-in visitor inside an embedded feed, so a heart
 *             styled like Instagram's tappable heart would promise something the
 *             UI cannot deliver.
 *   comment — a LINK to the post, where commenting genuinely works.
 *   share   — a real <button>: Web Share, then clipboard + toast, then a toast
 *             carrying the URL. The only genuine in-page action in the rail.
 *   view    — touch only; the desktop CTA pill's counterpart.
 *
 * Instagram exposes NO share count, so the share glyph carries none — and
 * "absent" is not "zero" anywhere in this cluster (a non-business account
 * reports no metrics at all).
 *
 * Each item is a shrink-wrapped column, NEVER a full-width flex child. That is
 * the ratified "never a full-width chrome strip" rule: a stretched item becomes
 * an opaque dead strip across the thumb zone that eats tap-to-pause and swipe
 * both — §6.3's fourth recurrence.
 */
.sbi-qs-act {
	/* ── The UA's form-control defaults, refused explicitly ──────────────────
	 * A <button> is not a normal element: the UA sets its own `font` shorthand
	 * (`400 13.3333px Arial` in Chrome) and its own `padding: 1px 6px`, and
	 * NEITHER inherits from the viewer. Measured on the live demo: every button
	 * in this viewer reported `font-family: Arial` while the overlay itself
	 * reported the design's `Inter, InterVariable, …` stack — so rule 1.6's
	 * "Tap to unmute" label and the rail's counts were rendering in Arial, at
	 * the design's sizes but not its face.
	 *
	 * `font: inherit` FIRST, so each rule's own explicit size/weight below still
	 * wins on source order. `padding: 0` because a glyph-only control's box is
	 * its tap target and the UA's 6px side padding silently shrinks the content
	 * area (a 40px close disc was laying out its 22px glyph in 28px of content
	 * box). `appearance: none` because iOS Safari otherwise paints its own
	 * control chrome over the disc.
	 *
	 * Deliberately repeated per rule rather than hoisted into a
	 * `.sbi-qs-overlay button` reset: that selector has HIGHER specificity
	 * (0,1,1) than the single-class rules here (0,1,0), so it would override the
	 * paddings those rules set on purpose — the mute chip's `0 7px`, the pill's
	 * `0 13px 0 11px`. Flat specificity is what keeps this predictable. */
	font: inherit;
	-webkit-appearance: none;
	appearance: none;
	position: relative;   /* the ::before hit-target box below */
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: #fff;
	text-decoration: none;
	cursor: pointer;
	pointer-events: auto;
	/* Bare glyphs over arbitrary video need their own contrast guard. */
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
	transition: transform 120ms ease;
}
.sbi-qs-act svg {
	width: 28px;
	height: 28px;
	flex: 0 0 auto;
}
/* ── 44px hit targets for BARE glyphs (see .sbi-qs-close::before) ────────────
 * A rail item is a shrink-wrapped flex column, so its WIDTH is whichever child
 * is wider: the glyph (26px desktop, 28px touch) or the count text. For a
 * one-digit count the text is ~7.8px, so the item is exactly as wide as the
 * glyph — and that is the whole defect this rule used to have. It stated the
 * ring as an INSET PAIR (`left`/`right: -8px`), which makes the ring's width a
 * value DERIVED from the item's: 28 + 16 = 44 on touch, but 26 + 16 = **42** on
 * desktop, two short of the convention. A floor expressed as a relative inset
 * is not a floor, it is an arithmetic coincidence that holds for one glyph size.
 *
 * So the horizontal axis is stated ABSOLUTELY: a fixed 44px box centred on the
 * item (`left: 50%` + `margin-left: -22px`), which is the same 44px whatever the
 * glyph measures and whatever figure Instagram returns. It resolves flush to the
 * rail COLUMN — the space the design already reserves for these controls — so a
 * grown item still cannot reach out over the video: on desktop the column is
 * 44px and the item is centred in it, so the ring lands exactly on the column's
 * two edges rather than 1px inside them.
 *
 * The VERTICAL axis keeps the ±1px insets, because the item is 43px (desktop) /
 * 45px (touch) tall and the derived 45/47px already clears 44 — shrinking it to
 * a flat 44 would REMOVE reachable area. `min-height` states the floor anyway,
 * so this axis cannot silently sink the way the other one did if the count row
 * ever stops being rendered. It does not fire at either current viewport; when a
 * min-height clamps a box that pins both `top` and `bottom`, the box is
 * over-constrained and grows downward from `top`, into the gap below.
 *
 * Adjacent items still cannot overlap: the growth is horizontal, and the ±1px
 * of vertical growth against an 18px (desktop) / 20px (touch) gap leaves ~15px
 * / ~17px of genuinely dead space between two rings — which is what keeps a tap
 * in the gap landing on the carve-out instead of on a control.
 *
 * `.sbi-qs-act-like` gets it too, even though it is a readout rather than a
 * control: it carries `role="img"` with a label, and an AT user targeting it
 * should not have a smaller target than the items either side of it. */
.sbi-qs-act::before {
	content: '';
	position: absolute;
	top: -1px;
	bottom: -1px;
	min-height: 44px;
	left: 50%;
	width: 44px;
	margin-left: -22px;
}
.sbi-qs-act-count,
.sbi-qs-act-label {
	/* `block` + min-height so an EMPTY count still reserves its row — an empty
	 * inline element generates no line box, which would pull the share glyph
	 * 17px up toward its neighbour. See buildRailItem() for why the row is
	 * always rendered. */
	display: block;
	min-height: 12px;
	font-size: 12px;
	font-weight: 600;
	line-height: 12px;
	/* Tabular figures so a count changing between slides doesn't shift the
	 * glyph above it. */
	font-variant-numeric: tabular-nums;
}
.sbi-qs-act:hover {
	color: #fff;
	text-decoration: none;
	transform: scale(1.06);
}
.sbi-qs-act:active {
	transform: scale(0.94);
}
.sbi-qs-act:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
	border-radius: 4px;
}
/* ── `hidden` must actually hide (SMASH-1851) ───────────────────────────────
 * The rail's items are built once and shown or hidden per slide, so `hidden` is
 * now load-bearing rather than decorative. `.sbi-qs-act` sets `display: flex`
 * above, and an AUTHOR declaration beats the UA's `[hidden] { display: none }`
 * — so the attribute on its own would hide NOTHING: a post with no like figure
 * would render an empty heart, and a post with no permalink would render a
 * comment glyph linking nowhere.
 *
 * Two independent conditions decide an item's visibility and they must not be
 * folded into one mechanism: DATA (this post has no figure / no permalink) is
 * `hidden`, written from JS; VIEWPORT (`.sbi-qs-act-view` is desktop-only) is
 * the capability query at the end of this file. Either one alone hides.
 *
 * `[hidden]` is (0,2,0) so it also wins over the capability block's
 * `.sbi-qs-act-view` (0,1,0) regardless of order — both resolve to `none`, so
 * the outcome is the same either way, but the specificity is why this rule does
 * not need to live below that block. */
.sbi-qs-act[hidden] {
	display: none;
}

/* The readout. Hover/active feedback is suppressed rather than merely
 * unstyled — a transform on hover is itself an affordance claim. */
.sbi-qs-act-like {
	cursor: default;
}
.sbi-qs-act-like:hover,
.sbi-qs-act-like:active {
	transform: none;
}

/* ── Bottom row (rules IG-4, IG-5) ───────────────────────────────────────── *
 * In-frame, frame-anchored, replacing the old chrome band that hugged the stage
 * from OUTSIDE it. Author row, then a ONE-LINE caption.
 *
 * `padding-right` is a SEPARATE LONGHAND and must stay one: it clears the rail
 * on touch (where the rail is inside the frame) and drops back to the plain
 * inset on desktop (where the rail is outside). Folding it into the shorthand
 * also breaks the geometry suite, which parses that shorthand's values.
 *
 * Pins `bottom` ONLY, never `top` as well. An absolutely-positioned box with
 * both pinned resolves to the full containing block on Safari 15.4-16.3 when a
 * `fit-content` height is unsupported — a full-frame band over the gesture
 * layer eating every vertical swipe. Bottom-anchored chrome pins bottom.
 */
.sbi-qs-bottom {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	box-sizing: border-box;
	padding: 0 16px 16px 16px;
	padding-bottom: max(16px, var(--sbi-qs-safe-bottom, env(safe-area-inset-bottom, 0px)));
	padding-right: 76px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
	line-height: 18.2px;
	/* The gesture layer owns this whole band by default; only the genuine
	 * controls inside opt back in.
	 *
	 * Rex review (SMASH-1851), blocking finding, and the reason there is no
	 * `> *` rule here: a blanket opt-in used to live on the predecessor of this
	 * element on the theory that its children have nothing clickable inside
	 * them. That missed that pointer-events needs no click handler to do damage
	 * — this is a COLUMN flex container with the default `align-items: stretch`,
	 * so a blanket rule turns the author row and the caption into opaque,
	 * FULL-WIDTH bands sitting in the mobile thumb zone on every slide,
	 * silently swallowing tap-to-toggle (bound to the gesture layer, never
	 * reached) and touch-swipe navigation both. Spec §6.3 names this exact case.
	 * The fix is per-control opt-in, and the author row and Follow pill below
	 * additionally carry `align-self: flex-start` so they shrink-wrap. */
	pointer-events: none;
}

/* ── Author row (rule IG-4) ──────────────────────────────────────────────── */
.sbi-qs-authorrow {
	display: flex;
	align-items: center;
	gap: 10px;
	/* Shrink-wrapped, not stretched — see .sbi-qs-bottom. */
	align-self: flex-start;
	min-width: 0;
	max-width: 100%;
}
.sbi-qs-author {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	color: #fff;
	text-decoration: none;
	pointer-events: auto;
}
.sbi-qs-author:hover .sbi-qs-handle-text,
.sbi-qs-author:focus-visible .sbi-qs-handle-text {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.sbi-qs-author:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	border-radius: 4px;
}
.sbi-qs-avatar {
	box-sizing: border-box;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
	background: #262626;
}
/* Fallback when the post carries no usable avatar URL (rule IG-4): the
 * reference's initial-letter gradient disc. The hue is derived from the handle
 * so the same account always gets the same disc, rather than a colour that
 * changes between slides. */
.sbi-qs-avatar-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	text-transform: uppercase;
	color: #fff;
	background-image: linear-gradient(135deg, hsl(var(--sbi-qs-avatar-hue, 212) 70% 58%), hsl(calc(var(--sbi-qs-avatar-hue, 212) + 50) 65% 38%));
}
.sbi-qs-handle {
	display: flex;
	align-items: center;
	gap: 4px;
	min-width: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 18.2px;
}
.sbi-qs-handle-text {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.sbi-qs-verified {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
}
/* Outline pill, NOT Instagram's filled blue — the design's own treatment, and
 * the same shape TikTok fills solid red. Aman's stated rationale is CTA
 * density: "our users might appreciate having CTA almost everywhere". */
.sbi-qs-follow {
	position: relative;   /* the ::before hit-target band below */
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 28px;
	padding: 0 12px;
	margin-left: 2px;
	border: 1px solid rgba(255, 255, 255, 0.75);
	border-radius: 8px;
	background: transparent;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	flex: 0 0 auto;
	pointer-events: auto;
	transition: background 150ms ease;
}
/* 28px tall by design (rule IG-4); the band below takes the reachable box to
 * 44px without moving the outline. Vertical only — the pill sits in a row with
 * the author link 2px to its left, so a horizontal expansion would overlap it. */
.sbi-qs-follow::before {
	content: '';
	position: absolute;
	top: -8px;
	right: 0;
	bottom: -8px;
	left: 0;
	border-radius: 8px;
}
.sbi-qs-follow:hover,
.sbi-qs-follow:focus-visible {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	text-decoration: none;
	outline: 0;
}
.sbi-qs-follow:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.7);
}

/* ── Caption (rules IG-4, IG-5) ──────────────────────────────────────────── *
 * ONE line, clamped with `nowrap` + ellipsis, with a "more" control revealed
 * only on MEASURED overflow. Down from three lines — the design's call.
 *
 * §6.1's expander contract, all four parts, and each one encodes a defect that
 * has shipped:
 *   - the caption TEXT is never tappable; only the shrink-wrapped more/less
 *     button is interactive. The reference puts `role="button" tabindex="0"` on
 *     the caption BLOCK, so its centre hit-test lands on the text node — spec
 *     §4.1 item 7. We keep his visual treatment exactly and move the role onto
 *     the button that already looks like the control.
 *   - revealed only on measured overflow (scrollWidth vs clientWidth).
 *   - expansion NEVER survives a slide change.
 *   - the expanded block is CAPPED and owns its own scroll surface; wheel and
 *     touch inside it must not navigate the track. Uncapped, a 2.5k-char
 *     caption measures 782px in his desktop build and escapes the frame top by
 *     463px, silently clipped — text lost with no indication.
 *
 * The CAP is a line count, not a viewport fraction, and that is a deliberate
 * deviation from rule IG-5's "≈26% of frame height": 12 lines at the design's
 * own 18.2px line-height is 218.4px, which is 24.7% of the 884px desktop frame
 * and 25.9% of the 844px mobile frame — inside a percentage point of his figure
 * at BOTH reference viewports, while introducing no viewport unit at all. A
 * percentage would not work: this element's containing block is bottom-anchored
 * with an auto height, so a percentage max-height resolves to `none`. Giving it
 * a definite height would mean pinning both `top` and `bottom`, which is the
 * named Safari full-band hazard above.
 */
.sbi-qs-caption {
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: 6px;
	font-size: 14px;
	line-height: 18.2px;
	/* Deliberately NOT opted back into pointer events — the text must never be
	 * tappable. Only .sbi-qs-caption-more opts in. */
	pointer-events: none;
}
.sbi-qs-caption-text {
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.sbi-qs-caption-more {
	/* ── The UA's form-control defaults, refused explicitly ──────────────────
	 * A <button> is not a normal element: the UA sets its own `font` shorthand
	 * (`400 13.3333px Arial` in Chrome) and its own `padding: 1px 6px`, and
	 * NEITHER inherits from the viewer. Measured on the live demo: every button
	 * in this viewer reported `font-family: Arial` while the overlay itself
	 * reported the design's `Inter, InterVariable, …` stack — so rule 1.6's
	 * "Tap to unmute" label and the rail's counts were rendering in Arial, at
	 * the design's sizes but not its face.
	 *
	 * `font: inherit` FIRST, so each rule's own explicit size/weight below still
	 * wins on source order. `padding: 0` because a glyph-only control's box is
	 * its tap target and the UA's 6px side padding silently shrinks the content
	 * area (a 40px close disc was laying out its 22px glyph in 28px of content
	 * box). `appearance: none` because iOS Safari otherwise paints its own
	 * control chrome over the disc.
	 *
	 * Deliberately repeated per rule rather than hoisted into a
	 * `.sbi-qs-overlay button` reset: that selector has HIGHER specificity
	 * (0,1,1) than the single-class rules here (0,1,0), so it would override the
	 * paddings those rules set on purpose — the mute chip's `0 7px`, the pill's
	 * `0 13px 0 11px`. Flat specificity is what keeps this predictable. */
	font: inherit;
	-webkit-appearance: none;
	appearance: none;
	/* §6.3 explicit opt-in: this button IS the control, and the only one. */
	pointer-events: auto;
	position: relative;
	flex: 0 0 auto;
	display: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: #a8a8a8;
	font-size: 14px;
	font-weight: 400;
	line-height: 18.2px;
	cursor: pointer;
}
/* The 44px hit target, WITHOUT the layout cost. The design's visible control is
 * 33.9 x 18.2 — below this file's 44px control convention, a gap the survey has
 * carried as an advisory since 2026-08-19. Padding would fix the target and
 * break the design: this row is measured at 18.2px tall and the bottom row at
 * 76.2px, so a 44px-tall button grows the whole block by 26px and pushes the
 * author row up off its mark.
 *
 * A positioned pseudo-element takes no part in layout but IS hit-tested, and a
 * hit on it resolves to its originating element — so elementFromPoint over this
 * region returns the button, which is exactly what §6.3's proof asks for. The
 * visible box stays the design's; only the reachable box grows.
 *
 * Insets are asymmetric on purpose: 13px above and below the 18.2px text gives
 * 44.2px, and the horizontal 6px stops short of the caption text so the grown
 * target cannot start swallowing taps meant for the gesture layer. */
.sbi-qs-caption-more::before {
	content: '';
	position: absolute;
	top: -13px;
	right: -6px;
	bottom: -13px;
	left: -6px;
}
.sbi-qs-caption-has-more .sbi-qs-caption-more {
	display: inline-block;
}
.sbi-qs-caption-more:hover {
	color: #fff;
}
.sbi-qs-caption-more:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	border-radius: 4px;
}
.sbi-qs-caption-expanded {
	align-items: flex-end;
}
.sbi-qs-caption-expanded .sbi-qs-caption-text {
	/* Caption text is set via textContent, never innerHTML (§12) — a caption's
	 * literal `<br>`/`<br/>` markers are translated to `\n` in JS instead (see
	 * formatCaptionText()). `pre-line` turns those preserved newlines into real
	 * breaks without ever parsing the text as markup. */
	white-space: pre-line;
	overflow-y: auto;
	overflow-x: hidden;
	text-overflow: clip;
	max-height: var(--sbi-qs-caption-cap);
	/* Owns its scroll surface. The wheel/touch handlers additionally refuse to
	 * navigate while the event originated inside here — CSS alone cannot stop
	 * the gesture layer, because the gesture layer is not an ancestor. */
	pointer-events: auto;
	padding-right: 10px;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
}
.sbi-qs-caption-expanded .sbi-qs-caption-text::-webkit-scrollbar {
	width: 4px;
}
.sbi-qs-caption-expanded .sbi-qs-caption-text::-webkit-scrollbar-track {
	background: transparent;
}
.sbi-qs-caption-expanded .sbi-qs-caption-text::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.35);
	border-radius: 2px;
}
/* ── Hashtags inside the caption (rule IG-5) — COLOUR ONLY, NOT LINKS ────── *
 * CONFLICT, resolved toward behaviour and escalated rather than resolved
 * silently (log § 0). Rule IG-5 asks for two things that cannot both hold:
 * "caption text never tappable; only the shrink-wrapped more/less button is
 * interactive" AND "hashtags #e0f1ff, hover underline". A hover underline on a
 * hashtag is an interactivity claim, and a hashtag link is tappable caption
 * text — which is precisely what spec §6.1's expander contract forbids, and
 * that contract encodes a defect that has shipped three times.
 *
 * Behaviour wins per the authority split, so hashtags take the design's COLOUR
 * and stay inert spans: no href, no hover underline, no pointer-events opt-in.
 * The visual result is the design's at rest and differs only on hover.
 * Carried into the change log as a question for Aman.
 *
 * Built by tokenising the ALREADY-ESCAPED caption text and appending real text
 * nodes and spans — never by parsing markup (§12). */
.sbi-qs-tag {
	color: #e0f1ff;
}

/* ── First-run swipe coach (rule 1.9) ────────────────────────────────────── *
 * The ONLY onboarding overlay that ships, and it replaces the four-row intro
 * card outright. Aman retracts his own earlier proposal in the walkthrough — "I
 * know I added four instructions, so I'm just kind of trying to minimize what
 * we tell them… a lot of it can just be noticed from how they use Instagram" —
 * and the final design keeps exactly two hints: this one, and the unmute label
 * on the mute button. No pause hint, no desktop swipe hint, no keyboard hint
 * card, no "reset hint" button (that one is a dev aid).
 *
 * TOUCH ONLY and FIRST RUN ONLY: desktop has visible chevrons and a cursor, so
 * it needs no swipe instruction. Gated in JS on the same input-capability probe
 * this file's chevrons use, and persisted in localStorage under a
 * plugin-namespaced key so it shows once ever rather than once per session.
 *
 * `pointer-events: none` is not optional here: this is a full-frame layer above
 * the gesture layer, so without it the very swipe it is teaching would be
 * swallowed. Dismiss listeners are armed 350ms AFTER open so the tap that
 * opened the viewer cannot dismiss it before it is read.
 */
.sbi-qs-coach {
	position: absolute;
	inset: 0;
	z-index: 9;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.35);
	pointer-events: none;
}
.sbi-qs-coach-visible {
	display: flex;
}
.sbi-qs-coach-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 600;
	line-height: 19.5px;
	text-align: center;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
}
.sbi-qs-coach-hand {
	width: 44px;
	height: 64px;
	animation: sbiQsSwipe 1.4s ease-in-out infinite;
}

/* ── Keyframes ───────────────────────────────────────────────────────────── */
@keyframes sbiQsSpin {
	to { transform: rotate(360deg); }
}
@keyframes sbiQsFlashIn {
	0%   { opacity: 0; transform: scale(0.3); filter: blur(4px); }
	100% { opacity: 1; transform: scale(1);   filter: blur(0);   }
}
@keyframes sbiQsFlashOut {
	0%   { opacity: 1; transform: scale(1);   filter: blur(0);   }
	100% { opacity: 0; transform: scale(0.8); filter: blur(4px); }
}
@keyframes sbiQsSwipe {
	0%   { transform: translateY(18px);  opacity: 0.35; }
	45%  { transform: translateY(-26px); opacity: 1; }
	100% { transform: translateY(18px);  opacity: 0.35; }
}

/* ══════════════════════════════════════════════════════════════════════════
 * EVERY @media BLOCK LIVES BELOW THIS LINE. Nothing top-level may follow.
 * The geometry suites read `stripCssComments(css).split('@media')[0]`, so a
 * rule placed after the first @media is invisible to them and reads as missing.
 * ══════════════════════════════════════════════════════════════════════════ */

/* ── Desktop layout (rule 1.2: input capability, NEVER width) ────────────── *
 * "Desktop" is a pointer that hovers and is fine, full stop. Everything in here
 * is either something that needs a mouse (chevrons, tooltips) or a layout that
 * only makes sense when there is room beside the frame (the rail column, the
 * top-row CTA pill). The reference expresses all of it as `max-width: 768px`
 * branches; not one of those thresholds ships.
 */
@media (hover: hover) and (pointer: fine) {
	.sbi-qs-overlay {
		/* Rule 1.13 — the host page stays faintly visible behind the blur,
		 * which is Aman's stated intent. `color-mix` second so a browser
		 * without it keeps the plain rgba above; both compute to the same
		 * 82% black over the desktop backdrop. */
		background: rgba(0, 0, 0, 0.82);
		background: color-mix(in srgb, #000 82%, transparent);
		-webkit-backdrop-filter: blur(14px);
		backdrop-filter: blur(14px);

		--sbi-qs-stage-radius: 8px;
		--sbi-qs-rail-w: 44px;
		--sbi-qs-stage-gap: 16px;
		/* Half of rail + gap. Rule 1.1 centres the frame and the rail column
		 * TOGETHER, so the frame's centre sits this far left of the window's. */
		--sbi-qs-frame-shift: 30px;
		/* Half the painted frame's width, as a CONTINUOUS clamp rather than a
		 * breakpoint (rule 1.2). Derivation, so the three numbers are checkable:
		 * the frame is `viewport height - 16px` tall (8px top and bottom
		 * margins) at 9:16, and can never be wider than the space left after
		 * the rail column and the stage gap — so
		 *   half = min(50vw - 30px, (50vh - 8px) * 9 / 16).
		 * At 1440x900: min(690, 248.625) = 248.625, frame 497.25 x 884 at
		 * x = 441.375. The 9 / 16 here MUST stay the ratio .sbi-qs-media sizes
		 * with; a test asserts every occurrence in this file agrees.
		 * vh-then-dvh pair, as everywhere. */
		--sbi-qs-stage-half: min(calc(50vw - 30px), calc((50vh - 8px) * 9 / 16));
		--sbi-qs-stage-half: min(calc(50vw - 30px), calc((50dvh - 8px) * 9 / 16));
	}

	/* Rule 1.4 — (16, 16) on desktop, (12, 12) on touch. */
	.sbi-qs-close {
		top: 16px;
		left: 16px;
	}

	/* Rule 1.1 — the framed 9:16 stage. `right` reserves the rail column plus
	 * the stage gap, and `margin: auto` then centres the frame inside what is
	 * left, which puts its centre at `50vw - frame-shift`. No transform. */
	.sbi-qs-media,
	.sbi-qs-framechrome {
		right: calc(var(--sbi-qs-rail-w) + var(--sbi-qs-stage-gap));
		height: calc(100vh - 16px);
		height: calc(100dvh - 16px);
		width: min(calc(100vw - var(--sbi-qs-rail-w) - var(--sbi-qs-stage-gap)), calc((100vh - 16px) * 9 / 16));
		width: min(calc(100vw - var(--sbi-qs-rail-w) - var(--sbi-qs-stage-gap)), calc((100dvh - 16px) * 9 / 16));
	}

	/* Rule 1.5 — no need to clear the window close button here; it is far to
	 * the left of the frame on any desktop viewport. */
	.sbi-qs-top {
		padding: 14px 14px 0 16px;
	}

	/* Rule IG-6 — the CTA is a top-row pill on desktop, a rail item on touch. */
	.sbi-qs-view-on-ig {
		display: inline-flex;
	}
	.sbi-qs-act-view {
		display: none;
	}

	.sbi-qs-nav {
		display: flex;
	}

	/* Rule 1.3 — the rail column moves OUTSIDE the frame, 16px to its right,
	 * bottom-aligned with the frame. `right` is the frame's own left inset:
	 * because the frame + gap + rail trio is centred, the trio's two outer
	 * insets are equal, so the rail column's right inset IS
	 * `50% - frame-shift - stage-half`. One expression, checkable by symmetry,
	 * and shared with .sbi-qs-nav. */
	.sbi-qs-railcol {
		right: calc(50% - var(--sbi-qs-frame-shift) - var(--sbi-qs-stage-half));
		left: auto;
		bottom: 8px;
		width: var(--sbi-qs-rail-w);
	}
	.sbi-qs-rail {
		gap: 18px;
		padding-bottom: 18px;
	}
	/* 26px desktop, 28px touch (rule IG-2) — the touch value is the base. */
	.sbi-qs-act svg {
		width: 26px;
		height: 26px;
	}

	/* Rule IG-4 — the rail is outside the frame here, so the bottom row needs
	 * no gutter reserved for it. */
	.sbi-qs-bottom {
		padding-right: 16px;
	}

	/* ── Tooltips (rule 1.9, spec §2.2) ──────────────────────────────────────
	 * On close and the two chevrons ONLY. The reference already gates its
	 * tooltips on this exact query, so the idiom is his; what this block adds
	 * is that no other control gets one — no pause hint, no swipe hint.
	 *
	 * All three sit at the design's `data-tip-pos="right"`: close is at the
	 * window's top-left and the chevrons are right of the frame, so in both
	 * cases the label has room outward. The attribute is namespaced
	 * (`data-sbi-qs-tip`) rather than the reference's bare `data-tip`, which is
	 * a name a host theme or another plugin could plausibly already use on the
	 * page.
	 *
	 * `::after` on a flex container would become a flex item; `position:
	 * absolute` takes it out of flow, and `pointer-events: none` keeps a
	 * tooltip that overhangs a sibling from stealing its clicks.
	 */
	[data-sbi-qs-tip]::after {
		content: attr(data-sbi-qs-tip);
		position: absolute;
		top: 50%;
		left: calc(100% + 10px);
		transform: translateY(-50%) translateX(4px);
		padding: 6px 9px;
		border: 1px solid rgba(255, 255, 255, 0.08);
		border-radius: 6px;
		background: rgba(28, 28, 30, 0.96);
		color: #fff;
		font-size: 12px;
		font-weight: 500;
		line-height: 12px;
		white-space: nowrap;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
		z-index: 30;
		opacity: 0;
		pointer-events: none;
		transition: opacity 120ms ease, transform 120ms ease;
	}
	[data-sbi-qs-tip]:hover::after,
	[data-sbi-qs-tip]:focus-visible::after {
		opacity: 1;
		transform: translateY(-50%) translateX(0);
	}
}

/* ── Reduced motion (§3.2: motion REMOVED entirely, not shortened) ───────── *
 * Last block in the file so it wins over the capability block above regardless
 * of specificity, and `!important` on the animations for the same reason.
 *
 * ── .sbi-qs-progress-fill is DELIBERATELY ABSENT ────────────────────────────
 * Its 250ms linear transition is not decoration: it interpolates between the
 * 250ms state samples §6.1 requires, and removing it makes the bar step in
 * visible jumps rather than sit still. A progress bar that advances IS the
 * content. The one motion here nobody asked for — the rewind on a slide change
 * — is already suppressed by .sbi-qs-progress-fill-jump for exactly that write.
 */
@media (prefers-reduced-motion: reduce) {
	.sbi-qs-track {
		transition: none !important;
	}
	.sbi-qs-overlay,
	.sbi-qs-close,
	.sbi-qs-mute,
	.sbi-qs-mute-label,
	.sbi-qs-nav-prev,
	.sbi-qs-nav-next,
	.sbi-qs-view-on-ig,
	.sbi-qs-follow,
	.sbi-qs-author,
	.sbi-qs-act,
	.sbi-qs-spinner {
		transition: none;
	}
	/* ── The rail's drag-follow is NOT removed here, only its snap ────────────
	 * §3.2 is about motion the visitor did not ask for. A drag is direct
	 * manipulation they are performing themselves, so the rail keeps following
	 * the finger 1:1 — it just gets there with no transition, which is what
	 * `transition: none` produces for a transform written every frame anyway.
	 * The RELEASE snap is the animated case and it is the one that goes.
	 *
	 * setRailTravel() already refuses to animate under reduced motion, so this
	 * is the belt to that braces: the JS writes `transition-duration` inline
	 * (which beats any stylesheet rule), and this covers the case where a future
	 * caller forgets. TikTok's rail resolves to exactly the same behaviour. */
	.sbi-qs-railcol {
		transition: none;
	}
	/* The pause glyph's bloom and dissolve and the coach hand's swipe loop are
	 * both motion the visitor did not ask for. The glyph still APPEARS and
	 * still reports the paused state — only the animation goes, which is the
	 * §3.2 distinction between removing motion and removing information.
	 *
	 * .sbi-qs-spinner is DELIBERATELY NOT here. A stopped spinner is
	 * indistinguishable from a hung one, so removing its rotation would replace
	 * a small piece of essential state feedback with a misleading one. It is
	 * 36px, centred, and rotational rather than translational — the shape of
	 * animation reduced-motion guidance consistently exempts. */
	.sbi-qs-flash svg,
	.sbi-qs-coach-hand {
		animation: none !important;
	}
	.sbi-qs-overlay[data-paused="false"] .sbi-qs-flash-on {
		display: none;
	}
	[data-sbi-qs-tip]::after {
		transition: none;
	}
}
/*! elementor-icons - v5.54.0 - 27-07-2026 */
@font-face{font-family:eicons;src:url(//sender.design/wp-content/plugins/elementor/assets/lib/eicons/fonts/eicons.eot?5.54.0);src:url(//sender.design/wp-content/plugins/elementor/assets/lib/eicons/fonts/eicons.eot?5.54.0#iefix) format("embedded-opentype"),url(//sender.design/wp-content/plugins/elementor/assets/lib/eicons/fonts/eicons.woff2?5.54.0) format("woff2"),url(//sender.design/wp-content/plugins/elementor/assets/lib/eicons/fonts/eicons.woff?5.54.0) format("woff"),url(//sender.design/wp-content/plugins/elementor/assets/lib/eicons/fonts/eicons.ttf?5.54.0) format("truetype"),url(//sender.design/wp-content/plugins/elementor/assets/lib/eicons/fonts/eicons.svg?5.54.0#eicon) format("svg");font-weight:400;font-style:normal}[class*=" eicon-"],[class^=eicon]{display:inline-block;font-family:eicons;font-size:inherit;font-weight:400;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.eicon-animation-spin{animation:a 2s infinite linear}.eicon-editor-link:before{content:"\e800"}.eicon-editor-unlink:before{content:"\e801"}.eicon-editor-external-link:before{content:"\e802"}.eicon-editor-close:before{content:"\e803"}.eicon-editor-list-ol:before{content:"\e804"}.eicon-editor-list-ul:before{content:"\e805"}.eicon-editor-bold:before{content:"\e806"}.eicon-editor-italic:before{content:"\e807"}.eicon-editor-underline:before{content:"\e808"}.eicon-editor-paragraph:before{content:"\e809"}.eicon-editor-h1:before{content:"\e80a"}.eicon-editor-h2:before{content:"\e80b"}.eicon-editor-h3:before{content:"\e80c"}.eicon-editor-h4:before{content:"\e80d"}.eicon-editor-h5:before{content:"\e80e"}.eicon-editor-h6:before{content:"\e80f"}.eicon-editor-quote:before{content:"\e810"}.eicon-editor-code:before{content:"\e811"}.eicon-elementor:before{content:"\e812"}.eicon-elementor-circle:before{content:"\e813"}.eicon-pojome:before{content:"\e814"}.eicon-plus:before{content:"\e815"}.eicon-menu-bar:before{content:"\e816"}.eicon-apps:before{content:"\e817"}.eicon-accordion:before{content:"\e818"}.eicon-alert:before{content:"\e819"}.eicon-animation-text:before{content:"\e81a"}.eicon-animation:before{content:"\e81b"}.eicon-banner:before{content:"\e81c"}.eicon-blockquote:before{content:"\e81d"}.eicon-button:before{content:"\e81e"}.eicon-call-to-action:before{content:"\e81f"}.eicon-captcha:before{content:"\e820"}.eicon-carousel:before{content:"\e821"}.eicon-checkbox:before{content:"\e822"}.eicon-columns:before{content:"\e823"}.eicon-countdown:before{content:"\e824"}.eicon-counter:before{content:"\e825"}.eicon-date:before{content:"\e826"}.eicon-divider-shape:before{content:"\e827"}.eicon-divider:before{content:"\e828"}.eicon-download-button:before{content:"\e829"}.eicon-dual-button:before{content:"\e82a"}.eicon-email-field:before{content:"\e82b"}.eicon-facebook-comments:before{content:"\e82c"}.eicon-facebook-like-box:before{content:"\e82d"}.eicon-form-horizontal:before{content:"\e82e"}.eicon-form-vertical:before{content:"\e82f"}.eicon-gallery-grid:before{content:"\e830"}.eicon-gallery-group:before{content:"\e831"}.eicon-gallery-justified:before{content:"\e832"}.eicon-gallery-masonry:before{content:"\e833"}.eicon-icon-box:before{content:"\e834"}.eicon-image-before-after:before{content:"\e835"}.eicon-image-box:before{content:"\e836"}.eicon-image-hotspot:before{content:"\e837"}.eicon-image-rollover:before{content:"\e838"}.eicon-info-box:before{content:"\e839"}.eicon-inner-section:before{content:"\e83a"}.eicon-mailchimp:before{content:"\e83b"}.eicon-menu-card:before{content:"\e83c"}.eicon-navigation-horizontal:before{content:"\e83d"}.eicon-nav-menu:before{content:"\e83e"}.eicon-navigation-vertical:before{content:"\e83f"}.eicon-number-field:before{content:"\e840"}.eicon-parallax:before{content:"\e841"}.eicon-php7:before{content:"\e842"}.eicon-post-list:before{content:"\e843"}.eicon-post-slider:before{content:"\e844"}.eicon-post:before{content:"\e845"}.eicon-posts-carousel:before{content:"\e846"}.eicon-posts-grid:before{content:"\e847"}.eicon-posts-group:before{content:"\e848"}.eicon-posts-justified:before{content:"\e849"}.eicon-posts-masonry:before{content:"\e84a"}.eicon-posts-ticker:before{content:"\e84b"}.eicon-price-list:before{content:"\e84c"}.eicon-price-table:before{content:"\e84d"}.eicon-radio:before{content:"\e84e"}.eicon-rtl:before{content:"\e84f"}.eicon-scroll:before{content:"\e850"}.eicon-search:before{content:"\e851"}.eicon-select:before{content:"\e852"}.eicon-share:before{content:"\e853"}.eicon-sidebar:before{content:"\e854"}.eicon-skill-bar:before{content:"\e855"}.eicon-slider-3d:before{content:"\e856"}.eicon-slider-album:before{content:"\e857"}.eicon-slider-device:before{content:"\e858"}.eicon-slider-full-screen:before{content:"\e859"}.eicon-slider-push:before{content:"\e85a"}.eicon-slider-vertical:before{content:"\e85b"}.eicon-slider-video:before{content:"\e85c"}.eicon-slides:before{content:"\e85d"}.eicon-social-icons:before{content:"\e85e"}.eicon-spacer:before{content:"\e85f"}.eicon-table:before{content:"\e860"}.eicon-tabs:before{content:"\e861"}.eicon-tel-field:before{content:"\e862"}.eicon-text-area:before{content:"\e863"}.eicon-text-field:before{content:"\e864"}.eicon-thumbnails-down:before{content:"\e865"}.eicon-thumbnails-half:before{content:"\e866"}.eicon-thumbnails-right:before{content:"\e867"}.eicon-time-line:before{content:"\e868"}.eicon-toggle:before{content:"\e869"}.eicon-url:before{content:"\e86a"}.eicon-t-letter:before{content:"\e86b"}.eicon-wordpress:before{content:"\e86c"}.eicon-text:before{content:"\e86d"}.eicon-anchor:before{content:"\e86e"}.eicon-bullet-list:before{content:"\e86f"}.eicon-code:before{content:"\e870"}.eicon-favorite:before{content:"\e871"}.eicon-google-maps:before{content:"\e872"}.eicon-image:before{content:"\e873"}.eicon-photo-library:before{content:"\e874"}.eicon-woocommerce:before{content:"\e875"}.eicon-youtube:before{content:"\e876"}.eicon-flip-box:before{content:"\e877"}.eicon-settings:before{content:"\e878"}.eicon-headphones:before{content:"\e879"}.eicon-testimonial:before{content:"\e87a"}.eicon-counter-circle:before{content:"\e87b"}.eicon-person:before{content:"\e87c"}.eicon-chevron-right:before{content:"\e87d"}.eicon-chevron-left:before{content:"\e87e"}.eicon-close:before{content:"\e87f"}.eicon-file-download:before{content:"\e880"}.eicon-save:before{content:"\e881"}.eicon-zoom-in:before{content:"\e882"}.eicon-shortcode:before{content:"\e883"}.eicon-nerd:before{content:"\e884"}.eicon-device-desktop:before{content:"\e885"}.eicon-device-tablet:before{content:"\e886"}.eicon-device-mobile:before{content:"\e887"}.eicon-document-file:before{content:"\e888"}.eicon-folder-o:before{content:"\e889"}.eicon-hypster:before{content:"\e88a"}.eicon-h-align-left:before{content:"\e88b"}.eicon-h-align-right:before{content:"\e88c"}.eicon-h-align-center:before{content:"\e88d"}.eicon-h-align-stretch:before{content:"\e88e"}.eicon-v-align-top:before{content:"\e88f"}.eicon-v-align-bottom:before{content:"\e890"}.eicon-v-align-middle:before{content:"\e891"}.eicon-v-align-stretch:before{content:"\e892"}.eicon-pro-icon:before{content:"\e893"}.eicon-mail:before{content:"\e894"}.eicon-lock-user:before{content:"\e895"}.eicon-testimonial-carousel:before{content:"\e896"}.eicon-media-carousel:before{content:"\e897"}.eicon-section:before{content:"\e898"}.eicon-column:before{content:"\e899"}.eicon-edit:before{content:"\e89a"}.eicon-clone:before{content:"\e89b"}.eicon-trash:before{content:"\e89c"}.eicon-play:before{content:"\e89d"}.eicon-angle-right:before{content:"\e89e"}.eicon-angle-left:before{content:"\e89f"}.eicon-animated-headline:before{content:"\e8a0"}.eicon-menu-toggle:before{content:"\e8a1"}.eicon-fb-embed:before{content:"\e8a2"}.eicon-fb-feed:before{content:"\e8a3"}.eicon-twitter-embed:before{content:"\e8a4"}.eicon-twitter-feed:before{content:"\e8a5"}.eicon-sync:before{content:"\e8a6"}.eicon-import-export:before{content:"\e8a7"}.eicon-check-circle:before{content:"\e8a8"}.eicon-library-save:before{content:"\e8a9"}.eicon-library-download:before{content:"\e9dd"}.eicon-insert:before{content:"\e8ab"}.eicon-preview-medium:before{content:"\e8ac"}.eicon-sort-down:before{content:"\e8ad"}.eicon-sort-up:before{content:"\e8ae"}.eicon-heading:before{content:"\e8af"}.eicon-logo:before{content:"\e8b0"}.eicon-meta-data:before{content:"\e8b1"}.eicon-post-content:before{content:"\e8b2"}.eicon-post-excerpt:before{content:"\e8b3"}.eicon-post-navigation:before{content:"\e8b4"}.eicon-yoast:before{content:"\e8b5"}.eicon-nerd-chuckle:before{content:"\e8b6"}.eicon-nerd-wink:before{content:"\e8b7"}.eicon-comments:before{content:"\e8b8"}.eicon-download-circle-o:before{content:"\e8b9"}.eicon-library-upload:before{content:"\e8ba"}.eicon-save-o:before{content:"\e8bb"}.eicon-upload-circle-o:before{content:"\e8bc"}.eicon-ellipsis-h:before{content:"\e8bd"}.eicon-ellipsis-v:before{content:"\e8be"}.eicon-arrow-left:before{content:"\e8bf"}.eicon-arrow-right:before{content:"\e8c0"}.eicon-arrow-up:before{content:"\e8c1"}.eicon-arrow-down:before{content:"\e8c2"}.eicon-play-o:before{content:"\e8c3"}.eicon-archive-posts:before{content:"\e8c4"}.eicon-archive-title:before{content:"\e8c5"}.eicon-featured-image:before{content:"\e8c6"}.eicon-post-info:before{content:"\e8c7"}.eicon-post-title:before{content:"\e8c8"}.eicon-site-logo:before{content:"\e8c9"}.eicon-site-search:before{content:"\e8ca"}.eicon-site-title:before{content:"\e8cb"}.eicon-plus-square:before{content:"\e8cc"}.eicon-minus-square:before{content:"\e8cd"}.eicon-cloud-check:before{content:"\e8ce"}.eicon-drag-n-drop:before{content:"\e8cf"}.eicon-welcome:before{content:"\e8d0"}.eicon-handle:before{content:"\e8d1"}.eicon-cart:before{content:"\e8d2"}.eicon-product-add-to-cart:before{content:"\e8d3"}.eicon-product-breadcrumbs:before{content:"\e8d4"}.eicon-product-categories:before{content:"\e8d5"}.eicon-product-description:before{content:"\e8d6"}.eicon-product-images:before{content:"\e8d7"}.eicon-product-info:before{content:"\e8d8"}.eicon-product-meta:before{content:"\e8d9"}.eicon-product-pages:before{content:"\e8da"}.eicon-product-price:before{content:"\e8db"}.eicon-product-rating:before{content:"\e8dc"}.eicon-product-related:before{content:"\e8dd"}.eicon-product-stock:before{content:"\e8de"}.eicon-product-tabs:before{content:"\e8df"}.eicon-product-title:before{content:"\e8e0"}.eicon-product-upsell:before{content:"\e8e1"}.eicon-products:before{content:"\e8e2"}.eicon-bag-light:before{content:"\e8e3"}.eicon-bag-medium:before{content:"\e8e4"}.eicon-bag-solid:before{content:"\e8e5"}.eicon-basket-light:before{content:"\e8e6"}.eicon-basket-medium:before{content:"\e8e7"}.eicon-basket-solid:before{content:"\e8e8"}.eicon-cart-light:before{content:"\e8e9"}.eicon-cart-medium:before{content:"\e8ea"}.eicon-cart-solid:before{content:"\e8eb"}.eicon-exchange:before{content:"\e8ec"}.eicon-preview-thin:before{content:"\e8ed"}.eicon-device-laptop:before{content:"\e8ee"}.eicon-collapse:before{content:"\e8ef"}.eicon-expand:before{content:"\e8f0"}.eicon-navigator:before{content:"\e8f1"}.eicon-plug:before{content:"\e8f2"}.eicon-dashboard:before{content:"\e8f3"}.eicon-typography:before{content:"\e8f4"}.eicon-info-circle-o:before{content:"\e8f5"}.eicon-integration:before{content:"\e8f6"}.eicon-plus-circle-o:before{content:"\e8f7"}.eicon-rating:before{content:"\e8f8"}.eicon-review:before{content:"\e8f9"}.eicon-tools:before{content:"\e8fa"}.eicon-loading:before{content:"\e8fb"}.eicon-sitemap:before{content:"\e8fc"}.eicon-click:before{content:"\e8fd"}.eicon-clock:before{content:"\e8fe"}.eicon-library-open:before{content:"\e8ff"}.eicon-warning:before{content:"\e900"}.eicon-flow:before{content:"\e901"}.eicon-cursor-move:before{content:"\e902"}.eicon-arrow-circle-left:before{content:"\e903"}.eicon-flash:before{content:"\e904"}.eicon-redo:before{content:"\e905"}.eicon-ban:before{content:"\e906"}.eicon-barcode:before{content:"\e907"}.eicon-calendar:before{content:"\e908"}.eicon-caret-left:before{content:"\e909"}.eicon-caret-right:before{content:"\e90a"}.eicon-caret-up:before{content:"\e90b"}.eicon-chain-broken:before{content:"\e90c"}.eicon-check-circle-o:before{content:"\e90d"}.eicon-check:before{content:"\e90e"}.eicon-chevron-double-left:before{content:"\e90f"}.eicon-chevron-double-right:before{content:"\e910"}.eicon-undo:before{content:"\e911"}.eicon-filter:before{content:"\e912"}.eicon-circle-o:before{content:"\e913"}.eicon-circle:before{content:"\e914"}.eicon-clock-o:before{content:"\e915"}.eicon-cog:before{content:"\e916"}.eicon-cogs:before{content:"\e917"}.eicon-commenting-o:before{content:"\e918"}.eicon-copy:before{content:"\e919"}.eicon-database:before{content:"\e91a"}.eicon-dot-circle-o:before{content:"\e91b"}.eicon-envelope:before{content:"\e91c"}.eicon-external-link-square:before{content:"\e91d"}.eicon-eyedropper:before{content:"\e91e"}.eicon-folder:before{content:"\e91f"}.eicon-font:before{content:"\e920"}.eicon-adjust:before{content:"\e921"}.eicon-lightbox:before{content:"\e922"}.eicon-heart-o:before{content:"\e923"}.eicon-history:before{content:"\e924"}.eicon-image-bold:before{content:"\e925"}.eicon-info-circle:before{content:"\e926"}.eicon-link:before{content:"\e927"}.eicon-long-arrow-left:before{content:"\e928"}.eicon-long-arrow-right:before{content:"\e929"}.eicon-caret-down:before{content:"\e92a"}.eicon-paint-brush:before{content:"\e92b"}.eicon-pencil:before{content:"\e92c"}.eicon-plus-circle:before{content:"\e92d"}.eicon-zoom-in-bold:before{content:"\e92e"}.eicon-sort-amount-desc:before{content:"\e92f"}.eicon-sign-out:before{content:"\e930"}.eicon-spinner:before{content:"\e931"}.eicon-square:before{content:"\e932"}.eicon-star-o:before{content:"\e933"}.eicon-star:before{content:"\e934"}.eicon-text-align-justify:before{content:"\e935"}.eicon-text-align-center:before{content:"\e936"}.eicon-tags:before{content:"\e937"}.eicon-text-align-left:before{content:"\e938"}.eicon-text-align-right:before{content:"\e939"}.eicon-close-circle:before{content:"\e93a"}.eicon-trash-o:before{content:"\e93b"}.eicon-font-awesome:before{content:"\e93c"}.eicon-user-circle-o:before{content:"\e93d"}.eicon-video-camera:before{content:"\e93e"}.eicon-heart:before{content:"\e93f"}.eicon-wrench:before{content:"\e940"}.eicon-help:before{content:"\e941"}.eicon-help-o:before{content:"\e942"}.eicon-zoom-out-bold:before{content:"\e943"}.eicon-plus-square-o:before{content:"\e944"}.eicon-minus-square-o:before{content:"\e945"}.eicon-minus-circle:before{content:"\e946"}.eicon-minus-circle-o:before{content:"\e947"}.eicon-code-bold:before{content:"\e948"}.eicon-cloud-upload:before{content:"\e949"}.eicon-search-bold:before{content:"\e94a"}.eicon-map-pin:before{content:"\e94b"}.eicon-meetup:before{content:"\e94c"}.eicon-slideshow:before{content:"\e94d"}.eicon-t-letter-bold:before{content:"\e94e"}.eicon-preferences:before{content:"\e94f"}.eicon-table-of-contents:before{content:"\e950"}.eicon-tv:before{content:"\e951"}.eicon-upload:before{content:"\e952"}.eicon-instagram-comments:before{content:"\e953"}.eicon-instagram-nested-gallery:before{content:"\e954"}.eicon-instagram-post:before{content:"\e955"}.eicon-instagram-video:before{content:"\e956"}.eicon-instagram-gallery:before{content:"\e957"}.eicon-instagram-likes:before{content:"\e958"}.eicon-facebook:before{content:"\e959"}.eicon-twitter:before{content:"\e95a"}.eicon-pinterest:before{content:"\e95b"}.eicon-frame-expand:before{content:"\e95c"}.eicon-frame-minimize:before{content:"\e95d"}.eicon-archive:before{content:"\e95e"}.eicon-colors-typography:before{content:"\e95f"}.eicon-custom:before{content:"\e960"}.eicon-footer:before{content:"\e961"}.eicon-header:before{content:"\e962"}.eicon-layout-settings:before{content:"\e963"}.eicon-lightbox-expand:before{content:"\e964"}.eicon-error-404:before{content:"\e965"}.eicon-theme-style:before{content:"\e966"}.eicon-search-results:before{content:"\e967"}.eicon-single-post:before{content:"\e968"}.eicon-site-identity:before{content:"\e969"}.eicon-theme-builder:before{content:"\e96a"}.eicon-download-bold:before{content:"\e96b"}.eicon-share-arrow:before{content:"\e96c"}.eicon-global-settings:before{content:"\e96d"}.eicon-user-preferences:before{content:"\e96e"}.eicon-lock:before{content:"\e96f"}.eicon-export-kit:before{content:"\e970"}.eicon-import-kit:before{content:"\e971"}.eicon-lottie:before{content:"\e972"}.eicon-products-archive:before{content:"\e973"}.eicon-single-product:before{content:"\e974"}.eicon-disable-trash-o:before{content:"\e975"}.eicon-single-page:before{content:"\e976"}.eicon-wordpress-light:before{content:"\e977"}.eicon-cogs-check:before{content:"\e978"}.eicon-custom-css:before{content:"\e979"}.eicon-global-colors:before{content:"\e97a"}.eicon-globe:before{content:"\e97b"}.eicon-typography-1:before{content:"\e97c"}.eicon-background:before{content:"\e97d"}.eicon-device-responsive:before{content:"\e97e"}.eicon-device-wide:before{content:"\e97f"}.eicon-code-highlight:before{content:"\e980"}.eicon-video-playlist:before{content:"\e981"}.eicon-download-kit:before{content:"\e982"}.eicon-kit-details:before{content:"\e983"}.eicon-kit-parts:before{content:"\e984"}.eicon-kit-upload:before{content:"\e985"}.eicon-kit-plugins:before{content:"\e986"}.eicon-kit-upload-alt:before{content:"\e987"}.eicon-hotspot:before{content:"\e988"}.eicon-paypal-button:before{content:"\e989"}.eicon-shape:before{content:"\e98a"}.eicon-wordart:before{content:"\e98b"}.eicon-checkout:before{content:"\e98c"}.eicon-container:before{content:"\e98d"}.eicon-flip:before{content:"\e98e"}.eicon-info:before{content:"\e98f"}.eicon-my-account:before{content:"\e990"}.eicon-purchase-summary:before{content:"\e991"}.eicon-page-transition:before{content:"\e992"}.eicon-spotify:before{content:"\e993"}.eicon-stripe-button:before{content:"\e994"}.eicon-woo-settings:before{content:"\e995"}.eicon-woo-cart:before{content:"\e996"}.eicon-grow:before{content:"\e997"}.eicon-order-end:before{content:"\e998"}.eicon-nowrap:before{content:"\e999"}.eicon-order-start:before{content:"\e99a"}.eicon-progress-tracker:before{content:"\e99b"}.eicon-shrink:before{content:"\e99c"}.eicon-wrap:before{content:"\e99d"}.eicon-align-center-h:before{content:"\e99e"}.eicon-align-center-v:before{content:"\e99f"}.eicon-align-end-h:before{content:"\e9a0"}.eicon-align-end-v:before{content:"\e9a1"}.eicon-align-start-h:before{content:"\e9a2"}.eicon-align-start-v:before{content:"\e9a3"}.eicon-align-stretch-h:before{content:"\e9a4"}.eicon-align-stretch-v:before{content:"\e9a5"}.eicon-justify-center-h:before{content:"\e9a6"}.eicon-justify-center-v:before{content:"\e9a7"}.eicon-justify-end-h:before{content:"\e9a8"}.eicon-justify-end-v:before{content:"\e9a9"}.eicon-justify-space-around-h:before{content:"\e9aa"}.eicon-justify-space-around-v:before{content:"\e9ab"}.eicon-justify-space-between-h:before{content:"\e9ac"}.eicon-justify-space-between-v:before{content:"\e9ad"}.eicon-justify-space-evenly-h:before{content:"\e9ae"}.eicon-justify-space-evenly-v:before{content:"\e9af"}.eicon-justify-start-h:before{content:"\e9b0"}.eicon-justify-start-v:before{content:"\e9b1"}.eicon-woocommerce-cross-sells:before{content:"\e9b2"}.eicon-woocommerce-notices:before{content:"\e9b3"}.eicon-inner-container:before{content:"\e9b4"}.eicon-warning-full:before{content:"\e9b5"}.eicon-exit:before{content:"\e9b6"}.eicon-loop-builder:before{content:"\e9b7"}.eicon-notes:before{content:"\e9b8"}.eicon-read:before{content:"\e9b9"}.eicon-unread:before{content:"\e9ba"}.eicon-carousel-loop:before{content:"\e9bb"}.eicon-mega-menu:before{content:"\eb78"}.eicon-nested-carousel:before{content:"\e9bd"}.eicon-ai:before{content:"\e9be"}.eicon-taxonomy-filter:before{content:"\eb7d"}.eicon-container-grid:before{content:"\ef02"}.eicon-upgrade:before{content:"\e9c1"}.eicon-advanced:before{content:"\eb84"}.eicon-div-block:before{content:"\eb9b"}.eicon-notification:before{content:"\e9c3"}.eicon-light-mode:before{content:"\e9c4"}.eicon-dark-mode:before{content:"\e9c5"}.eicon-upgrade-crown:before{content:"\e9c6"}.eicon-off-canvas:before{content:"\e9c7"}.eicon-speakerphone:before{content:"\e9c9"}.eicon-ehp-cta:before{content:"\e9cb"}.eicon-ehp-forms:before{content:"\e9bc"}.eicon-ehp-hero:before{content:"\e9ca"}.eicon-ehp-zigzag:before{content:"\e9cc"}.eicon-e-button:before{content:"\e9ce"}.eicon-flexbox:before{content:"\e9d0"}.eicon-paragraph:before{content:"\e9d1"}.eicon-icon:before{content:"\e9d2"}.eicon-e-image:before{content:"\e9d3"}.eicon-video:before{content:"\e9d4"}.eicon-svg:before{content:"\e9d5"}.eicon-e-divider:before{content:"\e9d6"}.eicon-e-heading:before{content:"\e9d7"}.eicon-atomic:before{content:"\ebae"}.eicon-library-delete:before{content:"\e9d8"}.eicon-library-copy:before{content:"\e9d9"}.eicon-library-folder-empty:before{content:"\e9da"}.eicon-library-move:before{content:"\e9db"}.eicon-library-edit:before{content:"\e9dc"}.eicon-library-subscription-upgrade:before{content:"\e9de"}.eicon-library-folder-view:before{content:"\e9df"}.eicon-library-grid:before{content:"\e9e1"}.eicon-library-cloud-connect:before{content:"\e9e2"}.eicon-library-import:before{content:"\e9e3"}.eicon-library-list:before{content:"\e9e4"}.eicon-library-cloud-empty:before{content:"\e9e5"}.eicon-folder-plus:before{content:"\e8aa"}.eicon-library-folder:before{content:"\e9e6"}.eicon-accessibility:before{content:"\e9bf"}.eicon-lock-outline:before{content:"\e9e7"}.eicon-e-youtube:before{content:"\e9e8"}.eicon-contact:before{content:"\ebd2"}.eicon-layout:before{content:"\ebd8"}.eicon-components:before{content:"\ebd9"}.eicon-tab-content:before{content:"\ebda"}.eicon-tab-menu:before{content:"\ebdb"}.eicon-atomic-label:before{content:"\e9ee"}.eicon-atomic-form:before{content:"\e9ef"}.eicon-atomic-submit-button:before{content:"\e9f0"}.eicon-atomic-input:before{content:"\e9f1"}.eicon-atomic-text-area:before{content:"\e9f2"}.eicon-atomic-select:before{content:"\e9f3"}.eicon-atomic-checkbox:before{content:"\e9f4"}.eicon-atomic-radiobutton:before{content:"\e9f5"}.eicon-atomic-file-upload:before{content:"\ebe9"}.eicon-atomic-time-picker:before{content:"\ebea"}.eicon-atomic-date-picker:before{content:"\ebeb"}.eicon-upgrade-crown-full:before{content:"\ef03"}.eicon-after:before{content:"\ebfa"}.eicon-pagination-item:before{content:"\ebfb"}.eicon-before:before{content:"\ebfc"}.eicon-pagination:before{content:"\ebfd"}.eicon-loop-item:before{content:"\ec00"}.eicon-loop-widget:before{content:"\ec01"}.eicon-x-twitter:before{content:"\ef04"}.eicon-background-video:before{content:"\ea01"}.eicon-eye:before{content:"\e8ac"}.eicon-elementor-square:before{content:"\e813"}:root{--direction-multiplier:1}body.rtl,html[dir=rtl]{--direction-multiplier:-1}.elementor-hidden{display:none}.elementor-visibility-hidden{visibility:hidden}.elementor-screen-only,.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;top:-10000em;width:1px;clip:rect(0,0,0,0);border:0}.elementor-clearfix:after{clear:both;content:"";display:block;height:0;width:0}.e-logo-wrapper{display:inline-block;line-height:1}.e-logo-wrapper i{color:var(--e-a-color-circle-logo);font-size:2.5em}.elementor *,.elementor :after,.elementor :before{box-sizing:border-box}.elementor a{box-shadow:none;text-decoration:none}.elementor hr{background-color:transparent;margin:0}.elementor img{border:none;border-radius:0;box-shadow:none;height:auto;max-width:100%}.elementor .elementor-widget:not(.elementor-widget-text-editor):not(.elementor-widget-theme-post-content) figure{margin:0}.elementor embed,.elementor iframe,.elementor object,.elementor video{border:none;line-height:1;margin:0;max-width:100%;width:100%}.elementor .elementor-background,.elementor .elementor-background-holder,.elementor .elementor-background-video-container{direction:ltr;inset:0;overflow:hidden;position:absolute;z-index:0}.elementor .elementor-background-video-container{pointer-events:none;transition:opacity 1s}.elementor .elementor-background-video-container.elementor-loading{opacity:0}.elementor .elementor-background-video,.elementor .elementor-background-video-embed{max-width:none}.elementor .elementor-background-video,.elementor .elementor-background-video-embed,.elementor .elementor-background-video-hosted{inset-block-start:50%;inset-inline-start:50%;position:absolute;transform:translate(-50%,-50%)}.elementor .elementor-background-video-hosted{-o-object-fit:cover;object-fit:cover}.elementor .elementor-background-overlay{inset:0;position:absolute}.elementor .elementor-background-slideshow{inset:0;position:absolute;z-index:0}.elementor .elementor-background-slideshow__slide__image{background-position:50%;background-size:cover;height:100%;width:100%}.e-con-inner>.elementor-element.elementor-absolute,.e-con>.elementor-element.elementor-absolute,.elementor-widget-wrap>.elementor-element.elementor-absolute{position:absolute}.e-con-inner>.elementor-element.elementor-fixed,.e-con>.elementor-element.elementor-fixed,.elementor-widget-wrap>.elementor-element.elementor-fixed{position:fixed}.elementor-widget-wrap .elementor-element.elementor-widget__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget__width-initial{max-width:100%}@media (max-width:1024px){.elementor-widget-wrap .elementor-element.elementor-widget-tablet__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget-tablet__width-initial{max-width:100%}}@media (max-width:767px){.elementor-widget-wrap .elementor-element.elementor-widget-mobile__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget-mobile__width-initial{max-width:100%}}.elementor-element.elementor-absolute,.elementor-element.elementor-fixed{z-index:1}.elementor-element{--flex-direction:initial;--flex-wrap:initial;--justify-content:initial;--align-items:initial;--align-content:initial;--gap:initial;--flex-basis:initial;--flex-grow:initial;--flex-shrink:initial;--order:initial;--align-self:initial;align-self:var(--align-self);flex-basis:var(--flex-basis);flex-grow:var(--flex-grow);flex-shrink:var(--flex-shrink);order:var(--order)}.elementor-element:where(.e-con-full,.elementor-widget){align-content:var(--align-content);align-items:var(--align-items);flex-direction:var(--flex-direction);flex-wrap:var(--flex-wrap);gap:var(--row-gap) var(--column-gap);justify-content:var(--justify-content)}.elementor-invisible{visibility:hidden}.elementor-custom-embed-play{inset-block-start:50%;inset-inline-start:50%;position:absolute;transform:translate(calc(-50% * var(--direction-multiplier)),-50%)}.elementor-custom-embed-play i{color:#fff;font-size:100px;text-shadow:1px 0 6px rgba(0,0,0,.3)}.elementor-custom-embed-play svg{fill:#fff;filter:drop-shadow(1px 0 6px rgba(0,0,0,.3));height:100px;width:100px}.elementor-custom-embed-play i,.elementor-custom-embed-play svg{opacity:.8;transition:all .5s}.elementor-custom-embed-play.elementor-playing i{font-family:eicons}.elementor-custom-embed-play.elementor-playing i:before{content:"\e8fb"}.elementor-custom-embed-play.elementor-playing i,.elementor-custom-embed-play.elementor-playing svg{animation:eicon-spin 2s linear infinite}.elementor-tag{display:inline-flex}.elementor-ken-burns{transition-duration:10s;transition-property:transform;transition-timing-function:linear}.elementor-ken-burns--out{transform:scale(1.3)}.elementor-ken-burns--active{transition-duration:20s}.elementor-ken-burns--active.elementor-ken-burns--out{transform:scale(1)}.elementor-ken-burns--active.elementor-ken-burns--in{transform:scale(1.3)}.elementor-align-center{text-align:center}.elementor-align-right{text-align:right}.elementor-align-left{text-align:left}.elementor-align-center .elementor-button,.elementor-align-left .elementor-button,.elementor-align-right .elementor-button{width:auto}.elementor-align-justify .elementor-button{width:100%}@media (min-width:-1){.elementor-widescreen-align-center{text-align:center}.elementor-widescreen-align-right{text-align:right}.elementor-widescreen-align-left{text-align:left}.elementor-widescreen-align-center .elementor-button,.elementor-widescreen-align-left .elementor-button,.elementor-widescreen-align-right .elementor-button{width:auto}.elementor-widescreen-align-justify .elementor-button{width:100%}}@media (max-width:-1){.elementor-laptop-align-center{text-align:center}.elementor-laptop-align-right{text-align:right}.elementor-laptop-align-left{text-align:left}.elementor-laptop-align-center .elementor-button,.elementor-laptop-align-left .elementor-button,.elementor-laptop-align-right .elementor-button{width:auto}.elementor-laptop-align-justify .elementor-button{width:100%}.elementor-tablet_extra-align-center{text-align:center}.elementor-tablet_extra-align-right{text-align:right}.elementor-tablet_extra-align-left{text-align:left}.elementor-tablet_extra-align-center .elementor-button,.elementor-tablet_extra-align-left .elementor-button,.elementor-tablet_extra-align-right .elementor-button{width:auto}.elementor-tablet_extra-align-justify .elementor-button{width:100%}}@media (max-width:1024px){.elementor-tablet-align-center{text-align:center}.elementor-tablet-align-right{text-align:right}.elementor-tablet-align-left{text-align:left}.elementor-tablet-align-center .elementor-button,.elementor-tablet-align-left .elementor-button,.elementor-tablet-align-right .elementor-button{width:auto}.elementor-tablet-align-justify .elementor-button{width:100%}}@media (max-width:-1){.elementor-mobile_extra-align-center{text-align:center}.elementor-mobile_extra-align-right{text-align:right}.elementor-mobile_extra-align-left{text-align:left}.elementor-mobile_extra-align-center .elementor-button,.elementor-mobile_extra-align-left .elementor-button,.elementor-mobile_extra-align-right .elementor-button{width:auto}.elementor-mobile_extra-align-justify .elementor-button{width:100%}}@media (max-width:767px){.elementor-mobile-align-center{text-align:center}.elementor-mobile-align-right{text-align:right}.elementor-mobile-align-left{text-align:left}.elementor-mobile-align-center .elementor-button,.elementor-mobile-align-left .elementor-button,.elementor-mobile-align-right .elementor-button{width:auto}.elementor-mobile-align-justify .elementor-button{width:100%}}:root{--page-title-display:block}.elementor-page-title,h1.entry-title{display:var(--page-title-display)}@keyframes eicon-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.eicon-animation-spin{animation:eicon-spin 2s linear infinite}.elementor-section{position:relative}.elementor-section .elementor-container{display:flex;margin-inline:auto;position:relative}@media (max-width:1024px){.elementor-section .elementor-container{flex-wrap:wrap}}.elementor-section.elementor-section-boxed>.elementor-container{max-width:1140px}.elementor-section.elementor-section-stretched{position:relative;width:100%}.elementor-section.elementor-section-items-top>.elementor-container{align-items:flex-start}.elementor-section.elementor-section-items-middle>.elementor-container{align-items:center}.elementor-section.elementor-section-items-bottom>.elementor-container{align-items:flex-end}@media (min-width:768px){.elementor-section.elementor-section-height-full{height:100vh}.elementor-section.elementor-section-height-full>.elementor-container{height:100%}}.elementor-bc-flex-widget .elementor-section-content-top>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:flex-start}.elementor-bc-flex-widget .elementor-section-content-middle>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:center}.elementor-bc-flex-widget .elementor-section-content-bottom>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:flex-end}.elementor-widget-wrap{align-content:flex-start;flex-wrap:wrap;position:relative;width:100%}.elementor:not(.elementor-bc-flex-widget) .elementor-widget-wrap{display:flex}.elementor-widget-wrap>.elementor-element{width:100%}.elementor-widget-wrap.e-swiper-container{width:calc(100% - (var(--e-column-margin-left, 0px) + var(--e-column-margin-right, 0px)))}.elementor-widget{position:relative}.elementor-widget:not(:last-child){margin-block-end:var(--kit-widget-spacing,20px)}.elementor-widget:not(:last-child).elementor-absolute,.elementor-widget:not(:last-child).elementor-widget__width-auto,.elementor-widget:not(:last-child).elementor-widget__width-initial{margin-block-end:0}.elementor-column{display:flex;min-height:1px;position:relative}.elementor-column-gap-narrow>.elementor-column>.elementor-element-populated{padding:5px}.elementor-column-gap-default>.elementor-column>.elementor-element-populated{padding:10px}.elementor-column-gap-extended>.elementor-column>.elementor-element-populated{padding:15px}.elementor-column-gap-wide>.elementor-column>.elementor-element-populated{padding:20px}.elementor-column-gap-wider>.elementor-column>.elementor-element-populated{padding:30px}.elementor-inner-section .elementor-column-gap-no .elementor-element-populated{padding:0}@media (min-width:768px){.elementor-column.elementor-col-10,.elementor-column[data-col="10"]{width:10%}.elementor-column.elementor-col-11,.elementor-column[data-col="11"]{width:11.111%}.elementor-column.elementor-col-12,.elementor-column[data-col="12"]{width:12.5%}.elementor-column.elementor-col-14,.elementor-column[data-col="14"]{width:14.285%}.elementor-column.elementor-col-16,.elementor-column[data-col="16"]{width:16.666%}.elementor-column.elementor-col-20,.elementor-column[data-col="20"]{width:20%}.elementor-column.elementor-col-25,.elementor-column[data-col="25"]{width:25%}.elementor-column.elementor-col-30,.elementor-column[data-col="30"]{width:30%}.elementor-column.elementor-col-33,.elementor-column[data-col="33"]{width:33.333%}.elementor-column.elementor-col-40,.elementor-column[data-col="40"]{width:40%}.elementor-column.elementor-col-50,.elementor-column[data-col="50"]{width:50%}.elementor-column.elementor-col-60,.elementor-column[data-col="60"]{width:60%}.elementor-column.elementor-col-66,.elementor-column[data-col="66"]{width:66.666%}.elementor-column.elementor-col-70,.elementor-column[data-col="70"]{width:70%}.elementor-column.elementor-col-75,.elementor-column[data-col="75"]{width:75%}.elementor-column.elementor-col-80,.elementor-column[data-col="80"]{width:80%}.elementor-column.elementor-col-83,.elementor-column[data-col="83"]{width:83.333%}.elementor-column.elementor-col-90,.elementor-column[data-col="90"]{width:90%}.elementor-column.elementor-col-100,.elementor-column[data-col="100"]{width:100%}}@media (max-width:479px){.elementor-column.elementor-xs-10{width:10%}.elementor-column.elementor-xs-11{width:11.111%}.elementor-column.elementor-xs-12{width:12.5%}.elementor-column.elementor-xs-14{width:14.285%}.elementor-column.elementor-xs-16{width:16.666%}.elementor-column.elementor-xs-20{width:20%}.elementor-column.elementor-xs-25{width:25%}.elementor-column.elementor-xs-30{width:30%}.elementor-column.elementor-xs-33{width:33.333%}.elementor-column.elementor-xs-40{width:40%}.elementor-column.elementor-xs-50{width:50%}.elementor-column.elementor-xs-60{width:60%}.elementor-column.elementor-xs-66{width:66.666%}.elementor-column.elementor-xs-70{width:70%}.elementor-column.elementor-xs-75{width:75%}.elementor-column.elementor-xs-80{width:80%}.elementor-column.elementor-xs-83{width:83.333%}.elementor-column.elementor-xs-90{width:90%}.elementor-column.elementor-xs-100{width:100%}}@media (max-width:767px){.elementor-column.elementor-sm-10{width:10%}.elementor-column.elementor-sm-11{width:11.111%}.elementor-column.elementor-sm-12{width:12.5%}.elementor-column.elementor-sm-14{width:14.285%}.elementor-column.elementor-sm-16{width:16.666%}.elementor-column.elementor-sm-20{width:20%}.elementor-column.elementor-sm-25{width:25%}.elementor-column.elementor-sm-30{width:30%}.elementor-column.elementor-sm-33{width:33.333%}.elementor-column.elementor-sm-40{width:40%}.elementor-column.elementor-sm-50{width:50%}.elementor-column.elementor-sm-60{width:60%}.elementor-column.elementor-sm-66{width:66.666%}.elementor-column.elementor-sm-70{width:70%}.elementor-column.elementor-sm-75{width:75%}.elementor-column.elementor-sm-80{width:80%}.elementor-column.elementor-sm-83{width:83.333%}.elementor-column.elementor-sm-90{width:90%}.elementor-column.elementor-sm-100{width:100%}}@media (min-width:768px) and (max-width:1024px){.elementor-column.elementor-md-10{width:10%}.elementor-column.elementor-md-11{width:11.111%}.elementor-column.elementor-md-12{width:12.5%}.elementor-column.elementor-md-14{width:14.285%}.elementor-column.elementor-md-16{width:16.666%}.elementor-column.elementor-md-20{width:20%}.elementor-column.elementor-md-25{width:25%}.elementor-column.elementor-md-30{width:30%}.elementor-column.elementor-md-33{width:33.333%}.elementor-column.elementor-md-40{width:40%}.elementor-column.elementor-md-50{width:50%}.elementor-column.elementor-md-60{width:60%}.elementor-column.elementor-md-66{width:66.666%}.elementor-column.elementor-md-70{width:70%}.elementor-column.elementor-md-75{width:75%}.elementor-column.elementor-md-80{width:80%}.elementor-column.elementor-md-83{width:83.333%}.elementor-column.elementor-md-90{width:90%}.elementor-column.elementor-md-100{width:100%}}@media (min-width:-1){.elementor-reverse-widescreen>.elementor-container>:first-child{order:10}.elementor-reverse-widescreen>.elementor-container>:nth-child(2){order:9}.elementor-reverse-widescreen>.elementor-container>:nth-child(3){order:8}.elementor-reverse-widescreen>.elementor-container>:nth-child(4){order:7}.elementor-reverse-widescreen>.elementor-container>:nth-child(5){order:6}.elementor-reverse-widescreen>.elementor-container>:nth-child(6){order:5}.elementor-reverse-widescreen>.elementor-container>:nth-child(7){order:4}.elementor-reverse-widescreen>.elementor-container>:nth-child(8){order:3}.elementor-reverse-widescreen>.elementor-container>:nth-child(9){order:2}.elementor-reverse-widescreen>.elementor-container>:nth-child(10){order:1}}@media (min-width:1025px) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child{order:10}.elementor-reverse-laptop>.elementor-container>:nth-child(2){order:9}.elementor-reverse-laptop>.elementor-container>:nth-child(3){order:8}.elementor-reverse-laptop>.elementor-container>:nth-child(4){order:7}.elementor-reverse-laptop>.elementor-container>:nth-child(5){order:6}.elementor-reverse-laptop>.elementor-container>:nth-child(6){order:5}.elementor-reverse-laptop>.elementor-container>:nth-child(7){order:4}.elementor-reverse-laptop>.elementor-container>:nth-child(8){order:3}.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:2}.elementor-reverse-laptop>.elementor-container>:nth-child(10){order:1}}@media (min-width:-1) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child{order:10}.elementor-reverse-laptop>.elementor-container>:nth-child(2){order:9}.elementor-reverse-laptop>.elementor-container>:nth-child(3){order:8}.elementor-reverse-laptop>.elementor-container>:nth-child(4){order:7}.elementor-reverse-laptop>.elementor-container>:nth-child(5){order:6}.elementor-reverse-laptop>.elementor-container>:nth-child(6){order:5}.elementor-reverse-laptop>.elementor-container>:nth-child(7){order:4}.elementor-reverse-laptop>.elementor-container>:nth-child(8){order:3}.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:2}.elementor-reverse-laptop>.elementor-container>:nth-child(10){order:1}}@media (min-width:1025px) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child,.elementor-reverse-laptop>.elementor-container>:nth-child(10),.elementor-reverse-laptop>.elementor-container>:nth-child(2),.elementor-reverse-laptop>.elementor-container>:nth-child(3),.elementor-reverse-laptop>.elementor-container>:nth-child(4),.elementor-reverse-laptop>.elementor-container>:nth-child(5),.elementor-reverse-laptop>.elementor-container>:nth-child(6),.elementor-reverse-laptop>.elementor-container>:nth-child(7),.elementor-reverse-laptop>.elementor-container>:nth-child(8),.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:0}.elementor-reverse-tablet_extra>.elementor-container>:first-child{order:10}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(10){order:1}}@media (min-width:768px) and (max-width:1024px){.elementor-reverse-tablet>.elementor-container>:first-child{order:10}.elementor-reverse-tablet>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet>.elementor-container>:nth-child(10){order:1}}@media (min-width:-1) and (max-width:1024px){.elementor-reverse-tablet>.elementor-container>:first-child{order:10}.elementor-reverse-tablet>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet>.elementor-container>:nth-child(10){order:1}}@media (min-width:768px) and (max-width:-1){.elementor-reverse-tablet>.elementor-container>:first-child,.elementor-reverse-tablet>.elementor-container>:nth-child(10),.elementor-reverse-tablet>.elementor-container>:nth-child(2),.elementor-reverse-tablet>.elementor-container>:nth-child(3),.elementor-reverse-tablet>.elementor-container>:nth-child(4),.elementor-reverse-tablet>.elementor-container>:nth-child(5),.elementor-reverse-tablet>.elementor-container>:nth-child(6),.elementor-reverse-tablet>.elementor-container>:nth-child(7),.elementor-reverse-tablet>.elementor-container>:nth-child(8),.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:0}.elementor-reverse-mobile_extra>.elementor-container>:first-child{order:10}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(2){order:9}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(3){order:8}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(4){order:7}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(5){order:6}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(6){order:5}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(7){order:4}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(8){order:3}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(9){order:2}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(10){order:1}}@media (max-width:767px){.elementor-reverse-mobile>.elementor-container>:first-child{order:10}.elementor-reverse-mobile>.elementor-container>:nth-child(2){order:9}.elementor-reverse-mobile>.elementor-container>:nth-child(3){order:8}.elementor-reverse-mobile>.elementor-container>:nth-child(4){order:7}.elementor-reverse-mobile>.elementor-container>:nth-child(5){order:6}.elementor-reverse-mobile>.elementor-container>:nth-child(6){order:5}.elementor-reverse-mobile>.elementor-container>:nth-child(7){order:4}.elementor-reverse-mobile>.elementor-container>:nth-child(8){order:3}.elementor-reverse-mobile>.elementor-container>:nth-child(9){order:2}.elementor-reverse-mobile>.elementor-container>:nth-child(10){order:1}.elementor-column{width:100%}}.elementor-grid{display:grid;grid-column-gap:var(--grid-column-gap);grid-row-gap:var(--grid-row-gap)}.elementor-grid .elementor-grid-item{min-width:0}.elementor-grid-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}@media (min-width:-1){.elementor-grid-widescreen-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-widescreen-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-widescreen-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-widescreen-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-widescreen-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-widescreen-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-widescreen-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-widescreen-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-widescreen-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-widescreen-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-widescreen-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-widescreen-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-widescreen-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-widescreen-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:-1){.elementor-grid-laptop-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-laptop-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-laptop-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-laptop-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-laptop-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-laptop-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-laptop-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-laptop-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-laptop-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-laptop-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-laptop-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-laptop-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-laptop-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-laptop-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}.elementor-grid-tablet_extra-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-tablet_extra-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-tablet_extra-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-tablet_extra-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-tablet_extra-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-tablet_extra-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-tablet_extra-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-tablet_extra-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-tablet_extra-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-tablet_extra-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-tablet_extra-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-tablet_extra-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-tablet_extra-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-tablet_extra-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-grid-tablet-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-tablet-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-tablet-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-tablet-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-tablet-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-tablet-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-tablet-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-tablet-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-tablet-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-tablet-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-tablet-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-tablet-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-tablet-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-tablet-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:-1){.elementor-grid-mobile_extra-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-mobile_extra-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-mobile_extra-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-mobile_extra-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-mobile_extra-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-mobile_extra-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-mobile_extra-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-mobile_extra-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-mobile_extra-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-mobile_extra-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-mobile_extra-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-mobile_extra-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-mobile_extra-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-mobile_extra-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:767px){.elementor-grid-mobile-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-mobile-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-mobile-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-mobile-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-mobile-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-mobile-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-mobile-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-mobile-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-mobile-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-mobile-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-mobile-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-mobile-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-mobile-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-mobile-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (min-width:1025px){#elementor-device-mode:after{content:"desktop"}}@media (min-width:-1){#elementor-device-mode:after{content:"widescreen"}}@media (max-width:-1){#elementor-device-mode:after{content:"laptop";content:"tablet_extra"}}@media (max-width:1024px){#elementor-device-mode:after{content:"tablet"}}@media (max-width:-1){#elementor-device-mode:after{content:"mobile_extra"}}@media (max-width:767px){#elementor-device-mode:after{content:"mobile"}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.e-con{--border-radius:0;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;--border-style:initial;--border-color:initial;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--content-width:min(100%,var(--container-max-width,1140px));--width:100%;--min-height:initial;--height:auto;--text-align:initial;--margin-top:0px;--margin-right:0px;--margin-bottom:0px;--margin-left:0px;--padding-top:var(--container-default-padding-top,10px);--padding-right:var(--container-default-padding-right,10px);--padding-bottom:var(--container-default-padding-bottom,10px);--padding-left:var(--container-default-padding-left,10px);--position:relative;--z-index:revert;--overflow:visible;--gap:var(--widgets-spacing,20px);--row-gap:var(--widgets-spacing-row,20px);--column-gap:var(--widgets-spacing-column,20px);--overlay-mix-blend-mode:initial;--overlay-opacity:1;--overlay-transition:0.3s;--e-con-grid-template-columns:repeat(3,1fr);--e-con-grid-template-rows:repeat(2,1fr);border-radius:var(--border-radius);height:var(--height);min-height:var(--min-height);min-width:0;overflow:var(--overflow);position:var(--position);width:var(--width);z-index:var(--z-index);--flex-wrap-mobile:wrap}.e-con:where(:not(.e-div-block-base)){transition:background var(--background-transition,.3s),border var(--border-transition,.3s),box-shadow var(--border-transition,.3s),transform var(--e-con-transform-transition-duration,.4s)}.e-con{--margin-block-start:var(--margin-top);--margin-block-end:var(--margin-bottom);--margin-inline-start:var(--margin-left);--margin-inline-end:var(--margin-right);--padding-inline-start:var(--padding-left);--padding-inline-end:var(--padding-right);--padding-block-start:var(--padding-top);--padding-block-end:var(--padding-bottom);--border-block-start-width:var(--border-top-width);--border-block-end-width:var(--border-bottom-width);--border-inline-start-width:var(--border-left-width);--border-inline-end-width:var(--border-right-width)}body.rtl .e-con{--padding-inline-start:var(--padding-right);--padding-inline-end:var(--padding-left);--margin-inline-start:var(--margin-right);--margin-inline-end:var(--margin-left);--border-inline-start-width:var(--border-right-width);--border-inline-end-width:var(--border-left-width)}.e-con{margin-block-end:var(--margin-block-end);margin-block-start:var(--margin-block-start);margin-inline-end:var(--margin-inline-end);margin-inline-start:var(--margin-inline-start);padding-inline-end:var(--padding-inline-end);padding-inline-start:var(--padding-inline-start)}.e-con.e-flex{--flex-direction:column;--flex-basis:auto;--flex-grow:0;--flex-shrink:1;flex:var(--flex-grow) var(--flex-shrink) var(--flex-basis)}.e-con-full,.e-con>.e-con-inner{padding-block-end:var(--padding-block-end);padding-block-start:var(--padding-block-start);text-align:var(--text-align)}.e-con-full.e-flex,.e-con.e-flex>.e-con-inner{flex-direction:var(--flex-direction)}.e-con,.e-con>.e-con-inner{display:var(--display)}.e-con.e-grid{--grid-justify-content:start;--grid-align-content:start;--grid-auto-flow:row}.e-con.e-grid,.e-con.e-grid>.e-con-inner{align-content:var(--grid-align-content);align-items:var(--align-items);grid-auto-flow:var(--grid-auto-flow);grid-template-columns:var(--e-con-grid-template-columns);grid-template-rows:var(--e-con-grid-template-rows);justify-content:var(--grid-justify-content);justify-items:var(--justify-items)}.e-con-boxed.e-flex{align-content:normal;align-items:normal;flex-direction:column;flex-wrap:nowrap;justify-content:normal}.e-con-boxed.e-grid{grid-template-columns:1fr;grid-template-rows:1fr;justify-items:legacy}.e-con-boxed{gap:initial;text-align:initial}.e-con.e-flex>.e-con-inner{align-content:var(--align-content);align-items:var(--align-items);align-self:auto;flex-basis:auto;flex-grow:1;flex-shrink:1;flex-wrap:var(--flex-wrap);justify-content:var(--justify-content)}.e-con.e-grid>.e-con-inner{align-items:var(--align-items);justify-items:var(--justify-items)}.e-con>.e-con-inner{gap:var(--row-gap) var(--column-gap);height:100%;margin:0 auto;max-width:var(--content-width);padding-inline-end:0;padding-inline-start:0;width:100%}:is(.elementor-section-wrap,[data-elementor-id])>.e-con{--margin-left:auto;--margin-right:auto;max-width:min(100%,var(--width))}:is([data-widget_type="e-component.default"],[data-widget_type="e-component.default"]>.elementor-section-wrap)>.e-con{--margin-right:0px;--margin-left:0px}.e-con .elementor-widget.elementor-widget{margin-block-end:0}.e-con:before,.e-con>.elementor-background-slideshow:before,.e-con>.elementor-motion-effects-container>.elementor-motion-effects-layer:before,:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before{border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);content:var(--background-overlay);display:block;height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));mix-blend-mode:var(--overlay-mix-blend-mode);opacity:var(--overlay-opacity);position:absolute;top:calc(0px - var(--border-top-width));transition:var(--overlay-transition,.3s);width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}.e-con:before{transition:background var(--overlay-transition,.3s),border-radius var(--border-transition,.3s),opacity var(--overlay-transition,.3s)}.e-con>.elementor-background-slideshow,:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container{border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));top:calc(0px - var(--border-top-width));width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}@media (max-width:767px){:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container.elementor-hidden-mobile{display:none}}:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before{z-index:1}:is(.e-con,.e-con>.e-con-inner)>.elementor-background-slideshow:before{z-index:2}.e-con .elementor-widget{min-width:0}.e-con .elementor-widget-empty,.e-con .elementor-widget-google_maps,.e-con .elementor-widget-video,.e-con .elementor-widget.e-widget-swiper{width:100%}.e-con>.e-con-inner>.elementor-widget>.elementor-widget-container,.e-con>.elementor-widget>.elementor-widget-container{height:100%}.e-con.e-con>.e-con-inner>.elementor-widget,.elementor.elementor .e-con>.elementor-widget{max-width:100%}.e-con .elementor-widget:not(:last-child){--kit-widget-spacing:0px}@media (max-width:767px){.e-con.e-flex{--width:100%;--flex-wrap:var(--flex-wrap-mobile)}.e-con.e-flex .elementor-widget-archive-posts{width:100%}}.elementor-form-fields-wrapper{display:flex;flex-wrap:wrap}.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group .elementor-field-subgroup,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>.elementor-select-wrapper,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>input,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>textarea{flex-basis:100%;max-width:100%}.elementor-form-fields-wrapper.elementor-labels-inline>.elementor-field-group .elementor-select-wrapper,.elementor-form-fields-wrapper.elementor-labels-inline>.elementor-field-group>input{flex-grow:1}.elementor-field-group{align-items:center;flex-wrap:wrap}.elementor-field-group.elementor-field-type-submit{align-items:flex-end}.elementor-field-group .elementor-field-textual{background-color:transparent;border:1px solid #69727d;color:#1f2124;flex-grow:1;max-width:100%;vertical-align:middle;width:100%}.elementor-field-group .elementor-field-textual:focus{box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);outline:0}.elementor-field-group .elementor-field-textual::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-field-group .elementor-field-textual::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-field-group .elementor-select-wrapper{display:flex;position:relative;width:100%}.elementor-field-group .elementor-select-wrapper select{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:inherit;flex-basis:100%;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;padding-inline-end:20px;text-transform:inherit}.elementor-field-group .elementor-select-wrapper:before{content:"\e92a";font-family:eicons;font-size:15px;inset-block-start:50%;inset-inline-end:10px;pointer-events:none;position:absolute;text-shadow:0 0 3px rgba(0,0,0,.3);transform:translateY(-50%)}.elementor-field-group.elementor-field-type-select-multiple .elementor-select-wrapper:before{content:""}.elementor-field-subgroup{display:flex;flex-wrap:wrap}.elementor-field-subgroup .elementor-field-option label{display:inline-block}.elementor-field-subgroup.elementor-subgroup-inline .elementor-field-option{padding-inline-end:10px}.elementor-field-subgroup:not(.elementor-subgroup-inline) .elementor-field-option{flex-basis:100%}.elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option label,.elementor-field-type-checkbox .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-checkbox .elementor-field-subgroup .elementor-field-option label,.elementor-field-type-radio .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-radio .elementor-field-subgroup .elementor-field-option label{display:inline}.elementor-field-label{cursor:pointer}.elementor-mark-required .elementor-field-label:after{color:red;content:"*";padding-inline-start:.2em}.elementor-field-textual{border-radius:3px;font-size:15px;line-height:1.4;min-height:40px;padding:5px 14px}.elementor-field-textual.elementor-size-xs{border-radius:2px;font-size:13px;min-height:33px;padding:4px 12px}.elementor-field-textual.elementor-size-md{border-radius:4px;font-size:16px;min-height:47px;padding:6px 16px}.elementor-field-textual.elementor-size-lg{border-radius:5px;font-size:18px;min-height:59px;padding:7px 20px}.elementor-field-textual.elementor-size-xl{border-radius:6px;font-size:20px;min-height:72px;padding:8px 24px}.elementor-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-button-align-center .e-form__buttons,.elementor-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-button-align-start .e-form__buttons,.elementor-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-button-align-end .e-form__buttons,.elementor-button-align-end .elementor-field-type-submit,[dir=rtl] .elementor-button-align-start .e-form__buttons,[dir=rtl] .elementor-button-align-start .elementor-field-type-submit{justify-content:flex-end}[dir=rtl] .elementor-button-align-end .e-form__buttons,[dir=rtl] .elementor-button-align-end .elementor-field-type-submit{justify-content:flex-start}.elementor-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-button-align-center .e-form__buttons__wrapper,.elementor-button-align-end .e-form__buttons__wrapper,.elementor-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-button-align-center .e-form__buttons__wrapper,.elementor-button-align-center .e-form__buttons__wrapper__button,.elementor-button-align-end .e-form__buttons__wrapper,.elementor-button-align-end .e-form__buttons__wrapper__button,.elementor-button-align-start .e-form__buttons__wrapper,.elementor-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}@media screen and (max-width:1024px){.elementor-tablet-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-tablet-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-tablet-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-tablet-button-align-center .e-form__buttons,.elementor-tablet-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-tablet-button-align-start .e-form__buttons,.elementor-tablet-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-tablet-button-align-end .e-form__buttons,.elementor-tablet-button-align-end .elementor-field-type-submit,[dir=rtl] .elementor-tablet-button-align-start .e-form__buttons,[dir=rtl] .elementor-tablet-button-align-start .elementor-field-type-submit{justify-content:flex-end}[dir=rtl] .elementor-tablet-button-align-end .e-form__buttons,[dir=rtl] .elementor-tablet-button-align-end .elementor-field-type-submit{justify-content:flex-start}.elementor-tablet-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-tablet-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-tablet-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-tablet-button-align-center .e-form__buttons__wrapper,.elementor-tablet-button-align-end .e-form__buttons__wrapper,.elementor-tablet-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-tablet-button-align-center .e-form__buttons__wrapper,.elementor-tablet-button-align-center .e-form__buttons__wrapper__button,.elementor-tablet-button-align-end .e-form__buttons__wrapper,.elementor-tablet-button-align-end .e-form__buttons__wrapper__button,.elementor-tablet-button-align-start .e-form__buttons__wrapper,.elementor-tablet-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}}@media screen and (max-width:767px){.elementor-mobile-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-mobile-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-mobile-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-mobile-button-align-center .e-form__buttons,.elementor-mobile-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-mobile-button-align-start .e-form__buttons,.elementor-mobile-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-mobile-button-align-end .e-form__buttons,.elementor-mobile-button-align-end .elementor-field-type-submit,[dir=rtl] .elementor-mobile-button-align-start .e-form__buttons,[dir=rtl] .elementor-mobile-button-align-start .elementor-field-type-submit{justify-content:flex-end}[dir=rtl] .elementor-mobile-button-align-end .e-form__buttons,[dir=rtl] .elementor-mobile-button-align-end .elementor-field-type-submit{justify-content:flex-start}.elementor-mobile-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-mobile-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-mobile-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-mobile-button-align-center .e-form__buttons__wrapper,.elementor-mobile-button-align-end .e-form__buttons__wrapper,.elementor-mobile-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-mobile-button-align-center .e-form__buttons__wrapper,.elementor-mobile-button-align-center .e-form__buttons__wrapper__button,.elementor-mobile-button-align-end .e-form__buttons__wrapper,.elementor-mobile-button-align-end .e-form__buttons__wrapper__button,.elementor-mobile-button-align-start .e-form__buttons__wrapper,.elementor-mobile-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}}.elementor-error .elementor-field{border-color:#d9534f}.elementor-error .help-inline{color:#d9534f;font-size:.9em}.elementor-message{font-size:1em;line-height:1;margin:10px 0}.elementor-message:before{content:"\e90e";display:inline-block;font-family:eicons;font-style:normal;font-weight:400;margin-inline-end:5px;vertical-align:middle}.elementor-message.elementor-message-danger{color:#d9534f}.elementor-message.elementor-message-danger:before{content:"\e87f"}.elementor-message.form-message-success{color:#5cb85c}.elementor-form .elementor-button{border:none;padding-block-end:0;padding-block-start:0}.elementor-form .elementor-button-content-wrapper,.elementor-form .elementor-button>span{display:flex;flex-direction:row;gap:5px;justify-content:center}.elementor-form .elementor-button.elementor-size-xs{min-height:33px}.elementor-form .elementor-button.elementor-size-sm{min-height:40px}.elementor-form .elementor-button.elementor-size-md{min-height:47px}.elementor-form .elementor-button.elementor-size-lg{min-height:59px}.elementor-form .elementor-button.elementor-size-xl{min-height:72px}.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)) .elementor-widget-container,.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)):not(:has(.elementor-widget-container)){transition:background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s)}.elementor-heading-title{line-height:1;margin:0;padding:0}.elementor-button{background-color:#69727d;border-radius:3px;color:#fff;display:inline-block;fill:#fff;font-size:15px;line-height:1;padding:12px 24px;text-align:center;transition:all .3s}.elementor-button:focus,.elementor-button:hover,.elementor-button:visited{color:#fff}.elementor-button-content-wrapper{display:flex;flex-direction:row;gap:5px;justify-content:center}.elementor-button-icon{align-items:center;display:flex}.elementor-button-icon svg{height:auto;width:1em}.elementor-button-icon .e-font-icon-svg{height:1em}.elementor-button-text{display:inline-block}.elementor-button.elementor-size-xs{border-radius:2px;font-size:13px;padding:10px 20px}.elementor-button.elementor-size-md{border-radius:4px;font-size:16px;padding:15px 30px}.elementor-button.elementor-size-lg{border-radius:5px;font-size:18px;padding:20px 40px}.elementor-button.elementor-size-xl{border-radius:6px;font-size:20px;padding:25px 50px}.elementor-button span{text-decoration:inherit}.elementor-element.elementor-button-info .elementor-button{background-color:#5bc0de}.elementor-element.elementor-button-success .elementor-button{background-color:#5cb85c}.elementor-element.elementor-button-warning .elementor-button{background-color:#f0ad4e}.elementor-element.elementor-button-danger .elementor-button{background-color:#d9534f}.elementor-widget-button .elementor-button .elementor-button-info{background-color:#5bc0de}.elementor-widget-button .elementor-button .elementor-button-success{background-color:#5cb85c}.elementor-widget-button .elementor-button .elementor-button-warning{background-color:#f0ad4e}.elementor-widget-button .elementor-button .elementor-button-danger{background-color:#d9534f}.elementor-view-stacked .elementor-icon{background-color:#69727d;color:#fff;fill:#fff;padding:.5em}.elementor-view-framed .elementor-icon{background-color:transparent;border:3px solid #69727d;color:#69727d;padding:.5em}.elementor-icon{color:#69727d;display:inline-block;font-size:50px;line-height:1;text-align:center;transition:all .3s}.elementor-icon:hover{color:#69727d}.elementor-icon i,.elementor-icon svg{display:block;height:1em;position:relative;width:1em}.elementor-icon i:before,.elementor-icon svg:before{left:50%;position:absolute;transform:translateX(-50%)}.elementor-icon i.fad{width:auto}.elementor-shape-square .elementor-icon{border-radius:0}.elementor-shape-rounded .elementor-icon{border-radius:10%}.elementor-shape-circle .elementor-icon{border-radius:50%}.e-transform .elementor-widget-container,.e-transform:not(:has(.elementor-widget-container)){transform:perspective(var(--e-transform-perspective,0)) rotate(var(--e-transform-rotateZ,0)) rotateX(var(--e-transform-rotateX,0)) rotateY(var(--e-transform-rotateY,0)) translate(var(--e-transform-translate,0)) translateX(var(--e-transform-translateX,0)) translateY(var(--e-transform-translateY,0)) scaleX(calc(var(--e-transform-flipX, 1) * var(--e-transform-scaleX, var(--e-transform-scale, 1)))) scaleY(calc(var(--e-transform-flipY, 1) * var(--e-transform-scaleY, var(--e-transform-scale, 1)))) skewX(var(--e-transform-skewX,0)) skewY(var(--e-transform-skewY,0));transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.e-con.e-transform{transform:perspective(var(--e-con-transform-perspective,0)) rotate(var(--e-con-transform-rotateZ,0)) rotateX(var(--e-con-transform-rotateX,0)) rotateY(var(--e-con-transform-rotateY,0)) translate(var(--e-con-transform-translate,0)) translateX(var(--e-con-transform-translateX,0)) translateY(var(--e-con-transform-translateY,0)) scaleX(calc(var(--e-con-transform-flipX, 1) * var(--e-con-transform-scaleX, var(--e-con-transform-scale, 1)))) scaleY(calc(var(--e-con-transform-flipY, 1) * var(--e-con-transform-scaleY, var(--e-con-transform-scale, 1)))) skewX(var(--e-con-transform-skewX,0)) skewY(var(--e-con-transform-skewY,0));transform-origin:var(--e-con-transform-origin-y) var(--e-con-transform-origin-x)}.animated{animation-duration:1.25s}.animated.animated-slow{animation-duration:2s}.animated.animated-fast{animation-duration:.75s}.animated.infinite{animation-iteration-count:infinite}.animated.reverse{animation-direction:reverse;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.animated{animation:none!important}html *{transition-delay:0s!important;transition-duration:0s!important}}@media (max-width:767px){.elementor .elementor-hidden-mobile,.elementor .elementor-hidden-phone{display:none}}@media (min-width:-1) and (max-width:-1){.elementor .elementor-hidden-mobile_extra{display:none}}@media (min-width:768px) and (max-width:1024px){.elementor .elementor-hidden-tablet{display:none}}@media (min-width:-1) and (max-width:-1){.elementor .elementor-hidden-laptop,.elementor .elementor-hidden-tablet_extra{display:none}}@media (min-width:1025px) and (max-width:99999px){.elementor .elementor-hidden-desktop{display:none}}@media (min-width:-1){.elementor .elementor-hidden-widescreen{display:none}}