/*
 * RTL overrides for simple WS theme.
 *
 * GENERATED — do not edit above the MANUAL section. Regenerate with:
 *   node dev/make-rtl.js
 *
 * The design stylesheets in assets/css/ are verbatim copies of the design
 * source and use physical properties (left/right). This file mirrors them for
 * right-to-left locales (Persian, Arabic, Hebrew, Urdu, ...). WordPress loads
 * it automatically through get_locale_stylesheet_uri() whenever is_rtl() is
 * true; inc/enqueue.php additionally registers it for the block editor canvas.
 *
 * Gradient angles and rotations are deliberately NOT mirrored — see the notes
 * in dev/make-rtl.js.
 */

/* ==========================================================================
   assets/css/styles.css
   ========================================================================== */
.announce a {
	margin-right: 8px;
	margin-left: 0;
}
.preview-bar .url {
	margin-right: 14px;
	margin-left: 0;
}
.preview-side {
	border-left: 1px solid var(--line);
	border-right: 0;
}
.bubble-1 {
	right: -28px;
	left: auto;
}
.bubble-2 {
	left: -32px;
	right: auto;
}
.builder-head .pill {
	margin-right: auto;
	margin-left: 0;
}
.builder-pane-left {
	border-left: 1px solid var(--line);
	border-right: 0;
}
.field-card .premium-badge {
	right: -6px;
	left: auto;
}
.pf-field label .req {
	margin-right: 2px;
	margin-left: 0;
}
.pf-actions {
	left: 12px;
	right: auto;
}
.props-drawer {
	transform: translateX(110%);
}
.prop-group .req-star {
	margin-right: 1px;
	margin-left: 0;
}
.prop-toggle .sw::after {
	right: 2px;
	transition: right .15s ease;
	left: auto;
}
.prop-toggle input:checked + .sw::after {
	right: 18px;
	left: auto;
}
.prop-color-row .swatch-input::after {
	left: 8px;
	right: auto;
}
@media (max-width: 991px) {
	.builder-pane-left {
		border-left: 0;
		border-right: 0;
	}
}
.video-thumb-card {
	right: 50%;
	transform: translate(50%, -50%);
	left: auto;
}
.vt-cursor {
	left: 38px;
	right: auto;
}
@keyframes vt-cursor {
	50% {
		transform: translate(50px, -30px);
	}
}
.video-play {
	right: 50%;
	transform: translate(50%, -50%);
	left: auto;
}
.video-play svg {
	margin-right: 4px;
	margin-left: 0;
}
.video-thumb:hover .video-play {
	transform: translate(50%, -50%) scale(1.06);
}
.video-meta {
	right: 24px;
	left: auto;
}
.shot img {
	object-position: top right;
}
.shot .shot-tag {
	right: 14px;
	left: auto;
}
.shot .shot-zoom {
	left: 12px;
	right: auto;
}
.lightbox .lb-close {
	left: 26px;
	right: auto;
}
.lightbox .lb-cap {
	right: 50%;
	transform: translateX(50%);
	left: auto;
}
.lightbox .lb-nav.prev {
	right: 22px;
	left: auto;
}
.lightbox .lb-nav.next {
	left: 22px;
	right: auto;
}
.wsx-modal-x {
	left: 14px;
	right: auto;
}
.price-amount sup {
	margin-left: 2px;
	margin-right: 0;
}
.price-amount .per {
	margin-right: 4px;
	margin-left: 0;
}
.price-tag {
	left: 24px;
	right: auto;
}
table.compare th, table.compare td {
	text-align: right;
}
.tweaks-fab {
	left: 20px;
	right: auto;
}
.tweaks-panel {
	left: 20px;
	right: auto;
}
.dd-panel {
	right: 50%;
	transform: translateX(50%) translateY(8px);
	left: auto;
}
.nav-dd.open .dd-panel {
	transform: translateX(50%) translateY(0);
}
.mega-col + .mega-col {
	border-right: 1px solid var(--line-2);
	padding-right: 16px;
	border-left: 0;
	padding-left: 0;
}
.tpl-search svg {
	right: 12px;
	left: auto;
}
.tpl-search input {
	padding: 10px 34px 10px 12px;
}
@media (max-width: 991px) {
	.dd-panel {
		border-right: 2px solid var(--line);
		padding: 4px 10px 8px 0;
		border-left: 0;
	}
	.mega-col + .mega-col {
		border-right: 0;
		padding-right: 8px;
		border-left: 0;
		padding-left: 0;
	}
}

