/* =============================================================================
   RTL overrides — GENERATED, DO NOT EDIT BY HAND
   =============================================================================
   Produced from main.css by build-rtl.php. Every direction-aware declaration
   in main.css is mirrored here and scoped to [dir="rtl"], which also gives it
   the higher specificity it needs to win.

   After editing main.css, regenerate:  php build-rtl.php
   Hand-written exceptions belong in rtl-manual.css (appended below).
   ========================================================================== */

[dir="rtl"] .cn-woo-content .woocommerce-message {
  border-right: 4px solid #137333;
  border-left: 0;
}
[dir="rtl"] .cn-woo-content .woocommerce-info {
  border-right: 4px solid #1a73e8;
  border-left: 0;
}
[dir="rtl"] .cn-woo-content .woocommerce-error {
  border-right: 4px solid #d63638;
  border-left: 0;
}
[dir="rtl"] .woocommerce-checkout .form-row .required {
  margin-right: 2px;
  margin-left: 0;
}
[dir="rtl"] .woocommerce-checkout .form-row select {
  background-position: left 12px center;
  padding-left: 36px;
  padding-right: 0;
}
[dir="rtl"] .woocommerce-checkout .form-row.form-row-first {
  margin-left: 16px;
  margin-right: 0;
}
[dir="rtl"] .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table .product-total {
  text-align: left;
}
[dir="rtl"] .woocommerce-checkout .cn-qty-num {
  border-right: 1.5px solid #dcdcde;
  border-left: 1.5px solid #dcdcde;
}
[dir="rtl"] .woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error {
  border-right: 4px solid #d63638;
  border-left: 0;
}
[dir="rtl"] .cn-thankyou-grid {
  text-align: right;
}
[dir="rtl"] .cn-lmfwc-box table th {
  padding: 0 0 10px 8px;
  text-align: right;
}
[dir="rtl"] .cn-lmfwc-box table td {
  padding: 10px 0 10px 8px;
}
[dir="rtl"] .cn-license-box {
  text-align: right;
}
[dir="rtl"] .cn-order-details-table th {
  padding-left: 0;
}
[dir="rtl"] .cn-order-items-table .cn-col-qty,
[dir="rtl"] .cn-order-items-table .cn-col-total {
  text-align: left;
}
[dir="rtl"] .cn-order-items-box table.lmfwc-license-keys th {
  text-align: right;
}
[dir="rtl"] .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table td {
  text-align: left;
}
[dir="rtl"] .woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table .product-name {
  text-align: right;
}
[dir="rtl"] .woocommerce-checkout .cn-qty {
  margin-right: 7px;
  margin-left: 0;
}
[dir="rtl"] .woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error {
  padding-right: 50px;
  padding-left: 0;
}
[dir="rtl"] .cn-order-items-table tfoot tr:first-child td,
[dir="rtl"] .cn-order-items-table tfoot tr td {
  text-align: left;
}
[dir="rtl"] .woocommerce-order-received .woocommerce table.shop_table tbody tr td:nth-child(1) {
  padding-right: 0;
}
[dir="rtl"] .woocommerce-order-received .woocommerce table.shop_table tbody tr td:nth-child(2) {
  padding-left: 0;
}
[dir="rtl"] .woocommerce-order-received .woocommerce table.shop_table tbody tr td:nth-child(2) .lmfwc-myaccount-license-key {
  text-align: left;
}
[dir="rtl"] .woocommerce-order-received .cn-license-box.cn-order-meta .cn-order-details-table td {
  text-align: left;
}
[dir="rtl"] .cn-account-content .form-row.form-row-first {
  margin-left: 16px;
  margin-right: 0;
}
[dir="rtl"] .cn-account-content .woocommerce-orders-table th,
[dir="rtl"] .cn-account-content table.my_account_orders th {
  text-align: right;
}
[dir="rtl"] .cn-account-content .woocommerce-orders-table td,
[dir="rtl"] .cn-account-content table.my_account_orders td {
  text-align: right;
}
[dir="rtl"] .cn-account-content .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions,
[dir="rtl"] .cn-account-content table.my_account_orders .woocommerce-orders-table__cell-order-actions,
[dir="rtl"] .cn-account-content .woocommerce-orders-table .order-actions,
[dir="rtl"] .cn-account-content table.my_account_orders .order-actions {
  text-align: left;
}
[dir="rtl"] .cn-account-content .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions a,
[dir="rtl"] .cn-account-content table.my_account_orders .woocommerce-orders-table__cell-order-actions a,
[dir="rtl"] .cn-account-content .woocommerce-orders-table .order-actions a,
[dir="rtl"] .cn-account-content table.my_account_orders .order-actions a,
[dir="rtl"] .cn-account-content .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button,
[dir="rtl"] .cn-account-content table.my_account_orders .woocommerce-orders-table__cell-order-actions .button,
[dir="rtl"] .cn-account-content .woocommerce-orders-table .order-actions .button,
[dir="rtl"] .cn-account-content table.my_account_orders .order-actions .button {
  margin-right: 8px;
  margin-left: 0;
}
[dir="rtl"] .cn-reset-error {
  border-right: 4px solid #d63638;
  border-left: 0;
}
[dir="rtl"] .lost_reset_password .woocommerce-form-row label .required,
[dir="rtl"] .lost_reset_password .form-row label .required {
  margin-right: 2px;
  margin-left: 0;
}
[dir="rtl"] .lost_reset_password .password-input .input-text {
  padding: 12px 16px 12px 44px;
}
[dir="rtl"] .lost_reset_password .password-input .show-password-input {
  left: 0;
}
[dir="rtl"] .cn-account-content .wfls-center {
  text-align: right !important;
}
[dir="rtl"] .section_head.section_head_left {
  text-align: right;
  margin-right: 0;
}
[dir="rtl"] .btn:hover .btn_arrow {
  transform: translateX(-3px);
}
[dir="rtl"] .nav_toggle .bar {
  right: 0;
}
[dir="rtl"] .nav_mobile {
  left: 0;
  right: auto;
  border-right: 1px solid #dcdcde;
  box-shadow: 20px 0 60px rgba(15, 40, 80, 0.12);
  transform: translateX(-100%);
  border-left: 0;
}
[dir="rtl"] .nav_mobile a {
  transform: translateX(-20px);
}
[dir="rtl"] .nav_mobile .btn {
  transform: translateX(-20px);
}
[dir="rtl"] body.menu-open .nav_mobile {
  transform: translateX(-0);
}
[dir="rtl"] body.menu-open .nav_mobile a {
  transform: translateX(-0);
}
[dir="rtl"] .nav_close {
  left: 22px;
}
[dir="rtl"] .widget_1 {
  right: 0;
}
[dir="rtl"] .widget_2 {
  left: -8px;
}
[dir="rtl"] .ft_1 {
  left: 6%;
}
[dir="rtl"] .ft_2 {
  right: 4%;
}
[dir="rtl"] .layout_row .desc {
  border-right: 1px solid #dcdcde;
  border-left: 0;
}

