/*! elementor-pro - v3.28.0 - 05-05-2025 */
"use strict";(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[292],{507:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class Hotspot extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{hotspot:".e-hotspot",tooltip:".e-hotspot__tooltip"}}}getDefaultElements(){const t=this.getSettings("selectors");return{$hotspot:this.$element.find(t.hotspot),$hotspotsExcludesLinks:this.$element.find(t.hotspot).filter(":not(.e-hotspot--no-tooltip)"),$tooltip:this.$element.find(t.tooltip)}}bindEvents(){const t=this.getCurrentDeviceSetting("tooltip_trigger"),e="mouseenter"===t?"mouseleave mouseenter":t;"none"!==e&&this.elements.$hotspotsExcludesLinks.on(e,(t=>this.onHotspotTriggerEvent(t)))}onDeviceModeChange(){this.elements.$hotspotsExcludesLinks.off(),this.bindEvents()}onHotspotTriggerEvent(t){const e=jQuery(t.target),o=e.closest(".e-hotspot__button").length,s="mouseleave"===t.type&&(e.is(".e-hotspot--tooltip-position")||e.parents(".e-hotspot--tooltip-position").length),n="mobile"===elementorFrontend.getCurrentDeviceMode();if(!(e.closest(".e-hotspot--link").length&&n&&("mouseleave"===t.type||"mouseenter"===t.type))&&(o||s)){const e=jQuery(t.currentTarget);this.elements.$hotspot.not(e).removeClass("e-hotspot--active"),e.toggleClass("e-hotspot--active")}}editorAddSequencedAnimation(){this.elements.$hotspot.toggleClass("e-hotspot--sequenced","yes"===this.getElementSettings("hotspot_sequenced_animation"))}hotspotSequencedAnimation(){const t=this.getElementSettings();if("no"===t.hotspot_sequenced_animation)return;const e=elementorModules.utils.Scroll.scrollObserver({callback:o=>{o.isInViewport&&(e.unobserve(this.$element[0]),this.elements.$hotspot.each(((e,o)=>{if(0===e)return;const s=t.hotspot_sequenced_animation_duration,n=e*((s?s.size:1e3)/this.elements.$hotspot.length);o.style.animationDelay=n+"ms"})))}});e.observe(this.$element[0])}setTooltipPositionControl(){const t=this.getElementSettings();void 0!==t.tooltip_animation&&t.tooltip_animation.match(/^e-hotspot--(slide|fade)-direction/)&&(this.elements.$tooltip.removeClass("e-hotspot--tooltip-animation-from-left e-hotspot--tooltip-animation-from-top e-hotspot--tooltip-animation-from-right e-hotspot--tooltip-animation-from-bottom"),this.elements.$tooltip.addClass("e-hotspot--tooltip-animation-from-"+t.tooltip_position))}onInit(){super.onInit(...arguments),this.hotspotSequencedAnimation(),this.setTooltipPositionControl(),window.elementor&&elementor.listenTo(elementor.channels.deviceMode,"change",(()=>this.onDeviceModeChange()))}onElementChange(t){t.startsWith("tooltip_position")&&this.setTooltipPositionControl(),t.startsWith("hotspot_sequenced_animation")&&this.editorAddSequencedAnimation()}}e.default=Hotspot}}]);/*! elementor-pro - v3.28.0 - 05-05-2025 */
"use strict";
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["product-add-to-cart"],{
/***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js":
/*!******************************************************************!*\
!*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
class Base extends elementorModules.frontend.handlers.Base {
getDefaultSettings() {
return {
selectors: {
stickyRightColumn: '.e-sticky-right-column'
},
classes: {
stickyRightColumnActive: 'e-sticky-right-column--active'
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$stickyRightColumn: this.$element.find(selectors.stickyRightColumn)
};
}
bindEvents() {
// Add our wrapper class around the select2 whenever it is opened.
elementorFrontend.elements.$document.on('select2:open', event => {
this.addSelect2Wrapper(event);
});
}
addSelect2Wrapper(event) {
// The select element is recaptured every time because the markup can refresh
const selectElement = jQuery(event.target).data('select2');
if (selectElement.$dropdown) {
selectElement.$dropdown.addClass('e-woo-select2-wrapper');
}
}
isStickyRightColumnActive() {
const classes = this.getSettings('classes');
return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive);
}
activateStickyRightColumn() {
const elementSettings = this.getElementSettings(),
$wpAdminBar = elementorFrontend.elements.$wpAdminBar,
classes = this.getSettings('classes');
let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0;
if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) {
stickyOptionsOffset += $wpAdminBar.height();
}
if ('yes' === this.getElementSettings('sticky_right_column')) {
this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive);
this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px');
}
}
deactivateStickyRightColumn() {
if (!this.isStickyRightColumnActive()) {
return;
}
const classes = this.getSettings('classes');
this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive);
}
/**
* Activates the sticky column
*
* @return {void}
*/
toggleStickyRightColumn() {
if (!this.getElementSettings('sticky_right_column')) {
this.deactivateStickyRightColumn();
return;
}
if (!this.isStickyRightColumnActive()) {
this.activateStickyRightColumn();
}
}
equalizeElementHeight($element) {
if ($element.length) {
$element.removeAttr('style'); // First remove the custom height we added so that the new height can be re-calculated according to the content
let maxHeight = 0;
$element.each((index, element) => {
maxHeight = Math.max(maxHeight, element.offsetHeight);
});
if (0 < maxHeight) {
$element.css({
height: maxHeight + 'px'
});
}
}
}
/**
* WooCommerce prints the Purchase Note separated from the product name by a border and padding.
* In Elementor's Order Summary design, the product name and purchase note are displayed un-separated.
* To achieve this design, it is necessary to access the Product Name line before the Purchase Note line to adjust
* its padding. Since this cannot be achieved in CSS, it is done in this method.
*
* @param {Object} $element
*
* @return {void}
*/
removePaddingBetweenPurchaseNote($element) {
if ($element) {
$element.each((index, element) => {
jQuery(element).prev().children('td').addClass('product-purchase-note-is-below');
});
}
}
/**
* `elementorPageId` and `elementorWidgetId` are added to the url in the `_wp_http_referer` input which is then
* received when WooCommerce does its cart and checkout ajax requests e.g `update_order_review` and `update_cart`.
* These query strings are extracted from the url and used in our `load_widget_before_wc_ajax` method.
*/
updateWpReferers() {
const selectors = this.getSettings('selectors'),
wpHttpRefererInputs = this.$element.find(selectors.wpHttpRefererInputs),
url = new URL(document.location);
url.searchParams.set('elementorPageId', elementorFrontend.config.post.id);
url.searchParams.set('elementorWidgetId', this.getID());
wpHttpRefererInputs.attr('value', url);
}
}
exports["default"] = Base;
/***/ }),
/***/ "../modules/woocommerce/assets/js/frontend/handlers/product-add-to-cart.js":
/*!*********************************************************************************!*\
!*** ../modules/woocommerce/assets/js/frontend/handlers/product-add-to-cart.js ***!
\*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js"));
class ProductAddToCart extends _base.default {
getDefaultSettings() {
return {
selectors: {
quantityInput: '.e-loop-add-to-cart-form input.qty',
addToCartButton: '.e-loop-add-to-cart-form .ajax_add_to_cart',
addedToCartButton: '.added_to_cart',
loopFormContainer: '.e-loop-add-to-cart-form-container'
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$quantityInput: this.$element.find(selectors.quantityInput),
$addToCartButton: this.$element.find(selectors.addToCartButton)
};
}
updateAddToCartButtonQuantity() {
this.elements.$addToCartButton.attr('data-quantity', this.elements.$quantityInput.val());
}
handleAddedToCart($button) {
const selectors = this.getSettings('selectors'),
$addToCartButton = $button.siblings(selectors.addedToCartButton),
$loopFormContainer = $addToCartButton.parents(selectors.loopFormContainer);
$loopFormContainer.children(selectors.addedToCartButton).remove();
$loopFormContainer.append($addToCartButton);
}
bindEvents() {
super.bindEvents(...arguments);
this.elements.$quantityInput.on('change', () => {
this.updateAddToCartButtonQuantity();
});
elementorFrontend.elements.$body.off('added_to_cart.elementor-woocommerce-product-add-to-cart');
elementorFrontend.elements.$body.on('added_to_cart.elementor-woocommerce-product-add-to-cart', (e, fragments, cartHash, $button) => {
this.handleAddedToCart($button);
});
}
}
exports["default"] = ProductAddToCart;
/***/ })
}]);
//# sourceMappingURL=product-add-to-cart.d5883897e035f9c53c5e.bundle.js.map// Icon Sizes
// -------------------------
/* makes the font 33% larger relative to the icon container */
.#{$el-css-prefix}-lg {
font-size: (4em / 3);
line-height: (3em / 4);
vertical-align: -15%;
}
.#{$el-css-prefix}-2x { font-size: 2em; }
.#{$el-css-prefix}-3x { font-size: 3em; }
.#{$el-css-prefix}-4x { font-size: 4em; }
.#{$el-css-prefix}-5x { font-size: 5em; }
"use strict";(self.webpackChunkelementor=self.webpackChunkelementor||[]).push([[1017],{1017:i=>{i.exports=JSON.parse('{"4.0-default":{"title":"Il nuovo predefinito","description":"I nuovi siti partono con la versione 4.0 e le funzioni atomiche attivate per impostazione predefinita. I siti esistenti possono attivarle manualmente. Layout e siti attuali restano invariati.","topic":"Versione 4.0","chipTags":["Atomic Editor"],"readMoreText":"Scopri di più","cta":""},"4.0-atomic-forms":{"title":"Moduli atomici","description":"Crea moduli come parte del layout, non come widget separati. Layout flessibili su più colonne, annidamento libero e controllo completo con lo stesso sistema atomico.","topic":"Versione 4.0","chipTags":["Atomic Editor"],"readMoreText":"Scopri di più","cta":""},"4.0-interactions":{"title":"Interazioni Pro","description":"Crea animazioni avanzate e leggere nell’Editor. Definisci il comportamento in modo visivo, tutto basato sul sistema, senza script pesanti o strumenti esterni.","topic":"Versione 4.0","chipTags":["Atomic Editor"],"readMoreText":"Scopri di più","cta":""},"4.0-sync-design-system":{"title":"Sincronizza e condividi i design system","description":"Esporta e importa variabili e classi tra i siti e sincronizzale con Global Styles v3. Un design system coerente tra progetti e versioni.","topic":"Versione 4.0","chipTags":["Atomic Editor"],"readMoreText":"Scopri di più","cta":""},"angie-launch":{"title":"Presentazione di Angie Code.","description":"Crea widget Elementor e snippet da una semplice descrizione. Nativo per WordPress ed Elementor. Anteprima sicura, affina in conversazione e pubblica quando sei pronto.","topic":"Angie Code","chipTags":["Nuovo lancio"],"readMoreText":"Scopri di più","cta":""},"partner-program":{"title":"Collabora con Elementor. Fai crescere il tuo business.","description":"Unisciti per accedere in esclusiva, visibilità, opportunità di marketing e ricavi aggiuntivi sul lavoro che già fai. Iscriviti gratis e inizia subito.","chipTags":["Programma partner"],"readMoreText":"","cta":"Candidati ora"},"manage-launch":{"title":"Presentazione di Manage","description":"Monitora, ottimizza e mantieni tutti i siti da un’unica dashboard. Prestazioni, aggiornamenti di massa e rischi di sicurezza.","chipTags":["Nuovo lancio"],"readMoreText":"","cta":"Inizia gratis"},"components-3.35":{"title":"Componenti","description":"Sezioni modulari riutilizzabili che si aggiornano ovunque e decidi quanto controllo dare a team o clienti.","topic":"Versione 4.0","chipTags":["Atomic Editor"],"readMoreText":"Scopri di più","cta":""},"one-launch":{"title":"Presentazione di Elementor One","description":"L’esperienza completa per creare siti. Tutti gli strumenti per creare, ottimizzare e gestire, unificati in un unico posto.","chipTags":["Nuovo lancio"],"readMoreText":"","cta":"Esplora Elementor One"},"atomic-tabs-3.34":{"title":"Tab atomici","description":"Inserisci qualsiasi contenuto nei tab per un design davvero atomico.","topic":"Versione 4.0","chipTags":["Atomic Editor"],"readMoreText":"Scopri di più","cta":""},"variables-manager-3.33":{"title":"Gestione variabili","description":"Centralizza colori, tipografia e token di dimensione per design system coerenti e scalabili.","topic":"Versione 4.0","chipTags":["Atomic Editor"],"readMoreText":"Scopri di più","cta":""},"ally-assistant":{"title":"Novità: accessibilità con Ally Assistant","description":"Analizza ogni pagina e risolvi con un clic: contrasti, testi alternativi e altro. Passaggi guidati o correzioni con IA per un sito più inclusivo.","topic":"Ally by Elementor","chipTags":["Nuova funzione"],"readMoreText":"","cta":"Scansiona gratis"},"image-optimizer-3.19":{"title":"Ottimizza le immagini per un sito veloce e d’impatto con il plugin Image Optimizer.","description":"Image Optimizer bilancia qualità e prestazioni. Ridimensiona, comprimi, converti in WebP: caricamenti più rapidi, esperienza migliore.","topic":"Image Optimizer Plugin by Elementor","chipTags":["Nuovo plugin"],"readMoreText":"","cta":"Ottieni Image Optimizer"},"5-star-rating-prompt":{"title":"Ti piacciono le novità? Valutaci con 5 stelle","description":"Racconta a tutti cosa ami di Elementor.","chipTags":[],"readMoreText":"","cta":"Lascia una recensione"},"site-mailer-introducing":{"title":"Presentazione di Site Mailer","description":"Tieni le email di WordPress fuori dallo spam: consegna migliore e configurazione semplice, senza plugin SMTP complicati.","topic":"Site Mailer Plugin by Elementor","chipTags":["Nuovo plugin"],"readMoreText":"","cta":"Prova gratuita"}}')}}]);
It's time to adventure Explore Azerbaijan ExploreMORE THAN 90 DESTINATIONS TO CHOOSE FROMYour Journey Begins HereTALK TO OUR TEAM TO EXPLOREExplore Like Never Before
Book Now
Azerbaijan Tours
Azerbaijan Packages
Featured tours
Azerbaijan Tours
Azerbaijan Packages
Book Tour Now
+994 55 702 56 49
Get to know us
About us
We aspire to become the premier global tourism service provider and the most trusted name in travel management worldwide. We take great pride in, where a team of confident, experienced, and passionate travellers has joined forces to simplify vacation planning, making it accessible and effortless for our clients.
I was looking for a travel agent in the market that can provide amazing tour packages. I am delighted that I joined hands with Way to the World to get the best deals. Thanks!
Steven JacobSingapore
Being a travel enthusiast, I was searching for a travel agency that can provide exciting travel packages across exotic locations and I very happy with Way to the World team.
Vivian TomasCanada
Way to the World helped me in getting the best deal and catered to my requirements with professionalism. I liked the way they handled all my queries.
Mark DavisDenmark
Our Happy Customers
Our benefit lists
Why Choose Us
There are many variations of passages of Lorem Ipsum is simply free text available in the market for you, but the majority have suffered alteration in some form.
Expertise and Experience
Experience our professional customer service and benefit from our extensive expertise in creating personalized and unforgettable travel experiences tailored to your preferences.
Get Instant Tour Bookings
Instant bookings enable travelers to secure reservations swiftly and conveniently, ensuring immediate confirmation of travel arrangements through efficient online platforms or booking systems.