diff --git a/.htaccess b/.htaccess index 9f2fbeb1..9b093d87 100644 --- a/.htaccess +++ b/.htaccess @@ -1,3 +1,42 @@ +# BEGIN WpFastestCache +# Modified Time: 19-04-26 17:08:48 + +RewriteEngine On +RewriteBase / +RewriteCond %{HTTPS} on +RewriteCond %{HTTP_HOST} ^dostavka-vodi-krim.ru +# Start WPFC Exclude +# End WPFC Exclude +# Start_WPFC_Exclude_Admin_Cookie +RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\=gp-admin +# End_WPFC_Exclude_Admin_Cookie +RewriteCond %{HTTP_HOST} ^dostavka-vodi-krim.ru +RewriteCond %{HTTP_USER_AGENT} !(facebookexternalhit|WP_FASTEST_CACHE_CSS_VALIDATOR|Twitterbot|LinkedInBot|WhatsApp|Mediatoolkitbot) +RewriteCond %{HTTP_USER_AGENT} !(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot) +RewriteCond %{REQUEST_METHOD} !POST +RewriteCond %{REQUEST_URI} !(\/){2,} +RewriteCond %{THE_REQUEST} !(\/){2,} +RewriteCond %{REQUEST_URI} \/$ +RewriteCond %{QUERY_STRING} !.+ [OR] +RewriteCond %{QUERY_STRING} fbclid= +RewriteCond %{HTTP:Cookie} !comment_author_ +RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC] +RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/all/$1/index.html -f [or] +RewriteCond /home/a0264400/domains/dostavka-vodi-krim.ru/public_html/wp-content/cache/all/$1/index.html -f +RewriteRule ^(.*) "/wp-content/cache/all/$1/index.html" [L] + + +AddDefaultCharset UTF-8 + +FileETag None +Header unset ETag +Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" +Header set Pragma "no-cache" +Header set Expires "Mon, 29 Oct 1923 20:30:00 GMT" + + +# END WpFastestCache + # BEGIN HTTPS + WWW REDIRECT RewriteEngine On diff --git a/wp-content/cache/all/index.html b/wp-content/cache/all/index.html new file mode 100644 index 00000000..076f2940 --- /dev/null +++ b/wp-content/cache/all/index.html @@ -0,0 +1,862 @@ + + + + + + + + + Доставка воды в Севастополе — заказать воду на дом и в офис + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ Чистая вода каждый день +

Питьевая вода с доставкой в Севастополе — привезём в удобное время

+
+ + Посмотреть каталог +
+ +
+
+ от 290 ₽ + Бутыль 19 л для дома и офиса +
+
+ 2 часа + среднее время доставки по городу в будни +
+
+ 7 дней + работаем без выходных для дома и офиса +
+
+
+ + +
+ +
+
+ Источник + артезианская вода с многоступенчатым контролем +
+
+ Сервис + подъем на этаж и помощь с заменой бутыли +
+
+ Оплата + наличные, карта, перевод и безнал для компаний +
+
+ Автодоставка + гибкий график без повторных звонков +
+
+
+
+ +
+
+
+
+ Каталог +

Выберите формат воды

+
+

В каталоге — популярные объемы для дома и офиса: от небольших бутылей до стандартных 19 литров. +Можно заказать разово или подключить регулярную доставку, чтобы не следить за остатками.

+
+ +
+
+
+

Набор 1,5л

+

+
+ Товар + в наличии +
+
120 ₽
+ В корзину +
+
+
+

Кулер + помпа

+

+
+ Товар + в наличии +
+
1050 ₽
+ В корзину +
+
+
+

Вода 5 литров

+

+
+ Товар + в наличии +
+
99 ₽
+ В корзину +
+
+
Аквалиния 19л
+

Вода 19 литров

+

+
+ Товар + в наличии +
+
390 ₽
+ В корзину +
+
+
+
+ +
+
+
+
+ Бестселлеры +

Что заказывают чаще всего

+
+

Если заказывают впервые, чаще всего начинают с бутыли 19 литров. Для дома, поездок или редкого использования обычно добавляют компактные форматы.

+
+ + +
+
+ +
+
+
+
+ Условия доставки +

Доставка воды по районам Севастополя

+
+

Работаем по основным районам Севастополя. При оформлении заказа подскажем ближайшее окно и заранее подтвердим удобное время доставки.

+
+ +
+
+

Что важно знать перед заказом

+
+
+
+ Зоны доставки + Гагаринский, Ленинский, Нахимовский, Балаклава, Камышовая бухта, Остряки, Стрелецкая +
+
+
+
+ Время доставки + Ежедневно с 8:00 до 21:00, срочные окна по возможности в день обращения +
+
+
+
+ Минимальный заказ + От 1 бутыли 19 л или от 500 ₽ для малых форматов +
+
+
+
+ Возвратная тара + Пустые бутыли забираем при следующей доставке или при отдельном выезде по согласованию +
+
+
+
+ +
+ Активные маршруты +

Доставляем по всем районам города

+
+ Гагаринский район + Ленинский район + Нахимовский район + Балаклава +
+ +
+
+ Ближайшее окно + Подберём ближайший доступный интервал и заранее согласуем время. +
+
+ Быстрое подтверждение + Связываемся в течение 15 минут в рабочее время. +
+
+ Сервис на месте + Подъем воды, замена бутыли и вывоз пустой тары по запросу. +
+ +
+
+
+
+
+ +
+
+
+
+ Как заказать +

Четыре быстрых шага до чистой воды

+
+

Все просто: выбираете воду, оставляете заявку, а мы уточняем детали и привозим заказ в согласованное время.

+
+ +
+
+
1
+

Выберите объем воды

+

Определите нужный объем: вода 19 литров, 5 литров, малые бутылки, минеральная или газированная вода.

+
+
+
2
+

Оставьте заявку на сайте или по телефону

+

Соберите заказ прямо на сайте и проверьте итоговую сумму до подтверждения.

+
+
+
3
+

Подтвердите удобное время доставки

+

Оставьте телефон и адрес в Севастополе, а мы уточним время и детали по таре.

+
+
+
4
+

Получите воду с доставкой до двери

+

Курьер привезет воду, поможет с выгрузкой и при необходимости заберет пустые бутыли.

+
+
+
+
+ +
+
+
+
+ Для дома и офиса +

Для дома и офиса — без лишних сложностей

+
+

У домашних и корпоративных заказов разные задачи, поэтому мы отдельно продумали условия для семьи и для компаний.

+
+ +
+
+ Доставка воды на дом +

Когда воду удобно заказывать домой

+

Такой формат выбирают семьи, пожилые клиенты и все, кто не хочет носить тяжелые бутыли из магазина.

+
    +
  • Удобные интервалы утром, днем и вечером
  • +
  • Подъем на этаж и помощь с установкой
  • +
  • Можно заказать и 19 л, и компактные форматы
  • +
  • Напоминание о повторном заказе
  • +
+
Часто выбирают: 2 бутыли 19 л + вода 5 л для кухни
+
+ + +
+
+
+ +
+
+
+
+ Акции +

Выгоднее с первого заказа и еще удобнее по подписке

+
+

Для новых и постоянных клиентов периодически действуют акции. Это удобный способ попробовать сервис или сделать регулярные заказы выгоднее.

+
+ +
+
+

Скидка на первый заказ

+

На первый заказ действует скидка 10%. Это удобно, если хотите сначала попробовать сервис и оценить качество воды.

+
+
+

Автодоставка воды

+

Настройте регулярный график: раз в 3 дня, неделю или по вашему потреблению. Мы напомним и приедем вовремя.

+
+
+

Помпа в подарок

+

При заказе стартового комплекта для дома дарим механическую помпу, чтобы пользоваться 19-литровой бутылью было проще.

+
+
+

Офисный тариф

+

Для корпоративных клиентов действует персональная цена при регулярном объеме и закрепленном графике поставок.

+
+
+
+
+ +
+
+
+
+ FAQ +

Частые вопросы о доставке воды в Севастополе

+
+

Собрали вопросы, которые чаще всего задают перед первым заказом.

+
+ +
+
+ +
Обычно привозим воду в течение дня, а по активным маршрутам — быстрее. Точное время зависит от района и загрузки, поэтому ближайший интервал всегда подтверждаем заранее.
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+ +
+
+
+
+ О компании +

Чистый источник, строгий контроль, понятный сервис

+
+

Важно не только откуда вода, но и как она проходит обработку, розлив и доставку. Поэтому мы уделяем внимание качеству на каждом этапе.

+
+ +
+
+

Следим не только за водой, но и за тем, в каком виде она приезжает к клиенту

+

Вода поступает из артезианского источника, проходит очистку и контроль перед розливом. Не меньше внимания уделяем бутылям: их состояние и санитарная обработка напрямую влияют на вкус и качество воды.

+

По запросу можно получить информацию о качестве воды и условиях поставки. Для офисов и коммерческих объектов отдельно настраиваем регулярный график, чтобы запас воды не заканчивался в рабочее время.

+
+ артезианская вода + контроль качества + сертификаты + санобработка тары +
+
+ + +
+
+
+ +
+
+
+
+ Отзывы +

Что говорят клиенты о нашей воде и доставке

+
+

Несколько отзывов от клиентов, которые заказывают воду домой, в офис и для коммерческих объектов.

+
+ +
+
+ «Привозят точно в обещанный интервал» +

Заказываем воду 19 литров домой в Гагаринский район. Курьер всегда заранее звонит, поднимает бутыли и забирает пустые. Удобно, что не нужно снова объяснять адрес.

+
Марина, Севастополь
+
+
+ «Для офиса это реально спасение» +

У нас небольшая команда, вода уходит быстро. С автодоставкой больше не вспоминаем в последний момент, что кулер пустой. Документы присылают без задержек.

+
Андрей, управляющий офисом
+
+
+ «Вкус воды мягкий, без постороннего запаха» +

Переходили с другого поставщика и сразу почувствовали разницу. Вода приятная и для питья, и для чайника. Заказываем и 19 литров, и 5 литров домой.

+
Елена, Ленинский район
+
+
+ «Хорошо работают с коммерческими заказами» +

Для нашего фитнес-клуба важна стабильность. Ребята привозят четко по графику, можно комбинировать большие бутыли и маленькие бутылки для стойки продаж.

+
Игорь, фитнес-клуб в Стрелецкой
+
+
+
+
+ +
+
+
+
+ Контакты +

Свяжитесь с нами и оформите заказ

+
+

Позвоните нам или оставьте заявку на сайте — уточним детали и подберём удобное время доставки.

+
+ +
+
+

Контактные данные

+
    +
  • Телефон: +7 (911) 774-89-23
  • +
  • Адрес: г. Севастополь, ул. Генерала Острякова, 92
  • +
  • График: ежедневно с 8:00 до 21:00
  • +
  • E-mail: sygorenkomisha17@gmail.com
  • +
+ +
+ + + + + +
Спасибо! Заявка принята. Мы свяжемся с вами для подтверждения заказа.
+
+
+ +
+ Зона обслуживания +

Принимаем заявки по всему Севастополю

+

Работаем ежедневно и подбираем удобный интервал доставки для дома, офиса, кафе и небольших коммерческих точек.

+ +
+
+ Подтверждение заявки + До 15 минут в рабочие часы, без долгого ожидания. +
+
+ Окна доставки + С 8:00 до 21:00 ежедневно, срочные слоты по возможности. +
+
+ Дополнительный сервис + Подъем воды и вывоз пустой тары при следующем визите. +
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wp-content/cache/index.html b/wp-content/cache/index.html new file mode 100644 index 00000000..e69de29b diff --git a/wp-content/cache/wpfc-minified/12t7svwq/bgsuq.css b/wp-content/cache/wpfc-minified/12t7svwq/bgsuq.css new file mode 100644 index 00000000..e69f6d5f --- /dev/null +++ b/wp-content/cache/wpfc-minified/12t7svwq/bgsuq.css @@ -0,0 +1 @@ +@font-face{font-family:star;src:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff2) format("woff2"),url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff) format("woff"),url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff2) format("woff2"),url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff) format("woff"),url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.ttf) format("truetype");font-weight:400;font-style:normal}:root{--woocommerce:#720eec;--wc-green:#7ad03a;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32, 7, 7, 0.8);--wc-form-border-radius:4px;--wc-form-border-width:1px}.woocommerce-account .wp-block-post-title,.woocommerce-account main .woocommerce,.woocommerce-cart .wp-block-post-title,.woocommerce-cart main .woocommerce,.woocommerce-checkout .wp-block-post-title,.woocommerce-checkout main .woocommerce{max-width:1000px}.clear{clear:both}.woocommerce a.button.disabled,.woocommerce a.button.disabled:hover,.woocommerce a.button:disabled,.woocommerce a.button:disabled:hover,.woocommerce a.button:disabled[disabled],.woocommerce a.button:disabled[disabled]:hover,.woocommerce button.button.disabled,.woocommerce button.button.disabled:hover,.woocommerce button.button:disabled,.woocommerce button.button:disabled:hover,.woocommerce button.button:disabled[disabled],.woocommerce button.button:disabled[disabled]:hover{opacity:.5}.woocommerce #respond input#submit:hover,.woocommerce a.button.alt:hover,.woocommerce input.button:hover{opacity:.9}.woocommerce #respond input#submit.disabled,.woocommerce #respond input#submit.disabled:hover,.woocommerce #respond input#submit:disabled,.woocommerce #respond input#submit:disabled:hover,.woocommerce #respond input#submit:disabled[disabled],.woocommerce #respond input#submit:disabled[disabled]:hover,.woocommerce a.button.alt.disabled,.woocommerce a.button.alt.disabled:hover,.woocommerce a.button.alt:disabled,.woocommerce a.button.alt:disabled:hover,.woocommerce a.button.alt:disabled[disabled],.woocommerce a.button.alt:disabled[disabled]:hover,.woocommerce input.button.disabled,.woocommerce input.button.disabled:hover,.woocommerce input.button:disabled,.woocommerce input.button:disabled:hover,.woocommerce input.button:disabled[disabled],.woocommerce input.button:disabled[disabled]:hover{opacity:.5}.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:1.2em}.woocommerce div.product::after{content:"";display:block;clear:both}.woocommerce div.product div.summary>*{margin-bottom:var(--wp--style--block-gap)}.woocommerce div.product .woocommerce-tabs ul.tabs li.active::before{box-shadow:2px 2px 0 var(--wp--preset--color--background,#fff)}.woocommerce div.product .woocommerce-tabs ul.tabs li.active::after{box-shadow:-2px 2px 0 var(--wp--preset--color--background,#fff)}.woocommerce div.product form.cart div.quantity{float:none;vertical-align:middle}.woocommerce div.product form.cart div.quantity .qty{margin-right:.5em}.woocommerce div.product form.cart button.single_add_to_cart_button,.woocommerce div.product form.cart button[name=add-to-cart]{display:inline-block;float:none;margin-top:0;margin-bottom:0;vertical-align:middle;word-break:normal}.woocommerce div.product form.cart .variations td,.woocommerce div.product form.cart .variations th{word-break:normal}.woocommerce div.product .related.products{margin-top:5em}.woocommerce .woocommerce-Reviews #comments{margin-bottom:var(--wp--style--block-gap)}.woocommerce .woocommerce-Reviews .commentlist{box-sizing:border-box}.woocommerce .woocommerce-Reviews .comment-reply-title{font-size:var(--wp--preset--font-size--medium);font-weight:700}.woocommerce .price bdi,.woocommerce .price ins,.woocommerce .wc-block-components-product-price bdi,.woocommerce .wc-block-components-product-price ins,.woocommerce .woocommerce-grouped-product-list-item__price bdi,.woocommerce .woocommerce-grouped-product-list-item__price ins{text-decoration:none}.woocommerce span.onsale{background-color:var(--wp--preset--color--foreground,#958e09);color:var(--wp--preset--color--background,#fff)}.woocommerce table.variations{display:block}.woocommerce table.variations tr td,.woocommerce table.variations tr th{padding-bottom:var(--wp--style--block-gap);text-align:left}.woocommerce table.variations tr th{padding-right:1em}.woocommerce table.variations tr td select{height:3em;padding:.9em 1.1em;font-size:var(--wp--preset--font-size--small)}.woocommerce div.product form.cart table.variations td select{min-width:70%}.woocommerce div.product form.cart table.variations td,.woocommerce div.product form.cart table.variations th{vertical-align:middle}.woocommerce .single_variation_wrap .woocommerce-variation{margin-bottom:var(--wp--style--block-gap)}a.added_to_cart{display:block;margin-top:1em}.woocommerce-page .input-text,.woocommerce-page .select2-container,.woocommerce-page select{font-size:var(--wp--preset--font-size--small)}.woocommerce-page label{margin-bottom:.7em}.woocommerce form .form-row{margin-bottom:1em}.woocommerce form textarea{min-height:100px}.woocommerce-page table.shop_table{width:70%;border-collapse:collapse}@media only screen and (max-width:768px){.woocommerce-page table.shop_table{width:100%}}.woocommerce-page table.shop_table td,.woocommerce-page table.shop_table th{padding:1em}.woocommerce-page table.shop_table_responsive{width:100%}.woocommerce-page .woocommerce-cart-form .product-remove{width:1em}.woocommerce-page .woocommerce-cart-form .product-thumbnail{width:120px}.woocommerce-page .woocommerce-cart-form .product-thumbnail a img{width:117px}.woocommerce-page .woocommerce-cart-form .coupon{display:flex;align-items:center;flex-wrap:wrap}.woocommerce-page .woocommerce-cart-form #coupon_code{width:auto;margin-right:.8em;height:50px;font-size:var(--wp--preset--font-size--small);padding:0 1.1em}@media only screen and (max-width:768px){.woocommerce-page .woocommerce-cart-form .product-remove{width:auto}.woocommerce-page .woocommerce-cart-form #coupon_code{width:50%;margin-right:0}}.woocommerce-page .cart-collaterals h2{font-size:var(--wp--preset--font-size--medium)}.woocommerce-page .woocommerce-form-coupon .button{min-height:50px}.woocommerce-page .woocommerce-column__title,.woocommerce-page .woocommerce-customer-details h2,.woocommerce-page .woocommerce-thankyou-order-received{font-size:var(--wp--preset--font-size--large);font-weight:300}.woocommerce-page ul.woocommerce-order-overview{display:flex;width:100%;padding-left:0;font-size:var(--wp--preset--font-size--small)}@media only screen and (max-width:768px){.woocommerce-page ul.woocommerce-order-overview{flex-direction:column}}.woocommerce-page ul.woocommerce-order-overview li{flex-grow:1;margin-bottom:1em;border:none;display:inline;text-transform:uppercase}.woocommerce-page ul.woocommerce-order-overview li strong{text-transform:none;display:block}.woocommerce-page .woocommerce-customer-details address{box-sizing:border-box;width:70%;padding:1em;border-width:1px;border-radius:0}.woocommerce-account .woocommerce-MyAccount-navigation ul{margin:0 0 2em;padding:0}.woocommerce-account .woocommerce-MyAccount-navigation li{list-style:none;padding:1em 0}@media only screen and (max-width:768px){.woocommerce-account .woocommerce-MyAccount-navigation li{padding:.35em 0}}.woocommerce-account .woocommerce-MyAccount-navigation li:first-child{padding-top:0}.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{text-decoration:underline}.woocommerce-account .woocommerce-MyAccount-navigation li a{text-decoration:none}.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{text-decoration:underline}.woocommerce-account .woocommerce-MyAccount-content p.form-row-first,.woocommerce-account .woocommerce-MyAccount-content p.form-row-last,.woocommerce-account .woocommerce-MyAccount-content>p:first-of-type{margin-block-start:0}.woocommerce-account .woocommerce-customer-details address,.woocommerce-account table.shop_table.order_details{width:100%}.woocommerce-account .addresses .title .edit{display:block;margin-bottom:1em}.woocommerce-account.woocommerce-edit-address .woocommerce-MyAccount-content form>h3{margin-block-start:0}.woocommerce-account .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions::before{display:none}.woocommerce-account .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a{display:block;margin-bottom:1em;text-align:center}.woocommerce-page form .form-row input.input-text,.woocommerce-page form .form-row select,.woocommerce-page form .form-row textarea.input-text{font-size:var(--wp--preset--font-size--small);padding:.9rem 1.1rem}.woocommerce-page form .form-row select{background-position:calc(100% - 1.1rem) 50%}.woocommerce-page form .form-row label{margin-bottom:.7em}.woocommerce-page form .form-row .select2-container .select2-selection--single .select2-selection__rendered{padding:.9rem 1.1rem}.woocommerce-page form .form-row .select2-container .select2-selection--single .select2-selection__arrow{right:1.1em}.woocommerce-page .select2-container .select2-search--dropdown{padding:0 1.1rem .5rem}.woocommerce-page .select2-container .select2-search--dropdown .select2-search__field{padding:.5rem;font-size:var(--wp--preset--font-size--small)}.woocommerce-page .select2-container .select2-results__option{padding:.5rem 1.1rem}.woocommerce-store-notice,p.demo_store{background:var(--wp--preset--color--foreground,#720eec);bottom:0;color:var(--wp--preset--color--background,#fcfbfe);position:fixed;top:auto!important}.woocommerce-store-notice a,p.demo_store a{color:var(--wp--preset--color--background,#fcfbfe)}.woocommerce .product-category mark.count{background-color:transparent} \ No newline at end of file diff --git a/wp-content/cache/wpfc-minified/1c8bqbl0/bgsuq.css b/wp-content/cache/wpfc-minified/1c8bqbl0/bgsuq.css new file mode 100644 index 00000000..ad480a2a --- /dev/null +++ b/wp-content/cache/wpfc-minified/1c8bqbl0/bgsuq.css @@ -0,0 +1 @@ +:root{--woocommerce:#720eec;--wc-green:#7ad03a;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32, 7, 7, 0.8);--wc-form-border-radius:4px;--wc-form-border-width:1px}.woocommerce table.shop_table_responsive thead,.woocommerce-page table.shop_table_responsive thead{display:none}.woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,.woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child{border-top:0}.woocommerce table.shop_table_responsive tbody th,.woocommerce-page table.shop_table_responsive tbody th{display:none}.woocommerce table.shop_table_responsive tr,.woocommerce-page table.shop_table_responsive tr{display:block}.woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{display:block;text-align:right!important}.woocommerce table.shop_table_responsive tr td.order-actions,.woocommerce-page table.shop_table_responsive tr td.order-actions{text-align:left!important}.woocommerce table.shop_table_responsive tr td::before,.woocommerce-page table.shop_table_responsive tr td::before{content:attr(data-title) ": ";font-weight:700;float:left}.woocommerce table.shop_table_responsive tr td.actions::before,.woocommerce table.shop_table_responsive tr td.product-remove::before,.woocommerce-page table.shop_table_responsive tr td.actions::before,.woocommerce-page table.shop_table_responsive tr td.product-remove::before{display:none}.woocommerce table.shop_table_responsive tr:nth-child(2n) td,.woocommerce-page table.shop_table_responsive tr:nth-child(2n) td{background-color:rgba(0,0,0,.025)}.woocommerce table.my_account_orders tr td.order-actions,.woocommerce-page table.my_account_orders tr td.order-actions{text-align:left}.woocommerce table.my_account_orders tr td.order-actions::before,.woocommerce-page table.my_account_orders tr td.order-actions::before{display:none}.woocommerce table.my_account_orders tr td.order-actions .button,.woocommerce-page table.my_account_orders tr td.order-actions .button{float:none;margin:.125em .25em .125em 0}.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-1,.woocommerce-page .col2-set .col-2{float:none;width:100%}.woocommerce ul.products[class*=columns-] li.product,.woocommerce-page ul.products[class*=columns-] li.product{width:48%;float:left;clear:both;margin:0 0 2.992em}.woocommerce ul.products[class*=columns-] li.product:nth-child(2n),.woocommerce-page ul.products[class*=columns-] li.product:nth-child(2n){float:right;clear:none!important}.woocommerce #content div.product div.images,.woocommerce #content div.product div.summary,.woocommerce div.product div.images,.woocommerce div.product div.summary,.woocommerce-page #content div.product div.images,.woocommerce-page #content div.product div.summary,.woocommerce-page div.product div.images,.woocommerce-page div.product div.summary{float:none;width:100%}.woocommerce #content table.cart .product-thumbnail,.woocommerce table.cart .product-thumbnail,.woocommerce-page #content table.cart .product-thumbnail,.woocommerce-page table.cart .product-thumbnail{display:none}.woocommerce #content table.cart td.actions,.woocommerce table.cart td.actions,.woocommerce-page #content table.cart td.actions,.woocommerce-page table.cart td.actions{text-align:left}.woocommerce #content table.cart td.actions .coupon,.woocommerce table.cart td.actions .coupon,.woocommerce-page #content table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{float:none;padding-bottom:.5em}.woocommerce #content table.cart td.actions .coupon::after,.woocommerce #content table.cart td.actions .coupon::before,.woocommerce table.cart td.actions .coupon::after,.woocommerce table.cart td.actions .coupon::before,.woocommerce-page #content table.cart td.actions .coupon::after,.woocommerce-page #content table.cart td.actions .coupon::before,.woocommerce-page table.cart td.actions .coupon::after,.woocommerce-page table.cart td.actions .coupon::before{content:" ";display:table}.woocommerce #content table.cart td.actions .coupon::after,.woocommerce table.cart td.actions .coupon::after,.woocommerce-page #content table.cart td.actions .coupon::after,.woocommerce-page table.cart td.actions .coupon::after{clear:both}.woocommerce #content table.cart td.actions .coupon .button,.woocommerce #content table.cart td.actions .coupon .input-text,.woocommerce #content table.cart td.actions .coupon input,.woocommerce table.cart td.actions .coupon .button,.woocommerce table.cart td.actions .coupon .input-text,.woocommerce table.cart td.actions .coupon input,.woocommerce-page #content table.cart td.actions .coupon .button,.woocommerce-page #content table.cart td.actions .coupon .input-text,.woocommerce-page #content table.cart td.actions .coupon input,.woocommerce-page table.cart td.actions .coupon .button,.woocommerce-page table.cart td.actions .coupon .input-text,.woocommerce-page table.cart td.actions .coupon input{width:48%;box-sizing:border-box}.woocommerce #content table.cart td.actions .coupon .button.alt,.woocommerce #content table.cart td.actions .coupon .input-text+.button,.woocommerce table.cart td.actions .coupon .button.alt,.woocommerce table.cart td.actions .coupon .input-text+.button,.woocommerce-page #content table.cart td.actions .coupon .button.alt,.woocommerce-page #content table.cart td.actions .coupon .input-text+.button,.woocommerce-page table.cart td.actions .coupon .button.alt,.woocommerce-page table.cart td.actions .coupon .input-text+.button{float:right}.woocommerce #content table.cart td.actions .coupon .coupon-error-notice,.woocommerce table.cart td.actions .coupon .coupon-error-notice,.woocommerce-page #content table.cart td.actions .coupon .coupon-error-notice,.woocommerce-page table.cart td.actions .coupon .coupon-error-notice{clear:left;color:var(--wc-red);float:left;font-size:.75em;margin-bottom:0;text-align:left;width:48%}.woocommerce #content table.cart td.actions .button,.woocommerce table.cart td.actions .button,.woocommerce-page #content table.cart td.actions .button,.woocommerce-page table.cart td.actions .button{display:block;width:100%}.woocommerce .cart-collaterals .cart_totals,.woocommerce .cart-collaterals .cross-sells,.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cross-sells,.woocommerce-page .cart-collaterals .shipping_calculator{width:100%;float:none;text-align:left}.woocommerce-page.woocommerce-checkout form.login .form-row,.woocommerce.woocommerce-checkout form.login .form-row{width:100%;float:none}.woocommerce #payment .terms,.woocommerce-page #payment .terms{text-align:left;padding:0}.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{float:none;width:100%;box-sizing:border-box;margin-bottom:1em}.woocommerce .lost_reset_password .form-row-first,.woocommerce .lost_reset_password .form-row-last,.woocommerce-page .lost_reset_password .form-row-first,.woocommerce-page .lost_reset_password .form-row-last{width:100%;float:none;margin-right:0}.woocommerce-account .woocommerce-MyAccount-content,.woocommerce-account .woocommerce-MyAccount-navigation{float:none;width:100%}.single-product .twentythirteen .panel{padding-left:20px!important;padding-right:20px!important} \ No newline at end of file diff --git a/wp-content/cache/wpfc-minified/dk28zm1/bgsuq.css b/wp-content/cache/wpfc-minified/dk28zm1/bgsuq.css new file mode 100644 index 00000000..2fc4d1d7 --- /dev/null +++ b/wp-content/cache/wpfc-minified/dk28zm1/bgsuq.css @@ -0,0 +1,1341 @@ +:root { +--bg: #f4f8ff; +--surface: rgba(255, 255, 255, 0.76); +--surface-solid: #ffffff; +--surface-dark: #0a2b6d; +--text: #123059; +--muted: #5f7496; +--line: rgba(18, 48, 89, 0.12); +--primary: #0d4fd6; +--primary-strong: #08338d; +--accent: #3cc8ff; +--accent-soft: #dbf6ff; +--success: #19a76f; +--warning: #ffd166; +--shadow: 0 30px 80px rgba(10, 43, 109, 0.16); +--radius-xl: 32px; +--radius-lg: 24px; +--radius-md: 18px; +--radius-sm: 14px; +--container: 1180px; +} +* { +box-sizing: border-box; +} +html { +scroll-behavior: smooth; +} +body { +margin: 0; +font-family: "Manrope", sans-serif; +color: var(--text); +background: +radial-gradient(circle at top left, rgba(60, 200, 255, 0.16), transparent 32%), +radial-gradient(circle at 85% 15%, rgba(13, 79, 214, 0.18), transparent 22%), +linear-gradient(180deg, #eef6ff 0%, #f9fcff 48%, #eef5ff 100%); +min-width: 320px; +} +body.menu-open, +body.modal-open { +overflow: hidden; +} +body::before { +content: ""; +position: fixed; +inset: 0; +pointer-events: none; +background-image: +linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), +linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px); +background-size: 24px 24px; +opacity: 0.45; +mix-blend-mode: soft-light; +} +img { +max-width: 100%; +display: block; +} +a { +color: inherit; +text-decoration: none; +} +a:focus-visible, +button:focus-visible, +input:focus-visible, +textarea:focus-visible, +select:focus-visible { +outline: 3px solid rgba(13, 79, 214, 0.44); +outline-offset: 3px; +} +button, +input, +textarea, +select { +font: inherit; +} +button { +cursor: pointer; +border: 0; +background: none; +color: inherit; +} +.container { +width: min(var(--container), calc(100% - 32px)); +margin: 0 auto; +} +.section { +padding: 32px 0 0; +} +.eyebrow { +display: inline-flex; +align-items: center; +gap: 10px; +padding: 8px 14px; +border-radius: 999px; +background: rgba(255, 255, 255, 0.65); +border: 1px solid rgba(255, 255, 255, 0.75); +box-shadow: 0 10px 30px rgba(13, 79, 214, 0.08); +font-size: 13px; +margin-bottom: 15px; +font-weight: 800; +letter-spacing: 0.08em; +text-transform: uppercase; +color: var(--primary-strong); +} +.eyebrow::before { +content: ""; +width: 8px; +height: 8px; +border-radius: 50%; +background: linear-gradient(135deg, var(--accent), var(--primary)); +box-shadow: 0 0 0 6px rgba(60, 200, 255, 0.16); +} +.section-head { +display: flex; +align-items: end; +justify-content: space-between; +gap: 24px; +margin-bottom: 28px; +} +.section-title { +margin: 14px 0 0; +font-family: "Manrope", sans-serif; +font-size: clamp(30px, 4.6vw, 56px); +line-height: 1.02; +letter-spacing: -0.03em; +} +.section-copy { +max-width: 560px; +color: var(--muted); +line-height: 1.7; +} +.site-header { +position: sticky; +top: 0; +z-index: 30; +backdrop-filter: blur(20px); +background: rgba(244, 248, 255, 0.74); +border-bottom: 1px solid rgba(18, 48, 89, 0.08); +} +.header-row { +display: flex; +align-items: center; +justify-content: space-between; +gap: 20px; +min-height: 82px; +} +.brand { +display: flex; +align-items: center; +gap: 14px; +font-weight: 800; +} +.brand-mark { +width: 48px; +height: 48px; +display: grid; +place-items: center; +border-radius: 18px; +background: #fff; +color: #fff; +box-shadow: 0 18px 34px rgba(13, 79, 214, 0.24); +} +.brand-text strong { +display: block; +font-size: 16px; +} +.brand-text span { +font-size: 12px; +color: var(--muted); +} +.nav { +display: flex; +align-items: center; +gap: 22px; +font-size: 14px; +font-weight: 700; +color: var(--muted); +} +.nav a:hover, +.nav a:focus-visible { +color: var(--primary-strong); +} +.header-actions { +display: flex; +align-items: center; +gap: 12px; +} +.cart-button, +.header-phone, +.button, +.ghost-button, +.mobile-toggle, +.chip, +.toggle-button, +.mini-button { +transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, color 0.22s ease, border-color 0.22s ease; +} +.header-phone { +display: inline-flex; +align-items: center; +gap: 10px; +padding: 12px 18px; +border-radius: 999px; +background: rgba(255, 255, 255, 0.72); +border: 1px solid rgba(18, 48, 89, 0.1); +font-weight: 800; +box-shadow: 0 10px 30px rgba(10, 43, 109, 0.08); +} +.cart-button { +position: relative; +display: inline-flex; +align-items: center; +gap: 10px; +padding: 12px 16px; +border-radius: 999px; +color: #fff; +background: linear-gradient(135deg, var(--primary-strong), var(--primary)); +box-shadow: 0 16px 30px rgba(13, 79, 214, 0.25); +font-weight: 800; +} +.cart-count { +min-width: 22px; +height: 22px; +display: inline-grid; +place-items: center; +border-radius: 999px; +background: #fff; +color: var(--primary-strong); +font-size: 12px; +} +.mobile-toggle { +display: none; +width: 46px; +height: 46px; +border-radius: 16px; +background: rgba(255, 255, 255, 0.84); +border: 1px solid rgba(18, 48, 89, 0.1); +box-shadow: 0 10px 30px rgba(10, 43, 109, 0.08); +} +.mobile-panel { +display: none; +padding: 0 0 18px; +} +.mobile-card { +display: grid; +gap: 14px; +padding: 18px; +border-radius: 24px; +background: rgba(255, 255, 255, 0.88); +border: 1px solid rgba(18, 48, 89, 0.08); +box-shadow: var(--shadow); +} +.mobile-nav { +display: grid; +gap: 10px; +} +.mobile-nav a, +.mobile-card .header-phone, +.mobile-card .cart-button { +justify-content: center; +} +.hero { +position: relative; +padding: 34px 0 0; +overflow: hidden; +} +.hero-grid { +display: grid; +grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr); +gap: 28px; +align-items: stretch; +} +.hero-copy, +.hero-panel, +.catalog-card, +.glass-card, +.step-card, +.segment-card, +.promo-card, +.review-card, +.contact-card, +.faq-item, +.footer-card { +border-radius: var(--radius-xl); +background: var(--surface); +border: 1px solid rgba(255, 255, 255, 0.72); +backdrop-filter: blur(22px); +box-shadow: var(--shadow); +} +.hero-copy { +position: relative; +padding: clamp(28px, 4vw, 46px); +overflow: hidden; +isolation: isolate; +} +.hero-copy::before { +content: ""; +position: absolute; +inset: auto auto -24% -10%; +width: 64%; +height: 54%; +border-radius: 50%; +background: radial-gradient(circle, rgba(60, 200, 255, 0.22), transparent 62%); +z-index: -1; +} +.hero-copy::after { +content: ""; +position: absolute; +top: -18%; +right: -8%; +width: 280px; +height: 280px; +border-radius: 50%; +background: radial-gradient(circle, rgba(13, 79, 214, 0.16), transparent 58%); +z-index: -1; +} +.hero-title { +margin: 18px 0 18px; +font-family: "Manrope", sans-serif; +font-size: clamp(38px, 7vw, 62px); +line-height: 0.98; +letter-spacing: -0.05em; +} +.hero-title span { +color: var(--primary); +} +.hero-text { +max-width: 640px; +color: var(--muted); +font-size: clamp(16px, 2vw, 18px); +line-height: 1.72; +} +.hero-toggle { +display: inline-flex; +flex-wrap: wrap; +gap: 10px; +margin: 28px 0 18px; +padding: 8px; +border-radius: 999px; +background: rgba(255, 255, 255, 0.72); +border: 1px solid rgba(18, 48, 89, 0.08); +} +.toggle-button { +padding: 14px 18px; +border-radius: 999px; +font-weight: 800; +color: var(--muted); +} +.toggle-button.active { +background: linear-gradient(135deg, var(--primary-strong), var(--primary)); +color: #fff; +box-shadow: 0 16px 30px rgba(13, 79, 214, 0.22); +} +.hero-actions { +display: flex; +flex-wrap: wrap; +gap: 14px; +margin-top: 22px; +} +.button, +.ghost-button, +.mini-button { +display: inline-flex; +align-items: center; +justify-content: center; +gap: 10px; +border-radius: 999px; +font-weight: 800; +} +.button { +padding: 16px 22px; +color: #fff; +background: linear-gradient(135deg, var(--primary-strong), var(--primary)); +box-shadow: 0 18px 34px rgba(13, 79, 214, 0.26); +} +.ghost-button { +padding: 16px 22px; +background: rgba(255, 255, 255, 0.7); +border: 1px solid rgba(18, 48, 89, 0.1); +color: var(--primary-strong); +} +.mini-button { +padding: 13px 18px; +background: linear-gradient(135deg, var(--primary), #2d78ff); +color: #fff; +box-shadow: 0 14px 28px rgba(13, 79, 214, 0.22); +} +.button:hover, +.ghost-button:hover, +.mini-button:hover, +.cart-button:hover, +.header-phone:hover, +.chip:hover, +.mobile-toggle:hover { +transform: translateY(-2px); +} +.button:focus-visible, +.ghost-button:focus-visible, +.mini-button:focus-visible, +.cart-button:focus-visible, +.mobile-toggle:focus-visible, +.faq-question:focus-visible, +.close-button:focus-visible, +.header-phone:focus-visible, +.mobile-nav a:focus-visible, +.footer-links a:focus-visible, +.footer-legal a:focus-visible { +box-shadow: 0 0 0 4px rgba(13, 79, 214, 0.18); +} +.hero-stats { +display: grid; +grid-template-columns: repeat(3, minmax(0, 1fr)); +gap: 14px; +margin-top: 30px; +} +.stat-card { +padding: 16px; +border-radius: 22px; +background: rgba(255, 255, 255, 0.74); +border: 1px solid rgba(18, 48, 89, 0.08); +} +.stat-card strong { +display: block; +font-size: 24px; +color: var(--primary-strong); +} +.stat-card span { +display: block; +margin-top: 4px; +color: var(--muted); +font-size: 14px; +line-height: 1.5; +} +.hero-panel { +display: grid; +gap: 18px; +padding: 22px; +background: linear-gradient(180deg, rgba(9, 54, 145, 0.94), rgba(10, 43, 109, 0.97)); +color: #fff; +overflow: hidden; +} +.panel-top { +display: flex; +justify-content: space-between; +gap: 18px; +align-items: start; +} +.signal-pill { +display: inline-flex; +align-items: center; +gap: 8px; +padding: 8px 12px; +border-radius: 999px; +background: rgba(255, 255, 255, 0.12); +font-size: 13px; +font-weight: 800; +letter-spacing: 0.08em; +text-transform: uppercase; +} +.signal-pill::before { +content: ""; +width: 8px; +height: 8px; +border-radius: 50%; +background: #6ff7ca; +box-shadow: 0 0 0 6px rgba(111, 247, 202, 0.14); +} +.hero-panel h2 { +margin: 14px 0 10px; +font-family: "Manrope", sans-serif; +font-size: clamp(28px, 4.2vw, 42px); +line-height: 1.08; +letter-spacing: -0.03em; +} +h2 { +margin: 14px 0 10px; +font-family: "Manrope", sans-serif; +font-size: clamp(28px, 4.2vw, 42px); +line-height: 1.08; +letter-spacing: -0.03em; +} +.hero-panel p { +margin: 0; +color: rgba(255, 255, 255, 0.8); +line-height: 1.72; +} +.route-map { +position: relative; +min-height: 280px; +padding: 18px; +border-radius: 28px; +background: +radial-gradient(circle at 20% 20%, rgba(60, 200, 255, 0.28), transparent 22%), +radial-gradient(circle at 80% 30%, rgba(255, 255, 255, 0.18), transparent 20%), +linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)); +border: 1px solid rgba(255, 255, 255, 0.1); +overflow: hidden; +} +.route-map::before, +.route-map::after { +content: ""; +position: absolute; +inset: 18px; +border-radius: 22px; +border: 1px dashed rgba(255, 255, 255, 0.14); +} +.route-map::after { +inset: 44px; +border-style: solid; +border-color: rgba(255, 255, 255, 0.08); +} +.map-line { +position: absolute; +inset: auto 24px 50px 24px; +height: 160px; +border-radius: 120px; +border: 2px solid rgba(111, 247, 202, 0.45); +border-color: rgba(111, 247, 202, 0.45) transparent transparent transparent; +transform: rotate(-8deg); +} +.map-chip, +.delivery-chip { +position: absolute; +padding: 10px 12px; +border-radius: 16px; +background: rgba(255, 255, 255, 0.12); +border: 1px solid rgba(255, 255, 255, 0.1); +backdrop-filter: blur(12px); +font-size: 13px; +font-weight: 800; +box-shadow: 0 12px 20px rgba(4, 18, 51, 0.2); +} +.map-chip.one { top: 32px; left: 24px; } +.map-chip.two { top: 112px; right: 34px; } +.map-chip.three { bottom: 34px; left: 78px; } +.delivery-chip { bottom: 28px; right: 24px; color: #062764; background: rgba(111, 247, 202, 0.88); } +.hero-notes { +display: grid; +grid-template-columns: repeat(2, minmax(0, 1fr)); +gap: 12px; +} +.hero-note { +padding: 16px; +border-radius: 20px; +background: rgba(255, 255, 255, 0.1); +border: 1px solid rgba(255, 255, 255, 0.08); +} +.hero-note strong { +display: block; +margin-bottom: 6px; +font-size: 15px; +} +.hero-note span { +color: rgba(255, 255, 255, 0.74); +font-size: 14px; +line-height: 1.6; +} +.ticker { +display: grid; +grid-template-columns: repeat(4, minmax(0, 1fr)); +gap: 14px; +margin-top: 22px; +} +.ticker-item { +padding: 16px; +border-radius: 20px; +background: rgba(255, 255, 255, 0.7); +border: 1px solid rgba(18, 48, 89, 0.08); +text-align: center; +} +.ticker-item strong { +display: block; +font-size: 13px; +text-transform: uppercase; +letter-spacing: 0.08em; +color: var(--primary-strong); +margin-bottom: 8px; +} +.ticker-item span { +color: var(--muted); +font-weight: 700; +font-size: 14px; +} +.catalog-grid, +.delivery-grid, +.steps-grid, +.segments-grid, +.promo-grid, +.reviews-grid, +.contacts-grid, +.footer-grid { +display: grid; +gap: 18px; +} +.catalog-grid { +grid-template-columns: repeat(4, minmax(0, 1fr)); +} +.catalog-card { +padding: 22px; +display: flex; +flex-direction: column; +align-items: center; +gap: 14px; +min-height: 100%; +} +.catalog-icon { +width: 62px; +height: 62px; +display: grid; +place-items: center; +border-radius: 22px; +background: linear-gradient(135deg, rgba(60, 200, 255, 0.2), rgba(13, 79, 214, 0.12)); +color: var(--primary-strong); +} +.catalog-card h3, +.segment-card h3, +.promo-card h3, +.contact-card h3, +.glass-card h3 { +margin: 0; +font-size: 22px; +line-height: 1.2; +} +.catalog-card p, +.segment-card p, +.promo-card p, +.contact-card p, +.glass-card p, +.review-card p, +.faq-answer, +.about-copy p { +margin: 0; +color: var(--muted); +line-height: 1.7; +} +.tag-row, +.chip-row { +display: flex; +flex-wrap: wrap; +gap: 8px; +} +.chip { +padding: 10px 14px; +border-radius: 999px; +border: 1px solid rgba(18, 48, 89, 0.08); +background: rgba(255, 255, 255, 0.7); +font-size: 13px; +font-weight: 800; +color: var(--primary-strong); +} +.chip-row-spaced { +margin: 18px 0 20px; +} +.card-price { +display: flex; +align-items: baseline; +gap: 8px; +margin-top: auto; +} +.card-price strong { +font-size: 32px; +color: var(--primary-strong); +line-height: 1; +} +.card-price span { +color: var(--muted); +font-size: 14px; +} +.featured-grid, +.about-grid { +display: grid; +grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr); +gap: 18px; +} +.glass-card { +padding: 28px; +} +.product-table { +display: grid; +gap: 14px; +margin-top: 18px; +} +.product-row { +display: grid; +grid-template-columns: minmax(0, 1fr) auto auto; +gap: 14px; +align-items: center; +padding: 18px; +border-radius: 22px; +background: rgba(255, 255, 255, 0.7); +border: 1px solid rgba(18, 48, 89, 0.08); +} +.product-row strong { +display: block; +margin-bottom: 4px; +font-size: 18px; +} +.product-row span { +color: var(--muted); +font-size: 14px; +} +.product-row .price { +font-size: 30px; +font-weight: 800; +color: var(--primary-strong); +white-space: nowrap; +} +.delivery-grid, +.segments-grid, +.contacts-grid, +.footer-grid { +grid-template-columns: repeat(2, minmax(0, 1fr)); +} +.delivery-map, +.about-visual, +.map-placeholder { +position: relative; +min-height: 100%; +overflow: hidden; +} +.delivery-map { +padding: 28px; +background: linear-gradient(180deg, rgba(8, 51, 141, 0.96), rgba(11, 67, 175, 0.92)); +color: #fff; +} +.zone-card { +display: inline-flex; +align-items: center; +gap: 10px; +padding: 10px 14px; +border-radius: 16px; +background: rgba(255, 255, 255, 0.12); +border: 1px solid rgba(255, 255, 255, 0.08); +font-size: 14px; +font-weight: 700; +} +.zones { +display: flex; +flex-wrap: wrap; +gap: 12px; +margin-top: 18px; +} +.delivery-highlights { +display: grid; +gap: 12px; +margin-top: 20px; +} +.delivery-highlight-card { +padding: 16px; +border-radius: 18px; +background: rgba(255, 255, 255, 0.1); +border: 1px solid rgba(255, 255, 255, 0.14); +} +.delivery-highlight-card strong { +display: block; +font-size: 16px; +line-height: 1.25; +} +.delivery-highlight-card span { +display: block; +margin-top: 6px; +color: rgba(255, 255, 255, 0.8); +line-height: 1.55; +font-size: 14px; +} +.delivery-cta { +width: 100%; +margin-top: 6px; +} +.delivery-wave { +position: absolute; +width: 180%; +height: 180px; +left: -30%; +bottom: 40px; +border-radius: 50%; +border: 2px solid rgba(111, 247, 202, 0.3); +border-color: rgba(111, 247, 202, 0.3) transparent transparent transparent; +} +.delivery-pins { +position: relative; +min-height: 300px; +margin-top: 20px; +border-radius: 24px; +background: rgba(255, 255, 255, 0.08); +border: 1px solid rgba(255, 255, 255, 0.08); +overflow: hidden; +} +.delivery-pins::before { +content: ""; +position: absolute; +inset: 18px; +border-radius: 20px; +border: 1px dashed rgba(255, 255, 255, 0.18); +} +.eyebrow-inverse { +background: rgba(255, 255, 255, 0.12); +border-color: rgba(255, 255, 255, 0.16); +color: #fff; +} +.section-heading-compact { +margin: 16px 0 0; +line-height: 1.1; +} +.section-heading-delivery { +font-size: 30px; +} +.section-heading-map { +font-size: 28px; +max-width: 12ch; +} +.pin { +position: absolute; +display: inline-flex; +align-items: center; +gap: 8px; +padding: 10px 12px; +border-radius: 16px; +background: rgba(255, 255, 255, 0.14); +font-size: 13px; +font-weight: 800; +backdrop-filter: blur(10px); +} +.pin::before { +content: ""; +width: 10px; +height: 10px; +border-radius: 50%; +background: #6ff7ca; +} +.pin.one { top: 36px; left: 28px; } +.pin.two { top: 96px; right: 22px; } +.pin.three { bottom: 84px; left: 54px; } +.pin.four { bottom: 24px; right: 54px; } +.steps-grid, +.promo-grid, +.reviews-grid { +grid-template-columns: repeat(4, minmax(0, 1fr)); +} +.step-card, +.promo-card, +.review-card { +padding: 24px; +} +.step-number { +width: 52px; +height: 52px; +display: grid; +place-items: center; +margin-bottom: 18px; +border-radius: 18px; +background: linear-gradient(135deg, rgba(60, 200, 255, 0.26), rgba(13, 79, 214, 0.18)); +color: var(--primary-strong); +font-weight: 800; +font-size: 20px; +} +.segment-card, +.contact-card, +.footer-card { +padding: 28px; +} +.segment-card.featured { +background: linear-gradient(180deg, rgba(8, 51, 141, 0.96), rgba(11, 67, 175, 0.92)); +color: #fff; +} +.segment-card.featured p, +.segment-card.featured li, +.segment-card.featured .segment-meta { +color: rgba(255, 255, 255, 0.82); +} +.segment-list, +.contact-list, +.footer-links, +.footer-legal { +display: grid; +gap: 12px; +margin: 18px 0 0; +padding: 0; +list-style: none; +} +.segment-meta { +font-size: 14px; +color: var(--muted); +} +.promo-card.highlight { +background: linear-gradient(135deg, rgba(255, 209, 102, 0.34), rgba(255, 255, 255, 0.9)); +} +.faq-list { +display: grid; +gap: 12px; +} +.faq-item { +padding: 10px; +} +.faq-question { +width: 100%; +display: flex; +align-items: center; +justify-content: space-between; +gap: 14px; +padding: 16px 18px; +text-align: left; +border-radius: 20px; +font-weight: 800; +} +.faq-question span:last-child { +width: 34px; +height: 34px; +display: grid; +place-items: center; +border-radius: 12px; +background: rgba(13, 79, 214, 0.08); +color: var(--primary-strong); +flex-shrink: 0; +} +.faq-item.open .faq-question span:last-child { +background: rgba(13, 79, 214, 0.14); +transform: rotate(45deg); +} +.faq-answer { +max-height: 0; +overflow: hidden; +padding: 0 18px; +transition: max-height 0.28s ease, padding 0.28s ease; +} +.faq-item.open .faq-answer { +max-height: 180px; +padding: 0 18px 16px; +} +.about-visual { +min-height: 420px; +padding: 28px; +background: linear-gradient(180deg, rgba(219, 246, 255, 0.74), rgba(255, 255, 255, 0.9)); +} +.about-copy-secondary { +margin-top: 16px; +} +.quality-stack { +position: absolute; +inset: auto 28px 28px 28px; +display: grid; +gap: 12px; +} +.quality-card { +padding: 16px 18px; +border-radius: 20px; +background: rgba(255, 255, 255, 0.82); +border: 1px solid rgba(18, 48, 89, 0.08); +box-shadow: 0 16px 28px rgba(10, 43, 109, 0.12); +} +.droplet { +position: absolute; +top: 38px; +right: 38px; +width: 180px; +aspect-ratio: 0.84; +border-radius: 60% 60% 70% 70% / 80% 80% 40% 40%; +background: linear-gradient(180deg, rgba(60, 200, 255, 0.52), rgba(13, 79, 214, 0.3)); +transform: rotate(18deg); +box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.42), 0 30px 50px rgba(13, 79, 214, 0.16); +} +.droplet::before { +content: ""; +position: absolute; +inset: 18px 40px 44px 30px; +border-radius: 60% 60% 70% 70% / 80% 80% 40% 40%; +background: linear-gradient(180deg, rgba(255, 255, 255, 0.8), transparent); +opacity: 0.58; +} +.review-card strong { +display: block; +margin-bottom: 10px; +font-size: 18px; +} +.review-meta { +margin-top: 16px; +font-size: 14px; +color: var(--muted); +font-weight: 700; +} +.hero-actions-spaced { +margin-top: 22px; +} +.map-placeholder { +min-height: 320px; +padding: 24px; +border-radius: var(--radius-xl); +background: linear-gradient(180deg, rgba(8, 51, 141, 0.96), rgba(11, 67, 175, 0.92)); +color: #fff; +box-shadow: var(--shadow); +display: grid; +gap: 14px; +} +.map-copy { +max-width: 56ch; +color: rgba(255, 255, 255, 0.78); +line-height: 1.7; +} +.contact-fast-facts { +display: grid; +gap: 10px; +} +.contact-fact-card { +padding: 14px; +border-radius: 16px; +background: rgba(255, 255, 255, 0.1); +border: 1px solid rgba(255, 255, 255, 0.14); +} +.contact-fact-card strong { +display: block; +font-size: 15px; +line-height: 1.25; +} +.contact-fact-card span { +display: block; +margin-top: 5px; +color: rgba(255, 255, 255, 0.8); +line-height: 1.55; +font-size: 14px; +} +.contact-quick-actions { +display: grid; +gap: 10px; +margin-top: 2px; +} +.contact-quick-link { +display: block; +padding: 12px 14px; +border-radius: 14px; +color: #fff; +font-weight: 700; +background: rgba(255, 255, 255, 0.12); +border: 1px solid rgba(255, 255, 255, 0.14); +} +.contact-quick-link:hover { +background: rgba(255, 255, 255, 0.18); +} +.contact-form { +display: grid; +gap: 12px; +margin-top: 18px; +} +.field { +width: 100%; +padding: 16px 18px; +border-radius: 18px; +border: 1px solid rgba(18, 48, 89, 0.1); +background: rgba(255, 255, 255, 0.82); +color: var(--text); +outline: none; +} +.field:focus { +border-color: rgba(13, 79, 214, 0.4); +box-shadow: 0 0 0 4px rgba(13, 79, 214, 0.08); +} +textarea.field { +min-height: 120px; +resize: vertical; +} +.contact-list li, +.footer-links a, +.footer-legal a { +color: var(--muted); +} +.footer { +padding: 32px 0 42px; +} +.classic-footer { +width: 100%; +margin-top: 24px; +padding: 44px 0 28px; +background: #0a1f47; +border-top: 1px solid rgba(255, 255, 255, 0.16); +} +.classic-footer-shell { +display: grid; +gap: 22px; +} +.classic-footer-main { +display: grid; +grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(180px, 1fr)); +gap: 28px; +align-items: start; +} +.classic-footer-col { +min-width: 0; +} +.classic-footer-col h3 { +margin: 0; +color: #ffffff; +font-size: 18px; +line-height: 1.2; +} +.classic-footer .brand-text strong, +.classic-footer .brand-text span, +.classic-footer .footer-description, +.classic-footer .footer-links a, +.classic-footer .footer-legal a, +.classic-footer .footer-bottom { +color: rgba(255, 255, 255, 0.78); +} +.classic-footer .footer-links, +.classic-footer .footer-legal { +margin-top: 14px; +} +.classic-footer .footer-links a, +.classic-footer .footer-legal a { +transition: color 0.2s ease; +} +.classic-footer .footer-links a:hover, +.classic-footer .footer-legal a:hover, +.classic-footer .footer-links a:focus-visible, +.classic-footer .footer-legal a:focus-visible { +color: #ffffff; +} +.classic-footer-bottom { +margin-top: 8px; +padding-top: 16px; +border-top: 1px solid rgba(255, 255, 255, 0.16); +font-size: 13px; +} +.footer-grid { +align-items: start; +} +.footer-bottom { +display: flex; +justify-content: space-between; +gap: 20px; +align-items: center; +margin-top: 18px; +color: var(--muted); +font-size: 14px; +} +.footer-description { +margin: 20px 0 0; +color: var(--muted); +line-height: 1.7; +} +.modal-backdrop { +position: fixed; +inset: 0; +z-index: 60; +pointer-events: none; +opacity: 0; +transition: opacity 0.24s ease; +} +.modal-backdrop.open { +pointer-events: auto; +opacity: 1; +} +.modal-backdrop::before { +content: ""; +position: absolute; +inset: 0; +background: rgba(3, 17, 45, 0.42); +backdrop-filter: blur(10px); +} +.modal-card { +position: absolute; +background: rgba(255, 255, 255, 0.94); +border: 1px solid rgba(255, 255, 255, 0.82); +box-shadow: var(--shadow); +backdrop-filter: blur(24px); +} +.modal-card { +top: 50%; +left: 50%; +width: min(560px, calc(100% - 24px)); +padding: 24px; +border-radius: 28px; +transform: translate(-50%, -50%) scale(0.96); +transition: transform 0.24s ease; +} +.modal-backdrop.open .modal-card { +transform: translate(-50%, -50%) scale(1); +} +.modal-head { +display: flex; +justify-content: space-between; +gap: 18px; +align-items: start; +} +.modal-head h3 { +margin: 0; +font-size: 28px; +line-height: 1.1; +} +.dialog-copy { +margin: 8px 0 0; +color: var(--muted); +} +.close-button { +width: 42px; +height: 42px; +display: grid; +place-items: center; +border-radius: 14px; +background: rgba(13, 79, 214, 0.08); +color: var(--primary-strong); +font-size: 18px; +font-weight: 800; +} +.success-note { +display: none; +margin-top: 14px; +padding: 14px 16px; +border-radius: 16px; +background: rgba(25, 167, 111, 0.12); +color: #0d6d49; +font-weight: 700; +} +.success-note.visible { +display: block; +} +.reveal { +opacity: 0; +transform: translateY(28px); +animation: rise 0.8s ease forwards; +} +.reveal-delay-1 { animation-delay: 0.08s; +border-radius: var(--radius-xl); } +.reveal-delay-2 { animation-delay: 0.16s; } +.reveal-delay-3 { animation-delay: 0.24s; } +.reveal-delay-4 { animation-delay: 0.32s; } +@keyframes rise { +to { +opacity: 1; +transform: translateY(0); +} +} +@media (max-width: 1120px) { +.catalog-grid, +.steps-grid, +.promo-grid, +.reviews-grid { +grid-template-columns: repeat(2, minmax(0, 1fr)); +} +.hero-grid, +.featured-grid, +.about-grid { +grid-template-columns: 1fr; +} +.ticker { +grid-template-columns: repeat(2, minmax(0, 1fr)); +} +} +@media (max-width: 820px) { +.nav, +.header-actions .header-phone, +.header-actions .cart-button { +display: none; +} +.mobile-toggle, +.mobile-panel.active { +display: block; +} +.delivery-grid, +.segments-grid, +.contacts-grid, +.footer-grid, +.hero-notes, +.hero-stats { +grid-template-columns: 1fr; +} +.section-head, +.footer-bottom, +.product-row { +grid-template-columns: 1fr; +display: grid; +} +.product-row { +justify-items: start; +} +.classic-footer-main { +grid-template-columns: 1fr 1fr; +} +.classic-footer-main .brand-col { +grid-column: 1 / -1; +} +} +@media (max-width: 640px) { +.container { +width: min(var(--container), calc(100% - 20px)); +} +.hero, +.section, +.footer { +padding-top: 22px; +} +.catalog-grid, +.steps-grid, +.promo-grid, +.reviews-grid, +.ticker { +grid-template-columns: 1fr; +} +.hero-toggle { +width: 100%; +} +.toggle-button, +.button, +.ghost-button, +.mini-button { +width: 100%; +} +.hero-actions { +display: grid; +} +.panel-top, +.footer-bottom { +flex-direction: column; +align-items: start; +} +.classic-footer { +padding-top: 32px; +} +.classic-footer-main { +grid-template-columns: 1fr; +gap: 20px; +} +.classic-footer-main .brand-col { +grid-column: auto; +} +} +@media (prefers-reduced-motion: reduce) { +html { +scroll-behavior: auto; +} +*, +*::before, +*::after { +animation-duration: 0.01ms !important; +animation-iteration-count: 1 !important; +transition-duration: 0.01ms !important; +} +.reveal { +opacity: 1; +transform: none; +animation: none !important; +} +} \ No newline at end of file diff --git a/wp-content/cache/wpfc-minified/dtnbx2gx/bgsuq.css b/wp-content/cache/wpfc-minified/dtnbx2gx/bgsuq.css new file mode 100644 index 00000000..35b83a14 --- /dev/null +++ b/wp-content/cache/wpfc-minified/dtnbx2gx/bgsuq.css @@ -0,0 +1,2 @@ +@keyframes wc-skeleton-shimmer{to{transform:translateX(100%)}}body.wc-block-product-gallery-modal-open,body.wc-modal--open{overflow:hidden}.wc-block-grid__products .wc-block-grid__product-image{display:block;position:relative;text-decoration:none}.wc-block-grid__products .wc-block-grid__product-image a{border:0;box-shadow:none;outline:0;text-decoration:none}.wc-block-grid__products .wc-block-grid__product-image img{height:auto;max-width:100%;width:100%}.wc-block-grid__products .wc-block-grid__product-image img[hidden]{display:none}.wc-block-grid__products .wc-block-grid__product-image img[alt=""]{border:1px solid #f2f2f2}.edit-post-visual-editor .editor-block-list__block .wc-block-grid__product-title,.editor-styles-wrapper .wc-block-grid__product-title,.wc-block-grid__product-title{color:inherit;display:block;font-family:inherit;font-size:inherit;font-weight:700;line-height:1.2;padding:0}.wc-block-grid__product-price{display:block}.wc-block-grid__product-price .wc-block-grid__product-price__regular{margin-right:.5em}.wc-block-grid__product-add-to-cart.wp-block-button{white-space:normal;word-break:break-word}.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link{display:inline-flex;font-size:1em;justify-content:center;text-align:center;white-space:normal;word-break:break-word}.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link.loading{opacity:.25}.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link.added:after{content:"";display:inline-block;font-family:WooCommerce;height:auto;margin-left:.5em;width:auto}.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link.loading:after{animation:spin 2s linear infinite;content:"";display:inline-block;font-family:WooCommerce;height:auto;margin-left:.5em;width:auto}.has-5-columns:not(.alignfull) .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:after,.has-6-columns .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:after,.has-7-columns .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:after,.has-8-columns .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:after,.has-9-columns .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:after{content:"";margin:0}.wc-block-grid__product-rating,.wp-block-woocommerce-product-review-rating{display:block}.wc-block-grid__product-rating .star-rating,.wc-block-grid__product-rating .wc-block-grid__product-rating__stars,.wc-block-grid__product-rating .wc-block-product-review-rating__stars,.wp-block-woocommerce-product-review-rating .star-rating,.wp-block-woocommerce-product-review-rating .wc-block-grid__product-rating__stars,.wp-block-woocommerce-product-review-rating .wc-block-product-review-rating__stars{font-family:WooCommerce;font-size:1em;font-weight:400;height:1.618em;line-height:1.618;margin:0 auto;overflow:hidden;position:relative;text-align:left;width:5.3em}.wc-block-grid__product-rating .star-rating:before,.wc-block-grid__product-rating .wc-block-grid__product-rating__stars:before,.wc-block-grid__product-rating .wc-block-product-review-rating__stars:before,.wp-block-woocommerce-product-review-rating .star-rating:before,.wp-block-woocommerce-product-review-rating .wc-block-grid__product-rating__stars:before,.wp-block-woocommerce-product-review-rating .wc-block-product-review-rating__stars:before{content:"SSSSS";left:0;opacity:.5;position:absolute;right:0;top:0;white-space:nowrap}.wc-block-grid__product-rating .star-rating span,.wc-block-grid__product-rating .wc-block-grid__product-rating__stars span,.wc-block-grid__product-rating .wc-block-product-review-rating__stars span,.wp-block-woocommerce-product-review-rating .star-rating span,.wp-block-woocommerce-product-review-rating .wc-block-grid__product-rating__stars span,.wp-block-woocommerce-product-review-rating .wc-block-product-review-rating__stars span{left:0;overflow:hidden;padding-top:1.5em;position:absolute;right:0;top:0}.wc-block-grid__product-rating .star-rating span:before,.wc-block-grid__product-rating .wc-block-grid__product-rating__stars span:before,.wc-block-grid__product-rating .wc-block-product-review-rating__stars span:before,.wp-block-woocommerce-product-review-rating .star-rating span:before,.wp-block-woocommerce-product-review-rating .wc-block-grid__product-rating__stars span:before,.wp-block-woocommerce-product-review-rating .wc-block-product-review-rating__stars span:before{color:inherit;content:"SSSSS";left:0;position:absolute;right:0;top:0;white-space:nowrap}.wc-block-grid .wc-block-grid__product-onsale,.wc-block-grid__product-image .wc-block-grid__product-onsale{background:#fff;border:1px solid #43454b;border-radius:4px;color:#43454b;display:inline-block;font-size:.875em;font-weight:600;left:auto;padding:.25em .75em;position:absolute;right:4px;text-align:center;text-transform:uppercase;top:4px;width:auto;z-index:9}.wc-block-grid__product .wc-block-grid__product-image,.wc-block-grid__product .wc-block-grid__product-link{display:inline-block;position:relative}.wc-block-grid__product .wc-block-grid__product-image:not(.wc-block-components-product-image),.wc-block-grid__product .wc-block-grid__product-title{margin:0 0 12px}.wc-block-grid__product .wc-block-grid__product-add-to-cart,.wc-block-grid__product .wc-block-grid__product-onsale,.wc-block-grid__product .wc-block-grid__product-price,.wc-block-grid__product .wc-block-grid__product-rating{margin:0 auto 12px}.theme-twentysixteen .wc-block-grid .price ins{color:#77a464}.theme-twentynineteen .wc-block-grid__product{font-size:.88889em}.theme-twentynineteen .wc-block-components-product-sale-badge,.theme-twentynineteen .wc-block-components-product-title,.theme-twentynineteen .wc-block-grid__product-onsale,.theme-twentynineteen .wc-block-grid__product-title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.theme-twentynineteen .wc-block-grid__product-title:before{display:none}.theme-twentynineteen .wc-block-components-product-sale-badge,.theme-twentynineteen .wc-block-grid__product-onsale{line-height:1}.theme-twentynineteen .editor-styles-wrapper .wp-block-button .wp-block-button__link:not(.has-text-color){color:#fff}.theme-twentytwenty .wc-block-grid__product-link{color:#000}.theme-twentytwenty .wc-block-components-product-title,.theme-twentytwenty .wc-block-grid__product-title{color:#cd2653;font-family:-apple-system,blinkmacsystemfont,Helvetica Neue,helvetica,sans-serif;font-size:1em}.theme-twentytwenty .wp-block-columns .wc-block-components-product-title{margin-top:0}.theme-twentytwenty .wc-block-components-product-price .woocommerce-Price-amount,.theme-twentytwenty .wc-block-components-product-price__value,.theme-twentytwenty .wc-block-grid__product-price .woocommerce-Price-amount,.theme-twentytwenty .wc-block-grid__product-price__value{font-family:-apple-system,blinkmacsystemfont,Helvetica Neue,helvetica,sans-serif;font-size:.9em}.theme-twentytwenty .wc-block-components-product-price del,.theme-twentytwenty .wc-block-grid__product-price del{opacity:.7}.theme-twentytwenty .wc-block-components-product-price ins,.theme-twentytwenty .wc-block-grid__product-price ins{text-decoration:none}.theme-twentytwenty .star-rating,.theme-twentytwenty .wc-block-grid__product-rating{font-size:.7em}.theme-twentytwenty .star-rating .wc-block-components-product-rating__stars,.theme-twentytwenty .star-rating .wc-block-grid__product-rating__stars,.theme-twentytwenty .wc-block-grid__product-rating .wc-block-components-product-rating__stars,.theme-twentytwenty .wc-block-grid__product-rating .wc-block-grid__product-rating__stars{line-height:1}.theme-twentytwenty .wc-block-components-product-button>.wp-block-button__link,.theme-twentytwenty .wc-block-grid__product-add-to-cart>.wp-block-button__link{font-family:-apple-system,blinkmacsystemfont,Helvetica Neue,helvetica,sans-serif}.theme-twentytwenty .wc-block-components-product-sale-badge,.theme-twentytwenty .wc-block-grid__products .wc-block-grid__product-onsale{background:#cd2653;color:#fff;font-family:-apple-system,blinkmacsystemfont,Helvetica Neue,helvetica,sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.2;text-transform:uppercase}.theme-twentytwenty .wc-block-grid__products .wc-block-components-product-sale-badge{position:static}.theme-twentytwenty .wc-block-grid__products .wc-block-grid__product-image .wc-block-components-product-sale-badge{position:absolute}.theme-twentytwenty .wc-block-grid__products .wc-block-grid__product-onsale:not(.wc-block-components-product-sale-badge){position:absolute;right:4px;top:4px;z-index:1}.theme-twentytwenty .wc-block-active-filters__title,.theme-twentytwenty .wc-block-attribute-filter__title,.theme-twentytwenty .wc-block-price-filter__title,.theme-twentytwenty .wc-block-stock-filter__title{font-size:1em}.theme-twentytwenty .wc-block-active-filters .wc-block-active-filters__clear-all,.theme-twentytwenty .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link{font-size:.75em}@media only screen and (min-width:768px){.theme-twentytwenty .wc-block-grid__products .wc-block-grid__product-onsale{font-size:.875em;padding:.5em}}@media only screen and (min-width:1168px){.theme-twentytwenty .wc-block-grid__products .wc-block-grid__product-onsale{font-size:.875em;padding:.5em}}.theme-twentytwentytwo .wc-block-grid__product-add-to-cart .added_to_cart{display:block;margin-top:12px}.theme-twentytwentytwo .wc-block-components-product-price ins,.theme-twentytwentytwo .wc-block-grid__product-price ins{text-decoration:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal!important;padding:0;position:absolute!important;width:1px}.screen-reader-text:focus{clip:auto!important;background-color:#fff;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip-path:none;color:#2b2d2f;display:block;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}.wp-block-group.woocommerce.product .up-sells.upsells.products{max-width:var(--wp--style--global--wide-size)} +@keyframes wc-skeleton-shimmer{to{transform:translateX(100%)}}.wc-block-components-notice-banner{align-content:flex-start;align-items:stretch;background-color:#fff;border:1px solid #2f2f2f;border-radius:4px;box-sizing:border-box;color:#2f2f2f;display:flex;font-size:.875em;font-weight:400;gap:12px;line-height:1.5;margin:16px 0;padding:16px!important}.wc-block-components-notice-banner>.wc-block-components-notice-banner__content{align-self:center;flex-basis:100%;padding-right:16px;white-space:normal}.wc-block-components-notice-banner>.wc-block-components-notice-banner__content:last-child{padding-right:0}.wc-block-components-notice-banner>.wc-block-components-notice-banner__content .wc-block-components-notice-banner__summary{font-weight:600;margin:0 0 8px}.wc-block-components-notice-banner>.wc-block-components-notice-banner__content ol,.wc-block-components-notice-banner>.wc-block-components-notice-banner__content ul{margin:0 0 0 24px;padding:0}.wc-block-components-notice-banner>.wc-block-components-notice-banner__content ol li:after,.wc-block-components-notice-banner>.wc-block-components-notice-banner__content ul li:after{clear:both;content:"";display:block}.wc-block-components-notice-banner>.wc-block-components-notice-banner__content .wc-forward{appearance:none;background:transparent!important;border:0;color:#2f2f2f!important;float:right;margin:0;opacity:.7;padding:0!important;text-decoration-line:underline;text-underline-position:under;transition:all .2s ease-in-out}.wc-block-components-notice-banner>.wc-block-components-notice-banner__content .wc-forward:active,.wc-block-components-notice-banner>.wc-block-components-notice-banner__content .wc-forward:focus,.wc-block-components-notice-banner>.wc-block-components-notice-banner__content .wc-forward:hover{opacity:1;text-decoration:none}.wc-block-components-notice-banner>svg{fill:#fff;background-color:#2f2f2f;border-radius:50%;flex-grow:0;flex-shrink:0;height:100%;padding:2px}.wc-block-components-notice-banner>.wc-block-components-button{background:transparent none!important;border:0!important;box-shadow:none!important;color:#2f2f2f!important;flex:0 0 16px;height:16px!important;margin:6px 0 0 auto!important;min-height:auto!important;min-width:0!important;opacity:.6;outline:none!important;padding:0!important;width:16px!important}.wc-block-components-notice-banner>.wc-block-components-button>svg{margin:0!important}.wc-block-components-notice-banner>.wc-block-components-button:active,.wc-block-components-notice-banner>.wc-block-components-button:focus,.wc-block-components-notice-banner>.wc-block-components-button:hover{opacity:1}.wc-block-components-notice-banner>.wc-block-components-button:focus{outline:2px solid currentColor!important;outline-offset:0}.wc-block-components-notice-banner.is-error{background-color:#fff0f0;border-color:#cc1818}.wc-block-components-notice-banner.is-error>svg{background-color:#cc1818;transform:rotate(180deg)}.wc-block-components-notice-banner.is-warning{background-color:#fffbf4;border-color:#f0b849}.wc-block-components-notice-banner.is-warning>svg{background-color:#f0b849;transform:rotate(180deg)}.wc-block-components-notice-banner.is-success{background-color:#f4fff7;border-color:#4ab866}.wc-block-components-notice-banner.is-success>svg{background-color:#4ab866}.wc-block-components-notice-banner.is-info{background-color:#f4f8ff;border-color:#007cba}.wc-block-components-notice-banner.is-info>svg{background-color:#007cba}.wc-block-components-notice-banner:focus{outline-width:0}.wc-block-components-notice-banner:focus-visible{outline-style:solid;outline-width:2px}.woocommerce.wc-block-store-notices.alignwide{max-width:var(--wp--style--global--wide-size)} \ No newline at end of file diff --git a/wp-content/cache/wpfc-minified/fpqkr0nb/bgsuq.css b/wp-content/cache/wpfc-minified/fpqkr0nb/bgsuq.css new file mode 100644 index 00000000..e357552f --- /dev/null +++ b/wp-content/cache/wpfc-minified/fpqkr0nb/bgsuq.css @@ -0,0 +1 @@ +:root{--woocommerce:#720eec;--wc-green:#7ad03a;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32, 7, 7, 0.8);--wc-form-border-radius:4px;--wc-form-border-width:1px}.woocommerce .woocommerce-error .button,.woocommerce .woocommerce-info .button,.woocommerce .woocommerce-message .button,.woocommerce-page .woocommerce-error .button,.woocommerce-page .woocommerce-info .button,.woocommerce-page .woocommerce-message .button{float:right}.woocommerce .col2-set,.woocommerce-page .col2-set{width:100%}.woocommerce .col2-set::after,.woocommerce .col2-set::before,.woocommerce-page .col2-set::after,.woocommerce-page .col2-set::before{content:" ";display:table}.woocommerce .col2-set::after,.woocommerce-page .col2-set::after{clear:both}.woocommerce .col2-set .col-1,.woocommerce-page .col2-set .col-1{float:left;width:48%}.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-2{float:right;width:48%}.woocommerce img,.woocommerce-page img{height:auto;max-width:100%}.woocommerce #content div.product div.images,.woocommerce div.product div.images,.woocommerce-page #content div.product div.images,.woocommerce-page div.product div.images{float:left;width:48%}.woocommerce #content div.product div.thumbnails::after,.woocommerce #content div.product div.thumbnails::before,.woocommerce div.product div.thumbnails::after,.woocommerce div.product div.thumbnails::before,.woocommerce-page #content div.product div.thumbnails::after,.woocommerce-page #content div.product div.thumbnails::before,.woocommerce-page div.product div.thumbnails::after,.woocommerce-page div.product div.thumbnails::before{content:" ";display:table}.woocommerce #content div.product div.thumbnails::after,.woocommerce div.product div.thumbnails::after,.woocommerce-page #content div.product div.thumbnails::after,.woocommerce-page div.product div.thumbnails::after{clear:both}.woocommerce #content div.product div.thumbnails a,.woocommerce div.product div.thumbnails a,.woocommerce-page #content div.product div.thumbnails a,.woocommerce-page div.product div.thumbnails a{float:left;width:30.75%;margin-right:3.8%;margin-bottom:1em}.woocommerce #content div.product div.thumbnails a.last,.woocommerce div.product div.thumbnails a.last,.woocommerce-page #content div.product div.thumbnails a.last,.woocommerce-page div.product div.thumbnails a.last{margin-right:0}.woocommerce #content div.product div.thumbnails a.first,.woocommerce div.product div.thumbnails a.first,.woocommerce-page #content div.product div.thumbnails a.first,.woocommerce-page div.product div.thumbnails a.first{clear:both}.woocommerce #content div.product div.thumbnails.columns-1 a,.woocommerce div.product div.thumbnails.columns-1 a,.woocommerce-page #content div.product div.thumbnails.columns-1 a,.woocommerce-page div.product div.thumbnails.columns-1 a{width:100%;margin-right:0;float:none}.woocommerce #content div.product div.thumbnails.columns-2 a,.woocommerce div.product div.thumbnails.columns-2 a,.woocommerce-page #content div.product div.thumbnails.columns-2 a,.woocommerce-page div.product div.thumbnails.columns-2 a{width:48%}.woocommerce #content div.product div.thumbnails.columns-4 a,.woocommerce div.product div.thumbnails.columns-4 a,.woocommerce-page #content div.product div.thumbnails.columns-4 a,.woocommerce-page div.product div.thumbnails.columns-4 a{width:22.05%}.woocommerce #content div.product div.thumbnails.columns-5 a,.woocommerce div.product div.thumbnails.columns-5 a,.woocommerce-page #content div.product div.thumbnails.columns-5 a,.woocommerce-page div.product div.thumbnails.columns-5 a{width:16.9%}.woocommerce #content div.product div.summary,.woocommerce div.product div.summary,.woocommerce-page #content div.product div.summary,.woocommerce-page div.product div.summary{float:right;width:48%;clear:none}.woocommerce #content div.product .woocommerce-tabs,.woocommerce div.product .woocommerce-tabs,.woocommerce-page #content div.product .woocommerce-tabs,.woocommerce-page div.product .woocommerce-tabs{clear:both}.woocommerce #content div.product .woocommerce-tabs ul.tabs::after,.woocommerce #content div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs::after,.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs::after,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs::before,.woocommerce-page div.product .woocommerce-tabs ul.tabs::after,.woocommerce-page div.product .woocommerce-tabs ul.tabs::before{content:" ";display:table}.woocommerce #content div.product .woocommerce-tabs ul.tabs::after,.woocommerce div.product .woocommerce-tabs ul.tabs::after,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs::after,.woocommerce-page div.product .woocommerce-tabs ul.tabs::after{clear:both}.woocommerce #content div.product .woocommerce-tabs ul.tabs li,.woocommerce div.product .woocommerce-tabs ul.tabs li,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li,.woocommerce-page div.product .woocommerce-tabs ul.tabs li{display:inline-block}.woocommerce #content div.product #reviews .comment::after,.woocommerce #content div.product #reviews .comment::before,.woocommerce div.product #reviews .comment::after,.woocommerce div.product #reviews .comment::before,.woocommerce-page #content div.product #reviews .comment::after,.woocommerce-page #content div.product #reviews .comment::before,.woocommerce-page div.product #reviews .comment::after,.woocommerce-page div.product #reviews .comment::before{content:" ";display:table}.woocommerce #content div.product #reviews .comment::after,.woocommerce div.product #reviews .comment::after,.woocommerce-page #content div.product #reviews .comment::after,.woocommerce-page div.product #reviews .comment::after{clear:both}.woocommerce #content div.product #reviews .comment img,.woocommerce div.product #reviews .comment img,.woocommerce-page #content div.product #reviews .comment img,.woocommerce-page div.product #reviews .comment img{float:right;height:auto}.woocommerce ul.products,.woocommerce-page ul.products{clear:both}.woocommerce ul.products::after,.woocommerce ul.products::before,.woocommerce-page ul.products::after,.woocommerce-page ul.products::before{content:" ";display:table}.woocommerce ul.products::after,.woocommerce-page ul.products::after{clear:both}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{float:left;margin:0 3.8% 2.992em 0;padding:0;position:relative;width:22.05%;margin-left:0}.woocommerce ul.products li.first,.woocommerce-page ul.products li.first{clear:both}.woocommerce ul.products li.last,.woocommerce-page ul.products li.last{margin-right:0}.woocommerce ul.products.columns-1 li.product,.woocommerce-page ul.products.columns-1 li.product{width:100%;margin-right:0}.woocommerce ul.products.columns-2 li.product,.woocommerce-page ul.products.columns-2 li.product{width:48%}.woocommerce ul.products.columns-3 li.product,.woocommerce-page ul.products.columns-3 li.product{width:30.75%}.woocommerce ul.products.columns-5 li.product,.woocommerce-page ul.products.columns-5 li.product{width:16.95%}.woocommerce ul.products.columns-6 li.product,.woocommerce-page ul.products.columns-6 li.product{width:13.5%}.woocommerce-page.columns-1 ul.products li.product,.woocommerce.columns-1 ul.products li.product{width:100%;margin-right:0}.woocommerce-page.columns-2 ul.products li.product,.woocommerce.columns-2 ul.products li.product{width:48%}.woocommerce-page.columns-3 ul.products li.product,.woocommerce.columns-3 ul.products li.product{width:30.75%}.woocommerce-page.columns-5 ul.products li.product,.woocommerce.columns-5 ul.products li.product{width:16.95%}.woocommerce-page.columns-6 ul.products li.product,.woocommerce.columns-6 ul.products li.product{width:13.5%}.woocommerce .woocommerce-result-count,.woocommerce-page .woocommerce-result-count{float:left}.woocommerce .woocommerce-ordering,.woocommerce-page .woocommerce-ordering{float:right}.woocommerce .woocommerce-pagination ul.page-numbers::after,.woocommerce .woocommerce-pagination ul.page-numbers::before,.woocommerce-page .woocommerce-pagination ul.page-numbers::after,.woocommerce-page .woocommerce-pagination ul.page-numbers::before{content:" ";display:table}.woocommerce .woocommerce-pagination ul.page-numbers::after,.woocommerce-page .woocommerce-pagination ul.page-numbers::after{clear:both}.woocommerce .woocommerce-pagination ul.page-numbers li,.woocommerce-page .woocommerce-pagination ul.page-numbers li{display:inline-block}.woocommerce #content table.cart img,.woocommerce table.cart img,.woocommerce-page #content table.cart img,.woocommerce-page table.cart img{height:auto}.woocommerce #content table.cart td.actions,.woocommerce table.cart td.actions,.woocommerce-page #content table.cart td.actions,.woocommerce-page table.cart td.actions{text-align:right}.woocommerce #content table.cart td.actions .input-text,.woocommerce table.cart td.actions .input-text,.woocommerce-page #content table.cart td.actions .input-text,.woocommerce-page table.cart td.actions .input-text{width:80px}.woocommerce #content table.cart td.actions .coupon,.woocommerce table.cart td.actions .coupon,.woocommerce-page #content table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{float:left}.woocommerce .cart-collaterals,.woocommerce-page .cart-collaterals{width:100%}.woocommerce .cart-collaterals::after,.woocommerce .cart-collaterals::before,.woocommerce-page .cart-collaterals::after,.woocommerce-page .cart-collaterals::before{content:" ";display:table}.woocommerce .cart-collaterals::after,.woocommerce-page .cart-collaterals::after{clear:both}.woocommerce .cart-collaterals .related,.woocommerce-page .cart-collaterals .related{width:30.75%;float:left}.woocommerce .cart-collaterals .cross-sells,.woocommerce-page .cart-collaterals .cross-sells{width:48%;float:left}.woocommerce .cart-collaterals .cross-sells ul.products,.woocommerce-page .cart-collaterals .cross-sells ul.products{float:none}.woocommerce .cart-collaterals .cross-sells ul.products li,.woocommerce-page .cart-collaterals .cross-sells ul.products li{width:48%}.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .shipping_calculator{width:48%;clear:right;float:right}.woocommerce .cart-collaterals .shipping_calculator::after,.woocommerce .cart-collaterals .shipping_calculator::before,.woocommerce-page .cart-collaterals .shipping_calculator::after,.woocommerce-page .cart-collaterals .shipping_calculator::before{content:" ";display:table}.woocommerce .cart-collaterals .shipping_calculator::after,.woocommerce-page .cart-collaterals .shipping_calculator::after{clear:both}.woocommerce .cart-collaterals .shipping_calculator .col2-set .col-1,.woocommerce .cart-collaterals .shipping_calculator .col2-set .col-2,.woocommerce-page .cart-collaterals .shipping_calculator .col2-set .col-1,.woocommerce-page .cart-collaterals .shipping_calculator .col2-set .col-2{width:47%}.woocommerce .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cart_totals{float:right;width:48%}.woocommerce ul.cart_list li::after,.woocommerce ul.cart_list li::before,.woocommerce ul.product_list_widget li::after,.woocommerce ul.product_list_widget li::before,.woocommerce-page ul.cart_list li::after,.woocommerce-page ul.cart_list li::before,.woocommerce-page ul.product_list_widget li::after,.woocommerce-page ul.product_list_widget li::before{content:" ";display:table}.woocommerce ul.cart_list li::after,.woocommerce ul.product_list_widget li::after,.woocommerce-page ul.cart_list li::after,.woocommerce-page ul.product_list_widget li::after{clear:both}.woocommerce ul.cart_list li img,.woocommerce ul.product_list_widget li img,.woocommerce-page ul.cart_list li img,.woocommerce-page ul.product_list_widget li img{float:right;height:auto}.woocommerce form .form-row::after,.woocommerce form .form-row::before,.woocommerce-page form .form-row::after,.woocommerce-page form .form-row::before{content:" ";display:table}.woocommerce form .form-row::after,.woocommerce-page form .form-row::after{clear:both}.woocommerce form .form-row label,.woocommerce-page form .form-row label{display:block}.woocommerce form .form-row label.checkbox,.woocommerce-page form .form-row label.checkbox{display:inline}.woocommerce form .form-row select,.woocommerce-page form .form-row select{width:100%}.woocommerce form .form-row .input-text,.woocommerce-page form .form-row .input-text{box-sizing:border-box;width:100%}.woocommerce form .form-row-first,.woocommerce form .form-row-last,.woocommerce-page form .form-row-first,.woocommerce-page form .form-row-last{width:47%;overflow:visible}.woocommerce form .form-row-first,.woocommerce-page form .form-row-first{float:left}.woocommerce form .form-row-last,.woocommerce-page form .form-row-last{float:right}.woocommerce form .form-row-wide,.woocommerce-page form .form-row-wide{clear:both}.woocommerce form .password-input,.woocommerce-page form .password-input{display:flex;flex-direction:column;justify-content:center;position:relative}.woocommerce form .password-input input[type=password],.woocommerce-page form .password-input input[type=password]{padding-right:2.5rem}.woocommerce form .password-input input::-ms-reveal,.woocommerce-page form .password-input input::-ms-reveal{display:none}.woocommerce form .show-password-input,.woocommerce-page form .show-password-input{background-color:transparent;border-radius:0;border:0;color:var(--wc-form-color-text,#000);cursor:pointer;font-size:inherit;line-height:inherit;margin:0;padding:0;position:absolute;right:.7em;text-decoration:none;top:50%;transform:translateY(-50%);-moz-osx-font-smoothing:inherit;-webkit-appearance:none;-webkit-font-smoothing:inherit}.woocommerce form .show-password-input::before,.woocommerce-page form .show-password-input::before{background-repeat:no-repeat;background-size:cover;background-image:url('data:image/svg+xml,');content:"";display:block;height:22px;width:22px}.woocommerce form .show-password-input.display-password::before,.woocommerce-page form .show-password-input.display-password::before{background-image:url('data:image/svg+xml,')}.woocommerce #payment .form-row select,.woocommerce-page #payment .form-row select{width:auto}.woocommerce #payment .terms,.woocommerce #payment .wc-terms-and-conditions,.woocommerce-page #payment .terms,.woocommerce-page #payment .wc-terms-and-conditions{text-align:left;padding:0 1em 0 0;float:left}.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{float:right}.woocommerce .woocommerce-billing-fields::after,.woocommerce .woocommerce-billing-fields::before,.woocommerce .woocommerce-shipping-fields::after,.woocommerce .woocommerce-shipping-fields::before,.woocommerce-page .woocommerce-billing-fields::after,.woocommerce-page .woocommerce-billing-fields::before,.woocommerce-page .woocommerce-shipping-fields::after,.woocommerce-page .woocommerce-shipping-fields::before{content:" ";display:table}.woocommerce .woocommerce-billing-fields::after,.woocommerce .woocommerce-shipping-fields::after,.woocommerce-page .woocommerce-billing-fields::after,.woocommerce-page .woocommerce-shipping-fields::after{clear:both}.woocommerce .woocommerce-terms-and-conditions,.woocommerce-page .woocommerce-terms-and-conditions{margin-bottom:1.618em;padding:1.618em}.woocommerce .woocommerce-oembed,.woocommerce-page .woocommerce-oembed{position:relative}.woocommerce-account .woocommerce-MyAccount-navigation{float:left;width:30%}.woocommerce-account .woocommerce-MyAccount-content{float:right;width:68%}.woocommerce-account .woocommerce-MyAccount-content mark{background-color:transparent;color:inherit;font-weight:700}.woocommerce-page.left-sidebar #content.twentyeleven{width:58.4%;margin:0 7.6%;float:right}.woocommerce-page.right-sidebar #content.twentyeleven{margin:0 7.6%;width:58.4%;float:left}.twentyfourteen .tfwc{padding:12px 10px 0;max-width:474px;margin:0 auto}.twentyfourteen .tfwc .product .entry-summary{padding:0!important;margin:0 0 1.618em!important}.twentyfourteen .tfwc div.product.hentry.has-post-thumbnail{margin-top:0}@media screen and (min-width:673px){.twentyfourteen .tfwc{padding-right:30px;padding-left:30px}}@media screen and (min-width:1040px){.twentyfourteen .tfwc{padding-right:15px;padding-left:15px}}@media screen and (min-width:1110px){.twentyfourteen .tfwc{padding-right:30px;padding-left:30px}}@media screen and (min-width:1218px){.twentyfourteen .tfwc{margin-right:54px}.full-width .twentyfourteen .tfwc{margin-right:auto}}.twentyfifteen .t15wc{padding-left:7.6923%;padding-right:7.6923%;padding-top:7.6923%;margin-bottom:7.6923%;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.15)}.twentyfifteen .t15wc .page-title{margin-left:0}@media screen and (min-width:38.75em){.twentyfifteen .t15wc{margin-right:7.6923%;margin-left:7.6923%;margin-top:8.3333%}}@media screen and (min-width:59.6875em){.twentyfifteen .t15wc{margin-left:8.3333%;margin-right:8.3333%;padding:10%}.single-product .twentyfifteen .entry-summary{padding:0!important}}.twentysixteen .site-main{margin-right:7.6923%;margin-left:7.6923%}.twentysixteen .entry-summary{margin-right:0;margin-left:0}#content .twentysixteen div.product div.images,#content .twentysixteen div.product div.summary{width:46.42857%}@media screen and (min-width:44.375em){.twentysixteen .site-main{margin-right:23.0769%}}@media screen and (min-width:56.875em){.twentysixteen .site-main{margin-right:0;margin-left:0}.no-sidebar .twentysixteen .site-main{margin-right:15%;margin-left:15%}.no-sidebar .twentysixteen .entry-summary{margin-right:0;margin-left:0}}.rtl .woocommerce .col2-set .col-1,.rtl .woocommerce-page .col2-set .col-1{float:right}.rtl .woocommerce .col2-set .col-2,.rtl .woocommerce-page .col2-set .col-2{float:left} \ No newline at end of file diff --git a/wp-content/cache/wpfc-minified/index.html b/wp-content/cache/wpfc-minified/index.html new file mode 100644 index 00000000..e69de29b diff --git a/wp-content/cache/wpfc-minified/knet2smk/bgsuq.css b/wp-content/cache/wpfc-minified/knet2smk/bgsuq.css new file mode 100644 index 00000000..0f531d0f --- /dev/null +++ b/wp-content/cache/wpfc-minified/knet2smk/bgsuq.css @@ -0,0 +1,2 @@ +@charset "UTF-8"; +:root{--woocommerce:#720eec;--wc-green:#7ad03a;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32, 7, 7, 0.8);--wc-form-border-radius:4px;--wc-form-border-width:1px}@keyframes spin{100%{transform:rotate(360deg)}}@font-face{font-family:star;src:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff2) format("woff2"),url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff) format("woff"),url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff2) format("woff2"),url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff) format("woff"),url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.ttf) format("truetype");font-weight:400;font-style:normal}.woocommerce form .form-row{padding:3px;margin:0 0 6px}.woocommerce form .form-row [placeholder]:focus::-webkit-input-placeholder{-webkit-transition:opacity .5s .5s ease;transition:opacity .5s .5s ease;opacity:0}.woocommerce form .form-row label{line-height:2}.woocommerce form .form-row label.hidden{visibility:hidden}.woocommerce form .form-row label.inline{display:inline}.woocommerce form .form-row .woocommerce-input-wrapper .description{background:#1e85be;color:#fff;border-radius:3px;padding:1em;margin:.5em 0 0;clear:both;display:none;position:relative}.woocommerce form .form-row .woocommerce-input-wrapper .description a{color:#fff;text-decoration:underline;border:0;box-shadow:none}.woocommerce form .form-row .woocommerce-input-wrapper .description::before{left:50%;top:0;margin-top:-4px;transform:translateX(-50%) rotate(180deg);content:"";position:absolute;border-width:4px 6px 0 6px;border-style:solid;border-color:#1e85be transparent transparent transparent;z-index:100;display:block}.woocommerce form .form-row .input-checkbox{display:inline;margin:-2px 8px 0 0;text-align:center;vertical-align:middle}.woocommerce form .form-row .input-text,.woocommerce form .form-row select{font-family:inherit;font-weight:400;letter-spacing:normal;padding:.5em;display:block;background-color:var(--wc-form-color-background,#fff);border:var(--wc-form-border-width) solid var(--wc-form-border-color);border-radius:var(--wc-form-border-radius);color:var(--wc-form-color-text,#000);box-sizing:border-box;width:100%;margin:0;line-height:normal;height:auto}.woocommerce form .form-row .input-text:focus,.woocommerce form .form-row select:focus{border-color:currentColor}.woocommerce form .form-row select{cursor:pointer;appearance:none;padding-right:3em;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=);background-repeat:no-repeat;background-size:16px;background-position:calc(100% - .5em) 50%}.woocommerce form .form-row textarea{height:4em;line-height:1.5;box-shadow:none}.woocommerce form .form-row .required{color:var(--wc-red);font-weight:700;border:0!important;text-decoration:none;visibility:hidden}.woocommerce form .form-row .optional{visibility:visible}.woocommerce form .form-row.woocommerce-invalid label{color:var(--wc-red)}.woocommerce form .form-row.woocommerce-invalid input.input-text,.woocommerce form .form-row.woocommerce-invalid select{border-color:var(--wc-red)}.woocommerce form .form-row.woocommerce-invalid .select2-container:not(.select2-container--open) .select2-selection{border-color:var(--wc-red)}.woocommerce form .form-row.woocommerce-validated input.input-text,.woocommerce form .form-row.woocommerce-validated select{border-color:var(--wc-green)}.woocommerce form .form-row.woocommerce-validated .select2-container:not(.select2-container--open) .select2-selection{border-color:var(--wc-green)}.woocommerce form .form-row ::-webkit-input-placeholder{line-height:normal}.woocommerce form .form-row :-moz-placeholder{line-height:normal}.woocommerce form .form-row :-ms-input-placeholder{line-height:normal}:where(.woocommerce) .select2-container{width:100%}:where(.woocommerce) .select2-container .select2-selection--single{height:auto}:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__rendered{padding:.5em;line-height:normal;box-sizing:border-box;color:var(--wc-form-color-text,#444);font-weight:400}:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__placeholder{color:#999}:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__arrow{position:absolute;top:2px;right:.5em;height:100%;width:16px}:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__arrow b{border:none;display:block;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=) no-repeat;background-size:16px;width:16px;height:16px;position:absolute;top:50%;left:0;margin:-8px 0 0}:where(.woocommerce) .select2-container .select2-dropdown,:where(.woocommerce) .select2-container .select2-selection{background-color:var(--wc-form-color-background,#fff);border:var(--wc-form-border-width,1px) solid var(--wc-form-border-color,#aaa);border-radius:var(--wc-form-border-radius,4px)}:where(.woocommerce) .select2-container.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}:where(.woocommerce) .select2-container.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}:where(.woocommerce) .select2-results__options{list-style:none;margin:0;padding:0}:where(.woocommerce) .select2-results__option{margin:0}.woocommerce-store-notice,p.demo_store{position:absolute;top:0;left:0;right:0;margin:0;width:100%;font-size:1em;padding:1em 0;text-align:center;background-color:#720eec;color:#fcfbfe;z-index:99998;box-shadow:0 1px 1em rgba(0,0,0,.2);display:none}.woocommerce-store-notice a,p.demo_store a{color:#fcfbfe;text-decoration:underline}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.admin-bar p.demo_store{top:32px}.clear{clear:both}.woocommerce .blockUI.blockOverlay{position:relative}.woocommerce .blockUI.blockOverlay::before{height:1em;width:1em;display:block;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;content:"";animation:spin 1s ease-in-out infinite;background:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}.woocommerce .loader::before{height:1em;width:1em;display:block;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;content:"";animation:spin 1s ease-in-out infinite;background:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}.woocommerce a.remove{display:block;font-size:1.5em;height:1em;width:1em;text-align:center;line-height:1;border-radius:100%;color:var(--wc-red)!important;text-decoration:none;font-weight:700;border:0}.woocommerce a.remove:hover{color:#fff!important;background:var(--wc-red)}.woocommerce small.note{display:block;color:#767676;font-size:.857em;margin-top:10px}.woocommerce .woocommerce-breadcrumb{margin:0 0 1em;padding:0}.woocommerce .woocommerce-breadcrumb::after,.woocommerce .woocommerce-breadcrumb::before{content:" ";display:table}.woocommerce .woocommerce-breadcrumb::after{clear:both}.woocommerce .quantity .qty{width:3.631em;text-align:center}.woocommerce div.product{margin-bottom:0;position:relative}.woocommerce div.product .product_title{clear:none;margin-top:0;padding:0}.woocommerce div.product p.price ins,.woocommerce div.product span.price ins{background:inherit;font-weight:700;display:inline-block}.woocommerce div.product p.price del,.woocommerce div.product span.price del{opacity:.7;display:inline-block}.woocommerce div.product p.stock{font-size:.92em}.woocommerce div.product .woocommerce-product-rating{margin-bottom:1.618em}.woocommerce div.product div.images{margin-bottom:2em}.woocommerce div.product div.images img{display:block;width:100%;height:auto;box-shadow:none}.woocommerce div.product div.images div.thumbnails{padding-top:1em}.woocommerce div.product div.images.woocommerce-product-gallery{position:relative}.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{transition:all cubic-bezier(.795,-.035,0,1) .5s;margin:0;padding:0}.woocommerce div.product div.images .woocommerce-product-gallery__wrapper .zoomImg{background-color:#fff;opacity:0}.woocommerce div.product div.images .woocommerce-product-gallery__image--placeholder{border:1px solid #f2f2f2}.woocommerce div.product div.images .woocommerce-product-gallery__image:nth-child(n+2){width:25%;display:inline-block}.woocommerce div.product div.images .woocommerce-product-gallery__image a{display:block;outline-offset:-2px}.woocommerce div.product div.images .woocommerce-product-gallery__trigger{background:#fff;border:none;box-sizing:content-box;border-radius:100%;cursor:pointer;font-size:2em;height:36px;padding:0;position:absolute;right:.5em;text-indent:-9999px;top:.5em;width:36px;z-index:99}.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before{border:2px solid #000;border-radius:100%;box-sizing:content-box;content:"";display:block;height:10px;left:9px;top:9px;position:absolute;width:10px}.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after{background:#000;border-radius:6px;box-sizing:content-box;content:"";display:block;height:8px;left:22px;position:absolute;top:19px;transform:rotate(-45deg);width:2px}.woocommerce div.product div.images .woocommerce-product-gallery__trigger span[aria-hidden=true]{border:0;clip-path:inset(50%);height:1px;left:50%;margin:-1px;overflow:hidden;position:absolute;top:50%;width:1px}.woocommerce div.product div.images .flex-control-thumbs{overflow:hidden;zoom:1;margin:0;padding:0}.woocommerce div.product div.images .flex-control-thumbs li{width:25%;float:left;margin:0;list-style:none}.woocommerce div.product div.images .flex-control-thumbs li img{cursor:pointer;opacity:.5;margin:0}.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,.woocommerce div.product div.images .flex-control-thumbs li img:hover{opacity:1}.woocommerce div.product .woocommerce-product-gallery--columns-3 .flex-control-thumbs li:nth-child(3n+1){clear:left}.woocommerce div.product .woocommerce-product-gallery--columns-4 .flex-control-thumbs li:nth-child(4n+1){clear:left}.woocommerce div.product .woocommerce-product-gallery--columns-5 .flex-control-thumbs li:nth-child(5n+1){clear:left}.woocommerce div.product div.summary{margin-bottom:2em}.woocommerce div.product div.social{text-align:right;margin:0 0 1em}.woocommerce div.product div.social span{margin:0 0 0 2px}.woocommerce div.product div.social span span{margin:0}.woocommerce div.product div.social span .stButton .chicklets{padding-left:16px;width:0}.woocommerce div.product div.social iframe{float:left;margin-top:3px}.woocommerce div.product .woocommerce-tabs ul.tabs{list-style:none;padding:0 0 0 1em;margin:0 0 1.618em;overflow:hidden;position:relative}.woocommerce div.product .woocommerce-tabs ul.tabs li{border:1px solid #cfc8d8;background-color:#e9e6ed;color:#515151;display:inline-block;position:relative;z-index:0;border-radius:4px 4px 0 0;margin:0 -5px;padding:0 1em}.woocommerce div.product .woocommerce-tabs ul.tabs li a{display:inline-block;padding:.5em 0;font-weight:700;color:#515151;text-decoration:none}.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{text-decoration:none;color:#6b6b6b}.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:#fff;color:#515151;z-index:2;border-bottom-color:#fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:inherit;text-shadow:inherit}.woocommerce div.product .woocommerce-tabs ul.tabs li.active::before{box-shadow:2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active::after{box-shadow:-2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li::after,.woocommerce div.product .woocommerce-tabs ul.tabs li::before{border:1px solid #cfc8d8;position:absolute;bottom:-1px;width:5px;height:5px;content:" ";box-sizing:border-box}.woocommerce div.product .woocommerce-tabs ul.tabs li::before{left:-5px;border-bottom-right-radius:4px;border-width:0 1px 1px 0;box-shadow:2px 2px 0 #e9e6ed}.woocommerce div.product .woocommerce-tabs ul.tabs li::after{right:-5px;border-bottom-left-radius:4px;border-width:0 0 1px 1px;box-shadow:-2px 2px 0 #e9e6ed}.woocommerce div.product .woocommerce-tabs ul.tabs::before{position:absolute;content:" ";width:100%;bottom:0;left:0;border-bottom:1px solid #cfc8d8;z-index:1}.woocommerce div.product .woocommerce-tabs .panel{margin:0 0 2em;padding:0}.woocommerce div.product p.cart{margin-bottom:2em}.woocommerce div.product p.cart::after,.woocommerce div.product p.cart::before{content:" ";display:table}.woocommerce div.product p.cart::after{clear:both}.woocommerce div.product form.cart{margin-bottom:2em}.woocommerce div.product form.cart::after,.woocommerce div.product form.cart::before{content:" ";display:table}.woocommerce div.product form.cart::after{clear:both}.woocommerce div.product form.cart div.quantity{float:left;margin:0 4px 0 0}.woocommerce div.product form.cart table{border-width:0 0 1px}.woocommerce div.product form.cart table td{padding-left:0}.woocommerce div.product form.cart table div.quantity{float:none;margin:0}.woocommerce div.product form.cart table small.stock{display:block;float:none}.woocommerce div.product form.cart .variations{margin-bottom:1em;border:0;width:100%}.woocommerce div.product form.cart .variations td,.woocommerce div.product form.cart .variations th{border:0;line-height:2em;vertical-align:top}.woocommerce div.product form.cart .variations label{font-weight:700;text-align:left}.woocommerce div.product form.cart .variations select{max-width:100%;min-width:75%;display:inline-block;margin-right:1em;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:3em;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=) no-repeat;background-size:16px;-webkit-background-size:16px;background-position:calc(100% - 12px) 50%;-webkit-background-position:calc(100% - 12px) 50%}.woocommerce div.product form.cart .variations td.label{padding-right:1em}.woocommerce div.product form.cart .woocommerce-variation-description p{margin-bottom:1em}.woocommerce div.product form.cart .reset_variations{visibility:hidden;font-size:.83em}.woocommerce div.product form.cart .wc-no-matching-variations{display:none}.woocommerce div.product form.cart .button{vertical-align:middle;float:left}.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__label{padding-right:1em;padding-left:1em}.woocommerce div.product form.cart .group_table td{vertical-align:top;padding-bottom:.5em;border:0}.woocommerce div.product form.cart .group_table td:first-child{width:4em;text-align:center}.woocommerce div.product form.cart .group_table .wc-grouped-product-add-to-cart-checkbox{display:inline-block;width:auto;margin:0 auto;transform:scale(1.5,1.5)}.woocommerce span.onsale{min-height:3.236em;min-width:3.236em;padding:.202em;font-size:1em;font-weight:700;position:absolute;text-align:center;line-height:3.236;top:-.5em;left:-.5em;margin:0;border-radius:100%;background-color:#958e09;color:#fff;font-size:.857em;z-index:9}.woocommerce .products ul,.woocommerce ul.products{margin:0 0 1em;padding:0;list-style:none outside;clear:both}.woocommerce .products ul::after,.woocommerce .products ul::before,.woocommerce ul.products::after,.woocommerce ul.products::before{content:" ";display:table}.woocommerce .products ul::after,.woocommerce ul.products::after{clear:both}.woocommerce .products ul li,.woocommerce ul.products li{list-style:none outside}.woocommerce ul.products li.product .onsale{top:0;right:0;left:auto;margin:-.5em -.5em 0 0}.woocommerce ul.products li.product .woocommerce-loop-category__title,.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce ul.products li.product h3{padding:.5em 0;margin:0;font-size:1em}.woocommerce ul.products li.product a{text-decoration:none}.woocommerce ul.products li.product a.woocommerce-loop-product__link{display:block}.woocommerce ul.products li.product a img{width:100%;height:auto;display:block;margin:0 0 1em;box-shadow:none}.woocommerce ul.products li.product strong{display:block}.woocommerce ul.products li.product .woocommerce-placeholder{border:1px solid #f2f2f2}.woocommerce ul.products li.product .star-rating{font-size:.857em}.woocommerce ul.products li.product .button{display:inline-block;margin-top:1em}.woocommerce ul.products li.product .price{display:block;font-weight:400;margin-bottom:.5em;font-size:.857em}.woocommerce ul.products li.product .price del{color:inherit;opacity:.7;display:inline-block}.woocommerce ul.products li.product .price ins{background:0 0;font-weight:700;display:inline-block}.woocommerce ul.products li.product .price .from{font-size:.67em;margin:-2px 0 0 0;text-transform:uppercase;color:rgba(90,89,68,.5)}.woocommerce .woocommerce-result-count{margin:0 0 1em}.woocommerce .woocommerce-ordering{margin:0 0 1em}.woocommerce .woocommerce-ordering>label{margin-right:.25rem}.woocommerce .woocommerce-ordering select{vertical-align:top}.woocommerce nav.woocommerce-pagination{text-align:center}.woocommerce nav.woocommerce-pagination ul{display:inline-block;white-space:nowrap;padding:0;clear:both;border:1px solid #cfc8d8;border-right:0;margin:1px}.woocommerce nav.woocommerce-pagination ul li{border-right:1px solid #cfc8d8;padding:0;margin:0;float:left;display:inline;overflow:hidden}.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{margin:0;text-decoration:none;padding:0;line-height:1;font-size:1em;font-weight:400;padding:.5em;min-width:1em;display:block}.woocommerce nav.woocommerce-pagination ul li a:focus,.woocommerce nav.woocommerce-pagination ul li a:hover,.woocommerce nav.woocommerce-pagination ul li span.current{background:#e9e6ed;color:#816f98}.woocommerce .cart .button,.woocommerce .cart input.button{float:none}.woocommerce a.added_to_cart{padding-top:.5em;display:inline-block}.woocommerce #reviews h2 small{float:right;color:#767676;font-size:15px;margin:10px 0 0}.woocommerce #reviews h2 small a{text-decoration:none;color:#767676}.woocommerce #reviews h3{margin:0}.woocommerce #reviews #respond{margin:0;border:0;padding:0}.woocommerce #reviews #comment{height:75px}.woocommerce #reviews #comments .add_review::after,.woocommerce #reviews #comments .add_review::before{content:" ";display:table}.woocommerce #reviews #comments .add_review::after{clear:both}.woocommerce #reviews #comments h2{clear:none}.woocommerce #reviews #comments ol.commentlist{margin:0;width:100%;background:0 0;list-style:none}.woocommerce #reviews #comments ol.commentlist::after,.woocommerce #reviews #comments ol.commentlist::before{content:" ";display:table}.woocommerce #reviews #comments ol.commentlist::after{clear:both}.woocommerce #reviews #comments ol.commentlist li{padding:0;margin:0 0 20px;border:0;position:relative;background:0;border:0}.woocommerce #reviews #comments ol.commentlist li img.avatar{float:left;position:absolute;top:0;left:0;padding:3px;width:32px;height:auto;background:#e9e6ed;border:1px solid #e1dde7;margin:0;box-shadow:none}.woocommerce #reviews #comments ol.commentlist li .comment-text{margin:0 0 0 50px;border:1px solid #e1dde7;border-radius:4px;padding:1em 1em 0}.woocommerce #reviews #comments ol.commentlist li .comment-text::after,.woocommerce #reviews #comments ol.commentlist li .comment-text::before{content:" ";display:table}.woocommerce #reviews #comments ol.commentlist li .comment-text::after{clear:both}.woocommerce #reviews #comments ol.commentlist li .comment-text p{margin:0 0 1em}.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta{font-size:.83em}.woocommerce #reviews #comments ol.commentlist ul.children{list-style:none outside;margin:20px 0 0 50px}.woocommerce #reviews #comments ol.commentlist ul.children .star-rating{display:none}.woocommerce #reviews #comments ol.commentlist #respond{border:1px solid #e1dde7;border-radius:4px;padding:1em 1em 0;margin:20px 0 0 50px}.woocommerce #reviews #comments .commentlist>li::before{content:""}.woocommerce .star-rating{float:right;overflow:hidden;position:relative;height:1em;line-height:1;font-size:1em;width:5.4em;font-family:WooCommerce}.woocommerce .star-rating::before{content:"sssss";color:#cfc8d8;float:left;top:0;left:0;position:absolute}.woocommerce .star-rating span{overflow:hidden;float:left;top:0;left:0;position:absolute;padding-top:1.5em}.woocommerce .star-rating span::before{content:"SSSSS";top:0;position:absolute;left:0}.woocommerce .woocommerce-product-rating{line-height:2;display:block}.woocommerce .woocommerce-product-rating::after,.woocommerce .woocommerce-product-rating::before{content:" ";display:table}.woocommerce .woocommerce-product-rating::after{clear:both}.woocommerce .woocommerce-product-rating .star-rating{margin:.5em 4px 0 0;float:left}.woocommerce .products .star-rating{display:block;margin:0 0 .5em;float:none}.woocommerce .hreview-aggregate .star-rating{margin:10px 0 0}.woocommerce #review_form #respond{position:static;margin:0;width:auto;padding:0;background:transparent none;border:0}.woocommerce #review_form #respond::after,.woocommerce #review_form #respond::before{content:" ";display:table}.woocommerce #review_form #respond::after{clear:both}.woocommerce #review_form #respond p{margin:0 0 10px}.woocommerce #review_form #respond .form-submit input{left:auto}.woocommerce #review_form #respond textarea{box-sizing:border-box;width:100%}.woocommerce p.stars a{position:relative;height:1em;width:1em;text-indent:-999em;display:inline-block;text-decoration:none;font-size:24px}.woocommerce p.stars a::before{display:block;position:absolute;top:0;left:0;width:1em;height:1em;line-height:1;font-family:WooCommerce;content:"\e021";text-indent:0}.woocommerce p.stars a:hover~a::before{content:"\e021"}.woocommerce p.stars:hover a::before{content:"\e020"}.woocommerce p.stars.selected a.active::before{content:"\e020"}.woocommerce p.stars.selected a.active~a::before{content:"\e021"}.woocommerce p.stars.selected a:not(.active)::before{content:"\e020"}.woocommerce table.shop_attributes{border:0;border-top:1px dotted rgba(0,0,0,.1);margin-bottom:1.618em;width:100%}.woocommerce table.shop_attributes th{width:150px;font-weight:700;padding:8px;border-top:0;border-bottom:1px dotted rgba(0,0,0,.1);margin:0;line-height:1.5}.woocommerce table.shop_attributes td{font-style:italic;padding:0;border-top:0;border-bottom:1px dotted rgba(0,0,0,.1);margin:0;line-height:1.5}.woocommerce table.shop_attributes td p{margin:0;padding:8px 0}.woocommerce table.shop_attributes tr:nth-child(even) td,.woocommerce table.shop_attributes tr:nth-child(even) th{background:rgba(0,0,0,.025)}.woocommerce table.shop_table{border:1px solid rgba(0,0,0,.1);margin:0 -1px 24px 0;text-align:left;width:100%;border-collapse:separate;border-radius:5px}.woocommerce table.shop_table th{font-weight:700;padding:9px 12px;line-height:1.5em}.woocommerce table.shop_table td{border-top:1px solid rgba(0,0,0,.1);padding:9px 12px;vertical-align:middle;line-height:1.5em}.woocommerce table.shop_table td small{font-weight:400}.woocommerce table.shop_table td del{font-weight:400}.woocommerce table.shop_table tbody:first-child tr:first-child td,.woocommerce table.shop_table tbody:first-child tr:first-child th{border-top:0}.woocommerce table.shop_table tbody th,.woocommerce table.shop_table tfoot td,.woocommerce table.shop_table tfoot th{font-weight:700;border-top:1px solid rgba(0,0,0,.1)}.woocommerce table.my_account_orders{font-size:.85em}.woocommerce table.my_account_orders td,.woocommerce table.my_account_orders th{padding:4px 8px;vertical-align:middle}.woocommerce table.my_account_orders .button{white-space:nowrap}.woocommerce table.woocommerce-MyAccount-downloads td,.woocommerce table.woocommerce-MyAccount-downloads th{vertical-align:top;text-align:center}.woocommerce table.woocommerce-MyAccount-downloads td:first-child,.woocommerce table.woocommerce-MyAccount-downloads th:first-child{text-align:left}.woocommerce table.woocommerce-MyAccount-downloads td:last-child,.woocommerce table.woocommerce-MyAccount-downloads th:last-child{text-align:left}.woocommerce table.woocommerce-MyAccount-downloads td .woocommerce-MyAccount-downloads-file::before,.woocommerce table.woocommerce-MyAccount-downloads th .woocommerce-MyAccount-downloads-file::before{content:"↓";display:inline-block}.woocommerce td.product-name .wc-item-meta,.woocommerce td.product-name dl.variation{list-style:none outside}.woocommerce td.product-name .wc-item-meta .wc-item-meta-label,.woocommerce td.product-name .wc-item-meta dt,.woocommerce td.product-name dl.variation .wc-item-meta-label,.woocommerce td.product-name dl.variation dt{float:left;clear:both;margin-right:.25em;display:inline-block;list-style:none outside}.woocommerce td.product-name .wc-item-meta dd,.woocommerce td.product-name dl.variation dd{margin:0}.woocommerce td.product-name .wc-item-meta p,.woocommerce td.product-name .wc-item-meta:last-child,.woocommerce td.product-name dl.variation p,.woocommerce td.product-name dl.variation:last-child{margin-bottom:0}.woocommerce td.product-name p.backorder_notification{font-size:.83em}.woocommerce td.product-quantity{min-width:80px}.woocommerce ul.cart_list,.woocommerce ul.product_list_widget{list-style:none outside;padding:0;margin:0}.woocommerce ul.cart_list li,.woocommerce ul.product_list_widget li{padding:4px 0;margin:0;list-style:none}.woocommerce ul.cart_list li::after,.woocommerce ul.cart_list li::before,.woocommerce ul.product_list_widget li::after,.woocommerce ul.product_list_widget li::before{content:" ";display:table}.woocommerce ul.cart_list li::after,.woocommerce ul.product_list_widget li::after{clear:both}.woocommerce ul.cart_list li a,.woocommerce ul.product_list_widget li a{display:block;font-weight:700}.woocommerce ul.cart_list li img,.woocommerce ul.product_list_widget li img{float:right;margin-left:4px;width:32px;height:auto;box-shadow:none}.woocommerce ul.cart_list li dl,.woocommerce ul.product_list_widget li dl{margin:0;padding-left:1em;border-left:2px solid rgba(0,0,0,.1)}.woocommerce ul.cart_list li dl::after,.woocommerce ul.cart_list li dl::before,.woocommerce ul.product_list_widget li dl::after,.woocommerce ul.product_list_widget li dl::before{content:" ";display:table}.woocommerce ul.cart_list li dl::after,.woocommerce ul.product_list_widget li dl::after{clear:both}.woocommerce ul.cart_list li dl dd,.woocommerce ul.cart_list li dl dt,.woocommerce ul.product_list_widget li dl dd,.woocommerce ul.product_list_widget li dl dt{display:inline-block;float:left;margin-bottom:1em}.woocommerce ul.cart_list li dl dt,.woocommerce ul.product_list_widget li dl dt{font-weight:700;padding:0 0 .25em;margin:0 4px 0 0;clear:left}.woocommerce ul.cart_list li dl dd,.woocommerce ul.product_list_widget li dl dd{padding:0 0 .25em}.woocommerce ul.cart_list li dl dd p:last-child,.woocommerce ul.product_list_widget li dl dd p:last-child{margin-bottom:0}.woocommerce ul.cart_list li .star-rating,.woocommerce ul.product_list_widget li .star-rating{float:none}.woocommerce .widget_shopping_cart .total,.woocommerce.widget_shopping_cart .total{border-top:3px double #e9e6ed;padding:4px 0 0}.woocommerce .widget_shopping_cart .total strong,.woocommerce.widget_shopping_cart .total strong{min-width:40px;display:inline-block}.woocommerce .widget_shopping_cart .cart_list li,.woocommerce.widget_shopping_cart .cart_list li{padding-left:2em;position:relative;padding-top:0}.woocommerce .widget_shopping_cart .cart_list li a.remove,.woocommerce.widget_shopping_cart .cart_list li a.remove{position:absolute;top:0;left:0}.woocommerce .widget_shopping_cart .buttons::after,.woocommerce .widget_shopping_cart .buttons::before,.woocommerce.widget_shopping_cart .buttons::after,.woocommerce.widget_shopping_cart .buttons::before{content:" ";display:table}.woocommerce .widget_shopping_cart .buttons::after,.woocommerce.widget_shopping_cart .buttons::after{clear:both}.woocommerce .widget_shopping_cart .buttons a,.woocommerce.widget_shopping_cart .buttons a{margin-right:5px;margin-bottom:5px}.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register{border:1px solid #cfc8d8;padding:20px;margin:2em 0;text-align:left;border-radius:5px}.woocommerce form.checkout_coupon .coupon-error-notice{color:var(--wc-red);display:block;font-size:.75em;margin-top:8px}.woocommerce form.checkout_coupon .input-text.has-error:focus{border-color:var(--wc-red)}.woocommerce ul#shipping_method{list-style:none outside;margin:0;padding:0}.woocommerce ul#shipping_method li{margin:0 0 .5em;line-height:1.5em;list-style:none outside}.woocommerce ul#shipping_method li input{margin:3px .4375em 0 0;vertical-align:top}.woocommerce ul#shipping_method li label{display:inline}.woocommerce ul#shipping_method .amount{font-weight:700}.woocommerce p.woocommerce-shipping-contents{margin:0}.woocommerce .wc_bis_form{margin:2em 0;padding:0}.woocommerce .wc_bis_form.hidden{display:none}.woocommerce .wc_bis_form__form-row{display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;justify-content:flex-start;gap:.7em;margin:.7em 0}.woocommerce .wc_bis_form__input{box-sizing:border-box;width:auto;white-space:nowrap}.woocommerce .wc_bis_form__button{box-sizing:border-box;white-space:nowrap}.woocommerce .wc_bis_form__checkbox{font-size:var(--wp--preset--font-size--small,.7em);display:block}.woocommerce :where(.wc_bis_form__input,.wc_bis_form__button){padding:.9rem 1.1rem;line-height:1}.woocommerce ul.order_details{margin:0 0 3em;list-style:none}.woocommerce ul.order_details::after,.woocommerce ul.order_details::before{content:" ";display:table}.woocommerce ul.order_details::after{clear:both}.woocommerce ul.order_details li{float:left;margin-right:2em;text-transform:uppercase;font-size:.715em;line-height:1;border-right:1px dashed #cfc8d8;padding-right:2em;margin-left:0;padding-left:0;list-style-type:none}.woocommerce ul.order_details li strong{display:block;font-size:1.4em;text-transform:none;line-height:1.5}.woocommerce ul.order_details li:last-of-type{border:none}.woocommerce .wc-bacs-bank-details-account-name{font-weight:700}.woocommerce .woocommerce-customer-details,.woocommerce .woocommerce-order-details,.woocommerce .woocommerce-order-downloads{margin-bottom:2em}.woocommerce .woocommerce-customer-details .order-actions--heading,.woocommerce .woocommerce-order-details .order-actions--heading,.woocommerce .woocommerce-order-downloads .order-actions--heading{vertical-align:middle}.woocommerce .woocommerce-customer-details .order-actions-button,.woocommerce .woocommerce-order-details .order-actions-button,.woocommerce .woocommerce-order-downloads .order-actions-button{margin-right:10px}.woocommerce .woocommerce-customer-details .order-actions-button:last-child,.woocommerce .woocommerce-order-details .order-actions-button:last-child,.woocommerce .woocommerce-order-downloads .order-actions-button:last-child{margin-right:0}.woocommerce .woocommerce-customer-details :last-child,.woocommerce .woocommerce-order-details :last-child,.woocommerce .woocommerce-order-downloads :last-child{margin-bottom:0}.woocommerce .woocommerce-customer-details .additional-fields,.woocommerce .woocommerce-customer-details .addresses{margin-bottom:2em}.woocommerce .woocommerce-customer-details .additional-fields:last-child,.woocommerce .woocommerce-customer-details .addresses:last-child{margin-bottom:0}.woocommerce .addresses .wc-block-components-additional-fields-list{margin:0;padding:0}.woocommerce .addresses .wc-block-components-additional-fields-list dt{margin:0;padding:0;font-style:normal;font-weight:700;display:inline}.woocommerce .addresses .wc-block-components-additional-fields-list dt::after{content:": "}.woocommerce .addresses .wc-block-components-additional-fields-list dt::before{content:"";display:block}.woocommerce .addresses .wc-block-components-additional-fields-list dd{margin:0;padding:0;font-style:normal;display:inline}.woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list{border:1px solid rgba(0,0,0,.1);padding:0;display:grid;grid-template-columns:1fr max-content}.woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dt{border-bottom:1px solid rgba(0,0,0,.1);font-style:normal;font-weight:700;padding:1rem;box-sizing:border-box;margin:0!important}.woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dt::after{display:none}.woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dt:last-of-type{border-bottom:0}.woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dd{border-bottom:1px solid rgba(0,0,0,.1);padding:1rem;box-sizing:border-box;text-align:right;margin:0!important}.woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dd:last-of-type{border-bottom:0}.woocommerce .woocommerce-customer-details .woocommerce-column__title{margin-top:0}.woocommerce .woocommerce-customer-details address{font-style:normal;margin-bottom:0;border:1px solid rgba(0,0,0,.1);border-bottom-width:2px;border-right-width:2px;text-align:left;width:100%;border-radius:5px;padding:6px 12px;box-sizing:border-box}.woocommerce .woocommerce-customer-details .woocommerce-customer-details--email,.woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone{padding-left:1.5em}.woocommerce .woocommerce-customer-details .woocommerce-customer-details--email:last-child,.woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone:last-child{margin-bottom:0}.woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone::before{font-family:WooCommerce;speak:never;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"\e037";text-decoration:none;margin-left:-1.5em;line-height:1.75;position:absolute}.woocommerce .woocommerce-customer-details .woocommerce-customer-details--email::before{font-family:WooCommerce;speak:never;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"\e02d";text-decoration:none;margin-left:-1.5em;line-height:1.75;position:absolute}.woocommerce .woocommerce-widget-layered-nav-list{margin:0;padding:0;border:0;list-style:none outside}.woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item{padding:0 0 1px;list-style:none}.woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item::after,.woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item::before{content:" ";display:table}.woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item::after{clear:both}.woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item a,.woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item span{padding:1px 0}.woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item--chosen a::before{font-family:WooCommerce;speak:never;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"\e013";text-decoration:none;color:var(--wc-red)}.woocommerce .woocommerce-widget-layered-nav-dropdown__submit{margin-top:1em}.woocommerce .widget_layered_nav_filters ul{margin:0;padding:0;border:0;list-style:none outside;overflow:hidden;zoom:1}.woocommerce .widget_layered_nav_filters ul li{float:left;padding:0 1em 1px 1px;list-style:none}.woocommerce .widget_layered_nav_filters ul li a{text-decoration:none}.woocommerce .widget_layered_nav_filters ul li a::before{font-family:WooCommerce;speak:never;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"\e013";text-decoration:none;color:var(--wc-red);vertical-align:inherit;margin-right:.5em}.woocommerce .widget_price_filter .price_slider{margin-bottom:1em}.woocommerce .widget_price_filter .price_slider_amount{text-align:right;line-height:2.4;font-size:.8751em}.woocommerce .widget_price_filter .price_slider_amount .button{font-size:1.15em;float:left}.woocommerce .widget_price_filter .ui-slider{position:relative;text-align:left;margin-left:.5em;margin-right:.5em}.woocommerce .widget_price_filter .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1em;height:1em;background-color:#7f54b3;border-radius:1em;cursor:ew-resize;outline:0;top:-.3em;margin-left:-.5em}.woocommerce .widget_price_filter .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;border-radius:1em;background-color:#7f54b3}.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content{border-radius:1em;background-color:#35224c;border:0}.woocommerce .widget_price_filter .ui-slider-horizontal{height:.5em}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range{top:0;height:100%}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-min{left:-1px}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-max{right:-1px}.woocommerce .widget_rating_filter ul{margin:0;padding:0;border:0;list-style:none outside}.woocommerce .widget_rating_filter ul li{padding:0 0 1px;list-style:none}.woocommerce .widget_rating_filter ul li::after,.woocommerce .widget_rating_filter ul li::before{content:" ";display:table}.woocommerce .widget_rating_filter ul li::after{clear:both}.woocommerce .widget_rating_filter ul li a{padding:1px 0;text-decoration:none}.woocommerce .widget_rating_filter ul li .star-rating{float:none;display:inline-block}.woocommerce .widget_rating_filter ul li.chosen a::before{font-family:WooCommerce;speak:never;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"\e013";text-decoration:none;color:var(--wc-red)}.woocommerce .woocommerce-form-login .woocommerce-form-login__submit{float:left;margin-right:1em}.woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme{display:inline-block}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button{font-size:100%;margin:0;line-height:1;cursor:pointer;position:relative;text-decoration:none;overflow:visible;padding:.618em 1em;font-weight:700;border-radius:3px;left:auto;color:#515151;background-color:#e9e6ed;border:0;display:inline-block;background-image:none;box-shadow:none;text-shadow:none}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.loading,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.loading,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.loading,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.loading,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.loading,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.loading,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.loading,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.loading{opacity:.25;padding-right:2.618em}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.loading::after,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.loading::after,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.loading::after,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.loading::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.loading::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.loading::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.loading::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.loading::after{font-family:WooCommerce;content:"\e01c";vertical-align:top;font-weight:400;position:absolute;top:.618em;right:1em;animation:spin 2s linear infinite}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.added::after,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.added::after,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.added::after,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.added::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.added::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.added::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.added::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.added::after{font-family:WooCommerce;content:"\e017";margin-left:.53em;vertical-align:bottom}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:hover{background-color:#dcd7e2;text-decoration:none;background-image:none;color:#515151}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt{background-color:#7f54b3;color:#fff;-webkit-font-smoothing:antialiased}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:hover{background-color:#7249a4;color:#fff}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled[disabled],.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled[disabled]:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled[disabled],.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled[disabled]:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled[disabled],.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled[disabled]:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled[disabled],.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled[disabled]:hover{background-color:#7f54b3;color:#fff}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:disabled[disabled],.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:disabled[disabled],.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:disabled[disabled],.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:disabled[disabled]{color:inherit;cursor:not-allowed;opacity:.5;padding:.618em 1em}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:disabled[disabled]:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:disabled[disabled]:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:disabled[disabled]:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:disabled[disabled]:hover{color:inherit;background-color:#e9e6ed}.woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb{font-size:.92em;color:#767676}.woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb a{color:#767676}.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product p.price,.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product span.price{color:#958e09;font-size:1.25em}.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product .stock{color:#958e09}.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product .out-of-stock{color:var(--wc-red)}.woocommerce:where(body:not(.woocommerce-uses-block-theme)) ul.products li.product .price{color:#958e09}.woocommerce:where(body:not(.woocommerce-uses-block-theme)) #reviews #comments ol.commentlist li .meta{color:#767676;font-size:.75em}.woocommerce-no-js form.woocommerce-form-coupon,.woocommerce-no-js form.woocommerce-form-login{display:block!important}.woocommerce-no-js .showcoupon,.woocommerce-no-js .woocommerce-form-coupon-toggle,.woocommerce-no-js .woocommerce-form-login-toggle{display:none!important}.woocommerce-error,.woocommerce-info,.woocommerce-message{padding:1em 2em 1em 3.5em;margin:0 0 2em;position:relative;background-color:#f6f5f8;color:#515151;border-top:3px solid #720eec;list-style:none outside;width:auto;word-wrap:break-word}.woocommerce-error::after,.woocommerce-error::before,.woocommerce-info::after,.woocommerce-info::before,.woocommerce-message::after,.woocommerce-message::before{content:" ";display:table}.woocommerce-error::after,.woocommerce-info::after,.woocommerce-message::after{clear:both}.woocommerce-error::before,.woocommerce-info::before,.woocommerce-message::before{font-family:WooCommerce;content:"\e028";content:"\e028"/"";display:inline-block;position:absolute;top:1em;left:1.5em}.woocommerce-error .button,.woocommerce-info .button,.woocommerce-message .button{float:right}.woocommerce-error li,.woocommerce-info li,.woocommerce-message li{list-style:none outside!important;padding-left:0!important;margin-left:0!important}.rtl.woocommerce .price_label,.rtl.woocommerce .price_label span{direction:ltr;unicode-bidi:embed}.woocommerce-message{border-top-color:#8fae1b}.woocommerce-message::before{content:"\e015";color:#8fae1b}.woocommerce-info{border-top-color:#1e85be}.woocommerce-info::before{color:#1e85be}.woocommerce-error{border-top-color:#b81c23}.woocommerce-error::before{content:"\e016";color:#b81c23}.woocommerce-account .woocommerce::after,.woocommerce-account .woocommerce::before{content:" ";display:table}.woocommerce-account .woocommerce::after{clear:both}.woocommerce-account .addresses .title::after,.woocommerce-account .addresses .title::before{content:" ";display:table}.woocommerce-account .addresses .title::after{clear:both}.woocommerce-account .addresses .title h3{float:left}.woocommerce-account .addresses .title .edit{float:right}.woocommerce-account ol.commentlist.notes li.note p.meta{font-weight:700;margin-bottom:0}.woocommerce-account ol.commentlist.notes li.note .description p:last-child{margin-bottom:0}.woocommerce-account ul.digital-downloads{margin-left:0;padding-left:0}.woocommerce-account ul.digital-downloads li{list-style:none;margin-left:0;padding-left:0}.woocommerce-account ul.digital-downloads li::before{font-family:WooCommerce;speak:never;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"\e00a";text-decoration:none}.woocommerce-account ul.digital-downloads li .count{float:right}#add_payment_method table.cart .product-thumbnail,.woocommerce-cart table.cart .product-thumbnail,.woocommerce-checkout table.cart .product-thumbnail{min-width:32px}#add_payment_method table.cart img,.woocommerce-cart table.cart img,.woocommerce-checkout table.cart img{width:32px;box-shadow:none}#add_payment_method table.cart td,#add_payment_method table.cart th,.woocommerce-cart table.cart td,.woocommerce-cart table.cart th,.woocommerce-checkout table.cart td,.woocommerce-checkout table.cart th{vertical-align:middle}#add_payment_method table.cart td.actions .coupon .input-text,.woocommerce-cart table.cart td.actions .coupon .input-text,.woocommerce-checkout table.cart td.actions .coupon .input-text{float:left;box-sizing:border-box;border:1px solid #cfc8d8;padding:6px 6px 5px;margin:0 4px 0 0;outline:0}#add_payment_method table.cart td.actions .coupon .input-text.has-error:focus,.woocommerce-cart table.cart td.actions .coupon .input-text.has-error:focus,.woocommerce-checkout table.cart td.actions .coupon .input-text.has-error:focus{border-color:var(--wc-red)}#add_payment_method table.cart td.actions .coupon .coupon-error-notice,.woocommerce-cart table.cart td.actions .coupon .coupon-error-notice,.woocommerce-checkout table.cart td.actions .coupon .coupon-error-notice{clear:left;color:var(--wc-red);flex-basis:100%;float:none;font-size:.75em;margin-bottom:0;margin-top:8px;text-align:left;width:auto}#add_payment_method table.cart input,.woocommerce-cart table.cart input,.woocommerce-checkout table.cart input{margin:0;vertical-align:middle}#add_payment_method .wc-proceed-to-checkout,.woocommerce-cart .wc-proceed-to-checkout,.woocommerce-checkout .wc-proceed-to-checkout{padding:1em 0}#add_payment_method .wc-proceed-to-checkout::after,#add_payment_method .wc-proceed-to-checkout::before,.woocommerce-cart .wc-proceed-to-checkout::after,.woocommerce-cart .wc-proceed-to-checkout::before,.woocommerce-checkout .wc-proceed-to-checkout::after,.woocommerce-checkout .wc-proceed-to-checkout::before{content:" ";display:table}#add_payment_method .wc-proceed-to-checkout::after,.woocommerce-cart .wc-proceed-to-checkout::after,.woocommerce-checkout .wc-proceed-to-checkout::after{clear:both}#add_payment_method .wc-proceed-to-checkout a.checkout-button,.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,.woocommerce-checkout .wc-proceed-to-checkout a.checkout-button{display:block;text-align:center;margin-bottom:1em;font-size:1.25em;padding:1em}#add_payment_method .cart-collaterals .shipping-calculator-button,.woocommerce-cart .cart-collaterals .shipping-calculator-button,.woocommerce-checkout .cart-collaterals .shipping-calculator-button{float:none;margin-top:.5em;display:inline-block}#add_payment_method .cart-collaterals .shipping-calculator-button::after,.woocommerce-cart .cart-collaterals .shipping-calculator-button::after,.woocommerce-checkout .cart-collaterals .shipping-calculator-button::after{font-family:WooCommerce;speak:never;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-left:.618em;content:"\e019";text-decoration:none}#add_payment_method .cart-collaterals .shipping-calculator-form,.woocommerce-cart .cart-collaterals .shipping-calculator-form,.woocommerce-checkout .cart-collaterals .shipping-calculator-form{margin:1em 0 0 0}#add_payment_method .cart-collaterals .cart_totals p small,.woocommerce-cart .cart-collaterals .cart_totals p small,.woocommerce-checkout .cart-collaterals .cart_totals p small{color:#767676;font-size:.83em}#add_payment_method .cart-collaterals .cart_totals table,.woocommerce-cart .cart-collaterals .cart_totals table,.woocommerce-checkout .cart-collaterals .cart_totals table{border-collapse:separate;margin:0 0 6px;padding:0}#add_payment_method .cart-collaterals .cart_totals table tr:first-child td,#add_payment_method .cart-collaterals .cart_totals table tr:first-child th,.woocommerce-cart .cart-collaterals .cart_totals table tr:first-child td,.woocommerce-cart .cart-collaterals .cart_totals table tr:first-child th,.woocommerce-checkout .cart-collaterals .cart_totals table tr:first-child td,.woocommerce-checkout .cart-collaterals .cart_totals table tr:first-child th{border-top:0}#add_payment_method .cart-collaterals .cart_totals table th,.woocommerce-cart .cart-collaterals .cart_totals table th,.woocommerce-checkout .cart-collaterals .cart_totals table th{width:35%}#add_payment_method .cart-collaterals .cart_totals table td,#add_payment_method .cart-collaterals .cart_totals table th,.woocommerce-cart .cart-collaterals .cart_totals table td,.woocommerce-cart .cart-collaterals .cart_totals table th,.woocommerce-checkout .cart-collaterals .cart_totals table td,.woocommerce-checkout .cart-collaterals .cart_totals table th{vertical-align:top;border-left:0;border-right:0;line-height:1.5em}#add_payment_method .cart-collaterals .cart_totals table small,.woocommerce-cart .cart-collaterals .cart_totals table small,.woocommerce-checkout .cart-collaterals .cart_totals table small{color:#767676}#add_payment_method .cart-collaterals .cart_totals table select,.woocommerce-cart .cart-collaterals .cart_totals table select,.woocommerce-checkout .cart-collaterals .cart_totals table select{width:100%}#add_payment_method .cart-collaterals .cart_totals .discount td,.woocommerce-cart .cart-collaterals .cart_totals .discount td,.woocommerce-checkout .cart-collaterals .cart_totals .discount td{color:#958e09}#add_payment_method .cart-collaterals .cart_totals tr td,#add_payment_method .cart-collaterals .cart_totals tr th,.woocommerce-cart .cart-collaterals .cart_totals tr td,.woocommerce-cart .cart-collaterals .cart_totals tr th,.woocommerce-checkout .cart-collaterals .cart_totals tr td,.woocommerce-checkout .cart-collaterals .cart_totals tr th{border-top:1px solid #e9e6ed}#add_payment_method .cart-collaterals .cart_totals .woocommerce-shipping-destination,.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-destination,.woocommerce-checkout .cart-collaterals .cart_totals .woocommerce-shipping-destination{margin-bottom:0}#add_payment_method .cart-collaterals .cross-sells ul.products li.product,.woocommerce-cart .cart-collaterals .cross-sells ul.products li.product,.woocommerce-checkout .cart-collaterals .cross-sells ul.products li.product{margin-top:0}#add_payment_method .checkout .col-2 h3#ship-to-different-address,.woocommerce-cart .checkout .col-2 h3#ship-to-different-address,.woocommerce-checkout .checkout .col-2 h3#ship-to-different-address{float:left;clear:none}#add_payment_method .checkout .col-2 .notes,.woocommerce-cart .checkout .col-2 .notes,.woocommerce-checkout .checkout .col-2 .notes{clear:left}#add_payment_method .checkout .col-2 .form-row-first,.woocommerce-cart .checkout .col-2 .form-row-first,.woocommerce-checkout .checkout .col-2 .form-row-first{clear:left}#add_payment_method .checkout .create-account small,.woocommerce-cart .checkout .create-account small,.woocommerce-checkout .checkout .create-account small{font-size:11px;color:#767676;font-weight:400}#add_payment_method .checkout div.shipping-address,.woocommerce-cart .checkout div.shipping-address,.woocommerce-checkout .checkout div.shipping-address{padding:0;clear:left;width:100%}#add_payment_method .checkout .shipping_address,.woocommerce-cart .checkout .shipping_address,.woocommerce-checkout .checkout .shipping_address{clear:both}#add_payment_method .checkout .checkout-inline-error-message,.woocommerce-cart .checkout .checkout-inline-error-message,.woocommerce-checkout .checkout .checkout-inline-error-message{color:var(--wc-red);font-size:.75em;margin-bottom:0}#add_payment_method #payment,.woocommerce-cart #payment,.woocommerce-checkout #payment{background:rgba(129,110,153,.14);border-radius:5px}#add_payment_method #payment ul.payment_methods,.woocommerce-cart #payment ul.payment_methods,.woocommerce-checkout #payment ul.payment_methods{text-align:left;padding:1em;border-bottom:1px solid rgba(104,87,125,.14);margin:0;list-style:none outside}#add_payment_method #payment ul.payment_methods::after,#add_payment_method #payment ul.payment_methods::before,.woocommerce-cart #payment ul.payment_methods::after,.woocommerce-cart #payment ul.payment_methods::before,.woocommerce-checkout #payment ul.payment_methods::after,.woocommerce-checkout #payment ul.payment_methods::before{content:" ";display:table}#add_payment_method #payment ul.payment_methods::after,.woocommerce-cart #payment ul.payment_methods::after,.woocommerce-checkout #payment ul.payment_methods::after{clear:both}#add_payment_method #payment ul.payment_methods li,.woocommerce-cart #payment ul.payment_methods li,.woocommerce-checkout #payment ul.payment_methods li{line-height:2;text-align:left;margin:0;font-weight:400}#add_payment_method #payment ul.payment_methods li input,.woocommerce-cart #payment ul.payment_methods li input,.woocommerce-checkout #payment ul.payment_methods li input{margin:0 1em 0 0}#add_payment_method #payment ul.payment_methods li img,.woocommerce-cart #payment ul.payment_methods li img,.woocommerce-checkout #payment ul.payment_methods li img{vertical-align:middle;margin:-2px 0 0 .5em;padding:0;position:relative;box-shadow:none}#add_payment_method #payment ul.payment_methods li img+img,.woocommerce-cart #payment ul.payment_methods li img+img,.woocommerce-checkout #payment ul.payment_methods li img+img{margin-left:2px}#add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice)::after,#add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice)::before,.woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice)::after,.woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice)::before,.woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::after,.woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::before{content:" ";display:table}#add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice)::after,.woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice)::after,.woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::after{clear:both}#add_payment_method #payment div.form-row,.woocommerce-cart #payment div.form-row,.woocommerce-checkout #payment div.form-row{padding:1em}#add_payment_method #payment div.payment_box,.woocommerce-cart #payment div.payment_box,.woocommerce-checkout #payment div.payment_box{position:relative;box-sizing:border-box;width:100%;padding:1em;margin:1em 0;font-size:.92em;border-radius:2px;line-height:1.5;background-color:#dcd7e2;color:#515151}#add_payment_method #payment div.payment_box input.input-text,#add_payment_method #payment div.payment_box textarea,.woocommerce-cart #payment div.payment_box input.input-text,.woocommerce-cart #payment div.payment_box textarea,.woocommerce-checkout #payment div.payment_box input.input-text,.woocommerce-checkout #payment div.payment_box textarea{border-color:#c2bacd;border-top-color:#b5abc2}#add_payment_method #payment div.payment_box ::-webkit-input-placeholder,.woocommerce-cart #payment div.payment_box ::-webkit-input-placeholder,.woocommerce-checkout #payment div.payment_box ::-webkit-input-placeholder{color:#b5abc2}#add_payment_method #payment div.payment_box :-moz-placeholder,.woocommerce-cart #payment div.payment_box :-moz-placeholder,.woocommerce-checkout #payment div.payment_box :-moz-placeholder{color:#b5abc2}#add_payment_method #payment div.payment_box :-ms-input-placeholder,.woocommerce-cart #payment div.payment_box :-ms-input-placeholder,.woocommerce-checkout #payment div.payment_box :-ms-input-placeholder{color:#b5abc2}#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods{list-style:none outside;margin:0}#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new,#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token{margin:0 0 .5em}#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label,#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label{cursor:pointer}#add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput,.woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput,.woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput{vertical-align:middle;margin:-3px 1em 0 0;position:relative}#add_payment_method #payment div.payment_box .wc-credit-card-form,.woocommerce-cart #payment div.payment_box .wc-credit-card-form,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form{border:0;padding:0;margin:1em 0 0}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number{font-size:1.5em;padding:8px;background-repeat:no-repeat;background-position:right .618em center;background-size:32px 20px}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.visa,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.visa,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.visa,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.visa,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.visa,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.visa{background-image:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/credit-cards/visa.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.mastercard,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.mastercard{background-image:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/credit-cards/mastercard.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.laser,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.laser,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.laser,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.laser,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.laser,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.laser{background-image:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/credit-cards/laser.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.dinersclub,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.dinersclub{background-image:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/credit-cards/diners.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.maestro,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.maestro{background-image:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/credit-cards/maestro.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.jcb,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.jcb{background-image:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/credit-cards/jcb.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.amex,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.amex,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.amex,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.amex,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.amex,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.amex{background-image:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/credit-cards/amex.svg)}#add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.discover,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.discover,#add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.discover,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.discover,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.discover,.woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.discover{background-image:url(//dostavka-vodi-krim.ru/wp-content/plugins/woocommerce/assets/images/icons/credit-cards/discover.svg)}#add_payment_method #payment div.payment_box span.help,.woocommerce-cart #payment div.payment_box span.help,.woocommerce-checkout #payment div.payment_box span.help{font-size:.857em;color:#767676;font-weight:400}#add_payment_method #payment div.payment_box .form-row,.woocommerce-cart #payment div.payment_box .form-row,.woocommerce-checkout #payment div.payment_box .form-row{margin:0 0 1em}#add_payment_method #payment div.payment_box p:last-child,.woocommerce-cart #payment div.payment_box p:last-child,.woocommerce-checkout #payment div.payment_box p:last-child{margin-bottom:0}#add_payment_method #payment div.payment_box::before,.woocommerce-cart #payment div.payment_box::before,.woocommerce-checkout #payment div.payment_box::before{content:"";display:block;border:1em solid #dcd7e2;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-.75em;left:0;margin:-1em 0 0 2em}#add_payment_method #payment .payment_method_paypal .about_paypal,.woocommerce-cart #payment .payment_method_paypal .about_paypal,.woocommerce-checkout #payment .payment_method_paypal .about_paypal{float:right;line-height:52px;font-size:.83em}#add_payment_method #payment .payment_method_paypal img,.woocommerce-cart #payment .payment_method_paypal img,.woocommerce-checkout #payment .payment_method_paypal img{max-height:52px;vertical-align:middle}.woocommerce-terms-and-conditions{border:1px solid rgba(0,0,0,.2);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);background:rgba(0,0,0,.05)}.woocommerce-invalid #terms{outline:2px solid var(--wc-red);outline-offset:2px}.woocommerce-password-strength{text-align:center;font-weight:600;padding:3px .5em;font-size:1em}.woocommerce-password-strength.strong{background-color:#c1e1b9;border-color:#83c373}.woocommerce-password-strength.short{background-color:#f1adad;border-color:#e35b5b}.woocommerce-password-strength.bad{background-color:#fbc5a9;border-color:#f78b53}.woocommerce-password-strength.good{background-color:#ffe399;border-color:#ffc733}.woocommerce-password-hint{margin:.5em 0 0;display:block}#content.twentyeleven .woocommerce-pagination a{font-size:1em;line-height:1}.single-product .twentythirteen #reply-title,.single-product .twentythirteen #respond #commentform,.single-product .twentythirteen .entry-summary{padding:0}.single-product .twentythirteen p.stars{clear:both}.twentythirteen .woocommerce-breadcrumb{padding-top:40px}.twentyfourteen ul.products li.product{margin-top:0!important}body:not(.search-results) .twentysixteen .entry-summary{color:inherit;font-size:inherit;line-height:inherit}.twentysixteen .price ins{background:inherit;color:inherit} \ No newline at end of file diff --git a/wp-content/logs/app.log b/wp-content/logs/app.log index 71a79d91..8c206986 100644 --- a/wp-content/logs/app.log +++ b/wp-content/logs/app.log @@ -1153,4 +1153,10 @@ 19-04-2026 16:14:24 [dostavka-vodi-krim.ru][info] Webp conversion: Image saved successfully! 19-04-2026 16:14:24 [dostavka-vodi-krim.ru][debug] Updated queue item #669, attributes values: {"server_id":null,"object_id":624,"object_name":null,"item_type":"webp","item_hash":"0a58ef68676c410d52e607705cee3a207e2b4e096ca360f3dfc1a350e6fc1ad2","item_hash_alternative":null,"result_status":"success","processing_level":"normal","is_backed_up":false,"original_size":970,"final_size":806,"original_mime_type":"image\/png","final_mime_type":"image\/webp","extra_data":"{\"class\":\"RIOP_WebP_Extra_Data\",\"thumbnails_count\":7,\"convert_from\":\"attachment\",\"converted_from_size\":\"site_icon-32\",\"source_src\":\"http:\\\/\\\/dostavka-vodi-krim.ru\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-logo-1-32x32.png\",\"source_path\":\"\\\/home\\\/a0264400\\\/domains\\\/dostavka-vodi-krim.ru\\\/public_html\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-logo-1-32x32.png\",\"converted_src\":\"http:\\\/\\\/dostavka-vodi-krim.ru\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-logo-1-32x32.png.webp\",\"converted_path\":\"\\\/home\\\/a0264400\\\/domains\\\/dostavka-vodi-krim.ru\\\/public_html\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-logo-1-32x32.png.webp\"}","created_at":1776604451} 19-04-2026 16:14:24 [dostavka-vodi-krim.ru][info] End bulk optimization process! Scope: media-library. Remain: 0 +------------------------------- +19-04-2026 17:10:54 [dostavka-vodi-krim.ru][info] Start bulk optimization process! Scope: media-library +19-04-2026 17:10:54 [dostavka-vodi-krim.ru][info] End bulk optimization process! Scope: media-library. Remain: 0 +------------------------------- +19-04-2026 17:11:54 [dostavka-vodi-krim.ru][info] Start bulk optimization process! Scope: media-library +19-04-2026 17:11:54 [dostavka-vodi-krim.ru][info] End bulk optimization process! Scope: media-library. Remain: 0 ------------------------------- \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/css/buycredit.css b/wp-content/plugins/wp-fastest-cache/css/buycredit.css new file mode 100644 index 00000000..3685a7a9 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/css/buycredit.css @@ -0,0 +1,661 @@ + +.fakeHeader{/*padding-bottom:5px*/}.fakeHeader h1, +.fakeHeader .title-h1{display:none}header +.subContent{width:960px;margin:0 +auto;padding-top:32px;padding-bottom:18px}#container{width:960px;margin:0 +auto;padding-bottom:70px;position:relative}.mainContent{float:left;width:570px;padding:25px +30px 30px 30px;background-color:#fff;margin-bottom:70px}.rtl +.mainContent{float:right}.sideContent{width:240px;padding:10px +30px 15px 30px;float:right;background-color:#fff;margin-bottom:70px;z-index:9;position:relative;top:auto;left:auto;margin-left:0;border:1px +solid white}.rtl +.sideContent{float:left;margin-right:0}#frameContent{width:100%}@media only screen and (min-width: 768px) and (max-width: 959px){body{min-width:768px;height:auto;background-image: -ms-linear-gradient(top, #FFF 0%, #F3F8FA 100%);background-image: -moz-linear-gradient(top, #FFF 0%, #F3F8FA 100%);background-image: -o-linear-gradient(top, #FFF 0%, #F3F8FA 100%);background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #FFFFFF), color-stop(1, #F3F8FA));background-image: -webkit-linear-gradient(top, #FFF 0%, #F3F8FA 100%);background-image:linear-gradient(top, #FFF 0%, #F3F8FA 100%)}header + +.subContent{width:720px}#container{width:720px}.mainContent{width:390px}.sideContent{width:180px}}@media only screen and (max-width: 767px){html,body{background:#fff;height:auto}body{min-width:0}header{display:none}.fakeHeader{display:block;width:auto;height:100%;margin-bottom:10px;padding-top:0}.rtl +.fakeHeader{float:right}.fakeHeader h1, +.fakeHeader .title-h1{display:block}.fakeHeader h1, +.fakeHeader h2, +.fakeHeader h3, +.fakeHeader h4, +.fakeHeader h5, +.fakeHeader h6, +.fakeHeader .title-h1, +.fakeHeader .title-h2, +.fakeHeader .title-h3, +.fakeHeader .title-h4, +.fakeHeader .title-h5, +.fakeHeader .title-h6{margin-bottom:0}header +.subContent{width:auto}#container{width:320px;padding-bottom:30px}.mainContent{width:280px;padding:19px +20px 20px 20px;margin-top:1px;margin-bottom:20px}.rtl +.mainContent{float:none}.sideContent{float:none;width:100%;padding:0;padding-bottom:20px;margin:0}.rtl +.sideContent{float:none}}.fixme{_position:absolute;top:0;_top:expression(eval(document.body.scrollTop))}footer{z-index:10}#orderDetails{position:relative;opacity:0;filter:alpha(opacity=0)}#orderDetails +table{width:100%}#orderDetails table tfoot +tr.totalRow{background-color:#fff}#orderDetails table.highlight tfoot +tr.totalRow{background-color:#8cdbf8}#orderDetails table th, +#orderDetails table +td{height:18px;padding-top:15px;padding-bottom:15px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#e7f1f5;border-collapse:separate;color:#333534;font-size:16px;line-height:20px;font-weight:400;vertical-align:top}#orderDetails table +th{padding-right:10px;text-align:left}.rtl #orderDetails table +th{padding-left:10px;padding-right:0;text-align:right}#orderDetails table +td{text-align:right}.rtl #orderDetails table +td{text-align:left}#orderDetails table thead tr +th{padding-top:14px;padding-right:0;padding-bottom:5px;line-height:24px;border-bottom:none}.rtl #orderDetails table thead tr +th{padding-left:0}#orderDetails table thead tr.totalRow +.yourOrder{font-size:24px;font-weight:400}* html #orderDetails table thead tr th +.yourOrder{float:left}*:first-child+html #orderDetails table thead tr th +.yourOrder{float:left}#orderDetails table thead tr th +.orderNumber{display:block;clear:left;padding-top:4px;padding-bottom:4px;font-size:16px;line-height:16px;font-weight:400}#orderDetails table thead tr th +.changeOrder{float:right;padding:10px +0 0 0;font-size:16px;line-height:16px;font-weight:400}.rtl #orderDetails table thead tr th +.changeOrder{float:left}#orderDetails table thead tr th .changeOrder +a{font-weight:400}#orderDetails table thead tr th +span.totalPrice{display:none;opacity:0;filter:alpha(opacity=0)}#orderDetails +.toggleOrder{display:none}.vatRowHidden{display:none}#orderDetails table tfoot tr th, +#orderDetails table tfoot tr +td{border-bottom:none;font-weight:600}#orderDetails table tr.totalRow th .title-h3 +.icon{display:none}#orderDetails table tr.discountRow th, +#orderDetails table tr.discountRow td, +#orderDetails table tr.extraProductRow th, +#orderDetails table tr.extraProductRow +td{color:#EC008C}#orderDetails table tfoot +tr.vatMessageRow{display:none}#orderDetails +.sideMessage{display:none;position:absolute;top:auto;right:0;left:0;width:180px;margin:14px +0 0 -1px;padding:13px +30px;background-color:#D9F3FD;font-size:14px;line-height:18px;font-weight:400;text-align:left;z-index:100;border:1px +solid white}.rtl #orderDetails +.sideMessage{text-align:right}#orderDetails .sideMessage +.arrow{position:absolute;top: -11px;left:0;width:18px;height:12px;z-index: -190;background:url("../images/icons/icons-sprite.png") no-repeat;background-position: -90px 0}.sideMessage .arrow::before, +.contextNotification .arrow::before{content:"";display:block;width:14px;height:14px;background-color:#d9f3fd;border-color:#d9f3fd;border-style:solid;border-left-width:1px;border-top-width:1px;border-right-width:0px;border-bottom-width:0px;top:22px;position:relative;-webkit-transform:translate(2px, -16px) rotate(45deg) skew(10deg, 10deg);-moz-transform:translate(2px, -16px) rotate(45deg) skew(10deg, 10deg);-ms-transform:translate(2px, -16px) rotate(45deg) skew(10deg, 10deg);-o-transform:translate(2px, -16px) rotate(45deg) skew(10deg, 10deg);transform:translate(2px, -16px) rotate(45deg) skew(10deg, 10deg);border-right-width:0px;border-bottom-width:0px;z-index: -100}.vatTooltip{width:18px;height:18px;display:inline-block;margin:1px +8px 3px 8px;vertical-align:middle;overflow:hidden;border:1px +solid white;border-radius:15px;cursor:pointer}.vatTooltip:hover{border-width:2px;margin:0px +7px 2px 7px}button.vatTooltip{background-color:transparent;padding:0;width:20px;height:20px}button.vatTooltip:hover{width:22px;height:22px}button.vatTooltip::-moz-focus-inner{border:0;padding:0}.vatTooltip:before{content:url("../images/icons/icons-sprite.png")}.vatTooltip{*background:url("../images/icons/icons-sprite.png") no-repeat}.rtl +.vatTooltip{margin:0 +7px 2px 7px}.vatTooltip:hover:before{left: -18px;position:relative}.vatTooltip:hover{*background-position: -18px 0}.vatTooltip:active:before,.vatTooltip.visible:before{left: -36px}.vatTooltip:active,.vatTooltip.visible{*background-position: -36px 0}@media only screen and (min-width: 768px) and (max-width: 959px){#orderDetails table th, +#orderDetails table +td{font-size:14px}#orderDetails table thead tr +th{padding-bottom:9px}#orderDetails table thead tr th +.changeOrder{clear:left;float:left;padding:3px +0 0 0}.rtl #orderDetails table thead tr th +.changeOrder{clear:right;float:right}#orderDetails table tfoot +tr.changeOrder{display:none}#orderDetails +.sideMessage{width:120px}}@media only screen and (max-width: 767px){#orderDetails{}#orderDetails +table{border-bottom:1px solid #c5d9e1;border-collapse:separate;background-color:#e7f1f5}#orderDetails table thead +tr.totalRow{background-color:#e7f1f5}#orderDetails.css3 table thead +tr.totalRow{-webkit-transition:background-color 0.5s ease-in-out;-moz-transition:background-color 0.5s ease-in-out;-ms-transition:background-color 0.5s ease-in-out;-o-transition:background-color 0.5s ease-in-out;transition:background-color 0.5s ease-in-out;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}#orderDetails table.highlight thead +tr.totalRow{background-color:#8cdbf8}#orderDetails.css3 table.highlight thead +tr.totalRow{-webkit-transition:background-color 0.2s ease-in-out;-moz-transition:background-color 0.2s ease-in-out;-ms-transition:background-color 0.2s ease-in-out;-o-transition:background-color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}#orderDetails table.open.highlight thead +tr.totalRow{background-color:#e7f1f5}#orderDetails table tfoot tr.totalRow, +#orderDetails table.highlight tfoot +tr.totalRow{background-color:#e7f1f5}#orderDetails table.highlight tfoot +tr.totalRow{background-color:#8cdbf8}#orderDetails table tr th, +#orderDetails table tr +td{height:24px;padding-top:6px;padding-bottom:6px;font-size:18px;line-height:24px;border:none}#orderDetails table +th{padding-right:5px;padding-left:20px}.rtl #orderDetails table +th{padding-left:5px;padding-right:20px}#orderDetails table thead +th{padding-right:20px}.rtl #orderDetails table thead +th{padding-left:20px}#orderDetails table +td{padding-right:20px}.rtl #orderDetails table +td{padding-left:20px}#orderDetails table thead tr th, +#orderDetails table thead tr +td{padding-top:10px;padding-right:20px;padding-bottom:9px;font-size:18px;font-weight:600;line-height:24px}.rtl #orderDetails table thead tr th, +.rtl #orderDetails table thead tr +td{padding-left:20px}#orderDetails table thead tr.totalRow +.yourOrder{font-size:18px;font-weight:600}#orderDetails table thead tr.totalRow th .yourOrder .icon:before{content:url("../images/icons/icons-sprite.png");left: -91px;top: -129px;position:relative}#orderDetails table thead tr.totalRow th .yourOrder +.icon{overflow:hidden;display:inline-block;width:14px;height:7px;margin:10px +0 0 6px;vertical-align:top;*background:url("../images/icons/icons-sprite.png") no-repeat -92px -129px}.rtl #orderDetails table thead tr.totalRow th .yourOrder +.icon{margin:10px +6px 0 0}#orderDetails table.open tr.totalRow th .yourOrder .icon:before{content:url("../images/icons/icons-sprite.png");left: -210px;top: -129px;position:relative}#orderDetails table.open tr.totalRow th .yourOrder +.icon{background-position: -211px -129px}#orderDetails table thead tr th +.orderNumber{float:right}.rtl #orderDetails table thead tr th +.orderNumber{float:left}#orderDetails table thead tr th +.changeOrder{display:none}#orderDetails table thead tr th +span.totalPrice{display:inline-block;float:right}.rtl #orderDetails table thead tr th +span.totalPrice{float:left}#orderDetails table thead tr th +span.totalPrice{opacity:1}#orderDetails.css3 table thead tr th +span.totalPrice{filter:alpha(opacity=100);-webkit-transition:opacity 0.4s ease-in-out;-moz-transition:opacity 0.4s ease-in-out;-ms-transition:opacity 0.4s ease-in-out;-o-transition:opacity 0.4s ease-in-out;transition:opacity 0.4s ease-in-out;-webkit-transition-delay:0.2s;-moz-transition-delay:0.2s;-ms-transition-delay:0.2s;-o-transition-delay:0.2s;transition-delay:0.2s}#orderDetails table.open thead tr th +span.totalPrice{opacity:0;filter:alpha(opacity=0)}#orderDetails.css3 table.open thead tr th +span.totalPrice{-webkit-transition:opacity 0.4s ease-in-out;-moz-transition:opacity 0.4s ease-in-out;-ms-transition:opacity 0.4s ease-in-out;-o-transition:opacity 0.4s ease-in-out;transition:opacity 0.4s ease-in-out;-webkit-transition-delay:0.1s;-moz-transition-delay:0.1s;-ms-transition-delay:0.1s;-o-transition-delay:0.1s;transition-delay:0.1s}#orderDetails table tbody, +#orderDetails table +tfoot{opacity:0;filter:alpha(opacity=0)}#orderDetails.css3 table tbody, +#orderDetails.css3 table +tfoot{-webkit-transition:opacity 0.3s ease-in-out;-moz-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}#orderDetails table tbody tr th, +#orderDetails table tbody tr td, +#orderDetails table tfoot tr th, +#orderDetails table tfoot tr +td{height:0px;line-height:0px;padding-top:0px;padding-bottom:0px;overflow:hidden}#orderDetails.css3 table tbody tr th, +#orderDetails.css3 table tbody tr td, +#orderDetails.css3 table tfoot tr th, +#orderDetails.css3 table tfoot tr +td{-webkit-transition:height 0.3s, line-height 0.3s, padding-top 0.3s, padding-bottom 0.3s ease-in-out;-moz-transition:height 0.3s, line-height 0.3s, padding-top 0.3s, padding-bottom 0.3s ease-in-out;-ms-transition:height 0.3s, line-height 0.3s, padding-top 0.3s, padding-bottom 0.3s ease-in-out;-o-transition:height 0.3s, line-height 0.3s, padding-top 0.3s, padding-bottom 0.3s ease-in-out;transition:height 0.3s, line-height 0.3s, padding-top 0.3s, padding-bottom 0.3s ease-in-out;-webkit-transition-delay:0.2s;-moz-transition-delay:0.2s;-ms-transition-delay:0.2s;-o-transition-delay:0.2s;transition-delay:0.2s;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}#orderDetails table tbody.android2 tr th, +#orderDetails table tbody.android2 tr td, +#orderDetails table tfoot.android2 tr th, +#orderDetails table tfoot.android2 tr +td{display:none}#orderDetails table.open tbody, +#orderDetails table.open +tfoot{opacity:1;filter:alpha(opacity=100)}#orderDetails.css3 table.open tbody, +#orderDetails.css3 table.open +tfoot{-webkit-transition:opacity 0.2s ease-in-out;-moz-transition:opacity 0.2s ease-in-out;-ms-transition:opacity 0.2s ease-in-out;-o-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out;-webkit-transition-delay:0.3s;-moz-transition-delay:0.3s;-ms-transition-delay:0.3s;-o-transition-delay:0.3s;transition-delay:0.3s;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}#orderDetails table.open tbody tr th, +#orderDetails table.open tbody tr td, +#orderDetails table.open tfoot tr th, +#orderDetails table.open tfoot tr +td{height:24px;line-height:24px;padding-top:6px}#orderDetails.css3 table.open tbody tr th, +#orderDetails.css3 table.open tbody tr td, +#orderDetails.css3 table.open tfoot tr th, +#orderDetails.css3 table.open tfoot tr +td{-webkit-transition:height 0.3s, line-height 0.3s ease-in-out;-moz-transition:height 0.3s, line-height 0.3s ease-in-out;-ms-transition:height 0.3s, line-height 0.3s ease-in-out;-o-transition:height 0.3s, line-height 0.3s ease-in-out;transition:height 0.3s, line-height 0.3s ease-in-out;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}#orderDetails table.open tbody.android2 tr th, +#orderDetails table.open tbody.android2 tr td, +#orderDetails table.open tfoot.android2 tr th, +#orderDetails table.open tfoot.android2 tr +td{display:table-cell}#orderDetails table.open tbody tr th, +#orderDetails table.open tbody tr +td{padding-bottom:6px}#orderDetails table.open tfoot tr th, +#orderDetails table.open tfoot tr +td{padding-bottom:10px}#orderDetails table tfoot +tr.vatMessageRow{display:table-row}#orderDetails table tfoot tr.vatMessageRow +td{padding-left:20px;font-size:12px;font-weight:normal;text-align:left}.rtl #orderDetails table tfoot tr.vatMessageRow +td{text-align:right}#orderDetails table.open tfoot tr.vatMessageRow +td{line-height:18px}#orderDetails table tfoot tr.changeOrder +td{padding:0 +20px;font-size:14px;text-align:left}#orderDetails table.open tfoot tr.orderDetails +td{line-height:14px}.toggleOrder{display:block !important;position:absolute;background:transparent;border:0;top:0;left:0;width:100%;height:45px;outline-width:0;outline:none;z-index:998}button.toggleOrder::-moz-focus-inner{border:0;padding:0}button.toggleOrder:focus{border:2px +solid #c5d9e1}#orderDetails +.sideMessage{position:relative;width:auto;height:100%;margin: -15px 20px 25px}#orderDetails .sideMessage +.arrow{position:absolute;z-index:999}#orderDetails +.currencySelector{display:none}.vatTooltip{display:none}}body{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}footer +p{margin:0}p.dummyContent{font-size:14px;line-height:35px;color:#8BACDA}strong,b{font-weight:bold}small{font-size:0.79em}iframe{width:100%;overflow-y:hidden}.floatl{float:left}.floatr{float:right}.hidden{display:none}.noTablet{display:block}.noMobile{display:block}.mobile +.noMobile{display:none !important}.noDesktop{display:none}.pageView{display:none}#loader{height:280px;background-repeat:no-repeat;background-position:50% 50%}#overlayBg{display:none;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#e7f1f5;opacity:0.9;filter:alpha(opacity=90);z-index:997}.overlayHiddenContent{display:none !important}.overlayMessage{display:none;position:absolute;top:200px;left:50%;width:296px;padding:28px +34px;margin:0 +0 0 -180px;background-color:#fff;z-index:998;border:1px +solid white}p.notification{position:relative;margin-bottom:35px;padding:14px +22px 16px 60px;overflow:hidden;border:1px +solid white}.rtl +p.notification{padding:14px +60px 16px 22px}.notification.alert{background-color:#fcdcde}.notification.warning{background-color:#ffeed9}.notification.success{background-color:#ecf5d9}.notification.info{background-color:#d9f3fd}.notification strong, +.notification +b{display:block}.notification +.icon{display:block;height:25px;width:27px;position:absolute;left:16px;overflow:hidden}.notification +.icon{*background:url("../images/backgrounds/misc-elements-sprite.png") no-repeat}.notification .icon:before{content:url("../images/backgrounds/misc-elements-sprite.png");position:relative;left: -34px}.rtl .notification +.icon{right:16px}.notification.alert .icon:before{top: -191px}.notification.warning .icon:before{top: -220px}.notification.info .icon:before{top: -248px}.notification.success .icon:before{left:0px;top: -248px}.notification.alert +.icon{*background-position: -34px -191px}.notification.warning +.icon{*background-position: -34px -220px}.notification.info +.icon{*background-position: -34px -248px}.notification.success +.icon{*background-position: -64px -248px}.messageContainer +p{position:relative;margin-bottom:19px;padding-left:60px;padding-top:4px;font-weight:200;font-size:24px;line-height:30px;min-height:37px}.rtl .messageContainer +p{padding-left:0;padding-right:60px}.messageContainer p +strong{font-weight:600}.messageContainer +.last{margin-bottom:43px}.messageContainer +.icon{display:block;position:absolute;left:0;top:0;width:41px;height:41px;overflow:hidden}.messageContainer +.icon{*background:url("../images/backgrounds/misc-elements-sprite.png") no-repeat}.messageContainer .icon:before{content:url("../images/backgrounds/misc-elements-sprite.png");position:relative;left: -19px}.rtl .messageContainer +.icon{left:auto;right:0}* html .messageContainer +.icon{margin-left: -60px}.messageContainer .successful .icon:before{top: -444px}.messageContainer .email .icon:before{top: -485px}.messageContainer .pending .icon:before{top: -526px}.messageContainer .error .icon:before{top: -567px}.messageContainer .successful +.icon{*background-position: -19px -444px}.messageContainer .email +.icon{*background-position: -19px -485px}.messageContainer .pending +.icon{*background-position: -19px -526px}.messageContainer .error +.icon{*background-position: -19px -567px}.messageContainer +.button{float:right}.pagination{height:100%;overflow:hidden}.pagination +.next{float:left;text-align:left;margin-right:30px}.rtl .pagination +.next{float:left;text-align:left}.pagination +.prev{float:left;text-align:left}.rtl .pagination +.prev{float:right;text-align:right}.confirmationChild +.extraMargin{margin-bottom:27px}.confirmationParent +.messageContainer{margin-bottom:41px}.confirmationParent +iframe{width:100%}.confirmationParent +.pagination{padding-top:26px}.confirmationChild +body{background-color:#e7f1f5;padding:30px;padding-top:22px;color:#333534}.confirmationChild +p.highlight{font-size:16px;font-weight:600;margin-bottom:23px}.confirmationChild +table{line-height:24px;margin-bottom:22px}.confirmationChild table tr +td{font-weight:600}.confirmationChild table tr td:first-child{width:240px;font-weight:400}.currencySelectMobile{display:none}.currencySelect .fieldRow.inline +select{padding-right:0px;margin-bottom:20px}.currencySelect select, +.currencySelect .fieldRow.inline +select{width:240px}.currencySelect +.inline{width:202px}@media only screen and (max-width: 959px){.messageContainer +.icon{width:35px;height:35px}.messageContainer .icon:before{left: -25px}.messageContainer .successful .icon:before{top: -608px}.messageContainer .email .icon:before{top: -643px}.messageContainer .pending .icon:before{top: -678px}.messageContainer .error .icon:before{top: -713px}.messageContainer .successful +.icon{*background-position: -25px -608px}.messageContainer .email +.icon{*background-position: -25px -643px}.messageContainer .pending +.icon{*background-position: -25px -678px}.messageContainer .error +.icon{*background-position: -25px -713px}}@media only screen and (min-width: 768px) and (max-width: 959px){.noDesktop{display:block}.noMobile{display:block}.noTablet{display:none}.messageContainer +p{padding-left:48px;font-size:18px;line-height:24px}.rtl .messageContainer +p{padding-left:0px;padding-right:48px}.currencySelect .customSelectElement, +.currencySelect +.styledSelect{width:180px}.currencySelect select, +.currencySelect .fieldRow.inline +select{width:180px}.currencySelect +.inline{width:142px}}@media only screen and (max-width: 767px){.noDesktop{display:block}.noTablet{display:block}.noMobile{display:none}header{display:none}#loader{height:200px;width:280px;background-size:60px}.overlayMessage{left:20px;right:20px;width:auto;padding:20px +12px;margin:0}.currencySelect{display:none}.currencySelectMobile{display:block}.currencySelectMobile select, +.currencySelectMobile .fieldRow.inline +select{width:75px}.currencySelectMobile +.fieldRow{float:right;margin-bottom:20px}.rtl .currencySelectMobile +.fieldRow{float:left;margin-bottom:20px}.currencySelectMobile +.styledSelect{width:75px !important;margin-right:4px}.rtl .currencySelectMobile +.styledSelect{margin-left:4px}.rtl .currencySelectMobile +span.styledSelect.inline{padding-left:0}p.notification{padding:13px +22px 13px 45px}.notification +.icon{left:11px}.messageContainer +p{min-height:31px;margin-bottom:13px;padding-left:47px;font-size:14px;font-weight:400;line-height:16px}.rtl .messageContainer +p{padding-left:0;padding-right:47px}.messageContainer{margin-bottom:20px;clear:both}.messageContainer p strong, +.messageContainer p +b{font-weight:400}.messageContainer +.last{margin-bottom:21px}.messageContainer +a.button{float:none}.pagination{padding:0;display:table;width:100%}.pagination .next, +.rtl .pagination +.next{display:table-header-group;text-align:auto;float:none !important;width:100%}.pagination .prev, +.rtl .pagination +.prev{display:table-row-group;text-align:auto;width:100%;margin-top:13px;margin-bottom:18px}.pagination .prev:first-child{margin-top:13px;margin-bottom:18px}.confirmationParent +.messageContainer{margin-bottom:28px}.confirmationParent .messageContainer +p{font-weight:400}.confirmationParent +iframe{width:100%}.confirmationParent .orderDetails +table{width:100%;color:#333534;margin-bottom:21px}.confirmationParent .orderDetails +thead{font-size:18px}.confirmationParent .orderDetails +.total{font-weight:600}.confirmationParent .orderDetails td, +.confirmationParent .orderDetails +th{border-top:1px solid #e7f1f5;padding:11px +0}.confirmationParent .orderDetails thead td, +.confirmationParent .orderDetails thead +th{border-top:none}.confirmationParent .orderDetails +th{text-align:left}.confirmationParent .orderDetails +td{text-align:right}.confirmationParent .orderDetails +.discountRow{color:#EC008C}.confirmationParent +.pagination{padding-top:26px}.confirmationParent +.sideContent{display:none}.mobile.confirmationChild +body{background-color:#e7f1f5;padding:12px;padding-top:22px;padding-bottom:24px;color:#333534}.mobile.confirmationChild +p.highlight{font-size:14px}.mobile.confirmationChild +.extraMargin{margin-bottom:0}.mobile.confirmationChild +table{line-height:24px;margin-bottom:22px}.mobile.confirmationChild table tr +td{font-weight:600;display:block}.confirmationChild table tr td:first-child{width:240px;font-weight:400}}.fieldRow.correctInput .icon, +.fieldRow.error +.icon{overflow:hidden}.fieldRow.correctInput .icon:before{content:url("../images/backgrounds/misc-elements-sprite.png");left: -33px;top: -2px;position:relative;float:left}.fieldRow.error .icon:before{content:url("../images/backgrounds/misc-elements-sprite.png");left: -33px;top: -61px;position:relative}.fieldRow.error .inlineError +.icon{position:absolute;display:block;left: -1px;top: -2px;float:left}.fieldRow.error .inlineError .icon:before{content:url("../images/backgrounds/misc-elements-sprite.png");left: -33px;top: -61px;position:relative}.radioList label +.icon{overflow:hidden}.radioList label .icon:before{left:16px;top: -68px;content:url("../images//label-bg.png");position:relative}.fieldRow.radioList.correctInput label .icon:before{left:16px;top: -68px;content:url("../images//label-bg.png");position:relative}.fieldRow.radioList.correctInput label.checked .icon:before{left:16px;top:0;content:url("../images//label-bg.png");position:relative}.radioList label.checked .icon:before{left:16px;top:0;content:url("../images//label-bg.png");position:relative}.checkbox label +.icon{overflow:hidden}.checkbox label .icon:before{top: -265px;content:url("../images//label-bg.png");position:relative}.checkbox.hover .icon:before, +.checkbox.focus .icon:before{top: -300px;content:url("../images//label-bg.png")}.checkbox label.checked .icon:before{top: -265px;left: -30px;content:url("../images//label-bg.png")}.checkbox.hover label.checked .icon:before, +.checkbox.focus label.checked .icon:before{top: -300px;left: -30px;content:url("../images//label-bg.png")}.checkbox.error label .icon:before{top: -395px;left:0;content:url("../images//label-bg.png")}.checkbox.error.hover label .icon:before, +.checkbox.error.focus label .icon:before{top: -427px;left:0;content:url("../images//label-bg.png")}.dropdownArrow{position:absolute;display:block;width:100%;text-align:right}.dropdownArrow:before{content:url("../images/backgrounds/misc-elements-sprite.png");right:4px;top: -61px;position:relative;width:100%}span.hasLogo .dropdownArrow:before, +span.hasFlag .dropdownArrow:before{content:url("../images/backgrounds/misc-elements-sprite.png")}.currencySelect .styledSelect.inline .dropdownArrow:before{content:url("../images/backgrounds/misc-elements-sprite.png")}.currencySelectMobile .styledSelect.inline .dropdownArrow:before{top: -61px;content:url("../images/backgrounds/misc-elements-sprite.png")} +@media only screen and (max-width: 767px){.radioList label .icon:before{left:16px;top: -202px}.radioList label.checked .icon:before{left:16px;top: -142px;position:relative}}button{font-family:inherit}.fieldRow +label{padding-bottom:8px}.shortInputsWrapper{padding-bottom:20px;overflow:hidden}.shortInputsWrapper +label{margin-bottom:0}.fieldRow{position:relative;padding:0 +0 20px 0;clear:both;z-index:5}.fieldRow.genericMessageContainer{position:absolute;display:none;z-index:11}.fieldRow.genericMessageContainer.error +.arrow{display:block;left:9px;top:0}.fieldRow.genericMessageContainer.error +.message.error{display:block;left:29px;top:0}.fieldRow.genericMessageContainer.tip +.arrow{display:block;left:10px;top:0}.fieldRow.genericMessageContainer.tip +.message.tip{display:block;left:29px;top:0}.shortInputsWrapper.error +.fieldRow{padding:0}.fieldRow.select{min-height:61px}.fieldRow.active{z-index:10}.fieldRow:last-child{}.fieldRow +label{display:block;float:none}.fieldRow +input{position:relative;width:253px;height:33px;line-height:33px;padding:1px +10px;border:1px +solid #00AFF0;margin:1px;font-size:14px;background:transparent;outline:none}.fieldRow input:focus, +.fieldRow input:hover{border:2px +solid #00AFF0;margin:0}.error input:focus, +.error input:hover{margin:0;border:2px +solid #E81123}.correctInput input:focus, +.correctInput input:hover, +.shortInput.correctInput input:focus, +.shortInput.correctInput input:hover{margin:0;border:2px +solid #00AFF0}.sideContent .fieldRow:last-child{}.shortInput +input{width:70px}.error input, +.correctInput +input{width:228px;padding:1px +35px 1px 10px}.rtl .error input, +.rtl .correctInput +input{width:228px;padding:1px +10px 1px 35px}.shortInput.error input, +.shortInput.correctInput +input{width:46px}.fieldRow +.icon{position:absolute;width:30px;height:30px;top:32px;*background-image:url("../images/backgrounds/misc-elements-sprite.png")}.fieldRow +.icon{left:242px}.rtl .fieldRow +.icon{right:242px}.fieldRow.shortInput +.icon{left:61px}.fieldRow.shortInput +.icon{right:61px}.fieldRow.error .icon, +.fieldRow.correctInput +.icon{display:inline}form .correctInput +.icon{background-position: -33px -2px}form .shortInput.correctInput +.icon{background-position: -32px -2px}form .error +.icon{background-position: -34px -62px}form .error +input{border:1px +solid #E81123}form .disabled +input{cursor:not-allowed;color:#BDD1DC;border:1px +solid #e4eef2 !important;margin:0}.fieldRow .message, +.shortInputsWrapper +.message{display:none;position:absolute;min-width:270px;padding:7px +19px 10px;line-height:18px;zoom:1;z-index:2;overflow:hidden}.fieldRow +.message{left:300px;top:26px}.rtl .fieldRow +.message{right:300px}.fieldRow .message strong, +.shortInputsWrapper .message +strong{font-weight:600}.fieldRow .message strong, +.fieldRow .message span, +.shortInputsWrapper .message +strong{display:block;padding-bottom:6px}.fieldRow .message span:last-child{padding-bottom:0}.fieldRow.shortInput +.message{left:120px}.fieldRow.select.shortInput +.message{left:140px}.rtl .fieldRow.shortInput +.message{right:120px}.rtl .fieldRow.select.shortInput +.message{right:140px}.fieldRow.inlineSelect{float:left;margin-right:29px}.mobile +.fieldRow.inlineSelect{padding-bottom:0}.shortInputsWrapper +.fieldRow{padding-bottom:0}.shortInputsWrapper.shortInputerror{padding-bottom:20px}.mobile +.shortInputsWrapper.shortInputerror{padding-bottom:0}.fieldRow.noClear{clear:none}.fieldRow.noRightMargin{margin-right:0}.fieldRow +.arrow{position:absolute;width:30px;height:30px;top:25px;background-image:url("../images/backgrounds/misc-elements-sprite.png");background-position:0 0;display:none}.fieldRow .arrow::before{content:"";display:block;width:14px;height:14px;background-color:#d9f3fD;border-color:#d9f3fd;border-style:solid;border-left-width:1px;border-top-width:1px;border-right-width:0px;border-bottom-width:0px;left:25px;top:13px;position:relative;-webkit-transform:translate(-12px, 0px) rotate(-45deg) skew(10deg, 10deg);-moz-transform:translate(-12px, 0px) rotate(-45deg) skew(10deg, 10deg);-ms-transform:translate(-12px, 0px) rotate(-45deg) skew(10deg, 10deg);-o-transform:translate(-12px, 0px) rotate(-45deg) skew(10deg, 10deg);transform:translate(-12px, 0px) rotate(-45deg) skew(10deg, 10deg);z-index:3}.rtl .fieldRow.shortInput.error +.arrow{right:96px}.rtl .fieldRow.shortInput.tip +.arrow{right:97px}.fieldRow.select.shortInput.error +.arrow{background-position: -32px -85px;left:120px}.rtl .fieldRow.select.shortInput.error +.arrow{background-position: -2px -85px}.fieldRow.shortInput.tip +.arrow{background-position: -32px -115px}.fieldRow.error +.message.error{display:none;background-color:#F6D8DC;min-width:230px;padding:10px +20px 11px 20px}.fieldRow.error .arrow::before{background-color:#F6D8DC;border-color:#F6D8DC}.select.error +.message.error{padding:9px +20px 10px 20px}.fieldRow.combinedError{display:none}.fieldRow.active.combinedError{display:block}.fieldRow.error +.arrow{display:none;background-position: -32px -85px;left:280px}.fieldRow.short.error .arrow, +.fieldRow.shortInput.error +.arrow{left:100px}.fieldRow.dualInput.error +.arrow{left:280px}.rtl .fieldRow.short.error +.arrow{right:99px}.rtl .fieldRow.dualInput.error +.arrow{right:280px}.rtl .fieldRow.select.short.error +.arrow{right:116px}.rtl .fieldRow.select.dualInput.error +.arrow{right:277px}.rtl .fieldRow.error +.arrow{display:none;background-position: -2px -85px;right:277px}.fieldRow.error.active .message.error, +.fieldRow.error.active +.arrow{display:block}.fieldRow.tip +.message.tip{background-color:#D9F3FD;min-width:230px;padding:9px +20px 10px 20px;display:none}.fieldRow.tip +.arrow{background-position: -32px -115px;left:280px;display:none}.rtl .fieldRow.tip +.arrow{background-position: -2px -115px;right:277px;display:none}.fieldRow.tip.active +.arrow{display:block}.fieldRow.tip.active +.message.tip{display:block}.radioList{font-weight:600;font-size:36px !important;padding-bottom:0px}.radioList +li.radioLink{height:23px;padding-top:6px;line-height:23px}.radioList .radioLink +a{padding:0;font-size:16px;line-height:23px;font-weight:400;vertical-align:top}.radioList +label{position:relative;display:block;min-height:71px;line-height:71px;padding:0 +10px 0 60px;border-bottom:solid 1px #e7f1f5;cursor:pointer;cursor:hand;background-color:#fff;font-weight:400;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rtl .radioList +label{padding:0 +60px 0 10px}.radioList +ul{padding-left:2px;padding-right:2px;padding-top:1px;padding-bottom:1px}.radioList +ul.focus{padding:0px}.radioList ul.focus li +label{border-color:#e4eef2;border-style:solid}.radioList ul.focus li +label{border-width:0px 2px 1px 2px}.radioList ul.focus li.first +label{border-width:2px 2px 1px 2px;border-bottom-color:#E7F1F5}.radioList ul.focus li.last +label{border-width:0px 2px 2px 2px;border-bottom-color:#E7F1F5}.radioList ul.focus li.one +label{border-width:2px 2px 2px 2px;border-bottom-color:#E7F1F5}.radioList ul.focus li.radioLink +a{border:none;padding-left:2px}.rtl .radioList ul.focus li.radioLink +a{padding-right:2px}.radioList ul.focus +li.radioLink{padding-top:5px;padding-bottom:1px}.radioList +label.hover{background-color:#e4eef2}.radioList label.disabled:hover{background-color:white}.radioList label.disabled +.logo{border-color:#e4eef2}.radioList label.disabled +.logo{cursor:not-allowed;filter:alpha(opacity=40);opacity:0.4}.radioList label.disabled +span.discount{cursor:not-allowed;filter:alpha(opacity=40);opacity:0.4}.radioList label.disabled .text, +.radioList label.disabled +.description{color:#BDD1DC}*html .radioList +label{height:10px}.radioList label.disabled +.radioUnavailable{float:right;margin-top: -30px;font-size:12px;line-height:19px;color:#E82E46;padding-bottom:5px}.paymentMethods +label{padding-left:166px}.rtl .paymentMethods +label{padding-right:166px}.radioList label +input{position:absolute;border:none;top:50%;left: -2000px;margin-top: -15px}.rtl .radioList label +input{right: -2000px;display:none;display:block\0/}*:first-child+html.rtl .radioList label +input{display:none !important}.radioList label +.icon{position:absolute;top:50%;left:0;width:60px;height:70px;margin: -36px 0 0 0;*background:url("../images//label-bg.png") no-repeat 16px -68px}.rtl .radioList label +.icon{right:0}.radioList label.special +.discount{padding-right:140px;background-image:url("../images/backgrounds/radio-special.png");background-repeat:no-repeat;background-position:140px 50%}.rtl .radioList label.special +.discount{padding-right:140px;background-position: -130px 50%}.radioList label.special +span.discount{position:absolute;display:table-cell;top:0;right:0;width:130px;height:100%;color:#fff}.rtl .radioList label.special +span.discount{left:0;right:auto}.radioList label.special span.discount +span{position:absolute;top:50%;*top:35px;right:0;display:block;width:95px;height:36px;margin: -18px 0 0 0;padding:0 +10px 0 0;font-size:36px;line-height:36px;font-weight:400;text-align:right}.rtl .radioList label.special span.discount +span{right:auto;left:0;padding:0 +0 0 10px;text-align:left}.radioList +label.checked{background-color:#00aff0;color:#fff}.radioList label.checked +.icon{*background-position:16px 0}.radioList +label.disabled{cursor:not-allowed}.radioList label.disabled +.icon{cursor:not-allowed;background-position: -28px -68px}.radioList ul li:first-child +label{border-top:solid 1px #e7f1f5}.paymentMethods +.logo{position:absolute;display:block;top:50%;left:60px;width:83px;max-width:83px;max-height:47px;height:47px;line-height:47px;margin: -24px 0 0 0;border:1px +solid #00aff0;background-color:#fff;overflow:hidden;background-position:50% 50%;background-repeat:no-repeat}.rtl .paymentMethods +.logo{right:61px}.paymentMethods label.hover +.logo{margin: -25px 0 0 -1px;border-width:2px}.rtl .paymentMethods label.hover +.logo{margin: -25px -1px 0 0}.paymentMethods label.disabled:hover +.logo{margin: -24px 0 0 0;border-width:1px}.paymentMethods .logo +img{display:inline-block;width:100%;vertical-align:text-bottom;-ms-interpolation-mode:bicubic}.withDescription span.text, +.withDescription +span.description{display:block;line-height:20px;font-size:16px;font-weight:600;color:#666;overflow:hidden;text-overflow:ellipsis}.withDescription +span.text{padding-top:12px;color:#333534}.withDescription +span.description{padding-bottom:12px}.withDescription .checked span.text, +.withDescription .checked +span.description{color:#fff}#termsOfService{display:none}.checkbox{position:relative}.checkbox input, +.error .checkbox +input{position:absolute;top:0;left: -2000px;vertical-align:top}.rtl .checkbox input, +.rtl .error .checkbox +input{right: -2000px;display:none;display:block\0/}*:first-child+html.rtl .checkbox +input{display:none !important}.checkbox +label{width:auto;font-size:16px;padding-left:35px;overflow:hidden}.rtl .checkbox +label{padding-right:35px}.checkbox +label.disabled{cursor:not-allowed;color:#BDD1DC}.checkbox label +.icon{position:absolute;top:0;left:0;float:left;width:25px;height:25px;margin:0 +0 0 0;*background:url("../images//label-bg.png") no-repeat 0 -265px}.rtl .checkbox label +.icon{right:0;float:right}.checkbox label.checked +.icon{*background-position: -30px -265px}.checkbox.error label +.icon{*background-position:0 -395px}.checkbox.error.hover label .icon, +.checkbox.error.focus label +.icon{*background-position:0 -427px}.checkbox label.disabled +.icon{*background-position:0 -265px}.checkbox.hover label .icon, +.checkbox.focus label +.icon{*background-position: -0 -300px}.checkbox.hover label.checked .icon, +.checkbox.focus label.checked +.icon{*background-position: -30px -300px}.checkbox label.disabled .icon, +.checkbox.hover label.disabled +.icon{*background-position: -60px -265px}.checkbox.checked label.disabled +.icon{*background-position: -90px -265px}.checkbox label +strong{display:block;padding:2px +0 5px;font-weight:600;font-size:16px}.checkbox label +.text{font-weight:400;font-size:16px;line-height:20px}.checkbox +.inlineError{display:none}.checkbox.error +.inlineError{padding-left:35px;color:#e81123;display:block;padding-top:3px;position:relative}.rtl .checkbox.error +.inlineError{padding-left:0px;padding-right:35px}select.customSelectElement{position:relative;float:left;z-index:10;width:269px;height:35px;line-height:35px;margin:1px;z-index:10;opacity:0;-moz-opacity:0;filter:alpha(opacity=0);-khtml-appearance:none}.rtl +select.customSelectElement{float:right}*html .error +select{color:#f00}select.short{width:119px}.fieldRow.inline +select{width:auto}select[disabled=disabled]{cursor:not-allowed}span.styledSelect{position:absolute;top:auto;float:left;left:0;width:242px;padding-right:25px;height:33px;line-height:33px;text-indent:11px;*background:#fff url("../images/backgrounds/misc-elements-sprite.png") no-repeat right -273px;cursor:default;z-index:1;border:solid 1px #00aff0;font-size:16px;font-weight:400;overflow:hidden;margin:1px;white-space:nowrap;text-overflow:ellipsis}.rtl +span.styledSelect{float:right;right:0;background-position: -31px -273px}span.styledSelect.short{width:92px}.short +.customSelectElement{width:92px}span.styledSelect.inline{display:inline-block;font-size:16px;padding-right:35px;border:2px +solid #fff;color:#00aff0}.rtl +span.styledSelect.inline{padding-right:0;padding-left:35px}.fieldRow.inline.hover +span.styledSelect{text-decoration:underline;border:1px +solid #fff;margin:2px}.fieldRow.inline.active +span.styledSelect{margin:1px;border:solid 2px #00aff0}span.hasLogo,span.hasFlag{text-indent:60px}.hasLogo .logo, .hasFlag +.flag{display:block;position:absolute;top:4px;height:23px;border:1px +solid #A2C5D3}.hasFlag .flag:before{content:url("../images/flags/country-flags-37x23.png");left: -60px}.hasFlag +.flag{*background-image:url("../images/flags/country-flags-37x23.png");left:9px;width:37px;overflow:hidden}.hasLogo +.logo{background-size:100% 100%;background-repeat:no-repeat;left:7px;width:41px}.rtl .hasLogo +.logo{right:12px}.fieldRow .styledSelect.active, +.fieldRow +.styledSelect.hover{margin:0;border:solid 2px #00aff0}.fieldRow .styledSelect.inline.active, +.fieldRow +.styledSelect.inline.hover{margin:1px}.fieldRow.error .styledSelect.active, +.fieldRow.error +.styledSelect.hover{margin:0;border:solid 2px #e81123}.error +span.styledSelect{border:1px +solid #e81123;background-position:right -371px;margin:1px}.rtl .error +span.styledSelect{background-position: -8px -401px}.disabled +span.styledSelect{border:1px +solid #e4eef2;background-position:right -340px;color:#BDD1DC}.rtl .disabled +span.styledSelect{background-position: -31px -340px}.short.disabled +span.styledSelect{border:1px +solid #e4eef2;color:#BDD1DC}.dualInput.short span.styledSelect, +.dualInput.short +select{width:130px;top:0}.dualInput .second, +.dualInput +.first{position:absolute}.dualInput +.second{left:143px}.rtl .dualInput +select{float:none}.rtl .dualInput +.second{right:138px}@media only screen and (min-width: 768px){.fieldRow +.message{border:1px +solid #d9f3fD}.fieldRow.error +.message{border:1px +solid #F6D8DC}}@media only screen and (max-width: 767px){.fieldRow.inline.hover +span.styledSelect{text-decoration:underline;border:1px +solid #fff;margin:1px}.radioList +li.radioLink{height:24px;padding-top:19px;line-height:24px}.radioList ul.focus +li.radioLink{padding-top:18px}.radioList{padding-bottom:18px;font-size:24px;color:#333534}.radioList +label{min-height:57px;line-height:57px;padding-left:61px}.rtl .radioList +label{padding-right:61px}.radioList label +.icon{width:52px;height:56px;margin-top: -28px;*background-position:16px -202px}.radioList label.checked +.icon{*background-position:16px -142px}.radioList label.disabled +.icon{background-position: -27px -202px}.radioList +label.special{padding-right:80px}.rtl .radioList +label.special{padding-left:80px;padding-right:61px}.radioList label.special +span.discount{width:80px;background-image:url("../images/backgrounds/radio-special-mobile.png")}.rtl .radioList label.special +span.discount{background-position: -80px 50%}.radioList label.special span.discount +span{width:65px;height:24px;margin: -12px 0 0 0;padding:0 +5px 0 0;font-size:22px;line-height:24px;font-weight:600}.rtl .radioList label.special span.discount +span{padding:0 +0 0 5px}.paymentMethods +label{min-height:61px;padding-left:117px}.rtl .paymentMethods +label{padding-right:117px}.paymentMethods label +.logo{left:52px;width:54px;height:37px;line-height:37px;margin-top: -19px}.rtl .paymentMethods label +.logo{right:52px;left:auto}.paymentMethods label.hover .logo, +.rtl .paymentMethods label.hover +.logo{margin-top: -20px}.paymentMethods label.disabled.hover .logo, +.rtl .paymentMethods label.disabled.hover +.logo{margin-top: -19px}.paymentMethods label .logo +img{display:inline-block;vertical-align:text-bottom}.withDescription span.text, +.withDescription +span.description{font-size:14px}.fieldRow .tip, +.tip .arrow, +.error +.arrow{display:none !important}.fieldRow .message, +.shortInputsWrapper +.message{width:auto;position:relative;left:0;top:10px;clear:both;margin-top:1px;margin-bottom:10px;padding:0;background:none !important;color:#e81123}.rtl .fieldRow .message, +.rtl .shortInputsWrapper +.message{right:0}.fieldRow .message +strong{padding-bottom:0}.fieldRow.shortInput .message, +.fieldRow.shortInput.error +.arrow{left:0}.rtl .fieldRow.shortInput .message, +.rtl .fieldRow.shortInput.error +.arrow{right:0}.fieldRow.error +.message.error{padding-left:0;padding-top:0;width:auto;display:block;padding:0;width:100%;visibility:visible;opacity:1}.fieldRow.select +span.error.message{display:none}.fieldRow.select.error +span.error.message{display:block}.fieldRow.shortInput.error +.arrow{background-position: -177px -147px}.fieldRow.shortInput.tip +.arrow{background-position: -177px -166px}.fieldRow.select.shortInput +.message{left:auto}.checkbox{}form .checkbox +input{position:absolute;left: -2000px;margin:0;padding:0}.rtl form .checkbox +input{right: -2000px}.checkbox +label{font-size:18px;line-height:21px}.checkbox label +.icon{background-position:0px -336px}.checkbox label.checked +.icon{background-position: -30px -336px}.checkbox.error label +.icon{background-position:0 -460px}.checkbox.error.hover label .icon, +.checkbox.error.focus label +.icon{background-position:0px -488px}.checkbox label.disabled +.icon{background-position:0 -265px}.checkbox.hover label .icon, +.checkbox.focus label +.icon{background-position: -0px -367px}.checkbox.hover label.checked .icon, +.checkbox.focus label.checked +.icon{background-position: -30px -367px}.checkbox label.disabled .icon, +.checkbox.hover label.disabled +.icon{background-position: -60px -336px}.checkbox.checked label.disabled +.icon{background-position: -90px -336px}.checkbox label +strong{padding:2px +0 5px 0;font-size:14px;line-height:16px}.checkbox label +.text{font-size:14px;line-height:16px}.fieldRow .customSelectElement, +.fieldRow +.styledSelect{width:242px;padding-right:0;margin:1px}.fieldRow.error +.styledSelect{margin:1px}.fieldRow.short .customSelectElement, +.fieldRow.short .styledSelect,{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;-ms-box-sizing:inherit;box-sizing:inherit;height:33px;width:100%}.fieldRow.inline .customSelectElement, +.fieldRow.inline +.styledSelect{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;-ms-box-sizing:content-box;box-sizing:content-box;height:33px;margin:0px;padding-right:0px;width:100%}.fieldRow.inline.active +span.styledSelect{margin:0px}.fieldRow.short.active .styledSelect,{margin:0px}.fieldRow.short.error .styledSelect:active{margin:1px}.mobile +.genericMessageContainer{display:none}.shortInputsWrapper{padding-bottom:20px}.shortInputerror{padding-bottom:0}.fieldRow +.combinedError{margin-top:35px}}.rtl .radioList label .icon:before{top: -68px;left:77px}.rtl .radioList label.checked .icon:before{top:0px;left:77px}.rtl +h2.yourOrder{float:right}.rtl +.dropdownArrow{text-align:left}.rtl .dropdownArrow:before{right:auto;left: -32px}.rtl .checkbox .icon:before{direction:rtl;top: -265px}.rtl .checkbox label .icon:before{right:auto;left:95px}.rtl .checkbox label.checked .icon:before{right:auto;left:65px}.rtl .checkbox.hover .icon:before, .checkbox.focus .icon:before{top: -300px}.rtl .messageContainer .icon:before{left:0}.rtl button.tooltip:before{left:282px}.rtl button.tooltip:hover:before, .rtl button.tooltip:focus:before{left:264px}.rtl button.tooltip:active:before{left:246px}.rtl .tooltip-message .arrow::before{transform:translate(20px, -16px) rotate(45deg) skew(10deg, 10deg);-o-transform:translate(20px, -16px) rotate(45deg) skew(10deg, 10deg);-ms-transform:translate(20px, -16px) rotate(45deg) skew(10deg, 10deg);-moz-transform:translate(20px, -16px) rotate(45deg) skew(10deg, 10deg);-webkit-transform:translate(20px, -16px) rotate(45deg) skew(10deg, 10deg)}.rtl .messageContainer +p{padding-left:0;padding-right:60px}.rtl +.errorIcon{left:auto;right:0}.rtl .vatTooltip:before{position:relative;left:282px;top:0px}.rtl .vatTooltip:hover, .rtl .vatTooltip:focus{margin: -1px 6px 1px 6px}.rtl .vatTooltip:hover:before, .rtl .vatTooltip:focus:before{left:264px;top:0}@media only screen and (max-width: 959px){.rtl .messageContainer .icon:before{left:0}}@media only screen and (max-width: 767px){.rtl .radioList label +.icon{margin: -36px 0 0 0}.rtl #orderDetails table.open tr.totalRow th .yourOrder .icon:before{left:auto;right: -75px}.rtl #orderDetails table thead tr.totalRow th .yourOrder .icon:before{left:auto;right: -165px}}.logo,.GLOBAL-COLLECT-OFFLINE{background-image:url("../images/methods/GLOBAL-COLLECT-OFFLINE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-OFFLINE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-OFFLINE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.AMEX-SKYPE{background-image:url("../images/methods/AMEX-SKYPE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/AMEX-SKYPE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/AMEX-SKYPE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-BPH-MONEYBOOKERS{background-image:url("../images/methods/BANK-BPH-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-BPH-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-BPH-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-FORTIS-MONEYBOOKERS{background-image:url("../images/methods/BANK-FORTIS-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-FORTIS-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-FORTIS-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-ING-MONEYBOOKERS{background-image:url("../images/methods/BANK-ING-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-ING-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-ING-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-INVEST-MONEYBOOKERS{background-image:url("../images/methods/BANK-INVEST-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-INVEST-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-INVEST-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-KREDYT-MONEYBOOKERS{background-image:url("../images/methods/BANK-KREDYT-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-KREDYT-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-KREDYT-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-LUKAS-MONEYBOOKERS{background-image:url("../images/methods/BANK-LUKAS-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-LUKAS-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-LUKAS-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-MILLENIUM-MONEYBOOKERS{background-image:url("../images/methods/BANK-MILLENIUM-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-MILLENIUM-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-MILLENIUM-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-NORDEA-MONEYBOOKERS{background-image:url("../images/methods/BANK-NORDEA-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-NORDEA-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-NORDEA-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-OCHRONY-MONEYBOOKERS{background-image:url("../images/methods/BANK-OCHRONY-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-OCHRONY-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-OCHRONY-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-PEKAO-MONEYBOOKERS{background-image:url("../images/methods/BANK-PEKAO-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-PEKAO-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-PEKAO-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-PKO-BP-MONEYBOOKERS{background-image:url("../images/methods/BANK-PKO-BP-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-PKO-BP-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-PKO-BP-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BANK-ZACHODNI-WBK-MONEYBOOKERS{background-image:url("../images/methods/BANK-ZACHODNI-WBK-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-ZACHODNI-WBK-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BANK-ZACHODNI-WBK-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.BGZ-INTEGRUM-MONEYBOOKERS{background-image:url("../images/methods/BGZ-INTEGRUM-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BGZ-INTEGRUM-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/BGZ-INTEGRUM-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.CARTEBLEUE-SKYPE{background-image:url("../images/methods/CARTEBLEUE-SKYPE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/CARTEBLEUE-SKYPE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/CARTEBLEUE-SKYPE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.CASHU{background-image:url("../images/methods/CASHU.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/CASHU.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/CASHU.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.CB-SKYPE{background-image:url("../images/methods/CB-SKYPE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/CB-SKYPE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/CB-SKYPE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.CITYBANK-MONEYBOOKERS{background-image:url("../images/methods/CITYBANK-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/CITYBANK-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/CITYBANK-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.DEUTCHEBANK-MONEYBOOKERS{background-image:url("../images/methods/DEUTCHEBANK-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/DEUTCHEBANK-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/DEUTCHEBANK-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.DINERS-SKYPE{background-image:url("../images/methods/DINERS-SKYPE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/DINERS-SKYPE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/DINERS-SKYPE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.EBETALNING-SSL{background-image:url("../images/methods/EBETALNING-SSL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/EBETALNING-SSL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/EBETALNING-SSL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.ECMC-SKYPE{background-image:url("../images/methods/ECMC-SKYPE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/ECMC-SKYPE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/ECMC-SKYPE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.ELV-MONEYBOOKERS{background-image:url("../images/methods/ELV-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/ELV-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/ELV-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.ENETS-SSL{background-image:url("../images/methods/ENETS-SSL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/ENETS-SSL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/ENETS-SSL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.GLOBAL-COLLECT-EPS-AT{background-image:url("../images/methods/GLOBAL-COLLECT-EPS-AT.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-EPS-AT.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-EPS-AT.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.GLOBAL-COLLECT-GIRO{background-image:url("../images/methods/GLOBAL-COLLECT-GIRO.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-GIRO.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-GIRO.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.GLOBAL-COLLECT-BOLETO{background-image:url("../images/methods/GLOBAL-COLLECT-BOLETO.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-BOLETO.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-BOLETO.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.GLOBAL-COLLECT-IDEAL{background-image:url("../images/methods/GLOBAL-COLLECT-IDEAL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-IDEAL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-IDEAL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.GLOBAL-COLLECT-ING-BE{background-image:url("../images/methods/GLOBAL-COLLECT-ING-BE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-ING-BE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-ING-BE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.GLOBAL-COLLECT-PAYSAFE{background-image:url("../images/methods/GLOBAL-COLLECT-PAYSAFE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-PAYSAFE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-PAYSAFE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.GLOBAL-COLLECT-SOFORT{background-image:url("../images/methods/GLOBAL-COLLECT-SOFORT.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-SOFORT.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-SOFORT.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.GLOBAL-COLLECT-WEBMONEY{background-image:url("../images/methods/GLOBAL-COLLECT-WEBMONEY.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-WEBMONEY.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/GLOBAL-COLLECT-WEBMONEY.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.HANSABANK-SSL{background-image:url("../images/methods/HANSABANK-SSL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/HANSABANK-SSL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/HANSABANK-SSL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.INTELIGO-MONEYBOOKERS{background-image:url("../images/methods/INTELIGO-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/INTELIGO-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/INTELIGO-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.JCB-SKYPE{background-image:url("../images/methods/JCB-SKYPE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/JCB-SKYPE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/JCB-SKYPE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.MACH-PAYBYMOBILE,.MACH-PAYBYMOBILE-US{background-image:url("../images/methods/MCB.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MCB.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MCB.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.MAESTRO-MONEYBOOKERS{background-image:url("../images/methods/MAESTRO-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MAESTRO-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MAESTRO-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.MBANK-MONEYBOOKERS{background-image:url("../images/methods/MBANK-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MBANK-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MBANK-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.MONEYBOOKERS{background-image:url("../images/methods/MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.MULTIBANK-MONEYBOOKERS{background-image:url("../images/methods/MULTIBANK-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MULTIBANK-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/MULTIBANK-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.PAYBYCASH{background-image:url("../images/methods/PAYBYCASH.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/PAYBYCASH.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/PAYBYCASH.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.PAYPAL{background-image:url("../images/methods/PAYPAL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/PAYPAL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/PAYPAL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.PAYPALBA{background-image:url("../images/methods/PAYPAL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/PAYPAL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/PAYPAL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.PAYPALPAP{background-image:url("../images/methods/PAYPAL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/PAYPAL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/PAYPAL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.POLI-MONEYBOOKERS{background-image:url("../images/methods/POLI-MONEYBOOKERS.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/POLI-MONEYBOOKERS.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/POLI-MONEYBOOKERS.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.QIWI-SSL{background-image:url("../images/methods/QIWI-SSL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/QIWI-SSL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/QIWI-SSL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.SMODE{background-image:url("../images/methods/SMODE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/SMODE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/SMODE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.UHISBANK-SSL{background-image:url("../images/methods/UHISBANK-SSL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/UHISBANK-SSL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/UHISBANK-SSL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.UKASH{background-image:url("../images/methods/UKASH.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/UKASH.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/UKASH.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.VISA-SKYPE{background-image:url("../images/methods/VISA-SKYPE.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/VISA-SKYPE.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/VISA-SKYPE.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.VISA-SSL{background-image:url("../images/methods/VISA-SSL.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/VISA-SSL.png',sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/VISA-SSL.png',sizingMethod='scale')";-ms-interpolation-mode:bicubic}.YANDEX-MONEY{background-image:url("../images/methods/YANDEX-MONEY.png");background-size:contain;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/YANDEX-MONEY.png', sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/payment-flow/images/methods/YANDEX-MONEY.png', sizingMethod='scale')";-ms-interpolation-mode:bicubic}.contextNotification{text-align:left;background:#E7F1F5;padding:20px}.contextNotification +.arrow{margin-top: -27px;width:18px;height:12px;display:inline-block;position:absolute;background:url("../common/images/icons-sprite.png") no-repeat -128px 0;right:40px;z-index:10}.sideContent +tr.alertRow{position:absolute;margin-top: -15px;z-index:11}.sideContent tr.alertRow .contextNotification +.arrow{right:15px;margin-top: -32px;background:url("../common/images/icons-sprite.png") no-repeat -90px 0}.sideContent +.contextNotification{background:#D9F3FD}.sideContent .contextNotification +p{font-size:14px}.contextNotification.tablet,.contextNotification.mobile{display:none}.contextNotification.desktop{display:block}.contextNotification.desktop.hidden{display:none}@media only screen and (min-width: 768px) and (max-width: 959px){.contextNotification.desktop,.contextNotification.mobile{display:none}.contextNotification.tablet{display:block}.contextNotification.tablet.hidden{display:none}}@media only screen and (max-width: 767px){.contextNotification.desktop,.contextNotification.tablet{display:none}.contextNotification.mobile{margin: -25px 0 20px 0;display:block}.contextNotification.mobile.hidden{display:none}}@-moz-keyframes +spin{from{top:0;left:0}to{top: -5040px;left:0}}@-webkit-keyframes +spin{from{top:0;left:0}to{top: -5040px;left:0}}@-o-keyframes +spin{from{top:0;left:0}to{top: -5040px;left:0}}@-ms-keyframes +spin{from{top:0;left:0}to{top: -5040px;left:0}}@keyframes +spin{from{top:0;left:0}to{top: -5040px;left:0}}@-moz-keyframes +spinMobile{from{top:0;left:0}to{top: -4032px;left:0}}@-webkit-keyframes +spinMobile{from{top:0;left:0}to{top: -4032px;left:0}}@-o-keyframes +spinMobile{from{top:0;left:0}to{top: -4032px;left:0}}@-ms-keyframes +spinMobile{from{top:0;left:0}to{top: -4032px;left:0}}@keyframes +spinMobile{from{top:0;left:0}to{top: -4032px;left:0}}.spinner{height:280px !important;margin:auto;overflow:hidden;position:relative;width:280px !important}.spinnerText{position:relative;text-align:center;top:210px}.spinner.white +.spinnerText{color:#FFF}.spinner.blue +.spinnerText{color:#333534;outline:none}.spinner.pngSequence{overflow:visible}.spinnerPosition{position:absolute;margin:60px +80px;width:120px;height:120px}.spinnerMask{overflow:hidden}.spinnerMask.spin .spinnerSprite:before{-moz-animation:spin 1.6s steps(42) infinite;-webkit-animation:spin 1.6s steps(42) infinite;-o-animation:spin 1.6s steps(42) infinite;-ms-animation:spin 1.6s steps(42) infinite;animation:spin 1.6s steps(42) infinite;width:120px;height:120px}.spinnerSprite{position:relative;vertical-align:top;width:120px;height:120px}.white +.spinnerSprite{*background:url("../images/spinner/spinner-large-white.png") no-repeat}.white .spinnerSprite:before{display:inline-block;content:url("../images/spinner/spinner-large-white.png");position:relative}.blue +.spinnerSprite{*background:url("../images/spinner/spinner-large-blue.png") no-repeat}.blue .spinnerSprite:before{display:inline-block;content:url("../images/spinner/spinner-large-blue.png");position:relative}@media only screen and (max-width: 767px){.spinner{-moz-box-sizing:border-box;box-sizing:border-box;height:240px !important;width:240px !important}.spinnerAnimation{height:440px;left: -130px;top: -130px;-webkit-transform:scale(0.4);-moz-transform:scale(0.4);-o-transform:scale(0.4);transform:scale(0.4)}.spinnerPosition{margin:50px +70px;width:96px;height:96px}.spinnerMask.spin .spinnerSprite:before{-moz-animation:spinMobile 1.6s steps(42) infinite;-webkit-animation:spinMobile 1.6s steps(42) infinite;-o-animation:spinMobile 1.6s steps(42) infinite;-ms-animation:spinMobile 1.6s steps(42) infinite;animation:spinMobile 1.6s steps(42) infinite;width:96px;height:96px}.spinnerSprite{width:96px;height:96px}.white +.spinnerSprite{*background:url("../images/spinner/spinner-small-white.png") no-repeat}.white .spinnerSprite:before{content:url("../images/spinner/spinner-small-white.png")}.blue +.spinnerSprite{*background:url("../images/spinner/spinner-small-blue.png") no-repeat}.blue .spinnerSprite:before{content:url("../images/spinner/spinner-small-blue.png")}.spinnerText{top:180px}}#Overlay-bg{display:none;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#e7f1f5;opacity:0.9;filter:alpha(opacity=90);z-index:997}.Overlay-hidden-content{display:none !important}.Overlay-message{display:none;position:absolute;top:200px;left:50%;width:296px;padding:28px +34px;margin:0 +0 0 -180px;background-color:#fff;z-index:998;border:2px +solid white}@media only screen and (max-width: 767px){.Overlay-message{left:20px;right:20px;width:auto;padding:20px +12px;margin:0}}.invisible, body.errorPage +.sideContent{opacity:0;height:0;padding:0}h3.title-h3{margin-bottom:25px}.mainContent{padding-top:18px}.checkbox label +strong{font-weight:400}@media only screen and (max-width: 767px){#container,.mainContent{width:100%}header#skypeCredit{display:none}.mainContent{padding:0}.pageView{margin:1px +20px 20px 20px}#loader{width:100%;margin:0 +auto}.currencySelectMobile +.fieldRow.select{min-height:41px;margin-bottom:0px}.wpfc-btn.primaryCta.disabled{margin-left:0}.wpfc-btn,.wpfc-btn.small,.wpfc-btn.disabled{display:block !important;max-width:100% !important}h2.yourOrder{float:left;margin-bottom:0px !important}h3.title-h3{margin-top:20px}.fakeHeader h3, .fakeHeader .title-h3{margin-bottom:5px}}button.tooltip{background:transparent;padding:0;width:20px;height:20px;vertical-align:middle;border:solid 1px #FFF;border-radius:15px;cursor:pointer;overflow:hidden;margin:0px +5px}button.tooltip:before{position:relative;content:url("../images/icons/icons-sprite.png");left:0}button.tooltip:hover:before,button.tooltip:focus:before{left: -18px}button.tooltip:active:before{left: -36px}button.tooltip::-moz-focus-inner{border:0;padding:0}#label-checkbox-autoRecharge +strong{display:block;position:relative}.tooltip-message{display:none;position:relative;top:auto;right:0;left:0;margin:8px +0 0 0;padding:0;background-color:#D9F3FD;font-size:14px;line-height:18px;font-weight:400;text-align:left;z-index:100}.tooltip-message>span{display:block;padding:13px +30px}.tooltip-message.visible{display:block}.tooltip-message +.arrow{display:block;position:absolute;top: -12px;width:18px;height:12px;z-index: -190;background:url("../images/icons/icons-sprite.png") no-repeat;background-position: -90px 0}.tooltip-message .arrow::before{content:"";display:block;width:14px;height:14px;background-color:#D9F3FD;border-color:#D9F3FD;border-style:solid;border-left-width:1px;border-top-width:1px;border-right-width:0px;border-bottom-width:0px;top:22px;right:20px;position:relative;-webkit-transform:translate(-23px, -16px) rotate(45deg) skew(10deg, 10deg);-moz-transform:translate(-23px, -16px) rotate(45deg) skew(10deg, 10deg);-ms-transform:translate(-23px, -16px) rotate(45deg) skew(10deg, 10deg);-o-transform:translate(-23px, -16px) rotate(45deg) skew(10deg, 10deg);transform:translate(-23px, -16px) rotate(45deg) skew(10deg, 10deg);border-right-width:0px;border-bottom-width:0px;z-index: -100} + +#wpfc-shop-modal{ + position: absolute; + display: block; + background: url("../images/loader.gif") no-repeat scroll center center #ffffff; + + color: #333534; +} + +.wpfc-btn.primaryCta { + background-color: #7fba00; + border-color: #7fba00; +} + +.wpfc-btn { + color: white; + font-weight: 400; + font-size: 20px; + display: inline-block; + height: 100%; + cursor: pointer; + overflow: visible; + text-decoration: none; + line-height: 24px; + letter-spacing: -0.01em; + -webkit-border-radius: 50px; + -webkit-font-smoothing: subpixel-antialiased; + -webkit-tap-highlight-color: rgba(0,0,0,0); + -moz-border-radius: 50px; + border-radius: 50px; + border: 0; + position: relative; + border-width: 2px; + border-style: solid; + padding: 8px 0 11px 0; + background-color: #FFF; + cursor: hand; + word-wrap: break-word; + word-break: break-word; + -ms-word-break: break-word; + text-align: center; + margin: 2px; +} + +.wpfc-btn > span{ + padding-left: 25px; + padding-right: 25px; +} + +.wpfc-btn.primaryNegativeCta { + background-color: #FFF; + color: #333534; + border-color: #c0dce6 +} + +.wpfc-btn.primaryDisableCta { + background-color: #e4eef2; + color: #333534; + border-color: #c0dce6 +} diff --git a/wp-content/plugins/wp-fastest-cache/css/dialog.css b/wp-content/plugins/wp-fastest-cache/css/dialog.css new file mode 100644 index 00000000..adf6cac8 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/css/dialog.css @@ -0,0 +1,276 @@ +button:focus {outline:0;} +.window-content-wrapper{ + background-image:-webkit-gradient(linear, left top, left bottom, color-stop(50%, rgb(238,238,238)), color-stop(100%, rgb(219,219,219))); + background:-webkit-linear-gradient(center bottom, rgb(219,219,219) 50%, rgb(238,238,238) 100%); + background:-moz-linear-gradient(center bottom, rgb(219,219,219) 50%, rgb(238,238,238) 100%); + background:-o-linear-gradient(center bottom, rgb(219,219,219) 50%, rgb(238,238,238) 100%); + background:-ms-linear-gradient(center bottom, rgb(219,219,219) 50%, rgb(238,238,238) 100%); + background:linear-gradient(center bottom, rgb(219,219,219) 50%, rgb(238,238,238) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#dbdbdb',GradientType=0 ); + text-shadow:0 0 5px #fff; + border-bottom:1px solid #ABABAB; + border-top:1px solid #EEE6E6; +} + +.wiz-inp-cont { + background: none repeat scroll 0 0 rgba(100, 100, 100, 0.1); + border-radius: 6px; + display: block; + margin-top: 24px; + padding: 12px; + position: relative; +} +.wiz-cont { + font-family: "Lucida Grande","Lucida Sans","Lucida Sans Unicode",Verdana,Tahoma,sans-serif; + font-size: 13px; + line-height: 18px; + min-height: 80px; + padding: 22px 28px; +} +.wiz-cont h1 { + font-size: 21px; + margin: 0 0 12px; +} +.wiz-cont p { + color: #666; + margin: 0; +} +.wiz-input-cont { + background: none repeat scroll 0 0 rgba(100, 100, 100, 0.1); + border-radius: 6px; + margin-top: 24px; + padding: 12px; + position: relative; +} +.wiz-input-cont label { + font-weight: bold; + margin-right: 12px; +} +.api-key { + border: 1px solid #999; + border-radius: 3px; + box-shadow: 0 1px 2px #eee inset, 0 1px 0 #ddd; + font-size: 13px; + padding: 4px 6px 3px; + width: 355px; +} +.window-buttons-wrapper button { + margin: 0 4px; +} +.wpfc-add-new-csp-button, .wpfc-add-new-timeout-button, .wpfc-add-new-exclude-button, .window-buttons-wrapper button[action="next"], .window-buttons-wrapper button[action="back"], .window-buttons-wrapper button[action="close"] { + background-color: gray !important; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAABaCAIAAAAU4rCTAAACGUlEQVQ4EQXBQbIkRxEFQH+V0V974Bjo/neaBTJhs6Ir4+GeX79+AQDmr7/+UxChmBawGsq0qxGqoabVVolUa7ZNW8IWpnsraAGzWwogMdsl2khTm9lb2dCqSKddVZRUze6CUIXZriJJW2T2lgLA7F4AQs3uAgBm9xIAmN1SoIrZ3ZY0oqRz74XQUMy9t1ASVfN9X5pGoDr3+5UAwLz3AgDmfS8gtGTufQEAc+9VAmjN3lsIJXTuXgIA8zwHAJDfv38DAObvv/9LRWgTnqRJVJtEdXYrTVOtaqZtahWKTtuCtonW7C6AFmZ3SdKWUNNuxQqFzr2l0UWipr0lJbFbZu8WJFqYuwsAmL1LIUqYuxfChorZvQSoYvZuCQ2VmHtX2iY0jczdCwCYe5eSKCqze0u0TRDz/X5Dk7RNtPP9vtIUoZV53y9QQpnv90XSVqQ67/s/AgDzvhdKAPO+L4FUkbn3AgBm96oKEtX8+e8/AQDzj3/9M0BJMed5QgkV6cxMCS2EOeeEhkrSdj6fIUpUMTMfACDz+flJS0rSMj8zElBSnc/PH9FCQnV+fj6gGkHn8/mAEmDOOQCAOedAIFXmnAMAmHNOKJBo55wDAJhzDkqgZJ5zoJCgc55HklbSNsmccwAAc55HtIRGzHMORKpgnnOiLY8UmfNE0yeBqnmeU6IqCSZPHtp4aBLz5EECgkyeJ4CCzHkeAMD/AViclsCJwxhXAAAAAElFTkSuQmCC') !important; + background-repeat: repeat-x !important; + border: 1px solid #777 !important; + color: #000 !important; + text-shadow: 0 1px 0 #eee !important; +} +.window-buttons-wrapper button[action="finish"]{ + background-repeat:repeat-x !important; + background-color:green !important; + background-image:url("../images/button-back-green.png") !important; + color:#FFF;text-shadow:0 1px 0 rgba(0,0,0,0.4) !important; + border:1px solid green !important; + font-weight: bold; +} +.icon-right { + margin: -4px -2px 0 3px; + position: relative; + right: -3px; + top: 1px; +} +.big-button { + -moz-border-bottom-colors: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + background: none repeat scroll 0 0 rgba(0, 0, 0, 0); + border-color: -moz-use-text-color transparent; + border-image: none; + border-style: none solid; + border-width: medium 1px; + font-size: 11px; + margin: 0; + outline: medium none !important; + overflow: visible; + padding: 3px 6px; + text-shadow: 0 1px 0 #e5e5e5, 0 0 5px rgba(255, 255, 255, 0.6); + width: auto; +} +.window-buttons:hover,.wpfc-dialog-buttons:hover{ + border-color:#999; + background-position:0 -30px; +} +.wpfc-dialog-buttons { + background: url("/images/button-back.png") repeat-x scroll 0 0 rgba(0, 0, 0, 0); + border: 1px solid #aaa; + padding: 4px 10px; + display: none; +} +.window-buttons:active,.wpfc-dialog-buttons:active{ + border-color:#666; + background-position:0 -60px; +} +.close-wiz { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAmCAYAAAAm56DSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODNEQTU1N0QyNTZBMTFFMDg0MjhBMzkwREEyOUQ5ODQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODNEQTU1N0UyNTZBMTFFMDg0MjhBMzkwREEyOUQ5ODQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4M0RBNTU3QjI1NkExMUUwODQyOEEzOTBEQTI5RDk4NCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4M0RBNTU3QzI1NkExMUUwODQyOEEzOTBEQTI5RDk4NCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg4s3CYAAAMbSURBVHjanJbLb0xxFMfvvVOjDaP1aM0U9aqohhARG41IbBoRKwsJCyspO7Eg8QewsGAhsbAikYiVjQVWXinxqCBdmFapR0v1kWI6HZ3re5LvT47jN5OZnuTTzvzu/X3vuef1mzDw2zKwA2wCa9V6H3gF7oMvshDH8d+LoRGpBYfAVvABDIHv6vpikAYt4Am4BrFpn9gicAKM0IM4KG2ybx3Fz0FwVIslwWmQBeNB5dYA1oAz4qETOwxmqhRytpCxuxLhfyOoN0Ii/Bb0q7WY32W9qNbHJERhGDYm8GEn+GFiNAB6wTeQA03gJWMpMZ3rPKJNyD01+NPMTdpWgjf8PEiBnLq+2twvnqblNac8cZBMdarvWmgvH2atUEpMYrMdLPUU8xbw3rNnKsECTJgLEr9brsqVTYJ3LFxrOfEs77kgT/5kYhioGA569uQjptZao4nRSRPDjGfPmBRtCnSAGpOAAlgA5IE97FeJ7y+GQcfttzS/64ANoNX0Xgs3DxuPkp4EZNEBvU4swewtmUU7SQ12QyyOVPs854Vq7Ct4FnOohZ7R0kpqyogU2FrZWE3HsMTNSbZZEwdmijWWZ+t9BNN20pZ6ugjtBtuYHGfS/E/BbV+tWc/qwDGwi/EbpUfOUpzIUod3wCV4lveJSSbPMhlDFYztZv4/BcERLSbz6QK9+FlFNueR4+KhK42uWQgFvF864kjAVpGqXm+EJPX3pBjNAOzm+oxalyndjrGdkcrfQ1e1PQZ31WklvXoTPOQIkkStUPeLd3VSGu2eYC9Xn3soMKHWVnnmX5u85hxPLKRP95sDw9kBsNmzpzYy7+9MSmMfx3RgPOpkT1orJljlSc9pc5n9p22c46fNIzYZlTjFpWVeq+961r1gHP+btBGDa63exOi8iaFv7g2EPJmPmlfN8EBp4MZ+eveZdZU2cZMJctEdKN2eBKRZ1O73RpbjKO1JgEzaiVCNooOeY78SkzBdhVgxUqfLjRLxK2fi7XUR8s2ziMdeh6dc/vkpAB6BB06o3NiW3tvInpzP3xzD7ME+lkbOju0/AgwAGgf5ial8jHIAAAAASUVORK5CYII=') no-repeat scroll 0 0 transparent; + height: 19px; + width: 22px; + cursor: pointer; +} +.mm-input-label{ + font-weight: bold; + vertical-align: middle; + margin-right: 12px; + color: black; +} +.wiz-inp-readonly-textarea{ + -moz-appearance: textfield; + -moz-border-bottom-colors: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + border-color: #aaaaaa #b0b0b0 #cbcbcb; + border-image: none; + border-radius: 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2) inset, 0 1px 0 rgba(255, 255, 255, 0.5); + font-family: "Lucida Grande",monospace; + font-size: inherit !important; + line-height: 14px; + padding: 4px 6px 3px; + resize: none; + white-space: pre; + background-color: white !important; +} +.wiz-bg-img { + bottom: -40px; + clip: rect(0pt, 150px, 118px, 0pt); + height: 150px; + position: absolute; + right: 40px; + width: 150px; + z-index: -1; + opacity: 0.25; +} + +.buttons-blood, .buttons-orange, .buttons-start{ + background-repeat: repeat-x; + border: 1px solid #333 !important; + color: #fff; + text-shadow: 0 1px 0 #000 !important; + float: left; + font-weight: bold; +} + +.buttons-blood { + background-image:url("../images/button-back-blood.png") !important; +} + +.buttons-orange { + background-image:url("../images/button-back-fire.png") !important; +} + +.buttons-start { + background-image:url("../images/button-back-green.png") !important; +} + +.wpfc-green-button { + font-weight: bold; + padding:6px 18px; + color:#fff; + font-size:13px; + border:1px solid #309E1F; + text-shadow:0 -1px #309E1F; + cursor:pointer; + + -moz-border-radius: 3px 3px; + -webkit-border-radius: 3px 3px; + border-radius: 3px 3px; + + -moz-box-shadow: 0 1px #71EF61 inset, 0 1px #dadada; + -webkit-box-shadow: 0 1px #71EF61 inset, 0 1px #dadada; + box-shadow: 0 1px #71EF61 inset, 0 1px #dadada; + background: #39cc28; + background: -moz-linear-gradient(top, #39cc28 0%, #38bf26 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#39cc28), color-stop(100%,#38bf26)); + background: -webkit-linear-gradient(top, #39cc28 0%,#38bf26 100%); + background: -o-linear-gradient(top, #39cc28 0%,#38bf26 100%); + background: -ms-linear-gradient(top, #39cc28 0%,#38bf26 100%); + background: linear-gradient(top, #39cc28 0%,#38bf26 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#39cc28', endColorstr='#38bf26',GradientType=0 ); +} + +.wpfc-green-button:hover { + background: #40db2b; + background: -moz-linear-gradient(top, #40db2b 0%, #3ecc28 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#40db2b), color-stop(100%,#3ecc28)); + background: -webkit-linear-gradient(top, #40db2b 0%,#3ecc28 100%); + background: -o-linear-gradient(top, #40db2b 0%,#3ecc28 100%); + background: -ms-linear-gradient(top, #40db2b 0%,#3ecc28 100%); + background: linear-gradient(top, #40db2b 0%,#3ecc28 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#40db2b', endColorstr='#3ecc28',GradientType=0 ); +} +.wpfc-green-button:active { + -moz-box-shadow: 0 1px #71EF61 inset; + -webkit-box-shadow: 0 1px #71EF61 inset; + box-shadow: 0 1px #71EF61 inset; + + background: #38bf26; + background: -moz-linear-gradient(top, #38bf26 0%, #39cc28 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#38bf26), color-stop(100%,#39cc28)); + background: -webkit-linear-gradient(top, #38bf26 0%,#39cc28 100%); + background: -o-linear-gradient(top, #38bf26 0%,#39cc28 100%); + background: -ms-linear-gradient(top, #38bf26 0%,#39cc28 100%); + background: linear-gradient(top, #38bf26 0%,#39cc28 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#38bf26', endColorstr='#39cc28',GradientType=0 ); +} + +.wiz-error-msg, .wiz-error-msg a{ + color: red; + font-weight: bold; + text-align: center; + padding-left: 22px; + display: block; +} + +#cdn-url-loading{ + background: url("../images/loading-circle.gif") no-repeat; + width: 20px; + height: 18px; + margin-top: 5px; + float: right; + display: none; +} +.wpfc-checkbox-list { + margin-top: 24px; + padding:15px; + background:rgba(150,150,150,0.2); + + -moz-border-radius:5px 5px; + -webkit-border-radius:5px 5px; + border-radius:5px 5px; + + background:rgba(150,150,150,0.2); + background: -ms-linear-gradient(top, rgba(150,150,150,0.2) 0%,rgba(150,150,150,0.2) 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#33969696', endColorstr='#33969696',GradientType=0 ); /* IE6-9 */ +} + +.wpfc-checkbox-list label{ + width:110px; + display:inline-block; + margin-top:3px; + color:#333333; +} + +.wpfc-checkbox-list label input { + margin-right:5px; + vertical-align:bottom; +} + +.wpfc-bottom-note{ + margin-top: 20px !important +} + +.wpfc-bottom-note a{ + font-weight: bold; +} diff --git a/wp-content/plugins/wp-fastest-cache/css/flaticon.css b/wp-content/plugins/wp-fastest-cache/css/flaticon.css new file mode 100644 index 00000000..4496bdd5 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/css/flaticon.css @@ -0,0 +1,67 @@ +@font-face { + font-family: "Flaticon"; + src: url("fonts/statics/flaticon.eot"); + src: url("fonts/statics/flaticon.eot#iefix") format("embedded-opentype"), + url("fonts/statics/flaticon.woff") format("woff"), + url("fonts/statics/flaticon.ttf") format("truetype"), + url("fonts/statics/flaticon.svg") format("svg"); + font-weight: normal !important; + font-style: normal !important; +} +[class^="flaticon-"]:before, [class*=" flaticon-"]:before, +[class^="flaticon-"]:after, [class*=" flaticon-"]:after { + font-family: Flaticon; + font-size: 40px !important; + font-style: normal !important; + color: #ff8900 !important; +}.flaticon-css4:before { + content: "\e000"; +} +.flaticon-desktop1:before { + content: "\e001"; +} +.flaticon-js:before { + content: "\e002"; +} +.flaticon-smart:before { + content: "\e003"; +} + + + + +@font-face { + font-family: "Flaticon"; + src: url("fonts/db/flaticon.eot"); + src: url("fonts/db/Flaticon.eot?#iefix") format("embedded-opentype"), + url("fonts/db/Flaticon.woff") format("woff"), + url("fonts/db/Flaticon.ttf") format("truetype"), + url("fonts/db/Flaticon.svg#Flaticon") format("svg"); + font-weight: normal; + font-style: normal; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: "Flaticon"; + src: url("fonts/db/Flaticon.svg#Flaticon") format("svg"); + } +} + +[class^="flaticon-"]:before, [class*=" flaticon-"]:before, +[class^="flaticon-"]:after, [class*=" flaticon-"]:after { + font-family: Flaticon; + line-height: 44px !important; + font-style: normal !important; +} + + +.flaticon-check:before { content: "\f100"; color:#5cab40 !important; font-size: 25px !important;} +.flaticon-counterclockwise:before { content: "\f101"; font-weight: bold; font-size: 35px !important;} +.flaticon-draft:before { content: "\f102"; font-size: 35px !important;} +.flaticon-file:before { content: "\f103"; font-weight: bold; font-size: 35px !important;} +.flaticon-interface:before { content: "\f104"; font-weight: bold; font-size: 35px !important;} +.flaticon-pingback:before { content: "\f105"; font-weight: bold; font-size: 35px !important;} +.flaticon-recycling:before { content: "\f106"; font-weight: bold; font-size: 35px !important;} +.flaticon-start-settings:before { content: "\f107"; color:#3498db !important; font-size: 30px !important;} +.flaticon-technology:before { content: "\f108"; font-weight: bold; font-size: 35px !important;} \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.eot b/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.eot new file mode 100644 index 00000000..3716846a Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.eot differ diff --git a/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.svg b/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.svg new file mode 100644 index 00000000..3acfe7c0 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.svg @@ -0,0 +1,98 @@ + + + + + +Created by FontForge 20120731 at Wed Dec 28 12:36:45 2016 + By Apache +Created by Apache with FontForge 2.0 (http://fontforge.sf.net) + + + + + + + + + + + + + + + + + diff --git a/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.ttf b/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.ttf new file mode 100644 index 00000000..ff61d590 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.ttf differ diff --git a/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.woff b/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.woff new file mode 100644 index 00000000..3e218050 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/css/fonts/db/Flaticon.woff differ diff --git a/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.eot b/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.eot new file mode 100644 index 00000000..1cd947fe Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.eot differ diff --git a/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.svg b/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.svg new file mode 100644 index 00000000..cb9d7a69 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.ttf b/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.ttf new file mode 100644 index 00000000..77727bb4 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.ttf differ diff --git a/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.woff b/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.woff new file mode 100644 index 00000000..1b3fd07d Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/css/fonts/statics/flaticon.woff differ diff --git a/wp-content/plugins/wp-fastest-cache/css/index.html b/wp-content/plugins/wp-fastest-cache/css/index.html new file mode 100644 index 00000000..8ab7b8d7 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/css/index.html @@ -0,0 +1 @@ +Silence is golden. \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/css/style.css b/wp-content/plugins/wp-fastest-cache/css/style.css new file mode 100644 index 00000000..38df7033 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/css/style.css @@ -0,0 +1,564 @@ +/* Set the size and font of the tab widget */ +.tabGroup { + background: none repeat scroll 0 0 #F3F1EB; + border: 1px solid #DEDBD1; + padding: 10px; + width: 750px; + height: auto; + float: left; + box-sizing: unset; +} + +.tabGroup div.questionCon{ + width: 100%; + float: left; + padding-top: 5px; + line-height: 18px; +} + +.tabGroup select, .tabGroup label, .tabGroup div { + font-size: 12px; + box-sizing: unset; + +} +.tabGroup > label{ + font-weight: normal !important; + margin-bottom: 0 !important; +} + +div.inputCon label{ + font-weight: normal !important; + margin-bottom: 0 !important; +} + +div.questionCon.qsubmit{ + text-align: center; +} + +.tabGroup div.questionCon.disabled{ + color: #888; +} + +.tabGroup div.question{ + padding-right: 5px; + float: left; + text-align: right; + width: 130px; + font-weight: normal !important; + background: none !important; +} + +.tabGroup div.inputCon{ + float:left; +} + +/* Configure the radio buttons to hide off screen */ +.tabGroup > input[type="radio"] { + position: absolute; + left:-100px; + top:-100px; +} + +/* Configure labels to look like tabs */ +.tabGroup > input[type="radio"] + label { + /* inline-block such that the label can be given dimensions */ + display: inline-block; + + /* A nice curved border around the tab */ + border: 1px solid #DEDBD1; + border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + + /* the bottom border is handled by the tab content div */ + border-bottom: 0; + + /* Padding around tab text */ + padding: 5px 10px; + + /* Set the background color to default gray (non-selected tab) */ + background-color:#ddd; + color: black; + box-shadow: none !important; +} + +/* Focused tabs need to be highlighted as such */ +.tabGroup > input[type="radio"]:focus + label { + border:1px dashed #DEDBD1; +} + +/* Checked tabs must be white with the bottom border removed */ +.tabGroup > input[type="radio"]:checked + label { + background-color:white; + font-weight: bold; + border-bottom: 1px solid white; + margin-bottom: -1px; +} + +/* The tab content must fill the widgets size and have a nice border */ +.tabGroup > div { + display: none; + border: 1px solid #DEDBD1; + background-color: white; + padding: 10px 0px; + height: auto; + overflow: auto; + margin-top: -1px; + + border-radius: 0 5px 5px 5px; + -moz-border-radius: 0 5px 5px 5px; + -webkit-border-radius: 0 5px 5px 5px; +} + +/* This matchs tabs displaying to thier associated radio inputs */ +#wpfc-options:checked ~ .tab1, #wpfc-deleteCache:checked ~ .tab2, #wpfc-cacheTimeout:checked ~ .tab3, #wpfc-imageOptimisation:checked ~ .tab4, #wpfc-premium:checked ~ .tab5, #wpfc-exclude:checked ~ .tab6 , #wpfc-cdn:checked ~.tab7, #wpfc-db:checked ~.tab8{ + display: block; +} +/* for lef panel */ +#toplevel_page_wpfastestcacheoptions img{ + margin-top: -7px !important; + width: 30px !important; +/* padding: 0 !important; + margin-left: 5px !important;*/ +} +#toplevel_page_wpfastestcacheoptions div.wp-menu-name{ + margin-left: 0 !important; +} +.question:after { + content: ":"; + padding-left: 5px; +} +.inputCon input[type="checkbox"]{ + margin-right: 5px; +} +.get-info { + float: left; + padding-left: 10px; + cursor: pointer; +} +#rule-help-tip { + width: 500px; + background: none repeat scroll 0 0 #FFFFFF; + border: 1px solid #CCCCCC; + border-radius: 8px 8px 8px 8px; + box-shadow: 4px 4px 10px #CCCCCC; + display: block; + padding: 10px 10px 0; + position: absolute; +} + +#rule-help-tip h4 { + color: #6397CB; + margin-top: 0; + font-size: 14px; + letter-spacing: -1px; +} +h1.summary-rec { + border-bottom: 0 none; + color: #777777; + font-size: 14px; + font-weight: normal; + letter-spacing: normal; + margin: 0 0 0.5em; +} + +.close-window { + background: url("../images/close-wiz-sprite.png") no-repeat scroll 0 -19px rgba(0, 0, 0, 0); + height: 19px; + width: 22px; + float: right; +} +.omni_admin_sidebar { + float: right; + font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + font-size: 12px; + margin-right: 30px; + width: 400px; +} + +.omni_admin_sidebar_section { + background-color: #F6F6F6; + float: right; + width: 195px; + padding: 0; + border: none; + margin-bottom: 15px; +} + + +.wpfc-sticky-notification main { overflow-x: hidden } +.wpfc-sticky-notification { font-family: "Open Sans", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen-sans, ubuntu, cantarell, "Helvetica Neue", sans-serif } +.wpfc-sticky-notification, .wpfc-sticky-notification a { color: #0A1551 } +.wpfc-sticky-notification { font-size: 16px; line-height: 1.4; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale } +.wpfc-sticky-notification img { max-width: 100%; vertical-align: bottom } +.wpfc-sticky-notification a { text-decoration: none } +.wpfc-sticky-notification main { width: 100%; position: relative; transition: all .3s } +.wpfc-sticky-notification h5 { margin: 1rem 0 } +.wpfc-sticky-notification h5 { font-size: 22px } +.wpfc-sticky-notification .sticky-common-banner { transition: all .2s; background-color: #0A1551; box-shadow: 0 3px 10pc rgba(0, 0, 0, .1); border-radius: 0; z-index: 7020; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; overflow: hidden; width: 100% } +.wpfc-sticky-notification .sticky-common-banner { background-color:#fff; left: initial; right: 8px; bottom: 16px; } +.wpfc-sticky-notification .section-widget-footer.fixed+.sticky-common-banner { bottom: 88px } +.wpfc-sticky-notification .sticky-common-banner .header { background-color: #0A1551; display: flex; flex-direction: column; align-items: center; width: 100%; padding: 16px 0 0 } +.wpfc-sticky-notification .sticky-common-banner .header-logo { height: 42px; margin: 0 0 8px; } +.wpfc-sticky-notification .sticky-common-banner .title { margin: 0 8px 16px; color: #fff; text-align: center; font-weight: 400; font-size: 14px; line-height: 16px } +.wpfc-sticky-notification .sticky-common-banner .header-logo { display:block } +.wpfc-sticky-notification .sticky-common-banner .visual { margin: 0; width: 100%; height: auto; display: none } +.wpfc-sticky-notification .sticky-common-banner .main-cta { transition: all .2s; background-color: #78BB07; font-weight: 500; font-size: 14px; line-height: 16px; text-align: center; color: #FFF; border: none; box-sizing: border-box; padding: 16px 8px; margin: 16px; width: calc(100% - 48px); max-width: 240px } +.wpfc-sticky-notification .sticky-common-banner .main-cta:hover { background: #88d408; border-color: #88d408; } +.wpfc-sticky-notification .sticky-common-banner .visual { display:block } +.wpfc-sticky-notification .sticky-common-banner .main-cta { padding: 16px; margin: 24px; width: calc(100% - 32px); max-width: initial } + + + + + +#wpfc-beta{ + padding-right: 5px; + font-weight: bold; + color: red; +} + +#deleteCron{ + float:right; + margin-right:5px; + padding: 3px; +} + +#deleteCron:hover{ + background-color:#FAEBD7; +} +form.delete-line{ + height: 100px; + width: 100%; + float: left; +} +form.delete-line .left{ + width: 20%; + float: left; +} +form.delete-line .right{ + width: 80%; + float: left; +} + +form.delete-line .left .submit{ + padding-top: 0; + float: left; + padding-left: 20px; +} +form.delete-line .left .submit input{ + height: 65px; + width: 130px; + white-space: pre-line !important; +} +td div.revert:before{ + font-family: "dashicons"; + content: "\f531"; +} +td div.revert{ + width:16px; + height:16px; + vertical-align: middle; + margin: auto; + position:relative; + cursor:pointer; + + -moz-border-radius: 3px 3px; + -webkit-border-radius: 3px 3px; + border-radius: 3px 3px; + border:1px solid #aaa; + background:#ddd; + padding:3px; + background-color: white; +} + +td div.revert:hover{ + border-color:#000; + background-color: white; +} + +td div.revert:active{ + background-color: #F5F5F5; +} + +#revert-loader{ + display: none; + background: rgba(255, 255, 255, .7) url(../images/loader.gif) no-repeat center; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 9998; +} +.wpfc-loading-statics{ + background-repeat: no-repeat; + background-image: url(../images/loader-statics.gif); + background-position: 0 0; +} +div.wpfc-loading-statics{ + height: 16px; +} +p.wpfc-loading-statics{ + background-position: 44px 6px; + height: 27px; +} +#wpfc-optimized-statics-reduction:not(.wpfc-loading-statics):after{ + content: " KB"; +} +#wpfc-statics-right ul li{ + height:35px; + padding:0; + margin-bottom:15px; + width:150px; +} +#wpfc-statics-right ul:last-child{ + padding-left: 10px; +} +#wpfc-statics-right ul:last-child li{ + width: 220px; + height: auto; +} + +span.deleteicon { + position: relative; +} +span.deleteicon input { + padding-right: 16px; +} +span.deleteicon span { + position: absolute; + display: block; + top: 0px; + right: 5px; + width: 16px; + height: 16px; + background: url("../images/search_reset.jpg") no-repeat scroll; + cursor: pointer; +} +span.deleteicon span.cleared { + background: none; +} +#wpfc-image-list-filter:-moz-focusring, #wpfc-image-per-page:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #000; +} +#buy-image-credit{ + border: 1px solid; + color: white; + border-radius: 26px; + background-color: rgb(61, 207, 60); + cursor: pointer; + padding: 5px 15px; + margin-left: 5px; +} +.wpfc-exclude-rule-line{ + float: left; + width: 100%; + height: 40px; +} +.wpfc-exclude-rule-line-left{ + width: 100px; + float: left; +} +.wpfc-exclude-rule-line-middle{ + /*width: 400px;*/ + float: left; +} +.wpfc-exclude-rule-line-add, .wpfc-exclude-rule-line-delete{ + float: left; + padding-top: 7px; + cursor: pointer; + width: 20px; +} +.wpfc-exclude-rule-line-delete{ + display: none; +} +#integrationDiv { + display: block; + font-family: "Lucida Grande","Lucida Sans","Lucida Sans Unicode",Verdana,Tahoma,sans-serif; + font-size: 13px; + height: auto; + line-height: 18px; + max-height: 395px; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} +.wpfc-csp-item, .wpfc-timeout-item, .wpfc-exclude-item, .int-item{ + background: url(data:image/gif;base64,R0lGODlhAQAkANUAAAAAAP/////+//38/fb19vX09fDv8Pr6+/n5+vb29/Hx8u/v8Pv8/Pn6+vLz8vv7+vj49/T08/Pz8vLy8f/+/v38/Pn4+PHw8P7+/v39/fv7+/j4+Pf39/b29vPz8/Hx8fDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACEALAAAAAABACQAAAYiwICAgsFkMpUBQ/M4IBqWDYST6BAKhYjHIZkoPp8LaGEIAgA7) repeat-x scroll center bottom transparent !important; + border: 1px solid #CCCCCC !important; +} +.wpfc-csp-item:hover, .wpfc-timeout-item:hover, .wpfc-exclude-item:hover, .int-item:hover{ + border:1px solid #ccc; + background:#f5f5f5 none repeat scroll 0 0 !important; +} +.int-item, .wpfc-timeout-item, .wpfc-exclude-item, .wpfc-csp-item { + border-radius: 6px; + cursor: pointer; + margin-bottom: 7px; + overflow: hidden; + padding: 12px; + float: left; + width: 328.5px; +} +.int-item{ + padding: 12px 8px 12px 12px !important; +} +.int-item-left{ + margin-right: 7px; +} +.int-item:hover { + background: none repeat scroll 0 0 rgba(135, 135, 135, 0.1); +} +.int-item h2 { + font-size: 14px; + margin: 0 0 3px; +} +.int-item p { + color: #666; + font-size: 11px; + margin: 0; + position: relative; + padding-top: 3px; +} +.int-item img { + float: left; + margin-right: 12px; + height: 45px; + width: 45px; +} +.int-item .meta.isConnected{ + background-image: url("../images/success.svg"); + background-repeat: no-repeat; + background-size: 24px; + background-position: right; + height: 24px; + width: 100%; + max-width: 100%; + position: relative; + top: -10px; +} + +.int-item .meta.isConnected.pause{ + background-image: url("../images/pause.svg"); +} + +.int-item .meta.success{ + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAADb0lEQVQ4Ea2VS0iUURTH7+v7dAwnLMhWjURRm4IeOtEmS4VQ6GFNUYFG+UCooDYlBAktCqIXRVEUvaggqVQoNzallGiboKIWvSha5MLSMZ2Z7746Z9JptLEHdQbmu9+95/+7595z7v0oSWOFDUTkFqwKTPQ7Qa7oIkN4kFIzw1r2mhHdrYXt6o/I7p7HTe8fNBA1FkHHdmxoXpHrnzhhCyV2D+PUT+xYD3gHldYmYik5MNAXvXB9ZUtPqlcqlFa1rZgjfFlHBeXLrDbEpgMOqykoKWdEWR1W0aGd54pbnsFQQpGEbutcOcdY3yXhOPNU7KcVpQYyqi0yBVFSPmE0WnlycTOCCcO/iraiyVq5J/4WiNuAAaAO9chBHi9sKBRT8qbucFyxVXsa+/7YDCGSc8q1hFQKkUeJ+yU770UXCxQEApzZPVb9YgPTTGOs7pADg8VK6lbmMIJ6anl9oKAywLL8Q0EmqN+mTfMYGiYHNsxa0zlg1KbzZS0dWulTylNR3EgOnAQPZggSWEfSQMgEeCRTODyC/ZBto02n9syGq0tvfaxuK893MsRexxE+a2ClwEEes8RZlArEtpbqHQaOZZMweHKYSEr5SA9GKs6WNH6oC4cWOBnuKeGKoFY/okIeA+pMFFL4WQNxKHLwq+eVgeMRjBb7OUQoY/FL8Z6va8+Wtr6pvR9aDrPcgOQsVPHRyUUeM5S8QqilFjNIldFPr5Tcfhnvj++HU3NG+DiRnursj3i7L667+6nmQflSSukx7rLpWo4GIgd5jBLZhS+4XAuHG4I6VNu+rvTi6qY+1RfdFx2M74qrWDUexar20DLGxEnhOrMMlFE6Qx6texjaSIm4OpIsyikxnuqF81d5uqTxDgmFOGls1FXhNaWCu4eFw2ablD0cBcbKIGoTG4pkdRtlI7h3aFZDvTl8MnHFlZpwqAz7ajrWz3eFOO644wNRr4GDPJ4zM2cgZ1q2FS4rSpRFggwJYsQH1Vy8IJ9FBaX13BFz8eSMZ1iGkOWGt4+utSbCwzM7wZ1008nMXJJ6meDszMWqgASMt2SYBS8VGYu1D3qf11wuvtcLu0AINrjwtuNtgw4jhqcMCv23QNShHjmoTUCxAdfWcy86tNmTMoxLSRY+DqYxHEc/9Ecd6kfcvmdn5A2e//vmT6L/9Rv1DasAwJ2jW2dLAAAAAElFTkSuQmCC') no-repeat scroll 0 0; + height: 21px; + width: 21px; + position: relative; + top: -8px; + left: 312px; +} +.int-item .meta.warning{ + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlpJREFUOBGtlb9vE1EMx+333p3aQg8BAhYoUtOOHahEErEASf+ADjCDkGBjYGPsxsjABgNiAgmGDpVYmkIWlDCEASYKrfixAAKhS9JWee+esSNdiAJpSYKnnJ+/n/Pz2Q7CX+zZOTAZdeakUZM5giSPSuUQcIaA3pH3VQRdcb5efe9ffDj/HFwvAnsdG8XcsQl98AoDbiqFEcEfIewh8J5iDcmtRlK/P12qfunmdCtwo1ic2xeEtw1iISEWdkf2/Fb8rBHBEa01bevGdKn0ml0kYR3op4WFuXFjHiDqU5Z2w4nstwWogCh5te3cpROrqwIGeSF8LmYPBwrvDAoUrSQgOtELR3xqCcAYfehaYMKzg2Qo4tREJ3qD0VX5yPixUMgEQVjTSkWe6zisKa5v4n1sbWveGBXkuOCRTxLm/Xste1/uuZKSGDHPgPI5cWAUAR49wgXRHD9IxvytfQL09Rv4RoP1nqGEeRwbg+DiBQgXFwGDcGAo2Ra0lpfBPnwE0GzmuSVpFib3g56fb9+Itrd6b7b3szFtvV1ZAdxqzBoiXId6I5vUaqCnpgDHJ4bKVPTM4Z7FdQNIFdrZydrHT8CVyyPVlDk8TlQx4FVV8Qj4OAaKf+591b4RChSDPPOM87aKFMZaa+7T9oD1le12kPap8PSBzc366cwMGa2KozS/kSydXXqblJ7KmDqX/LhrXassy2EYE53oHcX3ZL+2KcdLL79bT9dl2wwKTreU6IUjSXVS47X1hgf3siO/FvAcdw76pC7nEifxohN9GtrZp6njf2/+lAuj/kf9ArVlQDDNYNOoAAAAAElFTkSuQmCC') no-repeat scroll 0 0; + height: 21px; + width: 21px; + position: relative; + top: -8px; + left: 312px; +} +.int-item .app { + float: left; + /*padding-right: 10px;*/ + width: 75%; +} +.int-item .app .more-info { + cursor: auto; + float: none; + height: auto; + margin-left: 10px; + width: auto; +} +.int-item .meta { + font-size: 11px; + font-weight: bold; + max-width: 100px; + text-align: right; +} +.int-item .meta .developer { + color: #333333; + display: block; +} +#wpfc-premium-container{ + overflow: hidden; +} +.wpfc-premium-step{ + width: 246px; + float: left; + margin-left: 3px; +} +.wpfc-premium-step div{ + float: left !important; +} +.wpfc-premium-step-header{ + width: 100%; + background-color: rgb(58, 158, 235); + padding-top: 12px; + padding-bottom: 11px; + text-align: center; +} +.wpfc-premium-step-header label{ + font-size: 17pt !important; + color: white !important; + font-weight: normal !important; + margin-bottom: 0 !important; +} +.wpfc-premium-step-content{ + font-size: 16px !important; + line-height: 20px !important; + padding-top: 25px !important; + padding-left: 25px !important; + height: 100px; +} +.wpfc-premium-step-footer p{ + font-size: 15px !important; +} +.wpfc-premium-step-footer ul li{ + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAYAAACXtf2DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNDgwMTE3NDA3MjA2ODExOEMxNEJENkJCQTMxQTY0OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNDA0MUQ4RTAxMjUxMUUzQUNBOEExQjA5MUZCRkI2OCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNDA0MUQ4RDAxMjUxMUUzQUNBOEExQjA5MUZCRkI2OCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzNDYwOTkyMEYyMDY4MTE4NzFGQ0NDRDhCOTMyRDhEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA0ODAxMTc0MDcyMDY4MTE4QzE0QkQ2QkJBMzFBNjQ5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+U7CKjQAAAX1JREFUeNpiZFj/gYES8D+AH85m3PBREEj1AbEHEO8E4kIWBioBoOEaQGoBEJtDheKB+AcLlQx3AVKrgVgATSqCiQqGRwOpTVgMB4HjlFqQAcRLgJgTi9wXIC6hxIIqIJ6OR74AmACukmtBJRC34pGfDTR8LohBjgVlQNyGR/44EGfCODALhIHYFYj5CBheDMSdeOTvA3EI0PV/kS0wAOKTQLwLShvj0AxyVQ8ew0GRGg40/BmyIMiCSUCsDOWDMstmIFZH0xwHxNMI+C4KaPhpdEGQBWpoYpJAvAWIZaD8UCBeSMDwOKDhm7FJgCyYh0VcBYg3AHENEK8gYHgR0PDFODMisLADZZJj0LggFYDS+kR8CkA++A7ECVCaFJAPxBMJKYIl04tAnEiC4enQxMFArAUgsBKImwmo/woqIYF4FrEuQc/JdUC8DIfat0DsA3UIA7kWwCqKPWhiR4HYBIgPkJoKsFnwB4jDgHg5EL8A4jlA7A3ED8gpFQECDADtslAckBdkiwAAAABJRU5ErkJggg==") no-repeat scroll 0 2px transparent; + padding: 3px 30px; + font-size: 15px; +} +.wpfc-premium-step-footer{ + padding-left: 25px; +} +.wpfc-premium-step-image{ + width: 100%; + height: 180px; + text-align: center; +} +.wpfc-form-spinner, .wpfc-form-spinner-input-td, .wpfc-form-spinner-number, .wpfc-form-spinner-up, .wpfc-form-spinner-down{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;} + +.exclude_section_clear { + background: none; + border-bottom: 1px solid #e6e6e6; + clear: both; + float: left; + marig-left: 1px; + margin-bottom: 0px; + margin-top: 16px; + overflow: auto; + position: relative; + width: 97%; +} +.error-wpfc{ + border-color: #D8000C !important; + color: #D8000C !important; + background: #FFBABA url("") no-repeat 10px !important; +} +.success-wpfc, .error-wpfc{ + background-position: 10px center !important; + padding-bottom: 5px !important; + padding-top: 5px !important; +} +.success-wpfc{ + border-color: #4F8A10 !important; + color: #4F8A10 !important; + background: #DFF2BF url("") no-repeat 10px !important; +} +.success-wpfc p, .error-wpfc p{ + padding: 2px 2px 2px 0px !important; +} +/* input[type=checkbox]:checked:before { color: #e14d43;} */ \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/css/toolbar.css b/wp-content/plugins/wp-fastest-cache/css/toolbar.css new file mode 100644 index 00000000..ef98b807 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/css/toolbar.css @@ -0,0 +1,19 @@ +#revert-loader-toolbar{ + display: none; + background: rgba(255, 255, 255, .7) url('data:image/gif;base64,R0lGODlhSwBLANUAAP////7+/v39/fz8/Pr6+vn5+ff39/b29vX19fT09PPz8/Ly8vHx8fDw8O/v7+7u7u3t7ezs7Ovr6+rq6unp6ejo6Ofn5+bm5uTk5OPj4+Li4uDg4N3d3dra2tjY2NfX19TU1NHR0c/Pz87Ozs3NzcfHx8XFxcTExMHBwbu7u7q6urW1tbS0tLGxsa+vr6ioqKenp6Kiop6enp2dnZycnJSUlJOTk4qKioCAgHd3d21tbWNjYwAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAAACwAAAAAQwBLAAAG/0CAcEgsGo/FAogVo8VYoAJySq1aj50mbcuNda7g8LXELZdL4rRaCDK7t6C13KrQvssxxXx/JN/daHyCQi9/bi+Dg4ZviVQFCpADSBaLbhZICB6aEnIUICOgoBx6SZVmUkUeNjusrDkqYgcfobSgG0Z2lTFGMq2+rDgaVwchtca3RCimWyhFvb+/OsJVs8bGl0OUy9hCLdDfOFUW1uSoQimmKUQS3+0tVJ/kxhNEBS6LLuYAKe3fOVMF5Fn7Ug/dnRT6ANzo943TEQUCjYU4YsEglxTciOhgCM0DEogRawG0QDIhEY4dP4akFWdPDpS+PB4ZsDIUBz41YLY6MIVDzf8REPiY0LmjBhWQIVvyeQlT5pQNK0nx8QBTxhWoAoMmGsrQKhgLxYyB4NkIgAam0d6JGTChw6cPGxqULSJCBo4dOW6kIDu3r9+/fPgCTjQgQ7wRITZIHSwHQthjkhirwSrvQ2TJYCCsvIn5yoDHEeV2rjLhJ8HRUzr8HHEZtZHVIxa7JgJb9mwhtW8bUf2ztW4ApWue/i3kc03RxIdoDsk5ORHK5Cw7N+KY3Abf04tjOJzYdnYjgr+LH/97AAW3I+Ai72vAgYQLFCIkEJDmAuhQY+cSoHChv/8LFSwQBnTWaDXIAf8l2J8DV0U1SAEKRsjgUTUptQd/ESpoEhE+1WTloBwIZqjgA1PQ9FNzcjwgYoT0PbSahWtguOJ/GwKAVE1TCFDAji0eMaOGKv00kREFqPjfAxtW8CONSARkWhECGBnhAz0KEcGS/mE3xGEh0TOEAO+tKEGVCWAJHxXj1KSPlCuSOMQAZnpHRDURZQQhlvoosKRDVBATETJDOGDmhIHOWAEBw9B5jBFKYlmBEYJmKAGiYUzA5QijGCGAmf1VKUSRCVKQgByPRNIkpxfUGMCOBWg5F6rZyfgjBdkxYCYD2Q3QqKGu3lbmj6OKZ+uKuJJ3wK7/VRCeeAEkEIGSFcgXwCBBAAAh+QQFCgAAACwIAAAAQwBDAAAG/0CAcEgsGouUTmgU6lCO0Kh0SgVAlqOsNgSper/VjHY8zoDPaOGEzM5O0nBqAdsehwrx/BFTb2P0gEMgfWwggYGEbYd6ColsClEXkpCLUI5kRxcpNJycL4aVRXSOIUYonaicLhGhQxuXWRtFp6mpMaytjbCUQiO1vy6tQhyXHEQKv8kjwgAfiR9FIMm/L8wAxHXGRSvTv7y52Foc30Mx3bUW1kMK7FLn6OpfL++o6fFVm/Sc914d+jQp+HmZR8+ewCkW6KE42O/cQoZeIBC0tQwimA0oXNB4sQKUxY8gQ7bSIBKMhxk6dqjMAQNBySgIZKicOVPHiZdGEOCgyVOlDLqcRGr0HHoT6IihQ3W4xHkD6dCALxE4HXoDp4epQ61i7al1K02cB7zOrMpU7A6oL0WI1XEAKAChW024BXBg59Sfc+nKTCo37xAPMlKufNHW7xGShhPfSxCBwgUJDgwoBrCggqTLkp4YdoC5s6TCbjl79owHaIHRozXjfIB6NOiSrUc/wHk6dmfVImvbxkx7N+YKQH1fxvXSsfAEQBUIvzBXgm9yLy3HdmDYOWrqiRMYv/yg9GQABcInDgIAIfkEBQoAAAAsAAAIAEsAOwAABv9AgHBILBqPyKQSoGgWltCodDpUcEZYLIhC7Xqlm6wY+zl8z2hheDwOmdNwqYVN/8TvygJ9b8H7ixN7dCB/hQAdgnRPhnghiWwKjHiPkJJ3IJRikZZwV5lYnHEQnyMcoXGYmZunaAqZG6yij7CxcQepbX21eA0bHyMgHRO7xMXGx2cRUQwUF84VDovIQhcoMTTYLyVIBxXO398O0wAo2ObmMR1FDuDtzhLILufz2ChDB+75D8Yp9P7qALzlc2eA2AZ//mIASDAwn7JdKxD6AxGhYT5iEv2tsJhP2ikLGf1xdOcxFMiQ80a2K8npJEpzFVU6w/gS2wqGMh/WiliTkMCqkQV3HXypEAC+kfuK9UMJEAA7i/COyctoj0i3geKmlUvYtAizb9BYGrNgzZy2caLQql3LVsqIGTh25LihAkHbKBpy7NjLd4eOFneVnOhLeK+MwEc8FF58GDERvYsLe3AsxETkxTUoA6hxebFdx5A7953sWLRkyjpMj6Z8QzVfnYFTuJarOcJswJpbqMaheYgM0To09PZ9GYfw4UM8cO6bIwXyIwc8SIe9JAgAIfkEBQoAAAAsCAAIAEMAQwAABv9AgHAoLBiJyKRyyWw6AQnKZTp9FJ7YrHYooXqnjq14TKx8z2GyGts9nxXr+FLhrsvvRGn9nMDj924RfnIFgGcVg3GFhl+Ja4uMUxSOa5FUD5RqD5YXB5lkkIaTn2QOkVekpYaeqWoKZmejrXEJEVISDgazu7y9vr9arMBjChshI8ggGcNaG8jPzyEQzE4f0NfIG9RLHNje09tEDd7eIeFEHeTeE+dC6t4d7Qrv3vL02Pb30O0A+s/x7dL5Y9dunD5z/AB0uwcuobV32hIOcVauoUQhxY4lw3CxibCOIEOq2YDCBY0XLECIBBDhBY2XMGnEIAGyQ8ybL1FcvICzp864hC574rzAz6ZQnCn4pTjak19QpjEttELgoSoCJlBxSv3kwcaOr19teFASI2vUTAhqgF37tcZVIivMwoTjCAEOtnhxvBUCQu7JTGrx4q1BRIHfEZQ8CF48dsgIsy4yyVgsWAYSFFBjWBykgzJeHUkwC3Wx2Q8Cz4L3DrGwNOYLlVxR422sxIJtuqlks+WXQ/fXHE5973jBL0Jn2ToEKdWdVOIL1MQ7mjjOVocJkQdS3Ois40aKj46CAAAh+QQFCgAAACwIAAAAOwBLAAAG/0CAcEgsGouJSOVSiSSO0Kh0WjwsL9hs5UDteqGMrFjM+Jq9ibEa+zy7ode1uPKuE8Nyddlep+TVFHx1f2uCbgWEagWGZ4ljjGdxiXSQXw6OWA6VX4iYi5teD44PoGYShBKlZ6JypKpnBaxZD5+vbwW4trq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvcxAgqNzk7ODMjtg0bHyMgHYFRLTo78vM7ORqgByAj+/wjIRdHZNAbKO9EJQj9Eu7bUEQgQYIeGClQSJGhEA8PH+ZgpI+iQgVCamR8aEIQQo8KOQBAMPJhDUEcUFIEgLHlwI18Osrsp6CmTcV6UrJI2fnR588dOo5cSEGjadMUAI2EIMozwtF5N4wwdcqVRgojHajyWyTu6lciLrqqdVFkgth1Qlpc3RGByFa1Xc8KKfDWwhAcR1sQuYC3cFQhFqh+IKIhXksZRVAUxouiyIadIbgwBpwRcpEYk9XGMHLZ4wfNWsvOqxHRSGi8RxTE7AdiApUIHnKjLmLhtVq/UBQIr8XId1dhL4w3fSGshHIaJYQpAO07BkhhIIyDKOY8dHRjHah3jdFBGYgVoGOs2M4oCAAh+QQFCgAAACwAAAgAQwBDAAAG/0CAcEgsGo/IpBJQaC6f0Oiy8LhYrZSEdMtNOq5gq6RL7n7D4Up5/VSg32O23PiuK+Z4QKL+puTnEXxvf3IVgmgFhGuHiIplFIxgiY5dVZFWlGQHlxcPmWSQkZOfWwWRDqSah6ipj28Vd61rBg4SFxQRWrK7vJ8avWwIMDk7xTozHsBbJzrFzs4yCMpPMs/WxTjS00gn194120cIzd7XI+FFKeXeN+hEN+ve2u7x3snuAPXX9/T6z/zo4PkrdgAfAHUD2xk8QE6fCINCTPgDB1FItXg4ClaM2NCaDI0bhRx4QcyYDIAhi/xKybJlLxAsXtBwgWKDSwAkYtDYyZPGi8AILFH0HLqzQ0ihRIleqHghadIXFVM4TWrU4NSkKQxauEoUKr6tXIcqUUC2FdiwO2McUcBhhFu3HGJRUoCW5wojbd/qHcHhk8y6IIp82Ev4Q6YRdWnIBZCX8N6+lFygPTdEgePLi/9A0HkVRZENlx3bpARBslPPRUKEJhyCFIi/PFNYOLLacSsFFnInsVx7b+ZtvfdCBBHcbWCDGIqPwACxgOreIUbhmxB8Qsjkq5mnhPB8bwgINyd0UB2ig3U8QQAAIfkEBQoAAAAsAAAIAEsAOwAABv9AgHBILEo8SERxyWw6n9CoKrerVm2eqHbLfWpw1nBV1i2boRqdeE0+u9/g9br1rndb8rzEzodS82spfYNLEoByN4SKQh6HazqLio2OYpGEk5RVOZaDB5lWNZyDNZ87JqJ9mI6bqH0ymVmtro6nsoMtams5GraKByk3VDgyIr3Gx8jJURHKiiUvNNExKBfNRQUOFRfbFAxNHTHR4uIo1kIO2+npFQdFKOPw0S7WEur22w5DHfH8gskP9wK2AxCOX7wNyAwEDFgBAAiD/FYgi7AwYIIVEPkhqxgwQkZ+FowV4BjwY7yQvUaStGcSHkpbKlemw9gy2kaZ2yI8rCnxGEWvnAkI1kR4TKHMhgD2mfSHDODKgQDeZZzXrB7HfETAGSxnDh1DqEWeiZv20hw2bdy8RYFgrq3bt8codAAx4sOGBnC7XAgxoq/fESDA5m2y4a/hvmwHEz7MWIHiJQoYMwbxuAgHyYwTVwaAmTGHzQAidzZMebPo0X9Bn0Y9IgToAqz9dgDtMPaICbQt2C5AG8AH1mU3H+DbmWhvAAd+SzZ+XMgEun85OG6+pICC65uDAAAh+QQJCgAAACwAAAAASwBLAAAG/0CAcEgsGo9FhOqm2+luKgRySq1ar8JTc8ft6k7YsHgMgHXPZxh5zSam0HBuqk0XS7bxs05S71dfeXEvfoRHOYFwOYWLQ4hxjGEKF5NTHo5wHpBVIC80np4pF0YHl2gHmkgRLp+snihGeJc6qEcRMa24r0QypVwytEaruLgjRJa9mcBDI8PNCkQ1pTXKRJ3NuCBEBziOOKfUAArXwytFB9F5Nd/gFuO4MUce6F01yeBC7e6tUwce/uv38OljNSggmYGf5hgckwIhjQ4Lx+TTVzCiGBQDLVgkg3EcxI1kRtzC9QICyDYgVnRygWLDyZcwY9IBKHNMBhAjcobY8KzmFc4IIXIKFerSJ5UNQ5Pm/GAUCQSlUDk0NRIUqtIGU4dMsAr1Y9YOXKFmFRIWas+pZZWebZo26VqjYNvmHAtgq1yvWaumxUr3aVqpdIUgDcs08BCgVosaJoIBp06ei/lFnky5shgDDiRcoBAhgWUAFCaJnlRhweQDo1NPcrC4gOrXrAOHfq26AF3UtFU/oPsg92u6s32Ptp1VeO2xFYwPHxtBuWi6CZxvDiz9bVNJxvkYdiC8wmTutLVPLtB7NAXPnwEUWJ++vfv38OPLn78xCAA7') no-repeat center; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 9998; +} +#wp-admin-bar-wpfc-toolbar-parent * { + cursor: pointer !important; +} + +/*@supports not (-ms-high-contrast: none) { + #wp-admin-bar-wpfc-toolbar-parent > .ab-empty-item::before{ + content: url("../images/icon.svg"); + } +}*/ \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/images/ads/1-de.jpg b/wp-content/plugins/wp-fastest-cache/images/ads/1-de.jpg new file mode 100644 index 00000000..e2ec7bfd Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/ads/1-de.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/ads/1.jpg b/wp-content/plugins/wp-fastest-cache/images/ads/1.jpg new file mode 100644 index 00000000..5f4bafba Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/ads/1.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/ads/2-de.jpg b/wp-content/plugins/wp-fastest-cache/images/ads/2-de.jpg new file mode 100644 index 00000000..3a01861c Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/ads/2-de.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/ads/2.jpg b/wp-content/plugins/wp-fastest-cache/images/ads/2.jpg new file mode 100644 index 00000000..f9a15527 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/ads/2.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/ads/3-de.jpg b/wp-content/plugins/wp-fastest-cache/images/ads/3-de.jpg new file mode 100644 index 00000000..e73df899 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/ads/3-de.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/ads/3.jpg b/wp-content/plugins/wp-fastest-cache/images/ads/3.jpg new file mode 100644 index 00000000..3f62b323 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/ads/3.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/ads/4-de.jpg b/wp-content/plugins/wp-fastest-cache/images/ads/4-de.jpg new file mode 100644 index 00000000..ad37cdc8 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/ads/4-de.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/ads/4.jpg b/wp-content/plugins/wp-fastest-cache/images/ads/4.jpg new file mode 100644 index 00000000..77730a68 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/ads/4.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/bunny-cdn-icon-256x256.png b/wp-content/plugins/wp-fastest-cache/images/bunny-cdn-icon-256x256.png new file mode 100644 index 00000000..68ebb794 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/bunny-cdn-icon-256x256.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/bunny-cdn-icon.png b/wp-content/plugins/wp-fastest-cache/images/bunny-cdn-icon.png new file mode 100644 index 00000000..970e3532 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/bunny-cdn-icon.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/button-back-blood.png b/wp-content/plugins/wp-fastest-cache/images/button-back-blood.png new file mode 100644 index 00000000..85f43d6e Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/button-back-blood.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/button-back-fire.png b/wp-content/plugins/wp-fastest-cache/images/button-back-fire.png new file mode 100644 index 00000000..d36dd51a Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/button-back-fire.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/button-back-green.png b/wp-content/plugins/wp-fastest-cache/images/button-back-green.png new file mode 100644 index 00000000..539de16f Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/button-back-green.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/cancel.png b/wp-content/plugins/wp-fastest-cache/images/cancel.png new file mode 100644 index 00000000..61978d20 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/cancel.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/check.png b/wp-content/plugins/wp-fastest-cache/images/check.png new file mode 100644 index 00000000..c37abecc Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/check.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/close-wiz-sprite.png b/wp-content/plugins/wp-fastest-cache/images/close-wiz-sprite.png new file mode 100644 index 00000000..46d39d19 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/close-wiz-sprite.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/cloudflare.png b/wp-content/plugins/wp-fastest-cache/images/cloudflare.png new file mode 100644 index 00000000..20f17937 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/cloudflare.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/crown.png b/wp-content/plugins/wp-fastest-cache/images/crown.png new file mode 100644 index 00000000..275c2dec Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/crown.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/customer-service.png b/wp-content/plugins/wp-fastest-cache/images/customer-service.png new file mode 100644 index 00000000..a286ebd3 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/customer-service.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/dollar-gold.png b/wp-content/plugins/wp-fastest-cache/images/dollar-gold.png new file mode 100644 index 00000000..dba1111e Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/dollar-gold.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/fast-foward.png b/wp-content/plugins/wp-fastest-cache/images/fast-foward.png new file mode 100644 index 00000000..0ffa6d76 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/fast-foward.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/icon-24x24.png b/wp-content/plugins/wp-fastest-cache/images/icon-24x24.png new file mode 100644 index 00000000..ad3b1c36 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/icon-24x24.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/icon-32x32.png b/wp-content/plugins/wp-fastest-cache/images/icon-32x32.png new file mode 100644 index 00000000..83cf3e11 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/icon-32x32.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/icon.png b/wp-content/plugins/wp-fastest-cache/images/icon.png new file mode 100644 index 00000000..b09d1e19 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/icon.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/icon.svg b/wp-content/plugins/wp-fastest-cache/images/icon.svg new file mode 100644 index 00000000..36d13ae3 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/images/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/images/index.html b/wp-content/plugins/wp-fastest-cache/images/index.html new file mode 100644 index 00000000..8ab7b8d7 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/images/index.html @@ -0,0 +1 @@ +Silence is golden. \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/images/info.png b/wp-content/plugins/wp-fastest-cache/images/info.png new file mode 100644 index 00000000..bbf51fc3 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/info.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/label-bg.png b/wp-content/plugins/wp-fastest-cache/images/label-bg.png new file mode 100644 index 00000000..0ab45054 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/label-bg.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/left-right.png b/wp-content/plugins/wp-fastest-cache/images/left-right.png new file mode 100644 index 00000000..0dc57657 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/left-right.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/loader-statics.gif b/wp-content/plugins/wp-fastest-cache/images/loader-statics.gif new file mode 100644 index 00000000..94ffdbc3 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/loader-statics.gif differ diff --git a/wp-content/plugins/wp-fastest-cache/images/loader.gif b/wp-content/plugins/wp-fastest-cache/images/loader.gif new file mode 100644 index 00000000..b1daa672 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/loader.gif differ diff --git a/wp-content/plugins/wp-fastest-cache/images/loading-circle.gif b/wp-content/plugins/wp-fastest-cache/images/loading-circle.gif new file mode 100644 index 00000000..58deef0b Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/loading-circle.gif differ diff --git a/wp-content/plugins/wp-fastest-cache/images/no-image.gif b/wp-content/plugins/wp-fastest-cache/images/no-image.gif new file mode 100644 index 00000000..0c39adb0 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/no-image.gif differ diff --git a/wp-content/plugins/wp-fastest-cache/images/othercdn.png b/wp-content/plugins/wp-fastest-cache/images/othercdn.png new file mode 100644 index 00000000..84fd860c Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/othercdn.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/pause.png b/wp-content/plugins/wp-fastest-cache/images/pause.png new file mode 100644 index 00000000..c2ae86bf Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/pause.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/pause.svg b/wp-content/plugins/wp-fastest-cache/images/pause.svg new file mode 100644 index 00000000..fcd5dace --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/images/pause.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/images/price-mini-banner.jpg b/wp-content/plugins/wp-fastest-cache/images/price-mini-banner.jpg new file mode 100644 index 00000000..60abf0c9 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/price-mini-banner.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/refund.png b/wp-content/plugins/wp-fastest-cache/images/refund.png new file mode 100644 index 00000000..8fe71964 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/refund.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/rocket.png b/wp-content/plugins/wp-fastest-cache/images/rocket.png new file mode 100644 index 00000000..26aada73 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/rocket.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/search_reset.jpg b/wp-content/plugins/wp-fastest-cache/images/search_reset.jpg new file mode 100644 index 00000000..d6de4840 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/search_reset.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/stackpath.png b/wp-content/plugins/wp-fastest-cache/images/stackpath.png new file mode 100644 index 00000000..32c5c409 Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/stackpath.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/star-rating.png b/wp-content/plugins/wp-fastest-cache/images/star-rating.png new file mode 100644 index 00000000..a310924e Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/star-rating.png differ diff --git a/wp-content/plugins/wp-fastest-cache/images/success.svg b/wp-content/plugins/wp-fastest-cache/images/success.svg new file mode 100644 index 00000000..4c77a55e --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/images/success.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/images/tinymce-wpfcnot.jpg b/wp-content/plugins/wp-fastest-cache/images/tinymce-wpfcnot.jpg new file mode 100644 index 00000000..3c4eaa8f Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/tinymce-wpfcnot.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/images/varnish.jpg b/wp-content/plugins/wp-fastest-cache/images/varnish.jpg new file mode 100644 index 00000000..43bf0dec Binary files /dev/null and b/wp-content/plugins/wp-fastest-cache/images/varnish.jpg differ diff --git a/wp-content/plugins/wp-fastest-cache/inc/admin-toolbar.php b/wp-content/plugins/wp-fastest-cache/inc/admin-toolbar.php new file mode 100644 index 00000000..c290a806 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/inc/admin-toolbar.php @@ -0,0 +1,131 @@ +is_multi = $is_multi; + } + + public function add(){ + if(is_admin()){ + add_action('wp_before_admin_bar_render', array($this, "wpfc_tweaked_toolbar_on_admin_panel")); + add_action('admin_enqueue_scripts', array($this, 'load_toolbar_js')); + add_action('admin_enqueue_scripts', array($this, 'load_toolbar_css')); + add_action('wp_print_scripts', array($this, 'print_my_inline_script')); + }else{ + if(is_admin_bar_showing()){ + add_action('wp_before_admin_bar_render', array($this, "wpfc_tweaked_toolbar_on_frontpage")); + add_action('wp_enqueue_scripts', array($this, 'load_toolbar_js')); + add_action('wp_enqueue_scripts', array($this, 'load_toolbar_css')); + add_action('wp_footer', array($this, 'print_my_inline_script')); + } + } + } + + public function load_toolbar_js(){ + wp_enqueue_script("wpfc-toolbar", plugins_url("wp-fastest-cache/js/toolbar.js"), array('jquery'), time(), true); + } + + public function load_toolbar_css(){ + wp_enqueue_style("wp-fastest-cache-toolbar", plugins_url("wp-fastest-cache/css/toolbar.css"), array(), time(), "all"); + } + + public function print_my_inline_script() { + $script = " + var wpfc_ajaxurl = '" . admin_url('admin-ajax.php') . "'; + var wpfc_nonce = '" . wp_create_nonce("wpfc") . "'; + "; + echo wp_print_inline_script_tag($script); + } + + public function wpfc_tweaked_toolbar_on_frontpage() { + global $wp_admin_bar; + + $wp_admin_bar->add_node(array( + 'id' => 'wpfc-toolbar-parent', + 'title' => 'WP Fastest Cache', + 'href' => admin_url( 'admin.php?page=wpfastestcacheoptions') + )); + + $wp_admin_bar->add_menu( array( + 'id' => 'wpfc-toolbar-parent-clear-cache-of-this-page', + 'title' => 'Clear Cache of This Page', + 'parent'=> 'wpfc-toolbar-parent', + 'href' => '#', + 'meta' => array("class" => "wpfc-toolbar-child") + )); + + $wp_admin_bar->add_menu( array( + 'id' => 'wpfc-toolbar-parent-delete-cache', + 'title' => __("Clear All Cache", "wp-fastest-cache"), + 'parent'=> 'wpfc-toolbar-parent', + 'href' => '#', + 'meta' => array("class" => "wpfc-toolbar-child") + )); + + $wp_admin_bar->add_menu( array( + 'id' => 'wpfc-toolbar-parent-delete-cache-and-minified', + 'title' => 'Clear Cache and Minified CSS/JS', + 'parent'=> 'wpfc-toolbar-parent', + 'href' => '#', + 'meta' => array("class" => "wpfc-toolbar-child") + )); + + if($this->is_multi){ + $wp_admin_bar->add_menu( array( + 'id' => 'wpfc-toolbar-parent-clear-cache-of-allsites', + 'title' => __("Clear Cache of All Sites", "wp-fastest-cache"), + 'parent'=> 'wpfc-toolbar-parent', + 'href' => '#', + 'meta' => array("class" => "wpfc-toolbar-child") + )); + } + } + + public function wpfc_tweaked_toolbar_on_admin_panel() { + global $wp_admin_bar; + + $wp_admin_bar->add_node(array( + 'id' => 'wpfc-toolbar-parent', + 'title' => 'WP Fastest Cache', + 'href' => admin_url( 'admin.php?page=wpfastestcacheoptions') + )); + + $wp_admin_bar->add_menu( array( + 'id' => 'wpfc-toolbar-parent-delete-cache', + 'title' => __("Clear All Cache", "wp-fastest-cache"), + 'parent'=> 'wpfc-toolbar-parent', + 'href' => '#', + 'meta' => array("class" => "wpfc-toolbar-child") + )); + + $wp_admin_bar->add_menu( array( + 'id' => 'wpfc-toolbar-parent-delete-cache-and-minified', + 'title' => __("Clear Cache and Minified CSS/JS", "wp-fastest-cache"), + 'parent'=> 'wpfc-toolbar-parent', + 'href' => '#', + 'meta' => array("class" => "wpfc-toolbar-child") + )); + + if($this->is_multi){ + $wp_admin_bar->add_menu( array( + 'id' => 'wpfc-toolbar-parent-clear-cache-of-allsites', + 'title' => __("Clear Cache of All Sites", "wp-fastest-cache"), + 'parent'=> 'wpfc-toolbar-parent', + 'href' => '#', + 'meta' => array("class" => "wpfc-toolbar-child") + )); + } + + if(isset($_GET["page"]) && $_GET["page"] == "wpfastestcacheoptions"){ + $wp_admin_bar->add_menu( array( + 'id' => 'wpfc-toolbar-parent-settings', + 'title' => __("Toolbar Settings", "wp-fastest-cache"), + 'parent'=> 'wpfc-toolbar-parent', + 'href' => '#', + 'meta' => array("class" => "wpfc-toolbar-child") + )); + } + } + } +?> \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/inc/admin.php b/wp-content/plugins/wp-fastest-cache/inc/admin.php new file mode 100644 index 00000000..30d20036 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/inc/admin.php @@ -0,0 +1,2621 @@ +options = $this->getOptions(); + + $this->setCronJobSettings(); + $this->addButtonOnEditor(); + add_action('admin_enqueue_scripts', array($this, 'addJavaScript')); + add_filter('plugin_locale', array($this, 'my_plugin_locale_filter'), 10, 2); + } + + public function my_plugin_locale_filter($locale, $domain){ + if($domain === 'wp-fastest-cache'){ + + if(!isset($this->options->wpFastestCacheLanguage)){ + return "en_US"; + } + + $locale = $this->options->wpFastestCacheLanguage; + + if(file_exists(WPFC_MAIN_PATH."languages/wp-fastest-cache-".$locale.".mo")){ + return $locale; + }else{ + return "en_US"; + } + } + + return $locale; + } + + public function create_auto_cache_timeout($recurrance, $interval){ + $exist_cronjob = false; + $wpfc_timeout_number = 0; + + $crons = _get_cron_array(); + + foreach ((array)$crons as $cron_key => $cron_value) { + foreach ( (array) $cron_value as $hook => $events ) { + if(preg_match("/^wp\_fastest\_cache(.*)/", $hook, $id)){ + if(!$id[1] || preg_match("/^\_(\d+)$/", $id[1])){ + $wpfc_timeout_number++; + + foreach ( (array) $events as $event_key => $event ) { + $schedules = wp_get_schedules(); + + if(isset($event["args"]) && isset($event["args"][0])){ + if($event["args"][0] == '{"prefix":"all","content":"all"}'){ + if($schedules[$event["schedule"]]["interval"] <= $interval){ + $exist_cronjob = true; + } + } + } + } + } + } + } + } + + if(!$exist_cronjob){ + $args = array("prefix" => "all", "content" => "all"); + wp_schedule_event(time(), $recurrance, "wp_fastest_cache_".$wpfc_timeout_number, array(json_encode($args))); + } + } + + public function get_premium_version(){ + $wpfc_premium_version = ""; + if(file_exists(WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/wpFastestCachePremium.php")){ + if($data = @file_get_contents(WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/wpFastestCachePremium.php")){ + preg_match("/Version:\s*(.+)/", $data, $out); + if(isset($out[1]) && $out[1]){ + $wpfc_premium_version = trim($out[1]); + } + } + } + return $wpfc_premium_version; + } + + public function addButtonOnEditor(){ + add_action('admin_print_footer_scripts', array($this, 'addButtonOnQuicktagsEditor')); + add_action('init', array($this, 'myplugin_buttonhooks')); + } + + public function checkShortCode($content){ + preg_match("/\[wpfcNOT\]/", $content, $wpfcNOT); + if(count($wpfcNOT) > 0){ + if(is_single() || is_page()){ + $this->blockCache = true; + } + $content = str_replace("[wpfcNOT]", "", $content); + } + return $content; + } + + public function myplugin_buttonhooks() { + // Only add hooks when the current user has permissions AND is in Rich Text editor mode + if (current_user_can( 'manage_options' )) { + add_filter("mce_external_plugins", array($this, "myplugin_register_tinymce_javascript")); + add_filter('mce_buttons', array($this, 'myplugin_register_buttons')); + } + } + // Load the TinyMCE plugin : editor_plugin.js (wp2.5) + public function myplugin_register_tinymce_javascript($plugin_array) { + $plugin_array['wpfc'] = plugins_url('../js/button.js?v='.time(),__file__); + return $plugin_array; + } + + public function myplugin_register_buttons($buttons) { + array_push($buttons, 'wpfc'); + return $buttons; + } + + public function addButtonOnQuicktagsEditor(){ + if (wp_script_is('quicktags') && current_user_can( 'manage_options' )){ ?> + + notify(array("The plugin does not work with Multisite.\n Please click here to learn how to enable it.", "error")); + // return 0; + // } + // } + + if(current_user_can('manage_options')){ + if($_POST["wpFastestCachePage"] == "options"){ + $this->exclude_urls(); + + $this->saveOption(); + }else if($_POST["wpFastestCachePage"] == "deleteCache"){ + $this->deleteCache(); + }else if($_POST["wpFastestCachePage"] == "deleteCssAndJsCache"){ + $this->deleteCache(true); + }else if($_POST["wpFastestCachePage"] == "cacheTimeout"){ + $this->addCacheTimeout(); + } + }else{ + die("Forbidden"); + } + } + } + } + + public function exclude_urls(){ + // to exclude wishlist url of YITH WooCommerce Wishlist + if($this->isPluginActive('yith-woocommerce-wishlist/init.php')){ + $wishlist_page_id = get_option("yith_wcwl_wishlist_page_id"); + $permalink = urldecode(get_permalink($wishlist_page_id)); + + if(preg_match("/https?:\/\/[^\/]+\/(.+)/", $permalink, $out)){ + $url = trim($out[1], "/"); + } + } + + + if(isset($url) && $url){ + $rules_std = array(); + $rules_json = get_option("WpFastestCacheExclude"); + + $new_rule = new stdClass; + $new_rule->prefix = "exact"; + $new_rule->content = $url; + $new_rule->type = "page"; + + + if($rules_json === false){ + array_push($rules_std, $new_rule); + add_option("WpFastestCacheExclude", json_encode($rules_std), null, "yes"); + }else{ + $rules_std = json_decode($rules_json); + + if(!is_array($rules_std)){ + $rules_std = array(); + } + + if(!in_array($new_rule, $rules_std)){ + array_push($rules_std, $new_rule); + update_option("WpFastestCacheExclude", json_encode($rules_std)); + } + } + } + } + + public function addCacheTimeout(){ + if(isset($_POST["wpFastestCacheTimeOut"])){ + if($_POST["wpFastestCacheTimeOut"]){ + if(isset($_POST["wpFastestCacheTimeOutHour"]) && is_numeric($_POST["wpFastestCacheTimeOutHour"])){ + if(isset($_POST["wpFastestCacheTimeOutMinute"]) && is_numeric($_POST["wpFastestCacheTimeOutMinute"])){ + $selected = mktime($_POST["wpFastestCacheTimeOutHour"], $_POST["wpFastestCacheTimeOutMinute"], 0, date("n"), date("j"), date("Y")); + + if($selected > time()){ + $timestamp = $selected; + }else{ + if(time() - $selected < 60){ + $timestamp = $selected + 60; + }else{ + // if selected time is less than now, 24hours is added + $timestamp = $selected + 24*60*60; + } + } + + wp_clear_scheduled_hook($this->slug()); + wp_schedule_event($timestamp, $_POST["wpFastestCacheTimeOut"], $this->slug()); + }else{ + echo "Minute was not set"; + exit; + } + }else{ + echo "Hour was not set"; + exit; + } + }else{ + wp_clear_scheduled_hook($this->slug()); + } + } + } + + public function setCronJobSettings(){ + if(wp_next_scheduled($this->slug())){ + $this->cronJobSettings["period"] = wp_get_schedule($this->slug()); + $this->cronJobSettings["time"] = wp_next_scheduled($this->slug()); + } + } + + public function addMenuPage(){ + add_action('admin_menu', array($this, 'register_my_custom_menu_page')); + } + + public function addJavaScript(){ + wp_enqueue_script("jquery-ui-draggable"); + wp_enqueue_script("jquery-ui-position"); + wp_enqueue_script("jquery-ui-sortable"); + wp_enqueue_script("wpfc-dialog", plugins_url("wp-fastest-cache/js/dialog.js"), array(), time(), false); + wp_enqueue_script("wpfc-dialog-new", plugins_url("wp-fastest-cache/js/dialog_new.js"), array(), time(), false); + + + wp_enqueue_script("wpfc-cdn", plugins_url("wp-fastest-cache/js/cdn/cdn.js"), array(), time(), false); + + + wp_enqueue_script("wpfc-schedule", plugins_url("wp-fastest-cache/js/schedule.js"), array(), time(), true); + wp_enqueue_script("wpfc-db", plugins_url("wp-fastest-cache/js/db.js"), array(), time(), true); + + + if(class_exists("WpFastestCacheImageOptimisation")){ + if(file_exists(WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/pro/js/statics.js")){ + wp_enqueue_script("wpfc-statics", plugins_url("wp-fastest-cache-premium/pro/js/statics.js"), array(), time(), false); + } + + if(file_exists(WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/pro/js/premium.js")){ + wp_enqueue_script("wpfc-premium", plugins_url("wp-fastest-cache-premium/pro/js/premium.js"), array(), time(), true); + } + } + + } + + public function saveOption(){ + unset($_POST["wpFastestCachePage"]); + unset($_POST["option_page"]); + unset($_POST["action"]); + unset($_POST["_wpnonce"]); + unset($_POST["_wp_http_referer"]); + + $data = json_encode($_POST); + //for optionsPage() $_POST is array and json_decode() converts to stdObj + $this->options = json_decode($data); + + $this->systemMessage = $this->modifyHtaccess($_POST); + + if(isset($this->systemMessage[1]) && $this->systemMessage[1] != "error"){ + + if($message = $this->checkCachePathWriteable()){ + + + if(is_array($message)){ + $this->systemMessage = $message; + }else{ + if(isset($this->options->wpFastestCachePreload)){ + $this->set_preload(); + }else{ + delete_option("WpFastestCachePreLoad"); + wp_clear_scheduled_hook("wp_fastest_cache_Preload"); + } + + if(get_option("WpFastestCache")){ + update_option("WpFastestCache", $data); + }else{ + add_option("WpFastestCache", $data, null, "yes"); + } + } + } + } + + $this->notify($this->systemMessage); + } + + public function checkCachePathWriteable(){ + $message = array(); + + if(!is_dir($this->getWpContentDir("/cache/"))){ + if (@mkdir($this->getWpContentDir("/cache/"), 0755, true)){ + // + }else{ + array_push($message, "- ".$this->getWpContentDir("/cache/")." is needed to be created"); + } + }else{ + if (@mkdir($this->getWpContentDir("/cache/testWpFc/"), 0755, true)){ + rmdir($this->getWpContentDir("/cache/testWpFc/")); + }else{ + array_push($message, "- ".$this->getWpContentDir("/cache/")." permission has to be 755"); + } + } + + if(!is_dir($this->getWpContentDir("/cache/all/"))){ + if (@mkdir($this->getWpContentDir("/cache/all/"), 0755, true)){ + // + }else{ + array_push($message, "- ".$this->getWpContentDir("/cache/all/")." is needed to be created"); + } + }else{ + if (@mkdir($this->getWpContentDir("/cache/all/testWpFc/"), 0755, true)){ + rmdir($this->getWpContentDir("/cache/all/testWpFc/")); + }else{ + array_push($message, "- ".$this->getWpContentDir("/cache/all/")." permission has to be 755"); + } + } + + if(count($message) > 0){ + return array(implode("
", $message), "error"); + }else{ + return true; + } + } + + public function modifyHtaccess($post){ + $path = ABSPATH; + if($this->is_subdirectory_install()){ + $path = $this->getABSPATH(); + } + + // if(isset($_SERVER["SERVER_SOFTWARE"]) && $_SERVER["SERVER_SOFTWARE"] && preg_match("/iis/i", $_SERVER["SERVER_SOFTWARE"])){ + // return array("The plugin does not work with Microsoft IIS. Only with Apache", "error"); + // } + + // if(isset($_SERVER["SERVER_SOFTWARE"]) && $_SERVER["SERVER_SOFTWARE"] && preg_match("/nginx/i", $_SERVER["SERVER_SOFTWARE"])){ + // return array("The plugin does not work with Nginx. Only with Apache", "error"); + // } + + if(!file_exists($path.".htaccess")){ + if(isset($_SERVER["SERVER_SOFTWARE"]) && $_SERVER["SERVER_SOFTWARE"] && (preg_match("/iis/i", $_SERVER["SERVER_SOFTWARE"]) || preg_match("/nginx/i", $_SERVER["SERVER_SOFTWARE"]))){ + // + }else{ + return array(" Read More", "error"); + } + } + + if($this->isPluginActive('wp-postviews/wp-postviews.php')){ + $wp_postviews_options = get_option("views_options"); + $wp_postviews_options["use_ajax"] = true; + update_option("views_options", $wp_postviews_options); + + if(!WP_CACHE){ + if($wp_config = @file_get_contents(ABSPATH."wp-config.php")){ + $wp_config = str_replace("\$table_prefix", "define('WP_CACHE', true);\n\$table_prefix", $wp_config); + + if(!@file_put_contents(ABSPATH."wp-config.php", $wp_config)){ + return array("define('WP_CACHE', true); is needed to be added into wp-config.php", "error"); + } + }else{ + return array("define('WP_CACHE', true); is needed to be added into wp-config.php", "error"); + } + } + } + + // if(get_option('template') == "Divi"){ + // // Divi Theme - Static CSS File Generation + // if($et_divi = get_option("et_divi")){ + // if(isset($et_divi["et_pb_static_css_file"]) && $et_divi["et_pb_static_css_file"] == "on"){ + // return array("You have to disable the Static CSS File Generation option of Divi Theme", "error"); + // } + // } + // } + + + if ($this->isPluginActive('elementor/elementor.php')) { + // Elementor Plugin - Element Caching + $new_option = get_option('elementor_element_cache_ttl'); + $old_option = get_option('elementor_experiment-e_element_cache'); + + $is_elementor_cache_inactive = false; + + if ($new_option !== false) { + + // New versions: element cache is active unless explicitly disabled/inactive + $is_elementor_cache_inactive = in_array($new_option, ['disable', 'inactive'], true); + + }elseif ($old_option !== false) { + + // Old versions: element cache is active unless inactive + $is_elementor_cache_inactive = ($old_option === 'inactive'); + + } + + if (!$is_elementor_cache_inactive) { + return array( + "You have to set the Element Caching option of the Elementor plugin to Inactive", + "error" + ); + } + + + + $elementor_css_print_method_option = get_option("elementor_css_print_method"); + + if($elementor_css_print_method_option && $elementor_css_print_method_option != "internal"){ + return array( + "You have to set the CSS Print Method option of the Elementor plugin to Internal Embedding", + "error" + ); + } + } + + + + if(file_exists($path.".htaccess")){ + $htaccess = @file_get_contents($path.".htaccess"); + }else{ + $htaccess = ""; + } + + // if(defined('DONOTCACHEPAGE')){ + // return array("DONOTCACHEPAGE ", "error"); + // }else + + + if(!preg_match("/^https/i", get_option("home")) && is_ssl()){ + return array("Mismatch detected: Site is using HTTPS but the 'Home' URL is set to HTTP. Please update your WordPress 'Home' URL to use HTTPS", "error"); + }else if(!get_option('permalink_structure')){ + return array("You have to set permalinks", "error"); + }else if($res = $this->checkSuperCache($path, $htaccess)){ + return $res; + }else if($this->isPluginActive('cookie-notice/cookie-notice.php')){ + return array("Cookie Notice & Compliance for GDPR / CCPA needs to be deactivated", "error"); + }else if($this->isPluginActive('fast-velocity-minify/fvm.php')){ + return array("Fast Velocity Minify needs to be deactivated", "error"); + }else if($this->isPluginActive('far-future-expiration/far-future-expiration.php')){ + return array("Far Future Expiration Plugin needs to be deactivated", "error"); + }else if($this->isPluginActive('sg-cachepress/sg-cachepress.php')){ + return array("SG Optimizer needs to be deactived", "error"); + }else if($this->isPluginActive('adrotate/adrotate.php') || $this->isPluginActive('adrotate-pro/adrotate.php')){ + return $this->warningIncompatible("AdRotate"); + }else if($this->isPluginActive('mobilepress/mobilepress.php')){ + return $this->warningIncompatible("MobilePress", array("name" => "WPtouch Mobile", "url" => "https://wordpress.org/plugins/wptouch/")); + }else if($this->isPluginActive('speed-booster-pack/speed-booster-pack.php')){ + return array("Speed Booster Pack needs to be deactivated
", "error"); + }else if($this->isPluginActive('cdn-enabler/cdn-enabler.php')){ + return array("CDN Enabler needs to be deactivated
This plugin has aldready CDN feature", "error"); + }else if($this->isPluginActive('wp-performance-score-booster/wp-performance-score-booster.php')){ + return array("WP Performance Score Booster needs to be deactivated
This plugin has aldready Gzip, Leverage Browser Caching features", "error"); + }else if($this->isPluginActive('bwp-minify/bwp-minify.php')){ + return array("Better WordPress Minify needs to be deactivated
This plugin has aldready Minify feature", "error"); + }else if($this->isPluginActive('check-and-enable-gzip-compression/richards-toolbox.php')){ + return array("Check and Enable GZIP compression needs to be deactivated
This plugin has aldready Gzip feature", "error"); + }else if($this->isPluginActive('gzippy/gzippy.php')){ + return array("GZippy needs to be deactivated
This plugin has aldready Gzip feature", "error"); + }else if($this->isPluginActive('gzip-ninja-speed-compression/gzip-ninja-speed.php')){ + return array("GZip Ninja Speed Compression needs to be deactivated
This plugin has aldready Gzip feature", "error"); + }else if($this->isPluginActive('wordpress-gzip-compression/ezgz.php')){ + return array("WordPress Gzip Compression needs to be deactivated
This plugin has aldready Gzip feature", "error"); + }else if($this->isPluginActive('filosofo-gzip-compression/filosofo-gzip-compression.php')){ + return array("GZIP Output needs to be deactivated
This plugin has aldready Gzip feature", "error"); + }else if($this->isPluginActive('head-cleaner/head-cleaner.php')){ + return array("Head Cleaner needs to be deactivated", "error"); + }else if($this->isPluginActive('far-future-expiry-header/far-future-expiration.php')){ + return array("Far Future Expiration Plugin needs to be deactivated", "error"); + }else if(is_writable($path.".htaccess")){ + $htaccess = $this->insertWebp($htaccess); + $htaccess = $this->insertLBCRule($htaccess, $post); + $htaccess = $this->insertGzipRule($htaccess, $post); + $htaccess = $this->insertRewriteRule($htaccess, $post); + + $htaccess = $this->to_move_gtranslate_rules($htaccess); + + file_put_contents($path.".htaccess", $htaccess); + }else{ + return array(__("Options have been saved", 'wp-fastest-cache'), "updated"); + //return array(".htaccess is not writable", "error"); + } + return array(__("Options have been saved", 'wp-fastest-cache'), "updated"); + + } + + public function to_move_gtranslate_rules($htaccess){ + preg_match("/\#\#\#\s+BEGIN\sGTranslate\sconfig\s\#\#\#[^\#]+\#\#\#\s+END\sGTranslate\sconfig\s\#\#\#/i", $htaccess, $gtranslate); + + if(isset($gtranslate[0])){ + $htaccess = preg_replace("/\#\#\#\s+BEGIN\sGTranslate\sconfig\s\#\#\#[^\#]+\#\#\#\s+END\sGTranslate\sconfig\s\#\#\#/i", "", $htaccess); + $htaccess = $gtranslate[0]."\n".$htaccess; + } + + return $htaccess; + } + + public function warningIncompatible($incompatible, $alternative = false){ + if($alternative){ + return array($incompatible."
".$alternative["name"]."", "error"); + }else{ + return array($incompatible." ", "error"); + } + } + + public function insertWebp($htaccess){ + if(class_exists("WpFastestCachePowerfulHtml")){ + if(defined("WPFC_DISABLE_WEBP") && WPFC_DISABLE_WEBP){ + $webp = false; + }else{ + $webp = true; + + $cdn_values = get_option("WpFastestCacheCDN"); + + if($cdn_values){ + $std_obj = json_decode($cdn_values); + + foreach($std_obj as $key => $value){ + if($value->id == "cloudflare"){ + include_once('cdn.php'); + + CdnWPFC::cloudflare_clear_cache(); + $res = CdnWPFC::cloudflare_get_zone_id($value->cdnurl, $value->originurl); + + if($res["success"] && ($res["plan"] == "free")){ + $webp = false; + } + break; + } + } + } + } + }else{ + $webp = false; + } + + + if($webp){ + $basename = "$1.webp"; + + /* + This part for sub-directory installation + WordPress Address (URL): site_url() + Site Address (URL): home_url() + */ + if(preg_match("/https?\:\/\/[^\/]+\/(.+)/", site_url(), $siteurl_base_name)){ + if(preg_match("/https?\:\/\/[^\/]+\/(.+)/", home_url(), $homeurl_base_name)){ + /* + site_url() return http://example.com/sub-directory + home_url() returns http://example.com/sub-directory + */ + + $homeurl_base_name[1] = trim($homeurl_base_name[1], "/"); + $siteurl_base_name[1] = trim($siteurl_base_name[1], "/"); + + if($homeurl_base_name[1] == $siteurl_base_name[1]){ + if(preg_match("/".preg_quote($homeurl_base_name[1], "/")."$/", trim(ABSPATH, "/"))){ + $basename = $homeurl_base_name[1]."/".$basename; + } + }else{ + if(!preg_match("/\//", $homeurl_base_name[1]) && !preg_match("/\//", $siteurl_base_name[1])){ + /* + site_url() return http://example.com/wordpress + home_url() returns http://example.com/blog + */ + + $basename = $homeurl_base_name[1]."/".$basename; + $tmp_ABSPATH = str_replace(" ", "\ ", ABSPATH); + + if(preg_match("/\/$/", $tmp_ABSPATH)){ + $tmp_ABSPATH = rtrim($tmp_ABSPATH, "/"); + $tmp_ABSPATH = dirname($tmp_ABSPATH)."/".$homeurl_base_name[1]."/"; + } + } + } + }else{ + /* + site_url() return http://example.com/sub-directory + home_url() returns http://example.com/ + */ + $siteurl_base_name[1] = trim($siteurl_base_name[1], "/"); + $basename = $siteurl_base_name[1]."/".$basename; + } + } + + if(ABSPATH == "//"){ + $RewriteCond = "RewriteCond %{DOCUMENT_ROOT}/".$basename." -f"."\n"; + }else{ + // to escape spaces + if(!isset($tmp_ABSPATH)){ + $tmp_ABSPATH = str_replace(" ", "\ ", ABSPATH); + } + + $RewriteCond = "RewriteCond %{DOCUMENT_ROOT}/".$basename." -f [or]"."\n"; + $RewriteCond = $RewriteCond."RewriteCond ".$tmp_ABSPATH."$1.webp -f"."\n"; + } + + + $data = "# BEGIN WEBPWpFastestCache"."\n". + ""."\n". + "RewriteEngine On"."\n". + "RewriteCond %{HTTP_ACCEPT} image/webp"."\n". + "RewriteCond %{REQUEST_URI} \.(jpe?g|png)"."\n". + $RewriteCond. + "RewriteRule ^(.*) \"/".$basename."\" [L]"."\n". + ""."\n". + ""."\n". + "Header append Vary Accept env=REDIRECT_accept"."\n". + ""."\n". + "AddType image/webp .webp"."\n". + "# END WEBPWpFastestCache"."\n"; + + if(!preg_match("/BEGIN\s*WEBPWpFastestCache/", $htaccess)){ + $htaccess = $data.$htaccess; + } + + return $htaccess; + }else{ + $htaccess = preg_replace("/#\s?BEGIN\s?WEBPWpFastestCache.*?#\s?END\s?WEBPWpFastestCache/s", "", $htaccess); + return $htaccess; + } + } + + public function insertLBCRule($htaccess, $post){ + if(isset($post["wpFastestCacheLBC"]) && $post["wpFastestCacheLBC"] == "on"){ + + + $data = "# BEGIN LBCWpFastestCache"."\n". + ''."\n". + ''."\n". + 'AddType application/font-woff2 .woff2'."\n". + 'AddType application/x-font-opentype .otf'."\n". + 'ExpiresActive On'."\n". + 'ExpiresDefault A0'."\n". + 'ExpiresByType video/webm A10368000'."\n". + 'ExpiresByType video/ogg A10368000'."\n". + 'ExpiresByType video/mp4 A10368000'."\n". + 'ExpiresByType image/avif A10368000'."\n". + 'ExpiresByType image/webp A10368000'."\n". + 'ExpiresByType image/gif A10368000'."\n". + 'ExpiresByType image/png A10368000'."\n". + 'ExpiresByType image/jpg A10368000'."\n". + 'ExpiresByType image/jpeg A10368000'."\n". + 'ExpiresByType image/ico A10368000'."\n". + 'ExpiresByType image/svg+xml A10368000'."\n". + 'ExpiresByType text/css A10368000'."\n". + 'ExpiresByType text/javascript A10368000'."\n". + 'ExpiresByType application/javascript A10368000'."\n". + 'ExpiresByType application/x-javascript A10368000'."\n". + 'ExpiresByType application/font-woff2 A10368000'."\n". + 'ExpiresByType application/x-font-opentype A10368000'."\n". + 'ExpiresByType application/x-font-truetype A10368000'."\n". + ''."\n". + ''."\n". + 'Header set Expires "max-age=A10368000, public"'."\n". + 'Header unset ETag'."\n". + 'Header set Connection keep-alive'."\n". + 'FileETag None'."\n". + ''."\n". + ''."\n". + "# END LBCWpFastestCache"."\n"; + + if(!preg_match("/BEGIN\s*LBCWpFastestCache/", $htaccess)){ + return $data.$htaccess; + }else{ + return $htaccess; + } + }else{ + //delete levere browser caching + $htaccess = preg_replace("/#\s?BEGIN\s?LBCWpFastestCache.*?#\s?END\s?LBCWpFastestCache/s", "", $htaccess); + return $htaccess; + } + } + + public function insertGzipRule($htaccess, $post){ + if(isset($post["wpFastestCacheGzip"]) && $post["wpFastestCacheGzip"] == "on"){ + $data = "# BEGIN GzipWpFastestCache"."\n". + ""."\n". + "AddType x-font/woff .woff"."\n". + "AddType x-font/ttf .ttf"."\n". + "AddOutputFilterByType DEFLATE image/svg+xml"."\n". + "AddOutputFilterByType DEFLATE text/plain"."\n". + "AddOutputFilterByType DEFLATE text/html"."\n". + "AddOutputFilterByType DEFLATE text/xml"."\n". + "AddOutputFilterByType DEFLATE text/css"."\n". + "AddOutputFilterByType DEFLATE text/javascript"."\n". + "AddOutputFilterByType DEFLATE application/xml"."\n". + "AddOutputFilterByType DEFLATE application/xhtml+xml"."\n". + "AddOutputFilterByType DEFLATE application/rss+xml"."\n". + "AddOutputFilterByType DEFLATE application/javascript"."\n". + "AddOutputFilterByType DEFLATE application/x-javascript"."\n". + "AddOutputFilterByType DEFLATE application/x-font-ttf"."\n". + "AddOutputFilterByType DEFLATE x-font/ttf"."\n". + "AddOutputFilterByType DEFLATE application/vnd.ms-fontobject"."\n". + "AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf"."\n". + ""."\n"; + + if(defined("WPFC_GZIP_FOR_COMBINED_FILES") && WPFC_GZIP_FOR_COMBINED_FILES){ + $data = $data."\n".''."\n". + "# to zip the combined css and js files"."\n\n". + "RewriteEngine On"."\n". + "RewriteCond %{HTTP:Accept-encoding} gzip"."\n". + "RewriteCond %{REQUEST_FILENAME}\.gz -s"."\n". + "RewriteRule ^(.*)\.(css|js) $1\.$2\.gz [QSA]"."\n\n". + "# to revent double gzip and give the correct mime-type"."\n\n". + "RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=FORCE_GZIP]"."\n". + "RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=FORCE_GZIP]"."\n". + "Header set Content-Encoding gzip env=FORCE_GZIP"."\n". + ""."\n"; + } + + $data = $data."# END GzipWpFastestCache"."\n"; + + $htaccess = preg_replace("/\s*\#\s?BEGIN\s?GzipWpFastestCache.*?#\s?END\s?GzipWpFastestCache\s*/s", "", $htaccess); + return $data.$htaccess; + + }else{ + //delete gzip rules + $htaccess = preg_replace("/\s*\#\s?BEGIN\s?GzipWpFastestCache.*?#\s?END\s?GzipWpFastestCache\s*/s", "", $htaccess); + return $htaccess; + } + } + + public function insertRewriteRule($htaccess, $post){ + if(isset($post["wpFastestCacheStatus"]) && $post["wpFastestCacheStatus"] == "on"){ + $htaccess = preg_replace("/#\s?BEGIN\s?WpFastestCache.*?#\s?END\s?WpFastestCache/s", "", $htaccess); + $htaccess = $this->getHtaccess().$htaccess; + }else{ + $htaccess = preg_replace("/#\s?BEGIN\s?WpFastestCache.*?#\s?END\s?WpFastestCache/s", "", $htaccess); + $this->deleteCache(); + } + + if(defined("WPFC_SERVE_ONLY_VIA_CACHE") && WPFC_SERVE_ONLY_VIA_CACHE){ + $htaccess = preg_replace("/#\s?BEGIN\s?WpFastestCache.*?#\s?END\s?WpFastestCache/s", "", $htaccess); + } + + return $htaccess; + } + + public function prefixRedirect(){ + $forceTo = ""; + + if(defined("WPFC_DISABLE_REDIRECTION") && WPFC_DISABLE_REDIRECTION){ + return $forceTo; + } + + if(preg_match("/^https:\/\//", home_url())){ + if(preg_match("/^https:\/\/www\./", home_url())){ + $forceTo = "\nRewriteCond %{HTTPS} on"."\n". + "RewriteCond %{HTTP_HOST} ^www.".str_replace("www.", "", $_SERVER["HTTP_HOST"])."\n"; + }else{ + $forceTo = "\nRewriteCond %{HTTPS} on"."\n". + "RewriteCond %{HTTP_HOST} ^".str_replace("www.", "", $_SERVER["HTTP_HOST"])."\n"; + } + }else{ + if(preg_match("/^http:\/\/www\./", home_url())){ + $forceTo = "\nRewriteCond %{HTTP_HOST} ^".str_replace("www.", "", $_SERVER["HTTP_HOST"])."\n". + "RewriteRule ^(.*)$ ".preg_quote(home_url(), "/")."\/$1 [R=301,L]"."\n"; + }else{ + $forceTo = "\nRewriteCond %{HTTP_HOST} ^www.".str_replace("www.", "", $_SERVER["HTTP_HOST"])." [NC]"."\n". + "RewriteRule ^(.*)$ ".preg_quote(home_url(), "/")."\/$1 [R=301,L]"."\n"; + } + } + return $forceTo; + } + + public function getHtaccess(){ + $mobile = ""; + $loggedInUser = ""; + $ifIsNotSecure = ""; + $trailing_slash_rule = ""; + $consent_cookie = ""; + + $cache_path = '/cache/all/'; + + + if($this->isPluginActive('sitepress-multilingual-cms/sitepress.php')){ + $language_negotiation_type = apply_filters('wpml_setting', false, 'language_negotiation_type'); + + if($language_negotiation_type == 2){ + $cache_path = '/cache/%{HTTP_HOST}/all/'; + } + } + + if($this->isPluginActive('polylang/polylang.php') || $this->isPluginActive('polylang-pro/polylang.php')){ + $polylang_settings = get_option("polylang"); + + if(isset($polylang_settings["force_lang"])){ + if($polylang_settings["force_lang"] == 2 || $polylang_settings["force_lang"] == 3){ + // The language is set from the subdomain name in pretty permalinks + // The language is set from different domains + $cache_path = '/cache/%{HTTP_HOST}/all/'; + } + } + } + + + if(isset($_POST["wpFastestCacheMobile"]) && $_POST["wpFastestCacheMobile"] == "on"){ + $mobile = "RewriteCond %{HTTP_USER_AGENT} !^.*".$this->getMobileUserAgents().".*$ [NC]"."\n"; + + if(isset($_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'])){ + $mobile = $mobile."RewriteCond %{HTTP_CLOUDFRONT_IS_MOBILE_VIEWER} false [NC]"."\n"; + $mobile = $mobile."RewriteCond %{HTTP_CLOUDFRONT_IS_TABLET_VIEWER} false [NC]"."\n"; + } + } + + if(isset($_POST["wpFastestCacheLoggedInUser"]) && $_POST["wpFastestCacheLoggedInUser"] == "on"){ + $loggedInUser = "RewriteCond %{HTTP:Cookie} !wordpress_logged_in"."\n"; + } + + if(!preg_match("/^https/i", get_option("home"))){ + $ifIsNotSecure = "RewriteCond %{HTTPS} !=on"; + } + + if($this->is_trailing_slash()){ + $trailing_slash_rule = "RewriteCond %{REQUEST_URI} \/$"."\n"; + }else{ + $trailing_slash_rule = "RewriteCond %{REQUEST_URI} ![^\/]+\/$"."\n"; + } + + $query_string = "RewriteCond %{QUERY_STRING} !.+ [OR]"."\n". + "RewriteCond %{QUERY_STRING} fbclid="."\n"; + + $data = "# BEGIN WpFastestCache"."\n". + "# Modified Time: ".date("d-m-y G:i:s", current_time('timestamp'))."\n". + ""."\n". + "RewriteEngine On"."\n". + "RewriteBase /"."\n". + $this->ruleForWpContent()."\n". + $this->prefixRedirect(). + $this->excludeRules()."\n". + $this->excludeAdminCookie()."\n". + $this->http_condition_rule()."\n". + "RewriteCond %{HTTP_USER_AGENT} !(".$this->get_excluded_useragent().")"."\n". + "RewriteCond %{HTTP_USER_AGENT} !(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot)"."\n". + "RewriteCond %{REQUEST_METHOD} !POST"."\n". + $ifIsNotSecure."\n". + "RewriteCond %{REQUEST_URI} !(\/){2,}"."\n". + "RewriteCond %{THE_REQUEST} !(\/){2,}"."\n". + $trailing_slash_rule. + $query_string. + $loggedInUser. + $consent_cookie. + "RewriteCond %{HTTP:Cookie} !comment_author_"."\n". + //"RewriteCond %{HTTP:Cookie} !woocommerce_items_in_cart"."\n". + 'RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]'."\n".$mobile; + + + if(ABSPATH == "//"){ + $data = $data."RewriteCond %{DOCUMENT_ROOT}/".WPFC_WP_CONTENT_BASENAME.$cache_path."$1/index.html -f"."\n"; + }else{ + //WARNING: If you change the following lines, you need to update webp as well + $data = $data."RewriteCond %{DOCUMENT_ROOT}/".WPFC_WP_CONTENT_BASENAME.$cache_path."$1/index.html -f [or]"."\n"; + // to escape spaces + $tmp_WPFC_WP_CONTENT_DIR = str_replace(" ", "\ ", WPFC_WP_CONTENT_DIR); + + $data = $data."RewriteCond ".$tmp_WPFC_WP_CONTENT_DIR.$cache_path.$this->getRewriteBase(true)."$1/index.html -f"."\n"; + } + + $data = $data.'RewriteRule ^(.*) "/'.$this->getRewriteBase().WPFC_WP_CONTENT_BASENAME.$cache_path.$this->getRewriteBase(true).'$1/index.html" [L]'."\n"; + + //RewriteRule !/ "/wp-content/cache/all/index.html" [L] + + + if(class_exists("WpFcMobileCache") && isset($this->options->wpFastestCacheMobileTheme) && $this->options->wpFastestCacheMobileTheme){ + $wpfc_mobile = new WpFcMobileCache(); + + if($this->isPluginActive('wptouch/wptouch.php') || $this->isPluginActive('wptouch-pro/wptouch-pro.php')){ + $wpfc_mobile->set_wptouch(true); + }else{ + $wpfc_mobile->set_wptouch(false); + } + + $data = $data."\n\n\n".$wpfc_mobile->update_htaccess($data); + } + + $data = $data.""."\n". + ""."\n". + "AddDefaultCharset UTF-8"."\n". + ""."\n". + "FileETag None"."\n". + "Header unset ETag"."\n". + "Header set Cache-Control \"max-age=0, no-cache, no-store, must-revalidate\""."\n". + "Header set Pragma \"no-cache\""."\n". + "Header set Expires \"Mon, 29 Oct 1923 20:30:00 GMT\""."\n". + ""."\n". + ""."\n". + "# END WpFastestCache"."\n"; + + if(is_multisite()){ + return ""; + }else{ + return preg_replace("/\n+/","\n", $data); + } + } + + public function http_condition_rule(){ + $http_host = preg_replace("/(http(s?)\:)?\/\/(www\d*\.)?/i", "", trim(home_url(), "/")); + + if(preg_match("/\//", $http_host)){ + $http_host = strstr($http_host, '/', true); + } + + if(preg_match("/www\./", home_url())){ + $http_host = "www.".$http_host; + } + + return "RewriteCond %{HTTP_HOST} ^".$http_host; + } + + public function ruleForWpContent(){ + return ""; + $newContentPath = str_replace(home_url(), "", content_url()); + if(!preg_match("/wp-content/", $newContentPath)){ + $newContentPath = trim($newContentPath, "/"); + return "RewriteRule ^".$newContentPath."/cache/(.*) ".WPFC_WP_CONTENT_DIR."/cache/$1 [L]"."\n"; + } + return ""; + } + + public function getRewriteBase($sub = ""){ + if($sub && $this->is_subdirectory_install()){ + $trimedProtocol = preg_replace("/http:\/\/|https:\/\//", "", trim(home_url(), "/")); + $path = strstr($trimedProtocol, '/'); + + if($path){ + return trim($path, "/")."/"; + }else{ + return ""; + } + } + + $url = rtrim(site_url(), "/"); + preg_match("/https?:\/\/[^\/]+(.*)/", $url, $out); + + if(isset($out[1]) && $out[1]){ + $out[1] = trim($out[1], "/"); + + if(preg_match("/\/".preg_quote($out[1], "/")."\//", WPFC_WP_CONTENT_DIR)){ + return $out[1]."/"; + }else{ + return ""; + } + }else{ + return ""; + } + } + + + + public function checkSuperCache($path, $htaccess){ + if($this->isPluginActive('wp-super-cache/wp-cache.php')){ + return array("WP Super Cache needs to be deactive", "error"); + }else{ + if(file_exists($path."wp-content/wp-cache-config.php")){ + @unlink($path."wp-content/wp-cache-config.php"); + } + + $message = ""; + + if(is_file($path."wp-content/wp-cache-config.php")){ + $message .= "
- be sure that you removed /wp-content/wp-cache-config.php"; + } + + if(preg_match("/supercache/", $htaccess)){ + $message .= "
- be sure that you removed the rules of super cache from the .htaccess"; + } + + return $message ? array("WP Super Cache cannot remove its own remnants so please follow the steps below".$message, "error") : ""; + } + + return ""; + } + + public function check_htaccess(){ + $path = ABSPATH; + + if($this->is_subdirectory_install()){ + $path = $this->getABSPATH(); + } + + if(!is_writable($path.".htaccess") && count($_POST) > 0){ + include_once(WPFC_MAIN_PATH."templates/htaccess.html"); + + $htaccess = @file_get_contents($path.".htaccess"); + + if(isset($this->options->wpFastestCacheLBC)){ + $htaccess = $this->insertLBCRule($htaccess, array("wpFastestCacheLBC" => "on")); + } + if(isset($this->options->wpFastestCacheGzip)){ + $htaccess = $this->insertGzipRule($htaccess, array("wpFastestCacheGzip" => "on")); + } + if(isset($this->options->wpFastestCacheStatus)){ + $htaccess = $this->insertRewriteRule($htaccess, array("wpFastestCacheStatus" => "on")); + } + + $htaccess = preg_replace("/\n+/","\n", $htaccess); + + echo ""; + echo ""; + ?> + + options->wpFastestCacheCombineCss) ? 'checked="checked"' : ""; + $wpFastestCacheGoogleFonts = isset($this->options->wpFastestCacheGoogleFonts) ? 'checked="checked"' : ""; + $wpFastestCacheGzip = isset($this->options->wpFastestCacheGzip) ? 'checked="checked"' : ""; + $wpFastestCacheCombineJs = isset($this->options->wpFastestCacheCombineJs) ? 'checked="checked"' : ""; + $wpFastestCacheCombineJsPowerFul = isset($this->options->wpFastestCacheCombineJsPowerFul) ? 'checked="checked"' : ""; + $wpFastestCacheDisableEmojis = isset($this->options->wpFastestCacheDisableEmojis) ? 'checked="checked"' : ""; + + $wpFastestCacheRenderBlocking = isset($this->options->wpFastestCacheRenderBlocking) ? 'checked="checked"' : ""; + + $wpFastestCacheRenderBlockingCss = isset($this->options->wpFastestCacheRenderBlockingCss) ? 'checked="checked"' : ""; + + $wpFastestCacheDelayJS = isset($this->options->wpFastestCacheDelayJS) ? 'checked="checked"' : ""; + + $wpFastestCacheLanguage = isset($this->options->wpFastestCacheLanguage) ? $this->options->wpFastestCacheLanguage : "eng"; + + + $wpFastestCacheLazyLoad = isset($this->options->wpFastestCacheLazyLoad) ? 'checked="checked"' : ""; + $wpFastestCacheLazyLoad_keywords = isset($this->options->wpFastestCacheLazyLoad_keywords) ? $this->options->wpFastestCacheLazyLoad_keywords : ""; + $wpFastestCacheLazyLoad_placeholder = isset($this->options->wpFastestCacheLazyLoad_placeholder) ? $this->options->wpFastestCacheLazyLoad_placeholder : "default"; + $wpFastestCacheLazyLoad_exclude_full_size_img = isset($this->options->wpFastestCacheLazyLoad_exclude_full_size_img) ? 'checked="checked"' : ""; + + + $wpFastestCacheLBC = isset($this->options->wpFastestCacheLBC) ? 'checked="checked"' : ""; + $wpFastestCacheLoggedInUser = isset($this->options->wpFastestCacheLoggedInUser) ? 'checked="checked"' : ""; + $wpFastestCacheMinifyCss = isset($this->options->wpFastestCacheMinifyCss) ? 'checked="checked"' : ""; + + $wpFastestCacheMinifyCssPowerFul = isset($this->options->wpFastestCacheMinifyCssPowerFul) ? 'checked="checked"' : ""; + + + $wpFastestCacheMinifyHtml = isset($this->options->wpFastestCacheMinifyHtml) ? 'checked="checked"' : ""; + $wpFastestCacheMinifyHtmlPowerFul = isset($this->options->wpFastestCacheMinifyHtmlPowerFul) ? 'checked="checked"' : ""; + + $wpFastestCacheMinifyJs = isset($this->options->wpFastestCacheMinifyJs) ? 'checked="checked"' : ""; + + $wpFastestCacheMobile = isset($this->options->wpFastestCacheMobile) ? 'checked="checked"' : ""; + $wpFastestCacheMobileTheme = isset($this->options->wpFastestCacheMobileTheme) ? 'checked="checked"' : ""; + $wpFastestCacheMobileTheme_themename = isset($this->options->wpFastestCacheMobileTheme_themename) ? $this->options->wpFastestCacheMobileTheme_themename : ""; + + $wpFastestCacheNewPost = isset($this->options->wpFastestCacheNewPost) ? 'checked="checked"' : ""; + + $wpFastestCacheRemoveComments = isset($this->options->wpFastestCacheRemoveComments) ? 'checked="checked"' : ""; + + + $wpFastestCachePreload = isset($this->options->wpFastestCachePreload) ? 'checked="checked"' : ""; + $wpFastestCachePreload_homepage = isset($this->options->wpFastestCachePreload_homepage) ? 'checked="checked"' : ""; + $wpFastestCachePreload_post = isset($this->options->wpFastestCachePreload_post) ? 'checked="checked"' : ""; + $wpFastestCachePreload_category = isset($this->options->wpFastestCachePreload_category) ? 'checked="checked"' : ""; + $wpFastestCachePreload_customposttypes = isset($this->options->wpFastestCachePreload_customposttypes) ? 'checked="checked"' : ""; + $wpFastestCachePreload_customTaxonomies = isset($this->options->wpFastestCachePreload_customTaxonomies) ? 'checked="checked"' : ""; + $wpFastestCachePreload_page = isset($this->options->wpFastestCachePreload_page) ? 'checked="checked"' : ""; + $wpFastestCachePreload_tag = isset($this->options->wpFastestCachePreload_tag) ? 'checked="checked"' : ""; + $wpFastestCachePreload_attachment = isset($this->options->wpFastestCachePreload_attachment) ? 'checked="checked"' : ""; + $wpFastestCachePreload_number = isset($this->options->wpFastestCachePreload_number) ? esc_attr($this->options->wpFastestCachePreload_number) : 4; + $wpFastestCachePreload_restart = isset($this->options->wpFastestCachePreload_restart) ? 'checked="checked"' : ""; + $wpFastestCachePreload_order = isset($this->options->wpFastestCachePreload_order) ? esc_attr($this->options->wpFastestCachePreload_order) : ""; + $wpFastestCachePreload_sitemap = isset($this->options->wpFastestCachePreload_sitemap) ? esc_attr($this->options->wpFastestCachePreload_sitemap) : ""; + + + + + $wpFastestCacheStatus = isset($this->options->wpFastestCacheStatus) ? 'checked="checked"' : ""; + $wpFastestCacheTimeOut = isset($this->cronJobSettings["period"]) ? $this->cronJobSettings["period"] : ""; + + $wpFastestCacheUpdatePost = isset($this->options->wpFastestCacheUpdatePost) ? 'checked="checked"' : ""; + $wpFastestCacheWidgetCache = isset($this->options->wpFastestCacheWidgetCache) ? 'checked="checked"' : ""; + ?> + +
+ +

+ + + +
+ "wpfc-options","title" => __("Settings", "wp-fastest-cache" ))); + array_push($tabs, array("id"=>"wpfc-deleteCache","title" => __("Clear Cache", "wp-fastest-cache" ))); + array_push($tabs, array("id"=>"wpfc-imageOptimisation","title" => __("Image Optimization", "wp-fastest-cache" ))); + + if(!class_exists("WpFastestCachePowerfulHtml")){ + array_push($tabs, array("id"=>"wpfc-premium","title"=>"Premium")); + } + + array_push($tabs, array("id"=>"wpfc-exclude","title"=>__("Exclude", "wp-fastest-cache" ))); + array_push($tabs, array("id"=>"wpfc-cdn","title"=>"CDN")); + array_push($tabs, array("id"=>"wpfc-db","title"=>"DB")); + + foreach ($tabs as $key => $value){ + $checked = ""; + + //tab of "delete css and js" has been removed so there is need to check it + if(isset($_POST["wpFastestCachePage"]) && $_POST["wpFastestCachePage"] && $_POST["wpFastestCachePage"] == "deleteCssAndJsCache"){ + $_POST["wpFastestCachePage"] = "deleteCache"; + } + + if(!isset($_POST["wpFastestCachePage"]) && $value["id"] == "wpfc-options"){ + $checked = ' checked="checked" '; + }else if((isset($_POST["wpFastestCachePage"])) && ("wpfc-".$_POST["wpFastestCachePage"] == $value["id"])){ + $checked = ' checked="checked" '; + } + echo ''."\n"; + echo ''."\n"; + } + ?> +
+
+
+ + + +
+
+
id="wpFastestCacheStatus" name="wpFastestCacheStatus">
+
+ + + + + + +
+
+
id="wpFastestCacheWidgetCache" name="wpFastestCacheWidgetCache">
+ +
+ +
+
+
id="wpFastestCacheWidgetCache">
+ +
+ + +
+
+
id="wpFastestCacheWidgetCache">
+ +
+ + +
+
+
id="wpFastestCacheWidgetCache">
+ +
+ + + + +
+
+
id="wpFastestCachePreload" name="wpFastestCachePreload">
+ + +
" >" />
+ +
" > + +
+ + + +
+ + + + + +
+
+
id="wpFastestCacheLoggedInUser" name="wpFastestCacheLoggedInUser">
+
+ +
+
+
id="wpFastestCacheMobile" name="wpFastestCacheMobile">
+
+ + +
+
+
id="wpFastestCacheMobileTheme" name="wpFastestCacheMobileTheme">
+ +
+ + + + +
+
+
+ +
+ + +
+
+
id="wpFastestCacheNewPost" name="wpFastestCacheNewPost">
+
+ + + +
+
+
id="wpFastestCacheUpdatePost" name="wpFastestCacheUpdatePost">
+ +
+ + + + +
+
+
id="wpFastestCacheMinifyHtml" name="wpFastestCacheMinifyHtml">
+ +
+ + +
+
+
id="wpFastestCacheMinifyHtmlPowerFul" name="wpFastestCacheMinifyHtmlPowerFul">
+
+ +
+
+
+
+ + + + +
+
+
id="wpFastestCacheMinifyCss" name="wpFastestCacheMinifyCss">
+ +
+ + + + +
+
+
id="wpFastestCacheMinifyCssPowerFul" name="wpFastestCacheMinifyCssPowerFul">
+
+ +
+
+
+
+ + + +
+
+
id="wpFastestCacheCombineCss" name="wpFastestCacheCombineCss">
+ +
+ + + +
+
+
id="wpFastestCacheMinifyJs" name="wpFastestCacheMinifyJs">
+
+ +
+
+
+
+ + +
+
+
+
+ + +
+
+
id="wpFastestCacheCombineJs" name="wpFastestCacheCombineJs"> (header)
+ +
+ + + +
+
id="wpFastestCacheCombineJsPowerFul" name="wpFastestCacheCombineJsPowerFul"> + (footer) +
+
+ +
+
+
(footer)
+
+ + +
+
+
(footer)
+
+ + +
+
+
id="wpFastestCacheGzip" name="wpFastestCacheGzip">
+ +
+ + + +
+
+
id="wpFastestCacheLBC" name="wpFastestCacheLBC">
+ +
+ +
+
+
id="wpFastestCacheDisableEmojis" name="wpFastestCacheDisableEmojis">
+ +
+ + + + +
+
+
id="wpFastestCacheRenderBlocking" name="wpFastestCacheRenderBlocking">
+ +
+ +
+
+
+ +
+ + +
+
+
+ +
+ + + + + + + + +
+
+
id="wpFastestCacheGoogleFonts" name="wpFastestCacheGoogleFonts">
+ +
+ +
+
+
+ +
+ + +
+
+
+ +
+ + + + + + +
+
Lazy Load
+
+ + + id="wpFastestCacheLazyLoad_exclude_full_size_img" name="wpFastestCacheLazyLoad_exclude_full_size_img"> + + id="wpFastestCacheLazyLoad" name="wpFastestCacheLazyLoad"> +
+ + +
" >" />
+ +
" > + +
+ +
+ + + + + +
+
Lazy Load
+
+ +
+ + + + + + +
+
+
id="wpFastestCacheDelayJS" name="wpFastestCacheDelayJS">
+ +
+ + +
+
+
+ +
+ + + + +
+
Language
+
+ +
+
+
+
+
+
+
+
+ + + statics(); + }else{ + ?> +
+
+ +
+
+
+ Show Logs + +
+

+
+ +
+ +

12.3Kb / 1 Items

+
+
+ +

12.4Kb / 1 Items

+
+
+ +

278.2Kb / 9 Items

+
+
+ +

338.4Kb / 16 Items

+
+
+ + +
+ +

+ + + +
+ + +
+
" class="button-primary">
+
+
+
+
+ getWpContentDir("/cache/all"); ?> +
+
+
+
+ + +
+
" class="button-primary">
+
+
+
+
+
+ getWpContentDir("/cache/all"); ?>
+ getWpContentDir("/cache/wpfc-minified"); ?> +
+
+
+ printLogs(); + } + ?> + +
+ + +

+ + + + + + + +
+ + +
+ +
+ +
+ + + +
+ +
+
+ + + + +
+ +

+ +
+ +
+ +
+ +
+ + + + + + +
+ +

Reverse Proxy Cache

+ +
+
+ "> +
+
Varnish Cache
+

Varnish Cache is a web application accelerator also known as a caching HTTP reverse proxy.

+
+
+
+
+ + + + + + + + + + + +
+ + + + + + + + + +
+

+ + + statics(); ?> + imageList(); ?> +
+ +
+ +
+ +
+ +
+ +
    +
  • Bronze
    $ 49 .99 /lifetime
    1 License Number of Licenses
    5,000 Image Credits per License
    Support and Updates
    " width="40" height="40" /> One-Time Fee
    " width="40" height="40" /> 1 year license transfer right
    " width="40" height="40" /> 30 Day Money Back Guarantee
  • +
  • Silver
    $ 125 .00 /lifetime
    3 Licenses Number of Licenses
    5,000 Image Credits per License
    Support and Updates
    " width="40" height="40" /> One-Time Fee
    " width="40" height="40" /> 1 year license transfer right
    " width="40" height="40" /> 30 Day Money Back Guarantee
  • +
  • Gold
    $ 175 .00 /lifetime
    5 Licenses Number of Licenses
    5,000 Image Credits per License
    Support and Updates
    " width="40" height="40" /> One-Time Fee
    " width="40" height="40" /> 1 year license transfer right
    " width="40" height="40" /> 30 Day Money Back Guarantee
  • +
  • Platinum
    $ 300 .00 /lifetime
    10 Licenses Number of Licenses
    5,000 Image Credits per License
    Support and Updates
    " width="40" height="40" /> One-Time Fee
    " width="40" height="40" /> 1 year license transfer right
    " width="40" height="40" /> 30 Day Money Back Guarantee
  • +
+
+ +
+
+ + + + + + +

+ +
+ +
+ +
+ +
+ +
+
+
+ + +

+ +
+ +
+ +
+ +
+ + +
+
+
+ + + +

+ +
+ +
+ + + + +
+
+
+ + +

+ +
+ +
+ +
+ +
+ + + +
+
+
+ + + +

+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+

+
+
+ +
+ " /> +
+
CDN by Bunny
+

Speed up content with next-generation CDN

+
+
+
+ + +
+ " /> +
+
Other CDN Providers
+

You can use any cdn provider.

+
+
+
+ + +
+ " /> +
+
CDN by Cloudflare
+

CDN, DNS, DDoS protection and security

+
+
+
+ +
+
+ +
+ +
+

+ + + +
+ + isPluginActive("wp-fastest-cache-premium/wpFastestCachePremium.php")){ ?> + + +
+
+ +
+
+ + +
+ + + "all_warnings", + "class" => "int-item-left", + "icon" => "flaticon-technology", + "title" => "ALL", + "desc" => "Clean all of them" + ], + [ + "name" => "post_revisions", + "class" => "int-item-right", + "icon" => "flaticon-draft", + "title" => "Post Revisions", + "desc" => "Clean all post revisions" + ], + [ + "name" => "trashed_contents", + "class" => "int-item-left", + "icon" => "flaticon-recycling", + "title" => "Trashed Contents", + "desc" => "Clean all trashed posts & pages" + ], + [ + "name" => "trashed_spam_comments", + "class" => "int-item-right", + "icon" => "flaticon-interface", + "title" => "Trashed & Spam Comments", + "desc" => "Clean all comments from trash & spam" + ], + [ + "name" => "trackback_pingback", + "class" => "int-item-left", + "icon" => "flaticon-pingback", + "title" => "Trackbacks and Pingbacks", + "desc" => "Clean all trackbacks and pingbacks" + ], + [ + "name" => "transient_options", + "class" => "int-item-right", + "icon" => "flaticon-file", + "title" => "Transient Options", + "desc" => "Clean all transient options" + ], + [ + "name" => "orphaned_post_meta", + "class" => "int-item-left", + "icon" => "flaticon-xxx", + "title" => "Orphaned Post Meta", + "desc" => "Clean all orphaned post meta" + ], + [ + "name" => "orphaned_comment_meta", + "class" => "int-item-right", + "icon" => "flaticon-xxx", + "title" => "Orphaned Comment Meta", + "desc" => "Clean all orphaned comment meta" + ], + [ + "name" => "orphaned_user_meta", + "class" => "int-item-left", + "icon" => "flaticon-user", + "title" => "Orphaned User Meta", + "desc" => "Clean all orphaned user meta" + ], + [ + "name" => "orphaned_term_meta", + "class" => "int-item-right", + "icon" => "flaticon-tag", + "title" => "Orphaned Term Meta", + "desc" => "Clean all orphaned term meta" + ], + [ + "name" => "orphaned_term_relationships", + "class" => "int-item-left", + "icon" => "flaticon-connection", + "title" => "Orphaned Term Relationships", + "desc" => "Clean all orphaned term relationships" + ] + ]; + + + foreach ($items as $item) { + echo '
+
+ +
+
+
'.$item['title'].' (0)
+

'.$item['desc'].'

+
+
+
'; + } + ?> + + +
+
+
+ + + + + options->wpFastestCacheStatus)){ + if(isset($_SERVER["HTTP_CDN_LOOP"]) && $_SERVER["HTTP_CDN_LOOP"] && $_SERVER["HTTP_CDN_LOOP"] == "cloudflare"){ + $cloudflare_integration_exist = false; + $cdn_values = get_option("WpFastestCacheCDN"); + + if($cdn_values){ + $std_obj = json_decode($cdn_values); + + foreach($std_obj as $key => $value){ + if($value->id == "cloudflare"){ + $cloudflare_integration_exist = true; + break; + } + } + } + + if(!$cloudflare_integration_exist){ + include_once(WPFC_MAIN_PATH."templates/cloudflare_warning.html"); + } + } + } + ?> +
+ +
+ +
+
+
+
+ " data-pin-no-hover="true" style="margin-top: 3px; margin-bottom: 11px;"/> + +
Our support is here 24/7 for you.
+
+ + Send Us an Email + + + Create Topic + +
+
+
+ + +
+
+
+
+ " data-pin-no-hover="true" style="margin-top: 3px; margin-bottom: 11px;"/> + +
Please support us by giving a review.
+
+ + Add Your Review +
+
+
+ + + + + + + +
+
+ + + + + + " alt="İngilizce Kelime Öğren!" data-pin-no-hover="true"> + + + + " alt="Englische Wörter Lernen" data-pin-no-hover="true"> + + +
+
+ " data-pin-no-hover="true" /> + +
Make today the day you say goodbye to slowness.
+
+ " alt="Make today the day you say goodbye to slowness." data-pin-no-hover="true"> + Sign Up Now! +
+ + + + + + + +
+
+ + + + +
+ + + + + + + + + + + + + check_htaccess(); + } + } + } + } +?> \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/inc/cache.php b/wp-content/plugins/wp-fastest-cache/inc/cache.php new file mode 100644 index 00000000..44a99b64 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/inc/cache.php @@ -0,0 +1,1445 @@ +preload_user_agent = true; + }else{ + $this->preload_user_agent = false; + } + + + $this->options = $this->getOptions(); + + $this->set_cdn(); + + $this->set_cache_file_path(); + + $this->set_exclude_rules(); + + if(isset($this->options->wpFastestCacheDisableEmojis) && $this->options->wpFastestCacheDisableEmojis){ + add_action('init', array($this, 'disable_emojis')); + } + } + + public function disable_emojis(){ + remove_action('wp_head', 'print_emoji_detection_script', 7); + remove_action('admin_print_scripts', 'print_emoji_detection_script'); + remove_filter('the_content_feed', 'wp_staticize_emoji'); + remove_filter('comment_text_rss', 'wp_staticize_emoji'); + remove_action('wp_print_styles', 'print_emoji_styles'); + remove_action('admin_print_styles', 'print_emoji_styles'); + remove_filter('wp_mail', 'wp_staticize_emoji_for_email'); + // remove the DNS prefetch + add_filter('emoji_svg_url', '__return_false'); + } + + public function detect_current_page_type(){ + if(preg_match("/\?/", $_SERVER["REQUEST_URI"])){ + return true; + } + + if(preg_match("/^\/wp-json/", $_SERVER["REQUEST_URI"])){ + return true; + } + + if(is_front_page()){ + echo ""; + }else if(is_category()){ + echo ""; + }else if(is_tag()){ + echo ""; + }else if(is_singular('post')){ + echo ""; + }else if(is_page()){ + echo ""; + }else if(is_attachment()){ + echo ""; + }else if(is_archive()){ + echo ""; + } + } + + public function set_exclude_rules(){ + if($json_data = get_option("WpFastestCacheExclude")){ + $this->exclude_rules = json_decode($json_data); + } + } + + public function set_cache_file_path(){ + $type = "all"; + + if($this->isMobile() && isset($this->options->wpFastestCacheMobile)){ + if(class_exists("WpFcMobileCache") && isset($this->options->wpFastestCacheMobileTheme)){ + $type = "wpfc-mobile-cache"; + } + } + + if($this->isPluginActive('gtranslate/gtranslate.php')){ + if(isset($_SERVER["HTTP_X_GT_LANG"])){ + $this->cacheFilePath = $this->getWpContentDir("/cache/".$type."/").$_SERVER["HTTP_X_GT_LANG"].$_SERVER["REQUEST_URI"]; + }else if(isset($_SERVER["REDIRECT_URL"]) && $_SERVER["REDIRECT_URL"] != "/index.php"){ + $redirect_url = $_SERVER["REDIRECT_URL"]; + + if(isset($_SERVER["REDIRECT_QUERY_STRING"]) && defined('WPFC_CACHE_QUERYSTRING') && WPFC_CACHE_QUERYSTRING){ + $redirect_url .= "?".$_SERVER["REDIRECT_QUERY_STRING"]; + } + + $this->cacheFilePath = $this->getWpContentDir("/cache/" . $type . "/") . $redirect_url; + }else if(isset($_SERVER["REQUEST_URI"])){ + $this->cacheFilePath = $this->getWpContentDir("/cache/".$type."/").$_SERVER["REQUEST_URI"]; + } + }else{ + $this->cacheFilePath = $this->getWpContentDir("/cache/".$type."/").$_SERVER["REQUEST_URI"]; + + // for /?s= + $this->cacheFilePath = preg_replace("/(\/\?s\=)/", "$1/", $this->cacheFilePath); + } + + + $this->cacheFilePath = $this->cacheFilePath ? rtrim($this->cacheFilePath, "/")."/" : ""; + + /* + /public_html/wp-content/cache/all/sample-page + */ + $this->cacheFilePath = preg_replace("/\/cache\/(all|wpfc-mobile-cache)\/\//", "/cache/$1/", $this->cacheFilePath); + + /* + /public_html/wp-content/cache/all/DOMAIN.COM/sample-page + */ + $this->cacheFilePath = preg_replace("/\/cache\/([^\/]+)\/(all|wpfc-mobile-cache)\/\//", "/cache/$1/$2/", $this->cacheFilePath); + + + if(strlen($_SERVER["REQUEST_URI"]) > 1){ // for the sub-pages + if(!preg_match("/\.(html|xml)/i", $_SERVER["REQUEST_URI"])){ + if($this->is_trailing_slash()){ + if(!preg_match("/\/$/", $_SERVER["REQUEST_URI"])){ + if(isset($_SERVER["QUERY_STRING"]) && $_SERVER["QUERY_STRING"] && defined('WPFC_CACHE_QUERYSTRING') && WPFC_CACHE_QUERYSTRING){ + + }else if(preg_match("/y(ad|s)?clid\=/i", $this->cacheFilePath)){ + // yclid + // yadclid + // ysclid + }else if(preg_match("/gclid\=/i", $this->cacheFilePath)){ + + }else if(preg_match("/fbclid\=/i", $this->cacheFilePath)){ + + }else if(preg_match("/utm_(source|medium|campaign|content|term)/i", $this->cacheFilePath)){ + + }else if(preg_match("/srsltid\=/i", $this->cacheFilePath)){ + + }else{ + $this->cacheFilePath = false; + } + } + }else{ + //toDo + } + } + } + + $this->remove_url_paramters(); + + $this->cacheFilePath = trim($this->cacheFilePath); + + // to decode path if it is not utf-8 + if($this->cacheFilePath){ + $this->cacheFilePath = urldecode($this->cacheFilePath); + } + + // for security + if(preg_match("/\.{2,}/", $this->cacheFilePath)){ + $this->cacheFilePath = false; + } + + if(preg_match("/\/{2,}/", $this->cacheFilePath)){ + $this->cacheFilePath = false; + } + + if($this->cacheFilePath == "/"){ + $this->cacheFilePath = false; + } + + if($this->isMobile()){ + if(isset($this->options->wpFastestCacheMobile)){ + if(!class_exists("WpFcMobileCache")){ + $this->cacheFilePath = false; + }else{ + if(!isset($this->options->wpFastestCacheMobileTheme)){ + $this->cacheFilePath = false; + } + } + } + } + } + + public function remove_url_paramters(){ + if(isset($_SERVER["QUERY_STRING"]) && $_SERVER["QUERY_STRING"]){ + + $query_params = explode("&", $_SERVER["QUERY_STRING"]); + + $action = true; + + foreach ($query_params as $key => $query_param) { + + // Google Ads Click & Conversion Parameters + if(preg_match("/^(gclid|gbraid|wbraid|gclsrc)\=/i", $query_param)){ + continue; + } + + // Google Analytics / GA4 Parameters + if(preg_match("/^(_ga|_gid|_gl|_gac)\=/i", $query_param)){ + continue; + } + + // Google UTM Campaign Parameters + if(preg_match("/^utm_(source|medium|campaign|content|term)/i", $query_param)){ + continue; + } + + // Google Merchant Center + if(preg_match("/^srsltid\=/i", $query_param)){ + continue; + } + + //to remove query strings for cache if Yandex parameters are set + if(preg_match("/^y(ad|s)?clid\=/i", $query_param)){ + // yclid + // yadclid + // ysclid + + continue; + } + + //to remove query strings for cache if facebook parameters are set + if(preg_match("/^fbclid\=/i", $query_param)){ + continue; + } + + $action = false; + + } + + if($action){ + if(strlen($_SERVER["REQUEST_URI"]) > 1){ // for the sub-pages + + $this->cacheFilePath = preg_replace("/\/*\?.+/", "", $this->cacheFilePath); + $this->cacheFilePath = $this->cacheFilePath."/"; + + if(!defined('WPFC_CACHE_QUERYSTRING')){ + define('WPFC_CACHE_QUERYSTRING', true); + } + } + } + } + + } + + public function set_cdn(){ + $cdn_values = get_option("WpFastestCacheCDN"); + if($cdn_values){ + $std_obj = json_decode($cdn_values); + $arr = array(); + + if(is_array($std_obj)){ + $arr = $std_obj; + }else{ + array_push($arr, $std_obj); + } + + foreach ($arr as $key => &$std) { + $std->originurl = trim($std->originurl); + $std->originurl = trim($std->originurl, "/"); + $std->originurl = preg_replace("/http(s?)\:\/\/(www\.)?/i", "", $std->originurl); + + $std->cdnurl = trim($std->cdnurl); + $std->cdnurl = trim($std->cdnurl, "/"); + + if(!preg_match("/https\:\/\//", $std->cdnurl)){ + $std->cdnurl = "//".preg_replace("/http(s?)\:\/\/(www\.)?/i", "", $std->cdnurl); + } + } + + $this->cdn = $arr; + } + } + + public function checkShortCode($content){ + if(preg_match("/\[wpfcNOT\]/", $content)){ + if(!is_home() || !is_archive()){ + $this->blockCache = true; + } + $content = str_replace("[wpfcNOT]", "", $content); + } + return $content; + } + + public function createCache(){ + if(isset($this->options->wpFastestCacheStatus)){ + + // to exclude static pdf files + if(preg_match("/\.pdf$/i", $_SERVER["REQUEST_URI"])){ + return 0; + } + + // to check logged-in user + if(isset($this->options->wpFastestCacheLoggedInUser) && $this->options->wpFastestCacheLoggedInUser == "on"){ + foreach ((array)$_COOKIE as $cookie_key => $cookie_value){ + if(preg_match("/wordpress_logged_in/i", $cookie_key)){ + ob_start(array($this, "cdn_rewrite")); + + return 0; + } + } + } + + // to exclude admin users + if($this->is_user_admin()){ + return 0; + } + + // to check comment author + foreach ((array)$_COOKIE as $cookie_key => $cookie_value){ + if(preg_match("/comment_author_/i", $cookie_key)){ + ob_start(array($this, "cdn_rewrite")); + + return 0; + } + } + + if(isset($_COOKIE) && isset($_COOKIE['safirmobilswitcher'])){ + ob_start(array($this, "cdn_rewrite")); + + return 0; + } + + if(isset($_COOKIE) && isset($_COOKIE["wptouch-pro-view"])){ + if($this->is_wptouch_smartphone()){ + if($_COOKIE["wptouch-pro-view"] == "desktop"){ + ob_start(array($this, "cdn_rewrite")); + + return 0; + } + } + } + + if(preg_match("/\?/", $_SERVER["REQUEST_URI"]) && !preg_match("/\/\?fdx\_switcher\=true/", $_SERVER["REQUEST_URI"])){ // for WP Mobile Edition + if(preg_match("/\?amp(\=1)?/i", $_SERVER["REQUEST_URI"])){ + // + }else if(defined('WPFC_CACHE_QUERYSTRING') && WPFC_CACHE_QUERYSTRING){ + // + }else if(isset($_GET["wc-api"]) && $_GET["wc-api"]){ + // + }else{ + ob_start(array($this, "cdn_rewrite")); + + return 0; + } + } + + if(preg_match("/(".$this->get_excluded_useragent().")/", $_SERVER['HTTP_USER_AGENT'])){ + return 0; + } + + if(isset($_SERVER['REQUEST_URI']) && preg_match("/(\/){2}$/", $_SERVER['REQUEST_URI'])){ + return 0; + } + + // to check permalink if it does not end with slash + if(isset($_SERVER['REQUEST_URI']) && preg_match("/[^\/]+\/$/", $_SERVER['REQUEST_URI'])){ + if(!preg_match("/\/$/", get_option('permalink_structure'))){ + return 0; + } + } + + if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == "POST"){ + return 0; + } + + if(preg_match("/^https/i", get_option("home")) && !is_ssl()){ + //Must be secure connection + return 0; + } + + if(!preg_match("/^https/i", get_option("home")) && is_ssl()){ + //must be normal connection + if(!$this->isPluginActive('really-simple-ssl/rlrsssl-really-simple-ssl.php')){ + if(!$this->isPluginActive('really-simple-ssl-pro/really-simple-ssl-pro.php')){ + if(!$this->isPluginActive('really-simple-ssl-on-specific-pages/really-simple-ssl-on-specific-pages.php')){ + if(!$this->isPluginActive('ssl-insecure-content-fixer/ssl-insecure-content-fixer.php')){ + if(!$this->isPluginActive('https-redirection/https-redirection.php')){ + if(!$this->isPluginActive('better-wp-security/better-wp-security.php')){ + return 0; + } + } + } + } + } + } + } + + if(isset($_SERVER["DOCUMENT_ROOT"]) && preg_match("/bitnami/", $_SERVER["DOCUMENT_ROOT"])){ + // to disable cache for the IP based urls on the bitnami servers + // /opt/bitnami/apps/wordpress/htdocs + if(preg_match("/(?:[0-9]{1,3}\.){3}[0-9]{1,3}/", get_option("home"))){ + return 0; + } + } + + if(preg_match("/www\./i", get_option("home")) && !preg_match("/www\./i", $_SERVER['HTTP_HOST'])){ + return 0; + } + + if(!preg_match("/www\./i", get_option("home")) && preg_match("/www\./i", $_SERVER['HTTP_HOST'])){ + return 0; + } + + if($this->exclude_page()){ + ob_start(array($this, "cdn_rewrite")); + + //echo ""."\n"; + return 0; + } + + // http://mobiledetect.net/ does not contain the following user-agents + if(preg_match("/Nokia309|Casper_VIA/i", $_SERVER['HTTP_USER_AGENT'])){ + return 0; + } + + if(preg_match("/Empty\sUser\sAgent/i", $_SERVER['HTTP_USER_AGENT'])){ // not to show the cache for command line + return 0; + } + + + //to show cache version via php if htaccess rewrite rule does not work + if(!$this->preload_user_agent && $this->cacheFilePath && (@file_exists($this->cacheFilePath."index.html") || @file_exists($this->cacheFilePath."index.json") || @file_exists($this->cacheFilePath."index.xml"))){ + + $via_php = ""; + if(@file_exists($this->cacheFilePath."index.json")){ + $file_extension = "json"; + + header('Content-type: application/json'); + }else if(@file_exists($this->cacheFilePath."index.xml")){ + $file_extension = "xml"; + + header('Content-type: text/xml'); + }else{ + $file_extension = "html"; + $via_php = ""; + } + + if($content = @file_get_contents($this->cacheFilePath."index.".$file_extension)){ + + if($file_extension == "html"){ + header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($this->cacheFilePath."index.".$file_extension)).' GMT', true, 200); + } + + + if(defined('WPFC_REMOVE_VIA_FOOTER_COMMENT') && WPFC_REMOVE_VIA_FOOTER_COMMENT){ + $via_php = ""; + } + + $content = $content.$via_php; + + die($content); + } + }else{ + if($this->isMobile()){ + if(class_exists("WpFcMobileCache") && isset($this->options->wpFastestCacheMobileTheme)){ + if(isset($this->options->wpFastestCacheMobileTheme_themename) && $this->options->wpFastestCacheMobileTheme_themename){ + $create_cache = true; + }else if($this->isPluginActive('wptouch/wptouch.php') || $this->isPluginActive('wptouch-pro/wptouch-pro.php')){ + //to check that user-agent exists in wp-touch's list or not + if($this->is_wptouch_smartphone()){ + $create_cache = true; + }else{ + $create_cache = false; + } + }else{ + if((preg_match('/iPhone/', $_SERVER['HTTP_USER_AGENT']) && preg_match('/Mobile/', $_SERVER['HTTP_USER_AGENT'])) || (preg_match('/Android/', $_SERVER['HTTP_USER_AGENT']) && preg_match('/Mobile/', $_SERVER['HTTP_USER_AGENT']))){ + $create_cache = true; + }else{ + $create_cache = false; + } + } + }else if(!isset($this->options->wpFastestCacheMobile) && !isset($this->options->wpFastestCacheMobileTheme)){ + $create_cache = true; + }else{ + $create_cache = false; + } + }else{ + $create_cache = true; + } + + if($create_cache){ + $this->startTime = microtime(true); + + + add_action('wp', array($this, "detect_current_page_type")); + add_action('get_footer', array($this, "detect_current_page_type")); + add_action('get_footer', array($this, "wp_print_scripts_action")); + + // to exclude current page hook + add_action("wpfc_exclude_current_page", array($this, 'exclude_current_page'), 10, 0); + + ob_start(array($this, "callback")); + } + } + } + } + + public function is_user_admin(){ + global $wpdb; + + foreach ((array)$_COOKIE as $cookie_key => $cookie_value){ + if(preg_match("/wordpress_logged_in/i", $cookie_key)){ + $username = preg_replace("/^([^\|]+)\|.+/", "$1", $cookie_value); + break; + } + } + + if(isset($username) && $username){ + $username = esc_sql($username); + + $res = $wpdb->get_var("SELECT `$wpdb->users`.`ID`, `$wpdb->users`.`user_login`, `$wpdb->usermeta`.`meta_key`, `$wpdb->usermeta`.`meta_value` + FROM `$wpdb->users` + INNER JOIN `$wpdb->usermeta` + ON `$wpdb->users`.`user_login` = \"$username\" AND + `$wpdb->usermeta`.`meta_key` LIKE \"%_user_level\" AND + `$wpdb->usermeta`.`meta_value` = \"10\" AND + `$wpdb->users`.`ID` = `$wpdb->usermeta`.user_id ;" + ); + + return $res; + } + + return false; + } + + public function exclude_current_page($some = true){ + $via = debug_backtrace(); + + if(isset($via) && is_array($via)){ + foreach ($via as $key => $value){ + if($value["function"] == "wpfc_exclude_current_page"){ + + if(defined('WPFC_DEBUG') && (WPFC_DEBUG === true)){ + if(preg_match("/wp-content\/themes/", $value["file"])){ + $this->exclude_current_page_text = ""; + }else if(preg_match("/wp-content\/plugins/", $value["file"])){ + $this->exclude_current_page_text = ""; + } + }else{ + $this->exclude_current_page_text = ""; + } + + break; + } + } + } + } + + public function wp_print_scripts_action(){ + echo ""; + } + + public function ignored($buffer){ + $list = array( + "\/wp\-comments\-post\.php", + "\/wp\-login\.php", + "\/robots\.txt", + "\/wp\-cron\.php", + "\/wp\-content", + "\/wp\-admin", + "\/wp\-includes", + "\/index\.php", + "\/xmlrpc\.php", + "\/wp\-api\/", + "leaflet\-geojson\.php", + "\/clientarea\.php" + ); + if($this->isPluginActive('woocommerce/woocommerce.php')){ + if($this->current_page_type != "homepage"){ + global $post; + + if(isset($post->ID) && $post->ID){ + if(function_exists("wc_get_page_id")){ + $woocommerce_ids = array(); + + //wc_get_page_id('product') + //wc_get_page_id('product-category') + + array_push($woocommerce_ids, wc_get_page_id('cart'), wc_get_page_id('checkout'), wc_get_page_id('receipt'), wc_get_page_id('confirmation'), wc_get_page_id('myaccount')); + + if (in_array($post->ID, $woocommerce_ids)) { + return true; + } + } + } + + //"\/product" + //"\/product-category" + + array_push($list, "\/cart\/?$", "\/checkout", "\/receipt", "\/confirmation", "\/wc-api\/"); + } + } + + if($this->isPluginActive('wp-easycart/wpeasycart.php')){ + array_push($list, "\/cart"); + } + + if($this->isPluginActive('easy-digital-downloads/easy-digital-downloads.php')){ + array_push($list, "\/cart", "\/checkout"); + } + + if(preg_match("/".implode("|", $list)."/i", $_SERVER["REQUEST_URI"])){ + return true; + } + + return false; + } + + public function exclude_page($buffer = false){ + $preg_match_rule = ""; + //$request_url = urldecode(trim($_SERVER["REQUEST_URI"], "/")); + $request_url = urldecode($_SERVER["REQUEST_URI"]); + + if($this->exclude_rules){ + + foreach((array)$this->exclude_rules as $key => $value){ + $value->type = isset($value->type) ? $value->type : "page"; + + if($value->prefix == "yandexclickid"){ + if(preg_match("/y(ad|s)?clid\=/i", $request_url)){ + // yclid + // yadclid + // ysclid + + return true; + } + }else if($value->prefix == "googleanalytics"){ + if(preg_match("/utm_(source|medium|campaign|content|term)/i", $request_url)){ + return true; + } + }else if(isset($value->prefix) && $value->prefix && ($value->type == "page")){ + $value->content = trim($value->content); + //$value->content = trim($value->content, "/"); + + if($buffer && preg_match("/^(homepage|category|tag|post|page|archive|attachment)$/", $value->prefix)){ + if(preg_match('/<\!--WPFC_PAGE_TYPE_'.$value->prefix.'-->/i', $buffer)){ + return true; + } + }else if($value->prefix == "exact"){ + $request_url = trim($request_url, "/"); + $value->content = trim($value->content, "/"); + + if(strtolower($value->content) == strtolower($request_url)){ + return true; + } + }else if($value->prefix == "regex"){ + if(preg_match("/".$value->content."/i", $request_url)){ + return true; + } + }else{ + if($value->prefix == "startwith"){ + $request_url = ltrim($request_url, "/"); + $value->content = ltrim($value->content, "/"); + + $preg_match_rule = "^".preg_quote($value->content, "/"); + }else if($value->prefix == "contain"){ + $preg_match_rule = preg_quote($value->content, "/"); + } + + if($preg_match_rule){ + if(preg_match("/".$preg_match_rule."/i", $request_url)){ + return true; + } + } + } + }else if($value->type == "useragent"){ + if(preg_match("/".preg_quote($value->content, "/")."/i", $_SERVER['HTTP_USER_AGENT'])){ + return true; + } + }else if($value->type == "cookie"){ + if(isset($_SERVER['HTTP_COOKIE'])){ + if(preg_match("/".preg_quote($value->content, "/")."/i", $_SERVER['HTTP_COOKIE'])){ + return true; + } + } + } + } + + } + return false; + } + + public function is_json(){ + return $this->current_page_content_type == "json" ? true : false; + + // if(isset($_SERVER["HTTP_ACCEPT"]) && preg_match("/json/i", $_SERVER["HTTP_ACCEPT"])){ + // return true; + // } + + // if(preg_match("/^\/wp-json/", $_SERVER["REQUEST_URI"])){ + // return true; + // } + + // if(preg_match("/^\s*\{\s*[\"\']/i", $buffer)){ + // return true; + // } + + // if(preg_match("/^\s*\[\s*\{\s*[\"\']/i", $buffer)){ + // return true; + // } + + // return false; + } + + public function is_xml(){ + return $this->current_page_content_type == "xml" ? true : false; + + // if(preg_match("/^\s*\<\?xml/i", $buffer)){ + // return true; + // } + // return false; + } + + public function is_html(){ + return $this->current_page_content_type == "html" ? true : false; + } + + public function set_current_page_type($buffer){ + preg_match('/<\!--WPFC_PAGE_TYPE_([a-z]+)-->/i', $buffer, $out); + + $this->current_page_type = isset($out[1]) ? $out[1] : false; + } + + public function set_current_page_content_type($buffer){ + $content_type = false; + if(function_exists("headers_list")){ + $headers = headers_list(); + foreach($headers as $header){ + if(preg_match("/Content-Type\:/i", $header)){ + $content_type = preg_replace("/Content-Type\:\s(.+)/i", "$1", $header); + } + } + } + + if(preg_match("/xml/i", $content_type)){ + $this->current_page_content_type = "xml"; + }else if(preg_match("/json/i", $content_type)){ + $this->current_page_content_type = "json"; + }else{ + $this->current_page_content_type = "html"; + } + } + + public function last_error($buffer = false){ + if(function_exists("http_response_code") && (http_response_code() === 404)){ + return true; + } + + if(is_404()){ + return true; + } + + //to exclude "There has been a critical error on this website" page + if(preg_match("/\s*/i", $buffer)){ + return true; + } + } + + public function callback($buffer){ + $this->set_current_page_type($buffer); + $this->set_current_page_content_type($buffer); + + $buffer = $this->checkShortCode($buffer); + + // for Wordfence: not to cache 503 pages + if(defined('DONOTCACHEPAGE') && $this->isPluginActive('wordfence/wordfence.php')){ + if(function_exists("http_response_code") && http_response_code() == 503){ + return $buffer.""; + } + } + + // Prevent caching of 403 Forbidden error pages. + // This is particularly important for compatibility with the following security plugins: + // 1. iThemes Security + // 2. Defender Security + if(defined('DONOTCACHEPAGE')){ + if(function_exists("http_response_code") && http_response_code() == 403){ + return $buffer.""; + } + } + + // for Divi Theme + if(defined('DONOTCACHEPAGE') && (get_template() == "Divi")){ + if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ + // /?wc-ajax=dgwt_wcas_ajax_search&s=keyword&l=en + return $buffer; + } + + return $buffer.""; + } + + + if($this->exclude_page($buffer)){ + $buffer = preg_replace('/<\!--WPFC_PAGE_TYPE_[a-z]+-->/i', '', $buffer); + + $buffer = $this->cdn_rewrite($buffer); + + return $buffer; + } + + $buffer = preg_replace('/<\!--WPFC_PAGE_TYPE_[a-z]+-->/i', '', $buffer); + + + if($this->is_html()){ + $tmp_buffer = (string) apply_filters('wpfc_buffer_callback_filter', $buffer, "html", $this->cacheFilePath); + + if(!$tmp_buffer){ + return $buffer; + }else{ + $buffer = $tmp_buffer; + } + } + + + if($this->exclude_current_page_text){ + return $buffer.$this->exclude_current_page_text; + }else if($this->is_json() && (!defined('WPFC_CACHE_JSON') || (defined('WPFC_CACHE_JSON') && WPFC_CACHE_JSON !== true))){ + return $buffer; + }else if(preg_match("/Mediapartners-Google|Google\sWireless\sTranscoder/i", $_SERVER['HTTP_USER_AGENT'])){ + return $buffer; + }else if (is_user_logged_in() || $this->isCommenter()){ + return $buffer; + }else if($this->isPasswordProtected($buffer)){ + return $buffer.""; + }else if($this->isWpLogin($buffer)){ + return $buffer.""; + }else if($this->hasContactForm7WithCaptcha($buffer)){ + return $buffer.""; + }else if($this->last_error($buffer)){ + return $buffer; + }else if($this->ignored($buffer)){ + return $buffer; + }else if($this->blockCache === true){ + return $buffer.""; + }else if(isset($_GET["preview"])){ + return $buffer.""; + }else if($this->checkHtml($buffer)){ + if(preg_match("/^.*$/s", $buffer)){ + // Check if the buffer has only one line (no line breaks) + return $buffer; + }else{ + return $buffer.""; + } + }else if((function_exists("http_response_code")) && (http_response_code() == 301 || http_response_code() == 302)){ + return $buffer; + }else if(!$this->cacheFilePath){ + return $buffer.""; + }else{ + $content = $buffer; + + if(isset($this->options->wpFastestCacheDelayJS) && method_exists("WpFastestCachePowerfulHtml", "render_blocking")){ + if(file_exists(WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/pro/library/delay-js.php")){ + if(!$this->is_amp($content)){ + include_once WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/pro/library/delay-js.php"; + $delay = new WpFastestCacheDelayJS($content); + $content = $delay->action(); + } + } + } + + if(isset($this->options->wpFastestCacheRenderBlocking) && method_exists("WpFastestCachePowerfulHtml", "render_blocking")){ + if(class_exists("WpFastestCachePowerfulHtml")){ + if(!$this->is_amp($content)){ + $powerful_html = new WpFastestCachePowerfulHtml(); + + if(isset($this->options->wpFastestCacheRenderBlockingCss)){ + $content = $powerful_html->render_blocking($content, true); + }else{ + $content = $powerful_html->render_blocking($content); + } + } + } + } + + if(isset($this->options->wpFastestCacheCombineCss)){ + require_once "css-utilities.php"; + $css = new CssUtilities($this, $content); + $content = $css->combineCss(); + unset($css); + }else if(isset($this->options->wpFastestCacheMinifyCss)){ + require_once "css-utilities.php"; + $css = new CssUtilities($this, $content); + $content = $css->minifyCss(); + unset($css); + } + + if(isset($this->options->wpFastestCacheCombineJs) || isset($this->options->wpFastestCacheMinifyJs) || isset($this->options->wpFastestCacheCombineJsPowerFul)){ + require_once "js-utilities.php"; + } + + if(isset($this->options->wpFastestCacheCombineJs)){ + + $head_new = $this->get_header($content); + + if($head_new){ + if(isset($this->options->wpFastestCacheMinifyJs) && $this->options->wpFastestCacheMinifyJs){ + $js = new JsUtilities($this, $head_new, true); + }else{ + $js = new JsUtilities($this, $head_new); + } + + $tmp_head = $js->combine_js(); + + $content = str_replace($head_new, $tmp_head, $content); + + unset($r); + unset($js); + unset($tmp_head); + unset($head_new); + } + } + + if(class_exists("WpFastestCachePowerfulHtml")){ + if(!isset($powerful_html)){ + $powerful_html = new WpFastestCachePowerfulHtml(); + } + + $powerful_html->set_html($content); + + if(isset($this->options->wpFastestCacheCombineJsPowerFul) && method_exists("WpFastestCachePowerfulHtml", "combine_js_in_footer")){ + if(isset($this->options->wpFastestCacheMinifyJs) && $this->options->wpFastestCacheMinifyJs){ + $content = $powerful_html->combine_js_in_footer($this, true); + }else{ + $content = $powerful_html->combine_js_in_footer($this); + } + } + + if(isset($this->options->wpFastestCacheRemoveComments)){ + $content = $powerful_html->remove_head_comments(); + } + + if(isset($this->options->wpFastestCacheMinifyHtmlPowerFul)){ + $content = $powerful_html->minify_html(); + } + + if(isset($this->options->wpFastestCacheMinifyJs) && method_exists("WpFastestCachePowerfulHtml", "minify_js_in_body")){ + $content = $powerful_html->minify_js_in_body($this, $this->exclude_rules); + } + } + + if($this->err){ + return $buffer.""; + }else{ + $content = $this->cacheDate($content); + $content = $this->minify($content); + $content = str_replace("", "", $content); + + + if(isset($this->options->wpFastestCacheLazyLoad) && class_exists("WpFastestCachePowerfulHtml")){ + $execute_lazy_load = true; + + // to disable Lazy Load if the page is amp + if($this->is_amp($content)){ + $execute_lazy_load = false; + } + + // to disable for Ajax Load More on the pages + if($this->isPluginActive('ajax-load-more/ajax-load-more.php') && preg_match("/\/page\/\d+\//", $_SERVER["REQUEST_URI"])){ + $execute_lazy_load = false; + } + + if($execute_lazy_load){ + if(!class_exists("WpFastestCacheLazyLoad")){ + include_once $this->get_premium_path("lazy-load.php"); + } + + $content = $powerful_html->lazy_load($content); + + if(method_exists("WpFastestCacheLazyLoad",'get_js_source_new')){ + $lazy_load_js = WpFastestCacheLazyLoad::get_js_source_new(); + }else if(method_exists("WpFastestCacheLazyLoad",'get_js_source')){ + $lazy_load_js = WpFastestCacheLazyLoad::get_js_source(); + } + + $content = preg_replace("/\s*<\/head\s*>/i", $lazy_load_js."", $content, 1); + } + } + + $content = $this->cdn_rewrite($content); + + $content = $this->fix_pre_tag($content, $buffer); + + if(preg_match("/]+href\s*\=\s*[\'\"][^\"\']+\.\.[\"\'][^\>]+>/", $content)){ + /* + to check that resources have been successfully optimized + + */ + return $buffer.""; + } + + if($this->cacheFilePath){ + if($this->is_html()){ + + $tmp_content = (string) apply_filters('wpfc_buffer_callback_filter', $content, "cache", $this->cacheFilePath); + + if(!$tmp_content){ + return $content; + }else{ + $content = $tmp_content; + } + + $this->createFolder($this->cacheFilePath, $content); + do_action('wpfc_is_cacheable_action'); + }else if($this->is_xml()){ + if(preg_match("/<\/link>/", $buffer)){ + if(preg_match("/\/feed$/", $_SERVER["REQUEST_URI"])){ + return $buffer.time(); + } + } + + $this->createFolder($this->cacheFilePath, $buffer, "xml"); + do_action('wpfc_is_cacheable_action'); + + return $buffer; + }else if($this->is_json()){ + $this->createFolder($this->cacheFilePath, $buffer, "json"); + do_action('wpfc_is_cacheable_action'); + + return $buffer; + } + } + + return $content.""; + } + } + } + + + public function find_tags($data, $start_string, $end_string){ + + $list = array(); + $start_index = false; + $end_index = false; + + for($i = 0; $i < strlen( $data ); $i++) { + if(substr($data, $i, strlen($start_string)) == $start_string){ + $start_index = $i; + } + + if($start_index && $i > $start_index){ + if(substr($data, $i, strlen($end_string)) == $end_string){ + $end_index = $i + strlen($end_string)-1; + $text = substr($data, $start_index, ($end_index-$start_index + 1)); + + + array_push($list, array("start" => $start_index, "end" => $end_index, "text" => $text)); + + + $start_index = false; + $end_index = false; + } + } + } + + return $list; + } + + public function fix_pre_tag($content, $buffer){ + + // Check if buffer contains any
 tag
+		    if(!preg_match("/]*>/i", $buffer)){
+		        return $content;
+		    }
+
+		    // Extract 
 blocks from buffer
+		    $pre_buffer = $this->find_tags($buffer, "");
+
+		    // Extract 
 blocks from content
+		    $pre_content = $this->find_tags($content, "");
+
+		    // If either side has no 
 blocks, do nothing
+		    if(empty($pre_buffer) || empty($pre_content)){
+		        return $content;
+		    }
+
+		    // Reverse the order to avoid index shifting during replacement
+		    $pre_content = array_reverse($pre_content, true);
+
+		    foreach ($pre_content as $key => $value){
+		        if(isset($pre_buffer[$key])){
+
+		            // New 
 block that will replace the old one
+		            $replace_text = $pre_buffer[$key]["text"];
+
+		            // Replace the original 
 block in the content with the buffer's block
+		            $content = substr_replace(
+		                $content,
+		                $replace_text,
+		                $value["start"],
+		                ($value["end"] - $value["start"] + 1)
+		            );
+		        }
+		    }
+
+		    return $content;
+		}
+
+
+
+		public function cdn_rewrite($content){
+			if($this->cdn){
+				$content = preg_replace_callback("/(srcset|src|href|data-vc-parallax-image|data-bg|data-bg-webp|data-fullurl|data-mobileurl|data-img-url|data-cvpsrc|data-cvpset|data-thumb|data-bg-url|data-large_image|data-lazyload|data-lazy|data-source-url|data-srcsmall|data-srclarge|data-srcfull|data-slide-img|data-lazy-original)\s{0,2}\=\s{0,2}[\'\"]([^\'\"]+)[\'\"]/i", array($this, 'cdn_replace_urls'), $content);
+
+				//url()
+				$content = preg_replace_callback("/(url)\(([^\)\>]+)\)/i", array($this, 'cdn_replace_urls'), $content);
+
+				//{"concatemoji":"http:\/\/your_url.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.7"}
+				$content = preg_replace_callback("/\{\"concatemoji\"\:\"[^\"]+\"\}/i", array($this, 'cdn_replace_urls'), $content);
+				
+				//
+				$content = preg_replace_callback("/[\"\']([^\'\"]+)[\"\']\s*\:\s*[\"\']https?\:\\\\\/\\\\\/[^\"\']+[\"\']/i", array($this, 'cdn_replace_urls'), $content);
+
+				// 
+				$content = preg_replace_callback("/(jsFileLocation)\s*\:[\"\']([^\"\']+)[\"\']/i", array($this, 'cdn_replace_urls'), $content);
+
+				// 
+ //
+ $content = preg_replace_callback("/(data-product_variations|data-siteorigin-parallax)\=[\"\'][^\"\']+[\"\']/i", array($this, 'cdn_replace_urls'), $content); + + // + $content = preg_replace_callback("/]+(data)\s{0,2}\=[\'\"]([^\'\"]+)[\'\"][^\>]+>/i", array($this, 'cdn_replace_urls'), $content); + } + + return $content; + } + + public function get_header($content){ + $head_first_index = strpos($content, ""); + + return substr($content, $head_first_index, ($head_last_index-$head_first_index + 1)); + } + + public function minify($content){ + $content = preg_replace("/<\/html>\s+/", "", $content); + $content = str_replace("\r", "", $content); + return isset($this->options->wpFastestCacheMinifyHtml) ? preg_replace("/^\s+/m", "", ((string) $content)) : $content; + } + + public function checkHtml($buffer){ + if(!$this->is_html()){ + return false; + } + + if(preg_match('/<\s*html[^\>]*>/si', $buffer) && preg_match('/<\s*body[^\>]*>/si', $buffer) && preg_match('/<\/body\s*>/si', $buffer)){ + return false; + } + // if(strlen($buffer) > 10){ + // return false; + // } + + return true; + } + + public function cacheDate($buffer){ + $prefix = ($this->isMobile() && class_exists("WpFcMobileCache") && isset($this->options->wpFastestCacheMobile) && isset($this->options->wpFastestCacheMobileTheme)) + ? "Mobile: " + : ""; + + $comment = ""; + + + + if(apply_filters( 'wpfc_remove_footer_comment', false )){ + $comment = ""; + } + + if(defined('WPFC_REMOVE_FOOTER_COMMENT') && WPFC_REMOVE_FOOTER_COMMENT){ + $comment = ""; + } + + return $buffer.$comment; + + } + + public function creationTime(){ + $time = microtime(true) - $this->startTime; + $time = number_format($time, 3); + + return $time; + } + + public function isCommenter(){ + $commenter = wp_get_current_commenter(); + return isset($commenter["comment_author_email"]) && $commenter["comment_author_email"] ? true : false; + } + public function isPasswordProtected($buffer){ + if(preg_match("/action\=[\'\"].+postpass.*[\'\"]/", $buffer)){ + return true; + } + + foreach($_COOKIE as $key => $value){ + if(preg_match("/wp\-postpass\_/", $key)){ + return true; + } + } + + return false; + } + + public function create_name($list){ + $arr = is_array($list) ? $list : array(array("href" => $list)); + $name = ""; + + foreach ($arr as $tag_key => $tag_value){ + $tmp = preg_replace("/(\.css|\.js)\?.*/", "$1", $tag_value["href"]); //to remove version number + $name = $name.$tmp; + } + + return base_convert(crc32($name), 20, 36); + } + + public function createFolder($cachFilePath, $buffer, $extension = "html", $prefix = false){ + $create = false; + $file_name = "index."; + $update_db_statistic = true; + + if($buffer && strlen($buffer) > 100 && preg_match("/html|xml|json/i", $extension)){ + if(!preg_match("/^\<\!\-\-\sMobile\:\sWP\sFastest\sCache/i", $buffer)){ + if(!preg_match("/^\<\!\-\-\sWP\sFastest\sCache/i", $buffer)){ + $create = true; + } + } + + if($this->preload_user_agent){ + if(file_exists($cachFilePath."/"."index.".$extension)){ + $update_db_statistic = false; + @unlink($cachFilePath."/"."index.".$extension); + } + } + } + + if(($extension == "svg" || $extension == "woff" || $extension == "css" || $extension == "js") && $buffer && strlen($buffer) > 5){ + $create = true; + $file_name = base_convert(substr(time(), -6), 20, 36)."."; + $buffer = trim($buffer); + + if($extension == "js"){ + if(substr($buffer, -1) != ";"){ + $buffer .= ";"; + } + } + } + + if (is_user_logged_in() || $this->isCommenter()){ + $create = false; + } + + if($create){ + + if(!is_dir($cachFilePath)){ + if(is_writable($this->getWpContentDir()) || ((is_dir($this->getWpContentDir("/cache"))) && (is_writable($this->getWpContentDir("/cache"))))){ + if (@mkdir($cachFilePath, 0755, true)){ + + if($extension == "html"){ + if(!file_exists($this->getWpContentDir("/cache/index.html"))){ + @file_put_contents($this->getWpContentDir("/cache/index.html"), ""); + } + }else{ + + if(!file_exists($this->getWpContentDir("/cache/wpfc-minified/index.html"))){ + if(!is_dir($this->getWpContentDir("/cache/wpfc-minified/"))){ + @mkdir($this->getWpContentDir("/cache/wpfc-minified/"), 0755, true); + } + + if(is_dir($this->getWpContentDir("/cache/wpfc-minified/"))){ + @file_put_contents($this->getWpContentDir("/cache/wpfc-minified/index.html"), ""); + } + } + + } + + } + } + } + + if(is_dir($cachFilePath)){ + if(!file_exists($cachFilePath."/".$file_name.$extension)){ + + if($extension != "html"){ + $buffer = (string) apply_filters('wpfc_buffer_callback_filter', $buffer, $extension, $cachFilePath); + } + + file_put_contents($cachFilePath."/".$file_name.$extension, $buffer); + + if(class_exists("WpFastestCacheStatics")){ + if($update_db_statistic && !preg_match("/After\sCache\sTimeout/i", $_SERVER['HTTP_USER_AGENT'])){ + if(preg_match("/wpfc\-mobile\-cache/", $cachFilePath)){ + $extension = "mobile"; + } + + $cache_statics = new WpFastestCacheStatics($extension, strlen($buffer)); + $cache_statics->update_db(); + } + } + + } + + } + + }elseif($extension == "html"){ + $this->err = "Buffer is empty so the cache cannot be created"; + } + } + + public function is_amp($content){ + global $redux_builder_amp; + $action = false; + $request_uri = trim($_SERVER["REQUEST_URI"], "/"); + + if(preg_match("/^amp/", $request_uri)){ + $action = true; + } + + if(preg_match("/amp$/", $request_uri)){ + $action = true; + } + + if(preg_match("/\/amp\//", $request_uri)){ + $action = true; + } + + if(preg_match("/\?amp\=1$/", $request_uri)){ + $action = true; + } + + if(preg_match("/web-stories\//", $request_uri)){ + // https://wordpress.org/plugins/web-stories/ + $action = true; + } + + if(isset($redux_builder_amp) && isset($redux_builder_amp['ampforwp-amp-takeover']) && ($redux_builder_amp['ampforwp-amp-takeover'] == true)){ + $action = true; + } + + if($action){ + if(preg_match("/]+amp[^\>]*>/i", $content)){ + return true; + } + + if(preg_match("/]+\⚡[^\>]*>/i", $content)){ + return true; + } + } + + return false; + } + + public function isMobile(){ + foreach ($this->get_mobile_browsers() as $value) { + if(preg_match("/".$value."/i", $_SERVER['HTTP_USER_AGENT'])){ + return true; + } + } + + foreach ($this->get_operating_systems() as $key => $value) { + if(preg_match("/".$value."/i", $_SERVER['HTTP_USER_AGENT'])){ + return true; + } + } + + if(isset($_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER']) && "true" === $_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER']){ + $is_mobile = true; + } + + + if(isset($_SERVER['HTTP_CLOUDFRONT_IS_TABLET_VIEWER']) && "true" === $_SERVER['HTTP_CLOUDFRONT_IS_TABLET_VIEWER']){ + $is_mobile = true; + } + + } + + public function isWpLogin($buffer){ + // if(preg_match("/]+loginform[^\>]+>((?:(?!<\/form).)+)user_login((?:(?!<\/form).)+)user_pass((?:(?!<\/form).)+)<\/form>/si", $buffer)){ + // return true; + // } + if($GLOBALS["pagenow"] == "wp-login.php"){ + return true; + } + + return false; + } + + public function hasContactForm7WithCaptcha($buffer){ + if(is_single() || is_page()){ + if(preg_match("/]+_wpcf7_captcha[^\>]+>/i", $buffer)){ + return true; + } + } + + return false; + } + + public function is_wptouch_smartphone(){ + // https://plugins.svn.wordpress.org/wptouch/tags/4.0.4/core/mobile-user-agents.php + // wptouch: ipad is accepted as a desktop so no need to create cache if user agent is ipad + // https://wordpress.org/support/topic/plugin-wptouch-wptouch-wont-display-mobile-version-on-ipad?replies=12 + if(preg_match("/ipad/i", $_SERVER['HTTP_USER_AGENT'])){ + return false; + } + + $wptouch_smartphone_list = array(); + + $wptouch_smartphone_list[] = array( 'iPhone' ); // iPhone + $wptouch_smartphone_list[] = array( 'Android', 'Mobile' ); // Android devices + $wptouch_smartphone_list[] = array( 'BB', 'Mobile Safari' ); // BB10 devices + $wptouch_smartphone_list[] = array( 'BlackBerry', 'Mobile Safari' ); // BB 6, 7 devices + $wptouch_smartphone_list[] = array( 'Firefox', 'Mobile' ); // Firefox OS devices + $wptouch_smartphone_list[] = array( 'IEMobile/11', 'Touch' ); // Windows IE 11 touch devices + $wptouch_smartphone_list[] = array( 'IEMobile/10', 'Touch' ); // Windows IE 10 touch devices + $wptouch_smartphone_list[] = array( 'IEMobile/9.0' ); // Windows Phone OS 9 + $wptouch_smartphone_list[] = array( 'IEMobile/8.0' ); // Windows Phone OS 8 + $wptouch_smartphone_list[] = array( 'IEMobile/7.0' ); // Windows Phone OS 7 + $wptouch_smartphone_list[] = array( 'OPiOS', 'Mobile' ); // Opera Mini iOS + $wptouch_smartphone_list[] = array( 'Coast', 'Mobile' ); // Opera Coast iOS + + foreach ($wptouch_smartphone_list as $key => $value) { + if(isset($value[0]) && isset($value[1])){ + if(preg_match("/".preg_quote($value[0], "/")."/i", $_SERVER['HTTP_USER_AGENT'])){ + if(preg_match("/".preg_quote($value[1], "/")."/i", $_SERVER['HTTP_USER_AGENT'])){ + return true; + } + } + }else if(isset($value[0])){ + if(preg_match("/".preg_quote($value[0], "/")."/i", $_SERVER['HTTP_USER_AGENT'])){ + return true; + } + } + } + + return false; + } + + + } +?> \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/inc/cdn.php b/wp-content/plugins/wp-fastest-cache/inc/cdn.php new file mode 100644 index 00000000..4b40458b --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/inc/cdn.php @@ -0,0 +1,651 @@ + "Bearer ".$key, + "Content-Type" => "application/json" + ); + }else{ + $header = array( + "X-Auth-Email" => $email, + "X-Auth-Key" => $key, + "Content-Type" => "application/json" + ); + } + + return $header; + } + + public static function cloudflare_clear_cache($email = false, $key = false, $zoneid = false){ + if(isset($GLOBALS["wpfc_cloudflare_purge_cache_executed"])){ + return; + } + + if(!$key && !$zoneid){ + if($cdn_values = get_option("WpFastestCacheCDN")){ + $std_obj = json_decode($cdn_values); + + foreach ($std_obj as $key => $value) { + if($value->id == "cloudflare"){ + $email = $value->cdnurl; + $key = $value->originurl; + break; + } + } + + if($key){ + $zone = self::cloudflare_get_zone_id($email, $key, false); + + if($zone["success"]){ + $zoneid = $zone["zoneid"]; + } + } + } + } + + if($key && $zoneid){ + $header = array("method" => "DELETE", + 'headers' => self::cloudflare_generate_header($email, $key), + "body" => '{"purge_everything":true}' + ); + + $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/purge_cache', $header); + + if(!$response || is_wp_error($response)){ + return array("success" => false, "error_message" => "Unable to disable rocket loader option"); + }else{ + $body = json_decode(wp_remote_retrieve_body($response)); + + if(!$body->success){ + CdnWPFC::cloudflare_delete_zone_id_value(); + }else{ + $GLOBALS["wpfc_cloudflare_purge_cache_executed"] = true; + } + } + } + } + + public static function cloudflare_disable_rocket_loader($email = false, $key = false, $zoneid = false){ + if($key && $zoneid){ + $header = array("method" => "PATCH", + 'timeout' => 10, + 'headers' => self::cloudflare_generate_header($email, $key), + 'body' => '{"value":"off"}' + ); + + $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/settings/rocket_loader', $header); + + if(!$response || is_wp_error($response)){ + return array("success" => false, "error_message" => "Unable to disable rocket loader option"); + }else{ + $body = json_decode(wp_remote_retrieve_body($response)); + + if($body->success){ + return array("success" => true); + }else if(isset($body->errors) && isset($body->errors[0])){ + return array("success" => false, "error_message" => $body->errors[0]->message); + }else{ + return array("success" => false, "error_message" => "Unknown error: 101"); + } + } + + return array("success" => false, "error_message" => "Unknown error"); + } + } + + + public static function cloudflare_set_browser_caching($email = false, $key = false, $zoneid = false){ + if($key && $zoneid){ + $header = array("method" => "PATCH", + 'timeout' => 10, + 'headers' => self::cloudflare_generate_header($email, $key), + 'body' => '{"value":16070400}' + ); + + $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/settings/browser_cache_ttl', $header); + + if(!$response || is_wp_error($response)){ + return array("success" => false, "error_message" => "Unable to set the browser caching option"); + }else{ + $body = json_decode(wp_remote_retrieve_body($response)); + + if($body->success){ + return array("success" => true); + }else if(isset($body->errors) && isset($body->errors[0])){ + return array("success" => false, "error_message" => $body->errors[0]->message); + }else{ + return array("success" => false, "error_message" => "Unknown error: 101"); + } + } + + return array("success" => false, "error_message" => "Unknown error"); + } + } + + public static function cloudflare_disable_minify($email = false, $key = false, $zoneid = false){ + // Deprecated + // https://developers.cloudflare.com/speed/optimization/content/auto-minify/ + + return array("success" => true); + + if($key && $zoneid){ + $header = array("method" => "PATCH", + 'timeout' => 10, + 'headers' => self::cloudflare_generate_header($email, $key), + 'body' => '{"value":{"css":"off","html":"off","js":"off"}}' + ); + + $response = wp_remote_request('https://api.cloudflare.com/client/v4/zones/'.$zoneid.'/settings/minify', $header); + + if(!$response || is_wp_error($response)){ + return array("success" => false, "error_message" => "Unable to disable minify options"); + }else{ + $body = json_decode(wp_remote_retrieve_body($response)); + + if($body->success){ + return array("success" => true); + }else if(isset($body->errors) && isset($body->errors[0])){ + return array("success" => false, "error_message" => $body->errors[0]->message); + }else{ + return array("success" => false, "error_message" => "Unknown error: 101"); + } + } + + return array("success" => false, "error_message" => "Unknown error"); + }else{ + wp_die("bad request"); + } + } + + public static function cloudflare_get_zone_id($email = false, $key = false){ + $cache_zone_id = CdnWPFC::cloudflare_get_zone_id_value(); + + if($cache_zone_id){ + return $cache_zone_id; + } + + if(substr_count($_SERVER["HTTP_HOST"], ".") == 1){ + $hostname = preg_replace("/^(https?\:\/\/)/", "", $_SERVER["HTTP_HOST"]); + }else{ + $hostname = preg_replace("/^(https?\:\/\/)?(www\d*\.)?/", "", $_SERVER["HTTP_HOST"]); + } + + if(extension_loaded('intl') && function_exists("idn_to_utf8")){ + $hostname = idn_to_utf8($hostname); + } + + $header = array( + "method" => "GET", + 'headers' => self::cloudflare_generate_header($email, $key) + ); + + $all_zones = []; + + // Request page 1 and page 2 + for ($page = 1; $page <= 2; $page++) { + $response = wp_remote_request("https://api.cloudflare.com/client/v4/zones/?page=$page&per_page=1000", $header); + + if (!$response || is_wp_error($response)) { + return array("success" => false, "error_message" => $response->get_error_message()); + } + + $zone = json_decode(wp_remote_retrieve_body($response)); + + if (isset($zone->errors) && isset($zone->errors[0])) { + $error_message = $zone->errors[0]->message; + if (isset($zone->errors[0]->error_chain[0])) { + $error_message = $zone->errors[0]->error_chain[0]->message; + } + return array("success" => false, "error_message" => $error_message); + } + + if (isset($zone->result)) { + $all_zones = array_merge($all_zones, $zone->result); + } + } + + // Search for the matching zone + foreach ($all_zones as $zone_value) { + if (preg_match("/" . preg_quote($zone_value->name, '/') . "/", $hostname)) { + $res = array( + "success" => true, + "zoneid" => $zone_value->id, + "plan" => $zone_value->plan->legacy_id + ); + + CdnWPFC::cloudflare_save_zone_id_value($res); + return $res; + } + } + + return array("success" => false, "error_message" => "No zone name " . $hostname); + } + + + public static function cloudflare_get_zone_id_value(){ + if($data = get_option("WpFastestCacheCDN")){ + $arr = json_decode($data); + + if(is_array($arr)){ + foreach ($arr as $cdn_key => $cdn_value) { + if($cdn_value->id == "cloudflare" && isset($cdn_value->zone_id)){ + return unserialize($cdn_value->zone_id); + } + } + } + } + + return false; + } + + public static function cloudflare_delete_zone_id_value(){ + if($data = get_option("WpFastestCacheCDN")){ + $arr = json_decode($data); + + if(is_array($arr)){ + foreach ($arr as $cdn_key => $cdn_value) { + if($cdn_value->id == "cloudflare"){ + if(isset($cdn_value->zone_id)){ + unset($cdn_value->zone_id); + } + } + } + + update_option("WpFastestCacheCDN", json_encode($arr)); + } + } + } + + public static function cloudflare_save_zone_id_value($value){ + if($data = get_option("WpFastestCacheCDN")){ + $arr = json_decode($data); + + if(is_array($arr)){ + foreach ($arr as $cdn_key => &$cdn_value) { + if($cdn_value->id == "cloudflare"){ + $value["time"] = time(); + $cdn_value->zone_id = serialize($value); + + } + } + + update_option("WpFastestCacheCDN", json_encode($arr)); + } + } + } + + public static function cloudflare_remove_webp(){ + $path = ABSPATH.".htaccess"; + + if(file_exists($path)){ + if(is_writable($path)){ + $htaccess = file_get_contents($path); + $htaccess = preg_replace("/#\s?BEGIN\s?WEBPWpFastestCache.*?#\s?END\s?WEBPWpFastestCache/s", "", $htaccess); + + file_put_contents($path, $htaccess); + } + } + } + + + public static function cloudflare_change_settings(){ + //admin OR author OR editor + if(current_user_can('manage_options') || current_user_can('delete_published_posts') || current_user_can('edit_published_posts')){ + if(isset($_GET["url"]) && isset($_GET["origin_url"])){ + $email = sanitize_text_field($_GET["url"]); + $key = sanitize_text_field($_GET["origin_url"]); + } + + $zone = CdnWPFC::cloudflare_get_zone_id($email, $key); + + if($zone["success"]){ + + $minify = CdnWPFC::cloudflare_disable_minify($email, $key, $zone["zoneid"]); + $rocket_loader = CdnWPFC::cloudflare_disable_rocket_loader($email, $key, $zone["zoneid"]); + $purge_cache = CdnWPFC::cloudflare_clear_cache($email, $key, $zone["zoneid"]); + $browser_caching = CdnWPFC::cloudflare_set_browser_caching($email, $key, $zone["zoneid"]); + + if($zone["plan"] == "free"){ + CdnWPFC::cloudflare_remove_webp();; + } + + + if($minify["success"]){ + if($rocket_loader["success"]){ + if($browser_caching["success"]){ + $res = array("success" => true); + }else{ + $res = array("success" => false, "error_message" => $browser_caching["error_message"]); + } + }else{ + $res = array("success" => false, "error_message" => $rocket_loader["error_message"]); + } + }else{ + $res = array("success" => false, "error_message" => $minify["error_message"]); + } + }else{ + $res = $zone; + } + + wp_send_json($res); + }else{ + wp_die("Must be admin"); + } + } + + public static function check_url(){ + if(current_user_can('manage_options')){ + if(isset($_GET["type"]) && $_GET["type"] == "cloudflare"){ + CdnWPFC::cloudflare_change_settings(); + } + + if(preg_match("/wp\.com/", $_GET["url"]) || $_GET["url"] == "random"){ + wp_send_json(array("success" => true)); + } + + if( + // IPv6 + preg_match("/\:\:/", $_GET["url"]) || + // decimal + (preg_match("/\d{10}/", $_GET["url"]) && !preg_match("/\./", $_GET["url"])) || + // hex + (preg_match("/0x[0-9a-fA-F]{1,8}/", $_GET["url"]) && !preg_match("/\./", $_GET["url"])) || + preg_match("/0x[0-9a-fA-F]{1,2}\.0x[0-9a-fA-F]{1,2}\.0x[0-9a-fA-F]{1,2}\.0x[0-9a-fA-F]{1,2}/", $_GET["url"]) || + // octal + preg_match("/(https?\:\/\/)?[0-9]{4,5}\.[0-9]{1,5}\.[0-9]{1,5}\.[0-9]{1,5}/", $_GET["url"]) || + // localhost + preg_match("/(\/\/)?localhost/i", $_GET["url"]) || + preg_match("/(https?\:\/\/)?(127|10|172|169|100|198|192)\.\d{1,3}\.\d{1,3}\.\d{1,3}/", $_GET["url"]) + ){ + $res = array("success" => false, "error_message" => "Localhost is not allowed"); + wp_send_json($res); + } + + $host = str_replace("www.", "", $_SERVER["HTTP_HOST"]); + $_GET["url"] = esc_url_raw($_GET["url"]); + + if(!preg_match("/^http/", $_GET["url"])){ + $_GET["url"] = "http://".$_GET["url"]; + } + + if(preg_match("/^https/i", site_url()) && preg_match("/^https/i", home_url())){ + $_GET["url"] = preg_replace("/http\:\/\//i", "https://", $_GET["url"]); + } + + $response = wp_safe_remote_get($_GET["url"], array('timeout' => 20, 'redirection' => 0, 'user-agent' => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")); + + $header = wp_remote_retrieve_headers($response); + + if ( !$response || is_wp_error( $response ) ) { + $res = array("success" => false, "error_message" => esc_html($response->get_error_message()) ); + + if($response->get_error_code() == "http_request_failed"){ + if(esc_html($response->get_error_message()) == "Failure when receiving data from the peer"){ + $res = array("success" => true); + }else if(preg_match("/cURL\serror\s60/i", esc_html($response->get_error_message()) )){ + //cURL error 60: SSL: no alternative certificate subject name matches target host name + $res = array("success" => false, "error_message" => "Please Read: https://www.wpfastestcache.com/warnings/how-to-use-cdn-on-ssl-sites/"); + }else if(preg_match("/cURL\serror\s6/i", esc_html($response->get_error_message()) )){ + //cURL error 6: Couldn't resolve host + if(preg_match("/".preg_quote($host, "/")."/i", $_GET["url"])){ + $res = array("success" => true); + } + } + } + }else{ + $response_code = wp_remote_retrieve_response_code( $response ); + if($response_code == 200){ + $res = array("success" => true); + }else{ + if (is_object($response) && method_exists($response, "get_error_message")) { + $res = array("success" => false, "error_message" => esc_html($response->get_error_message()) ); + }else{ + $res = array("success" => false, "error_message" => esc_html(wp_remote_retrieve_response_message($response)) ); + } + + if(isset($header["server"]) && preg_match("/squid/i", $header["server"])){ + $res = array("success" => true); + } + + if(($response_code == 400) && (preg_match("/speedsize\.com/i", $_GET["url"]))){ + $res = array("success" => true); + } + + if(($response_code == 401) && (preg_match("/res\.cloudinary\.com/i", $_GET["url"]))){ + $res = array("success" => true); + } + + if(($response_code == 403) && (preg_match("/stackpathdns\.com/i", $_GET["url"]))){ + $res = array("success" => true); + } + + if(($response_code == 403) && (preg_match("/cloudfront\.net/i", $_GET["url"]))){ + $res = array("success" => false, "error_message" => "Please Read: Amazon CloudFront 403 Error"); + } + + if(($response_code == 403) && (preg_match("/b\-cdn\.net/i", $_GET["url"]))){ + $res = array("success" => false, "error_message" => "Please Read: BunnyCDN 403 Error"); + } + } + } + + wp_send_json($res); + }else{ + wp_die("Must be admin"); + } + } + + public static function cdn_options(){ + if(current_user_can('manage_options')){ + $cdn_values = get_option("WpFastestCacheCDN"); + if($cdn_values){ + echo $cdn_values; + }else{ + echo json_encode(array("success" => false)); + } + exit; + }else{ + wp_die("Must be admin"); + } + } + + public static function start_cdn_integration(){ + if(current_user_can('manage_options')){ + $cdn_values = get_option("WpFastestCacheCDN"); + + if($cdn_values){ + $std_obj = json_decode($cdn_values); + $cdn_values_arr = array(); + + if(is_array($std_obj)){ + $cdn_values_arr = $std_obj; + }else{ + array_push($cdn_values_arr, $std_obj); + } + + foreach ($cdn_values_arr as $cdn_key => $cdn_value) { + if($cdn_value->id == "amazonaws" || $cdn_value->id == "keycdn" || $cdn_value->id == "cdn77"){ + $cdn_value->id = "other"; + } + + if($cdn_value->id == $_POST["id"]){ + unset($cdn_value->status); + } + } + + $cdn_values_arr = array_values($cdn_values_arr); + + update_option("WpFastestCacheCDN", json_encode($cdn_values_arr)); + } + + echo json_encode(array("success" => true)); + exit; + }else{ + wp_die("Must be admin"); + } + } + + public static function pause_cdn_integration(){ + if(current_user_can('manage_options')){ + $cdn_values = get_option("WpFastestCacheCDN"); + + if($cdn_values){ + $std_obj = json_decode($cdn_values); + $cdn_values_arr = array(); + + if(is_array($std_obj)){ + $cdn_values_arr = $std_obj; + }else{ + array_push($cdn_values_arr, $std_obj); + } + + foreach ($cdn_values_arr as $cdn_key => $cdn_value) { + if($cdn_value->id == "amazonaws" || $cdn_value->id == "keycdn" || $cdn_value->id == "cdn77"){ + $cdn_value->id = "other"; + } + + if($cdn_value->id == $_POST["id"]){ + $cdn_value->status = "pause"; + } + } + + $cdn_values_arr = array_values($cdn_values_arr); + + update_option("WpFastestCacheCDN", json_encode($cdn_values_arr)); + } + + echo json_encode(array("success" => true)); + exit; + }else{ + wp_die("Must be admin"); + } + } + + public static function remove_cdn_integration(){ + if(current_user_can('manage_options')){ + $cdn_values = get_option("WpFastestCacheCDN"); + + if($cdn_values){ + $std_obj = json_decode($cdn_values); + $cdn_values_arr = array(); + + if(is_array($std_obj)){ + $cdn_values_arr = $std_obj; + }else{ + array_push($cdn_values_arr, $std_obj); + } + + foreach ($cdn_values_arr as $cdn_key => $cdn_value) { + if($cdn_value->id == "amazonaws" || $cdn_value->id == "keycdn" || $cdn_value->id == "cdn77"){ + $cdn_value->id = "other"; + } + + if($cdn_value->id == $_POST["id"]){ + unset($cdn_values_arr[$cdn_key]); + } + } + + $cdn_values_arr = array_values($cdn_values_arr); + } + + if(count($cdn_values_arr) > 0){ + update_option("WpFastestCacheCDN", json_encode($cdn_values_arr)); + }else{ + delete_option("WpFastestCacheCDN"); + } + + echo json_encode(array("success" => true)); + exit; + }else{ + wp_die("Must be admin"); + } + } + + public static function cdn_template(){ + if(current_user_can('manage_options')){ + if($_POST["id"] == "maxcdn"){ + $path = WPFC_MAIN_PATH."templates/cdn/maxcdn.php"; + }else if($_POST["id"] == "other"){ + $path = WPFC_MAIN_PATH."templates/cdn/other.php"; + }else if($_POST["id"] == "cloudflare"){ + $path = WPFC_MAIN_PATH."templates/cdn/cloudflare.php"; + }else{ + die("Wrong cdn"); + } + + + ob_start(); + include_once($path); + $content = ob_get_contents(); + ob_end_clean(); + + $res = array("success" => false, "content" => ""); + + if($data = @file_get_contents($path)){ + $res["success"] = true; + $res["content"] = $content; + } + + echo json_encode($res); + exit; + }else{ + wp_die("Must be admin"); + } + } + + public static function save_cdn_integration(){ + if(current_user_can('manage_options') && wp_verify_nonce($_POST["nonce"], "cdn-nonce")){ + $values = array(); + + if(isset($_POST) && isset($values)){ + foreach ($_POST["values"] as $val_key => $val_value) { + $values[$val_key] = sanitize_text_field($val_value); + } + } + + + if($data = get_option("WpFastestCacheCDN")){ + $cdn_exist = false; + $arr = json_decode($data); + + if(is_array($arr)){ + foreach ($arr as $cdn_key => &$cdn_value) { + if($cdn_value->id == $values["id"]){ + $cdn_value = $values; + $cdn_exist = true; + } + } + + if(!$cdn_exist){ + array_push($arr, $values); + } + + update_option("WpFastestCacheCDN", json_encode($arr)); + }else{ + $tmp_arr = array(); + + if($arr->id == $values["id"]){ + array_push($tmp_arr, $values); + }else{ + array_push($tmp_arr, $arr); + array_push($tmp_arr, $values); + } + + update_option("WpFastestCacheCDN", json_encode($tmp_arr)); + } + }else{ + $arr = array(); + array_push($arr, $values); + + add_option("WpFastestCacheCDN", json_encode($arr), null, "yes"); + } + echo json_encode(array("success" => true)); + exit; + }else{ + wp_die("Must be admin"); + } + } + + } +?> \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/inc/clearing-specific-pages.php b/wp-content/plugins/wp-fastest-cache/inc/clearing-specific-pages.php new file mode 100644 index 00000000..df0d732b --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/inc/clearing-specific-pages.php @@ -0,0 +1,118 @@ + $value) { + if($value->order == ($_POST["order"])){ + unset($urls[$key]); + } + } + } + + if(empty($urls)){ + delete_option("WpFastestCacheCSP"); + }else{ + update_option("WpFastestCacheCSP", $urls, 1, "no"); + } + + wp_send_json_success(); + } + + public static function check_url(){ + $home_url = parse_url(get_option("home"), PHP_URL_HOST); + $specific_url = parse_url($_POST["url"], PHP_URL_HOST); + + if($home_url == $specific_url){ + return true; + } + + return false; + } + + public static function check_wild_card(){ + if(preg_match("/[^\/]\(\.\*\)/", $_POST["url"])){ + return false; + } + + if(substr_count($_POST["url"], "(.*)") > 1){ + return false; + } + + return true; + } + + public static function save(){ + if(!wp_verify_nonce($_POST["security"], 'wpfc-save-csp-ajax-nonce')){ + die( 'Security check' ); + } + + if(!self::check_url()){ + wp_send_json_error("The URL must start with ".parse_url(get_option("home"), PHP_URL_SCHEME)."//".parse_url(get_option("home"), PHP_URL_HOST)); + } + + if(!self::check_wild_card()){ + wp_send_json_error("Wrong Wild Card Usage"); + } + + if(preg_match("/\.{2,}/", $_POST["url"])){ + wp_send_json_error("May be Directory Traversal Attack"); + } + + $_POST["url"] = sanitize_url($_POST["url"]); + $_POST["order"] = sanitize_text_field($_POST["order"]); + + $urls = get_option("WpFastestCacheCSP"); + $url = (object)array("url" => $_POST["url"], "order" => $_POST["order"]); + + if(!is_array($urls)){ + $urls = array(); + + array_push($urls, $url); + + add_option("WpFastestCacheCSP", $urls, 1, "no"); + }else{ + $is_update = false; + + foreach ($urls as $key => &$value) { + if($value->order == ($_POST["order"])){ + $is_update = true; + $value->url = $_POST["url"]; + } + } + + if(!$is_update){ + array_push($urls, $url); + } + + update_option("WpFastestCacheCSP", $urls, 1, "no"); + } + + wp_send_json_success(); + } + + public static function get_list(){ + if(!wp_verify_nonce($_POST["security"], 'wpfc-save-csp-ajax-nonce')){ + die( 'Security check' ); + } + + $urls = get_option("WpFastestCacheCSP"); + + if(!is_array($urls)){ + $urls = array(); + } + + wp_send_json_success($urls); + + } + + } +?> \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/inc/cli.php b/wp-content/plugins/wp-fastest-cache/inc/cli.php new file mode 100644 index 00000000..f69e6dcc --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/inc/cli.php @@ -0,0 +1,86 @@ +singleDeleteCache(false, $post_id); + WP_CLI::success("The cache has been cleared!"); + } + + }else if(isset($args[0])){ + if($args[0] == "all"){ + if(isset($args[1]) && isset($args[2])){ + if($args[1] == "and" && $args[2] == "minified"){ + WP_CLI::line("Clearing the ALL cache..."); + $GLOBALS['wp_fastest_cache']->deleteCache(true); + WP_CLI::success("The cache has been cleared!"); + }else{ + self::wrong_usage(); + } + }else{ + WP_CLI::line("Clearing the ALL cache..."); + $GLOBALS['wp_fastest_cache']->deleteCache(); + WP_CLI::success("The cache has been cleared!"); + } + }else{ + self::wrong_usage(); + } + }else{ + self::wrong_usage(); + } + }else{ + WP_CLI::error("deleteCache() does not exist!"); + } + }else{ + WP_CLI::error("GLOBALS['wp_fastest_cache'] has not been defined!"); + } + } +} + +WP_CLI::add_command( 'fastest-cache', 'wpfcCLI' ); + +?> \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/inc/column.php b/wp-content/plugins/wp-fastest-cache/inc/column.php new file mode 100644 index 00000000..9fe97c9a --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/inc/column.php @@ -0,0 +1,33 @@ +ID.'" data-nonce="'.wp_create_nonce('clear-cache_'.$post->ID).'" id="wpfc-clear-cache-link-'.$post->ID.'" style="cursor:pointer;">' . __('Clear Cache') . ''; + return $actions; + } + + public function clear_cache_column(){ + if(wp_verify_nonce($_GET["nonce"], 'clear-cache_'.$_GET["id"])){ + $GLOBALS["wp_fastest_cache"]->singleDeleteCache(false, esc_sql($_GET["id"])); + + die(json_encode(array("success" => true))); + }else{ + die(json_encode(array("success" => false))); + } + } + + public function load_js(){ + wp_enqueue_script("wpfc-column", plugins_url("wp-fastest-cache/js/column.js"), array(), time(), true); + } + } +?> \ No newline at end of file diff --git a/wp-content/plugins/wp-fastest-cache/inc/css-utilities.php b/wp-content/plugins/wp-fastest-cache/inc/css-utilities.php new file mode 100644 index 00000000..5860bdc6 --- /dev/null +++ b/wp-content/plugins/wp-fastest-cache/inc/css-utilities.php @@ -0,0 +1,767 @@ +wpfc = $wpfc; + $this->html = $html; + $this->set_except_tags(); + $this->set_tags(); + $this->tags_reorder(); + } + + public function check_exclude($css_url = false){ + if($css_url){ + // to exclude the css source of elementor which is /elementor/css/post-[number].css to avoid increasing the size of minified sources + if(preg_match("/\/elementor\/css\/post-\d+\.css/i", $css_url)){ + return true; + } + + foreach((array)$this->wpfc->exclude_rules as $key => $value){ + + if(isset($value->prefix) && $value->prefix && $value->type == "css"){ + if($value->prefix == "contain"){ + $preg_match_rule = preg_quote($value->content, "/"); + } + + if(preg_match("/".$preg_match_rule."/i", $css_url)){ + return true; + } + } + } + } + } + + public function combineCss(){ + $all = array(); + $group = array(); + + foreach ($this->tags as $key => $value) { + if(preg_match("/except){ + if(strpos($this->except, $value["text"]) !== false){ + array_push($all, $group); + $group = array(); + continue; + } + } + + if(!$this->checkInternal($value["text"])){ + array_push($all, $group); + $group = array(); + continue; + } + + if($this->check_exclude($value["text"])){ + array_push($all, $group); + $group = array(); + continue; + } + + if(count($group) > 0){ + if($group[0]["media"] == $value["media"]){ + array_push($group, $value); + }else{ + array_push($all, $group); + $group = array(); + array_push($group, $value); + } + }else{ + array_push($group, $value); + } + + if($value === end($this->tags)){ + array_push($all, $group); + } + + + } + + if(preg_match("/"; + + return $link; + } + + public function tags_reorder(){ + $sorter = array(); + $ret = array(); + + foreach ($this->tags as $ii => $va) { + $sorter[$ii] = $va['start']; + } + + asort($sorter); + + foreach ($sorter as $ii => $va) { + $ret[$ii] = $this->tags[$ii]; + } + + $this->tags = $ret; + } + + public function set_except_tags(){ + $comment_tags = $this->find_tags(""); + + foreach ($comment_tags as $key => $value) { + $this->except = $value["text"].$this->except; + } + + // to execute if html contains