[dir="rtl"] .compare th:first-child,
[dir="rtl"] .compare td:first-child {
  text-align: right;
}
[dir="rtl"] .faq_q {
  text-align: right;
}
[dir="rtl"] .toc a {
  border-right: 2px solid transparent;
  border-left: 0;
}
[dir="rtl"] .toc a.active {
  border-right-color: #1a73e8;
}
[dir="rtl"] .doc_body ul {
  padding-right: 0;
}
[dir="rtl"] .doc_body ul li {
  padding-right: 18px;
  padding-left: 0;
}
[dir="rtl"] .doc_body ul li::before {
  right: 0;
}
[dir="rtl"] .callout {
  border-right: 4px solid #1a73e8;
  border-left: 0;
}
[dir="rtl"] .field .req {
  margin-right: 2px;
  margin-left: 0;
}
[dir="rtl"] .hp {
  right: -9999px;
}
[dir="rtl"] .char_count {
  text-align: left;
}
[dir="rtl"] .post_read:hover svg {
  transform: translateX(-3px);
}
[dir="rtl"] .post_doc_body .wp-block-table th {
  text-align: right;
}
[dir="rtl"] .post_doc_body .wp-block-quote {
  border-right: 4px solid #1a73e8;
  border-radius: 12px 0 0 12px;
  border-left: 0;
}
[dir="rtl"] .timeline::before {
  right: 80px;
}
[dir="rtl"] .release {
  padding-right: 130px;
  padding-left: 0;
}
[dir="rtl"] .release_date {
  right: 0;
  text-align: left;
}
[dir="rtl"] .release_dot {
  right: 74px;
}
[dir="rtl"] .changes li {
  padding-right: 16px;
  padding-left: 0;
}
[dir="rtl"] .changes li::before {
  right: 0;
}
[dir="rtl"] .error404-links-label {
  margin-left: 4px;
  margin-right: 0;
}
[dir="rtl"] .error404-links a:not(:last-child)::after {
  margin-right: 12px;
  margin-left: 0;
}
[dir="rtl"] .btt {
  left: 32px;
}
[dir="rtl"] .lang_switch_btn {
  padding: 8px 9px 8px 10px;
}
[dir="rtl"] .lang_switch_menu {
  left: 0;
}
[dir="rtl"] .docs_sidebar {
  padding-left: 8px;
  padding-right: 0;
}
[dir="rtl"] .docs_tree--l1 {
  padding-right: 12px !important;
  border-right: 1px solid #dcdcde;
  padding-left: 0;
  border-left: 0;
}
[dir="rtl"] .docs_group_btn {
  text-align: right;
}
[dir="rtl"] .docs_article ul,
[dir="rtl"] .docs_article ol {
  padding-right: 22px;
  padding-left: 0;
}
[dir="rtl"] .docs_steps {
  padding-right: 0 !important;
  padding-left: 0;
}
[dir="rtl"] .docs_steps > li {
  padding-right: 40px;
  padding-left: 0;
}
[dir="rtl"] .docs_steps > li::before {
  right: 0;
}
[dir="rtl"] .docs_note {
  border-right: 3px solid #1a73e8;
  border-radius: 8px 0 0 8px;
  border-left: 0;
}
[dir="rtl"] .docs_table th {
  text-align: right;
}