/* ==========================================================================
   assets/css/all-features.css
   ========================================================================== */
.af-field {
	padding: 7px 12px 7px 8px;
}

/* ==========================================================================
   assets/css/post.css
   ========================================================================== */
.post-byline .share {
	margin-right: auto;
	margin-left: 0;
}
.toc ul {
	border-right: 2px solid var(--line);
	border-left: 0;
}
.toc li a {
	padding: 7px 16px 7px 0;
	margin-right: -2px;
	border-right: 2px solid transparent;
	margin-left: 0;
	border-left: 0;
}
.toc li a.active {
	border-right-color: var(--brand-purple);
	border-left-color: transparent;
}
.wp-block-list, .article ul, .article ol {
	padding-right: 26px;
	padding-left: 0;
}
.article ul.check {
	padding-right: 0;
	padding-left: 0;
}
.article ol {
	padding-right: 26px;
	padding-left: 0;
}
.wp-block-verse {
	border-right: 3px solid var(--brand-pink);
	border-radius: 12px 0 0 12px;
	border-left: 0;
}
.wp-block-steps > li {
	padding: 0 52px 22px 0;
}
.wp-block-steps > li::before {
	right: 0;
	left: auto;
}
.wp-block-steps > li::after {
	right: 16px;
	left: auto;
}
.wp-block-quote {
	border-right: 4px solid var(--brand-purple);
	border-radius: 14px 0 0 14px;
	border-left: 0;
}
.wp-block-table thead th {
	text-align: right;
}
.wp-block-code .copy-code {
	left: 12px;
	right: auto;
}
.embed-facade .pbtn svg {
	margin-right: 3px;
	margin-left: 0;
}
.ai-accordion-trigger {
	text-align: right;
}
.ai-accordion-body-inner ul {
	padding-right: 22px;
	padding-left: 0;
}
.aside-offer::before {
	left: -40px;
	right: auto;
}
.read-progress {
	right: 0;
	left: auto;
}
.lightbox .lb-close {
	left: 26px;
	right: auto;
}
@media (max-width: 575px) {
	.post-byline .share {
		margin-right: 0;
		margin-left: 0;
	}
}
.plan-price {
	text-align: left;
}
.wp-block-screensteps > li {
	border-right: 2px solid var(--line);
	margin-right: 16px;
	border-left: 0;
	margin-left: 0;
}
.wp-block-screensteps > li:last-child {
	border-right-color: transparent;
	border-left-color: transparent;
}
.ss-head {
	margin-right: -17px;
	margin-left: 0;
}
.ss-shot {
	margin: 12px 32px 0 0;
}

/* ==========================================================================
   assets/css/category.css
   ========================================================================== */
.post-card .thumb .badge {
	right: 12px;
	left: auto;
}
.lt-link:hover .arr {
	transform: translateX(-2px);
}
.lt-toggle {
	text-align: right;
}
.lt-child.viewall svg {
	margin-right: auto;
	margin-left: 0;
}
.w-trust .stat-box {
	text-align: right;
}

/* ==========================================================================
   assets/css/search.css
   ========================================================================== */
.sr-search svg.s-ic {
	right: 18px;
	left: auto;
}
.sr-search input {
	padding: 0 50px 0 122px;
}
.sr-search .s-go {
	left: 7px;
	right: auto;
}
.sr-filter button {
	text-align: right;
}
.sr-item {
	transition: padding-right .15s ease;
}
.sr-item:hover {
	padding-right: 8px;
	padding-left: 0;
}
@media (max-width: 575px) {
	.sr-search input {
		padding-left: 16px;
		padding-right: 0;
	}
}

/* ==========================================================================
   assets/css/errors.css
   ========================================================================== */
.estate-search svg.s-ic {
	right: 18px;
	left: auto;
}
.estate-search input {
	padding: 0 48px 0 116px;
}
.estate-search .s-go {
	left: 7px;
	right: auto;
}
.estate-links {
	text-align: right;
}
@media (max-width: 575px) {
	.estate-search input {
		padding-left: 14px;
		padding-right: 0;
	}
}

