/* LD-03b: Font Variables + Specificity Override */ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@300;400;500;600;700&display=swap'); :root { --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; --font-heading: 'Playfair Display', Georgia, serif; } /* Override Astra body font */ html body, html body p, html body li, html body td, html body span, html body a, html body label, html body input, html body textarea, html body select { font-family: var(--font-primary, 'Inter', sans-serif) !important; } /* Override Astra heading font */ html body h1, html body h2, html body h3, html body h4, html body h5, html body h6, html body .entry-title, html body .ast-archive-title, html body .site-title { font-family: var(--font-heading, 'Playfair Display', serif) !important; }post_content ), 30 ); $thumb = get_the_post_thumbnail_url( $post->ID, 'large' ) ?: $logo_url; $url = get_permalink(); } else { $title = get_bloginfo( 'name' ) . ' — Relocate from Dubai to Bali & Indonesia'; $description = 'The premier guide for Dubai expats relocating to Bali & Indonesia. Safety, visas, property, and lifestyle intelligence.'; $thumb = $logo_url; $url = $site_url; } echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; } add_action( 'wp_head', 'ld_og_tags', 1 ); // ========================================== // ORGANIZATION SCHEMA // ========================================== function ld_organization_schema() { if ( is_admin() ) return; $schema = array( '@context' => 'https://schema.org', '@type' => 'Organization', 'name' => 'LeavingDubai.com', 'url' => 'https://leavingdubai.com', 'logo' => 'https://leavingdubai.com/wp-content/uploads/ld-logo.png', 'contactPoint' => array( '@type' => 'ContactPoint', 'telephone' => '+628113809193', 'contactType' => 'customer service', 'availableLanguage' => array( 'English', 'Indonesian' ), ), 'sameAs' => array( 'https://wa.me/628113809193', ), ); echo '' . "\n"; } add_action( 'wp_head', 'ld_organization_schema' ); // ========================================== // FAQ SCHEMA — auto from H3+P pairs // ========================================== function ld_faq_schema() { if ( ! is_singular() ) return; global $post; $content = $post->post_content; preg_match_all( '/]*>(.*?)<\/h3>\s*]*>(.*?)<\/p>/si', $content, $matches ); if ( empty( $matches[1] ) ) return; $faqs = array(); foreach ( $matches[1] as $i => $q ) { $faqs[] = array( '@type' => 'Question', 'name' => wp_strip_all_tags( $q ), 'acceptedAnswer' => array( '@type' => 'Answer', 'text' => wp_strip_all_tags( $matches[2][$i] ), ), ); } if ( empty( $faqs ) ) return; $schema = array( '@context' => 'https://schema.org', '@type' => 'FAQPage', 'mainEntity' => $faqs, ); echo '' . "\n"; } add_action( 'wp_head', 'ld_faq_schema' ); // ========================================== // llms.txt ENDPOINT // ========================================== function ld_llms_txt() { if ( isset( $_SERVER['REQUEST_URI'] ) && rtrim( parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ), '/' ) === '/llms' ) { header( 'Content-Type: text/plain; charset=utf-8' ); $pages = get_posts( array( 'post_type' => array( 'page', 'post' ), 'numberposts' => 200, 'post_status' => 'publish' ) ); echo "# LeavingDubai.com — AI Index\n"; echo "# Premier guide for Dubai expats relocating to Bali and Indonesia\n\n"; echo "> This site provides comprehensive relocation intelligence for Dubai expats moving to Bali and Indonesia.\n\n"; echo "## Pages\n\n"; foreach ( $pages as $page ) { echo '- [' . esc_html( $page->post_title ) . '](' . get_permalink( $page->ID ) . ')' . "\n"; } exit; } } add_action( 'init', 'ld_llms_txt' ); // ========================================== // ROBOTS.TXT — allow AI bots // ========================================== function ld_robots_txt( $output ) { $output .= "\nUser-agent: GPTBot\nAllow: /\n"; $output .= "\nUser-agent: Claude-Web\nAllow: /\n"; $output .= "\nUser-agent: ClaudeBot\nAllow: /\n"; $output .= "\nUser-agent: anthropic-ai\nAllow: /\n"; $output .= "\nUser-agent: PerplexityBot\nAllow: /\n"; $output .= "\nUser-agent: Googlebot\nAllow: /\n"; return $output; } add_filter( 'robots_txt', 'ld_robots_txt' ); ?>@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap'); :root{--brand-navy:#0A1628;--brand-gold:#C5A572;--brand-teal:#1A7A7A;--brand-white:#FAFAF8;--brand-warm-bg:#FAFAF8;--brand-card-dark:#111E30;--brand-navy-80:rgba(10,22,40,0.8);--brand-gold-20:rgba(197,165,114,0.2);--brand-white-70:rgba(250,250,248,0.7);--font-serif:'Playfair Display',Georgia,serif;--font-sans:'Inter',-apple-system,sans-serif;--space-xs:clamp(8px,1vw,12px);--space-sm:clamp(16px,2vw,24px);--space-md:clamp(24px,3vw,40px);--space-lg:clamp(48px,6vw,80px);--space-xl:clamp(80px,10vw,160px);--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--shadow-card:0 4px 24px rgba(0,0,0,0.12);--transition:all 0.3s ease;--h1-size:clamp(42px,5vw,72px);--h2-size:clamp(28px,3.5vw,48px);--h3-size:clamp(20px,2.5vw,28px)} body{font-family:var(--font-sans);background:var(--brand-warm-bg);color:var(--brand-navy)} h1,h2,h3{font-family:var(--font-serif)} h1{font-size:var(--h1-size);line-height:1.1} h2{font-size:var(--h2-size);line-height:1.2} h3{font-size:var(--h3-size);line-height:1.3} [style*="grid-template-columns"]{display:grid!important;gap:var(--space-md)!important} @media(max-width:768px){[style*="grid-template-columns:repeat(3"],[style*="grid-template-columns: repeat(3"],[style*="grid-template-columns:repeat(2"],[style*="grid-template-columns: repeat(2"]{grid-template-columns:1fr!important}} @media(max-width:1024px) and (min-width:769px){[style*="grid-template-columns:repeat(3"],[style*="grid-template-columns: repeat(3"]{grid-template-columns:repeat(2,1fr)!important}} .db-card{background:var(--brand-card-dark);border-radius:var(--radius-md);padding:var(--space-md);transition:var(--transition);overflow:hidden} .db-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)} .db-card h3{color:var(--brand-white);font-family:var(--font-serif)} .db-card p{color:var(--brand-white-70)} .aeo-atomic-answer{background:var(--brand-gold-20);border-left:4px solid var(--brand-gold);border-radius:var(--radius-sm);padding:var(--space-md);margin:var(--space-md) 0;font-size:1.1em;line-height:1.6} figure.db-content-image{margin:var(--space-md) 0;border-radius:var(--radius-md);overflow:hidden} figure.db-content-image img{width:100%;height:auto;display:block;border-radius:var(--radius-md)} .db-cta-button{display:inline-block;background:var(--brand-gold);color:var(--brand-navy)!important;font-family:var(--font-sans);font-weight:600;padding:16px 40px;border-radius:50px;text-decoration:none!important;transition:var(--transition);font-size:1rem;letter-spacing:.02em;margin-top:var(--space-sm)} .db-cta-button:hover{background:#d4b580;transform:translateY(-2px);box-shadow:0 8px 30px rgba(197,165,114,0.4)} .db-whatsapp-float{position:fixed;bottom:30px;right:30px;z-index:9999;background:#25D366;color:white!important;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;text-decoration:none!important;box-shadow:0 4px 20px rgba(37,211,102,0.4);transition:var(--transition)} .db-whatsapp-float:hover{transform:scale(1.1)} .entry-content{max-width:100%!important} .ast-container{max-width:1280px;margin:0 auto} section{padding:var(--space-xl) var(--space-md)} .ast-primary-header,.main-header-bar{background:var(--brand-navy)!important} .ast-header-custom-item,.menu-link,.menu-item a{color:var(--brand-white)!important} .menu-item a:hover{color:var(--brand-gold)!important} .fade-in{opacity:0;transform:translateY(30px);transition:opacity 0.6s ease,transform 0.6s ease} .fade-in.visible{opacity:1;transform:translateY(0)} ::-webkit-scrollbar{width:6px} ::-webkit-scrollbar-track{background:var(--brand-warm-bg)} ::-webkit-scrollbar-thumb{background:var(--brand-gold);border-radius:3px} .db-section-dark{background:var(--brand-navy);color:var(--brand-white)} .db-section-card{background:var(--brand-card-dark)} .db-stat-number{font-size:clamp(36px,4vw,60px);font-family:var(--font-serif);color:var(--brand-gold);font-weight:700;line-height:1} .db-stat-label{font-size:0.9rem;color:var(--brand-white-70);margin-top:8px} .db-gold-line{width:60px;height:3px;background:var(--brand-gold);margin:16px 0} .db-hero{min-height:100vh;display:flex;align-items:center;background:var(--brand-navy);position:relative;overflow:hidden} .db-hero-content{position:relative;z-index:2;padding:var(--space-xl) var(--space-md);max-width:800px} .db-hero h1{color:var(--brand-white);margin-bottom:var(--space-md)} .db-hero p{color:var(--brand-white-70);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.7;margin-bottom:var(--space-lg)}function luxury_disable_wpautop() { if (is_page()) { $layout = get_post_meta(get_the_ID(), 'site-content-layout', true); if ($layout === 'page-builder') { remove_filter('the_content', 'wpautop'); } } } add_action('wp', 'luxury_disable_wpautop');function luxury_allow_inline_styles($allowedposttags) { $tags = ['div','section','span','a','p','h1','h2','h3','h4','h5','h6','figure','img','ul','ol','li','table','td','th','tr','nav','header','footer']; foreach ($tags as $tag) { if (isset($allowedposttags[$tag])) { $allowedposttags[$tag]['style'] = true; } } if (isset($allowedposttags['img'])) { $allowedposttags['img']['loading'] = true; $allowedposttags['img']['decoding'] = true; } return $allowedposttags; } add_filter('wp_kses_allowed_html', 'luxury_allow_inline_styles', 10, 1); Skip to content