@media (min-width: 880px) {
  [dir="rtl"] .cn-co-coupon-row .cn-co-section {
    margin-right: auto;
    margin-left: 0;
  }
  [dir="rtl"] .tb_item {
    border-left: 1px solid #dcdcde;
    border-right: 0;
  }
  [dir="rtl"] .tb_item:last-child {
    border-left: none;
    border-right: 0;
  }
}

@media (max-width: 576px) {
  [dir="rtl"] .woocommerce-order-received .woocommerce table.shop_table tbody tr td:nth-child(2) .lmfwc-myaccount-license-key {
    text-align: right;
  }
  [dir="rtl"] .woocommerce-order-received .woocommerce table.shop_table tbody tr td {
    padding-right: 0;
    padding-left: 0;
  }
  [dir="rtl"] .cn-account-content .form-row.form-row-first,
  [dir="rtl"] .cn-account-content .form-row.form-row-last {
    margin-left: 0;
  }
  [dir="rtl"] .cn-account-content .woocommerce-orders-table td::before,
  [dir="rtl"] .cn-account-content table.my_account_orders td::before {
    margin-left: 12px;
    margin-right: 0;
  }
}

@media (max-width: 760px) {
  [dir="rtl"] .timeline::before {
    right: 20px;
  }
  [dir="rtl"] .release {
    padding-right: 54px;
    padding-left: 0;
  }
  [dir="rtl"] .release_date {
    text-align: right;
    padding-right: 54px;
    margin-right: -54px;
    padding-left: 0;
    margin-left: 0;
  }
  [dir="rtl"] .release_dot {
    right: 14px;
  }
}

@media (max-width: 520px) {
  [dir="rtl"] .btt {
    left: 20px;
  }
}

@media (max-width: 879px) {
  [dir="rtl"] .but_wr_header {
    margin-right: auto;
    margin-left: 6px;
  }
}

@media (max-width: 860px) {
  [dir="rtl"] .docs_sidebar {
    padding-left: 0;
  }
}