/* ==========================================================================
   assets/css/pages.css
   ========================================================================== */
.billing-toggle .bt-save {
	margin-right: 4px;
	margin-left: 0;
}
.bt-switch::after {
	right: 3px;
	left: auto;
}
.bt-switch[aria-pressed="true"]::after {
	transform: translateX(-22px);
}
.pf-q {
	text-align: right;
	padding: 20px 0 20px 40px;
}
.pf-q::after {
	left: 6px;
	right: auto;
}
[data-theme="dark"] .auth-aside {
	border-left: 1px solid var(--line);
	border-right: 0;
}
.auth-remember input:checked::after {
	right: 5px;
	left: auto;
}
.blog-feature .bf-media .bf-glyph {
	left: -10px;
	right: auto;
}
.legal-layout .toc ul {
	border-right: 2px solid var(--line);
	border-left: 0;
}
.legal-layout .toc li a {
	padding: 7px 16px 7px 0;
	margin-right: -2px;
	border-right: 2px solid transparent;
	margin-left: 0;
	border-left: 0;
}
.legal-layout .toc li a.active {
	border-right-color: var(--brand-purple);
	border-left-color: transparent;
}
.legal-content ul {
	padding-right: 20px;
	padding-left: 0;
}
.form-row .f-num {
	text-align: left;
}
.ty-next {
	text-align: right;
}

/* ==========================================================================
   assets/css/wp-bridge.css
   ========================================================================== */
.b-meta .wp-block-post-date::before {
	margin-left: 8px;
	margin-right: 0;
}
.wp-block-separator.is-style-dots::before {
	padding-right: 8px;
	padding-left: 0;
}
ul.is-style-check, ul.wp-block-list.is-style-check {
	padding-right: 0;
	padding-left: 0;
}

/* ==========================================================================
   assets/css/about.css
   ========================================================================== */
.timeline {
	padding-right: 28px;
	padding-left: 0;
}
.timeline::before {
	right: 5px;
	left: auto;
}
.tl-item {
	padding: 0 28px 34px 0;
}
.tl-item::before {
	right: -28px;
	left: auto;
}
.founder .sig a.linkedin {
	margin-right: auto;
	margin-left: 0;
}
.product-card:hover h3 .arrow {
	transform: translateX(-3px);
}
@media (max-width: 991px) {
	.founder .sig a.linkedin {
		margin-right: 0;
		margin-left: 0;
	}
}

/* ==========================================================================
   assets/css/contact.css
   ========================================================================== */
.cf-group label .req {
	margin-right: 2px;
	margin-left: 0;
}
.cf-select {
	background-position: left 14px center;
	padding-left: 40px;
	padding-right: 0;
}
.cf-consent input:checked::after {
	right: 5px;
	left: auto;
}
.cs-receipt {
	text-align: right;
}
.cs-receipt .r-row .v {
	text-align: left;
}

/* ==========================================================================
   assets/css/checkout.css
   ========================================================================== */
.co-card .lede {
	margin: 0 36px 20px 0;
}
.plan-opt {
	text-align: right;
}
.plan-opt .ring {
	left: 14px;
	right: auto;
}
.plan-price sup {
	margin-left: 2px;
	margin-right: 0;
}
.plan-price .per {
	margin-right: 2px;
	margin-left: 0;
}
.plan-badge {
	right: 14px;
	left: auto;
}
.fld label .tip:hover::after {
	right: 50%;
	transform: translateX(50%);
	left: auto;
}
.fld input.valid {
	background-position: left 12px center;
	padding-left: 38px;
	padding-right: 0;
}
.promo-applied .x {
	margin-right: auto;
	margin-left: 0;
}
.renew-note {
	border-right: 3px solid var(--brand-purple);
	border-left: 0;
}
.summary-item .price {
	text-align: left;
}

/* ==========================================================================
   assets/css/payment-status.css
   ========================================================================== */