Sample Page

Last updated: March 28, 2026

This is an example page. It’s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

Hi there! I’m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin’ caught in the rain.)

…or something like this:

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

Scroll to Top
(function() { 'use strict'; // ========================================== // SCROLL REVEAL ANIMATIONS // ========================================== function initScrollReveal() { const observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add('ld-visible'); observer.unobserve(entry.target); } }); }, { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }); document.querySelectorAll('.ld-reveal, .db-card, .aeo-atomic-answer, figure.db-content-image, .ld-stat-item').forEach(function(el) { observer.observe(el); }); } // ========================================== // COUNTER ANIMATION // ========================================== function animateCounter(el) { var target = parseInt(el.getAttribute('data-target') || el.textContent.replace(/[^0-9]/g, ''), 10); if (!target) return; var duration = 2000; var start = performance.now(); var suffix = el.getAttribute('data-suffix') || ''; function update(now) { var elapsed = now - start; var progress = Math.min(elapsed / duration, 1); var eased = 1 - Math.pow(1 - progress, 3); el.textContent = Math.floor(eased * target).toLocaleString() + suffix; if (progress < 1) requestAnimationFrame(update); } requestAnimationFrame(update); } function initCounters() { var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { animateCounter(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.5 }); document.querySelectorAll('.ld-counter-number, [data-counter]').forEach(function(el) { observer.observe(el); }); } // ========================================== // MOBILE NAVIGATION // ========================================== function initMobileNav() { var toggle = document.querySelector('.ast-mobile-menu-buttons, .menu-toggle, .ast-header-break-point .menu-icon'); if (!toggle) return; var nav = document.querySelector('#ast-hf-menu-1, .main-navigation, .ast-primary-navigation-wrap'); if (!nav) return; nav.style.transition = 'all 0.3s ease'; } // ========================================== // SMOOTH SCROLL // ========================================== function initSmoothScroll() { document.querySelectorAll('a[href^="#"]').forEach(function(anchor) { anchor.addEventListener('click', function(e) { var target = document.querySelector(this.getAttribute('href')); if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); } // ========================================== // WHATSAPP FLOATING BUTTON // ========================================== function initWhatsApp() { if (document.querySelector('.ld-whatsapp-float')) return; var btn = document.createElement('a'); btn.href = 'https://wa.me/628113809193?text=Hi%2C%20I%27m%20interested%20in%20relocating%20from%20Dubai%20to%20Bali.%20Can%20you%20help%20me%3F'; btn.target = '_blank'; btn.rel = 'noopener noreferrer'; btn.className = 'ld-whatsapp-float db-whatsapp-float'; btn.setAttribute('aria-label', 'Chat on WhatsApp'); btn.innerHTML = ''; btn.style.cssText = 'position:fixed;bottom:24px;right:24px;width:60px;height:60px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,0.4);z-index:9999;transition:all 0.3s ease;text-decoration:none;'; btn.addEventListener('mouseenter', function() { this.style.transform = 'scale(1.1)'; this.style.boxShadow = '0 6px 30px rgba(37,211,102,0.6)'; }); btn.addEventListener('mouseleave', function() { this.style.transform = 'scale(1)'; this.style.boxShadow = '0 4px 20px rgba(37,211,102,0.4)'; }); document.body.appendChild(btn); } // ========================================== // NAVBAR SCROLL EFFECT // ========================================== function initNavbarScroll() { var header = document.querySelector('#masthead, .site-header, .ast-site-header-wrap'); if (!header) return; window.addEventListener('scroll', function() { if (window.scrollY > 80) { header.style.boxShadow = '0 4px 30px rgba(0,0,0,0.3)'; header.style.backdropFilter = 'blur(10px)'; } else { header.style.boxShadow = ''; header.style.backdropFilter = ''; } }, { passive: true }); } // ========================================== // INIT ALL // ========================================== function init() { initScrollReveal(); initCounters(); initMobileNav(); initSmoothScroll(); initWhatsApp(); initNavbarScroll(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();