/* ── Hand-written exceptions (rtl-manual.css) ─────────────────────────── */

/* Hand-written RTL rules — appended verbatim to rtl.css by build-rtl.php.
   Everything here fixes something the automatic mirroring cannot know about:
   glyph direction, inline SVG artwork, and text that must stay LTR. */

/* ── Hebrew typeface ────────────────────────────────────────────────────────
   Assistant (loaded in inc/enqueue.php) replaces Inter and DM Sans on Hebrew
   pages. Scoped to [lang^="he"] rather than [dir="rtl"] on purpose: this file
   ships inside rtl.css, which also loads for Arabic and any other RTL language
   added later, and Assistant has no Arabic glyphs.

   !important is deliberate. main.css sets type with the `font:` shorthand in
   several hundred rules — `font: 700 34px/1.2 'DM Sans', …` — and a shorthand
   always writes font-family. Matching that on specificity alone would mean
   restating every one of those selectors here. */
html[lang^="he"] body,
html[lang^="he"] body * {
  font-family: 'Assistant', 'Inter', system-ui, -apple-system, sans-serif !important;
}

/* Code keeps the mono face; the rule above would otherwise catch it. */
html[lang^="he"] code,
html[lang^="he"] pre,
html[lang^="he"] .docs_code,
html[lang^="he"] .docs_code code,
html[lang^="he"] .provider_example code {
  font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace !important;
}

/* Assistant runs slightly smaller on the body than Inter at the same size, and
   Hebrew has no ascenders/descenders to speak of — a little more line height
   keeps paragraphs from feeling cramped. */
html[lang^="he"] body {
  line-height: 1.75;
}

/* ── Directional glyphs in copy ─────────────────────────────────────────────
   The hero CTA, the booking-flow description and the settings paths all use
   literal → and ↓ characters inside translatable strings. The Hebrew
   translations use ← and ↑ instead, so nothing needs flipping here — but any
   arrow that is a CSS-drawn SVG does. */

/* Inline chevrons/arrows in buttons and links point "forward", which is left
   in RTL. The SVGs are drawn pointing right, so mirror the glyph itself. */
[dir="rtl"] .btn_arrow,
[dir="rtl"] .docs_caret,
[dir="rtl"] .mega-foot__all svg {
  transform: scaleX(-1);
}

/* The docs sidebar caret is rotated 90deg when open; mirroring the base glyph
   would fight that transform, so set both states explicitly. */
[dir="rtl"] .docs_group.is_open > .docs_group_btn .docs_caret {
  transform: scaleX(-1) rotate(90deg);
}

/* The language switcher caret points down in both directions — the generator
   sees no left/right value, but scaleX above would catch it if the selector
   ever widened. Pin it so it cannot be mirrored. */
[dir="rtl"] .lang_switch_caret {
  transform: none;
}
[dir="rtl"] .lang_switch.is_open .lang_switch_caret {
  transform: rotate(180deg);
}

/* ── Content that must stay left-to-right ───────────────────────────────────
   Code, shortcodes, URLs, email addresses and version numbers are LTR strings.
   Inside an RTL paragraph the browser reorders their punctuation — a shortcode
   renders as "[calnative_booking]" with the brackets swapped, and an email
   address loses its dot placement. Isolate them. */
[dir="rtl"] code,
[dir="rtl"] pre,
[dir="rtl"] .docs_code,
[dir="rtl"] .provider_example,
[dir="rtl"] .price_tag,
[dir="rtl"] input[type="email"],
[dir="rtl"] input[type="url"],
[dir="rtl"] input[type="tel"] {
  direction: ltr;
  text-align: right;
  unicode-bidi: isolate;
}

/* The price tag is a composed unit ($39 / year); keep the currency on the left
   of the number as the source intends, but align the block to the right. */
[dir="rtl"] .price_tag {
  justify-content: flex-end;
}

/* ── Numbered steps ─────────────────────────────────────────────────────────
   .docs_steps uses an absolutely positioned counter circle at left: 0, which
   the generator mirrors to right: 0. The padding must follow it. */