.confetti::before {
	left: -80px;
	right: auto;
}
.confetti::after {
	right: -80px;
	left: auto;
}
.order-strip .body {
	text-align: right;
}
.order-strip .amount {
	border-right: 1px solid var(--line);
	padding-right: 16px;
	border-left: 0;
	padding-left: 0;
}
.inbox-card {
	text-align: right;
}
.next-steps {
	text-align: right;
}
.reassure {
	border-right: 3px solid var(--success);
	text-align: right;
	border-left: 0;
}
.reason-card {
	text-align: right;
}
.reason-card ul {
	padding-right: 18px;
	padding-left: 0;
}
.reason-card li {
	padding-right: 22px;
	padding-left: 0;
}
.reason-card li::before {
	right: 0;
	left: auto;
}

/* ==========================================================================
   assets/css/widgets.css
   ========================================================================== */
.widget_categories li a::before {
	margin-left: 2px;
	margin-right: 0;
}
.widget_categories .count, .widget_archive .count {
	margin-right: auto;
	margin-left: 0;
}
.widget_pages .children, .widget_nav_menu .sub-menu {
	padding-right: 16px;
	padding-left: 0;
}
.widget_newsletter::before {
	left: -50px;
	right: auto;
}
.cat-posts {
	padding: 2px 34px 4px 0;
}
.post-item::before {
	right: -16px;
	left: auto;
}
.post-item::after {
	right: -16px;
	left: auto;
}
.review-full-link:hover .bi-arrow-right {
	transform: translateX(-3px);
}
.upgrade-banner::before {
	left: -40px;
	right: auto;
}
.dw-card::after {
	left: -50px;
	right: auto;
}
.dw-headline .pct sup {
	margin-right: 1px;
	margin-left: 0;
}
.dw-timer {
	margin-right: auto;
	margin-left: 0;
}
.dw-cta:hover .bi {
	transform: translateX(-3px);
}
.lt-link {
	text-align: right;
}
.lt-link:hover .arr {
	transform: translateX(-2px);
}
.lt-toggle {
	text-align: right;
}
.lt-child.viewall svg {
	margin-right: auto;
	margin-left: 0;
}
.w-trust .stat-box {
	text-align: right;
}

/* ==========================================================================
   assets/css/payefb-dashboard.css
   ========================================================================== */
.payefb-dashboard-page .payefb-nav-link:hover {
	transform: translateX(-2px);
}

/* ==========================================================================
   assets/css/editor.css
   ========================================================================== */
.editor-styles-wrapper.post-type-post ul:not([class]), .editor-styles-wrapper.post-type-post ol:not([class]) {
	padding-right: 24px;
	padding-left: 0;
}

/* ==========================================================================
   MANUAL — hand-written rules (source: dev/rtl-manual.css)

   Everything RTLCSS cannot derive from the LTR stylesheets: glyphs that have
   to be mirrored rather than moved, content that must stay left-to-right, and
   the handful of Bootstrap utilities the bundled LTR vendor build gets wrong.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Document direction
   WordPress already emits <html dir="rtl"> through language_attributes(), so
   this is only a safety net for contexts that render the body standalone
   (block editor canvas, Custom HTML block previews).
   -------------------------------------------------------------------------- */
body {
	direction: rtl;
}

/* --------------------------------------------------------------------------
   Bootstrap 5 (LTR vendor build)
   assets/vendor/bootstrap/bootstrap.min.css is the LTR build, so its
   direction-aware utilities compile to physical values. The grid, flex and
   spacing utilities this theme uses are direction-neutral; these are the only
   ones that need correcting.
   -------------------------------------------------------------------------- */
.navbar-brand {
	margin-left: 1rem;
	margin-right: 0;
}

.navbar-nav {
	padding-right: 0;
	padding-left: 0;
}

.text-start {
	text-align: right !important;
}

.text-end {
	text-align: left !important;
}

@media (min-width: 576px) {
	.text-sm-start { text-align: right !important; }
	.text-sm-end   { text-align: left !important; }
}

@media (min-width: 768px) {
	.text-md-start { text-align: right !important; }
	.text-md-end   { text-align: left !important; }
}

@media (min-width: 992px) {
	.text-lg-start { text-align: right !important; }
	.text-lg-end   { text-align: left !important; }
}

@media (min-width: 1200px) {
	.text-xl-start { text-align: right !important; }
	.text-xl-end   { text-align: left !important; }
}

@media (min-width: 1400px) {
	.text-xxl-start { text-align: right !important; }
	.text-xxl-end   { text-align: left !important; }
}