[dir="rtl"] .docs_steps > li {
  padding-right: 40px;
  padding-left: 0;
}

/* ── Tables ─────────────────────────────────────────────────────────────────
   The comparison table's first column is a row label and reads right in RTL;
   the generator already flipped the th/td text-align, this pins the first
   column so it does not inherit the centred value columns. */
[dir="rtl"] .compare table th:first-child,
[dir="rtl"] .compare table td:first-child,
[dir="rtl"] .docs_table th,
[dir="rtl"] .docs_table td {
  text-align: right;
}

/* ── Form controls ──────────────────────────────────────────────────────────
   Native select arrows and the character counter sit on the trailing edge. */
[dir="rtl"] .char_count {
  text-align: left;
}

/* The select chevron is a square with only its right and bottom borders drawn,
   rotated 45deg so it points down. Which two borders are drawn IS the arrow's
   direction — mirroring border-right to border-left would re-aim it to the
   left. So .select_wrap::after is excluded from the generator (see
   $skip_selectors in build-rtl.php) and moved by hand: same borders, opposite
   edge of the field. */
[dir="rtl"] .select_wrap::after {
  right: auto;
  left: 18px;
  border-right: 1.8px solid #646970;
  border-bottom: 1.8px solid #646970;
  border-left: 0;
  border-top: 0;
}
[dir="rtl"] .select_wrap:focus-within::after {
  border-color: #1a73e8;
  border-left-color: transparent;
  border-top-color: transparent;
}

/* .select sets only padding-right: 42px to clear that arrow; its base padding
   comes from the separate ".select, .textarea { padding: 13px 16px }" rule, so
   the generator's automatic reset-to-zero would leave the text flush against
   the field edge. Restore the base value explicitly. */
[dir="rtl"] .select {
  padding-left: 42px;
  padding-right: 16px;
}

/* ── Footer and nav ─────────────────────────────────────────────────────────
   Both are flex rows whose visual order should reverse with the text. */
[dir="rtl"] .foot_bottom,
[dir="rtl"] .hero_trust,
[dir="rtl"] .foot_trust span {
  direction: rtl;
}

/* ── Scrollable regions ─────────────────────────────────────────────────────
   Horizontally scrolling containers must start at the right edge in RTL. */
[dir="rtl"] .compare_scroll,
[dir="rtl"] .docs_code,
[dir="rtl"] .tabs {
  direction: rtl;
}


/* ═══════════════════════════════════════════════════════════════════════════
   Visual tuning — hand-adjusted against the rendered page.
   ═══════════════════════════════════════════════════════════════════════════
   These override the generator's arithmetic mirroring. A straight mirror is
   geometrically correct but does not always look right: the hero collage and
   its floating tags were composed by eye in LTR, so their RTL positions were
   re-judged the same way. Kept here, not in rtl.css, because rtl.css is
   overwritten on every build. */

/* Hero collage — the two overlapping widget cards. */
[dir="rtl"] .widget_2 {
  right: -22px;
  left: auto;
}

/* Floating "Live from Google Calendar" / "Booking confirmed" tags. */
[dir="rtl"] .ft_1 {
  left: auto;
  right: 0%;
  top: 1%;
}
[dir="rtl"] .ft_2 {
  right: auto;
  left: 12%;
}

/* Language dropdown — nudged so the panel edge lines up with the button. */
[dir="rtl"] .lang_switch_menu {
  left: -13px;
  right: auto;
}

/* The CTA arrow is mirrored with scaleX(-1) further up, so the hover nudge has
   to be composed with that transform rather than negated. Mirroring alone
   would give translateX(-3px), which moves the arrow the wrong way once the
   glyph itself is flipped. */
[dir="rtl"] .btn:hover .btn_arrow {
  transform: scaleX(-1) translateX(3px);
}

/* Testimonial attribution: names stay left-to-right, aligned to the RTL edge. */
[dir="rtl"] .test_meta strong {
  direction: ltr;
  text-align: right;
}

@media (max-width: 760px) {
  [dir="rtl"] .widget_1 {
    right: 60px;
  }
  [dir="rtl"] .widget_2 {
    right: -3px;
  }
}