/* --------------------------------------------------------------------------
   Directional icons
   Arrows and chevrons point along the reading direction, so the glyph itself
   must be mirrored — moving it is not enough. Hover states have to repeat the
   mirror because `transform` is a single property; with the axis flipped a
   positive translateX moves the icon visually leftwards, i.e. forwards in RTL.

   Note: the breadcrumb separator (U+203A) is deliberately absent — it has the
   Unicode Bidi_Mirrored property, so the browser mirrors it on its own and a
   CSS flip would turn it back the wrong way.
   -------------------------------------------------------------------------- */
.product-card h3 .arrow,
.cat-card .more .arrow,
.lt-link .arr svg,
.review-full-link .bi-arrow-right,
.dw-cta .bi,
.btn-upgrade .bi-arrow-right-circle-fill {
	display: inline-block;
	transform: scaleX(-1);
}

.product-card:hover h3 .arrow {
	transform: scaleX(-1) translateX(3px);
}

.review-full-link:hover .bi-arrow-right {
	transform: scaleX(-1) translateX(3px);
}

.dw-cta:hover .bi {
	transform: scaleX(-1) translateX(3px);
}

/* --------------------------------------------------------------------------
   Content that stays left-to-right
   Source code, and the Stripe card-number iframe, are always LTR regardless of
   the surrounding UI language. Inline code/keys are only bidi-isolated so a
   Latin run cannot drag neighbouring Persian or Arabic punctuation out of place.

   Scoped to real code on purpose: a blanket `pre` rule also catches
   .wp-block-verse and .wp-block-preformatted, which carry authored prose and
   must follow the content's own direction — forcing them LTR scrambles Persian
   poetry. Those two are left to inherit the page direction, as core intends.
   -------------------------------------------------------------------------- */
.wp-block-code,
.wp-block-code code,
.card-input-wrap .payefb-stripe-element {
	direction: ltr;
	text-align: left;
}

/*
 * Literal URLs. A slash is bidi-neutral, so in an RTL line the segments of
 * "127.0.0.1/ws/doc/how-to-..." get reordered and the host ends up last. URLs
 * always read left-to-right, but stay aligned to the reading edge.
 * Only elements that hold a real URL are listed — the search result's
 * `.sr-crumb` trail is a translatable label, not a path, so it is left alone.
 */
.sr-item .sr-url,
.preview-bar .url {
	direction: ltr;
	unicode-bidi: isolate;
	text-align: right;
}

code,
kbd,
samp,
var {
	unicode-bidi: isolate;
}

/* --------------------------------------------------------------------------
   Numeric stats, versions and prices

   Trailing signs and separators are bidi-neutral, so inside an RTL paragraph
   the algorithm moves them to the wrong end: "1,000+" renders as "+1,000",
   "5.0 / 5" as "5 / 5.0", "WP 5.0+" as "+WP 5.0" and "3-day" as "day-3". Plain
   `unicode-bidi: isolate` does not help — it isolates the element from its
   neighbours but neutrals inside it still resolve against the RTL context.

   `direction: ltr` alone would fix the numbers but reverse any translated
   Persian or Arabic wording in the same element ("۳ روزه" -> "روزه ۳"), so the
   pair below is what is actually needed: `plaintext` takes the direction from
   the element's first strong character and only falls back to `direction: ltr`
   when there is none — i.e. exactly when the content is purely numeric.
   Verified in headless Chrome against both numeric and Persian values.
   -------------------------------------------------------------------------- */
.hero-meta strong,
.trust-item strong,
.about-stat .n,
.auth-aside .a-foot,
.price-amount,
.plan-price,
.summary-item .price,
.summary-list .s-row strong,
.summary-list .s-row .amount,
.order-strip .amount,
.dw-headline .pct,
.w-trust .stat-box .v,
.sr-count strong,
time {
	direction: ltr;
	unicode-bidi: plaintext;
}

/*
 * `direction: ltr` above also re-resolves `text-align: start` and the flex main
 * axis to the left. That only matters for the members of the list whose
 * alignment was inherited rather than declared — the rest are inline, or flex
 * children whose position comes from the parent. Give those the reading edge
 * back: text-align for the block one, justify-content for the flex one.
 */
.price-amount {
	text-align: right;
}

.about-stat .n {
	justify-content: flex-end;
}
